@alfresco/aca-content 4.0.0-A.2-9984
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/README.md +24 -0
- package/assets/app.extensions.json +2496 -0
- package/assets/i18n/ar.json +634 -0
- package/assets/i18n/cs.json +634 -0
- package/assets/i18n/da.json +634 -0
- package/assets/i18n/de.json +634 -0
- package/assets/i18n/en.json +634 -0
- package/assets/i18n/es.json +634 -0
- package/assets/i18n/fi.json +634 -0
- package/assets/i18n/fr.json +634 -0
- package/assets/i18n/it.json +634 -0
- package/assets/i18n/ja.json +634 -0
- package/assets/i18n/nb.json +634 -0
- package/assets/i18n/nl.json +634 -0
- package/assets/i18n/pl.json +634 -0
- package/assets/i18n/pt-BR.json +634 -0
- package/assets/i18n/ru.json +634 -0
- package/assets/i18n/sv.json +634 -0
- package/assets/i18n/zh-CN.json +634 -0
- package/assets/images/Wallpaper-BG-generic.svg +39 -0
- package/assets/images/adf-move-file-24px.svg +1 -0
- package/assets/images/baseline-library_books-24px.svg +2 -0
- package/assets/images/baseline-lock-24px.svg +1 -0
- package/assets/images/join-library.svg +32 -0
- package/assets/images/mastHead-bg-shapesPattern.svg +53 -0
- package/esm2020/alfresco-aca-content.mjs +5 -0
- package/esm2020/lib/aca-content.module.mjs +364 -0
- package/esm2020/lib/aca-content.routes.mjs +582 -0
- package/esm2020/lib/components/common/common.module.mjs +49 -0
- package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +58 -0
- package/esm2020/lib/components/common/location-link/location-link.component.mjs +178 -0
- package/esm2020/lib/components/common/logout/logout.component.mjs +61 -0
- package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +66 -0
- package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +59 -0
- package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +66 -0
- package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +33 -0
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +103 -0
- package/esm2020/lib/components/context-menu/context-menu.module.mjs +77 -0
- package/esm2020/lib/components/context-menu/context-menu.service.mjs +104 -0
- package/esm2020/lib/components/context-menu/direction.token.mjs +30 -0
- package/esm2020/lib/components/context-menu/interfaces.mjs +26 -0
- package/esm2020/lib/components/create-menu/create-menu.component.mjs +74 -0
- package/esm2020/lib/components/create-menu/create-menu.module.mjs +45 -0
- package/esm2020/lib/components/details/details.component.mjs +100 -0
- package/esm2020/lib/components/dl-custom-components/document-list-custom-components.module.mjs +49 -0
- package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +93 -0
- package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +52 -0
- package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +114 -0
- package/esm2020/lib/components/favorites/favorites.component.mjs +99 -0
- package/esm2020/lib/components/files/files.component.mjs +312 -0
- package/esm2020/lib/components/header/header.component.mjs +98 -0
- package/esm2020/lib/components/header/header.module.mjs +46 -0
- package/esm2020/lib/components/home/home.component.mjs +50 -0
- package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +57 -0
- package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +93 -0
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +144 -0
- package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +43 -0
- package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +89 -0
- package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +96 -0
- package/esm2020/lib/components/layout/app-layout/app-layout.component.mjs +147 -0
- package/esm2020/lib/components/layout/layout.module.mjs +75 -0
- package/esm2020/lib/components/libraries/libraries.component.mjs +71 -0
- package/esm2020/lib/components/main-action/main-action.component.mjs +60 -0
- package/esm2020/lib/components/main-action/main-action.module.mjs +46 -0
- package/esm2020/lib/components/node-version/node-version-form.component.mjs +71 -0
- package/esm2020/lib/components/node-version/node-version.module.mjs +79 -0
- package/esm2020/lib/components/recent-files/recent-files.component.mjs +82 -0
- package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +60 -0
- package/esm2020/lib/components/search/search-input/search-input.component.mjs +263 -0
- package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +88 -0
- package/esm2020/lib/components/search/search-input.module.mjs +48 -0
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +92 -0
- package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +140 -0
- package/esm2020/lib/components/search/search-results/search-results.component.mjs +218 -0
- package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +94 -0
- package/esm2020/lib/components/search/search-results.module.mjs +86 -0
- package/esm2020/lib/components/shared-files/shared-files.component.mjs +79 -0
- package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +81 -0
- package/esm2020/lib/components/shared-link-view/shared-link-view.module.mjs +66 -0
- package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +58 -0
- package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +54 -0
- package/esm2020/lib/components/sidenav/directives/action.directive.mjs +75 -0
- package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +93 -0
- package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +102 -0
- package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +99 -0
- package/esm2020/lib/components/sidenav/sidenav-wrapper/sidenav-wrapper.component.mjs +45 -0
- package/esm2020/lib/components/sidenav/sidenav.component.mjs +76 -0
- package/esm2020/lib/components/sidenav/sidenav.module.mjs +104 -0
- package/esm2020/lib/components/toolbar/document-display-mode/document-display-mode.component.mjs +85 -0
- package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +151 -0
- package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +80 -0
- package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +102 -0
- package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +76 -0
- package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +99 -0
- package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +81 -0
- package/esm2020/lib/components/toolbar/toolbar.module.mjs +89 -0
- package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +102 -0
- package/esm2020/lib/components/trashcan/trashcan.component.mjs +64 -0
- package/esm2020/lib/components/trashcan/trashcan.module.mjs +71 -0
- package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +34 -0
- package/esm2020/lib/components/view-profile/view-profile.component.mjs +158 -0
- package/esm2020/lib/components/view-profile/view-profile.guard.mjs +31 -0
- package/esm2020/lib/components/view-profile/view-profile.module.mjs +43 -0
- package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +120 -0
- package/esm2020/lib/directives/directives.module.mjs +43 -0
- package/esm2020/lib/directives/document-list.directive.mjs +142 -0
- package/esm2020/lib/extensions/core.extensions.module.mjs +66 -0
- package/esm2020/lib/material.module.mjs +58 -0
- package/esm2020/lib/services/content-management.service.mjs +871 -0
- package/esm2020/lib/services/content-service-extension.service.mjs +47 -0
- package/esm2020/lib/services/content-url.service.mjs +73 -0
- package/esm2020/lib/services/node-actions.service.mjs +601 -0
- package/esm2020/lib/services/node-template.service.mjs +150 -0
- package/esm2020/lib/store/app-store.module.mjs +96 -0
- package/esm2020/lib/store/effects/app.effects.mjs +62 -0
- package/esm2020/lib/store/effects/contextmenu.effects.mjs +56 -0
- package/esm2020/lib/store/effects/download.effects.mjs +160 -0
- package/esm2020/lib/store/effects/favorite.effects.mjs +77 -0
- package/esm2020/lib/store/effects/library.effects.mjs +112 -0
- package/esm2020/lib/store/effects/node.effects.mjs +310 -0
- package/esm2020/lib/store/effects/search.effects.mjs +55 -0
- package/esm2020/lib/store/effects/template.effects.mjs +122 -0
- package/esm2020/lib/store/effects/upload.effects.mjs +169 -0
- package/esm2020/lib/store/effects/viewer.effects.mjs +176 -0
- package/esm2020/lib/store/effects.mjs +36 -0
- package/esm2020/lib/store/initial-state.mjs +66 -0
- package/esm2020/lib/store/reducers/app.reducer.mjs +218 -0
- package/esm2020/public-api.mjs +9 -0
- package/fesm2015/alfresco-aca-content.mjs +9937 -0
- package/fesm2015/alfresco-aca-content.mjs.map +1 -0
- package/fesm2020/alfresco-aca-content.mjs +10103 -0
- package/fesm2020/alfresco-aca-content.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/aca-content.module.d.ts +49 -0
- package/lib/aca-content.routes.d.ts +28 -0
- package/lib/components/common/common.module.d.ts +14 -0
- package/lib/components/common/language-picker/language-picker.component.d.ts +5 -0
- package/lib/components/common/location-link/location-link.component.d.ts +49 -0
- package/lib/components/common/logout/logout.component.d.ts +10 -0
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +44 -0
- package/lib/components/context-menu/context-menu-item.component.d.ts +13 -0
- package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +36 -0
- package/lib/components/context-menu/context-menu-overlay.d.ts +30 -0
- package/lib/components/context-menu/context-menu.component.d.ts +49 -0
- package/lib/components/context-menu/context-menu.module.d.ts +18 -0
- package/lib/components/context-menu/context-menu.service.d.ts +44 -0
- package/lib/components/context-menu/direction.token.d.ts +26 -0
- package/lib/components/context-menu/interfaces.d.ts +31 -0
- package/lib/components/create-menu/create-menu.component.d.ts +43 -0
- package/lib/components/create-menu/create-menu.module.d.ts +10 -0
- package/lib/components/details/details.component.d.ts +47 -0
- package/lib/components/dl-custom-components/document-list-custom-components.module.d.ts +13 -0
- package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +43 -0
- package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +17 -0
- package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +55 -0
- package/lib/components/favorites/favorites.component.d.ts +50 -0
- package/lib/components/files/files.component.d.ts +80 -0
- package/lib/components/header/header.component.d.ts +59 -0
- package/lib/components/header/header.module.d.ts +11 -0
- package/lib/components/home/home.component.d.ts +37 -0
- package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +11 -0
- package/lib/components/info-drawer/info.drawer.module.d.ts +19 -0
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +65 -0
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +7 -0
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +50 -0
- package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +36 -0
- package/lib/components/layout/app-layout/app-layout.component.d.ts +63 -0
- package/lib/components/layout/layout.module.d.ts +16 -0
- package/lib/components/libraries/libraries.component.d.ts +45 -0
- package/lib/components/main-action/main-action.component.d.ts +42 -0
- package/lib/components/main-action/main-action.module.d.ts +11 -0
- package/lib/components/node-version/node-version-form.component.d.ts +47 -0
- package/lib/components/node-version/node-version.module.d.ts +16 -0
- package/lib/components/recent-files/recent-files.component.d.ts +49 -0
- package/lib/components/search/search-action-menu/search-action-menu.component.d.ts +39 -0
- package/lib/components/search/search-input/search-input.component.d.ts +82 -0
- package/lib/components/search/search-input-control/search-input-control.component.d.ts +51 -0
- package/lib/components/search/search-input.module.d.ts +12 -0
- package/lib/components/search/search-libraries-results/search-libraries-query-builder.service.d.ts +57 -0
- package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +58 -0
- package/lib/components/search/search-results/search-results.component.d.ts +70 -0
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +49 -0
- package/lib/components/search/search-results.module.d.ts +21 -0
- package/lib/components/shared-files/shared-files.component.d.ts +48 -0
- package/lib/components/shared-link-view/shared-link-view.component.d.ts +48 -0
- package/lib/components/shared-link-view/shared-link-view.module.d.ts +14 -0
- package/lib/components/sidenav/components/button-menu.component.d.ts +38 -0
- package/lib/components/sidenav/components/expand-menu.component.d.ts +36 -0
- package/lib/components/sidenav/directives/action.directive.d.ts +14 -0
- package/lib/components/sidenav/directives/active-link.directive.d.ts +46 -0
- package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +45 -0
- package/lib/components/sidenav/directives/menu-panel.directive.d.ts +43 -0
- package/lib/components/sidenav/sidenav-wrapper/sidenav-wrapper.component.d.ts +12 -0
- package/lib/components/sidenav/sidenav.component.d.ts +44 -0
- package/lib/components/sidenav/sidenav.module.d.ts +21 -0
- package/lib/components/toolbar/document-display-mode/document-display-mode.component.d.ts +13 -0
- package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +48 -0
- package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +43 -0
- package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +43 -0
- package/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.d.ts +11 -0
- package/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.d.ts +42 -0
- package/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.d.ts +10 -0
- package/lib/components/toolbar/toolbar.module.d.ts +20 -0
- package/lib/components/toolbar/view-node/view-node.component.d.ts +17 -0
- package/lib/components/trashcan/trashcan.component.d.ts +43 -0
- package/lib/components/trashcan/trashcan.module.d.ts +15 -0
- package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +14 -0
- package/lib/components/view-profile/view-profile.component.d.ts +36 -0
- package/lib/components/view-profile/view-profile.guard.d.ts +12 -0
- package/lib/components/view-profile/view-profile.module.d.ts +9 -0
- package/lib/dialogs/node-template/create-from-template.dialog.d.ts +50 -0
- package/lib/directives/directives.module.d.ts +9 -0
- package/lib/directives/document-list.directive.d.ts +57 -0
- package/lib/extensions/core.extensions.module.d.ts +14 -0
- package/lib/material.module.d.ts +14 -0
- package/lib/services/content-management.service.d.ts +101 -0
- package/lib/services/content-service-extension.service.d.ts +11 -0
- package/lib/services/content-url.service.d.ts +17 -0
- package/lib/services/node-actions.service.d.ts +93 -0
- package/lib/services/node-template.service.d.ts +34 -0
- package/lib/store/app-store.module.d.ts +10 -0
- package/lib/store/effects/app.effects.d.ts +42 -0
- package/lib/store/effects/contextmenu.effects.d.ts +12 -0
- package/lib/store/effects/download.effects.d.ts +50 -0
- package/lib/store/effects/favorite.effects.d.ts +39 -0
- package/lib/store/effects/library.effects.d.ts +44 -0
- package/lib/store/effects/node.effects.d.ts +57 -0
- package/lib/store/effects/search.effects.d.ts +35 -0
- package/lib/store/effects/template.effects.d.ts +55 -0
- package/lib/store/effects/upload.effects.d.ts +53 -0
- package/lib/store/effects/viewer.effects.d.ts +56 -0
- package/lib/store/effects.d.ts +35 -0
- package/lib/store/initial-state.d.ts +27 -0
- package/lib/store/reducers/app.reducer.d.ts +27 -0
- package/package.json +34 -0
- package/public-api.d.ts +5 -0
- package/ui/application.scss +49 -0
- package/ui/colors.scss +98 -0
- package/ui/custom-theme.scss +28 -0
- package/ui/dynamic-theme/custom-background-color.scss +16 -0
- package/ui/dynamic-theme/custom-palette-creator.scss +138 -0
- package/ui/dynamic-theme/custom-text-color.scss +8 -0
- package/ui/dynamic-theme/custom-theme-palettes.scss +29 -0
- package/ui/dynamic-theme/custom-theme.scss.tpl +60 -0
- package/ui/dynamic-theme/index.scss +1 -0
- package/ui/dynamic-theme/theme-configuration.scss.tpl +14 -0
- package/ui/dynamic-theme/typography.scss +63 -0
- package/ui/mixins.scss +26 -0
- package/ui/overrides/adf-about.theme.scss +39 -0
- package/ui/overrides/adf-pagination.theme.scss +47 -0
- package/ui/overrides/adf-style-fixes.theme.scss +18 -0
- package/ui/overrides/ay11.scss +204 -0
- package/ui/theme.scss +57 -0
- package/ui/variables/font-family.scss +1 -0
- package/ui/variables/variables.scss +83 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Alfresco Example Content Application
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2005 - 2020 Alfresco Software Limited
|
|
6
|
+
*
|
|
7
|
+
* This file is part of the Alfresco Example Content Application.
|
|
8
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
9
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
10
|
+
* provided under the following open source license terms:
|
|
11
|
+
*
|
|
12
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
13
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
+
* (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
18
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
19
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
20
|
+
* GNU Lesser General Public License for more details.
|
|
21
|
+
*
|
|
22
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
23
|
+
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
24
|
+
*/
|
|
25
|
+
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
|
|
26
|
+
import { Component, Output, ViewEncapsulation, EventEmitter } from '@angular/core';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "@alfresco/adf-content-services";
|
|
29
|
+
import * as i2 from "@angular/common";
|
|
30
|
+
import * as i3 from "@angular/material/button";
|
|
31
|
+
import * as i4 from "@angular/material/icon";
|
|
32
|
+
import * as i5 from "@angular/material/menu";
|
|
33
|
+
import * as i6 from "@ngx-translate/core";
|
|
34
|
+
export class SearchActionMenuComponent {
|
|
35
|
+
constructor(queryBuilder) {
|
|
36
|
+
this.queryBuilder = queryBuilder;
|
|
37
|
+
this.sortingSelected = new EventEmitter();
|
|
38
|
+
this.options = [];
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.options = this.queryBuilder.getSortingOptions();
|
|
42
|
+
}
|
|
43
|
+
onAscSortingClicked(option) {
|
|
44
|
+
option.ascending = true;
|
|
45
|
+
this.sortingSelected.emit(option);
|
|
46
|
+
}
|
|
47
|
+
onDescSortingClicked(option) {
|
|
48
|
+
option.ascending = false;
|
|
49
|
+
this.sortingSelected.emit(option);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
SearchActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchActionMenuComponent, deps: [{ token: i1.SearchQueryBuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
SearchActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SearchActionMenuComponent, selector: "aca-search-action-menu", outputs: { sortingSelected: "sortingSelected" }, ngImport: i0, template: "<button mat-icon-button [matMenuTriggerFor]=\"dataSorting\" id=\"aca-button-action-menu\" aria-label=\"Search action menu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n\n<mat-menu #dataSorting=\"matMenu\">\n <button mat-menu-item [matMenuTriggerFor]=\"sorting\" id=\"aca-button-sorting-menu\">{{ 'SEARCH.SORT.SORTING_OPTION' | translate }}</button>\n</mat-menu>\n\n<mat-menu #sorting=\"matMenu\">\n <ng-template matMenuContent>\n <button\n mat-menu-item\n *ngFor=\"let option of options\"\n [id]=\"option.key + '-sorting-option'\"\n [matMenuTriggerFor]=\"direction\"\n [matMenuTriggerData]=\"{ option: option }\"\n >\n {{ option.label | translate }}\n </button>\n </ng-template>\n</mat-menu>\n\n<mat-menu #direction=\"matMenu\">\n <ng-template matMenuContent let-option=\"option\">\n <button mat-menu-item [id]=\"option.key + '-sorting-option-asc'\" (click)=\"onAscSortingClicked(option)\">\n {{ 'SEARCH.SORT.ASCENDING' | translate }}\n </button>\n <button mat-menu-item [id]=\"option.key + '-sorting-option-desc'\" (click)=\"onDescSortingClicked(option)\">\n {{ 'SEARCH.SORT.DESCENDING' | translate }}\n </button>\n </ng-template>\n</mat-menu>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { 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: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchActionMenuComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'aca-search-action-menu', encapsulation: ViewEncapsulation.None, template: "<button mat-icon-button [matMenuTriggerFor]=\"dataSorting\" id=\"aca-button-action-menu\" aria-label=\"Search action menu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n\n<mat-menu #dataSorting=\"matMenu\">\n <button mat-menu-item [matMenuTriggerFor]=\"sorting\" id=\"aca-button-sorting-menu\">{{ 'SEARCH.SORT.SORTING_OPTION' | translate }}</button>\n</mat-menu>\n\n<mat-menu #sorting=\"matMenu\">\n <ng-template matMenuContent>\n <button\n mat-menu-item\n *ngFor=\"let option of options\"\n [id]=\"option.key + '-sorting-option'\"\n [matMenuTriggerFor]=\"direction\"\n [matMenuTriggerData]=\"{ option: option }\"\n >\n {{ option.label | translate }}\n </button>\n </ng-template>\n</mat-menu>\n\n<mat-menu #direction=\"matMenu\">\n <ng-template matMenuContent let-option=\"option\">\n <button mat-menu-item [id]=\"option.key + '-sorting-option-asc'\" (click)=\"onAscSortingClicked(option)\">\n {{ 'SEARCH.SORT.ASCENDING' | translate }}\n </button>\n <button mat-menu-item [id]=\"option.key + '-sorting-option-desc'\" (click)=\"onDescSortingClicked(option)\">\n {{ 'SEARCH.SORT.DESCENDING' | translate }}\n </button>\n </ng-template>\n</mat-menu>\n" }]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.SearchQueryBuilderService }]; }, propDecorators: { sortingSelected: [{
|
|
58
|
+
type: Output
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWFjdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLWFjdGlvbi1tZW51L3NlYXJjaC1hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1hY3Rpb24tbWVudS9zZWFyY2gtYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQU8zRixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQW9CLFlBQXVDO1FBQXZDLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUozRCxvQkFBZSxHQUEwQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVFLFlBQU8sR0FBOEIsRUFBRSxDQUFDO0lBRXNCLENBQUM7SUFFL0QsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUErQjtRQUNqRCxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBK0I7UUFDbEQsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0hBcEJVLHlCQUF5QjswR0FBekIseUJBQXlCLCtHQ2xDdEMsaXNDQWdDQTsyRkRFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGlCQUVuQixpQkFBaUIsQ0FBQyxJQUFJO2dIQUlyQyxlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMDUgLSAyMDIwIEFsZnJlc2NvIFNvZnR3YXJlIExpbWl0ZWRcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiAgT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBbGZyZXNjby4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgU2VhcmNoU29ydGluZ0RlZmluaXRpb24gfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMvbGliL3NlYXJjaC9tb2RlbHMvc2VhcmNoLXNvcnRpbmctZGVmaW5pdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2Etc2VhcmNoLWFjdGlvbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQWN0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKVxuICBzb3J0aW5nU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxTZWFyY2hTb3J0aW5nRGVmaW5pdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb3B0aW9uczogU2VhcmNoU29ydGluZ0RlZmluaXRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcXVlcnlCdWlsZGVyOiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMucXVlcnlCdWlsZGVyLmdldFNvcnRpbmdPcHRpb25zKCk7XG4gIH1cblxuICBvbkFzY1NvcnRpbmdDbGlja2VkKG9wdGlvbjogU2VhcmNoU29ydGluZ0RlZmluaXRpb24pIHtcbiAgICBvcHRpb24uYXNjZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNvcnRpbmdTZWxlY3RlZC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBvbkRlc2NTb3J0aW5nQ2xpY2tlZChvcHRpb246IFNlYXJjaFNvcnRpbmdEZWZpbml0aW9uKSB7XG4gICAgb3B0aW9uLmFzY2VuZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc29ydGluZ1NlbGVjdGVkLmVtaXQob3B0aW9uKTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRhdGFTb3J0aW5nXCIgaWQ9XCJhY2EtYnV0dG9uLWFjdGlvbi1tZW51XCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBhY3Rpb24gbWVudVwiPlxuICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI2RhdGFTb3J0aW5nPVwibWF0TWVudVwiPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInNvcnRpbmdcIiBpZD1cImFjYS1idXR0b24tc29ydGluZy1tZW51XCI+e3sgJ1NFQVJDSC5TT1JULlNPUlRJTkdfT1BUSU9OJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuPC9tYXQtbWVudT5cblxuPG1hdC1tZW51ICNzb3J0aW5nPVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQ+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgIFtpZF09XCJvcHRpb24ua2V5ICsgJy1zb3J0aW5nLW9wdGlvbidcIlxuICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRpcmVjdGlvblwiXG4gICAgICBbbWF0TWVudVRyaWdnZXJEYXRhXT1cInsgb3B0aW9uOiBvcHRpb24gfVwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI2RpcmVjdGlvbj1cIm1hdE1lbnVcIj5cbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50IGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gW2lkXT1cIm9wdGlvbi5rZXkgKyAnLXNvcnRpbmctb3B0aW9uLWFzYydcIiAoY2xpY2spPVwib25Bc2NTb3J0aW5nQ2xpY2tlZChvcHRpb24pXCI+XG4gICAgICB7eyAnU0VBUkNILlNPUlQuQVNDRU5ESU5HJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbaWRdPVwib3B0aW9uLmtleSArICctc29ydGluZy1vcHRpb24tZGVzYydcIiAoY2xpY2spPVwib25EZXNjU29ydGluZ0NsaWNrZWQob3B0aW9uKVwiPlxuICAgICAge3sgJ1NFQVJDSC5TT1JULkRFU0NFTkRJTkcnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuIl19
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Alfresco Example Content Application
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2005 - 2020 Alfresco Software Limited
|
|
6
|
+
*
|
|
7
|
+
* This file is part of the Alfresco Example Content Application.
|
|
8
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
9
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
10
|
+
* provided under the following open source license terms:
|
|
11
|
+
*
|
|
12
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
13
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
+
* (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
18
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
19
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
20
|
+
* GNU Lesser General Public License for more details.
|
|
21
|
+
*
|
|
22
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
23
|
+
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
24
|
+
*/
|
|
25
|
+
import { AppHookService } from '@alfresco/aca-shared';
|
|
26
|
+
import { SearchByTermAction, SearchOptionIds, SnackbarErrorAction } from '@alfresco/aca-shared/store';
|
|
27
|
+
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
|
|
28
|
+
import { AppConfigService } from '@alfresco/adf-core';
|
|
29
|
+
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
30
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
31
|
+
import { NavigationEnd, PRIMARY_OUTLET, Router, RouterEvent } from '@angular/router';
|
|
32
|
+
import { Store } from '@ngrx/store';
|
|
33
|
+
import { Subject } from 'rxjs';
|
|
34
|
+
import { filter, takeUntil } from 'rxjs/operators';
|
|
35
|
+
import { SearchInputControlComponent } from '../search-input-control/search-input-control.component';
|
|
36
|
+
import { SearchLibrariesQueryBuilderService } from '../search-libraries-results/search-libraries-query-builder.service';
|
|
37
|
+
import * as i0 from "@angular/core";
|
|
38
|
+
import * as i1 from "@alfresco/adf-content-services";
|
|
39
|
+
import * as i2 from "../search-libraries-results/search-libraries-query-builder.service";
|
|
40
|
+
import * as i3 from "@alfresco/adf-core";
|
|
41
|
+
import * as i4 from "@angular/router";
|
|
42
|
+
import * as i5 from "@ngrx/store";
|
|
43
|
+
import * as i6 from "@alfresco/aca-shared";
|
|
44
|
+
import * as i7 from "@angular/common";
|
|
45
|
+
import * as i8 from "@angular/forms";
|
|
46
|
+
import * as i9 from "@angular/material/button";
|
|
47
|
+
import * as i10 from "@angular/material/checkbox";
|
|
48
|
+
import * as i11 from "@angular/material/icon";
|
|
49
|
+
import * as i12 from "@angular/material/form-field";
|
|
50
|
+
import * as i13 from "@angular/material/input";
|
|
51
|
+
import * as i14 from "@angular/material/menu";
|
|
52
|
+
import * as i15 from "@angular/cdk/a11y";
|
|
53
|
+
import * as i16 from "../search-input-control/search-input-control.component";
|
|
54
|
+
import * as i17 from "@ngx-translate/core";
|
|
55
|
+
export class SearchInputComponent {
|
|
56
|
+
constructor(queryBuilder, queryLibrariesBuilder, config, router, store, appHookService) {
|
|
57
|
+
this.queryBuilder = queryBuilder;
|
|
58
|
+
this.queryLibrariesBuilder = queryLibrariesBuilder;
|
|
59
|
+
this.config = config;
|
|
60
|
+
this.router = router;
|
|
61
|
+
this.store = store;
|
|
62
|
+
this.appHookService = appHookService;
|
|
63
|
+
this.onDestroy$ = new Subject();
|
|
64
|
+
this.hasOneChange = false;
|
|
65
|
+
this.hasNewChange = false;
|
|
66
|
+
this.has400LibraryError = false;
|
|
67
|
+
this.searchedWord = null;
|
|
68
|
+
this.searchOptions = [
|
|
69
|
+
{
|
|
70
|
+
id: SearchOptionIds.Files,
|
|
71
|
+
key: 'SEARCH.INPUT.FILES',
|
|
72
|
+
value: false,
|
|
73
|
+
shouldDisable: this.isLibrariesChecked.bind(this)
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: SearchOptionIds.Folders,
|
|
77
|
+
key: 'SEARCH.INPUT.FOLDERS',
|
|
78
|
+
value: false,
|
|
79
|
+
shouldDisable: this.isLibrariesChecked.bind(this)
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: SearchOptionIds.Libraries,
|
|
83
|
+
key: 'SEARCH.INPUT.LIBRARIES',
|
|
84
|
+
value: false,
|
|
85
|
+
shouldDisable: this.isContentChecked.bind(this)
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
this.searchOnChange = this.config.get('search.aca:triggeredOnChange', true);
|
|
89
|
+
}
|
|
90
|
+
ngOnInit() {
|
|
91
|
+
this.showInputValue();
|
|
92
|
+
this.router.events
|
|
93
|
+
.pipe(takeUntil(this.onDestroy$))
|
|
94
|
+
.pipe(filter((e) => e instanceof RouterEvent))
|
|
95
|
+
.subscribe((event) => {
|
|
96
|
+
if (event instanceof NavigationEnd) {
|
|
97
|
+
this.showInputValue();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
this.appHookService.library400Error.pipe(takeUntil(this.onDestroy$)).subscribe(() => {
|
|
101
|
+
this.has400LibraryError = true;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
showInputValue() {
|
|
105
|
+
this.has400LibraryError = false;
|
|
106
|
+
this.searchedWord = this.getUrlSearchTerm();
|
|
107
|
+
if (this.searchInputControl) {
|
|
108
|
+
this.searchInputControl.searchTerm = this.searchedWord;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
ngOnDestroy() {
|
|
112
|
+
this.onDestroy$.next(true);
|
|
113
|
+
this.onDestroy$.complete();
|
|
114
|
+
this.removeContentFilters();
|
|
115
|
+
}
|
|
116
|
+
onMenuOpened() {
|
|
117
|
+
this.searchInputControl.searchInput.nativeElement.focus();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Called when the user submits the search, e.g. hits enter or clicks submit
|
|
121
|
+
*
|
|
122
|
+
* @param event Parameters relating to the search
|
|
123
|
+
*/
|
|
124
|
+
onSearchSubmit(event) {
|
|
125
|
+
const searchTerm = event.target ? event.target.value : event;
|
|
126
|
+
if (searchTerm) {
|
|
127
|
+
this.searchedWord = searchTerm;
|
|
128
|
+
this.searchByOption();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.store.dispatch(new SnackbarErrorAction('APP.BROWSE.SEARCH.EMPTY_SEARCH'));
|
|
132
|
+
}
|
|
133
|
+
this.trigger.closeMenu();
|
|
134
|
+
}
|
|
135
|
+
onSearchChange(searchTerm) {
|
|
136
|
+
if (!this.searchOnChange) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
this.has400LibraryError = false;
|
|
140
|
+
this.searchedWord = searchTerm;
|
|
141
|
+
if (this.hasOneChange) {
|
|
142
|
+
this.hasNewChange = true;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.hasOneChange = true;
|
|
146
|
+
}
|
|
147
|
+
if (this.hasNewChange) {
|
|
148
|
+
clearTimeout(this.navigationTimer);
|
|
149
|
+
this.hasNewChange = false;
|
|
150
|
+
}
|
|
151
|
+
this.navigationTimer = setTimeout(() => {
|
|
152
|
+
if (searchTerm) {
|
|
153
|
+
this.store.dispatch(new SearchByTermAction(searchTerm, this.searchOptions));
|
|
154
|
+
}
|
|
155
|
+
this.hasOneChange = false;
|
|
156
|
+
}, 1000);
|
|
157
|
+
}
|
|
158
|
+
searchByOption() {
|
|
159
|
+
this.syncInputValues();
|
|
160
|
+
this.has400LibraryError = false;
|
|
161
|
+
if (this.isLibrariesChecked()) {
|
|
162
|
+
if (this.onLibrariesSearchResults && this.isSameSearchTerm()) {
|
|
163
|
+
this.queryLibrariesBuilder.update();
|
|
164
|
+
}
|
|
165
|
+
else if (this.searchedWord) {
|
|
166
|
+
this.store.dispatch(new SearchByTermAction(this.searchedWord, this.searchOptions));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
if (this.isFoldersChecked() && !this.isFilesChecked()) {
|
|
171
|
+
this.filterContent(SearchOptionIds.Folders);
|
|
172
|
+
}
|
|
173
|
+
else if (this.isFilesChecked() && !this.isFoldersChecked()) {
|
|
174
|
+
this.filterContent(SearchOptionIds.Files);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.removeContentFilters();
|
|
178
|
+
}
|
|
179
|
+
if (this.onSearchResults && this.isSameSearchTerm()) {
|
|
180
|
+
this.queryBuilder.update();
|
|
181
|
+
}
|
|
182
|
+
else if (this.searchedWord) {
|
|
183
|
+
this.store.dispatch(new SearchByTermAction(this.searchedWord, this.searchOptions));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
get onLibrariesSearchResults() {
|
|
188
|
+
return this.router.url.indexOf('/search-libraries') === 0;
|
|
189
|
+
}
|
|
190
|
+
get onSearchResults() {
|
|
191
|
+
return !this.onLibrariesSearchResults && this.router.url.indexOf('/search') === 0;
|
|
192
|
+
}
|
|
193
|
+
isFilesChecked() {
|
|
194
|
+
return this.isOptionChecked(SearchOptionIds.Files);
|
|
195
|
+
}
|
|
196
|
+
isFoldersChecked() {
|
|
197
|
+
return this.isOptionChecked(SearchOptionIds.Folders);
|
|
198
|
+
}
|
|
199
|
+
isLibrariesChecked() {
|
|
200
|
+
return this.isOptionChecked(SearchOptionIds.Libraries);
|
|
201
|
+
}
|
|
202
|
+
isOptionChecked(optionId) {
|
|
203
|
+
const libItem = this.searchOptions.find((item) => item.id === optionId);
|
|
204
|
+
return !!libItem && libItem.value;
|
|
205
|
+
}
|
|
206
|
+
isContentChecked() {
|
|
207
|
+
return this.isFilesChecked() || this.isFoldersChecked();
|
|
208
|
+
}
|
|
209
|
+
hasLibraryConstraint() {
|
|
210
|
+
if (this.isLibrariesChecked()) {
|
|
211
|
+
return this.has400LibraryError || this.searchInputControl.isTermTooShort();
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
filterContent(option) {
|
|
216
|
+
const oppositeOption = option === SearchOptionIds.Folders ? SearchOptionIds.Files : SearchOptionIds.Folders;
|
|
217
|
+
this.queryBuilder.addFilterQuery(`+TYPE:'cm:${option}'`);
|
|
218
|
+
this.queryBuilder.removeFilterQuery(`+TYPE:'cm:${oppositeOption}'`);
|
|
219
|
+
}
|
|
220
|
+
removeContentFilters() {
|
|
221
|
+
this.queryBuilder.removeFilterQuery(`+TYPE:'cm:${SearchOptionIds.Files}'`);
|
|
222
|
+
this.queryBuilder.removeFilterQuery(`+TYPE:'cm:${SearchOptionIds.Folders}'`);
|
|
223
|
+
}
|
|
224
|
+
syncInputValues() {
|
|
225
|
+
if (this.searchInputControl.searchTerm !== this.searchedWord) {
|
|
226
|
+
if (this.searchInputControl.searchTerm) {
|
|
227
|
+
this.searchedWord = this.searchInputControl.searchTerm;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
this.searchInputControl.searchTerm = this.searchedWord;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
getUrlSearchTerm() {
|
|
235
|
+
let searchTerm = '';
|
|
236
|
+
if (this.onSearchResults || this.onLibrariesSearchResults) {
|
|
237
|
+
const urlTree = this.router.parseUrl(this.router.url);
|
|
238
|
+
const urlSegmentGroup = urlTree.root.children[PRIMARY_OUTLET];
|
|
239
|
+
if (urlSegmentGroup) {
|
|
240
|
+
const urlSegments = urlSegmentGroup.segments;
|
|
241
|
+
searchTerm = urlSegments[0].parameters['q'] ? decodeURIComponent(urlSegments[0].parameters['q']) : '';
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return searchTerm;
|
|
245
|
+
}
|
|
246
|
+
isSameSearchTerm() {
|
|
247
|
+
const urlSearchTerm = this.getUrlSearchTerm();
|
|
248
|
+
return this.searchedWord === urlSearchTerm;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
SearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1.SearchQueryBuilderService }, { token: i2.SearchLibrariesQueryBuilderService }, { token: i3.AppConfigService }, { token: i4.Router }, { token: i5.Store }, { token: i6.AppHookService }], target: i0.ɵɵFactoryTarget.Component });
|
|
252
|
+
SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SearchInputComponent, selector: "aca-search-input", host: { classAttribute: "aca-search-input" }, viewQueries: [{ propertyName: "searchInputControl", first: true, predicate: ["searchInputControl"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"app-search-container searchMenuTrigger\"\n [matMenuTriggerFor]=\"searchOptionsMenu\"\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"syncInputValues()\"\n>\n <button mat-icon-button class=\"app-search-button\" (click)=\"searchByOption()\" [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\">\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"'text'\"\n [disabled]=\"true\"\n [value]=\"searchedWord\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </mat-form-field>\n</div>\n\n<mat-menu #searchOptionsMenu=\"matMenu\" [overlapTrigger]=\"true\" class=\"app-search-options-menu\">\n <div (keydown.tab)=\"$event.stopPropagation()\" (keydown.shift.tab)=\"$event.stopPropagation()\">\n <div cdkTrapFocus>\n <app-search-input-control\n #searchInputControl\n (click)=\"$event.stopPropagation()\"\n (submit)=\"onSearchSubmit($event)\"\n (searchChange)=\"onSearchChange($event)\"\n >\n </app-search-input-control>\n <mat-hint *ngIf=\"hasLibraryConstraint()\" class=\"app-search-hint\">{{ 'SEARCH.INPUT.HINT' | translate }}</mat-hint>\n\n <div id=\"search-options\">\n <mat-checkbox\n *ngFor=\"let option of searchOptions\"\n id=\"{{ option.id }}\"\n [(ngModel)]=\"option.value\"\n [disabled]=\"option.shouldDisable()\"\n (change)=\"searchByOption()\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ option.key | translate }}\n </mat-checkbox>\n </div>\n </div>\n </div>\n</mat-menu>\n", styles: [".app-search-container{color:var(--theme-foreground-text-color)}.app-search-container .app-input-form-field .mat-input-element{caret-color:var(--theme-text-color)}.app-search-container .app-input-form-field .mat-input-element:disabled{color:var(--theme-text-color)}.app-search-container .mat-focused label.mat-form-field-label{display:none}.app-search-options-menu.mat-menu-panel{background-color:var(--theme-dialog-background-color);width:594px;max-width:unset;border-radius:4px;margin-top:12px}.app-search-options-menu .mat-menu-content:not(:empty){padding-top:0;padding-bottom:0}#search-options{color:var(--theme-text-color);border-top:1px solid var(--theme-divider-color)}mat-checkbox .mat-checkbox-frame{border-color:var(--theme-text-color)}.aca-search-input{width:100%;max-width:594px;background-color:#f5f6f5;border-radius:4px;height:40px}.app-search-container{width:100%;max-width:594px;height:52px}.app-search-control{margin-top:-12px}#search-options{padding:20px 0;font-size:16px;letter-spacing:-.7px}#search-options mat-checkbox{padding:3px 24px 3px 19px}#search-options mat-checkbox .mat-checkbox-inner-container{height:18px;width:18px}#search-options mat-checkbox .mat-checkbox-label{padding:0 0 0 11px;overflow:hidden;text-overflow:ellipsis}#search-options .mat-checkbox-layout{max-width:155px}.app-search-hint{position:absolute;font-size:12px;padding-left:17px}@media screen and (max-width: 959px){.aca-search-input,.app-search-container{max-width:400px}.app-search-options-menu.mat-menu-panel{width:400px}#search-options{padding-left:20px}#search-options mat-checkbox{padding:3px 20px 3px 0}#search-options mat-checkbox .mat-checkbox-label{padding:0}#search-options .mat-checkbox-layout{max-width:105px}}@media screen and (max-width: 599px){.aca-search-input,.app-search-container{max-width:220px}.app-search-options-menu.mat-menu-panel{width:220px;margin-top:9px}#search-options .mat-checkbox-layout{max-width:180px}}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i16.SearchInputControlComponent, selector: "app-search-input-control", inputs: ["inputType"], outputs: ["submit", "searchChange"] }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
254
|
+
type: Component,
|
|
255
|
+
args: [{ selector: 'aca-search-input', encapsulation: ViewEncapsulation.None, host: { class: 'aca-search-input' }, template: "<div\n class=\"app-search-container searchMenuTrigger\"\n [matMenuTriggerFor]=\"searchOptionsMenu\"\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"syncInputValues()\"\n>\n <button mat-icon-button class=\"app-search-button\" (click)=\"searchByOption()\" [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\">\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"'text'\"\n [disabled]=\"true\"\n [value]=\"searchedWord\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n </mat-form-field>\n</div>\n\n<mat-menu #searchOptionsMenu=\"matMenu\" [overlapTrigger]=\"true\" class=\"app-search-options-menu\">\n <div (keydown.tab)=\"$event.stopPropagation()\" (keydown.shift.tab)=\"$event.stopPropagation()\">\n <div cdkTrapFocus>\n <app-search-input-control\n #searchInputControl\n (click)=\"$event.stopPropagation()\"\n (submit)=\"onSearchSubmit($event)\"\n (searchChange)=\"onSearchChange($event)\"\n >\n </app-search-input-control>\n <mat-hint *ngIf=\"hasLibraryConstraint()\" class=\"app-search-hint\">{{ 'SEARCH.INPUT.HINT' | translate }}</mat-hint>\n\n <div id=\"search-options\">\n <mat-checkbox\n *ngFor=\"let option of searchOptions\"\n id=\"{{ option.id }}\"\n [(ngModel)]=\"option.value\"\n [disabled]=\"option.shouldDisable()\"\n (change)=\"searchByOption()\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ option.key | translate }}\n </mat-checkbox>\n </div>\n </div>\n </div>\n</mat-menu>\n", styles: [".app-search-container{color:var(--theme-foreground-text-color)}.app-search-container .app-input-form-field .mat-input-element{caret-color:var(--theme-text-color)}.app-search-container .app-input-form-field .mat-input-element:disabled{color:var(--theme-text-color)}.app-search-container .mat-focused label.mat-form-field-label{display:none}.app-search-options-menu.mat-menu-panel{background-color:var(--theme-dialog-background-color);width:594px;max-width:unset;border-radius:4px;margin-top:12px}.app-search-options-menu .mat-menu-content:not(:empty){padding-top:0;padding-bottom:0}#search-options{color:var(--theme-text-color);border-top:1px solid var(--theme-divider-color)}mat-checkbox .mat-checkbox-frame{border-color:var(--theme-text-color)}.aca-search-input{width:100%;max-width:594px;background-color:#f5f6f5;border-radius:4px;height:40px}.app-search-container{width:100%;max-width:594px;height:52px}.app-search-control{margin-top:-12px}#search-options{padding:20px 0;font-size:16px;letter-spacing:-.7px}#search-options mat-checkbox{padding:3px 24px 3px 19px}#search-options mat-checkbox .mat-checkbox-inner-container{height:18px;width:18px}#search-options mat-checkbox .mat-checkbox-label{padding:0 0 0 11px;overflow:hidden;text-overflow:ellipsis}#search-options .mat-checkbox-layout{max-width:155px}.app-search-hint{position:absolute;font-size:12px;padding-left:17px}@media screen and (max-width: 959px){.aca-search-input,.app-search-container{max-width:400px}.app-search-options-menu.mat-menu-panel{width:400px}#search-options{padding-left:20px}#search-options mat-checkbox{padding:3px 20px 3px 0}#search-options mat-checkbox .mat-checkbox-label{padding:0}#search-options .mat-checkbox-layout{max-width:105px}}@media screen and (max-width: 599px){.aca-search-input,.app-search-container{max-width:220px}.app-search-options-menu.mat-menu-panel{width:220px;margin-top:9px}#search-options .mat-checkbox-layout{max-width:180px}}\n"] }]
|
|
256
|
+
}], ctorParameters: function () { return [{ type: i1.SearchQueryBuilderService }, { type: i2.SearchLibrariesQueryBuilderService }, { type: i3.AppConfigService }, { type: i4.Router }, { type: i5.Store }, { type: i6.AppHookService }]; }, propDecorators: { searchInputControl: [{
|
|
257
|
+
type: ViewChild,
|
|
258
|
+
args: ['searchInputControl', { static: true }]
|
|
259
|
+
}], trigger: [{
|
|
260
|
+
type: ViewChild,
|
|
261
|
+
args: [MatMenuTrigger, { static: true }]
|
|
262
|
+
}] } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBWSxrQkFBa0IsRUFBRSxlQUFlLEVBQXFCLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkksT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUF3QyxNQUFNLGlCQUFpQixDQUFDO0FBQzNILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFB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QUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWpELE9BQU87c0JBRE4sU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogQ29weXJpZ2h0IChDKSAyMDA1IC0gMjAyMCBBbGZyZXNjbyBTb2Z0d2FyZSBMaW1pdGVkXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWxmcmVzY28uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBcHBIb29rU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IEFwcFN0b3JlLCBTZWFyY2hCeVRlcm1BY3Rpb24sIFNlYXJjaE9wdGlvbklkcywgU2VhcmNoT3B0aW9uTW9kZWwsIFNuYWNrYmFyRXJyb3JBY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFBSSU1BUllfT1VUTEVULCBSb3V0ZXIsIFJvdXRlckV2ZW50LCBVcmxTZWdtZW50LCBVcmxTZWdtZW50R3JvdXAsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlYXJjaElucHV0Q29udHJvbENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1pbnB1dC1jb250cm9sL3NlYXJjaC1pbnB1dC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hMaWJyYXJpZXNRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoLWxpYnJhcmllcy1yZXN1bHRzL3NlYXJjaC1saWJyYXJpZXMtcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNhLXNlYXJjaC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1zZWFyY2gtaW5wdXQnIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG9uRGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBoYXNPbmVDaGFuZ2UgPSBmYWxzZTtcbiAgaGFzTmV3Q2hhbmdlID0gZmFsc2U7XG4gIG5hdmlnYXRpb25UaW1lcjogYW55O1xuICBoYXM0MDBMaWJyYXJ5RXJyb3IgPSBmYWxzZTtcbiAgc2VhcmNoT25DaGFuZ2U6IGJvb2xlYW47XG5cbiAgc2VhcmNoZWRXb3JkOiBzdHJpbmcgPSBudWxsO1xuICBzZWFyY2hPcHRpb25zOiBBcnJheTxTZWFyY2hPcHRpb25Nb2RlbD4gPSBbXG4gICAge1xuICAgICAgaWQ6IFNlYXJjaE9wdGlvbklkcy5GaWxlcyxcbiAgICAgIGtleTogJ1NFQVJDSC5JTlBVVC5GSUxFUycsXG4gICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICBzaG91bGREaXNhYmxlOiB0aGlzLmlzTGlicmFyaWVzQ2hlY2tlZC5iaW5kKHRoaXMpXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogU2VhcmNoT3B0aW9uSWRzLkZvbGRlcnMsXG4gICAgICBrZXk6ICdTRUFSQ0guSU5QVVQuRk9MREVSUycsXG4gICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICBzaG91bGREaXNhYmxlOiB0aGlzLmlzTGlicmFyaWVzQ2hlY2tlZC5iaW5kKHRoaXMpXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogU2VhcmNoT3B0aW9uSWRzLkxpYnJhcmllcyxcbiAgICAgIGtleTogJ1NFQVJDSC5JTlBVVC5MSUJSQVJJRVMnLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgc2hvdWxkRGlzYWJsZTogdGhpcy5pc0NvbnRlbnRDaGVja2VkLmJpbmQodGhpcylcbiAgICB9XG4gIF07XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXRDb250cm9sJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2VhcmNoSW5wdXRDb250cm9sOiBTZWFyY2hJbnB1dENvbnRyb2xDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlciwgeyBzdGF0aWM6IHRydWUgfSlcbiAgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBxdWVyeUJ1aWxkZXI6IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeUxpYnJhcmllc0J1aWxkZXI6IFNlYXJjaExpYnJhcmllc1F1ZXJ5QnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sXG4gICAgcHJpdmF0ZSBhcHBIb29rU2VydmljZTogQXBwSG9va1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hPbkNoYW5nZSA9IHRoaXMuY29uZmlnLmdldDxib29sZWFuPignc2VhcmNoLmFjYTp0cmlnZ2VyZWRPbkNoYW5nZScsIHRydWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaG93SW5wdXRWYWx1ZSgpO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5waXBlKGZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIFJvdXRlckV2ZW50KSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICB0aGlzLnNob3dJbnB1dFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5hcHBIb29rU2VydmljZS5saWJyYXJ5NDAwRXJyb3IucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaGFzNDAwTGlicmFyeUVycm9yID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dJbnB1dFZhbHVlKCkge1xuICAgIHRoaXMuaGFzNDAwTGlicmFyeUVycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hlZFdvcmQgPSB0aGlzLmdldFVybFNlYXJjaFRlcm0oKTtcblxuICAgIGlmICh0aGlzLnNlYXJjaElucHV0Q29udHJvbCkge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dENvbnRyb2wuc2VhcmNoVGVybSA9IHRoaXMuc2VhcmNoZWRXb3JkO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMucmVtb3ZlQ29udGVudEZpbHRlcnMoKTtcbiAgfVxuXG4gIG9uTWVudU9wZW5lZCgpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0Q29udHJvbC5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgc2VhcmNoLCBlLmcuIGhpdHMgZW50ZXIgb3IgY2xpY2tzIHN1Ym1pdFxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgUGFyYW1ldGVycyByZWxhdGluZyB0byB0aGUgc2VhcmNoXG4gICAqL1xuICBvblNlYXJjaFN1Ym1pdChldmVudDogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IGV2ZW50LnRhcmdldCA/IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgOiBldmVudDtcbiAgICBpZiAoc2VhcmNoVGVybSkge1xuICAgICAgdGhpcy5zZWFyY2hlZFdvcmQgPSBzZWFyY2hUZXJtO1xuXG4gICAgICB0aGlzLnNlYXJjaEJ5T3B0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNuYWNrYmFyRXJyb3JBY3Rpb24oJ0FQUC5CUk9XU0UuU0VBUkNILkVNUFRZX1NFQVJDSCcpKTtcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlTWVudSgpO1xuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2Uoc2VhcmNoVGVybTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaE9uQ2hhbmdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYXM0MDBMaWJyYXJ5RXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnNlYXJjaGVkV29yZCA9IHNlYXJjaFRlcm07XG5cbiAgICBpZiAodGhpcy5oYXNPbmVDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaGFzTmV3Q2hhbmdlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNPbmVDaGFuZ2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc05ld0NoYW5nZSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubmF2aWdhdGlvblRpbWVyKTtcbiAgICAgIHRoaXMuaGFzTmV3Q2hhbmdlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5uYXZpZ2F0aW9uVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hUZXJtKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNlYXJjaEJ5VGVybUFjdGlvbihzZWFyY2hUZXJtLCB0aGlzLnNlYXJjaE9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFzT25lQ2hhbmdlID0gZmFsc2U7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBzZWFyY2hCeU9wdGlvbigpIHtcbiAgICB0aGlzLnN5bmNJbnB1dFZhbHVlcygpO1xuICAgIHRoaXMuaGFzNDAwTGlicmFyeUVycm9yID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaXNMaWJyYXJpZXNDaGVja2VkKCkpIHtcbiAgICAgIGlmICh0aGlzLm9uTGlicmFyaWVzU2VhcmNoUmVzdWx0cyAmJiB0aGlzLmlzU2FtZVNlYXJjaFRlcm0oKSkge1xuICAgICAgICB0aGlzLnF1ZXJ5TGlicmFyaWVzQnVpbGRlci51cGRhdGUoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hlZFdvcmQpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2VhcmNoQnlUZXJtQWN0aW9uKHRoaXMuc2VhcmNoZWRXb3JkLCB0aGlzLnNlYXJjaE9wdGlvbnMpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaXNGb2xkZXJzQ2hlY2tlZCgpICYmICF0aGlzLmlzRmlsZXNDaGVja2VkKCkpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJDb250ZW50KFNlYXJjaE9wdGlvbklkcy5Gb2xkZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZpbGVzQ2hlY2tlZCgpICYmICF0aGlzLmlzRm9sZGVyc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmZpbHRlckNvbnRlbnQoU2VhcmNoT3B0aW9uSWRzLkZpbGVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGVudEZpbHRlcnMoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub25TZWFyY2hSZXN1bHRzICYmIHRoaXMuaXNTYW1lU2VhcmNoVGVybSgpKSB7XG4gICAgICAgIHRoaXMucXVlcnlCdWlsZGVyLnVwZGF0ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaGVkV29yZCkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZWFyY2hCeVRlcm1BY3Rpb24odGhpcy5zZWFyY2hlZFdvcmQsIHRoaXMuc2VhcmNoT3B0aW9ucykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBvbkxpYnJhcmllc1NlYXJjaFJlc3VsdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnVybC5pbmRleE9mKCcvc2VhcmNoLWxpYnJhcmllcycpID09PSAwO1xuICB9XG5cbiAgZ2V0IG9uU2VhcmNoUmVzdWx0cygpIHtcbiAgICByZXR1cm4gIXRoaXMub25MaWJyYXJpZXNTZWFyY2hSZXN1bHRzICYmIHRoaXMucm91dGVyLnVybC5pbmRleE9mKCcvc2VhcmNoJykgPT09IDA7XG4gIH1cblxuICBpc0ZpbGVzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc09wdGlvbkNoZWNrZWQoU2VhcmNoT3B0aW9uSWRzLkZpbGVzKTtcbiAgfVxuXG4gIGlzRm9sZGVyc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPcHRpb25DaGVja2VkKFNlYXJjaE9wdGlvbklkcy5Gb2xkZXJzKTtcbiAgfVxuXG4gIGlzTGlicmFyaWVzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc09wdGlvbkNoZWNrZWQoU2VhcmNoT3B0aW9uSWRzLkxpYnJhcmllcyk7XG4gIH1cblxuICBpc09wdGlvbkNoZWNrZWQob3B0aW9uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxpYkl0ZW0gPSB0aGlzLnNlYXJjaE9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gb3B0aW9uSWQpO1xuICAgIHJldHVybiAhIWxpYkl0ZW0gJiYgbGliSXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzQ29udGVudENoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNGaWxlc0NoZWNrZWQoKSB8fCB0aGlzLmlzRm9sZGVyc0NoZWNrZWQoKTtcbiAgfVxuXG4gIGhhc0xpYnJhcnlDb25zdHJhaW50KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzTGlicmFyaWVzQ2hlY2tlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXM0MDBMaWJyYXJ5RXJyb3IgfHwgdGhpcy5zZWFyY2hJbnB1dENvbnRyb2wuaXNUZXJtVG9vU2hvcnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZmlsdGVyQ29udGVudChvcHRpb246IFNlYXJjaE9wdGlvbklkcy5Gb2xkZXJzIHwgU2VhcmNoT3B0aW9uSWRzLkZpbGVzKSB7XG4gICAgY29uc3Qgb3Bwb3NpdGVPcHRpb24gPSBvcHRpb24gPT09IFNlYXJjaE9wdGlvbklkcy5Gb2xkZXJzID8gU2VhcmNoT3B0aW9uSWRzLkZpbGVzIDogU2VhcmNoT3B0aW9uSWRzLkZvbGRlcnM7XG5cbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci5hZGRGaWx0ZXJRdWVyeShgK1RZUEU6J2NtOiR7b3B0aW9ufSdgKTtcbiAgICB0aGlzLnF1ZXJ5QnVpbGRlci5yZW1vdmVGaWx0ZXJRdWVyeShgK1RZUEU6J2NtOiR7b3Bwb3NpdGVPcHRpb259J2ApO1xuICB9XG5cbiAgcmVtb3ZlQ29udGVudEZpbHRlcnMoKSB7XG4gICAgdGhpcy5xdWVyeUJ1aWxkZXIucmVtb3ZlRmlsdGVyUXVlcnkoYCtUWVBFOidjbToke1NlYXJjaE9wdGlvbklkcy5GaWxlc30nYCk7XG4gICAgdGhpcy5xdWVyeUJ1aWxkZXIucmVtb3ZlRmlsdGVyUXVlcnkoYCtUWVBFOidjbToke1NlYXJjaE9wdGlvbklkcy5Gb2xkZXJzfSdgKTtcbiAgfVxuXG4gIHN5bmNJbnB1dFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dENvbnRyb2wuc2VhcmNoVGVybSAhPT0gdGhpcy5zZWFyY2hlZFdvcmQpIHtcbiAgICAgIGlmICh0aGlzLnNlYXJjaElucHV0Q29udHJvbC5zZWFyY2hUZXJtKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoZWRXb3JkID0gdGhpcy5zZWFyY2hJbnB1dENvbnRyb2wuc2VhcmNoVGVybTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRDb250cm9sLnNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaGVkV29yZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRVcmxTZWFyY2hUZXJtKCk6IHN0cmluZyB7XG4gICAgbGV0IHNlYXJjaFRlcm0gPSAnJztcbiAgICBpZiAodGhpcy5vblNlYXJjaFJlc3VsdHMgfHwgdGhpcy5vbkxpYnJhcmllc1NlYXJjaFJlc3VsdHMpIHtcbiAgICAgIGNvbnN0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuICAgICAgY29uc3QgdXJsU2VnbWVudEdyb3VwOiBVcmxTZWdtZW50R3JvdXAgPSB1cmxUcmVlLnJvb3QuY2hpbGRyZW5bUFJJTUFSWV9PVVRMRVRdO1xuXG4gICAgICBpZiAodXJsU2VnbWVudEdyb3VwKSB7XG4gICAgICAgIGNvbnN0IHVybFNlZ21lbnRzOiBVcmxTZWdtZW50W10gPSB1cmxTZWdtZW50R3JvdXAuc2VnbWVudHM7XG4gICAgICAgIHNlYXJjaFRlcm0gPSB1cmxTZWdtZW50c1swXS5wYXJhbWV0ZXJzWydxJ10gPyBkZWNvZGVVUklDb21wb25lbnQodXJsU2VnbWVudHNbMF0ucGFyYW1ldGVyc1sncSddKSA6ICcnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzZWFyY2hUZXJtO1xuICB9XG5cbiAgaXNTYW1lU2VhcmNoVGVybSgpOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmxTZWFyY2hUZXJtID0gdGhpcy5nZXRVcmxTZWFyY2hUZXJtKCk7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoZWRXb3JkID09PSB1cmxTZWFyY2hUZXJtO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXBwLXNlYXJjaC1jb250YWluZXIgc2VhcmNoTWVudVRyaWdnZXJcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2VhcmNoT3B0aW9uc01lbnVcIlxuICAobWVudU9wZW5lZCk9XCJvbk1lbnVPcGVuZWQoKVwiXG4gIChtZW51Q2xvc2VkKT1cInN5bmNJbnB1dFZhbHVlcygpXCJcbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJhcHAtc2VhcmNoLWJ1dHRvblwiIChjbGljayk9XCJzZWFyY2hCeU9wdGlvbigpXCIgW3RpdGxlXT1cIidTRUFSQ0guQlVUVE9OLlRPT0xUSVAnIHwgdHJhbnNsYXRlXCI+XG4gICAgPG1hdC1pY29uIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NFQVJDSC5CVVRUT04uQVJJQS1MQUJFTCcgfCB0cmFuc2xhdGVcIj5zZWFyY2g8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYXBwLWlucHV0LWZvcm0tZmllbGRcIiBbZmxvYXRMYWJlbF09XCInbmV2ZXInXCI+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU0VBUkNILklOUFVULkFSSUEtTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICBbdmFsdWVdPVwic2VhcmNoZWRXb3JkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VBUkNILklOUFVULlBMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZVwiXG4gICAgLz5cblxuICAgIDxkaXYgbWF0U3VmZml4IGNsYXNzPVwiYXBwLXN1ZmZpeC1zZWFyY2gtaWNvbi13cmFwcGVyXCI+XG4gICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuXG48bWF0LW1lbnUgI3NlYXJjaE9wdGlvbnNNZW51PVwibWF0TWVudVwiIFtvdmVybGFwVHJpZ2dlcl09XCJ0cnVlXCIgY2xhc3M9XCJhcHAtc2VhcmNoLW9wdGlvbnMtbWVudVwiPlxuICA8ZGl2IChrZXlkb3duLnRhYik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoa2V5ZG93bi5zaGlmdC50YWIpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgPGRpdiBjZGtUcmFwRm9jdXM+XG4gICAgICA8YXBwLXNlYXJjaC1pbnB1dC1jb250cm9sXG4gICAgICAgICNzZWFyY2hJbnB1dENvbnRyb2xcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChzdWJtaXQpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgIChzZWFyY2hDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L2FwcC1zZWFyY2gtaW5wdXQtY29udHJvbD5cbiAgICAgIDxtYXQtaGludCAqbmdJZj1cImhhc0xpYnJhcnlDb25zdHJhaW50KClcIiBjbGFzcz1cImFwcC1zZWFyY2gtaGludFwiPnt7ICdTRUFSQ0guSU5QVVQuSElOVCcgfCB0cmFuc2xhdGUgfX08L21hdC1oaW50PlxuXG4gICAgICA8ZGl2IGlkPVwic2VhcmNoLW9wdGlvbnNcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VhcmNoT3B0aW9uc1wiXG4gICAgICAgICAgaWQ9XCJ7eyBvcHRpb24uaWQgfX1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLnNob3VsZERpc2FibGUoKVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWFyY2hCeU9wdGlvbigpXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG9wdGlvbi5rZXkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21hdC1tZW51PlxuIl19
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Alfresco Example Content Application
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2005 - 2020 Alfresco Software Limited
|
|
6
|
+
*
|
|
7
|
+
* This file is part of the Alfresco Example Content Application.
|
|
8
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
9
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
10
|
+
* provided under the following open source license terms:
|
|
11
|
+
*
|
|
12
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
13
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
+
* (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
18
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
19
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
20
|
+
* GNU Lesser General Public License for more details.
|
|
21
|
+
*
|
|
22
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
23
|
+
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
24
|
+
*/
|
|
25
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, ViewChild, ElementRef } from '@angular/core';
|
|
26
|
+
import { Subject } from 'rxjs';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "@angular/common";
|
|
29
|
+
import * as i2 from "@angular/forms";
|
|
30
|
+
import * as i3 from "@angular/material/button";
|
|
31
|
+
import * as i4 from "@angular/material/icon";
|
|
32
|
+
import * as i5 from "@angular/material/form-field";
|
|
33
|
+
import * as i6 from "@angular/material/input";
|
|
34
|
+
import * as i7 from "@ngx-translate/core";
|
|
35
|
+
export class SearchInputControlComponent {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.onDestroy$ = new Subject();
|
|
38
|
+
/** Type of the input field to render, e.g. "search" or "text" (default). */
|
|
39
|
+
this.inputType = 'text';
|
|
40
|
+
/** Emitted when the search is submitted pressing ENTER button.
|
|
41
|
+
* The search term is provided as value of the event.
|
|
42
|
+
*/
|
|
43
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
44
|
+
this.submit = new EventEmitter();
|
|
45
|
+
/** Emitted when the search term is changed. The search term is provided
|
|
46
|
+
* in the 'value' property of the returned object. If the term is less
|
|
47
|
+
* than three characters in length then the term is truncated to an empty
|
|
48
|
+
* string.
|
|
49
|
+
*/
|
|
50
|
+
this.searchChange = new EventEmitter();
|
|
51
|
+
this.searchTerm = '';
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.onDestroy$.next(true);
|
|
55
|
+
this.onDestroy$.complete();
|
|
56
|
+
}
|
|
57
|
+
searchSubmit(event) {
|
|
58
|
+
this.submit.emit(event);
|
|
59
|
+
}
|
|
60
|
+
inputChange(event) {
|
|
61
|
+
this.searchChange.emit(event);
|
|
62
|
+
}
|
|
63
|
+
clear() {
|
|
64
|
+
this.searchTerm = '';
|
|
65
|
+
this.searchChange.emit('');
|
|
66
|
+
}
|
|
67
|
+
isTermTooShort() {
|
|
68
|
+
return !!(this.searchTerm && this.searchTerm.length < 2);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
SearchInputControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchInputControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
SearchInputControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SearchInputControlComponent, selector: "app-search-input-control", inputs: { inputType: "inputType" }, outputs: { submit: "submit", searchChange: "searchChange" }, host: { classAttribute: "app-search-control" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"app-search-container\">\n <button\n mat-icon-button\n id=\"app-search-button\"\n class=\"app-search-button\"\n (click)=\"searchSubmit(searchTerm)\"\n [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\"\n >\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n #searchInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"inputType\"\n id=\"app-control-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"inputChange($event)\"\n (keyup.enter)=\"searchSubmit($event)\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon *ngIf=\"searchTerm.length\" (click)=\"clear()\" class=\"app-clear-icon\">clear</mat-icon>\n </div>\n </mat-form-field>\n</div>\n", styles: [".app-search-container{margin-top:-12px;padding-top:2px;font-size:16px;padding-left:15px;box-sizing:border-box}.app-search-container .mat-form-field{font-size:16px}.app-search-container .mat-form-field-underline{display:none}.app-search-container .mat-form-field-label-wrapper{cursor:text}.app-search-container.searchMenuTrigger .mat-form-field-label-wrapper{pointer-events:auto}.app-search-container .app-input-form-field{letter-spacing:-.7px;width:calc(100% - 56px)}.app-search-container .app-input-form-field .mat-input-element{letter-spacing:-.7px}.app-search-container .app-search-button.mat-icon-button{top:-2px;left:-8px}.app-search-container .app-search-button.mat-icon-button .mat-icon{font-size:24px;padding-right:0}.app-suffix-search-icon-wrapper{height:6px;margin:14px 1px;float:left}.app-suffix-search-icon-wrapper .mat-icon{font-size:24px;cursor:pointer}.app-suffix-search-icon-wrapper .app-clear-icon{font-size:18px;margin:3px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SearchInputControlComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'app-search-input-control', encapsulation: ViewEncapsulation.None, host: { class: 'app-search-control' }, template: "<div class=\"app-search-container\">\n <button\n mat-icon-button\n id=\"app-search-button\"\n class=\"app-search-button\"\n (click)=\"searchSubmit(searchTerm)\"\n [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\"\n >\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n #searchInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"inputType\"\n id=\"app-control-input\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"inputChange($event)\"\n (keyup.enter)=\"searchSubmit($event)\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon *ngIf=\"searchTerm.length\" (click)=\"clear()\" class=\"app-clear-icon\">clear</mat-icon>\n </div>\n </mat-form-field>\n</div>\n", styles: [".app-search-container{margin-top:-12px;padding-top:2px;font-size:16px;padding-left:15px;box-sizing:border-box}.app-search-container .mat-form-field{font-size:16px}.app-search-container .mat-form-field-underline{display:none}.app-search-container .mat-form-field-label-wrapper{cursor:text}.app-search-container.searchMenuTrigger .mat-form-field-label-wrapper{pointer-events:auto}.app-search-container .app-input-form-field{letter-spacing:-.7px;width:calc(100% - 56px)}.app-search-container .app-input-form-field .mat-input-element{letter-spacing:-.7px}.app-search-container .app-search-button.mat-icon-button{top:-2px;left:-8px}.app-search-container .app-search-button.mat-icon-button .mat-icon{font-size:24px;padding-right:0}.app-suffix-search-icon-wrapper{height:6px;margin:14px 1px;float:left}.app-suffix-search-icon-wrapper .mat-icon{font-size:24px;cursor:pointer}.app-suffix-search-icon-wrapper .app-clear-icon{font-size:18px;margin:3px}\n"] }]
|
|
76
|
+
}], propDecorators: { inputType: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}],
|
|
79
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
80
|
+
submit: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}], searchChange: [{
|
|
83
|
+
type: Output
|
|
84
|
+
}], searchInput: [{
|
|
85
|
+
type: ViewChild,
|
|
86
|
+
args: ['searchInput', { static: true }]
|
|
87
|
+
}] } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2gtaW5wdXQtY29udHJvbC9zZWFyY2gtaW5wdXQtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC1pbnB1dC1jb250cm9sL3NlYXJjaC1pbnB1dC1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVFFLGVBQVUsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUV0RCw0RUFBNEU7UUFFNUUsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUVuQjs7V0FFRztRQUVILDREQUE0RDtRQUM1RCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0M7Ozs7V0FJRztRQUVILGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLeEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztLQXVCakI7SUFyQkMsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7O3dIQS9DVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwyVUNuQ3hDLDArQkEyQkE7MkZEUWEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixpQkFHckIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTs4QkFPckMsU0FBUztzQkFEUixLQUFLOztRQU9OLDREQUE0RDtRQUM1RCxNQUFNO3NCQUZMLE1BQU07Z0JBVVAsWUFBWTtzQkFEWCxNQUFNO2dCQUlQLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogQ29weXJpZ2h0IChDKSAyMDA1IC0gMjAyMCBBbGZyZXNjbyBTb2Z0d2FyZSBMaW1pdGVkXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWxmcmVzY28uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWFyY2gtaW5wdXQtY29udHJvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaW5wdXQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1pbnB1dC1jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhcHAtc2VhcmNoLWNvbnRyb2wnIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSW5wdXRDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgLyoqIFR5cGUgb2YgdGhlIGlucHV0IGZpZWxkIHRvIHJlbmRlciwgZS5nLiBcInNlYXJjaFwiIG9yIFwidGV4dFwiIChkZWZhdWx0KS4gKi9cbiAgQElucHV0KClcbiAgaW5wdXRUeXBlID0gJ3RleHQnO1xuXG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCBpcyBzdWJtaXR0ZWQgcHJlc3NpbmcgRU5URVIgYnV0dG9uLlxuICAgKiBUaGUgc2VhcmNoIHRlcm0gaXMgcHJvdmlkZWQgYXMgdmFsdWUgb2YgdGhlIGV2ZW50LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCB0ZXJtIGlzIGNoYW5nZWQuIFRoZSBzZWFyY2ggdGVybSBpcyBwcm92aWRlZFxuICAgKiBpbiB0aGUgJ3ZhbHVlJyBwcm9wZXJ0eSBvZiB0aGUgcmV0dXJuZWQgb2JqZWN0LiAgSWYgdGhlIHRlcm0gaXMgbGVzc1xuICAgKiB0aGFuIHRocmVlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIHRoZW4gdGhlIHRlcm0gaXMgdHJ1bmNhdGVkIHRvIGFuIGVtcHR5XG4gICAqIHN0cmluZy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBzZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgc2VhcmNoVGVybSA9ICcnO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2VhcmNoU3VibWl0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnN1Ym1pdC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGlucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoJycpO1xuICB9XG5cbiAgaXNUZXJtVG9vU2hvcnQoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMuc2VhcmNoVGVybSAmJiB0aGlzLnNlYXJjaFRlcm0ubGVuZ3RoIDwgMik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcHAtc2VhcmNoLWNvbnRhaW5lclwiPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgaWQ9XCJhcHAtc2VhcmNoLWJ1dHRvblwiXG4gICAgY2xhc3M9XCJhcHAtc2VhcmNoLWJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInNlYXJjaFN1Ym1pdChzZWFyY2hUZXJtKVwiXG4gICAgW3RpdGxlXT1cIidTRUFSQ0guQlVUVE9OLlRPT0xUSVAnIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIDxtYXQtaWNvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTRUFSQ0guQlVUVE9OLkFSSUEtTEFCRUwnIHwgdHJhbnNsYXRlXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFwcC1pbnB1dC1mb3JtLWZpZWxkXCIgW2Zsb2F0TGFiZWxdPVwiJ25ldmVyJ1wiPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU0VBUkNILklOUFVULkFSSUEtTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gICAgICBpZD1cImFwcC1jb250cm9sLWlucHV0XCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJpbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFQVJDSC5JTlBVVC5QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIlxuICAgIC8+XG4gICAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJhcHAtc3VmZml4LXNlYXJjaC1pY29uLXdyYXBwZXJcIj5cbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNlYXJjaFRlcm0ubGVuZ3RoXCIgKGNsaWNrKT1cImNsZWFyKClcIiBjbGFzcz1cImFwcC1jbGVhci1pY29uXCI+Y2xlYXI8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Alfresco Example Content Application
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2005 - 2020 Alfresco Software Limited
|
|
6
|
+
*
|
|
7
|
+
* This file is part of the Alfresco Example Content Application.
|
|
8
|
+
* If the software was purchased under a paid Alfresco license, the terms of
|
|
9
|
+
* the paid license agreement will prevail. Otherwise, the software is
|
|
10
|
+
* provided under the following open source license terms:
|
|
11
|
+
*
|
|
12
|
+
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
13
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
+
* (at your option) any later version.
|
|
16
|
+
*
|
|
17
|
+
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
18
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
19
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
20
|
+
* GNU Lesser General Public License for more details.
|
|
21
|
+
*
|
|
22
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
23
|
+
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
24
|
+
*/
|
|
25
|
+
import { NgModule } from '@angular/core';
|
|
26
|
+
import { CommonModule } from '@angular/common';
|
|
27
|
+
import { CoreModule } from '@alfresco/adf-core';
|
|
28
|
+
import { SearchInputComponent } from './search-input/search-input.component';
|
|
29
|
+
import { SearchInputControlComponent } from './search-input-control/search-input-control.component';
|
|
30
|
+
import { ContentModule } from '@alfresco/adf-content-services';
|
|
31
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
import * as i1 from "@alfresco/adf-core";
|
|
34
|
+
import * as i2 from "@alfresco/adf-content-services";
|
|
35
|
+
export class AppSearchInputModule {
|
|
36
|
+
}
|
|
37
|
+
AppSearchInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppSearchInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
38
|
+
AppSearchInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: AppSearchInputModule, declarations: [SearchInputComponent, SearchInputControlComponent], imports: [CommonModule, i1.CoreModule, i2.ContentModule, A11yModule], exports: [SearchInputComponent, SearchInputControlComponent] });
|
|
39
|
+
AppSearchInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppSearchInputModule, imports: [CommonModule, CoreModule.forChild(), ContentModule.forChild(), A11yModule] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppSearchInputModule, decorators: [{
|
|
41
|
+
type: NgModule,
|
|
42
|
+
args: [{
|
|
43
|
+
imports: [CommonModule, CoreModule.forChild(), ContentModule.forChild(), A11yModule],
|
|
44
|
+
declarations: [SearchInputComponent, SearchInputControlComponent],
|
|
45
|
+
exports: [SearchInputComponent, SearchInputControlComponent]
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQU8vQyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBSGhCLG9CQUFvQixFQUFFLDJCQUEyQixhQUR0RCxZQUFZLG1DQUFtRCxVQUFVLGFBRXpFLG9CQUFvQixFQUFFLDJCQUEyQjtrSEFFaEQsb0JBQW9CLFlBSnJCLFlBQVksRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVU7MkZBSXhFLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUM7b0JBQ3BGLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDO29CQUNqRSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQztpQkFDN0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMDUgLSAyMDIwIEFsZnJlc2NvIFNvZnR3YXJlIExpbWl0ZWRcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiAgT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBbGZyZXNjby4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtaW5wdXQtY29udHJvbC9zZWFyY2gtaW5wdXQtY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudE1vZHVsZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb3JlTW9kdWxlLmZvckNoaWxkKCksIENvbnRlbnRNb2R1bGUuZm9yQ2hpbGQoKSwgQTExeU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1NlYXJjaElucHV0Q29tcG9uZW50LCBTZWFyY2hJbnB1dENvbnRyb2xDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2VhcmNoSW5wdXRDb21wb25lbnQsIFNlYXJjaElucHV0Q29udHJvbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwU2VhcmNoSW5wdXRNb2R1bGUge31cbiJdfQ==
|