@alfresco/aca-content 5.1.1 → 5.2.0
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 +280 -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 +359 -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 +237 -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 +192 -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 +166 -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 +125 -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 +82 -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 +81 -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 +62 -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 +154 -0
- package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +75 -0
- package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +106 -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 +336 -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 +213 -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 +145 -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 +135 -0
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +181 -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 +210 -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 +297 -0
- package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +94 -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 +279 -0
- package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +149 -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 +94 -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 +89 -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 +65 -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 +107 -0
- package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +103 -0
- package/esm2022/lib/components/sidenav/sidenav.component.mjs +101 -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 +112 -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 +55 -0
- package/esm2022/lib/components/view-profile/view-profile.component.mjs +200 -0
- package/esm2022/lib/dialogs/node-template/create-from-template.dialog.mjs +127 -0
- package/esm2022/lib/directives/document-list.directive.mjs +207 -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 +246 -0
- package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +261 -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 +357 -316
- 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 +95 -64
- package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -0
- package/fesm2022/alfresco-aca-content.mjs +11091 -0
- package/fesm2022/alfresco-aca-content.mjs.map +1 -0
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +1 -1
- 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/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 +5 -10
- package/lib/components/common/location-link/location-link.component.d.ts +1 -1
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +1 -1
- 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 +1 -1
- 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 -1
- package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +1 -1
- 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/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 +1 -1
- 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 +1 -1
- 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 +1 -2
- package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +4 -5
- 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 +2 -3
- package/lib/components/search/search-input/search-input.component.d.ts +12 -14
- package/lib/components/search/search-input-control/search-input-control.component.d.ts +1 -1
- 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 +15 -9
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
- 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 +44 -0
- 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/directives/action.directive.d.ts +28 -1
- package/lib/components/sidenav/directives/active-link.directive.d.ts +2 -2
- package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +1 -1
- package/lib/components/sidenav/directives/menu-panel.directive.d.ts +1 -1
- package/lib/components/sidenav/sidenav.component.d.ts +4 -3
- 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/view-node/view-node.component.d.ts +1 -1
- 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/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
|
@@ -1,114 +0,0 @@
|
|
|
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 { Component, ViewEncapsulation, HostListener, ViewChild, Inject } from '@angular/core';
|
|
25
|
-
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
26
|
-
import { Subject } from 'rxjs';
|
|
27
|
-
import { takeUntil } from 'rxjs/operators';
|
|
28
|
-
import { DynamicExtensionComponent } from '@alfresco/adf-extensions';
|
|
29
|
-
import { ContextMenuOverlayRef } from './context-menu-overlay';
|
|
30
|
-
import { CONTEXT_MENU_DIRECTION } from './direction.token';
|
|
31
|
-
import { AppExtensionService } from '@alfresco/aca-shared';
|
|
32
|
-
import { CommonModule } from '@angular/common';
|
|
33
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
34
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
35
|
-
import { IconComponent } from '@alfresco/adf-core';
|
|
36
|
-
import { ContextMenuItemComponent } from './context-menu-item.component';
|
|
37
|
-
import { OutsideEventDirective } from './context-menu-outside-event.directive';
|
|
38
|
-
import * as i0 from "@angular/core";
|
|
39
|
-
import * as i1 from "./context-menu-overlay";
|
|
40
|
-
import * as i2 from "@alfresco/aca-shared";
|
|
41
|
-
import * as i3 from "@angular/common";
|
|
42
|
-
import * as i4 from "@ngx-translate/core";
|
|
43
|
-
import * as i5 from "@angular/material/menu";
|
|
44
|
-
import * as i6 from "@angular/cdk/bidi";
|
|
45
|
-
import * as i7 from "@angular/material/divider";
|
|
46
|
-
export class ContextMenuComponent {
|
|
47
|
-
handleKeydownEscape(event) {
|
|
48
|
-
if (event) {
|
|
49
|
-
if (this.contextMenuOverlayRef) {
|
|
50
|
-
this.contextMenuOverlayRef.close();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
constructor(contextMenuOverlayRef, extensions, direction) {
|
|
55
|
-
this.contextMenuOverlayRef = contextMenuOverlayRef;
|
|
56
|
-
this.extensions = extensions;
|
|
57
|
-
this.direction = direction;
|
|
58
|
-
this.onDestroy$ = new Subject();
|
|
59
|
-
this.actions = [];
|
|
60
|
-
}
|
|
61
|
-
onClickOutsideEvent() {
|
|
62
|
-
if (this.contextMenuOverlayRef) {
|
|
63
|
-
this.contextMenuOverlayRef.close();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
runAction(contentActionRef) {
|
|
67
|
-
this.extensions.runActionById(contentActionRef.actions.click, {
|
|
68
|
-
focusedElementOnCloseSelector: '.adf-context-menu-source'
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
this.onDestroy$.next(true);
|
|
73
|
-
this.onDestroy$.complete();
|
|
74
|
-
}
|
|
75
|
-
ngOnInit() {
|
|
76
|
-
this.extensions
|
|
77
|
-
.getAllowedContextMenuActions()
|
|
78
|
-
.pipe(takeUntil(this.onDestroy$))
|
|
79
|
-
.subscribe((actions) => (this.actions = actions));
|
|
80
|
-
}
|
|
81
|
-
ngAfterViewInit() {
|
|
82
|
-
setTimeout(() => this.trigger.openMenu(), 0);
|
|
83
|
-
}
|
|
84
|
-
trackByActionId(_, obj) {
|
|
85
|
-
return obj.id;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
ContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.ContextMenuOverlayRef }, { token: i2.AppExtensionService }, { token: CONTEXT_MENU_DIRECTION }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ContextMenuComponent, isStandalone: true, selector: "aca-context-menu", host: { listeners: { "document:keydown.Escape": "handleKeydownEscape($event)" }, classAttribute: "aca-context-menu-holder" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div [dir]=\"direction\">\n <div style=\"visibility: hidden;\" [matMenuTriggerFor]=\"rootMenu\"></div>\n\n <mat-menu #rootMenu=\"matMenu\" class=\"aca-context-menu\" hasBackdrop=\"false\" acaContextMenuOutsideEvent (clickOutside)=\"onClickOutsideEvent()\">\n <ng-container *ngFor=\"let entry of actions; trackBy: trackByActionId\" [ngSwitch]=\"entry.type\">\n <ng-container *ngSwitchDefault>\n <button mat-menu-item [id]=\"entry.id\" (click)=\"runAction(entry)\">\n <adf-icon [value]=\"entry.icon\" class=\"app-context-menu-item--icon\"></adf-icon>\n <span [attr.data-automation-id]=\"entry.id + '-label'\">{{ entry.title | translate }}</span>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <button mat-menu-item [id]=\"entry.id\" [matMenuTriggerFor]=\"childMenu\">\n <adf-icon [value]=\"entry.icon\" class=\"app-context-menu-item--icon\"></adf-icon>\n <span [attr.data-automation-id]=\"entry.id + '-label'\">{{ entry.title | translate }}</span>\n </button>\n\n <mat-menu #childMenu=\"matMenu\">\n <ng-container *ngFor=\"let child of entry.children; trackBy: trackByActionId\">\n <app-context-menu-item [actionRef]=\"child\"></app-context-menu-item>\n </ng-container>\n </mat-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <adf-dynamic-component [data]=\"entry.data\" [id]=\"entry.component\"></adf-dynamic-component>\n </ng-container>\n </ng-container>\n </mat-menu>\n</div>\n", styles: [".aca-context-menu .app-context-menu-item--icon{display:inline-flex;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: ContextMenuItemComponent, selector: "app-context-menu-item", inputs: ["actionRef"] }, { kind: "directive", type: OutsideEventDirective, selector: "[acaContextMenuOutsideEvent]", outputs: ["clickOutside"] }, { kind: "component", type: IconComponent, selector: "adf-icon", inputs: ["color", "fontSet", "value"] }, { kind: "component", type: DynamicExtensionComponent, selector: "adf-dynamic-component", inputs: ["id", "data"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
91
|
-
type: Component,
|
|
92
|
-
args: [{ standalone: true, imports: [
|
|
93
|
-
CommonModule,
|
|
94
|
-
TranslateModule,
|
|
95
|
-
MatMenuModule,
|
|
96
|
-
MatDividerModule,
|
|
97
|
-
ContextMenuItemComponent,
|
|
98
|
-
OutsideEventDirective,
|
|
99
|
-
IconComponent,
|
|
100
|
-
DynamicExtensionComponent
|
|
101
|
-
], selector: 'aca-context-menu', host: {
|
|
102
|
-
class: 'aca-context-menu-holder'
|
|
103
|
-
}, encapsulation: ViewEncapsulation.None, template: "<div [dir]=\"direction\">\n <div style=\"visibility: hidden;\" [matMenuTriggerFor]=\"rootMenu\"></div>\n\n <mat-menu #rootMenu=\"matMenu\" class=\"aca-context-menu\" hasBackdrop=\"false\" acaContextMenuOutsideEvent (clickOutside)=\"onClickOutsideEvent()\">\n <ng-container *ngFor=\"let entry of actions; trackBy: trackByActionId\" [ngSwitch]=\"entry.type\">\n <ng-container *ngSwitchDefault>\n <button mat-menu-item [id]=\"entry.id\" (click)=\"runAction(entry)\">\n <adf-icon [value]=\"entry.icon\" class=\"app-context-menu-item--icon\"></adf-icon>\n <span [attr.data-automation-id]=\"entry.id + '-label'\">{{ entry.title | translate }}</span>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'separator'\">\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <button mat-menu-item [id]=\"entry.id\" [matMenuTriggerFor]=\"childMenu\">\n <adf-icon [value]=\"entry.icon\" class=\"app-context-menu-item--icon\"></adf-icon>\n <span [attr.data-automation-id]=\"entry.id + '-label'\">{{ entry.title | translate }}</span>\n </button>\n\n <mat-menu #childMenu=\"matMenu\">\n <ng-container *ngFor=\"let child of entry.children; trackBy: trackByActionId\">\n <app-context-menu-item [actionRef]=\"child\"></app-context-menu-item>\n </ng-container>\n </mat-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <adf-dynamic-component [data]=\"entry.data\" [id]=\"entry.component\"></adf-dynamic-component>\n </ng-container>\n </ng-container>\n </mat-menu>\n</div>\n", styles: [".aca-context-menu .app-context-menu-item--icon{display:inline-flex;vertical-align:middle}\n"] }]
|
|
104
|
-
}], ctorParameters: function () { return [{ type: i1.ContextMenuOverlayRef }, { type: i2.AppExtensionService }, { type: undefined, decorators: [{
|
|
105
|
-
type: Inject,
|
|
106
|
-
args: [CONTEXT_MENU_DIRECTION]
|
|
107
|
-
}] }]; }, propDecorators: { trigger: [{
|
|
108
|
-
type: ViewChild,
|
|
109
|
-
args: [MatMenuTrigger]
|
|
110
|
-
}], handleKeydownEscape: [{
|
|
111
|
-
type: HostListener,
|
|
112
|
-
args: ['document:keydown.Escape', ['$event']]
|
|
113
|
-
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBcUIsWUFBWSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFvQix5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7QUFzQi9FLE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsWUFDVSxxQkFBNEMsRUFDNUMsVUFBK0IsRUFDQSxTQUFvQjtRQUZuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQ0EsY0FBUyxHQUFULFNBQVMsQ0FBVztRQWxCckQsZUFBVSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzlELFlBQU8sR0FBNEIsRUFBRSxDQUFDO0lBa0JuQyxDQUFDO0lBRUosbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsZ0JBQWtDO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDNUQsNkJBQTZCLEVBQUUsMEJBQTBCO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVO2FBQ1osNEJBQTRCLEVBQUU7YUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBUyxFQUFFLEdBQXFCO1FBQzlDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDOztrSEFwRFUsb0JBQW9CLDBGQW1CckIsc0JBQXNCO3NHQW5CckIsb0JBQW9CLG1QQUlwQixjQUFjLGdEQ2hFM0Isb3FEQW1DQSxvSkRRSSxZQUFZLHVhQUNaLGVBQWUsMkZBQ2YsYUFBYSxtZ0JBQ2IsZ0JBQWdCLG1JQUNoQix3QkFBd0IseUZBQ3hCLHFCQUFxQixvR0FDckIsYUFBYSw0RkFDYix5QkFBeUI7NEZBVWhCLG9CQUFvQjtrQkFwQmhDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IseUJBQXlCO3FCQUMxQixZQUNTLGtCQUFrQixRQUd0Qjt3QkFDSixLQUFLLEVBQUUseUJBQXlCO3FCQUNqQyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFxQmxDLE1BQU07MkJBQUMsc0JBQXNCOzRDQWRoQyxPQUFPO3NCQUROLFNBQVM7dUJBQUMsY0FBYztnQkFJekIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uSW5pdCwgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlLCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGVudEFjdGlvblJlZiwgRHluYW1pY0V4dGVuc2lvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudU92ZXJsYXlSZWYgfSBmcm9tICcuL2NvbnRleHQtbWVudS1vdmVybGF5JztcbmltcG9ydCB7IENPTlRFWFRfTUVOVV9ESVJFQ1RJT04gfSBmcm9tICcuL2RpcmVjdGlvbi50b2tlbic7XG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBBcHBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0TWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdXRzaWRlRXZlbnREaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRleHQtbWVudS1vdXRzaWRlLWV2ZW50LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgQ29udGV4dE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE91dHNpZGVFdmVudERpcmVjdGl2ZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIER5bmFtaWNFeHRlbnNpb25Db21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtY29udGV4dC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhY2EtY29udGV4dC1tZW51LWhvbGRlcidcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgYWN0aW9uczogQXJyYXk8Q29udGVudEFjdGlvblJlZj4gPSBbXTtcblxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKVxuICB0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLkVzY2FwZScsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWRvd25Fc2NhcGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHRNZW51T3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51T3ZlcmxheVJlZi5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29udGV4dE1lbnVPdmVybGF5UmVmOiBDb250ZXh0TWVudU92ZXJsYXlSZWYsXG4gICAgcHJpdmF0ZSBleHRlbnNpb25zOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoQ09OVEVYVF9NRU5VX0RJUkVDVElPTikgcHVibGljIGRpcmVjdGlvbjogRGlyZWN0aW9uXG4gICkge31cblxuICBvbkNsaWNrT3V0c2lkZUV2ZW50KCkge1xuICAgIGlmICh0aGlzLmNvbnRleHRNZW51T3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5jb250ZXh0TWVudU92ZXJsYXlSZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBydW5BY3Rpb24oY29udGVudEFjdGlvblJlZjogQ29udGVudEFjdGlvblJlZikge1xuICAgIHRoaXMuZXh0ZW5zaW9ucy5ydW5BY3Rpb25CeUlkKGNvbnRlbnRBY3Rpb25SZWYuYWN0aW9ucy5jbGljaywge1xuICAgICAgZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3I6ICcuYWRmLWNvbnRleHQtbWVudS1zb3VyY2UnXG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldEFsbG93ZWRDb250ZXh0TWVudUFjdGlvbnMoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zKSA9PiAodGhpcy5hY3Rpb25zID0gYWN0aW9ucykpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyLm9wZW5NZW51KCksIDApO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbklkKF86IG51bWJlciwgb2JqOiBDb250ZW50QWN0aW9uUmVmKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb2JqLmlkO1xuICB9XG59XG4iLCI8ZGl2IFtkaXJdPVwiZGlyZWN0aW9uXCI+XG4gIDxkaXYgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInJvb3RNZW51XCI+PC9kaXY+XG5cbiAgPG1hdC1tZW51ICNyb290TWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImFjYS1jb250ZXh0LW1lbnVcIiBoYXNCYWNrZHJvcD1cImZhbHNlXCIgYWNhQ29udGV4dE1lbnVPdXRzaWRlRXZlbnQgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZUV2ZW50KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBhY3Rpb25zOyB0cmFja0J5OiB0cmFja0J5QWN0aW9uSWRcIiBbbmdTd2l0Y2hdPVwiZW50cnkudHlwZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2lkXT1cImVudHJ5LmlkXCIgKGNsaWNrKT1cInJ1bkFjdGlvbihlbnRyeSlcIj5cbiAgICAgICAgICA8YWRmLWljb24gW3ZhbHVlXT1cImVudHJ5Lmljb25cIiBjbGFzcz1cImFwcC1jb250ZXh0LW1lbnUtaXRlbS0taWNvblwiPjwvYWRmLWljb24+XG4gICAgICAgICAgPHNwYW4gW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImVudHJ5LmlkICsgJy1sYWJlbCdcIj57eyBlbnRyeS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlcGFyYXRvcidcIj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbaWRdPVwiZW50cnkuaWRcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiY2hpbGRNZW51XCI+XG4gICAgICAgICAgPGFkZi1pY29uIFt2YWx1ZV09XCJlbnRyeS5pY29uXCIgY2xhc3M9XCJhcHAtY29udGV4dC1tZW51LWl0ZW0tLWljb25cIj48L2FkZi1pY29uPlxuICAgICAgICAgIDxzcGFuIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJlbnRyeS5pZCArICctbGFiZWwnXCI+e3sgZW50cnkudGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxtYXQtbWVudSAjY2hpbGRNZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGVudHJ5LmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5QWN0aW9uSWRcIj5cbiAgICAgICAgICAgIDxhcHAtY29udGV4dC1tZW51LWl0ZW0gW2FjdGlvblJlZl09XCJjaGlsZFwiPjwvYXBwLWNvbnRleHQtbWVudS1pdGVtPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjdXN0b20nXCI+XG4gICAgICAgIDxhZGYtZHluYW1pYy1jb21wb25lbnQgW2RhdGFdPVwiZW50cnkuZGF0YVwiIFtpZF09XCJlbnRyeS5jb21wb25lbnRcIj48L2FkZi1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1tZW51PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,99 +0,0 @@
|
|
|
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 { Injectable, Injector } from '@angular/core';
|
|
25
|
-
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
26
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
27
|
-
import { ContextMenuOverlayRef } from './context-menu-overlay';
|
|
28
|
-
import { ContextMenuComponent } from './context-menu.component';
|
|
29
|
-
import { UserPreferencesService } from '@alfresco/adf-core';
|
|
30
|
-
import { CONTEXT_MENU_DIRECTION } from './direction.token';
|
|
31
|
-
import * as i0 from "@angular/core";
|
|
32
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
33
|
-
import * as i2 from "@alfresco/adf-core";
|
|
34
|
-
export class ContextMenuService {
|
|
35
|
-
constructor(injector, overlay, userPreferenceService) {
|
|
36
|
-
this.injector = injector;
|
|
37
|
-
this.overlay = overlay;
|
|
38
|
-
this.userPreferenceService = userPreferenceService;
|
|
39
|
-
this.userPreferenceService.select('textOrientation').subscribe((textOrientation) => {
|
|
40
|
-
this.direction = textOrientation;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
open(config) {
|
|
44
|
-
const overlay = this.createOverlay(config);
|
|
45
|
-
const overlayRef = new ContextMenuOverlayRef(overlay);
|
|
46
|
-
this.attachDialogContainer(overlay, overlayRef);
|
|
47
|
-
return overlayRef;
|
|
48
|
-
}
|
|
49
|
-
createOverlay(config) {
|
|
50
|
-
const overlayConfig = this.getOverlayConfig(config);
|
|
51
|
-
return this.overlay.create(overlayConfig);
|
|
52
|
-
}
|
|
53
|
-
attachDialogContainer(overlay, contextmenuOverlayRef) {
|
|
54
|
-
const injector = this.createInjector(contextmenuOverlayRef);
|
|
55
|
-
const containerPortal = new ComponentPortal(ContextMenuComponent, null, injector);
|
|
56
|
-
const containerRef = overlay.attach(containerPortal);
|
|
57
|
-
return containerRef.instance;
|
|
58
|
-
}
|
|
59
|
-
createInjector(contextmenuOverlayRef) {
|
|
60
|
-
return Injector.create({
|
|
61
|
-
parent: this.injector,
|
|
62
|
-
providers: [
|
|
63
|
-
{ provide: ContextMenuOverlayRef, useValue: contextmenuOverlayRef },
|
|
64
|
-
{ provide: CONTEXT_MENU_DIRECTION, useValue: this.direction }
|
|
65
|
-
]
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
getOverlayConfig(config) {
|
|
69
|
-
const { x, y } = config.source;
|
|
70
|
-
const positionStrategy = this.overlay
|
|
71
|
-
.position()
|
|
72
|
-
.flexibleConnectedTo({ x, y })
|
|
73
|
-
.withPositions([
|
|
74
|
-
{
|
|
75
|
-
originX: 'end',
|
|
76
|
-
originY: 'bottom',
|
|
77
|
-
overlayX: 'end',
|
|
78
|
-
overlayY: 'top'
|
|
79
|
-
}
|
|
80
|
-
]);
|
|
81
|
-
return new OverlayConfig({
|
|
82
|
-
hasBackdrop: config.hasBackdrop,
|
|
83
|
-
backdropClass: config.backdropClass,
|
|
84
|
-
panelClass: config.panelClass,
|
|
85
|
-
scrollStrategy: this.overlay.scrollStrategies.close(),
|
|
86
|
-
positionStrategy,
|
|
87
|
-
direction: this.direction
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
ContextMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuService, deps: [{ token: i0.Injector }, { token: i1.Overlay }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
92
|
-
ContextMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuService, providedIn: 'root' });
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuService, decorators: [{
|
|
94
|
-
type: Injectable,
|
|
95
|
-
args: [{
|
|
96
|
-
providedIn: 'root'
|
|
97
|
-
}]
|
|
98
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Overlay }, { type: i2.UserPreferencesService }]; } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBSzNELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBb0IsUUFBa0IsRUFBVSxPQUFnQixFQUFVLHFCQUE2QztRQUFuRyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDckgsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFnQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVoRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQWdDO1FBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUFtQixFQUFFLHFCQUE0QztRQUM3RixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sWUFBWSxHQUF1QyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXpGLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRU8sY0FBYyxDQUFDLHFCQUE0QztRQUNqRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ25FLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2FBQzlEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQWdDO1FBQ3ZELE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUUvQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ2xDLFFBQVEsRUFBRTthQUNWLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzdCLGFBQWEsQ0FBQztZQUNiO2dCQUNFLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsS0FBSztnQkFDZixRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGLENBQUMsQ0FBQztRQUVMLE9BQU8sSUFBSSxhQUFhLENBQUM7WUFDdkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQjtZQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBakVVLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb250ZXh0TWVudU92ZXJsYXlSZWYgfSBmcm9tICcuL2NvbnRleHQtbWVudS1vdmVybGF5JztcbmltcG9ydCB7IENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRtZW51T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5VX0RJUkVDVElPTiB9IGZyb20gJy4vZGlyZWN0aW9uLnRva2VuJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdXNlclByZWZlcmVuY2VTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2Uuc2VsZWN0KCd0ZXh0T3JpZW50YXRpb24nKS5zdWJzY3JpYmUoKHRleHRPcmllbnRhdGlvbikgPT4ge1xuICAgICAgdGhpcy5kaXJlY3Rpb24gPSB0ZXh0T3JpZW50YXRpb247XG4gICAgfSk7XG4gIH1cblxuICBvcGVuKGNvbmZpZzogQ29udGV4dG1lbnVPdmVybGF5Q29uZmlnKTogQ29udGV4dE1lbnVPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5jcmVhdGVPdmVybGF5KGNvbmZpZyk7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IG5ldyBDb250ZXh0TWVudU92ZXJsYXlSZWYob3ZlcmxheSk7XG5cbiAgICB0aGlzLmF0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5LCBvdmVybGF5UmVmKTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KGNvbmZpZzogQ29udGV4dG1lbnVPdmVybGF5Q29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheTogT3ZlcmxheVJlZiwgY29udGV4dG1lbnVPdmVybGF5UmVmOiBDb250ZXh0TWVudU92ZXJsYXlSZWYpOiBDb250ZXh0TWVudUNvbXBvbmVudCB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yKGNvbnRleHRtZW51T3ZlcmxheVJlZik7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKENvbnRleHRNZW51Q29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XG4gICAgY29uc3QgY29udGFpbmVyUmVmOiBDb21wb25lbnRSZWY8Q29udGV4dE1lbnVDb21wb25lbnQ+ID0gb3ZlcmxheS5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcblxuICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2U7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUluamVjdG9yKGNvbnRleHRtZW51T3ZlcmxheVJlZjogQ29udGV4dE1lbnVPdmVybGF5UmVmKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ29udGV4dE1lbnVPdmVybGF5UmVmLCB1c2VWYWx1ZTogY29udGV4dG1lbnVPdmVybGF5UmVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogQ09OVEVYVF9NRU5VX0RJUkVDVElPTiwgdXNlVmFsdWU6IHRoaXMuZGlyZWN0aW9uIH1cbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyhjb25maWc6IENvbnRleHRtZW51T3ZlcmxheUNvbmZpZyk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gY29uZmlnLnNvdXJjZTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh7IHgsIHkgfSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgfVxuICAgICAgXSk7XG5cbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IGNvbmZpZy5oYXNCYWNrZHJvcCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IGNvbmZpZy5iYWNrZHJvcENsYXNzLFxuICAgICAgcGFuZWxDbGFzczogY29uZmlnLnBhbmVsQ2xhc3MsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,147 +0,0 @@
|
|
|
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 { Component, ViewEncapsulation } from '@angular/core';
|
|
25
|
-
import { ActivatedRoute, NavigationStart } from '@angular/router';
|
|
26
|
-
import { ContentApiService, PageComponent, PageLayoutComponent, ToolbarComponent } from '@alfresco/aca-shared';
|
|
27
|
-
import { NavigateToFolder, NavigateToPreviousPage, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
|
|
28
|
-
import { merge, Subject } from 'rxjs';
|
|
29
|
-
import { BreadcrumbComponent, ContentService, PermissionListComponent } from '@alfresco/adf-content-services';
|
|
30
|
-
import { CommonModule } from '@angular/common';
|
|
31
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
32
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
33
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
34
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
35
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
36
|
-
import { MetadataTabComponent } from '../info-drawer/metadata-tab/metadata-tab.component';
|
|
37
|
-
import { CommentsTabComponent } from '../info-drawer/comments-tab/comments-tab.component';
|
|
38
|
-
import { first, takeUntil } from 'rxjs/operators';
|
|
39
|
-
import { FileSizePipe, InfoDrawerButtonsDirective } from '@alfresco/adf-core';
|
|
40
|
-
import * as i0 from "@angular/core";
|
|
41
|
-
import * as i1 from "@angular/router";
|
|
42
|
-
import * as i2 from "@alfresco/aca-shared";
|
|
43
|
-
import * as i3 from "@alfresco/adf-content-services";
|
|
44
|
-
import * as i4 from "@angular/common";
|
|
45
|
-
import * as i5 from "@ngx-translate/core";
|
|
46
|
-
import * as i6 from "@angular/material/icon";
|
|
47
|
-
import * as i7 from "@angular/material/tabs";
|
|
48
|
-
import * as i8 from "@angular/material/progress-bar";
|
|
49
|
-
import * as i9 from "@angular/material/button";
|
|
50
|
-
export class DetailsComponent extends PageComponent {
|
|
51
|
-
constructor(route, contentApi, contentService) {
|
|
52
|
-
super();
|
|
53
|
-
this.route = route;
|
|
54
|
-
this.contentApi = contentApi;
|
|
55
|
-
this.contentService = contentService;
|
|
56
|
-
this.onDestroy$ = new Subject();
|
|
57
|
-
this.activeTab = 1;
|
|
58
|
-
this.aspectActions = [];
|
|
59
|
-
this.canManagePermissions = true;
|
|
60
|
-
}
|
|
61
|
-
ngOnInit() {
|
|
62
|
-
super.ngOnInit();
|
|
63
|
-
this.isLoading = true;
|
|
64
|
-
const { route } = this;
|
|
65
|
-
const { data } = route.snapshot;
|
|
66
|
-
this.title = data.title;
|
|
67
|
-
this.route.params.subscribe((params) => {
|
|
68
|
-
this.isLoading = true;
|
|
69
|
-
this.setActiveTab(params.activeTab);
|
|
70
|
-
this.nodeId = params.nodeId;
|
|
71
|
-
this.contentApi.getNode(this.nodeId).subscribe((node) => {
|
|
72
|
-
this.node = node.entry;
|
|
73
|
-
this.isLoading = false;
|
|
74
|
-
this.canManagePermissions = !this.isSmartFolder();
|
|
75
|
-
this.setActiveTab(params.activeTab);
|
|
76
|
-
this.store.dispatch(new SetSelectedNodesAction([{ entry: this.node }]));
|
|
77
|
-
this.nodeIcon = this.contentService.getNodeIcon(this.node);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
this.extensions
|
|
81
|
-
.getAllowedSidebarActions()
|
|
82
|
-
.pipe(first())
|
|
83
|
-
.subscribe((aspectActions) => {
|
|
84
|
-
this.aspectActions = aspectActions;
|
|
85
|
-
});
|
|
86
|
-
this.infoDrawerOpened$
|
|
87
|
-
.pipe(first((opened) => !opened), takeUntil(merge(this.onDestroy$, this.router.events.pipe(first((event) => event instanceof NavigationStart), takeUntil(this.onDestroy$)))))
|
|
88
|
-
.subscribe(() => this.goBack());
|
|
89
|
-
}
|
|
90
|
-
setActiveTab(tabName) {
|
|
91
|
-
switch (tabName) {
|
|
92
|
-
case 'comments':
|
|
93
|
-
this.activeTab = 1;
|
|
94
|
-
break;
|
|
95
|
-
case 'permissions':
|
|
96
|
-
if (!this.canManagePermissions) {
|
|
97
|
-
this.activeTab = 0;
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
this.activeTab = 2;
|
|
101
|
-
break;
|
|
102
|
-
case 'metadata':
|
|
103
|
-
default:
|
|
104
|
-
this.activeTab = 0;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
goBack() {
|
|
108
|
-
this.store.dispatch(new NavigateToPreviousPage());
|
|
109
|
-
}
|
|
110
|
-
onBreadcrumbNavigate(path) {
|
|
111
|
-
this.store.dispatch(new NavigateToFolder({ entry: path }));
|
|
112
|
-
}
|
|
113
|
-
ngOnDestroy() {
|
|
114
|
-
this.store.dispatch(new SetSelectedNodesAction([]));
|
|
115
|
-
this.onDestroy$.next();
|
|
116
|
-
this.onDestroy$.complete();
|
|
117
|
-
}
|
|
118
|
-
isSmartFolder() {
|
|
119
|
-
if (!this.node?.isFolder) {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
const nodeAspects = this.node.aspectNames ?? [];
|
|
123
|
-
return nodeAspects.includes('smf:customConfigSmartFolder') || nodeAspects.includes('smf:systemConfigSmartFolder');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
DetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DetailsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ContentApiService }, { token: i3.ContentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
-
DetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DetailsComponent, isStandalone: true, selector: "app-details-manager", usesInheritance: true, ngImport: i0, template: "<aca-page-layout>\n <div class=\"aca-page-layout-header\">\n <adf-breadcrumb [root]=\"title\" [folderNode]=\"node\" (navigate)=\"onBreadcrumbNavigate($event)\"> </adf-breadcrumb>\n <aca-toolbar [items]=\"actions\"></aca-toolbar>\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-details-container\">\n <div class=\"aca-details-title\">\n <div class=\"aca-details-breadcrumb\" role=\"heading\" aria-level=\"2\" *ngIf=\"node\">\n <span class=\"aca-details-breadcrumb-library\">\n <img class=\"aca-details-breadcrumb-icon\" alt=\"{{ 'APP.INFO_DRAWER.ICON' | translate }}\" src=\"{{ nodeIcon }}\">\n {{ node.name }} </span>\n </div>\n <div class=\"aca-details-buttons\">\n <aca-toolbar [items]=\"aspectActions\" info-drawer-buttons></aca-toolbar>\n <button\n class=\"aca-close-details-button\"\n mat-icon-button\n data-automation-id=\"close-library\"\n title=\"{{ 'APP.INFO_DRAWER.REDUCE_PANEL' | translate }}\"\n (click)=\"goBack()\">\n <mat-icon>fullscreen_exit</mat-icon>\n </button>\n </div>\n </div>\n\n <mat-tab-group [selectedIndex]=\"activeTab\" class=\"aca-details-tabs\" animationDuration=\"0\" mat-stretch-tabs=\"false\" mat-align-tabs=\"start\">\n <mat-tab label=\"{{ 'APP.INFO_DRAWER.TABS.PROPERTIES' | translate }}\">\n <ng-template matTabContent>\n <app-metadata-tab *ngIf=\"node && !isLoading; else loading\" [node]=\"node\"></app-metadata-tab>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"{{ 'APP.INFO_DRAWER.TABS.COMMENTS' | translate }}\">\n <ng-template matTabContent>\n <app-comments-tab *ngIf=\"node && !isLoading; else loading\" [node]=\"node\"></app-comments-tab>\n </ng-template>\n </mat-tab>\n <mat-tab [disabled]=\"!canManagePermissions\" label=\"{{ 'APP.INFO_DRAWER.TABS.PERMISSIONS' | translate }}\">\n <ng-template matTabContent>\n <adf-permission-list *ngIf=\"node && !isLoading; else loading\" [nodeId]=\"node.id\"></adf-permission-list>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n</aca-page-layout>\n\n<ng-template #loading>\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n", styles: ["app-details-manager .aca-details-buttons{display:flex}app-details-manager .aca-details-buttons .aca-close-details-button{display:flex;margin-right:15px;margin-top:12px;outline:none;border-radius:4px}app-details-manager .aca-details-buttons .aca-close-details-button:focus{background-color:var(--theme-selected-background-color);outline:2px solid var(--theme-blue-button-color);border-radius:4px}.aca-details-container{background-color:var(--theme-card-background-color);width:100%}.aca-details-tabs{margin-top:40px;height:calc(100% - 136px)}.aca-details-tabs>div{height:100%}.aca-details-tabs div[role=tab]{padding:0 12px;min-width:95px;letter-spacing:.25px;height:32px}.aca-details-tabs div[role=tab]:first-of-type{margin-left:50px}.aca-details-title{width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--theme-metadata-property-panel-title-color);text-overflow:ellipsis;white-space:normal}.aca-details-breadcrumb{font-size:18px;margin-left:20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.aca-details-breadcrumb-library{font-weight:900}.aca-details-breadcrumb-icon{display:inline-block;vertical-align:text-bottom}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i7.MatTabContent, selector: "[matTabContent]" }, { kind: "component", type: i7.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i7.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: MetadataTabComponent, selector: "app-metadata-tab", inputs: ["node"] }, { kind: "component", type: CommentsTabComponent, selector: "app-comments-tab", inputs: ["node"] }, { kind: "component", type: PageLayoutComponent, selector: "aca-page-layout", inputs: ["hasError"] }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }, { kind: "directive", type: InfoDrawerButtonsDirective, selector: "[adf-info-drawer-buttons], [info-drawer-buttons]" }, { kind: "component", type: PermissionListComponent, selector: "adf-permission-list", inputs: ["nodeId"], outputs: ["update", "error"] }, { kind: "component", type: BreadcrumbComponent, selector: "adf-breadcrumb", inputs: ["folderNode", "root", "rootId", "target", "transform", "maxItems", "selectedRowItemsCount", "readOnly"], outputs: ["navigate"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DetailsComponent, decorators: [{
|
|
129
|
-
type: Component,
|
|
130
|
-
args: [{ standalone: true, imports: [
|
|
131
|
-
CommonModule,
|
|
132
|
-
TranslateModule,
|
|
133
|
-
MatIconModule,
|
|
134
|
-
MatTabsModule,
|
|
135
|
-
MatProgressBarModule,
|
|
136
|
-
MatButtonModule,
|
|
137
|
-
MetadataTabComponent,
|
|
138
|
-
CommentsTabComponent,
|
|
139
|
-
PageLayoutComponent,
|
|
140
|
-
ToolbarComponent,
|
|
141
|
-
InfoDrawerButtonsDirective,
|
|
142
|
-
PermissionListComponent,
|
|
143
|
-
BreadcrumbComponent,
|
|
144
|
-
FileSizePipe
|
|
145
|
-
], selector: 'app-details-manager', encapsulation: ViewEncapsulation.None, template: "<aca-page-layout>\n <div class=\"aca-page-layout-header\">\n <adf-breadcrumb [root]=\"title\" [folderNode]=\"node\" (navigate)=\"onBreadcrumbNavigate($event)\"> </adf-breadcrumb>\n <aca-toolbar [items]=\"actions\"></aca-toolbar>\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-details-container\">\n <div class=\"aca-details-title\">\n <div class=\"aca-details-breadcrumb\" role=\"heading\" aria-level=\"2\" *ngIf=\"node\">\n <span class=\"aca-details-breadcrumb-library\">\n <img class=\"aca-details-breadcrumb-icon\" alt=\"{{ 'APP.INFO_DRAWER.ICON' | translate }}\" src=\"{{ nodeIcon }}\">\n {{ node.name }} </span>\n </div>\n <div class=\"aca-details-buttons\">\n <aca-toolbar [items]=\"aspectActions\" info-drawer-buttons></aca-toolbar>\n <button\n class=\"aca-close-details-button\"\n mat-icon-button\n data-automation-id=\"close-library\"\n title=\"{{ 'APP.INFO_DRAWER.REDUCE_PANEL' | translate }}\"\n (click)=\"goBack()\">\n <mat-icon>fullscreen_exit</mat-icon>\n </button>\n </div>\n </div>\n\n <mat-tab-group [selectedIndex]=\"activeTab\" class=\"aca-details-tabs\" animationDuration=\"0\" mat-stretch-tabs=\"false\" mat-align-tabs=\"start\">\n <mat-tab label=\"{{ 'APP.INFO_DRAWER.TABS.PROPERTIES' | translate }}\">\n <ng-template matTabContent>\n <app-metadata-tab *ngIf=\"node && !isLoading; else loading\" [node]=\"node\"></app-metadata-tab>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"{{ 'APP.INFO_DRAWER.TABS.COMMENTS' | translate }}\">\n <ng-template matTabContent>\n <app-comments-tab *ngIf=\"node && !isLoading; else loading\" [node]=\"node\"></app-comments-tab>\n </ng-template>\n </mat-tab>\n <mat-tab [disabled]=\"!canManagePermissions\" label=\"{{ 'APP.INFO_DRAWER.TABS.PERMISSIONS' | translate }}\">\n <ng-template matTabContent>\n <adf-permission-list *ngIf=\"node && !isLoading; else loading\" [nodeId]=\"node.id\"></adf-permission-list>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n</aca-page-layout>\n\n<ng-template #loading>\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n", styles: ["app-details-manager .aca-details-buttons{display:flex}app-details-manager .aca-details-buttons .aca-close-details-button{display:flex;margin-right:15px;margin-top:12px;outline:none;border-radius:4px}app-details-manager .aca-details-buttons .aca-close-details-button:focus{background-color:var(--theme-selected-background-color);outline:2px solid var(--theme-blue-button-color);border-radius:4px}.aca-details-container{background-color:var(--theme-card-background-color);width:100%}.aca-details-tabs{margin-top:40px;height:calc(100% - 136px)}.aca-details-tabs>div{height:100%}.aca-details-tabs div[role=tab]{padding:0 12px;min-width:95px;letter-spacing:.25px;height:32px}.aca-details-tabs div[role=tab]:first-of-type{margin-left:50px}.aca-details-title{width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--theme-metadata-property-panel-title-color);text-overflow:ellipsis;white-space:normal}.aca-details-breadcrumb{font-size:18px;margin-left:20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.aca-details-breadcrumb-library{font-weight:900}.aca-details-breadcrumb-icon{display:inline-block;vertical-align:text-bottom}\n"] }]
|
|
146
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.ContentApiService }, { type: i3.ContentService }]; } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUUxRixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7QUF5QjlFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBU2pELFlBQW9CLEtBQXFCLEVBQVUsVUFBNkIsRUFBVSxjQUE4QjtRQUN0SCxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFOeEgsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDcEMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGtCQUFhLEdBQTRCLEVBQUUsQ0FBQztRQUU1Qyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7SUFJNUIsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVO2FBQ1osd0JBQXdCLEVBQUU7YUFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsaUJBQWlCO2FBQ25CLElBQUksQ0FDSCxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzFCLFNBQVMsQ0FDUCxLQUFLLENBQ0gsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JCLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGVBQWUsQ0FBQyxFQUNsRCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQixDQUNGLENBQ0YsQ0FDRjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWU7UUFDMUIsUUFBUSxPQUFPLEVBQUU7WUFDZixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLGFBQWE7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO29CQUNuQixNQUFNO2lCQUNQO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUM7WUFDaEI7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFpQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBZSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDaEQsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3BILENBQUM7OzhHQTVGVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixzR0NsRTdCLCs0RUFtREEsb3NDRExJLFlBQVksa0lBQ1osZUFBZSwyRkFDZixhQUFhLG1MQUNiLGFBQWEsb1lBQ2Isb0JBQW9CLHdOQUNwQixlQUFlLDRMQUNmLG9CQUFvQiwrRUFDcEIsb0JBQW9CLCtFQUNwQixtQkFBbUIsa0ZBQ25CLGdCQUFnQiwyRUFDaEIsMEJBQTBCLDZGQUMxQix1QkFBdUIsa0hBQ3ZCLG1CQUFtQjs0RkFRVixnQkFBZ0I7a0JBdkI1QixTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2IsWUFDUyxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uU3RhcnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29udGVudEFwaVNlcnZpY2UsIFBhZ2VDb21wb25lbnQsIFBhZ2VMYXlvdXRDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBOYXZpZ2F0ZVRvRm9sZGVyLCBOYXZpZ2F0ZVRvUHJldmlvdXNQYWdlLCBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQsIENvbnRlbnRTZXJ2aWNlLCBQZXJtaXNzaW9uTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWV0YWRhdGFUYWJDb21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWRyYXdlci9tZXRhZGF0YS10YWIvbWV0YWRhdGEtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50c1RhYkNvbXBvbmVudCB9IGZyb20gJy4uL2luZm8tZHJhd2VyL2NvbW1lbnRzLXRhYi9jb21tZW50cy10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVFbnRyeSwgUGF0aEVsZW1lbnQgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IEZpbGVTaXplUGlwZSwgSW5mb0RyYXdlckJ1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNZXRhZGF0YVRhYkNvbXBvbmVudCxcbiAgICBDb21tZW50c1RhYkNvbXBvbmVudCxcbiAgICBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgSW5mb0RyYXdlckJ1dHRvbnNEaXJlY3RpdmUsXG4gICAgUGVybWlzc2lvbkxpc3RDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBGaWxlU2l6ZVBpcGVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhcHAtZGV0YWlscy1tYW5hZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG5vZGVJZDogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBhY3RpdmVUYWIgPSAxO1xuICBhc3BlY3RBY3Rpb25zOiBBcnJheTxDb250ZW50QWN0aW9uUmVmPiA9IFtdO1xuICBub2RlSWNvbjogc3RyaW5nO1xuICBjYW5NYW5hZ2VQZXJtaXNzaW9ucyA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsIHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHsgcm91dGUgfSA9IHRoaXM7XG4gICAgY29uc3QgeyBkYXRhIH0gPSByb3V0ZS5zbmFwc2hvdDtcbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWIocGFyYW1zLmFjdGl2ZVRhYik7XG4gICAgICB0aGlzLm5vZGVJZCA9IHBhcmFtcy5ub2RlSWQ7XG4gICAgICB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZSh0aGlzLm5vZGVJZCkuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICAgIHRoaXMubm9kZSA9IG5vZGUuZW50cnk7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuTWFuYWdlUGVybWlzc2lvbnMgPSAhdGhpcy5pc1NtYXJ0Rm9sZGVyKCk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlVGFiKHBhcmFtcy5hY3RpdmVUYWIpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uKFt7IGVudHJ5OiB0aGlzLm5vZGUgfV0pKTtcbiAgICAgICAgdGhpcy5ub2RlSWNvbiA9IHRoaXMuY29udGVudFNlcnZpY2UuZ2V0Tm9kZUljb24odGhpcy5ub2RlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZXh0ZW5zaW9uc1xuICAgICAgLmdldEFsbG93ZWRTaWRlYmFyQWN0aW9ucygpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoYXNwZWN0QWN0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLmFzcGVjdEFjdGlvbnMgPSBhc3BlY3RBY3Rpb25zO1xuICAgICAgfSk7XG4gICAgdGhpcy5pbmZvRHJhd2VyT3BlbmVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KChvcGVuZWQpID0+ICFvcGVuZWQpLFxuICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLm9uRGVzdHJveSQsXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgICAgICAgZmlyc3QoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ29CYWNrKCkpO1xuICB9XG5cbiAgc2V0QWN0aXZlVGFiKHRhYk5hbWU6IHN0cmluZykge1xuICAgIHN3aXRjaCAodGFiTmFtZSkge1xuICAgICAgY2FzZSAnY29tbWVudHMnOlxuICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGVybWlzc2lvbnMnOlxuICAgICAgICBpZiAoIXRoaXMuY2FuTWFuYWdlUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVUYWIgPSAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21ldGFkYXRhJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gMDtcbiAgICB9XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVUb1ByZXZpb3VzUGFnZSgpKTtcbiAgfVxuXG4gIG9uQnJlYWRjcnVtYk5hdmlnYXRlKHBhdGg6IFBhdGhFbGVtZW50KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVUb0ZvbGRlcih7IGVudHJ5OiBwYXRoIH0gYXMgTm9kZUVudHJ5KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uKFtdKSk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTbWFydEZvbGRlcigpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMubm9kZT8uaXNGb2xkZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgbm9kZUFzcGVjdHMgPSB0aGlzLm5vZGUuYXNwZWN0TmFtZXMgPz8gW107XG4gICAgcmV0dXJuIG5vZGVBc3BlY3RzLmluY2x1ZGVzKCdzbWY6Y3VzdG9tQ29uZmlnU21hcnRGb2xkZXInKSB8fCBub2RlQXNwZWN0cy5pbmNsdWRlcygnc21mOnN5c3RlbUNvbmZpZ1NtYXJ0Rm9sZGVyJyk7XG4gIH1cbn1cbiIsIjxhY2EtcGFnZS1sYXlvdXQ+XG4gIDxkaXYgY2xhc3M9XCJhY2EtcGFnZS1sYXlvdXQtaGVhZGVyXCI+XG4gICAgPGFkZi1icmVhZGNydW1iIFtyb290XT1cInRpdGxlXCIgW2ZvbGRlck5vZGVdPVwibm9kZVwiIChuYXZpZ2F0ZSk9XCJvbkJyZWFkY3J1bWJOYXZpZ2F0ZSgkZXZlbnQpXCI+IDwvYWRmLWJyZWFkY3J1bWI+XG4gICAgPGFjYS10b29sYmFyIFtpdGVtc109XCJhY3Rpb25zXCI+PC9hY2EtdG9vbGJhcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1kZXRhaWxzLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFjYS1kZXRhaWxzLXRpdGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2EtZGV0YWlscy1icmVhZGNydW1iXCIgcm9sZT1cImhlYWRpbmdcIiBhcmlhLWxldmVsPVwiMlwiICpuZ0lmPVwibm9kZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNhLWRldGFpbHMtYnJlYWRjcnVtYi1saWJyYXJ5XCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiYWNhLWRldGFpbHMtYnJlYWRjcnVtYi1pY29uXCIgYWx0PVwie3sgJ0FQUC5JTkZPX0RSQVdFUi5JQ09OJyB8IHRyYW5zbGF0ZSB9fVwiIHNyYz1cInt7IG5vZGVJY29uIH19XCI+XG4gICAgICAgICAgICB7eyBub2RlLm5hbWUgfX0gPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjYS1kZXRhaWxzLWJ1dHRvbnNcIj5cbiAgICAgICAgICA8YWNhLXRvb2xiYXIgW2l0ZW1zXT1cImFzcGVjdEFjdGlvbnNcIiBpbmZvLWRyYXdlci1idXR0b25zPjwvYWNhLXRvb2xiYXI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWNhLWNsb3NlLWRldGFpbHMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjbG9zZS1saWJyYXJ5XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBUFAuSU5GT19EUkFXRVIuUkVEVUNFX1BBTkVMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmZ1bGxzY3JlZW5fZXhpdDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxtYXQtdGFiLWdyb3VwIFtzZWxlY3RlZEluZGV4XT1cImFjdGl2ZVRhYlwiIGNsYXNzPVwiYWNhLWRldGFpbHMtdGFic1wiIGFuaW1hdGlvbkR1cmF0aW9uPVwiMFwiIG1hdC1zdHJldGNoLXRhYnM9XCJmYWxzZVwiIG1hdC1hbGlnbi10YWJzPVwic3RhcnRcIj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJ7eyAnQVBQLklORk9fRFJBV0VSLlRBQlMuUFJPUEVSVElFUycgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgIDxhcHAtbWV0YWRhdGEtdGFiICpuZ0lmPVwibm9kZSAmJiAhaXNMb2FkaW5nOyBlbHNlIGxvYWRpbmdcIiBbbm9kZV09XCJub2RlXCI+PC9hcHAtbWV0YWRhdGEtdGFiPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJ7eyAnQVBQLklORk9fRFJBV0VSLlRBQlMuQ09NTUVOVFMnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICA8YXBwLWNvbW1lbnRzLXRhYiAqbmdJZj1cIm5vZGUgJiYgIWlzTG9hZGluZzsgZWxzZSBsb2FkaW5nXCIgW25vZGVdPVwibm9kZVwiPjwvYXBwLWNvbW1lbnRzLXRhYj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiIFtkaXNhYmxlZF09XCIhY2FuTWFuYWdlUGVybWlzc2lvbnNcIiBsYWJlbD1cInt7ICdBUFAuSU5GT19EUkFXRVIuVEFCUy5QRVJNSVNTSU9OUycgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgIDxhZGYtcGVybWlzc2lvbi1saXN0ICpuZ0lmPVwibm9kZSAmJiAhaXNMb2FkaW5nOyBlbHNlIGxvYWRpbmdcIiBbbm9kZUlkXT1cIm5vZGUuaWRcIj48L2FkZi1wZXJtaXNzaW9uLWxpc3Q+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWNhLXBhZ2UtbGF5b3V0PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIGNvbG9yPVwicHJpbWFyeVwiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
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 { AppExtensionService } from '@alfresco/aca-shared';
|
|
25
|
-
import { IconComponent } from '@alfresco/adf-core';
|
|
26
|
-
import { DynamicExtensionComponent } from '@alfresco/adf-extensions';
|
|
27
|
-
import { NodeEntry } from '@alfresco/js-api';
|
|
28
|
-
import { CommonModule } from '@angular/common';
|
|
29
|
-
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
30
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
31
|
-
import { Subject } from 'rxjs';
|
|
32
|
-
import { takeUntil } from 'rxjs/operators';
|
|
33
|
-
import * as i0 from "@angular/core";
|
|
34
|
-
import * as i1 from "@alfresco/aca-shared";
|
|
35
|
-
import * as i2 from "@angular/common";
|
|
36
|
-
import * as i3 from "@ngx-translate/core";
|
|
37
|
-
export class DatatableCellBadgesComponent {
|
|
38
|
-
constructor(appExtensionService) {
|
|
39
|
-
this.appExtensionService = appExtensionService;
|
|
40
|
-
this.onDestroy$ = new Subject();
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
this.appExtensionService
|
|
44
|
-
.getBadges(this.node)
|
|
45
|
-
.pipe(takeUntil(this.onDestroy$))
|
|
46
|
-
.subscribe((badges) => {
|
|
47
|
-
this.badges = badges;
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
ngOnDestroy() {
|
|
51
|
-
this.onDestroy$.next(true);
|
|
52
|
-
this.onDestroy$.complete();
|
|
53
|
-
}
|
|
54
|
-
onBadgeClick(badge) {
|
|
55
|
-
if (badge.actions?.click) {
|
|
56
|
-
this.appExtensionService.runActionById(badge.actions?.click, this.node);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
onKeyPress(badge) {
|
|
60
|
-
this.onBadgeClick(badge);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
DatatableCellBadgesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableCellBadgesComponent, deps: [{ token: i1.AppExtensionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
DatatableCellBadgesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableCellBadgesComponent, isStandalone: true, selector: "aca-datatable-cell-badges", inputs: { node: "node" }, host: { classAttribute: "aca-datatable-cell-badges" }, ngImport: i0, template: "<div class=\"aca-datatable-cell-badges-container\">\n <ng-container *ngFor=\"let badge of badges\">\n <adf-dynamic-component \n *ngIf=\"badge.component; else iconBadge\" \n [id]=\"badge.component\" \n [data]=\"{ node }\"\n ></adf-dynamic-component>\n <ng-template #iconBadge>\n <adf-icon \n class=\"adf-datatable-cell-badge\"\n [title]=\"badge.tooltip | translate\"\n [value]=\"badge.icon\"\n (click)=\"onBadgeClick(badge)\"\n (keypress.enter)=\"onKeyPress(badge)\"\n tabindex=\"0\"\n ></adf-icon>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aca-datatable-cell-badges-container{display:flex;align-items:center}.aca-datatable-cell-badges-container .adf-datatable-cell-badge,.aca-datatable-cell-badges-container *>.adf-datatable-cell-badge{display:flex;color:var(--theme-secondary-text);border-radius:14px;padding:8px}.aca-datatable-cell-badges-container .adf-datatable-cell-badge:hover,.aca-datatable-cell-badges-container *>.adf-datatable-cell-badge:hover{background-color:var(--theme-selected-text-background)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: DynamicExtensionComponent, selector: "adf-dynamic-component", inputs: ["id", "data"] }, { kind: "component", type: IconComponent, selector: "adf-icon", inputs: ["color", "fontSet", "value"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableCellBadgesComponent, decorators: [{
|
|
66
|
-
type: Component,
|
|
67
|
-
args: [{ selector: 'aca-datatable-cell-badges', host: { class: 'aca-datatable-cell-badges' }, encapsulation: ViewEncapsulation.None, imports: [CommonModule, TranslateModule, DynamicExtensionComponent, IconComponent], standalone: true, template: "<div class=\"aca-datatable-cell-badges-container\">\n <ng-container *ngFor=\"let badge of badges\">\n <adf-dynamic-component \n *ngIf=\"badge.component; else iconBadge\" \n [id]=\"badge.component\" \n [data]=\"{ node }\"\n ></adf-dynamic-component>\n <ng-template #iconBadge>\n <adf-icon \n class=\"adf-datatable-cell-badge\"\n [title]=\"badge.tooltip | translate\"\n [value]=\"badge.icon\"\n (click)=\"onBadgeClick(badge)\"\n (keypress.enter)=\"onKeyPress(badge)\"\n tabindex=\"0\"\n ></adf-icon>\n </ng-template>\n </ng-container>\n</div>\n", styles: [".aca-datatable-cell-badges-container{display:flex;align-items:center}.aca-datatable-cell-badges-container .adf-datatable-cell-badge,.aca-datatable-cell-badges-container *>.adf-datatable-cell-badge{display:flex;color:var(--theme-secondary-text);border-radius:14px;padding:8px}.aca-datatable-cell-badges-container .adf-datatable-cell-badge:hover,.aca-datatable-cell-badges-container *>.adf-datatable-cell-badge:hover{background-color:var(--theme-selected-text-background)}\n"] }]
|
|
68
|
-
}], ctorParameters: function () { return [{ type: i1.AppExtensionService }]; }, propDecorators: { node: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9kYXRhdGFibGUtY2VsbC1iYWRnZXMvZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9kYXRhdGFibGUtY2VsbC1iYWRnZXMvZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFTLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFXM0MsTUFBTSxPQUFPLDRCQUE0QjtJQU92QyxZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZwRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUVtQixDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7MEhBL0JVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLHNLQzNDekMsbXBCQW1CQSxpaEJEcUJZLFlBQVksK1BBQUUsZUFBZSw0RkFBRSx5QkFBeUIsMEZBQUUsYUFBYTs0RkFHdEUsNEJBQTRCO2tCQVR4QyxTQUFTOytCQUNFLDJCQUEyQixRQUcvQixFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxDQUFDLGNBQ3RFLElBQUk7MEdBR1AsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UsIEJhZGdlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRXh0ZW5zaW9uQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjYS1kYXRhdGFibGUtY2VsbC1iYWRnZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtZGF0YXRhYmxlLWNlbGwtYmFkZ2VzJyB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIER5bmFtaWNFeHRlbnNpb25Db21wb25lbnQsIEljb25Db21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNlbGxCYWRnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGVFbnRyeTtcblxuICBiYWRnZXM6IEJhZGdlW107XG5cbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcEV4dGVuc2lvblNlcnZpY2U6IEFwcEV4dGVuc2lvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBFeHRlbnNpb25TZXJ2aWNlXG4gICAgICAuZ2V0QmFkZ2VzKHRoaXMubm9kZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYmFkZ2VzKSA9PiB7XG4gICAgICAgIHRoaXMuYmFkZ2VzID0gYmFkZ2VzO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uQmFkZ2VDbGljayhiYWRnZTogQmFkZ2UpIHtcbiAgICBpZiAoYmFkZ2UuYWN0aW9ucz8uY2xpY2spIHtcbiAgICAgIHRoaXMuYXBwRXh0ZW5zaW9uU2VydmljZS5ydW5BY3Rpb25CeUlkKGJhZGdlLmFjdGlvbnM/LmNsaWNrLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5UHJlc3MoYmFkZ2U6IEJhZGdlKSB7XG4gICAgdGhpcy5vbkJhZGdlQ2xpY2soYmFkZ2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNhLWRhdGF0YWJsZS1jZWxsLWJhZGdlcy1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBiYWRnZXNcIj5cbiAgICAgIDxhZGYtZHluYW1pYy1jb21wb25lbnQgXG4gICAgICAgICpuZ0lmPVwiYmFkZ2UuY29tcG9uZW50OyBlbHNlIGljb25CYWRnZVwiIFxuICAgICAgICBbaWRdPVwiYmFkZ2UuY29tcG9uZW50XCIgXG4gICAgICAgIFtkYXRhXT1cInsgbm9kZSB9XCJcbiAgICAgID48L2FkZi1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkJhZGdlPlxuICAgICAgICA8YWRmLWljb24gXG4gICAgICAgICAgY2xhc3M9XCJhZGYtZGF0YXRhYmxlLWNlbGwtYmFkZ2VcIlxuICAgICAgICAgIFt0aXRsZV09XCJiYWRnZS50b29sdGlwIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbdmFsdWVdPVwiYmFkZ2UuaWNvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQmFkZ2VDbGljayhiYWRnZSlcIlxuICAgICAgICAgIChrZXlwcmVzcy5lbnRlcik9XCJvbktleVByZXNzKGJhZGdlKVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgPjwvYWRmLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|