@alfresco/adf-content-services 8.1.0-16295248176 → 8.1.0-16342534841
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/bundles/assets/adf-content-services/i18n/de.json +1 -3
- package/bundles/assets/adf-content-services/i18n/en.json +1 -3
- package/bundles/assets/adf-content-services/i18n/es.json +1 -3
- package/bundles/assets/adf-content-services/i18n/fr.json +1 -3
- package/bundles/assets/adf-content-services/i18n/it.json +1 -3
- package/bundles/assets/adf-content-services/i18n/pl.json +1 -3
- package/bundles/assets/adf-content-services/i18n/pt.json +1 -3
- package/esm2022/adf-content-services.mjs +5 -0
- package/esm2022/lib/agent/index.mjs +18 -0
- package/esm2022/lib/agent/public-api.mjs +18 -0
- package/esm2022/lib/agent/services/agent.service.mjs +60 -0
- package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +27 -0
- package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +42 -0
- package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +77 -0
- package/esm2022/lib/api-factories/index.mjs +18 -0
- package/esm2022/lib/api-factories/public-api.mjs +19 -0
- package/esm2022/lib/aspect-list/aspect-list-dialog-data.interface.mjs +18 -0
- package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +77 -0
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +139 -0
- package/esm2022/lib/aspect-list/aspect-list.module.mjs +35 -0
- package/esm2022/lib/aspect-list/index.mjs +18 -0
- package/esm2022/lib/aspect-list/public-api.mjs +24 -0
- package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +83 -0
- package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +86 -0
- package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +52 -0
- package/esm2022/lib/auth-loader/content-auth-loader-factory.mjs +26 -0
- package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +42 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +166 -0
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +35 -0
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +65 -0
- package/esm2022/lib/breadcrumb/index.mjs +18 -0
- package/esm2022/lib/breadcrumb/public-api.mjs +20 -0
- package/esm2022/lib/category/categories-management/categories-management-mode.mjs +22 -0
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +308 -0
- package/esm2022/lib/category/category.module.mjs +33 -0
- package/esm2022/lib/category/index.mjs +18 -0
- package/esm2022/lib/category/models/category-node.interface.mjs +18 -0
- package/esm2022/lib/category/public-api.mjs +23 -0
- package/esm2022/lib/category/services/category-tree-datasource.service.mjs +80 -0
- package/esm2022/lib/category/services/category.service.mjs +159 -0
- package/esm2022/lib/common/events/file.event.mjs +46 -0
- package/esm2022/lib/common/index.mjs +18 -0
- package/esm2022/lib/common/interfaces/saved-search.interface.mjs +18 -0
- package/esm2022/lib/common/interfaces/search-configuration.interface.mjs +18 -0
- package/esm2022/lib/common/mocks/ecm-user.service.mock.mjs +37 -0
- package/esm2022/lib/common/models/allowable-operations.enum.mjs +30 -0
- package/esm2022/lib/common/models/ecm-company.model.mjs +19 -0
- package/esm2022/lib/common/models/ecm-user.model.mjs +45 -0
- package/esm2022/lib/common/models/file.model.mjs +53 -0
- package/esm2022/lib/common/models/node-metadata.model.mjs +23 -0
- package/esm2022/lib/common/models/permissions.enum.mjs +32 -0
- package/esm2022/lib/common/public-api.mjs +37 -0
- package/esm2022/lib/common/services/card-view-content-update.service.mjs +55 -0
- package/esm2022/lib/common/services/content.service.mjs +180 -0
- package/esm2022/lib/common/services/discovery-api.service.mjs +79 -0
- package/esm2022/lib/common/services/favorites-api.service.mjs +84 -0
- package/esm2022/lib/common/services/nodes-api.service.mjs +251 -0
- package/esm2022/lib/common/services/people-content.service.mjs +138 -0
- package/esm2022/lib/common/services/rendition.service.mjs +270 -0
- package/esm2022/lib/common/services/saved-searches.service.mjs +206 -0
- package/esm2022/lib/common/services/sites.service.mjs +243 -0
- package/esm2022/lib/common/services/upload.service.mjs +391 -0
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +54 -0
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +490 -0
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +128 -0
- package/esm2022/lib/content-metadata/content-metadata.module.mjs +36 -0
- package/esm2022/lib/content-metadata/index.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/aspect-oriented-config.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/card-view-group.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/content-metadata-config.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/content-metadata-panel.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/content-metadata.interfaces.mjs +28 -0
- package/esm2022/lib/content-metadata/interfaces/indifferent-config.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/layout-oriented-config.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/organised-property-group.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/preset-config.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/property-group.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/interfaces/property.interface.mjs +18 -0
- package/esm2022/lib/content-metadata/public-api.mjs +31 -0
- package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +107 -0
- package/esm2022/lib/content-metadata/services/config/aspect-oriented-config.service.mjs +106 -0
- package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +76 -0
- package/esm2022/lib/content-metadata/services/config/indifferent-config.service.mjs +40 -0
- package/esm2022/lib/content-metadata/services/config/layout-oriented-config.service.mjs +108 -0
- package/esm2022/lib/content-metadata/services/config/property-group-reader.mjs +33 -0
- package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +99 -0
- package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +134 -0
- package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +52 -0
- package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +169 -0
- package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +256 -0
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +617 -0
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +66 -0
- package/esm2022/lib/content-node-selector/content-node-selector.component-data.interface.mjs +18 -0
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +205 -0
- package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +50 -0
- package/esm2022/lib/content-node-selector/index.mjs +18 -0
- package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +48 -0
- package/esm2022/lib/content-node-selector/public-api.mjs +25 -0
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +168 -0
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +287 -0
- package/esm2022/lib/content-node-share/content-node-share.directive.mjs +102 -0
- package/esm2022/lib/content-node-share/content-node-share.module.mjs +35 -0
- package/esm2022/lib/content-node-share/content-node-share.settings.mjs +18 -0
- package/esm2022/lib/content-node-share/index.mjs +18 -0
- package/esm2022/lib/content-node-share/public-api.mjs +22 -0
- package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +83 -0
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +57 -0
- package/esm2022/lib/content-type/content-type-metadata.interface.mjs +18 -0
- package/esm2022/lib/content-type/content-type.service.mjs +52 -0
- package/esm2022/lib/content-type/index.mjs +20 -0
- package/esm2022/lib/content.module.mjs +277 -0
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +51 -0
- package/esm2022/lib/dialogs/dialog.module.mjs +52 -0
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +111 -0
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +38 -0
- package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +66 -0
- package/esm2022/lib/dialogs/folder/folder-name.validators.mjs +44 -0
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +146 -0
- package/esm2022/lib/dialogs/index.mjs +18 -0
- package/esm2022/lib/dialogs/library/library.dialog.mjs +224 -0
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +115 -0
- package/esm2022/lib/dialogs/public-api.mjs +25 -0
- package/esm2022/lib/directives/auto-focus.directive.mjs +38 -0
- package/esm2022/lib/directives/check-allowable-operation.directive.mjs +126 -0
- package/esm2022/lib/directives/content-directive.module.mjs +75 -0
- package/esm2022/lib/directives/index.mjs +18 -0
- package/esm2022/lib/directives/library-favorite.directive.mjs +119 -0
- package/esm2022/lib/directives/library-membership.directive.mjs +202 -0
- package/esm2022/lib/directives/node-counter.directive.mjs +59 -0
- package/esm2022/lib/directives/node-delete.directive.mjs +177 -0
- package/esm2022/lib/directives/node-download.directive.mjs +138 -0
- package/esm2022/lib/directives/node-favorite.directive.mjs +193 -0
- package/esm2022/lib/directives/node-lock.directive.mjs +57 -0
- package/esm2022/lib/directives/node-restore.directive.mjs +218 -0
- package/esm2022/lib/directives/public-api.mjs +28 -0
- package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +60 -0
- package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +196 -0
- package/esm2022/lib/document-list/components/document-list.component.mjs +965 -0
- package/esm2022/lib/document-list/components/document-list.token.mjs +21 -0
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +42 -0
- package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +107 -0
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +131 -0
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +91 -0
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +86 -0
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +118 -0
- package/esm2022/lib/document-list/components/node.event.mjs +30 -0
- package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +83 -0
- package/esm2022/lib/document-list/data/image-resolver.model.mjs +18 -0
- package/esm2022/lib/document-list/data/row-filter.model.mjs +18 -0
- package/esm2022/lib/document-list/data/share-data-row.model.mjs +102 -0
- package/esm2022/lib/document-list/data/share-datatable-adapter.mjs +258 -0
- package/esm2022/lib/document-list/document-list.module.mjs +75 -0
- package/esm2022/lib/document-list/index.mjs +18 -0
- package/esm2022/lib/document-list/interfaces/document-list-loader.interface.mjs +18 -0
- package/esm2022/lib/document-list/models/content-action.model.mjs +59 -0
- package/esm2022/lib/document-list/models/document-folder.model.mjs +23 -0
- package/esm2022/lib/document-list/models/node-action.enum.mjs +27 -0
- package/esm2022/lib/document-list/models/permissions-style.model.mjs +27 -0
- package/esm2022/lib/document-list/models/permissions.model.mjs +26 -0
- package/esm2022/lib/document-list/models/preset.model.mjs +257 -0
- package/esm2022/lib/document-list/public-api.mjs +47 -0
- package/esm2022/lib/document-list/services/custom-resources.service.mjs +378 -0
- package/esm2022/lib/document-list/services/document-actions.service.mjs +142 -0
- package/esm2022/lib/document-list/services/document-list.service.mjs +175 -0
- package/esm2022/lib/document-list/services/folder-actions.service.mjs +137 -0
- package/esm2022/lib/document-list/services/lock.service.mjs +72 -0
- package/esm2022/lib/document-list/services/node-actions.service.mjs +122 -0
- package/esm2022/lib/group/index.mjs +18 -0
- package/esm2022/lib/group/public-api.mjs +18 -0
- package/esm2022/lib/group/services/group.service.mjs +84 -0
- package/esm2022/lib/infinite-scroll-datasource/index.mjs +18 -0
- package/esm2022/lib/infinite-scroll-datasource/infinite-scroll-datasource.mjs +69 -0
- package/esm2022/lib/infinite-scroll-datasource/public-api.mjs +18 -0
- package/esm2022/lib/interfaces/base-card-view-content-update.interface.mjs +18 -0
- package/esm2022/lib/interfaces/index.mjs +18 -0
- package/esm2022/lib/interfaces/library-entity.interface.mjs +18 -0
- package/esm2022/lib/interfaces/library-membership-error-event.interface.mjs +18 -0
- package/esm2022/lib/interfaces/library-membership-toggle-event.interface.mjs +18 -0
- package/esm2022/lib/interfaces/node-allowable-operation-subject.interface.mjs +18 -0
- package/esm2022/lib/interfaces/public-api.mjs +23 -0
- package/esm2022/lib/interfaces/restore-message-model.interface.mjs +19 -0
- package/esm2022/lib/legal-hold/index.mjs +18 -0
- package/esm2022/lib/legal-hold/public-api.mjs +18 -0
- package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +136 -0
- package/esm2022/lib/material.module.mjs +183 -0
- package/esm2022/lib/mock/alfresco-api.service.mock.mjs +43 -0
- package/esm2022/lib/mock/date-range-search-filter.mock.mjs +65 -0
- package/esm2022/lib/mock/document-library.model.mock.mjs +84 -0
- package/esm2022/lib/mock/document-list.component.mock.mjs +364 -0
- package/esm2022/lib/mock/index.mjs +18 -0
- package/esm2022/lib/mock/new-version-uploader.service.mock.mjs +161 -0
- package/esm2022/lib/mock/public-api.mjs +27 -0
- package/esm2022/lib/mock/search-filter-mock.mjs +637 -0
- package/esm2022/lib/mock/search-query.mock.mjs +40 -0
- package/esm2022/lib/mock/search.component.mock.mjs +165 -0
- package/esm2022/lib/mock/search.service.mock.mjs +61 -0
- package/esm2022/lib/mock/sites-dropdown.component.mock.mjs +281 -0
- package/esm2022/lib/new-version-uploader/index.mjs +18 -0
- package/esm2022/lib/new-version-uploader/models/index.mjs +18 -0
- package/esm2022/lib/new-version-uploader/models/new-version-uploader.model.mjs +24 -0
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +74 -0
- package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +33 -0
- package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +103 -0
- package/esm2022/lib/new-version-uploader/public-api.mjs +21 -0
- package/esm2022/lib/node-comments/index.mjs +18 -0
- package/esm2022/lib/node-comments/node-comments.component.mjs +50 -0
- package/esm2022/lib/node-comments/node-comments.module.mjs +33 -0
- package/esm2022/lib/node-comments/public-api.mjs +20 -0
- package/esm2022/lib/node-comments/services/node-comments.service.mjs +85 -0
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog-data.interface.mjs +18 -0
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +123 -0
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +102 -0
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +69 -0
- package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +45 -0
- package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +67 -0
- package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +56 -0
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +102 -0
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +87 -0
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +219 -0
- package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +134 -0
- package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +88 -0
- package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +82 -0
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +111 -0
- package/esm2022/lib/permission-manager/index.mjs +18 -0
- package/esm2022/lib/permission-manager/models/member.model.mjs +59 -0
- package/esm2022/lib/permission-manager/models/permission.model.mjs +29 -0
- package/esm2022/lib/permission-manager/models/role.model.mjs +18 -0
- package/esm2022/lib/permission-manager/permission-manager.module.mjs +84 -0
- package/esm2022/lib/permission-manager/public-api.mjs +36 -0
- package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +78 -0
- package/esm2022/lib/permission-manager/services/node-permission.service.mjs +299 -0
- package/esm2022/lib/pipes/content-pipe.module.mjs +37 -0
- package/esm2022/lib/pipes/index.mjs +18 -0
- package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +69 -0
- package/esm2022/lib/pipes/public-api.mjs +19 -0
- package/esm2022/lib/prediction/index.mjs +18 -0
- package/esm2022/lib/prediction/public-api.mjs +18 -0
- package/esm2022/lib/prediction/services/index.mjs +18 -0
- package/esm2022/lib/prediction/services/prediction.service.mjs +57 -0
- package/esm2022/lib/search/components/empty-search-result.component.mjs +27 -0
- package/esm2022/lib/search/components/index.mjs +43 -0
- package/esm2022/lib/search/components/reset-search.directive.mjs +41 -0
- package/esm2022/lib/search/components/search-check-list/index.mjs +18 -0
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +158 -0
- package/esm2022/lib/search/components/search-chip-autocomplete-input/index.mjs +18 -0
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +169 -0
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +46 -0
- package/esm2022/lib/search/components/search-control.component.mjs +180 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/index.mjs +22 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/date-range-type.mjs +23 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/in-last-date-type.mjs +23 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +196 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.mjs +18 -0
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +201 -0
- package/esm2022/lib/search/components/search-datetime-range/index.mjs +18 -0
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +223 -0
- package/esm2022/lib/search/components/search-facet-field/index.mjs +18 -0
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +132 -0
- package/esm2022/lib/search/components/search-filter/index.mjs +19 -0
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +45 -0
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +80 -0
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/index.mjs +18 -0
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +154 -0
- package/esm2022/lib/search/components/search-filter-chips/index.mjs +23 -0
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +104 -0
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +109 -0
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +129 -0
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +63 -0
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +43 -0
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +109 -0
- package/esm2022/lib/search/components/search-filter-container/index.mjs +18 -0
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +122 -0
- package/esm2022/lib/search/components/search-filter-tabbed/index.mjs +19 -0
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +36 -0
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +63 -0
- package/esm2022/lib/search/components/search-form/index.mjs +18 -0
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +52 -0
- package/esm2022/lib/search/components/search-input/index.mjs +18 -0
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +108 -0
- package/esm2022/lib/search/components/search-logical-filter/index.mjs +18 -0
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +163 -0
- package/esm2022/lib/search/components/search-number-range/index.mjs +18 -0
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +154 -0
- package/esm2022/lib/search/components/search-panel/index.mjs +18 -0
- package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +44 -0
- package/esm2022/lib/search/components/search-properties/file-size-condition.mjs +18 -0
- package/esm2022/lib/search/components/search-properties/file-size-operator.enum.mjs +23 -0
- package/esm2022/lib/search/components/search-properties/file-size-unit.enum.mjs +26 -0
- package/esm2022/lib/search/components/search-properties/index.mjs +22 -0
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +244 -0
- package/esm2022/lib/search/components/search-properties/search-properties.mjs +18 -0
- package/esm2022/lib/search/components/search-radio/index.mjs +18 -0
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +145 -0
- package/esm2022/lib/search/components/search-slider/index.mjs +18 -0
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +119 -0
- package/esm2022/lib/search/components/search-sorting-picker/index.mjs +18 -0
- package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +77 -0
- package/esm2022/lib/search/components/search-text/index.mjs +18 -0
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +134 -0
- package/esm2022/lib/search/components/search-widget-container/index.mjs +18 -0
- package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +113 -0
- package/esm2022/lib/search/components/search.component.mjs +152 -0
- package/esm2022/lib/search/forms/index.mjs +19 -0
- package/esm2022/lib/search/forms/live-error-state-matcher.mjs +23 -0
- package/esm2022/lib/search/forms/search-term-validator.mjs +26 -0
- package/esm2022/lib/search/index.mjs +18 -0
- package/esm2022/lib/search/mocks/index.mjs +18 -0
- package/esm2022/lib/search/mocks/search.service.mock.mjs +56 -0
- package/esm2022/lib/search/models/autocomplete-option.interface.mjs +22 -0
- package/esm2022/lib/search/models/facet-field-bucket.interface.mjs +18 -0
- package/esm2022/lib/search/models/facet-field.interface.mjs +29 -0
- package/esm2022/lib/search/models/facet-query.interface.mjs +18 -0
- package/esm2022/lib/search/models/facet-widget.interface.mjs +18 -0
- package/esm2022/lib/search/models/filter-query.interface.mjs +18 -0
- package/esm2022/lib/search/models/filter-search.interface.mjs +18 -0
- package/esm2022/lib/search/models/index.mjs +34 -0
- package/esm2022/lib/search/models/response-facet-query-list.model.mjs +31 -0
- package/esm2022/lib/search/models/search-category.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-configuration.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-filter-list.model.mjs +148 -0
- package/esm2022/lib/search/models/search-form.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-range.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-sorting-definition.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-widget-settings.interface.mjs +18 -0
- package/esm2022/lib/search/models/search-widget.interface.mjs +18 -0
- package/esm2022/lib/search/models/tabbed-facet-field.interface.mjs +18 -0
- package/esm2022/lib/search/public-api.mjs +24 -0
- package/esm2022/lib/search/search-configuration.token.mjs +19 -0
- package/esm2022/lib/search/search.module.mjs +192 -0
- package/esm2022/lib/search/services/base-query-builder.service.mjs +509 -0
- package/esm2022/lib/search/services/index.mjs +24 -0
- package/esm2022/lib/search/services/search-configuration.service.mjs +50 -0
- package/esm2022/lib/search/services/search-facet-filters.service.mjs +374 -0
- package/esm2022/lib/search/services/search-filter.service.mjs +56 -0
- package/esm2022/lib/search/services/search-header-query-builder.service.mjs +136 -0
- package/esm2022/lib/search/services/search-query-builder.service.mjs +48 -0
- package/esm2022/lib/search/services/search.service.mjs +89 -0
- package/esm2022/lib/search-ai/index.mjs +18 -0
- package/esm2022/lib/search-ai/models/search-ai-input-state.mjs +18 -0
- package/esm2022/lib/search-ai/public-api.mjs +19 -0
- package/esm2022/lib/search-ai/services/search-ai.service.mjs +103 -0
- package/esm2022/lib/security/index.mjs +18 -0
- package/esm2022/lib/security/public-api.mjs +18 -0
- package/esm2022/lib/security/services/models/security-controls-group-response.interface.mjs +18 -0
- package/esm2022/lib/security/services/models/security-controls-mark-response.interface.mjs +18 -0
- package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +274 -0
- package/esm2022/lib/security-options-loader/security-options-loader.service.mjs +43 -0
- package/esm2022/lib/services/alfresco-api.interface.mjs +18 -0
- package/esm2022/lib/services/alfresco-api.service.mjs +120 -0
- package/esm2022/lib/services/index.mjs +18 -0
- package/esm2022/lib/services/public-api.mjs +18 -0
- package/esm2022/lib/tag/index.mjs +18 -0
- package/esm2022/lib/tag/public-api.mjs +24 -0
- package/esm2022/lib/tag/services/tag.service.mjs +171 -0
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +114 -0
- package/esm2022/lib/tag/tag-list/tag-list.component.mjs +98 -0
- package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +80 -0
- package/esm2022/lib/tag/tag.module.mjs +37 -0
- package/esm2022/lib/tag/tags-creator/tags-creator-mode.mjs +27 -0
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +370 -0
- package/esm2022/lib/testing/content.testing.module.mjs +56 -0
- package/esm2022/lib/tree/components/tree.component.mjs +312 -0
- package/esm2022/lib/tree/index.mjs +18 -0
- package/esm2022/lib/tree/models/tree-context-menu-result.interface.mjs +18 -0
- package/esm2022/lib/tree/models/tree-node.interface.mjs +22 -0
- package/esm2022/lib/tree/models/tree-response.interface.mjs +18 -0
- package/esm2022/lib/tree/public-api.mjs +23 -0
- package/esm2022/lib/tree/services/tree.service.mjs +134 -0
- package/esm2022/lib/tree/tree.module.mjs +33 -0
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +75 -0
- package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +99 -0
- package/esm2022/lib/tree-view/index.mjs +18 -0
- package/esm2022/lib/tree-view/models/tree-view.model.mjs +28 -0
- package/esm2022/lib/tree-view/public-api.mjs +22 -0
- package/esm2022/lib/tree-view/services/tree-view.service.mjs +38 -0
- package/esm2022/lib/tree-view/tree-view.module.mjs +33 -0
- package/esm2022/lib/upload/components/base-upload/upload-base.mjs +176 -0
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +190 -0
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +92 -0
- package/esm2022/lib/upload/components/file-uploading-list.component.mjs +124 -0
- package/esm2022/lib/upload/components/upload-button.component.mjs +133 -0
- package/esm2022/lib/upload/components/upload-drag-area.component.mjs +112 -0
- package/esm2022/lib/upload/components/upload-files.event.mjs +41 -0
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +54 -0
- package/esm2022/lib/upload/directives/file-draggable.directive.mjs +154 -0
- package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +75 -0
- package/esm2022/lib/upload/index.mjs +18 -0
- package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +39 -0
- package/esm2022/lib/upload/public-api.mjs +29 -0
- package/esm2022/lib/upload/upload.module.mjs +72 -0
- package/esm2022/lib/version-compatibility/index.mjs +18 -0
- package/esm2022/lib/version-compatibility/public-api.mjs +20 -0
- package/esm2022/lib/version-compatibility/version-compatibility-factory.mjs +26 -0
- package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +53 -0
- package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +33 -0
- package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +76 -0
- package/esm2022/lib/version-manager/content-version.service.mjs +53 -0
- package/esm2022/lib/version-manager/index.mjs +18 -0
- package/esm2022/lib/version-manager/public-api.mjs +23 -0
- package/esm2022/lib/version-manager/version-comparison.component.mjs +42 -0
- package/esm2022/lib/version-manager/version-list.component.mjs +215 -0
- package/esm2022/lib/version-manager/version-manager.component.mjs +145 -0
- package/esm2022/lib/version-manager/version-manager.module.mjs +48 -0
- package/esm2022/lib/version-manager/version-upload.component.mjs +154 -0
- package/esm2022/lib/viewer/alfresco-viewer.module.mjs +33 -0
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +408 -0
- package/esm2022/lib/viewer/index.mjs +18 -0
- package/esm2022/lib/viewer/public-api.mjs +19 -0
- package/esm2022/public-api.mjs +56 -0
- package/fesm2022/adf-content-services.mjs +827 -870
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/lib/aspect-list/aspect-list.component.d.ts +0 -4
- package/lib/aspect-list/public-api.d.ts +0 -1
- package/lib/aspect-list/services/aspect-list.service.d.ts +4 -6
- package/lib/category/categories-management/categories-management.component.d.ts +0 -4
- package/lib/content.module.d.ts +2 -2
- package/lib/dialogs/dialog.module.d.ts +5 -6
- package/lib/dialogs/download-zip/download-zip.dialog.d.ts +1 -1
- package/lib/dialogs/download-zip/download-zip.dialog.module.d.ts +6 -2
- package/lib/new-version-uploader/new-version-uploader.dialog.scss +1 -1
- package/lib/upload/components/base-upload/upload-base.d.ts +1 -1
- package/lib/version-manager/version-list.component.scss +2 -3
- package/package.json +5 -3
- package/lib/aspect-list/interfaces/custom-aspect-paging.interface.d.ts +0 -21
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
18
|
+
import { SearchQueryBuilderService } from '../../services/search-query-builder.service';
|
|
19
|
+
import { SearchFacetFiltersService } from '../../services/search-facet-filters.service';
|
|
20
|
+
import { CommonModule } from '@angular/common';
|
|
21
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
22
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
23
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
24
|
+
import { SearchFilterCardComponent } from './search-filter-card/search-filter-card.component';
|
|
25
|
+
import { ResetSearchDirective } from '../reset-search.directive';
|
|
26
|
+
import { SearchFacetFieldComponent } from '../search-facet-field';
|
|
27
|
+
import { SearchFacetTabbedContentComponent } from '../search-filter-chips';
|
|
28
|
+
import * as i0 from "@angular/core";
|
|
29
|
+
import * as i1 from "../../services/search-query-builder.service";
|
|
30
|
+
import * as i2 from "../../services/search-facet-filters.service";
|
|
31
|
+
import * as i3 from "@angular/common";
|
|
32
|
+
import * as i4 from "@angular/material/expansion";
|
|
33
|
+
import * as i5 from "@angular/material/button";
|
|
34
|
+
export class SearchFilterComponent {
|
|
35
|
+
constructor(queryBuilder, facetFiltersService) {
|
|
36
|
+
this.queryBuilder = queryBuilder;
|
|
37
|
+
this.facetFiltersService = facetFiltersService;
|
|
38
|
+
/** Toggles whether to show or not the context facet filters. */
|
|
39
|
+
this.showContextFacets = true;
|
|
40
|
+
this.facetQueriesLabel = 'Facet Queries';
|
|
41
|
+
this.facetExpanded = {
|
|
42
|
+
default: false
|
|
43
|
+
};
|
|
44
|
+
if (queryBuilder.config?.facetQueries) {
|
|
45
|
+
this.facetQueriesLabel = queryBuilder.config.facetQueries.label || 'Facet Queries';
|
|
46
|
+
this.facetExpanded['query'] = queryBuilder.config.facetQueries.expanded;
|
|
47
|
+
}
|
|
48
|
+
if (queryBuilder.config?.facetFields) {
|
|
49
|
+
this.facetExpanded['field'] = queryBuilder.config.facetFields.expanded;
|
|
50
|
+
}
|
|
51
|
+
if (queryBuilder.config?.facetIntervals) {
|
|
52
|
+
this.facetExpanded['interval'] = queryBuilder.config.facetIntervals.expanded;
|
|
53
|
+
}
|
|
54
|
+
this.displayResetButton = this.queryBuilder.config && !!this.queryBuilder.config.resetButton;
|
|
55
|
+
}
|
|
56
|
+
shouldExpand(field) {
|
|
57
|
+
return this.facetExpanded[field.type] || this.facetExpanded['default'];
|
|
58
|
+
}
|
|
59
|
+
getBucketCountDisplay(bucket) {
|
|
60
|
+
return bucket.count === null ? '' : `(${bucket.count})`;
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFilterComponent, deps: [{ token: i1.SearchQueryBuilderService }, { token: i2.SearchFacetFiltersService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFilterComponent, isStandalone: true, selector: "adf-search-filter", inputs: { showContextFacets: "showContextFacets" }, host: { classAttribute: "adf-search-filter" }, ngImport: i0, template: "<mat-accordion multi=\"true\" displayMode=\"flat\">\n\n <button *ngIf=\"displayResetButton && facetFiltersService.responseFacets\"\n mat-button\n color=\"primary\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.RESET-ALL.TOOLTIP' | translate }}\"\n adf-reset-search>\n {{ 'SEARCH.FILTER.BUTTONS.RESET-ALL.LABEL' | translate }}\n </button>\n <mat-expansion-panel\n *ngFor=\"let category of queryBuilder.categories\"\n [attr.data-automation-id]=\"'expansion-panel-'+category.name\"\n [(expanded)]=\"category.expanded\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">\n {{ category.name | translate }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <adf-search-filter-card [category]=\"category\" />\n </mat-expansion-panel>\n\n <ng-container *ngIf=\"facetFiltersService.tabbedFacet && showContextFacets\">\n <mat-expansion-panel [attr.data-automation-id]=\"'expansion-panel-'+facetFiltersService.tabbedFacet.label\" [expanded]=\"true\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">{{ facetFiltersService.tabbedFacet.label | translate }}</mat-panel-title>\n </mat-expansion-panel-header>\n <adf-search-facet-tabbed-content\n [tabbedFacet]=\"facetFiltersService.tabbedFacet\"\n [attr.data-automation-id]=\"'expansion-panel-'+facetFiltersService.tabbedFacet.label\" />\n </mat-expansion-panel>\n </ng-container>\n\n <ng-container *ngIf=\"facetFiltersService.responseFacets && showContextFacets\">\n <mat-expansion-panel [attr.data-automation-id]=\"'expansion-panel-'+field.label\" *ngFor=\"let field of facetFiltersService.responseFacets\"\n [expanded]=\"shouldExpand(field)\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">{{ field.label | translate }}</mat-panel-title>\n </mat-expansion-panel-header>\n\n <adf-search-facet-field [field]=\"field\" />\n\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n", styles: [".adf-search-filter .adf-search-filter-header-title{font-size:var(--theme-body-1-font-size);color:var(--adf-theme-foreground-text-color-087)}.adf-search-filter .adf-search-check-list-label{color:var(--adf-theme-foreground-text-color-054)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i4.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: SearchFilterCardComponent, selector: "adf-search-filter-card", inputs: ["category"] }, { kind: "directive", type: ResetSearchDirective, selector: "[adf-reset-search]" }, { kind: "component", type: SearchFacetFieldComponent, selector: "adf-search-facet-field", inputs: ["field"] }, { kind: "component", type: SearchFacetTabbedContentComponent, selector: "adf-search-facet-tabbed-content", inputs: ["tabbedFacet", "onReset$", "onApply$"], outputs: ["isPopulated", "displayValue$"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFilterComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'adf-search-filter', standalone: true, imports: [
|
|
68
|
+
CommonModule,
|
|
69
|
+
MatExpansionModule,
|
|
70
|
+
MatButtonModule,
|
|
71
|
+
TranslatePipe,
|
|
72
|
+
SearchFilterCardComponent,
|
|
73
|
+
ResetSearchDirective,
|
|
74
|
+
SearchFacetFieldComponent,
|
|
75
|
+
SearchFacetTabbedContentComponent
|
|
76
|
+
], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-filter' }, template: "<mat-accordion multi=\"true\" displayMode=\"flat\">\n\n <button *ngIf=\"displayResetButton && facetFiltersService.responseFacets\"\n mat-button\n color=\"primary\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.RESET-ALL.TOOLTIP' | translate }}\"\n adf-reset-search>\n {{ 'SEARCH.FILTER.BUTTONS.RESET-ALL.LABEL' | translate }}\n </button>\n <mat-expansion-panel\n *ngFor=\"let category of queryBuilder.categories\"\n [attr.data-automation-id]=\"'expansion-panel-'+category.name\"\n [(expanded)]=\"category.expanded\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">\n {{ category.name | translate }}\n </mat-panel-title>\n </mat-expansion-panel-header>\n <adf-search-filter-card [category]=\"category\" />\n </mat-expansion-panel>\n\n <ng-container *ngIf=\"facetFiltersService.tabbedFacet && showContextFacets\">\n <mat-expansion-panel [attr.data-automation-id]=\"'expansion-panel-'+facetFiltersService.tabbedFacet.label\" [expanded]=\"true\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">{{ facetFiltersService.tabbedFacet.label | translate }}</mat-panel-title>\n </mat-expansion-panel-header>\n <adf-search-facet-tabbed-content\n [tabbedFacet]=\"facetFiltersService.tabbedFacet\"\n [attr.data-automation-id]=\"'expansion-panel-'+facetFiltersService.tabbedFacet.label\" />\n </mat-expansion-panel>\n </ng-container>\n\n <ng-container *ngIf=\"facetFiltersService.responseFacets && showContextFacets\">\n <mat-expansion-panel [attr.data-automation-id]=\"'expansion-panel-'+field.label\" *ngFor=\"let field of facetFiltersService.responseFacets\"\n [expanded]=\"shouldExpand(field)\">\n <mat-expansion-panel-header>\n <mat-panel-title class=\"adf-search-filter-header-title\">{{ field.label | translate }}</mat-panel-title>\n </mat-expansion-panel-header>\n\n <adf-search-facet-field [field]=\"field\" />\n\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n", styles: [".adf-search-filter .adf-search-filter-header-title{font-size:var(--theme-body-1-font-size);color:var(--adf-theme-foreground-text-color-087)}.adf-search-filter .adf-search-check-list-label{color:var(--adf-theme-foreground-text-color-054)}\n"] }]
|
|
77
|
+
}], ctorParameters: () => [{ type: i1.SearchQueryBuilderService }, { type: i2.SearchFacetFiltersService }], propDecorators: { showContextFacets: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}] } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUd4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQW9CM0UsTUFBTSxPQUFPLHFCQUFxQjtJQVc5QixZQUFtQixZQUF1QyxFQUFTLG1CQUE4QztRQUE5RixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFBUyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTJCO1FBVmpILGdFQUFnRTtRQUVoRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsc0JBQWlCLEdBQVcsZUFBZSxDQUFDO1FBQzVDLGtCQUFhLEdBQUc7WUFDWixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFDO1FBSUUsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDO1lBQ25GLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQzVFLENBQUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDM0UsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUNqRixDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDakcsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQXdCO1FBQzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDNUQsQ0FBQzsrR0EvQlEscUJBQXFCO21HQUFyQixxQkFBcUIsZ0xDakRsQyw0dUVBNENBLHdTRFRRLFlBQVksK1BBQ1osa0JBQWtCLHVuQkFDbEIsZUFBZSx1TkFDZixhQUFhLGtEQUNiLHlCQUF5Qix5RkFDekIsb0JBQW9CLCtEQUNwQix5QkFBeUIsc0ZBQ3pCLGlDQUFpQzs7NEZBTzVCLHFCQUFxQjtrQkFsQmpDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLGlDQUFpQztxQkFDcEMsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtzSUFLcEMsaUJBQWlCO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmFjZXRGaWVsZEJ1Y2tldCB9IGZyb20gJy4uLy4uL21vZGVscy9mYWNldC1maWVsZC1idWNrZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZhY2V0RmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmFjZXQtZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaEZhY2V0RmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtZmFjZXQtZmlsdGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckNhcmRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXItY2FyZC9zZWFyY2gtZmlsdGVyLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2V0U2VhcmNoRGlyZWN0aXZlIH0gZnJvbSAnLi4vcmVzZXQtc2VhcmNoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTZWFyY2hGYWNldEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWZhY2V0LWZpZWxkJztcbmltcG9ydCB7IFNlYXJjaEZhY2V0VGFiYmVkQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItY2hpcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtZmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgU2VhcmNoRmlsdGVyQ2FyZENvbXBvbmVudCxcbiAgICAgICAgUmVzZXRTZWFyY2hEaXJlY3RpdmUsXG4gICAgICAgIFNlYXJjaEZhY2V0RmllbGRDb21wb25lbnQsXG4gICAgICAgIFNlYXJjaEZhY2V0VGFiYmVkQ29udGVudENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2VhcmNoLWZpbHRlcicgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJDb21wb25lbnQge1xuICAgIC8qKiBUb2dnbGVzIHdoZXRoZXIgdG8gc2hvdyBvciBub3QgdGhlIGNvbnRleHQgZmFjZXQgZmlsdGVycy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dDb250ZXh0RmFjZXRzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGZhY2V0UXVlcmllc0xhYmVsOiBzdHJpbmcgPSAnRmFjZXQgUXVlcmllcyc7XG4gICAgZmFjZXRFeHBhbmRlZCA9IHtcbiAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICB9O1xuICAgIGRpc3BsYXlSZXNldEJ1dHRvbjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVyeUJ1aWxkZXI6IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UsIHB1YmxpYyBmYWNldEZpbHRlcnNTZXJ2aWNlOiBTZWFyY2hGYWNldEZpbHRlcnNTZXJ2aWNlKSB7XG4gICAgICAgIGlmIChxdWVyeUJ1aWxkZXIuY29uZmlnPy5mYWNldFF1ZXJpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZmFjZXRRdWVyaWVzTGFiZWwgPSBxdWVyeUJ1aWxkZXIuY29uZmlnLmZhY2V0UXVlcmllcy5sYWJlbCB8fCAnRmFjZXQgUXVlcmllcyc7XG4gICAgICAgICAgICB0aGlzLmZhY2V0RXhwYW5kZWRbJ3F1ZXJ5J10gPSBxdWVyeUJ1aWxkZXIuY29uZmlnLmZhY2V0UXVlcmllcy5leHBhbmRlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlCdWlsZGVyLmNvbmZpZz8uZmFjZXRGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMuZmFjZXRFeHBhbmRlZFsnZmllbGQnXSA9IHF1ZXJ5QnVpbGRlci5jb25maWcuZmFjZXRGaWVsZHMuZXhwYW5kZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5QnVpbGRlci5jb25maWc/LmZhY2V0SW50ZXJ2YWxzKSB7XG4gICAgICAgICAgICB0aGlzLmZhY2V0RXhwYW5kZWRbJ2ludGVydmFsJ10gPSBxdWVyeUJ1aWxkZXIuY29uZmlnLmZhY2V0SW50ZXJ2YWxzLmV4cGFuZGVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheVJlc2V0QnV0dG9uID0gdGhpcy5xdWVyeUJ1aWxkZXIuY29uZmlnICYmICEhdGhpcy5xdWVyeUJ1aWxkZXIuY29uZmlnLnJlc2V0QnV0dG9uO1xuICAgIH1cblxuICAgIHNob3VsZEV4cGFuZChmaWVsZDogRmFjZXRGaWVsZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mYWNldEV4cGFuZGVkW2ZpZWxkLnR5cGVdIHx8IHRoaXMuZmFjZXRFeHBhbmRlZFsnZGVmYXVsdCddO1xuICAgIH1cblxuICAgIGdldEJ1Y2tldENvdW50RGlzcGxheShidWNrZXQ6IEZhY2V0RmllbGRCdWNrZXQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYnVja2V0LmNvdW50ID09PSBudWxsID8gJycgOiBgKCR7YnVja2V0LmNvdW50fSlgO1xuICAgIH1cbn1cbiIsIjxtYXQtYWNjb3JkaW9uIG11bHRpPVwidHJ1ZVwiIGRpc3BsYXlNb2RlPVwiZmxhdFwiPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cImRpc3BsYXlSZXNldEJ1dHRvbiAmJiBmYWNldEZpbHRlcnNTZXJ2aWNlLnJlc3BvbnNlRmFjZXRzXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTRUFSQ0guRklMVEVSLkJVVFRPTlMuUkVTRVQtQUxMLlRPT0xUSVAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGFkZi1yZXNldC1zZWFyY2g+XG4gICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLkJVVFRPTlMuUkVTRVQtQUxMLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsXG4gICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBxdWVyeUJ1aWxkZXIuY2F0ZWdvcmllc1wiXG4gICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInZXhwYW5zaW9uLXBhbmVsLScrY2F0ZWdvcnkubmFtZVwiXG4gICAgICAgIFsoZXhwYW5kZWQpXT1cImNhdGVnb3J5LmV4cGFuZGVkXCI+XG4gICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGUgY2xhc3M9XCJhZGYtc2VhcmNoLWZpbHRlci1oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgPGFkZi1zZWFyY2gtZmlsdGVyLWNhcmQgW2NhdGVnb3J5XT1cImNhdGVnb3J5XCIgLz5cbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFjZXRGaWx0ZXJzU2VydmljZS50YWJiZWRGYWNldCAmJiBzaG93Q29udGV4dEZhY2V0c1wiPlxuICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2V4cGFuc2lvbi1wYW5lbC0nK2ZhY2V0RmlsdGVyc1NlcnZpY2UudGFiYmVkRmFjZXQubGFiZWxcIiBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGUgY2xhc3M9XCJhZGYtc2VhcmNoLWZpbHRlci1oZWFkZXItdGl0bGVcIj57eyBmYWNldEZpbHRlcnNTZXJ2aWNlLnRhYmJlZEZhY2V0LmxhYmVsIHwgdHJhbnNsYXRlIH19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgPGFkZi1zZWFyY2gtZmFjZXQtdGFiYmVkLWNvbnRlbnRcbiAgICAgICAgICAgICAgICBbdGFiYmVkRmFjZXRdPVwiZmFjZXRGaWx0ZXJzU2VydmljZS50YWJiZWRGYWNldFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidleHBhbnNpb24tcGFuZWwtJytmYWNldEZpbHRlcnNTZXJ2aWNlLnRhYmJlZEZhY2V0LmxhYmVsXCIgLz5cbiAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZhY2V0RmlsdGVyc1NlcnZpY2UucmVzcG9uc2VGYWNldHMgJiYgc2hvd0NvbnRleHRGYWNldHNcIj5cbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidleHBhbnNpb24tcGFuZWwtJytmaWVsZC5sYWJlbFwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmYWNldEZpbHRlcnNTZXJ2aWNlLnJlc3BvbnNlRmFjZXRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cInNob3VsZEV4cGFuZChmaWVsZClcIj5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlIGNsYXNzPVwiYWRmLXNlYXJjaC1maWx0ZXItaGVhZGVyLXRpdGxlXCI+e3sgZmllbGQubGFiZWwgfCB0cmFuc2xhdGUgfX08L21hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cbiAgICAgICAgICAgIDxhZGYtc2VhcmNoLWZhY2V0LWZpZWxkIFtmaWVsZF09XCJmaWVsZFwiIC8+XG5cbiAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9tYXQtYWNjb3JkaW9uPlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './search-filter-autocomplete-chips.component';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXItYXV0b2NvbXBsZXRlLWNoaXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpbHRlci1hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { Component, DestroyRef, inject, ViewEncapsulation } from '@angular/core';
|
|
18
|
+
import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
|
|
19
|
+
import { map } from 'rxjs/operators';
|
|
20
|
+
import { SearchFilterList } from '../../models/search-filter-list.model';
|
|
21
|
+
import { TagService } from '../../../tag/services/tag.service';
|
|
22
|
+
import { CategoryService } from '../../../category/services/category.service';
|
|
23
|
+
import { AutocompleteField } from '../../models/autocomplete-option.interface';
|
|
24
|
+
import { CommonModule } from '@angular/common';
|
|
25
|
+
import { SearchChipAutocompleteInputComponent } from '../search-chip-autocomplete-input';
|
|
26
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
27
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
28
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
29
|
+
import * as i0 from "@angular/core";
|
|
30
|
+
import * as i1 from "../../../tag/services/tag.service";
|
|
31
|
+
import * as i2 from "../../../category/services/category.service";
|
|
32
|
+
import * as i3 from "@angular/common";
|
|
33
|
+
import * as i4 from "@angular/material/button";
|
|
34
|
+
export class SearchFilterAutocompleteChipsComponent {
|
|
35
|
+
constructor(tagService, categoryService) {
|
|
36
|
+
this.tagService = tagService;
|
|
37
|
+
this.categoryService = categoryService;
|
|
38
|
+
this.startValue = [];
|
|
39
|
+
this.displayValue$ = new ReplaySubject(1);
|
|
40
|
+
this.selectedOptions = [];
|
|
41
|
+
this.resetSubject$ = new Subject();
|
|
42
|
+
this.reset$ = this.resetSubject$.asObservable();
|
|
43
|
+
this.autocompleteOptionsSubject$ = new BehaviorSubject([]);
|
|
44
|
+
this.autocompleteOptions$ = this.autocompleteOptionsSubject$.asObservable();
|
|
45
|
+
this.destroyRef = inject(DestroyRef);
|
|
46
|
+
this.options = new SearchFilterList();
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
if (this.settings) {
|
|
50
|
+
this.setOptions();
|
|
51
|
+
if (this.startValue?.length > 0) {
|
|
52
|
+
this.setValue(this.startValue);
|
|
53
|
+
}
|
|
54
|
+
this.enableChangeUpdate = this.settings.allowUpdateOnChange ?? true;
|
|
55
|
+
}
|
|
56
|
+
this.context.populateFilters
|
|
57
|
+
.asObservable()
|
|
58
|
+
.pipe(map((filterQueries) => filterQueries[this.id]), takeUntilDestroyed(this.destroyRef))
|
|
59
|
+
.subscribe((filterQuery) => {
|
|
60
|
+
if (filterQuery) {
|
|
61
|
+
this.selectedOptions = filterQuery;
|
|
62
|
+
this.updateQuery(false);
|
|
63
|
+
}
|
|
64
|
+
else if (!filterQuery && this.selectedOptions.length) {
|
|
65
|
+
this.reset(false);
|
|
66
|
+
}
|
|
67
|
+
this.context.filterLoaded.next();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
reset(updateContext = true) {
|
|
71
|
+
this.selectedOptions = [];
|
|
72
|
+
this.context.filterRawParams[this.id] = undefined;
|
|
73
|
+
this.resetSubject$.next();
|
|
74
|
+
this.updateQuery(updateContext);
|
|
75
|
+
}
|
|
76
|
+
submitValues() {
|
|
77
|
+
this.updateQuery();
|
|
78
|
+
}
|
|
79
|
+
hasValidValue() {
|
|
80
|
+
return !!this.selectedOptions;
|
|
81
|
+
}
|
|
82
|
+
getCurrentValue() {
|
|
83
|
+
return this.selectedOptions;
|
|
84
|
+
}
|
|
85
|
+
onOptionsChange(selectedOptions) {
|
|
86
|
+
this.selectedOptions = selectedOptions;
|
|
87
|
+
if (this.enableChangeUpdate) {
|
|
88
|
+
this.updateQuery();
|
|
89
|
+
this.context.update();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
setValue(value) {
|
|
93
|
+
this.selectedOptions = value;
|
|
94
|
+
this.displayValue$.next(this.selectedOptions.join(', '));
|
|
95
|
+
this.submitValues();
|
|
96
|
+
}
|
|
97
|
+
onInputChange(value) {
|
|
98
|
+
if (this.settings.field === AutocompleteField.CATEGORIES && value) {
|
|
99
|
+
this.searchForExistingCategories(value);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
optionComparator(option1, option2) {
|
|
103
|
+
return option1.id ? option1.id.toUpperCase() === option2.id.toUpperCase() : option1.value.toUpperCase() === option2.value.toUpperCase();
|
|
104
|
+
}
|
|
105
|
+
updateQuery(updateContext = true) {
|
|
106
|
+
this.context.filterRawParams[this.id] = this.selectedOptions.length > 0 ? this.selectedOptions : undefined;
|
|
107
|
+
this.displayValue$.next(this.selectedOptions.map((option) => option.value).join(', '));
|
|
108
|
+
if (this.context && this.settings && this.settings.field) {
|
|
109
|
+
let queryFragments;
|
|
110
|
+
if (this.settings.field === AutocompleteField.CATEGORIES) {
|
|
111
|
+
queryFragments = this.selectedOptions.map((val) => `${this.settings.field}:"workspace://SpacesStore/${val.id}"`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
queryFragments = this.selectedOptions.map((val) => val.query ?? `${this.settings.field}:"${val.value}"`);
|
|
115
|
+
}
|
|
116
|
+
this.context.queryFragments[this.id] = queryFragments.join(' OR ');
|
|
117
|
+
if (updateContext) {
|
|
118
|
+
this.context.update();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
setOptions() {
|
|
123
|
+
switch (this.settings.field) {
|
|
124
|
+
case AutocompleteField.TAG:
|
|
125
|
+
this.tagService.getAllTheTags().subscribe((tagPaging) => {
|
|
126
|
+
this.autocompleteOptionsSubject$.next(tagPaging.list.entries.map((tag) => ({
|
|
127
|
+
value: tag.entry.tag
|
|
128
|
+
})));
|
|
129
|
+
});
|
|
130
|
+
break;
|
|
131
|
+
case AutocompleteField.CATEGORIES:
|
|
132
|
+
this.autocompleteOptionsSubject$.next([]);
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
this.autocompleteOptionsSubject$.next(this.settings.autocompleteOptions);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
searchForExistingCategories(searchTerm) {
|
|
139
|
+
this.categoryService.searchCategories(searchTerm, 0, 15).subscribe((existingCategoriesResult) => {
|
|
140
|
+
this.autocompleteOptionsSubject$.next(existingCategoriesResult.list.entries.map((rowEntry) => {
|
|
141
|
+
const path = rowEntry.entry.path.name.split('/').splice(3).join('/');
|
|
142
|
+
const fullPath = path ? `${path}/${rowEntry.entry.name}` : rowEntry.entry.name;
|
|
143
|
+
return { id: rowEntry.entry.id, value: rowEntry.entry.name, fullPath };
|
|
144
|
+
}));
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFilterAutocompleteChipsComponent, deps: [{ token: i1.TagService }, { token: i2.CategoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFilterAutocompleteChipsComponent, isStandalone: true, selector: "adf-search-filter-autocomplete-chips", ngImport: i0, template: "<adf-search-chip-autocomplete-input\n [autocompleteOptions]=\"autocompleteOptions$ | async\"\n [preselectedOptions]=\"selectedOptions\"\n [onReset$]=\"reset$\"\n [allowOnlyPredefinedValues]=\"settings.allowOnlyPredefinedValues\"\n (inputChanged)=\"onInputChange($event)\"\n [compareOption]=\"optionComparator\"\n (optionsChanged)=\"onOptionsChange($event)\" />\n\n<div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" data-automation-id=\"adf-search-chip-autocomplete-btn-clear\" (click)=\"reset()\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" data-automation-id=\"adf-search-chip-autocomplete-btn-apply\" (click)=\"submitValues()\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: SearchChipAutocompleteInputComponent, selector: "adf-search-chip-autocomplete-input", inputs: ["autocompleteOptions", "preselectedOptions", "onReset$", "allowOnlyPredefinedValues", "placeholder", "compareOption", "formatChipValue", "filter"], outputs: ["optionsChanged", "inputChanged"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFilterAutocompleteChipsComponent, decorators: [{
|
|
151
|
+
type: Component,
|
|
152
|
+
args: [{ selector: 'adf-search-filter-autocomplete-chips', standalone: true, imports: [CommonModule, SearchChipAutocompleteInputComponent, TranslatePipe, MatButtonModule], encapsulation: ViewEncapsulation.None, template: "<adf-search-chip-autocomplete-input\n [autocompleteOptions]=\"autocompleteOptions$ | async\"\n [preselectedOptions]=\"selectedOptions\"\n [onReset$]=\"reset$\"\n [allowOnlyPredefinedValues]=\"settings.allowOnlyPredefinedValues\"\n (inputChanged)=\"onInputChange($event)\"\n [compareOption]=\"optionComparator\"\n (optionsChanged)=\"onOptionsChange($event)\" />\n\n<div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" data-automation-id=\"adf-search-chip-autocomplete-btn-clear\" (click)=\"reset()\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" data-automation-id=\"adf-search-chip-autocomplete-btn-apply\" (click)=\"submitValues()\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n</div>\n" }]
|
|
153
|
+
}], ctorParameters: () => [{ type: i1.TagService }, { type: i2.CategoryService }] });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci1hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyLWF1dG9jb21wbGV0ZS1jaGlwcy9zZWFyY2gtZmlsdGVyLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXItYXV0b2NvbXBsZXRlLWNoaXBzL3NlYXJjaC1maWx0ZXItYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RixPQUFP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QUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDL0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDM0UsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F2SVEsc0NBQXNDO21HQUF0QyxzQ0FBc0MsZ0dDeENuRCxzMkJBaUJBLDJDRG1CYyxZQUFZLHdMQUFFLG9DQUFvQyxvUkFBRSxhQUFhLGlEQUFFLGVBQWU7OzRGQUluRixzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0ksc0NBQXNDLGNBQ3BDLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxvQ0FBb0MsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLGlCQUU5RSxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtZmlsdGVyLWxpc3QubW9kZWwnO1xuaW1wb3J0IHsgVGFnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RhZy9zZXJ2aWNlcy90YWcuc2VydmljZSc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jYXRlZ29yeS9zZXJ2aWNlcy9jYXRlZ29yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUZpZWxkLCBBdXRvY29tcGxldGVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0b2NvbXBsZXRlLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNlYXJjaENoaXBBdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtZmlsdGVyLWF1dG9jb21wbGV0ZS1jaGlwcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWFyY2hDaGlwQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWx0ZXItYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEZpbHRlckF1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBvcHRpb25zOiBTZWFyY2hGaWx0ZXJMaXN0PEF1dG9jb21wbGV0ZU9wdGlvbltdPjtcbiAgICBzdGFydFZhbHVlOiBBdXRvY29tcGxldGVPcHRpb25bXSA9IFtdO1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICAgIHNlbGVjdGVkT3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10gPSBbXTtcbiAgICBlbmFibGVDaGFuZ2VVcGRhdGU6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHJlc2V0U3ViamVjdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHJlc2V0JDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMucmVzZXRTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgICBwcml2YXRlIGF1dG9jb21wbGV0ZU9wdGlvbnNTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0b2NvbXBsZXRlT3B0aW9uW10+KFtdKTtcbiAgICBhdXRvY29tcGxldGVPcHRpb25zJDogT2JzZXJ2YWJsZTxBdXRvY29tcGxldGVPcHRpb25bXT4gPSB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnNTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFnU2VydmljZTogVGFnU2VydmljZSwgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBuZXcgU2VhcmNoRmlsdGVyTGlzdDxBdXRvY29tcGxldGVPcHRpb25bXT4oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zdGFydFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQ2hhbmdlVXBkYXRlID0gdGhpcy5zZXR0aW5ncy5hbGxvd1VwZGF0ZU9uQ2hhbmdlID8/IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlclF1ZXJpZXMpID0+IGZpbHRlclF1ZXJpZXNbdGhpcy5pZF0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IGZpbHRlclF1ZXJ5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFmaWx0ZXJRdWVyeSAmJiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZXNldFN1YmplY3QkLm5leHQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeSh1cGRhdGVDb250ZXh0KTtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXMoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkoKTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlbGVjdGVkT3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50VmFsdWUoKTogQXV0b2NvbXBsZXRlT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgb25PcHRpb25zQ2hhbmdlKHNlbGVjdGVkT3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBzZWxlY3RlZE9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUNoYW5nZVVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVRdWVyeSgpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IEF1dG9jb21wbGV0ZU9wdGlvbltdKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KHRoaXMuc2VsZWN0ZWRPcHRpb25zLmpvaW4oJywgJykpO1xuICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcygpO1xuICAgIH1cblxuICAgIG9uSW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5maWVsZCA9PT0gQXV0b2NvbXBsZXRlRmllbGQuQ0FURUdPUklFUyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hGb3JFeGlzdGluZ0NhdGVnb3JpZXModmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3B0aW9uQ29tcGFyYXRvcihvcHRpb24xOiBBdXRvY29tcGxldGVPcHRpb24sIG9wdGlvbjI6IEF1dG9jb21wbGV0ZU9wdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb3B0aW9uMS5pZCA/IG9wdGlvbjEuaWQudG9VcHBlckNhc2UoKSA9PT0gb3B0aW9uMi5pZC50b1VwcGVyQ2FzZSgpIDogb3B0aW9uMS52YWx1ZS50b1VwcGVyQ2FzZSgpID09PSBvcHRpb24yLnZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeSh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRPcHRpb25zIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCh0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKS5qb2luKCcsICcpKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3MuZmllbGQpIHtcbiAgICAgICAgICAgIGxldCBxdWVyeUZyYWdtZW50cztcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmZpZWxkID09PSBBdXRvY29tcGxldGVGaWVsZC5DQVRFR09SSUVTKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlGcmFnbWVudHMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoKHZhbCkgPT4gYCR7dGhpcy5zZXR0aW5ncy5maWVsZH06XCJ3b3Jrc3BhY2U6Ly9TcGFjZXNTdG9yZS8ke3ZhbC5pZH1cImApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeUZyYWdtZW50cyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgodmFsKSA9PiB2YWwucXVlcnkgPz8gYCR7dGhpcy5zZXR0aW5ncy5maWVsZH06XCIke3ZhbC52YWx1ZX1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gcXVlcnlGcmFnbWVudHMuam9pbignIE9SICcpO1xuICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE9wdGlvbnMoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5ncy5maWVsZCkge1xuICAgICAgICAgICAgY2FzZSBBdXRvY29tcGxldGVGaWVsZC5UQUc6XG4gICAgICAgICAgICAgICAgdGhpcy50YWdTZXJ2aWNlLmdldEFsbFRoZVRhZ3MoKS5zdWJzY3JpYmUoKHRhZ1BhZ2luZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnNTdWJqZWN0JC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnUGFnaW5nLmxpc3QuZW50cmllcy5tYXAoKHRhZykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGFnLmVudHJ5LnRhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEF1dG9jb21wbGV0ZUZpZWxkLkNBVEVHT1JJRVM6XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVPcHRpb25zU3ViamVjdCQubmV4dChbXSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uc1N1YmplY3QkLm5leHQodGhpcy5zZXR0aW5ncy5hdXRvY29tcGxldGVPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoRm9yRXhpc3RpbmdDYXRlZ29yaWVzKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgICAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5zZWFyY2hDYXRlZ29yaWVzKHNlYXJjaFRlcm0sIDAsIDE1KS5zdWJzY3JpYmUoKGV4aXN0aW5nQ2F0ZWdvcmllc1Jlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVPcHRpb25zU3ViamVjdCQubmV4dChcbiAgICAgICAgICAgICAgICBleGlzdGluZ0NhdGVnb3JpZXNSZXN1bHQubGlzdC5lbnRyaWVzLm1hcCgocm93RW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHJvd0VudHJ5LmVudHJ5LnBhdGgubmFtZS5zcGxpdCgnLycpLnNwbGljZSgzKS5qb2luKCcvJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aCA/IGAke3BhdGh9LyR7cm93RW50cnkuZW50cnkubmFtZX1gIDogcm93RW50cnkuZW50cnkubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWQ6IHJvd0VudHJ5LmVudHJ5LmlkLCB2YWx1ZTogcm93RW50cnkuZW50cnkubmFtZSwgZnVsbFBhdGggfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXRcbiAgICBbYXV0b2NvbXBsZXRlT3B0aW9uc109XCJhdXRvY29tcGxldGVPcHRpb25zJCB8IGFzeW5jXCJcbiAgICBbcHJlc2VsZWN0ZWRPcHRpb25zXT1cInNlbGVjdGVkT3B0aW9uc1wiXG4gICAgW29uUmVzZXQkXT1cInJlc2V0JFwiXG4gICAgW2FsbG93T25seVByZWRlZmluZWRWYWx1ZXNdPVwic2V0dGluZ3MuYWxsb3dPbmx5UHJlZGVmaW5lZFZhbHVlc1wiXG4gICAgKGlucHV0Q2hhbmdlZCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIFtjb21wYXJlT3B0aW9uXT1cIm9wdGlvbkNvbXBhcmF0b3JcIlxuICAgIChvcHRpb25zQ2hhbmdlZCk9XCJvbk9wdGlvbnNDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbjxkaXYgY2xhc3M9XCJhZGYtZmFjZXQtYnV0dG9uc1wiICpuZ0lmPVwiIXNldHRpbmdzPy5oaWRlRGVmYXVsdEFjdGlvblwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWJ0bi1jbGVhclwiIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLkFDVElPTlMuQ0xFQVInIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtYnRuLWFwcGx5XCIgKGNsaWNrKT1cInN1Ym1pdFZhbHVlcygpXCI+XG4gICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLkFDVElPTlMuQVBQTFknIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './search-facet-chip/search-facet-chip.component';
|
|
18
|
+
export * from './search-facet-chip-tabbed/search-facet-chip-tabbed.component';
|
|
19
|
+
export * from './search-facet-chip-tabbed/search-facet-tabbed-content.component';
|
|
20
|
+
export * from './search-filter-menu-card/search-filter-menu-card.component';
|
|
21
|
+
export * from './search-widget-chip/search-widget-chip.component';
|
|
22
|
+
export * from './search-filter-chips.component';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXItY2hpcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZhY2V0LWNoaXAvc2VhcmNoLWZhY2V0LWNoaXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZhY2V0LWNoaXAtdGFiYmVkL3NlYXJjaC1mYWNldC1jaGlwLXRhYmJlZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtZmFjZXQtY2hpcC10YWJiZWQvc2VhcmNoLWZhY2V0LXRhYmJlZC1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1maWx0ZXItbWVudS1jYXJkL3NlYXJjaC1maWx0ZXItbWVudS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC13aWRnZXQtY2hpcC9zZWFyY2gtd2lkZ2V0LWNoaXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpbHRlci1jaGlwcy5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
18
|
+
import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
|
|
19
|
+
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
20
|
+
import { SearchFacetFieldComponent } from '../../search-facet-field/search-facet-field.component';
|
|
21
|
+
import { CommonModule } from '@angular/common';
|
|
22
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
23
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
24
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
25
|
+
import { SearchFilterMenuCardComponent } from '../search-filter-menu-card/search-filter-menu-card.component';
|
|
26
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
29
|
+
import * as i2 from "@angular/common";
|
|
30
|
+
import * as i3 from "@angular/material/chips";
|
|
31
|
+
import * as i4 from "@angular/material/menu";
|
|
32
|
+
import * as i5 from "@angular/material/icon";
|
|
33
|
+
import * as i6 from "@angular/material/button";
|
|
34
|
+
export class SearchFacetChipComponent {
|
|
35
|
+
constructor(focusTrapFactory) {
|
|
36
|
+
this.focusTrapFactory = focusTrapFactory;
|
|
37
|
+
this.chipIcon = 'keyboard_arrow_down';
|
|
38
|
+
}
|
|
39
|
+
onMenuOpen() {
|
|
40
|
+
if (this.menuContainer && !this.focusTrap) {
|
|
41
|
+
this.focusTrap = this.focusTrapFactory.create(this.menuContainer.nativeElement);
|
|
42
|
+
}
|
|
43
|
+
this.chipIcon = 'keyboard_arrow_up';
|
|
44
|
+
}
|
|
45
|
+
onClosed() {
|
|
46
|
+
this.focusTrap.destroy();
|
|
47
|
+
this.focusTrap = null;
|
|
48
|
+
this.chipIcon = 'keyboard_arrow_down';
|
|
49
|
+
}
|
|
50
|
+
onRemove() {
|
|
51
|
+
this.facetFieldComponent.reset();
|
|
52
|
+
this.menuTrigger.closeMenu();
|
|
53
|
+
}
|
|
54
|
+
onApply() {
|
|
55
|
+
this.facetFieldComponent.submitValues();
|
|
56
|
+
this.menuTrigger.closeMenu();
|
|
57
|
+
}
|
|
58
|
+
onEnterKeydown() {
|
|
59
|
+
if (this.isPopulated()) {
|
|
60
|
+
if (!this.menuTrigger.menuOpen) {
|
|
61
|
+
this.menuTrigger.openMenu();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.menuTrigger.closeMenu();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
onEscKeydown() {
|
|
69
|
+
if (this.menuTrigger.menuOpen) {
|
|
70
|
+
this.menuTrigger.closeMenu();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
isPopulated() {
|
|
74
|
+
return this.field.buckets?.items.length > 0;
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFacetChipComponent, deps: [{ token: i1.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFacetChipComponent, isStandalone: true, selector: "adf-search-facet-chip", inputs: { field: "field" }, viewQueries: [{ propertyName: "menuContainer", first: true, predicate: ["menuContainer"], descendants: true }, { propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }, { propertyName: "facetFieldComponent", first: true, predicate: SearchFacetFieldComponent, descendants: true }], ngImport: i0, template: "<mat-chip [attr.data-automation-id]=\"'search-filter-chip-' + field.label\"\n [disableRipple]=\"true\"\n class=\"adf-search-filter-chip adf-search-filter-facet-chip\"\n [class.adf-search-toggle-chip]=\"(facetField.displayValue$ | async) || menuTrigger.menuOpen\"\n [disabled]=\"!isPopulated()\"\n tabindex=\"0\"\n [matMenuTriggerFor]=\"menu\"\n (menuOpened)=\"onMenuOpen()\"\n (keydown.enter)=\"onEnterKeydown()\"\n (keydown.escape)=\"onEscKeydown()\"\n [attr.title]=\"facetField.displayValue$ | async\"\n #menuTrigger=\"matMenuTrigger\">\n\n <span class=\"adf-search-filter-placeholder\">\n <span class=\"adf-search-filter-ellipsis\">{{ field.label | translate }}:</span>\n </span>\n\n <span class=\"adf-search-filter-ellipsis adf-filter-value\" *ngIf=\"facetField.displayValue$ | async as displayValue; else showAny\">\n {{ displayValue | translate }}\n </span>\n <ng-template #showAny><span class=\"adf-search-filter-ellipsis adf-filter-value\"> {{ 'SEARCH.FILTER.ANY' | translate }}</span></ng-template>\n <mat-icon *ngIf=\"isPopulated(); else disabledIcon\">{{ chipIcon }}</mat-icon>\n <ng-template #disabledIcon>\n <mat-icon>remove</mat-icon>\n </ng-template>\n</mat-chip>\n\n<mat-menu #menu=\"matMenu\" backdropClass=\"adf-search-filter-chip-menu\" (closed)=\"onClosed()\">\n <div #menuContainer [attr.data-automation-id]=\"'search-field-' + field.label\">\n <adf-search-filter-menu-card (click)=\"$event.stopPropagation()\"\n (keydown.tab)=\"$event.stopPropagation();\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n (close)=\"menuTrigger.closeMenu()\">\n <ng-container ngProjectAs=\"filter-title\">\n {{ field.label | translate }}\n </ng-container>\n <ng-container ngProjectAs=\"filter-content\">\n <adf-search-facet-field [field]=\"field\" #facetField />\n </ng-container>\n <ng-container ngProjectAs=\"filter-actions\">\n <button mat-button class=\"adf-search-action-button\" (click)=\"onRemove()\" id=\"cancel-filter-button\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR' | translate }}\n </button>\n <button mat-flat-button class=\"adf-search-action-button\" color=\"primary\" (click)=\"onApply()\" id=\"apply-filter-button\">\n {{ 'SEARCH.FILTER.BUTTONS.APPLY' | translate }}\n </button>\n </ng-container>\n </adf-search-filter-menu-card>\n </div>\n</mat-menu>\n", styles: [".adf-search-filter-chip .mdc-evolution-chip__graphic{display:none}.adf-search-filter-chip[disabled]{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SearchFilterMenuCardComponent, selector: "adf-search-filter-menu-card", outputs: ["close"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: SearchFacetFieldComponent, selector: "adf-search-facet-field", inputs: ["field"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFacetChipComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: 'adf-search-facet-chip', standalone: true, imports: [
|
|
82
|
+
CommonModule,
|
|
83
|
+
MatChipsModule,
|
|
84
|
+
MatMenuModule,
|
|
85
|
+
TranslatePipe,
|
|
86
|
+
MatIconModule,
|
|
87
|
+
SearchFilterMenuCardComponent,
|
|
88
|
+
MatButtonModule,
|
|
89
|
+
SearchFacetFieldComponent
|
|
90
|
+
], encapsulation: ViewEncapsulation.None, template: "<mat-chip [attr.data-automation-id]=\"'search-filter-chip-' + field.label\"\n [disableRipple]=\"true\"\n class=\"adf-search-filter-chip adf-search-filter-facet-chip\"\n [class.adf-search-toggle-chip]=\"(facetField.displayValue$ | async) || menuTrigger.menuOpen\"\n [disabled]=\"!isPopulated()\"\n tabindex=\"0\"\n [matMenuTriggerFor]=\"menu\"\n (menuOpened)=\"onMenuOpen()\"\n (keydown.enter)=\"onEnterKeydown()\"\n (keydown.escape)=\"onEscKeydown()\"\n [attr.title]=\"facetField.displayValue$ | async\"\n #menuTrigger=\"matMenuTrigger\">\n\n <span class=\"adf-search-filter-placeholder\">\n <span class=\"adf-search-filter-ellipsis\">{{ field.label | translate }}:</span>\n </span>\n\n <span class=\"adf-search-filter-ellipsis adf-filter-value\" *ngIf=\"facetField.displayValue$ | async as displayValue; else showAny\">\n {{ displayValue | translate }}\n </span>\n <ng-template #showAny><span class=\"adf-search-filter-ellipsis adf-filter-value\"> {{ 'SEARCH.FILTER.ANY' | translate }}</span></ng-template>\n <mat-icon *ngIf=\"isPopulated(); else disabledIcon\">{{ chipIcon }}</mat-icon>\n <ng-template #disabledIcon>\n <mat-icon>remove</mat-icon>\n </ng-template>\n</mat-chip>\n\n<mat-menu #menu=\"matMenu\" backdropClass=\"adf-search-filter-chip-menu\" (closed)=\"onClosed()\">\n <div #menuContainer [attr.data-automation-id]=\"'search-field-' + field.label\">\n <adf-search-filter-menu-card (click)=\"$event.stopPropagation()\"\n (keydown.tab)=\"$event.stopPropagation();\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n (close)=\"menuTrigger.closeMenu()\">\n <ng-container ngProjectAs=\"filter-title\">\n {{ field.label | translate }}\n </ng-container>\n <ng-container ngProjectAs=\"filter-content\">\n <adf-search-facet-field [field]=\"field\" #facetField />\n </ng-container>\n <ng-container ngProjectAs=\"filter-actions\">\n <button mat-button class=\"adf-search-action-button\" (click)=\"onRemove()\" id=\"cancel-filter-button\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR' | translate }}\n </button>\n <button mat-flat-button class=\"adf-search-action-button\" color=\"primary\" (click)=\"onApply()\" id=\"apply-filter-button\">\n {{ 'SEARCH.FILTER.BUTTONS.APPLY' | translate }}\n </button>\n </ng-container>\n </adf-search-filter-menu-card>\n </div>\n</mat-menu>\n", styles: [".adf-search-filter-chip .mdc-evolution-chip__graphic{display:none}.adf-search-filter-chip[disabled]{pointer-events:none}\n"] }]
|
|
91
|
+
}], ctorParameters: () => [{ type: i1.ConfigurableFocusTrapFactory }], propDecorators: { field: [{
|
|
92
|
+
type: Input,
|
|
93
|
+
args: [{ required: true }]
|
|
94
|
+
}], menuContainer: [{
|
|
95
|
+
type: ViewChild,
|
|
96
|
+
args: ['menuContainer', { static: false }]
|
|
97
|
+
}], menuTrigger: [{
|
|
98
|
+
type: ViewChild,
|
|
99
|
+
args: ['menuTrigger', { static: false }]
|
|
100
|
+
}], facetFieldComponent: [{
|
|
101
|
+
type: ViewChild,
|
|
102
|
+
args: [SearchFacetFieldComponent, { static: false }]
|
|
103
|
+
}] } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZhY2V0LWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyLWNoaXBzL3NlYXJjaC1mYWNldC1jaGlwL3NlYXJjaC1mYWNldC1jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWZpbHRlci1jaGlwcy9zZWFyY2gtZmFjZXQtY2hpcC9zZWFyY2gtZmFjZXQtY2hpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBeUIsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBbUIzRCxNQUFNLE9BQU8sd0JBQXdCO0lBZ0JqQyxZQUFvQixnQkFBOEM7UUFBOUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUZsRSxhQUFRLEdBQUcscUJBQXFCLENBQUM7SUFFb0MsQ0FBQztJQUV0RSxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDO0lBQzFDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0EzRFEsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ1dBVXRCLHlCQUF5QixnREN4RHhDLGdzRkFrREEsbUxEakJRLFlBQVksdUxBQ1osY0FBYywwVUFDZCxhQUFhLHFtQkFDYixhQUFhLGlEQUNiLGFBQWEsb0xBQ2IsNkJBQTZCLDJGQUM3QixlQUFlLDROQUNmLHlCQUF5Qjs7NEZBTXBCLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0ksdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsNkJBQTZCO3dCQUM3QixlQUFlO3dCQUNmLHlCQUF5QjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTtpR0FJckMsS0FBSztzQkFESixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTdDLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUkzQyxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmFibGVGb2N1c1RyYXAsIENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBGYWNldEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZhY2V0LWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlLCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgU2VhcmNoRmFjZXRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NlYXJjaC1mYWNldC1maWVsZC9zZWFyY2gtZmFjZXQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlck1lbnVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWZpbHRlci1tZW51LWNhcmQvc2VhcmNoLWZpbHRlci1tZW51LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1mYWNldC1jaGlwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRDaGlwc01vZHVsZSxcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgU2VhcmNoRmlsdGVyTWVudUNhcmRDb21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgU2VhcmNoRmFjZXRGaWVsZENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1mYWNldC1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZmFjZXQtY2hpcC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRmFjZXRDaGlwQ29tcG9uZW50IHtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGZpZWxkOiBGYWNldEZpZWxkO1xuXG4gICAgQFZpZXdDaGlsZCgnbWVudUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIG1lbnVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdtZW51VHJpZ2dlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIG1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICAgIEBWaWV3Q2hpbGQoU2VhcmNoRmFjZXRGaWVsZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgZmFjZXRGaWVsZENvbXBvbmVudDogU2VhcmNoRmFjZXRGaWVsZENvbXBvbmVudDtcblxuICAgIGZvY3VzVHJhcDogQ29uZmlndXJhYmxlRm9jdXNUcmFwO1xuICAgIGNoaXBJY29uID0gJ2tleWJvYXJkX2Fycm93X2Rvd24nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb2N1c1RyYXBGYWN0b3J5OiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5KSB7fVxuXG4gICAgb25NZW51T3BlbigpIHtcbiAgICAgICAgaWYgKHRoaXMubWVudUNvbnRhaW5lciAmJiAhdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLm1lbnVDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGlwSWNvbiA9ICdrZXlib2FyZF9hcnJvd191cCc7XG4gICAgfVxuXG4gICAgb25DbG9zZWQoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5mb2N1c1RyYXAgPSBudWxsO1xuICAgICAgICB0aGlzLmNoaXBJY29uID0gJ2tleWJvYXJkX2Fycm93X2Rvd24nO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlKCkge1xuICAgICAgICB0aGlzLmZhY2V0RmllbGRDb21wb25lbnQucmVzZXQoKTtcbiAgICAgICAgdGhpcy5tZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICBvbkFwcGx5KCkge1xuICAgICAgICB0aGlzLmZhY2V0RmllbGRDb21wb25lbnQuc3VibWl0VmFsdWVzKCk7XG4gICAgICAgIHRoaXMubWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgfVxuXG4gICAgb25FbnRlcktleWRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUG9wdWxhdGVkKCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5tZW51VHJpZ2dlci5tZW51T3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudVRyaWdnZXIub3Blbk1lbnUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRXNjS2V5ZG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMubWVudVRyaWdnZXIubWVudU9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMubWVudVRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1BvcHVsYXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQuYnVja2V0cz8uaXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG59XG4iLCI8bWF0LWNoaXAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidzZWFyY2gtZmlsdGVyLWNoaXAtJyArIGZpZWxkLmxhYmVsXCJcbiAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtZmlsdGVyLWNoaXAgYWRmLXNlYXJjaC1maWx0ZXItZmFjZXQtY2hpcFwiXG4gICAgICAgICAgW2NsYXNzLmFkZi1zZWFyY2gtdG9nZ2xlLWNoaXBdPVwiKGZhY2V0RmllbGQuZGlzcGxheVZhbHVlJCB8IGFzeW5jKSB8fCBtZW51VHJpZ2dlci5tZW51T3BlblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1BvcHVsYXRlZCgpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAobWVudU9wZW5lZCk9XCJvbk1lbnVPcGVuKClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlkb3duKClcIlxuICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkVzY0tleWRvd24oKVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiZmFjZXRGaWVsZC5kaXNwbGF5VmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICAgICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+XG5cbiAgICA8c3BhbiBjbGFzcz1cImFkZi1zZWFyY2gtZmlsdGVyLXBsYWNlaG9sZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLXNlYXJjaC1maWx0ZXItZWxsaXBzaXNcIj57eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJhZGYtc2VhcmNoLWZpbHRlci1lbGxpcHNpcyBhZGYtZmlsdGVyLXZhbHVlXCIgKm5nSWY9XCJmYWNldEZpZWxkLmRpc3BsYXlWYWx1ZSQgfCBhc3luYyBhcyBkaXNwbGF5VmFsdWU7IGVsc2Ugc2hvd0FueVwiPlxuICAgICAgICAmbmJzcDsge3sgZGlzcGxheVZhbHVlIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0FueT48c3BhbiBjbGFzcz1cImFkZi1zZWFyY2gtZmlsdGVyLWVsbGlwc2lzIGFkZi1maWx0ZXItdmFsdWVcIj4mbmJzcDt7eyAnU0VBUkNILkZJTFRFUi5BTlknIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbmctdGVtcGxhdGU+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaXNQb3B1bGF0ZWQoKTsgZWxzZSBkaXNhYmxlZEljb25cIj57eyBjaGlwSWNvbiB9fTwvbWF0LWljb24+XG4gICAgPG5nLXRlbXBsYXRlICNkaXNhYmxlZEljb24+XG4gICAgICAgIDxtYXQtaWNvbj5yZW1vdmU8L21hdC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L21hdC1jaGlwPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgYmFja2Ryb3BDbGFzcz1cImFkZi1zZWFyY2gtZmlsdGVyLWNoaXAtbWVudVwiIChjbG9zZWQpPVwib25DbG9zZWQoKVwiPlxuICAgIDxkaXYgI21lbnVDb250YWluZXIgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidzZWFyY2gtZmllbGQtJyArIGZpZWxkLmxhYmVsXCI+XG4gICAgICAgIDxhZGYtc2VhcmNoLWZpbHRlci1tZW51LWNhcmQgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZSk9XCJtZW51VHJpZ2dlci5jbG9zZU1lbnUoKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cImZpbHRlci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJmaWx0ZXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxhZGYtc2VhcmNoLWZhY2V0LWZpZWxkIFtmaWVsZF09XCJmaWVsZFwiICNmYWNldEZpZWxkIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJmaWx0ZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cImFkZi1zZWFyY2gtYWN0aW9uLWJ1dHRvblwiIChjbGljayk9XCJvblJlbW92ZSgpXCIgaWQ9XCJjYW5jZWwtZmlsdGVyLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5CVVRUT05TLkNMRUFSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiYWRmLXNlYXJjaC1hY3Rpb24tYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uQXBwbHkoKVwiIGlkPVwiYXBwbHktZmlsdGVyLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5CVVRUT05TLkFQUExZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYWRmLXNlYXJjaC1maWx0ZXItbWVudS1jYXJkPlxuICAgIDwvZGl2PlxuPC9tYXQtbWVudT5cbiJdfQ==
|