@alfresco/aca-content 5.1.1 → 5.2.0-11950694546
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/app.extensions.json +9 -0
- package/assets/i18n/ar.json +600 -599
- package/assets/i18n/cs.json +600 -599
- package/assets/i18n/da.json +600 -599
- package/assets/i18n/de.json +600 -599
- package/assets/i18n/en.json +40 -1
- package/assets/i18n/es.json +600 -599
- package/assets/i18n/fi.json +600 -599
- package/assets/i18n/fr.json +600 -599
- package/assets/i18n/it.json +600 -599
- package/assets/i18n/ja.json +600 -599
- package/assets/i18n/nb.json +600 -599
- package/assets/i18n/nl.json +600 -599
- package/assets/i18n/pl.json +600 -599
- package/assets/i18n/pt-BR.json +600 -599
- package/assets/i18n/ru.json +600 -599
- package/assets/i18n/sv.json +600 -599
- package/assets/i18n/zh-CN.json +600 -599
- package/esm2022/about/about.component.mjs +70 -0
- package/esm2022/about/aca-about.module.mjs +47 -0
- package/esm2022/folder-rules/folder-rules.module.mjs +116 -0
- package/esm2022/folder-rules/manage-rules/manage-rules.smart-component.mjs +276 -0
- package/esm2022/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +117 -0
- package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +356 -0
- package/esm2022/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +171 -0
- package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +233 -0
- package/esm2022/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +80 -0
- package/esm2022/folder-rules/rule-details/options/rule-options.ui-component.mjs +129 -0
- package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +188 -0
- package/esm2022/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +87 -0
- package/esm2022/folder-rules/rule-details/validators/rule-actions.validator.mjs +36 -0
- package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +164 -0
- package/esm2022/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +80 -0
- package/esm2022/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +59 -0
- package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +122 -0
- package/esm2022/folder-rules/services/actions.service.mjs +117 -0
- package/esm2022/folder-rules/services/folder-rule-sets.service.mjs +230 -0
- package/esm2022/folder-rules/services/folder-rules.service.mjs +195 -0
- package/esm2022/lib/aca-content.module.mjs +303 -0
- package/esm2022/lib/aca-content.routes.mjs +369 -0
- package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +79 -0
- package/{esm2020 → esm2022}/lib/components/common/language-picker/language-picker.component.mjs +9 -8
- package/esm2022/lib/components/common/location-link/location-link.component.mjs +182 -0
- package/{esm2020 → esm2022}/lib/components/common/logout/logout.component.mjs +8 -6
- package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +76 -0
- package/esm2022/lib/components/common/user-info/user-info.component.mjs +46 -0
- package/esm2022/lib/components/context-menu/base-context-menu.directive.mjs +77 -0
- package/esm2022/lib/components/context-menu/context-menu-item.component.mjs +65 -0
- package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +57 -0
- package/esm2022/lib/components/context-menu/context-menu-overlay.mjs +33 -0
- package/esm2022/lib/components/context-menu/context-menu.component.mjs +84 -0
- package/esm2022/lib/components/context-menu/context-menu.service.mjs +127 -0
- package/esm2022/lib/components/context-menu/custom-context-menu-actions.token.mjs +26 -0
- package/esm2022/lib/components/context-menu/custom-context-menu.component.mjs +79 -0
- package/esm2022/lib/components/details/details.component.mjs +155 -0
- package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +70 -0
- package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +102 -0
- package/esm2022/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +52 -0
- package/esm2022/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +77 -0
- package/esm2022/lib/components/favorite-libraries/favorite-libraries.component.mjs +126 -0
- package/esm2022/lib/components/favorites/favorites.component.mjs +105 -0
- package/esm2022/lib/components/files/files.component.mjs +337 -0
- package/esm2022/lib/components/home/home.component.mjs +46 -0
- package/esm2022/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +62 -0
- package/esm2022/lib/components/info-drawer/info.drawer.module.mjs +74 -0
- package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +210 -0
- package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +47 -0
- package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +141 -0
- package/esm2022/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +107 -0
- package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +132 -0
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +176 -0
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +77 -0
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +207 -0
- package/esm2022/lib/components/libraries/libraries.component.mjs +81 -0
- package/esm2022/lib/components/recent-files/recent-files.component.mjs +80 -0
- package/esm2022/lib/components/search/search-action-menu/search-action-menu.component.mjs +66 -0
- package/esm2022/lib/components/search/search-input/search-input.component.mjs +294 -0
- package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +88 -0
- package/esm2022/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +93 -0
- package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +155 -0
- package/esm2022/lib/components/search/search-navigation.service.mjs +62 -0
- package/esm2022/lib/components/search/search-results/search-results.component.mjs +278 -0
- package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +145 -0
- package/esm2022/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.mjs +82 -0
- package/esm2022/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.mjs +116 -0
- package/esm2022/lib/components/search/search-save/dialog/save-search-dialog.component.mjs +125 -0
- package/esm2022/lib/components/search/search-save/dialog/saved-search-form.interface.mjs +25 -0
- package/esm2022/lib/components/search/search-save/dialog/unique-search-name-validator.mjs +45 -0
- package/esm2022/lib/components/search/search-save/directive/save-search.directive.mjs +64 -0
- package/esm2022/lib/components/search/search-save/list/saved-searches-list-ui.service.mjs +51 -0
- package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.mjs +44 -0
- package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.mjs +50 -0
- package/esm2022/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.mjs +153 -0
- package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +89 -0
- package/esm2022/lib/components/shared-files/shared-files.component.mjs +85 -0
- package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +86 -0
- package/esm2022/lib/components/sidenav/components/button-menu.component.mjs +66 -0
- package/esm2022/lib/components/sidenav/components/expand-menu.component.mjs +73 -0
- package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +60 -0
- package/esm2022/lib/components/sidenav/directives/action.directive.mjs +86 -0
- package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +100 -0
- package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +103 -0
- package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +99 -0
- package/esm2022/lib/components/sidenav/sidenav.component.mjs +97 -0
- package/esm2022/lib/components/sidenav/user-menu/user-menu.component.mjs +57 -0
- package/esm2022/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +143 -0
- package/esm2022/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +91 -0
- package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +108 -0
- package/esm2022/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +77 -0
- package/esm2022/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +107 -0
- package/{esm2020 → esm2022}/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +7 -6
- package/esm2022/lib/components/toolbar/view-node/view-node.component.mjs +128 -0
- package/esm2022/lib/components/trashcan/trashcan.component.mjs +66 -0
- package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +50 -0
- package/esm2022/lib/components/view-profile/view-profile.component.mjs +195 -0
- package/esm2022/lib/dialogs/node-template/create-from-template.dialog.mjs +127 -0
- package/esm2022/lib/directives/document-list.directive.mjs +203 -0
- package/esm2022/lib/extensions/core.extensions.module.mjs +56 -0
- package/esm2022/lib/services/content-management.service.mjs +892 -0
- package/esm2022/lib/services/content-url.service.mjs +74 -0
- package/esm2022/lib/services/modal-ai.service.mjs +65 -0
- package/esm2022/lib/services/node-actions.service.mjs +609 -0
- package/esm2022/lib/services/node-template.service.mjs +145 -0
- package/esm2022/lib/services/search-ai-navigation.service.mjs +63 -0
- package/esm2022/lib/store/app-store.module.mjs +101 -0
- package/esm2022/lib/store/effects/app.effects.mjs +46 -0
- package/esm2022/lib/store/effects/contextmenu.effects.mjs +65 -0
- package/esm2022/lib/store/effects/download.effects.mjs +153 -0
- package/esm2022/lib/store/effects/favorite.effects.mjs +72 -0
- package/esm2022/lib/store/effects/library.effects.mjs +108 -0
- package/esm2022/lib/store/effects/node.effects.mjs +318 -0
- package/esm2022/lib/store/effects/search-ai.effects.mjs +54 -0
- package/esm2022/lib/store/effects/search.effects.mjs +52 -0
- package/esm2022/lib/store/effects/template.effects.mjs +116 -0
- package/esm2022/lib/store/effects/upload.effects.mjs +166 -0
- package/esm2022/lib/store/effects/viewer.effects.mjs +169 -0
- package/esm2022/lib/utils/aca-search-utils.mjs +129 -0
- package/esm2022/ms-office/actions/aos.actions.mjs +32 -0
- package/esm2022/ms-office/aos-extension.module.mjs +53 -0
- package/esm2022/ms-office/aos-extension.service.mjs +136 -0
- package/esm2022/ms-office/effects/aos.effects.mjs +45 -0
- package/esm2022/public-api.mjs +33 -0
- package/esm2022/viewer/lib/components/preview/preview.component.mjs +244 -0
- package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +260 -0
- package/esm2022/viewer/lib/services/viewer.service.mjs +229 -0
- package/esm2022/viewer/lib/viewer.module.mjs +53 -0
- package/{fesm2015 → fesm2022}/alfresco-aca-content-about.mjs +17 -19
- package/fesm2022/alfresco-aca-content-about.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-content-folder-rules.mjs +376 -357
- package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-content-ms-office.mjs +28 -26
- package/fesm2022/alfresco-aca-content-ms-office.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/alfresco-aca-content-viewer.mjs +110 -83
- package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -0
- package/fesm2022/alfresco-aca-content.mjs +10996 -0
- package/fesm2022/alfresco-aca-content.mjs.map +1 -0
- package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +3 -5
- package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +1 -1
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +5 -6
- package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +1 -1
- package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +4 -5
- package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +1 -1
- package/folder-rules/rule-details/rule-details.ui-component.d.ts +5 -6
- package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +4 -5
- package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +1 -1
- package/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts +1 -1
- package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +3 -5
- package/folder-rules/services/folder-rule-sets.service.d.ts +4 -4
- package/folder-rules/services/folder-rules.service.d.ts +1 -1
- package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +7 -13
- package/lib/components/common/location-link/location-link.component.d.ts +1 -1
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +5 -6
- package/lib/components/context-menu/base-context-menu.directive.d.ts +20 -0
- package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
- package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +4 -5
- package/lib/components/context-menu/context-menu.component.d.ts +4 -15
- package/lib/components/context-menu/context-menu.service.d.ts +4 -1
- package/lib/components/{knowledge-retrieval/search-ai/search-ai-utils.d.ts → context-menu/custom-context-menu-actions.token.d.ts} +2 -2
- package/lib/components/context-menu/custom-context-menu.component.d.ts +36 -0
- package/lib/components/details/details.component.d.ts +1 -2
- package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +4 -5
- package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -4
- package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +1 -1
- package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +1 -1
- package/lib/components/files/files.component.d.ts +1 -1
- package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +1 -1
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +5 -7
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +7 -8
- package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
- package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +4 -6
- package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +6 -8
- package/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.d.ts +8 -8
- package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +4 -6
- package/lib/components/search/search-input/search-input.component.d.ts +13 -16
- package/lib/components/search/search-input-control/search-input-control.component.d.ts +3 -6
- package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +0 -1
- package/lib/components/search/search-results/search-results.component.d.ts +14 -9
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +4 -5
- package/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.d.ts +16 -0
- package/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.d.ts +22 -0
- package/lib/components/search/search-save/dialog/save-search-dialog.component.d.ts +23 -0
- package/lib/components/search/search-save/dialog/saved-search-form.interface.d.ts +28 -0
- package/lib/components/search/search-save/dialog/unique-search-name-validator.d.ts +34 -0
- package/lib/components/search/search-save/directive/save-search.directive.d.ts +13 -0
- package/lib/components/search/search-save/list/saved-searches-list-ui.service.d.ts +9 -0
- package/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.d.ts +33 -0
- package/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.d.ts +13 -0
- package/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.d.ts +66 -0
- package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +42 -0
- package/lib/components/shared-link-view/shared-link-view.component.d.ts +4 -5
- package/lib/components/sidenav/components/button-menu.component.d.ts +1 -1
- package/lib/components/sidenav/components/expand-menu.component.d.ts +3 -2
- package/lib/components/sidenav/components/sidenav-header.component.d.ts +3 -4
- package/lib/components/sidenav/directives/action.directive.d.ts +28 -1
- package/lib/components/sidenav/directives/active-link.directive.d.ts +3 -3
- package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +4 -5
- package/lib/components/sidenav/directives/menu-panel.directive.d.ts +4 -5
- package/lib/components/sidenav/sidenav.component.d.ts +7 -7
- package/lib/components/sidenav/user-menu/user-menu.component.d.ts +1 -1
- package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +1 -1
- package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +3 -4
- package/lib/components/toolbar/view-node/view-node.component.d.ts +1 -1
- package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +1 -27
- package/lib/components/view-profile/view-profile.component.d.ts +2 -4
- package/lib/directives/document-list.directive.d.ts +3 -5
- package/lib/services/search-ai-navigation.service.d.ts +4 -2
- package/lib/store/effects/app.effects.d.ts +2 -3
- package/lib/store/effects/contextmenu.effects.d.ts +3 -3
- package/lib/store/effects/download.effects.d.ts +0 -30
- package/lib/store/effects/favorite.effects.d.ts +0 -28
- package/lib/store/effects/library.effects.d.ts +2 -7
- package/lib/store/effects/node.effects.d.ts +7 -38
- package/lib/store/effects/search-ai.effects.d.ts +0 -4
- package/lib/store/effects/search.effects.d.ts +3 -30
- package/lib/store/effects/template.effects.d.ts +5 -7
- package/lib/store/effects/upload.effects.d.ts +8 -32
- package/lib/store/effects/viewer.effects.d.ts +0 -29
- package/lib/utils/aca-search-utils.d.ts +67 -0
- package/ms-office/effects/aos.effects.d.ts +0 -3
- package/package.json +21 -35
- package/public-api.d.ts +1 -0
- package/ui/overrides/adf-pagination.theme.scss +0 -4
- package/ui/theme.scss +9 -4
- package/viewer/lib/components/preview/preview.component.d.ts +3 -4
- package/viewer/lib/components/viewer/viewer.component.d.ts +2 -2
- package/assets/images/agent-avatar-blue.png +0 -0
- package/assets/images/agent-avatar-gold.png +0 -0
- package/assets/images/agent-avatar-pink.png +0 -0
- package/esm2020/about/about.component.mjs +0 -71
- package/esm2020/about/aca-about.module.mjs +0 -46
- package/esm2020/folder-rules/folder-rules.module.mjs +0 -115
- package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +0 -261
- package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +0 -117
- package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +0 -351
- package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +0 -172
- package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +0 -234
- package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +0 -74
- package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +0 -129
- package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +0 -185
- package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +0 -88
- package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +0 -37
- package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +0 -164
- package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +0 -81
- package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +0 -58
- package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +0 -120
- package/esm2020/folder-rules/services/actions.service.mjs +0 -114
- package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +0 -225
- package/esm2020/folder-rules/services/folder-rules.service.mjs +0 -193
- package/esm2020/lib/aca-content.module.mjs +0 -299
- package/esm2020/lib/aca-content.routes.mjs +0 -359
- package/esm2020/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +0 -83
- package/esm2020/lib/components/common/location-link/location-link.component.mjs +0 -180
- package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +0 -76
- package/esm2020/lib/components/common/user-info/user-info.component.mjs +0 -47
- package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +0 -62
- package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +0 -63
- package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +0 -32
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -114
- package/esm2020/lib/components/context-menu/context-menu.service.mjs +0 -99
- package/esm2020/lib/components/details/details.component.mjs +0 -147
- package/esm2020/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +0 -71
- package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +0 -101
- package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +0 -48
- package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +0 -75
- package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +0 -120
- package/esm2020/lib/components/favorites/favorites.component.mjs +0 -103
- package/esm2020/lib/components/files/files.component.mjs +0 -330
- package/esm2020/lib/components/home/home.component.mjs +0 -47
- package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +0 -59
- package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +0 -73
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +0 -206
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +0 -45
- package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +0 -134
- package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +0 -95
- package/esm2020/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +0 -129
- package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +0 -171
- package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +0 -82
- package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +0 -199
- package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-utils.mjs +0 -33
- package/esm2020/lib/components/libraries/libraries.component.mjs +0 -79
- package/esm2020/lib/components/recent-files/recent-files.component.mjs +0 -82
- package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +0 -64
- package/esm2020/lib/components/search/search-input/search-input.component.mjs +0 -301
- package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +0 -94
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +0 -90
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +0 -153
- package/esm2020/lib/components/search/search-navigation.service.mjs +0 -60
- package/esm2020/lib/components/search/search-results/search-results.component.mjs +0 -255
- package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +0 -142
- package/esm2020/lib/components/shared-files/shared-files.component.mjs +0 -83
- package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +0 -82
- package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +0 -62
- package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +0 -67
- package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +0 -66
- package/esm2020/lib/components/sidenav/directives/action.directive.mjs +0 -75
- package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +0 -93
- package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +0 -102
- package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +0 -99
- package/esm2020/lib/components/sidenav/sidenav.component.mjs +0 -89
- package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +0 -56
- package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +0 -137
- package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +0 -86
- package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +0 -107
- package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +0 -74
- package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +0 -105
- package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +0 -122
- package/esm2020/lib/components/trashcan/trashcan.component.mjs +0 -68
- package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +0 -52
- package/esm2020/lib/components/view-profile/view-profile.component.mjs +0 -193
- package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +0 -120
- package/esm2020/lib/directives/document-list.directive.mjs +0 -199
- package/esm2020/lib/extensions/core.extensions.module.mjs +0 -55
- package/esm2020/lib/services/content-management.service.mjs +0 -873
- package/esm2020/lib/services/content-url.service.mjs +0 -71
- package/esm2020/lib/services/modal-ai.service.mjs +0 -66
- package/esm2020/lib/services/node-actions.service.mjs +0 -600
- package/esm2020/lib/services/node-template.service.mjs +0 -144
- package/esm2020/lib/services/search-ai-navigation.service.mjs +0 -52
- package/esm2020/lib/store/app-store.module.mjs +0 -102
- package/esm2020/lib/store/effects/app.effects.mjs +0 -49
- package/esm2020/lib/store/effects/contextmenu.effects.mjs +0 -55
- package/esm2020/lib/store/effects/download.effects.mjs +0 -159
- package/esm2020/lib/store/effects/favorite.effects.mjs +0 -76
- package/esm2020/lib/store/effects/library.effects.mjs +0 -113
- package/esm2020/lib/store/effects/node.effects.mjs +0 -325
- package/esm2020/lib/store/effects/search-ai.effects.mjs +0 -57
- package/esm2020/lib/store/effects/search.effects.mjs +0 -60
- package/esm2020/lib/store/effects/template.effects.mjs +0 -121
- package/esm2020/lib/store/effects/upload.effects.mjs +0 -166
- package/esm2020/lib/store/effects/viewer.effects.mjs +0 -175
- package/esm2020/ms-office/actions/aos.actions.mjs +0 -31
- package/esm2020/ms-office/aos-extension.module.mjs +0 -52
- package/esm2020/ms-office/aos-extension.service.mjs +0 -132
- package/esm2020/ms-office/effects/aos.effects.mjs +0 -48
- package/esm2020/public-api.mjs +0 -32
- package/esm2020/viewer/lib/components/preview/preview.component.mjs +0 -236
- package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +0 -240
- package/esm2020/viewer/lib/services/viewer.service.mjs +0 -226
- package/esm2020/viewer/lib/viewer.module.mjs +0 -52
- package/fesm2015/alfresco-aca-content-about.mjs.map +0 -1
- package/fesm2015/alfresco-aca-content-folder-rules.mjs +0 -2662
- package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +0 -1
- package/fesm2015/alfresco-aca-content-ms-office.mjs +0 -256
- package/fesm2015/alfresco-aca-content-ms-office.mjs.map +0 -1
- package/fesm2015/alfresco-aca-content-viewer.mjs +0 -700
- package/fesm2015/alfresco-aca-content-viewer.mjs.map +0 -1
- package/fesm2015/alfresco-aca-content.mjs +0 -9835
- package/fesm2015/alfresco-aca-content.mjs.map +0 -1
- package/fesm2020/alfresco-aca-content-about.mjs +0 -193
- package/fesm2020/alfresco-aca-content-about.mjs.map +0 -1
- package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +0 -1
- package/fesm2020/alfresco-aca-content-ms-office.mjs.map +0 -1
- package/fesm2020/alfresco-aca-content-viewer.mjs.map +0 -1
- package/fesm2020/alfresco-aca-content.mjs +0 -9934
- package/fesm2020/alfresco-aca-content.mjs.map +0 -1
- /package/{esm2020 → esm2022}/about/alfresco-aca-content-about.mjs +0 -0
- /package/{esm2020 → esm2022}/about/dev-mode.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/about/package-json.token.mjs +0 -0
- /package/{esm2020 → esm2022}/about/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/alfresco-aca-content.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/alfresco-aca-content-folder-rules.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/folder-rules.rules.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/action-parameter-constraint.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule-action.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule-composite-condition.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule-grouping-item.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule-set.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule-simple-condition.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/model/rule.model.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/common/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/context-menu/direction.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/context-menu/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/search/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/sidenav/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/toolbar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/view-profile/view-profile.guard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/effects.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/initial-state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/store/reducers/app.reducer.mjs +0 -0
- /package/{esm2020 → esm2022}/ms-office/alfresco-aca-content-ms-office.mjs +0 -0
- /package/{esm2020 → esm2022}/ms-office/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/viewer/alfresco-aca-content-viewer.mjs +0 -0
- /package/{esm2020 → esm2022}/viewer/public-api.mjs +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Alfresco Example Content Application
|
|
5
|
+
*
|
|
6
|
+
* This file is part of the Alfresco Example Content Application.
|
|
7
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
8
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
9
|
+
* provided under the following open source license terms:
|
|
10
|
+
*
|
|
11
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
14
|
+
* (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
|
+
*/
|
|
24
|
+
import { ChangeDetectorRef, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
25
|
+
import { ActivatedRoute } from '@angular/router';
|
|
26
|
+
import { AlfrescoViewerComponent, DocumentListComponent, ResetSearchDirective, SavedSearchesService, SearchFilterChipsComponent, SearchFormComponent, SearchQueryBuilderService, TagService } from '@alfresco/adf-content-services';
|
|
27
|
+
import { infoDrawerPreview, NavigateToFolder, SetInfoDrawerPreviewStateAction, SetInfoDrawerStateAction, SetSearchItemsTotalCountAction, ShowInfoDrawerPreviewAction, SnackbarErrorAction, SnackbarInfoAction } from '@alfresco/aca-shared/store';
|
|
28
|
+
import { CustomEmptyContentTemplateDirective, DataColumnComponent, DataColumnListComponent, DateColumnHeaderComponent, NotificationService, PaginationComponent, TranslationService, ViewerToolbarComponent } from '@alfresco/adf-core';
|
|
29
|
+
import { ContextActionsDirective, InfoDrawerComponent, PageComponent, PageLayoutComponent, PaginationDirective, ToolbarComponent } from '@alfresco/aca-shared';
|
|
30
|
+
import { take, takeUntil } from 'rxjs/operators';
|
|
31
|
+
import { CommonModule } from '@angular/common';
|
|
32
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
33
|
+
import { SearchInputComponent } from '../search-input/search-input.component';
|
|
34
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
35
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
36
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
37
|
+
import { DocumentListDirective } from '../../../directives/document-list.directive';
|
|
38
|
+
import { ThumbnailColumnComponent } from '../../dl-custom-components/thumbnail-column/thumbnail-column.component';
|
|
39
|
+
import { SearchActionMenuComponent } from '../search-action-menu/search-action-menu.component';
|
|
40
|
+
import { TagsColumnComponent } from '../../dl-custom-components/tags-column/tags-column.component';
|
|
41
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
42
|
+
import { SearchResultsRowComponent } from '../search-results-row/search-results-row.component';
|
|
43
|
+
import { DynamicColumnComponent } from '@alfresco/adf-extensions';
|
|
44
|
+
import { BulkActionsDropdownComponent } from '../../bulk-actions-dropdown/bulk-actions-dropdown.component';
|
|
45
|
+
import { SearchAiInputContainerComponent } from '../../knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component';
|
|
46
|
+
import { extractFiltersFromEncodedQuery, extractSearchedWordFromEncodedQuery, extractUserQueryFromEncodedQuery, formatSearchTerm } from '../../../utils/aca-search-utils';
|
|
47
|
+
import { SaveSearchDirective } from '../search-save/directive/save-search.directive';
|
|
48
|
+
import { Subject } from 'rxjs';
|
|
49
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
50
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
51
|
+
import * as i0 from "@angular/core";
|
|
52
|
+
import * as i1 from "@alfresco/adf-content-services";
|
|
53
|
+
import * as i2 from "@angular/router";
|
|
54
|
+
import * as i3 from "@alfresco/adf-core";
|
|
55
|
+
import * as i4 from "@angular/common";
|
|
56
|
+
import * as i5 from "@ngx-translate/core";
|
|
57
|
+
import * as i6 from "@angular/material/progress-bar";
|
|
58
|
+
import * as i7 from "@angular/material/divider";
|
|
59
|
+
import * as i8 from "@angular/material/button";
|
|
60
|
+
import * as i9 from "@angular/material/menu";
|
|
61
|
+
import * as i10 from "@angular/material/icon";
|
|
62
|
+
class SearchResultsComponent extends PageComponent {
|
|
63
|
+
queryBuilder;
|
|
64
|
+
changeDetectorRef;
|
|
65
|
+
route;
|
|
66
|
+
translationService;
|
|
67
|
+
savedSearchesService;
|
|
68
|
+
notificationService = inject(NotificationService);
|
|
69
|
+
infoDrawerPreview$ = this.store.select(infoDrawerPreview);
|
|
70
|
+
searchedWord;
|
|
71
|
+
queryParamName = 'q';
|
|
72
|
+
data;
|
|
73
|
+
sorting = ['name', 'asc'];
|
|
74
|
+
isLoading = false;
|
|
75
|
+
totalResults;
|
|
76
|
+
isTagsEnabled = false;
|
|
77
|
+
initialSavedSearch = undefined;
|
|
78
|
+
columns = [];
|
|
79
|
+
encodedQuery;
|
|
80
|
+
searchConfig;
|
|
81
|
+
loadedFilters$ = new Subject();
|
|
82
|
+
constructor(tagsService, queryBuilder, changeDetectorRef, route, translationService, savedSearchesService) {
|
|
83
|
+
super();
|
|
84
|
+
this.queryBuilder = queryBuilder;
|
|
85
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
86
|
+
this.route = route;
|
|
87
|
+
this.translationService = translationService;
|
|
88
|
+
this.savedSearchesService = savedSearchesService;
|
|
89
|
+
this.isTagsEnabled = tagsService.areTagsEnabled();
|
|
90
|
+
queryBuilder.paging = {
|
|
91
|
+
skipCount: 0,
|
|
92
|
+
maxItems: 25
|
|
93
|
+
};
|
|
94
|
+
this.queryBuilder.configUpdated
|
|
95
|
+
.asObservable()
|
|
96
|
+
.pipe(takeUntilDestroyed())
|
|
97
|
+
.subscribe((searchConfig) => {
|
|
98
|
+
this.searchConfig = searchConfig;
|
|
99
|
+
this.updateUserQuery();
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
ngOnInit() {
|
|
103
|
+
super.ngOnInit();
|
|
104
|
+
this.queryBuilder.resetToDefaults();
|
|
105
|
+
this.sorting = this.getSorting();
|
|
106
|
+
this.subscriptions.push(this.queryBuilder.updated.subscribe((query) => {
|
|
107
|
+
this.isLoading = true;
|
|
108
|
+
if (query) {
|
|
109
|
+
this.sorting = this.getSorting();
|
|
110
|
+
this.changeDetectorRef.detectChanges();
|
|
111
|
+
}
|
|
112
|
+
}), this.queryBuilder.executed.subscribe((data) => {
|
|
113
|
+
this.queryBuilder.paging.skipCount = 0;
|
|
114
|
+
this.onSearchResultLoaded(data);
|
|
115
|
+
this.isLoading = false;
|
|
116
|
+
this.changeDetectorRef.detectChanges();
|
|
117
|
+
}), this.queryBuilder.error.subscribe((err) => {
|
|
118
|
+
this.onSearchError(err);
|
|
119
|
+
}));
|
|
120
|
+
this.columns = this.extensions.documentListPresets.searchResults || [];
|
|
121
|
+
if (this.route) {
|
|
122
|
+
this.route.queryParams.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((params) => {
|
|
123
|
+
this.savedSearchesService
|
|
124
|
+
.getSavedSearches()
|
|
125
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
126
|
+
.subscribe((savedSearches) => {
|
|
127
|
+
const savedSearchFound = savedSearches.find((savedSearch) => savedSearch.encodedUrl === encodeURIComponent(params[this.queryParamName]));
|
|
128
|
+
this.initialSavedSearch = savedSearchFound !== undefined ? savedSearchFound : this.initialSavedSearch;
|
|
129
|
+
});
|
|
130
|
+
if (params[this.queryParamName]) {
|
|
131
|
+
this.isLoading = true;
|
|
132
|
+
}
|
|
133
|
+
this.loadedFilters$.next();
|
|
134
|
+
this.encodedQuery = params[this.queryParamName] || null;
|
|
135
|
+
this.searchedWord = extractSearchedWordFromEncodedQuery(this.encodedQuery);
|
|
136
|
+
this.updateUserQuery();
|
|
137
|
+
const filtersFromEncodedQuery = extractFiltersFromEncodedQuery(this.encodedQuery);
|
|
138
|
+
if (filtersFromEncodedQuery !== null) {
|
|
139
|
+
const filtersToLoad = this.queryBuilder.categories.length;
|
|
140
|
+
let loadedFilters = this.searchedWord === '' ? 0 : 1;
|
|
141
|
+
this.queryBuilder.filterLoaded
|
|
142
|
+
.asObservable()
|
|
143
|
+
.pipe(takeUntilDestroyed(this.destroyRef), takeUntil(this.loadedFilters$))
|
|
144
|
+
.subscribe(() => {
|
|
145
|
+
loadedFilters++;
|
|
146
|
+
if (filtersToLoad === loadedFilters) {
|
|
147
|
+
this.loadedFilters$.next();
|
|
148
|
+
this.queryBuilder.execute(false);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
this.queryBuilder.populateFilters.next(filtersFromEncodedQuery);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.queryBuilder.populateFilters.next({});
|
|
155
|
+
this.queryBuilder.execute(false);
|
|
156
|
+
}
|
|
157
|
+
this.queryBuilder.userQuery = extractUserQueryFromEncodedQuery(this.encodedQuery);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
onSearchError(error) {
|
|
162
|
+
const { statusCode } = JSON.parse(error.message).error;
|
|
163
|
+
const messageKey = `APP.BROWSE.SEARCH.ERRORS.${statusCode}`;
|
|
164
|
+
let message = this.translationService.instant(messageKey);
|
|
165
|
+
if (message === messageKey) {
|
|
166
|
+
message = this.translationService.instant(`APP.BROWSE.SEARCH.ERRORS.GENERIC`);
|
|
167
|
+
}
|
|
168
|
+
this.notificationService.showError(message);
|
|
169
|
+
}
|
|
170
|
+
onSearchResultLoaded(nodePaging) {
|
|
171
|
+
this.data = nodePaging;
|
|
172
|
+
this.totalResults = this.getNumberOfResults();
|
|
173
|
+
this.store.dispatch(new SetSearchItemsTotalCountAction(this.totalResults));
|
|
174
|
+
}
|
|
175
|
+
getNumberOfResults() {
|
|
176
|
+
if (this.data?.list?.pagination) {
|
|
177
|
+
return this.data.list.pagination.totalItems;
|
|
178
|
+
}
|
|
179
|
+
return 0;
|
|
180
|
+
}
|
|
181
|
+
onPaginationChanged(pagination) {
|
|
182
|
+
this.queryBuilder.paging = {
|
|
183
|
+
maxItems: pagination.maxItems,
|
|
184
|
+
skipCount: pagination.skipCount
|
|
185
|
+
};
|
|
186
|
+
this.queryBuilder.update();
|
|
187
|
+
}
|
|
188
|
+
getSorting() {
|
|
189
|
+
const primary = this.queryBuilder.getPrimarySorting();
|
|
190
|
+
if (primary) {
|
|
191
|
+
return [primary.key, primary.ascending ? 'asc' : 'desc'];
|
|
192
|
+
}
|
|
193
|
+
return ['name', 'asc'];
|
|
194
|
+
}
|
|
195
|
+
onNodeDoubleClick(node) {
|
|
196
|
+
if (node?.entry) {
|
|
197
|
+
if (node.entry.isFolder) {
|
|
198
|
+
this.store.dispatch(new NavigateToFolder(node));
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
this.showPreview(node, { location: this.router.url });
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
handleNodeClick(event) {
|
|
205
|
+
this.onNodeDoubleClick(event.detail?.node);
|
|
206
|
+
}
|
|
207
|
+
onPreviewClosed() {
|
|
208
|
+
this.store.dispatch(new ShowInfoDrawerPreviewAction());
|
|
209
|
+
}
|
|
210
|
+
onDrawerClosed() {
|
|
211
|
+
this.store.dispatch(new SetInfoDrawerPreviewStateAction(false));
|
|
212
|
+
this.store.dispatch(new SetInfoDrawerStateAction(false));
|
|
213
|
+
}
|
|
214
|
+
onSearchSortingUpdate(option) {
|
|
215
|
+
this.queryBuilder.sorting = [{ ...option, ascending: option.ascending }];
|
|
216
|
+
this.queryBuilder.update();
|
|
217
|
+
}
|
|
218
|
+
editSavedSearch(searchToSave) {
|
|
219
|
+
searchToSave.encodedUrl = this.encodedQuery;
|
|
220
|
+
this.savedSearchesService
|
|
221
|
+
.editSavedSearch(searchToSave)
|
|
222
|
+
.pipe(take(1))
|
|
223
|
+
.subscribe({
|
|
224
|
+
next: () => {
|
|
225
|
+
this.store.dispatch(new SnackbarInfoAction('APP.BROWSE.SEARCH.SAVE_SEARCH.EDIT_DIALOG.SUCCESS_MESSAGE'));
|
|
226
|
+
},
|
|
227
|
+
error: () => {
|
|
228
|
+
this.store.dispatch(new SnackbarErrorAction('APP.BROWSE.SEARCH.SAVE_SEARCH.EDIT_DIALOG.ERROR_MESSAGE'));
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
updateUserQuery() {
|
|
233
|
+
const updatedUserQuery = formatSearchTerm(this.searchedWord, this.searchConfig['app:fields']);
|
|
234
|
+
this.queryBuilder.userQuery = updatedUserQuery;
|
|
235
|
+
}
|
|
236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchResultsComponent, deps: [{ token: i1.TagService }, { token: i1.SearchQueryBuilderService }, { token: i0.ChangeDetectorRef }, { token: i2.ActivatedRoute }, { token: i3.TranslationService }, { token: i1.SavedSearchesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
237
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SearchResultsComponent, isStandalone: true, selector: "aca-search-results", usesInheritance: true, ngImport: i0, template: "<aca-page-layout [class.aca-search-results-active-search-ai-input]=\"searchAiInputState.active\">\n <div class=\"aca-page-layout-header\">\n <aca-search-ai-input-container\n *ngIf=\"searchAiInputState.active\"\n [agentId]=\"searchAiInputState.selectedAgentId\" />\n <div class=\"aca-header-container\">\n <aca-search-input />\n <aca-bulk-actions-dropdown *ngIf=\"bulkActions\" [items]=\"bulkActions\" />\n <div class=\"aca-search-toolbar-spacer\"></div>\n <aca-toolbar [items]=\"actions\" />\n </div>\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-main-content\">\n <div class=\"adf-search-results\">\n <div class=\"adf-search-results__content\">\n <mat-progress-bar *ngIf=\"isLoading\" color=\"primary\" mode=\"indeterminate\" aria-live=\"polite\" />\n <div class=\"adf-search-results__content-header aca-content\">\n <div class=\"aca-content__filter-set\">\n <p>{{ 'APP.BROWSE.SEARCH.FILTER_SET' | translate }}</p>\n <adf-search-form />\n </div>\n <mat-divider [vertical]=\"true\" class=\"aca-content__divider\" />\n <div class=\"aca-content__advanced-filters\">\n <div class=\"aca-content__advanced-filters--header\">\n <p>{{ 'APP.BROWSE.SEARCH.ADVANCED_FILTERS' | translate }}</p>\n <div class=\"aca-content__advanced-filters--header--action-buttons\">\n <button\n *ngIf=\"initialSavedSearch !== undefined else saveSearchButton\"\n mat-button\n [disabled]=\"!encodedQuery\"\n class=\"aca-content__save-search-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate \"\n [matMenuTriggerFor]=\"saveSearchOptionsMenu\">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\n <mat-icon iconPositionEnd>keyboard_arrow_down</mat-icon>\n </button>\n <mat-menu #saveSearchOptionsMenu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"editSavedSearch(initialSavedSearch)\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate }}\n </button>\n <button\n mat-menu-item\n acaSaveSearch\n [acaSaveSearchQuery]=\"encodedQuery\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate }}\n </button>\n </mat-menu>\n <ng-template #saveSearchButton>\n <button\n mat-button\n acaSaveSearch\n [acaSaveSearchQuery]=\"encodedQuery\"\n [disabled]=\"!encodedQuery\"\n class=\"aca-content__save-search-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\n </button>\n </ng-template>\n <button\n mat-button\n adf-reset-search\n class=\"aca-content__reset-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.RESET_ACTION' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.RESET_ACTION' | translate \">\n {{ 'APP.BROWSE.SEARCH.RESET' | translate }}\n </button>\n </div>\n </div>\n <adf-search-filter-chips />\n </div>\n </div>\n\n <adf-document-list\n #documentList\n acaDocumentList\n acaContextActions\n [selectionMode]=\"'multiple'\"\n [multiselect]=\"true\"\n [sortingMode]=\"'server'\"\n [sorting]=\"sorting\"\n [preselectNodes]=\"selectedNodesState?.nodes\"\n [displayCheckboxesOnHover]=\"true\"\n [imageResolver]=\"imageResolver\"\n [isResizingEnabled]=\"true\"\n [blurOnResize]=\"false\"\n [node]=\"$any(data)\"\n (node-dblclick)=\"handleNodeClick($event)\"\n >\n <data-columns>\n <data-column id=\"app.search.thumbnail\" key=\"$thumbnail\" type=\"image\" [sr-title]=\"'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL'\" [sortable]=\"false\">\n <ng-template let-context>\n <aca-custom-thumbnail-column [context]=\"context\" />\n </ng-template>\n\n <adf-data-column-header>\n <ng-template>\n <aca-search-action-menu (sortingSelected)=\"onSearchSortingUpdate($event)\" />\n </ng-template>\n </adf-data-column-header>\n </data-column>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumnId\">\n <ng-container *ngIf=\"column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n >\n <ng-template let-context>\n <adf-dynamic-column [id]=\"column.template\" [context]=\"context\" />\n </ng-template>\n </data-column>\n </ng-container>\n\n <ng-container *ngIf=\"!column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n />\n </ng-container>\n </ng-container>\n </data-columns>\n\n <adf-custom-empty-content-template>\n <ng-container *ngIf=\"data\">\n <div class=\"empty-search__block\" aria-live=\"polite\">\n <p class=\"empty-search__text\">\n {{ 'APP.BROWSE.SEARCH.NO_RESULTS' | translate }}\n </p>\n </div>\n </ng-container>\n </adf-custom-empty-content-template>\n </adf-document-list>\n\n <adf-pagination *ngIf=\"totalResults > 0\" acaPagination [target]=\"documentList\" (change)=\"onPaginationChanged($event)\" />\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"\n (infoDrawerPreview$ | async) === true ? 'adf-search-results--right_panel_section-extended' : 'adf-search-results--right_panel_section'\n \"\n *ngIf=\"infoDrawerOpened$ | async\"\n >\n <adf-alfresco-viewer\n class=\"adf-search-results--embedded_viewer\"\n [nodeId]=\"selection.last.entry.id\"\n *ngIf=\"infoDrawerPreview$ | async; else infoDrawerPanel\"\n >\n <adf-viewer-toolbar>\n <div class=\"adf-search-results--preview-toolbar\">\n <div>\n <button mat-icon-button title=\"{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}\" (click)=\"onDrawerClosed()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div>\n <button\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ACTIONS.PREVIEW' | translate }}\"\n color=\"accent\"\n class=\"adf-search-results--visibility_button\"\n >\n <mat-icon>visibility</mat-icon>\n </button>\n <button mat-icon-button title=\"{{ 'ADF_VIEWER.ACTIONS.INFO' | translate }}\" (click)=\"onPreviewClosed()\">\n <mat-icon>info_outline</mat-icon>\n </button>\n </div>\n </div>\n </adf-viewer-toolbar>\n </adf-alfresco-viewer>\n <ng-template #infoDrawerPanel>\n <div class=\"aca-sidebar\">\n <aca-info-drawer [node]=\"selection.last\" />\n </div>\n </ng-template>\n </div>\n </div>\n</aca-page-layout>\n", styles: ["aca-search-results .aca-search-results-active-search-ai-input .aca-header-container,aca-search-results .aca-search-results-active-search-ai-input .adf-search-results__content-header.aca-content{display:none}aca-search-results .aca-search-toolbar-spacer{width:100%}aca-search-results .adf-search-results{display:flex;flex-direction:row;flex:1;height:100%;overflow:hidden}aca-search-results .adf-search-results__facets{display:flex;flex-direction:row;margin-top:5px;margin-bottom:15px}aca-search-results .adf-search-results__content{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0;border-left:1px solid var(--theme-border-color)}aca-search-results .adf-search-results__content-header{display:flex;padding:0 25px;flex-direction:row;align-items:center;border-top:1px solid var(--theme-border-color);border-bottom:1px solid var(--theme-border-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .mat-mdc-chip-action{padding-left:12px;padding-right:12px}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .mdc-evolution-chip__text-label{color:var(--theme-selected-text-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed{background-color:var(--theme-dropdown-color);color:var(--theme-selected-text-color);height:32px;margin-top:4px;margin-bottom:4px;box-sizing:border-box}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip:hover,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip:focus,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed:hover,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed:focus{background-color:var(--theme-dropdown-background-hover)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip[disabled],aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed[disabled]{background-color:var(--theme-disabled-chip-background-color);color:var(--theme-search-chip-icon-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip .adf-search-filter-chip-icon,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed .adf-search-filter-chip-icon{color:var(--theme-search-chip-icon-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-placeholder{color:var(--theme-selected-text-color)}aca-search-results .adf-search-results--info-text{flex:1;font-size:16px;color:#0000008a}aca-search-results .adf-search-results--embedded_viewer{position:unset;display:flex;width:100%}aca-search-results .adf-search-results--right_panel_section{display:flex;justify-content:flex-start}aca-search-results .adf-search-results--right_panel_section-extended{display:flex;justify-content:flex-start;flex-basis:55%}aca-search-results .adf-search-results--right_panel_section-extended .adf-viewer{position:relative}aca-search-results .adf-search-results--preview-toolbar{display:flex;align-items:flex-end;justify-content:space-between;margin:5px;padding-right:24px}aca-search-results .adf-search-results--visibility_button{margin-right:8px;cursor:default}aca-search-results .adf-search-results .adf-search-filter{min-width:260px;max-width:320px;padding:5px;height:100%;overflow:scroll}aca-search-results .adf-search-results .adf-search-filter--hidden{display:none}aca-search-results .adf-search-results .aca-content{box-sizing:border-box;display:flex;place-content:flex-start space-between;align-items:flex-start;padding:16px 12px;background-color:var(--theme-card-background-color)}aca-search-results .adf-search-results .aca-content__filter-set p{padding:0 16px}aca-search-results .adf-search-results .aca-content__divider{height:100%}aca-search-results .adf-search-results .aca-content__advanced-filters{width:100%;padding:0 12px}aca-search-results .adf-search-results .aca-content__advanced-filters--header{display:flex;justify-content:space-between}aca-search-results .adf-search-results .aca-content__advanced-filters--header--action-buttons{display:flex}aca-search-results .adf-search-results .aca-content__reset-action,aca-search-results .adf-search-results .aca-content__save-search-action{margin-top:5px;margin-right:2px;line-height:33px;font-weight:lighter}aca-search-results .adf-search-results .aca-content__sort-picker{min-width:220px}aca-search-results .adf-search-results .adf-datatable aca-search-action-menu button{width:0}aca-search-results .adf-search-results .adf-datatable .aca-location-link a{font-size:12px;max-width:350px;text-align:left;direction:rtl}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: SearchInputComponent, selector: "aca-search-input" }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: DocumentListDirective, selector: "[acaDocumentList]" }, { kind: "directive", type: ContextActionsDirective, selector: "[acaContextActions]", inputs: ["acaContextEnable", "customActions"], exportAs: ["acaContextActions"] }, { kind: "component", type: ThumbnailColumnComponent, selector: "aca-custom-thumbnail-column", inputs: ["context"] }, { kind: "component", type: SearchActionMenuComponent, selector: "aca-search-action-menu", outputs: ["sortingSelected"] }, { kind: "component", type: PaginationComponent, selector: "adf-pagination", inputs: ["target", "supportedPageSizes", "pagination"], outputs: ["change", "changePageNumber", "changePageSize", "nextPage", "prevPage"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: InfoDrawerComponent, selector: "aca-info-drawer", inputs: ["nodeId", "node"] }, { kind: "directive", type: PaginationDirective, selector: "[acaPagination]" }, { kind: "component", type: PageLayoutComponent, selector: "aca-page-layout", inputs: ["hasError"] }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }, { kind: "component", type: AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "hideInfoButton", "closeButtonPosition", "sidebarRightTemplate", "sidebarLeftTemplate"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "component", type: DynamicColumnComponent, selector: "adf-dynamic-column", inputs: ["id", "context"] }, { kind: "component", type: SearchFormComponent, selector: "adf-search-form", outputs: ["formChange"] }, { kind: "directive", type: ResetSearchDirective, selector: "[adf-reset-search]" }, { kind: "component", type: SearchFilterChipsComponent, selector: "adf-search-filter-chips", inputs: ["showContextFacets"] }, { kind: "component", type: DocumentListComponent, selector: "adf-document-list", inputs: ["includeFields", "where", "permissionsStyle", "locationFormat", "navigate", "showHeader", "navigationMode", "thumbnails", "selectionMode", "multiselect", "contentActions", "contentActionsPosition", "contextMenuActions", "emptyFolderImageUrl", "allowDropFiles", "sorting", "additionalSorting", "sortingMode", "rowStyle", "rowStyleClass", "loading", "_rowFilter", "rowFilter", "imageResolver", "stickyHeader", "headerFilters", "filterValue", "currentFolderId", "preselectNodes", "node", "maxItems", "columnsPresetKey", "setColumnsVisibility", "setColumnsWidths", "setColumnsOrder", "maxColumnsVisible", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover"], outputs: ["nodeClick", "nodeDblClick", "folderChange", "preview", "ready", "error", "nodeSelected", "filterSelection", "columnsWidthChanged", "columnsVisibilityChanged", "columnsOrderChanged", "selectedItemsCountChanged"] }, { kind: "component", type: DataColumnListComponent, selector: "data-columns" }, { kind: "component", type: DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "component", type: DateColumnHeaderComponent, selector: "adf-data-column-header" }, { kind: "directive", type: CustomEmptyContentTemplateDirective, selector: "adf-custom-empty-content-template, empty-folder-content" }, { kind: "component", type: ViewerToolbarComponent, selector: "adf-viewer-toolbar" }, { kind: "component", type: BulkActionsDropdownComponent, selector: "aca-bulk-actions-dropdown", inputs: ["items"] }, { kind: "component", type: SearchAiInputContainerComponent, selector: "aca-search-ai-input-container", inputs: ["placeholder", "agentId", "usedInAiResultsPage"] }, { kind: "directive", type: SaveSearchDirective, selector: "[acaSaveSearch]", inputs: ["acaSaveSearchQuery"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
238
|
+
}
|
|
239
|
+
export { SearchResultsComponent };
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchResultsComponent, decorators: [{
|
|
241
|
+
type: Component,
|
|
242
|
+
args: [{ standalone: true, imports: [
|
|
243
|
+
CommonModule,
|
|
244
|
+
TranslateModule,
|
|
245
|
+
SearchInputComponent,
|
|
246
|
+
MatProgressBarModule,
|
|
247
|
+
MatDividerModule,
|
|
248
|
+
MatButtonModule,
|
|
249
|
+
MatMenuModule,
|
|
250
|
+
DocumentListDirective,
|
|
251
|
+
ContextActionsDirective,
|
|
252
|
+
ThumbnailColumnComponent,
|
|
253
|
+
SearchActionMenuComponent,
|
|
254
|
+
TagsColumnComponent,
|
|
255
|
+
PaginationComponent,
|
|
256
|
+
MatIconModule,
|
|
257
|
+
InfoDrawerComponent,
|
|
258
|
+
SearchResultsRowComponent,
|
|
259
|
+
PaginationDirective,
|
|
260
|
+
PageLayoutComponent,
|
|
261
|
+
ToolbarComponent,
|
|
262
|
+
AlfrescoViewerComponent,
|
|
263
|
+
DynamicColumnComponent,
|
|
264
|
+
SearchFormComponent,
|
|
265
|
+
ResetSearchDirective,
|
|
266
|
+
SearchFilterChipsComponent,
|
|
267
|
+
DocumentListComponent,
|
|
268
|
+
DataColumnListComponent,
|
|
269
|
+
DataColumnComponent,
|
|
270
|
+
DateColumnHeaderComponent,
|
|
271
|
+
CustomEmptyContentTemplateDirective,
|
|
272
|
+
ViewerToolbarComponent,
|
|
273
|
+
BulkActionsDropdownComponent,
|
|
274
|
+
SearchAiInputContainerComponent,
|
|
275
|
+
SaveSearchDirective
|
|
276
|
+
], selector: 'aca-search-results', encapsulation: ViewEncapsulation.None, template: "<aca-page-layout [class.aca-search-results-active-search-ai-input]=\"searchAiInputState.active\">\n <div class=\"aca-page-layout-header\">\n <aca-search-ai-input-container\n *ngIf=\"searchAiInputState.active\"\n [agentId]=\"searchAiInputState.selectedAgentId\" />\n <div class=\"aca-header-container\">\n <aca-search-input />\n <aca-bulk-actions-dropdown *ngIf=\"bulkActions\" [items]=\"bulkActions\" />\n <div class=\"aca-search-toolbar-spacer\"></div>\n <aca-toolbar [items]=\"actions\" />\n </div>\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-main-content\">\n <div class=\"adf-search-results\">\n <div class=\"adf-search-results__content\">\n <mat-progress-bar *ngIf=\"isLoading\" color=\"primary\" mode=\"indeterminate\" aria-live=\"polite\" />\n <div class=\"adf-search-results__content-header aca-content\">\n <div class=\"aca-content__filter-set\">\n <p>{{ 'APP.BROWSE.SEARCH.FILTER_SET' | translate }}</p>\n <adf-search-form />\n </div>\n <mat-divider [vertical]=\"true\" class=\"aca-content__divider\" />\n <div class=\"aca-content__advanced-filters\">\n <div class=\"aca-content__advanced-filters--header\">\n <p>{{ 'APP.BROWSE.SEARCH.ADVANCED_FILTERS' | translate }}</p>\n <div class=\"aca-content__advanced-filters--header--action-buttons\">\n <button\n *ngIf=\"initialSavedSearch !== undefined else saveSearchButton\"\n mat-button\n [disabled]=\"!encodedQuery\"\n class=\"aca-content__save-search-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate \"\n [matMenuTriggerFor]=\"saveSearchOptionsMenu\">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\n <mat-icon iconPositionEnd>keyboard_arrow_down</mat-icon>\n </button>\n <mat-menu #saveSearchOptionsMenu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"editSavedSearch(initialSavedSearch)\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_CHANGES' | translate }}\n </button>\n <button\n mat-menu-item\n acaSaveSearch\n [acaSaveSearchQuery]=\"encodedQuery\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.SAVE_AS_NEW' | translate }}\n </button>\n </mat-menu>\n <ng-template #saveSearchButton>\n <button\n mat-button\n acaSaveSearch\n [acaSaveSearchQuery]=\"encodedQuery\"\n [disabled]=\"!encodedQuery\"\n class=\"aca-content__save-search-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate \">\n {{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}\n </button>\n </ng-template>\n <button\n mat-button\n adf-reset-search\n class=\"aca-content__reset-action\"\n title=\"{{ 'APP.BROWSE.SEARCH.RESET_ACTION' | translate }}\"\n [attr.aria-label]=\"'APP.BROWSE.SEARCH.RESET_ACTION' | translate \">\n {{ 'APP.BROWSE.SEARCH.RESET' | translate }}\n </button>\n </div>\n </div>\n <adf-search-filter-chips />\n </div>\n </div>\n\n <adf-document-list\n #documentList\n acaDocumentList\n acaContextActions\n [selectionMode]=\"'multiple'\"\n [multiselect]=\"true\"\n [sortingMode]=\"'server'\"\n [sorting]=\"sorting\"\n [preselectNodes]=\"selectedNodesState?.nodes\"\n [displayCheckboxesOnHover]=\"true\"\n [imageResolver]=\"imageResolver\"\n [isResizingEnabled]=\"true\"\n [blurOnResize]=\"false\"\n [node]=\"$any(data)\"\n (node-dblclick)=\"handleNodeClick($event)\"\n >\n <data-columns>\n <data-column id=\"app.search.thumbnail\" key=\"$thumbnail\" type=\"image\" [sr-title]=\"'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL'\" [sortable]=\"false\">\n <ng-template let-context>\n <aca-custom-thumbnail-column [context]=\"context\" />\n </ng-template>\n\n <adf-data-column-header>\n <ng-template>\n <aca-search-action-menu (sortingSelected)=\"onSearchSortingUpdate($event)\" />\n </ng-template>\n </adf-data-column-header>\n </data-column>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumnId\">\n <ng-container *ngIf=\"column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n >\n <ng-template let-context>\n <adf-dynamic-column [id]=\"column.template\" [context]=\"context\" />\n </ng-template>\n </data-column>\n </ng-container>\n\n <ng-container *ngIf=\"!column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n />\n </ng-container>\n </ng-container>\n </data-columns>\n\n <adf-custom-empty-content-template>\n <ng-container *ngIf=\"data\">\n <div class=\"empty-search__block\" aria-live=\"polite\">\n <p class=\"empty-search__text\">\n {{ 'APP.BROWSE.SEARCH.NO_RESULTS' | translate }}\n </p>\n </div>\n </ng-container>\n </adf-custom-empty-content-template>\n </adf-document-list>\n\n <adf-pagination *ngIf=\"totalResults > 0\" acaPagination [target]=\"documentList\" (change)=\"onPaginationChanged($event)\" />\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"\n (infoDrawerPreview$ | async) === true ? 'adf-search-results--right_panel_section-extended' : 'adf-search-results--right_panel_section'\n \"\n *ngIf=\"infoDrawerOpened$ | async\"\n >\n <adf-alfresco-viewer\n class=\"adf-search-results--embedded_viewer\"\n [nodeId]=\"selection.last.entry.id\"\n *ngIf=\"infoDrawerPreview$ | async; else infoDrawerPanel\"\n >\n <adf-viewer-toolbar>\n <div class=\"adf-search-results--preview-toolbar\">\n <div>\n <button mat-icon-button title=\"{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}\" (click)=\"onDrawerClosed()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div>\n <button\n mat-icon-button\n title=\"{{ 'ADF_VIEWER.ACTIONS.PREVIEW' | translate }}\"\n color=\"accent\"\n class=\"adf-search-results--visibility_button\"\n >\n <mat-icon>visibility</mat-icon>\n </button>\n <button mat-icon-button title=\"{{ 'ADF_VIEWER.ACTIONS.INFO' | translate }}\" (click)=\"onPreviewClosed()\">\n <mat-icon>info_outline</mat-icon>\n </button>\n </div>\n </div>\n </adf-viewer-toolbar>\n </adf-alfresco-viewer>\n <ng-template #infoDrawerPanel>\n <div class=\"aca-sidebar\">\n <aca-info-drawer [node]=\"selection.last\" />\n </div>\n </ng-template>\n </div>\n </div>\n</aca-page-layout>\n", styles: ["aca-search-results .aca-search-results-active-search-ai-input .aca-header-container,aca-search-results .aca-search-results-active-search-ai-input .adf-search-results__content-header.aca-content{display:none}aca-search-results .aca-search-toolbar-spacer{width:100%}aca-search-results .adf-search-results{display:flex;flex-direction:row;flex:1;height:100%;overflow:hidden}aca-search-results .adf-search-results__facets{display:flex;flex-direction:row;margin-top:5px;margin-bottom:15px}aca-search-results .adf-search-results__content{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0;border-left:1px solid var(--theme-border-color)}aca-search-results .adf-search-results__content-header{display:flex;padding:0 25px;flex-direction:row;align-items:center;border-top:1px solid var(--theme-border-color);border-bottom:1px solid var(--theme-border-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .mat-mdc-chip-action{padding-left:12px;padding-right:12px}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .mdc-evolution-chip__text-label{color:var(--theme-selected-text-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed{background-color:var(--theme-dropdown-color);color:var(--theme-selected-text-color);height:32px;margin-top:4px;margin-bottom:4px;box-sizing:border-box}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip:hover,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip:focus,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed:hover,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed:focus{background-color:var(--theme-dropdown-background-hover)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip[disabled],aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed[disabled]{background-color:var(--theme-disabled-chip-background-color);color:var(--theme-search-chip-icon-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip .adf-search-filter-chip-icon,aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-chip-tabbed .adf-search-filter-chip-icon{color:var(--theme-search-chip-icon-color)}aca-search-results .adf-search-results__content-header .aca-content__advanced-filters .adf-search-filter-placeholder{color:var(--theme-selected-text-color)}aca-search-results .adf-search-results--info-text{flex:1;font-size:16px;color:#0000008a}aca-search-results .adf-search-results--embedded_viewer{position:unset;display:flex;width:100%}aca-search-results .adf-search-results--right_panel_section{display:flex;justify-content:flex-start}aca-search-results .adf-search-results--right_panel_section-extended{display:flex;justify-content:flex-start;flex-basis:55%}aca-search-results .adf-search-results--right_panel_section-extended .adf-viewer{position:relative}aca-search-results .adf-search-results--preview-toolbar{display:flex;align-items:flex-end;justify-content:space-between;margin:5px;padding-right:24px}aca-search-results .adf-search-results--visibility_button{margin-right:8px;cursor:default}aca-search-results .adf-search-results .adf-search-filter{min-width:260px;max-width:320px;padding:5px;height:100%;overflow:scroll}aca-search-results .adf-search-results .adf-search-filter--hidden{display:none}aca-search-results .adf-search-results .aca-content{box-sizing:border-box;display:flex;place-content:flex-start space-between;align-items:flex-start;padding:16px 12px;background-color:var(--theme-card-background-color)}aca-search-results .adf-search-results .aca-content__filter-set p{padding:0 16px}aca-search-results .adf-search-results .aca-content__divider{height:100%}aca-search-results .adf-search-results .aca-content__advanced-filters{width:100%;padding:0 12px}aca-search-results .adf-search-results .aca-content__advanced-filters--header{display:flex;justify-content:space-between}aca-search-results .adf-search-results .aca-content__advanced-filters--header--action-buttons{display:flex}aca-search-results .adf-search-results .aca-content__reset-action,aca-search-results .adf-search-results .aca-content__save-search-action{margin-top:5px;margin-right:2px;line-height:33px;font-weight:lighter}aca-search-results .adf-search-results .aca-content__sort-picker{min-width:220px}aca-search-results .adf-search-results .adf-datatable aca-search-action-menu button{width:0}aca-search-results .adf-search-results .adf-datatable .aca-location-link a{font-size:12px;max-width:350px;text-align:left;direction:rtl}\n"] }]
|
|
277
|
+
}], ctorParameters: function () { return [{ type: i1.TagService }, { type: i1.SearchQueryBuilderService }, { type: i0.ChangeDetectorRef }, { type: i2.ActivatedRoute }, { type: i3.TranslationService }, { type: i1.SavedSearchesService }]; } });
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1yZXN1bHRzL3NlYXJjaC1yZXN1bHRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUVwQixvQkFBb0IsRUFFcEIsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsVUFBVSxFQUNYLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN2QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9B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QUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsbUNBQW1DO3dCQUNuQyxzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQixtQkFBbUI7cUJBQ3BCLFlBQ1Msb0JBQW9CLGlCQUVmLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlRW50cnksIFBhZ2luYXRpb24sIFJlc3VsdFNldFBhZ2luZyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBbGZyZXNjb1ZpZXdlckNvbXBvbmVudCxcbiAgRG9jdW1lbnRMaXN0Q29tcG9uZW50LFxuICBSZXNldFNlYXJjaERpcmVjdGl2ZSxcbiAgU2F2ZWRTZWFyY2gsXG4gIFNhdmVkU2VhcmNoZXNTZXJ2aWNlLFxuICBTZWFyY2hDb25maWd1cmF0aW9uLFxuICBTZWFyY2hGaWx0ZXJDaGlwc0NvbXBvbmVudCxcbiAgU2VhcmNoRm9ybUNvbXBvbmVudCxcbiAgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSxcbiAgVGFnU2VydmljZVxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgaW5mb0RyYXdlclByZXZpZXcsXG4gIE5hdmlnYXRlVG9Gb2xkZXIsXG4gIFNldEluZm9EcmF3ZXJQcmV2aWV3U3RhdGVBY3Rpb24sXG4gIFNldEluZm9EcmF3ZXJTdGF0ZUFjdGlvbixcbiAgU2V0U2VhcmNoSXRlbXNUb3RhbENvdW50QWN0aW9uLFxuICBTaG93SW5mb0RyYXdlclByZXZpZXdBY3Rpb24sXG4gIFNuYWNrYmFyRXJyb3JBY3Rpb24sXG4gIFNuYWNrYmFySW5mb0FjdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQge1xuICBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsXG4gIERhdGVDb2x1bW5IZWFkZXJDb21wb25lbnQsXG4gIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gIFBhZ2luYXRpb25Db21wb25lbnQsXG4gIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgVmlld2VyVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHtcbiAgQ29udGV4dEFjdGlvbnNEaXJlY3RpdmUsXG4gIEluZm9EcmF3ZXJDb21wb25lbnQsXG4gIFBhZ2VDb21wb25lbnQsXG4gIFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gIFBhZ2luYXRpb25EaXJlY3RpdmUsXG4gIFRvb2xiYXJDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgU2VhcmNoU29ydGluZ0RlZmluaXRpb24gfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMvbGliL3NlYXJjaC9tb2RlbHMvc2VhcmNoLXNvcnRpbmctZGVmaW5pdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRG9jdW1lbnRMaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9kb2N1bWVudC1saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kbC1jdXN0b20tY29tcG9uZW50cy90aHVtYm5haWwtY29sdW1uL3RodW1ibmFpbC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtYWN0aW9uLW1lbnUvc2VhcmNoLWFjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdzQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGwtY3VzdG9tLWNvbXBvbmVudHMvdGFncy1jb2x1bW4vdGFncy1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNlYXJjaFJlc3VsdHNSb3dDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gtcmVzdWx0cy1yb3cvc2VhcmNoLXJlc3VsdHMtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3RQcmVzZXRSZWYsIER5bmFtaWNDb2x1bW5Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgQnVsa0FjdGlvbnNEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1bGstYWN0aW9ucy1kcm9wZG93bi9idWxrLWFjdGlvbnMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEFpSW5wdXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9rbm93bGVkZ2UtcmV0cmlldmFsL3NlYXJjaC1haS9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyL3NlYXJjaC1haS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIGV4dHJhY3RGaWx0ZXJzRnJvbUVuY29kZWRRdWVyeSxcbiAgZXh0cmFjdFNlYXJjaGVkV29yZEZyb21FbmNvZGVkUXVlcnksXG4gIGV4dHJhY3RVc2VyUXVlcnlGcm9tRW5jb2RlZFF1ZXJ5LFxuICBmb3JtYXRTZWFyY2hUZXJtXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjYS1zZWFyY2gtdXRpbHMnO1xuaW1wb3J0IHsgU2F2ZVNlYXJjaERpcmVjdGl2ZSB9IGZyb20gJy4uL3NlYXJjaC1zYXZlL2RpcmVjdGl2ZS9zYXZlLXNlYXJjaC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBEb2N1bWVudExpc3REaXJlY3RpdmUsXG4gICAgQ29udGV4dEFjdGlvbnNEaXJlY3RpdmUsXG4gICAgVGh1bWJuYWlsQ29sdW1uQ29tcG9uZW50LFxuICAgIFNlYXJjaEFjdGlvbk1lbnVDb21wb25lbnQsXG4gICAgVGFnc0NvbHVtbkNvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgICBTZWFyY2hSZXN1bHRzUm93Q29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25EaXJlY3RpdmUsXG4gICAgUGFnZUxheW91dENvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEFsZnJlc2NvVmlld2VyQ29tcG9uZW50LFxuICAgIER5bmFtaWNDb2x1bW5Db21wb25lbnQsXG4gICAgU2VhcmNoRm9ybUNvbXBvbmVudCxcbiAgICBSZXNldFNlYXJjaERpcmVjdGl2ZSxcbiAgICBTZWFyY2hGaWx0ZXJDaGlwc0NvbXBvbmVudCxcbiAgICBEb2N1bWVudExpc3RDb21wb25lbnQsXG4gICAgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsXG4gICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICBEYXRlQ29sdW1uSGVhZGVyQ29tcG9uZW50LFxuICAgIEN1c3RvbUVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFZpZXdlclRvb2xiYXJDb21wb25lbnQsXG4gICAgQnVsa0FjdGlvbnNEcm9wZG93bkNvbXBvbmVudCxcbiAgICBTZWFyY2hBaUlucHV0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFNhdmVTZWFyY2hEaXJlY3RpdmVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2Etc2VhcmNoLXJlc3VsdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNDb21wb25lbnQgZXh0ZW5kcyBQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gIGluZm9EcmF3ZXJQcmV2aWV3JCA9IHRoaXMuc3RvcmUuc2VsZWN0KGluZm9EcmF3ZXJQcmV2aWV3KTtcblxuICBzZWFyY2hlZFdvcmQ6IHN0cmluZztcbiAgcXVlcnlQYXJhbU5hbWUgPSAncSc7XG4gIGRhdGE6IFJlc3VsdFNldFBhZ2luZztcbiAgc29ydGluZyA9IFsnbmFtZScsICdhc2MnXTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHRvdGFsUmVzdWx0czogbnVtYmVyO1xuICBpc1RhZ3NFbmFibGVkID0gZmFsc2U7XG4gIGluaXRpYWxTYXZlZFNlYXJjaDogU2F2ZWRTZWFyY2ggPSB1bmRlZmluZWQ7XG4gIGNvbHVtbnM6IERvY3VtZW50TGlzdFByZXNldFJlZltdID0gW107XG4gIGVuY29kZWRRdWVyeTogc3RyaW5nO1xuICBzZWFyY2hDb25maWc6IFNlYXJjaENvbmZpZ3VyYXRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkZWRGaWx0ZXJzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHRhZ3NTZXJ2aWNlOiBUYWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVlcnlCdWlsZGVyOiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlZFNlYXJjaGVzU2VydmljZTogU2F2ZWRTZWFyY2hlc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuaXNUYWdzRW5hYmxlZCA9IHRhZ3NTZXJ2aWNlLmFyZVRhZ3NFbmFibGVkKCk7XG5cbiAgICBxdWVyeUJ1aWxkZXIucGFnaW5nID0ge1xuICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgbWF4SXRlbXM6IDI1XG4gICAgfTtcblxuICAgIHRoaXMucXVlcnlCdWlsZGVyLmNvbmZpZ1VwZGF0ZWRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChzZWFyY2hDb25maWcpID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hDb25maWcgPSBzZWFyY2hDb25maWc7XG4gICAgICAgIHRoaXMudXBkYXRlVXNlclF1ZXJ5KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci5yZXNldFRvRGVmYXVsdHMoKTtcbiAgICB0aGlzLnNvcnRpbmcgPSB0aGlzLmdldFNvcnRpbmcoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIudXBkYXRlZC5zdWJzY3JpYmUoKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgdGhpcy5zb3J0aW5nID0gdGhpcy5nZXRTb3J0aW5nKCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnF1ZXJ5QnVpbGRlci5leGVjdXRlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIucGFnaW5nLnNraXBDb3VudCA9IDA7XG5cbiAgICAgICAgdGhpcy5vblNlYXJjaFJlc3VsdExvYWRlZChkYXRhKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcblxuICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIuZXJyb3Iuc3Vic2NyaWJlKChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9uU2VhcmNoRXJyb3IoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuZXh0ZW5zaW9ucy5kb2N1bWVudExpc3RQcmVzZXRzLnNlYXJjaFJlc3VsdHMgfHwgW107XG5cbiAgICBpZiAodGhpcy5yb3V0ZSkge1xuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1zKSA9PiB7XG4gICAgICAgIHRoaXMuc2F2ZWRTZWFyY2hlc1NlcnZpY2VcbiAgICAgICAgICAuZ2V0U2F2ZWRTZWFyY2hlcygpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgLnN1YnNjcmliZSgoc2F2ZWRTZWFyY2hlcykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2F2ZWRTZWFyY2hGb3VuZCA9IHNhdmVkU2VhcmNoZXMuZmluZCgoc2F2ZWRTZWFyY2gpID0+IHNhdmVkU2VhcmNoLmVuY29kZWRVcmwgPT09IGVuY29kZVVSSUNvbXBvbmVudChwYXJhbXNbdGhpcy5xdWVyeVBhcmFtTmFtZV0pKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNhdmVkU2VhcmNoID0gc2F2ZWRTZWFyY2hGb3VuZCAhPT0gdW5kZWZpbmVkID8gc2F2ZWRTZWFyY2hGb3VuZCA6IHRoaXMuaW5pdGlhbFNhdmVkU2VhcmNoO1xuICAgICAgICAgIH0pO1xuICAgICAgICBpZiAocGFyYW1zW3RoaXMucXVlcnlQYXJhbU5hbWVdKSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGVkRmlsdGVycyQubmV4dCgpO1xuICAgICAgICB0aGlzLmVuY29kZWRRdWVyeSA9IHBhcmFtc1t0aGlzLnF1ZXJ5UGFyYW1OYW1lXSB8fCBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaGVkV29yZCA9IGV4dHJhY3RTZWFyY2hlZFdvcmRGcm9tRW5jb2RlZFF1ZXJ5KHRoaXMuZW5jb2RlZFF1ZXJ5KTtcbiAgICAgICAgdGhpcy51cGRhdGVVc2VyUXVlcnkoKTtcbiAgICAgICAgY29uc3QgZmlsdGVyc0Zyb21FbmNvZGVkUXVlcnkgPSBleHRyYWN0RmlsdGVyc0Zyb21FbmNvZGVkUXVlcnkodGhpcy5lbmNvZGVkUXVlcnkpO1xuICAgICAgICBpZiAoZmlsdGVyc0Zyb21FbmNvZGVkUXVlcnkgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJzVG9Mb2FkID0gdGhpcy5xdWVyeUJ1aWxkZXIuY2F0ZWdvcmllcy5sZW5ndGg7XG4gICAgICAgICAgbGV0IGxvYWRlZEZpbHRlcnMgPSB0aGlzLnNlYXJjaGVkV29yZCA9PT0gJycgPyAwIDogMTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5QnVpbGRlci5maWx0ZXJMb2FkZWRcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksIHRha2VVbnRpbCh0aGlzLmxvYWRlZEZpbHRlcnMkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBsb2FkZWRGaWx0ZXJzKys7XG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJzVG9Mb2FkID09PSBsb2FkZWRGaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRGaWx0ZXJzJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIuZXhlY3V0ZShmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucXVlcnlCdWlsZGVyLnBvcHVsYXRlRmlsdGVycy5uZXh0KGZpbHRlcnNGcm9tRW5jb2RlZFF1ZXJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5QnVpbGRlci5wb3B1bGF0ZUZpbHRlcnMubmV4dCh7fSk7XG4gICAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIuZXhlY3V0ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5xdWVyeUJ1aWxkZXIudXNlclF1ZXJ5ID0gZXh0cmFjdFVzZXJRdWVyeUZyb21FbmNvZGVkUXVlcnkodGhpcy5lbmNvZGVkUXVlcnkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2hFcnJvcihlcnJvcjogeyBtZXNzYWdlOiBhbnkgfSkge1xuICAgIGNvbnN0IHsgc3RhdHVzQ29kZSB9ID0gSlNPTi5wYXJzZShlcnJvci5tZXNzYWdlKS5lcnJvcjtcblxuICAgIGNvbnN0IG1lc3NhZ2VLZXkgPSBgQVBQLkJST1dTRS5TRUFSQ0guRVJST1JTLiR7c3RhdHVzQ29kZX1gO1xuICAgIGxldCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChtZXNzYWdlS2V5KTtcblxuICAgIGlmIChtZXNzYWdlID09PSBtZXNzYWdlS2V5KSB7XG4gICAgICBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChgQVBQLkJST1dTRS5TRUFSQ0guRVJST1JTLkdFTkVSSUNgKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgb25TZWFyY2hSZXN1bHRMb2FkZWQobm9kZVBhZ2luZzogUmVzdWx0U2V0UGFnaW5nKSB7XG4gICAgdGhpcy5kYXRhID0gbm9kZVBhZ2luZztcbiAgICB0aGlzLnRvdGFsUmVzdWx0cyA9IHRoaXMuZ2V0TnVtYmVyT2ZSZXN1bHRzKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U2VhcmNoSXRlbXNUb3RhbENvdW50QWN0aW9uKHRoaXMudG90YWxSZXN1bHRzKSk7XG4gIH1cblxuICBnZXROdW1iZXJPZlJlc3VsdHMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YT8ubGlzdD8ucGFnaW5hdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5saXN0LnBhZ2luYXRpb24udG90YWxJdGVtcztcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBvblBhZ2luYXRpb25DaGFuZ2VkKHBhZ2luYXRpb246IFBhZ2luYXRpb24pIHtcbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci5wYWdpbmcgPSB7XG4gICAgICBtYXhJdGVtczogcGFnaW5hdGlvbi5tYXhJdGVtcyxcbiAgICAgIHNraXBDb3VudDogcGFnaW5hdGlvbi5za2lwQ291bnRcbiAgICB9O1xuICAgIHRoaXMucXVlcnlCdWlsZGVyLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTb3J0aW5nKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBwcmltYXJ5ID0gdGhpcy5xdWVyeUJ1aWxkZXIuZ2V0UHJpbWFyeVNvcnRpbmcoKTtcblxuICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICByZXR1cm4gW3ByaW1hcnkua2V5LCBwcmltYXJ5LmFzY2VuZGluZyA/ICdhc2MnIDogJ2Rlc2MnXTtcbiAgICB9XG5cbiAgICByZXR1cm4gWyduYW1lJywgJ2FzYyddO1xuICB9XG5cbiAgb25Ob2RlRG91YmxlQ2xpY2sobm9kZTogTm9kZUVudHJ5KSB7XG4gICAgaWYgKG5vZGU/LmVudHJ5KSB7XG4gICAgICBpZiAobm9kZS5lbnRyeS5pc0ZvbGRlcikge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZVRvRm9sZGVyKG5vZGUpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNob3dQcmV2aWV3KG5vZGUsIHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVOb2RlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5vbk5vZGVEb3VibGVDbGljaygoZXZlbnQgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbD8ubm9kZSk7XG4gIH1cblxuICBvblByZXZpZXdDbG9zZWQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2hvd0luZm9EcmF3ZXJQcmV2aWV3QWN0aW9uKCkpO1xuICB9XG5cbiAgb25EcmF3ZXJDbG9zZWQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbihmYWxzZSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEluZm9EcmF3ZXJTdGF0ZUFjdGlvbihmYWxzZSkpO1xuICB9XG5cbiAgb25TZWFyY2hTb3J0aW5nVXBkYXRlKG9wdGlvbjogU2VhcmNoU29ydGluZ0RlZmluaXRpb24pIHtcbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci5zb3J0aW5nID0gW3sgLi4ub3B0aW9uLCBhc2NlbmRpbmc6IG9wdGlvbi5hc2NlbmRpbmcgfV07XG4gICAgdGhpcy5xdWVyeUJ1aWxkZXIudXBkYXRlKCk7XG4gIH1cblxuICBlZGl0U2F2ZWRTZWFyY2goc2VhcmNoVG9TYXZlOiBTYXZlZFNlYXJjaCkge1xuICAgIHNlYXJjaFRvU2F2ZS5lbmNvZGVkVXJsID0gdGhpcy5lbmNvZGVkUXVlcnk7XG4gICAgdGhpcy5zYXZlZFNlYXJjaGVzU2VydmljZVxuICAgICAgLmVkaXRTYXZlZFNlYXJjaChzZWFyY2hUb1NhdmUpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTbmFja2JhckluZm9BY3Rpb24oJ0FQUC5CUk9XU0UuU0VBUkNILlNBVkVfU0VBUkNILkVESVRfRElBTE9HLlNVQ0NFU1NfTUVTU0FHRScpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTbmFja2JhckVycm9yQWN0aW9uKCdBUFAuQlJPV1NFLlNFQVJDSC5TQVZFX1NFQVJDSC5FRElUX0RJQUxPRy5FUlJPUl9NRVNTQUdFJykpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVXNlclF1ZXJ5KCk6IHZvaWQge1xuICAgIGNvbnN0IHVwZGF0ZWRVc2VyUXVlcnkgPSBmb3JtYXRTZWFyY2hUZXJtKHRoaXMuc2VhcmNoZWRXb3JkLCB0aGlzLnNlYXJjaENvbmZpZ1snYXBwOmZpZWxkcyddKTtcbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci51c2VyUXVlcnkgPSB1cGRhdGVkVXNlclF1ZXJ5O1xuICB9XG59XG4iLCI8YWNhLXBhZ2UtbGF5b3V0IFtjbGFzcy5hY2Etc2VhcmNoLXJlc3VsdHMtYWN0aXZlLXNlYXJjaC1haS1pbnB1dF09XCJzZWFyY2hBaUlucHV0U3RhdGUuYWN0aXZlXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2EtcGFnZS1sYXlvdXQtaGVhZGVyXCI+XG4gICAgPGFjYS1zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyXG4gICAgICAqbmdJZj1cInNlYXJjaEFpSW5wdXRTdGF0ZS5hY3RpdmVcIlxuICAgICAgW2FnZW50SWRdPVwic2VhcmNoQWlJbnB1dFN0YXRlLnNlbGVjdGVkQWdlbnRJZFwiIC8+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICA8YWNhLXNlYXJjaC1pbnB1dCAvPlxuICAgICAgPGFjYS1idWxrLWFjdGlvbnMtZHJvcGRvd24gKm5nSWY9XCJidWxrQWN0aW9uc1wiIFtpdGVtc109XCJidWxrQWN0aW9uc1wiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNhLXNlYXJjaC10b29sYmFyLXNwYWNlclwiPjwvZGl2PlxuICAgICAgPGFjYS10b29sYmFyIFtpdGVtc109XCJhY3Rpb25zXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1tYWluLWNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLXJlc3VsdHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1zZWFyY2gtcmVzdWx0c19fY29udGVudFwiPlxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLXJlc3VsdHNfX2NvbnRlbnQtaGVhZGVyIGFjYS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNhLWNvbnRlbnRfX2ZpbHRlci1zZXRcIj5cbiAgICAgICAgICAgICAgPHA+e3sgJ0FQUC5CUk9XU0UuU0VBUkNILkZJTFRFUl9TRVQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICA8YWRmLXNlYXJjaC1mb3JtIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlciBbdmVydGljYWxdPVwidHJ1ZVwiIGNsYXNzPVwiYWNhLWNvbnRlbnRfX2RpdmlkZXJcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjYS1jb250ZW50X19hZHZhbmNlZC1maWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2EtY29udGVudF9fYWR2YW5jZWQtZmlsdGVycy0taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHA+e3sgJ0FQUC5CUk9XU0UuU0VBUkNILkFEVkFOQ0VEX0ZJTFRFUlMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2EtY29udGVudF9fYWR2YW5jZWQtZmlsdGVycy0taGVhZGVyLS1hY3Rpb24tYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImluaXRpYWxTYXZlZFNlYXJjaCAhPT0gdW5kZWZpbmVkIGVsc2Ugc2F2ZVNlYXJjaEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmNvZGVkUXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjYS1jb250ZW50X19zYXZlLXNlYXJjaC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBUFAuQlJPV1NFLlNFQVJDSC5TQVZFX1NFQVJDSC5BQ1RJT05fQlVUVE9OJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FQUC5CUk9XU0UuU0VBUkNILlNBVkVfU0VBUkNILkFDVElPTl9CVVRUT04nIHwgdHJhbnNsYXRlIFwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzYXZlU2VhcmNoT3B0aW9uc01lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FQUC5CUk9XU0UuU0VBUkNILlNBVkVfU0VBUkNILkFDVElPTl9CVVRUT04nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBpY29uUG9zaXRpb25FbmQ+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjc2F2ZVNlYXJjaE9wdGlvbnNNZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0U2F2ZWRTZWFyY2goaW5pdGlhbFNhdmVkU2VhcmNoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQVBQLkJST1dTRS5TRUFSQ0guU0FWRV9TRUFSQ0guU0FWRV9DSEFOR0VTJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVBQLkJST1dTRS5TRUFSQ0guU0FWRV9TRUFSQ0guU0FWRV9DSEFOR0VTJyB8IHRyYW5zbGF0ZSBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyAnQVBQLkJST1dTRS5TRUFSQ0guU0FWRV9TRUFSQ0guU0FWRV9DSEFOR0VTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICBhY2FTYXZlU2VhcmNoXG4gICAgICAgICAgICAgICAgICAgICAgW2FjYVNhdmVTZWFyY2hRdWVyeV09XCJlbmNvZGVkUXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FQUC5CUk9XU0UuU0VBUkNILlNBVkVfU0VBUkNILlNBVkVfQVNfTkVXJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVBQLkJST1dTRS5TRUFSQ0guU0FWRV9TRUFSQ0guU0FWRV9BU19ORVcnIHwgdHJhbnNsYXRlIFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdBUFAuQlJPV1NFLlNFQVJDSC5TQVZFX1NFQVJDSC5TQVZFX0FTX05FVycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzYXZlU2VhcmNoQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFjYVNhdmVTZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgICBbYWNhU2F2ZVNlYXJjaFF1ZXJ5XT1cImVuY29kZWRRdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmNvZGVkUXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWNhLWNvbnRlbnRfX3NhdmUtc2VhcmNoLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQVBQLkJST1dTRS5TRUFSQ0guU0FWRV9TRUFSQ0guQUNUSU9OX0JVVFRPTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FQUC5CUk9XU0UuU0VBUkNILlNBVkVfU0VBUkNILkFDVElPTl9CVVRUT04nIHwgdHJhbnNsYXRlIFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdBUFAuQlJPV1NFLlNFQVJDSC5TQVZFX1NFQVJDSC5BQ1RJT05fQlVUVE9OJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgYWRmLXJlc2V0LXNlYXJjaFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjYS1jb250ZW50X19yZXNldC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBUFAuQlJPV1NFLlNFQVJDSC5SRVNFVF9BQ1RJT04nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVBQLkJST1dTRS5TRUFSQ0guUkVTRVRfQUNUSU9OJyB8IHRyYW5zbGF0ZSBcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FQUC5CUk9XU0UuU0VBUkNILlJFU0VUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YWRmLXNlYXJjaC1maWx0ZXItY2hpcHMgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGFkZi1kb2N1bWVudC1saXN0XG4gICAgICAgICAgICAjZG9jdW1lbnRMaXN0XG4gICAgICAgICAgICBhY2FEb2N1bWVudExpc3RcbiAgICAgICAgICAgIGFjYUNvbnRleHRBY3Rpb25zXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGlwbGUnXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzb3J0aW5nTW9kZV09XCInc2VydmVyJ1wiXG4gICAgICAgICAgICBbc29ydGluZ109XCJzb3J0aW5nXCJcbiAgICAgICAgICAgIFtwcmVzZWxlY3ROb2Rlc109XCJzZWxlY3RlZE5vZGVzU3RhdGU/Lm5vZGVzXCJcbiAgICAgICAgICAgIFtkaXNwbGF5Q2hlY2tib3hlc09uSG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaW1hZ2VSZXNvbHZlcl09XCJpbWFnZVJlc29sdmVyXCJcbiAgICAgICAgICAgIFtpc1Jlc2l6aW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtibHVyT25SZXNpemVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW25vZGVdPVwiJGFueShkYXRhKVwiXG4gICAgICAgICAgICAobm9kZS1kYmxjbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRhdGEtY29sdW1ucz5cbiAgICAgICAgICAgICAgPGRhdGEtY29sdW1uIGlkPVwiYXBwLnNlYXJjaC50aHVtYm5haWxcIiBrZXk9XCIkdGh1bWJuYWlsXCIgdHlwZT1cImltYWdlXCIgW3NyLXRpdGxlXT1cIidBREYtRE9DVU1FTlQtTElTVC5MQVlPVVQuVEhVTUJOQUlMJ1wiIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgICAgICAgIDxhY2EtY3VzdG9tLXRodW1ibmFpbC1jb2x1bW4gW2NvbnRleHRdPVwiY29udGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIDxhZGYtZGF0YS1jb2x1bW4taGVhZGVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8YWNhLXNlYXJjaC1hY3Rpb24tbWVudSAoc29ydGluZ1NlbGVjdGVkKT1cIm9uU2VhcmNoU29ydGluZ1VwZGF0ZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9hZGYtZGF0YS1jb2x1bW4taGVhZGVyPlxuICAgICAgICAgICAgICA8L2RhdGEtY29sdW1uPlxuXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Q29sdW1uSWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnRlbXBsYXRlICYmICEoY29sdW1uLmRlc2t0b3BPbmx5ICYmIGlzU21hbGxTY3JlZW4pXCI+XG4gICAgICAgICAgICAgICAgICA8ZGF0YS1jb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbHVtbi5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrZXldPVwiY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJjb2x1bW4udHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiY29sdW1uLmZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW4uY2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NvcnRpbmdLZXldPVwiY29sdW1uLnNvcnRpbmdLZXkgfHwgY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0hpZGRlbl09XCJjb2x1bW4uaXNIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImNvbHVtbi5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICAgICAgICBbcmVzaXphYmxlXT1cImNvbHVtbi5yZXNpemFibGVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWNvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGFkZi1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLnRlbXBsYXRlXCIgW2NvbnRleHRdPVwiY29udGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L2RhdGEtY29sdW1uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4udGVtcGxhdGUgJiYgIShjb2x1bW4uZGVza3RvcE9ubHkgJiYgaXNTbWFsbFNjcmVlbilcIj5cbiAgICAgICAgICAgICAgICAgIDxkYXRhLWNvbHVtblxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29sdW1uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2tleV09XCJjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImNvbHVtbi50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJjb2x1bW4uZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbHVtbi5jbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbc29ydGluZ0tleV09XCJjb2x1bW4uc29ydGluZ0tleSB8fCBjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2lzSGlkZGVuXT1cImNvbHVtbi5pc0hpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZXNpemFibGVdPVwiY29sdW1uLnJlc2l6YWJsZVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGF0YS1jb2x1bW5zPlxuXG4gICAgICAgICAgICA8YWRmLWN1c3RvbS1lbXB0eS1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zZWFyY2hfX2Jsb2NrXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5LXNlYXJjaF9fdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQVBQLkJST1dTRS5TRUFSQ0guTk9fUkVTVUxUUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2FkZi1jdXN0b20tZW1wdHktY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2FkZi1kb2N1bWVudC1saXN0PlxuXG4gICAgICAgICAgPGFkZi1wYWdpbmF0aW9uICpuZ0lmPVwidG90YWxSZXN1bHRzID4gMFwiIGFjYVBhZ2luYXRpb24gW3RhcmdldF09XCJkb2N1bWVudExpc3RcIiAoY2hhbmdlKT1cIm9uUGFnaW5hdGlvbkNoYW5nZWQoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIChpbmZvRHJhd2VyUHJldmlldyQgfCBhc3luYykgPT09IHRydWUgPyAnYWRmLXNlYXJjaC1yZXN1bHRzLS1yaWdodF9wYW5lbF9zZWN0aW9uLWV4dGVuZGVkJyA6ICdhZGYtc2VhcmNoLXJlc3VsdHMtLXJpZ2h0X3BhbmVsX3NlY3Rpb24nXG4gICAgICBcIlxuICAgICAgKm5nSWY9XCJpbmZvRHJhd2VyT3BlbmVkJCB8IGFzeW5jXCJcbiAgICA+XG4gICAgICA8YWRmLWFsZnJlc2NvLXZpZXdlclxuICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtcmVzdWx0cy0tZW1iZWRkZWRfdmlld2VyXCJcbiAgICAgICAgW25vZGVJZF09XCJzZWxlY3Rpb24ubGFzdC5lbnRyeS5pZFwiXG4gICAgICAgICpuZ0lmPVwiaW5mb0RyYXdlclByZXZpZXckIHwgYXN5bmM7IGVsc2UgaW5mb0RyYXdlclBhbmVsXCJcbiAgICAgID5cbiAgICAgICAgPGFkZi12aWV3ZXItdG9vbGJhcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXNlYXJjaC1yZXN1bHRzLS1wcmV2aWV3LXRvb2xiYXJcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cIiAoY2xpY2spPVwib25EcmF3ZXJDbG9zZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BQ1RJT05TLlBSRVZJRVcnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLXJlc3VsdHMtLXZpc2liaWxpdHlfYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj52aXNpYmlsaXR5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5JTkZPJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJvblByZXZpZXdDbG9zZWQoKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5pbmZvX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FkZi12aWV3ZXItdG9vbGJhcj5cbiAgICAgIDwvYWRmLWFsZnJlc2NvLXZpZXdlcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5mb0RyYXdlclBhbmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNhLXNpZGViYXJcIj5cbiAgICAgICAgICA8YWNhLWluZm8tZHJhd2VyIFtub2RlXT1cInNlbGVjdGlvbi5sYXN0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWNhLXBhZ2UtbGF5b3V0PlxuIl19
|