@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,312 @@
|
|
|
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, EventEmitter, HostBinding, Input, Output, QueryList, TemplateRef, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
18
|
+
import { BehaviorSubject, merge, Subject } from 'rxjs';
|
|
19
|
+
import { TreeNodeType } from '../models/tree-node.interface';
|
|
20
|
+
import { TreeService } from '../services/tree.service';
|
|
21
|
+
import { ContextMenuDirective, IconComponent, UserPreferencesService } from '@alfresco/adf-core';
|
|
22
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
23
|
+
import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
|
|
24
|
+
import { takeUntil } from 'rxjs/operators';
|
|
25
|
+
import { CommonModule } from '@angular/common';
|
|
26
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
27
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
28
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
29
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
30
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
31
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
import * as i1 from "../services/tree.service";
|
|
34
|
+
import * as i2 from "@alfresco/adf-core";
|
|
35
|
+
import * as i3 from "@angular/common";
|
|
36
|
+
import * as i4 from "@angular/material/tree";
|
|
37
|
+
import * as i5 from "@angular/material/progress-spinner";
|
|
38
|
+
import * as i6 from "@angular/material/button";
|
|
39
|
+
import * as i7 from "@angular/material/checkbox";
|
|
40
|
+
import * as i8 from "@angular/material/menu";
|
|
41
|
+
import * as i9 from "@angular/material/icon";
|
|
42
|
+
export class TreeComponent {
|
|
43
|
+
constructor(treeService, userPreferenceService) {
|
|
44
|
+
this.treeService = treeService;
|
|
45
|
+
this.userPreferenceService = userPreferenceService;
|
|
46
|
+
/** Variable defining if tree header should be sticky. By default set to false */
|
|
47
|
+
this.stickyHeader = false;
|
|
48
|
+
/** Variable defining if tree nodes should be selectable. By default set to false */
|
|
49
|
+
this.selectableNodes = false;
|
|
50
|
+
/** Icon shown when node has children and is collapsed. By default set to chevron_right */
|
|
51
|
+
this.expandIcon = 'chevron_right';
|
|
52
|
+
/** Icon shown when node is expanded. By default set to expand_more */
|
|
53
|
+
this.collapseIcon = 'expand_more';
|
|
54
|
+
/** Emitted when pagination has been changed */
|
|
55
|
+
this.paginationChanged = new EventEmitter();
|
|
56
|
+
/** Emitted when any context menu option is selected */
|
|
57
|
+
this.contextMenuOptionSelected = new EventEmitter();
|
|
58
|
+
this.loadingRootSource = new BehaviorSubject(false);
|
|
59
|
+
this.contextMenuOptionsChanged$ = new Subject();
|
|
60
|
+
this.treeNodesSelection = new SelectionModel(true, [], true, (node1, node2) => node1.id === node2.id);
|
|
61
|
+
}
|
|
62
|
+
set contextMenuSource(contextMenuSource) {
|
|
63
|
+
this._contextMenuSource = contextMenuSource;
|
|
64
|
+
}
|
|
65
|
+
/** Array of context menu options which should be displayed for each row. */
|
|
66
|
+
set contextMenuOptions(contextMenuOptions) {
|
|
67
|
+
this.contextMenuOptionsChanged$.next();
|
|
68
|
+
if (contextMenuOptions) {
|
|
69
|
+
this._contextMenuOptions = contextMenuOptions.map((option) => {
|
|
70
|
+
if (!option.subject) {
|
|
71
|
+
option = {
|
|
72
|
+
...option,
|
|
73
|
+
subject: new Subject()
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return option;
|
|
77
|
+
});
|
|
78
|
+
merge(...this.contextMenuOptions.map((option) => option.subject))
|
|
79
|
+
.pipe(takeUntil(this.contextMenuOptionsChanged$))
|
|
80
|
+
.subscribe((option) => {
|
|
81
|
+
this.contextMenuOptionSelected.emit({
|
|
82
|
+
row: this._contextMenuSource,
|
|
83
|
+
contextMenuOption: option
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this._contextMenuOptions = contextMenuOptions;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
get contextMenuOptions() {
|
|
92
|
+
return this._contextMenuOptions;
|
|
93
|
+
}
|
|
94
|
+
ngOnInit() {
|
|
95
|
+
this.loadingRoot$ = this.loadingRootSource.asObservable();
|
|
96
|
+
this.refreshTree(0, this.userPreferenceService.paginationSize);
|
|
97
|
+
this.treeNodesSelection.changed.subscribe((selectionChange) => {
|
|
98
|
+
this.onTreeSelectionChange(selectionChange);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
ngOnDestroy() {
|
|
102
|
+
this.contextMenuOptionsChanged$.next();
|
|
103
|
+
this.contextMenuOptionsChanged$.complete();
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Checks if node is LoadMoreNode node
|
|
107
|
+
*
|
|
108
|
+
* @param _idx (unused)
|
|
109
|
+
* @param node node to be checked
|
|
110
|
+
* @returns `true` if there are more items to load, otherwise `false`
|
|
111
|
+
*/
|
|
112
|
+
isLoadMoreNode(_idx, node) {
|
|
113
|
+
return node.nodeType === TreeNodeType.LoadMoreNode;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Checks if tree is empty
|
|
117
|
+
*
|
|
118
|
+
* @returns boolean
|
|
119
|
+
*/
|
|
120
|
+
isEmpty() {
|
|
121
|
+
return this.treeService.isEmpty();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Returns action icon based on expanded/collapsed node state.
|
|
125
|
+
*
|
|
126
|
+
* @param node node to be checked
|
|
127
|
+
* @returns collapse or expand icon
|
|
128
|
+
*/
|
|
129
|
+
expandCollapseIconValue(node) {
|
|
130
|
+
return this.treeService.treeControl.isExpanded(node) ? this.collapseIcon : this.expandIcon;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Refreshes the tree, root nodes are reloaded, tree selection is cleared.
|
|
134
|
+
*
|
|
135
|
+
* @param skipCount Number of root nodes to skip.
|
|
136
|
+
* @param maxItems Maximum number of nodes returned from Observable.
|
|
137
|
+
* @param searchTerm Specifies if categories should be filtered out by name or not. If not specified then returns categories without filtering.
|
|
138
|
+
*/
|
|
139
|
+
refreshTree(skipCount, maxItems, searchTerm) {
|
|
140
|
+
this.loadingRootSource.next(true);
|
|
141
|
+
this.treeNodesSelection.clear();
|
|
142
|
+
this.treeService.getSubNodes('-root-', skipCount, maxItems, searchTerm).subscribe((response) => {
|
|
143
|
+
this.treeService.treeNodes = response.entries;
|
|
144
|
+
this.treeNodesSelection.deselect(...response.entries);
|
|
145
|
+
this.paginationChanged.emit(response.pagination);
|
|
146
|
+
this.loadingRootSource.next(false);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Collapses or expanding the node based on its current state
|
|
151
|
+
*
|
|
152
|
+
* @param node node to be collapsed/expanded
|
|
153
|
+
*/
|
|
154
|
+
expandCollapseNode(node) {
|
|
155
|
+
if (node.hasChildren && !node.isLoading) {
|
|
156
|
+
if (this.treeService.treeControl.isExpanded(node)) {
|
|
157
|
+
this.treeService.collapseNode(node);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
node.isLoading = true;
|
|
161
|
+
this.treeService.getSubNodes(node.id, 0, this.userPreferenceService.paginationSize).subscribe((response) => {
|
|
162
|
+
this.treeService.expandNode(node, response.entries);
|
|
163
|
+
node.isLoading = false;
|
|
164
|
+
if (this.treeNodesSelection.isSelected(node)) {
|
|
165
|
+
//timeout used to update nodeCheckboxes query list after new nodes are added so they can be selected
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
this.treeNodesSelection.select(...response.entries);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Loads more subnode for a given parent node
|
|
176
|
+
*
|
|
177
|
+
* @param node parent node
|
|
178
|
+
*/
|
|
179
|
+
loadMoreSubnodes(node) {
|
|
180
|
+
node.isLoading = true;
|
|
181
|
+
const parentNode = this.treeService.getParentNode(node.parentId);
|
|
182
|
+
this.treeService.removeNode(node);
|
|
183
|
+
const loadedChildren = this.treeService.getChildren(parentNode).length;
|
|
184
|
+
this.treeService
|
|
185
|
+
.getSubNodes(parentNode.id, loadedChildren, this.userPreferenceService.paginationSize)
|
|
186
|
+
.subscribe((response) => {
|
|
187
|
+
this.treeService.appendNodes(parentNode, response.entries);
|
|
188
|
+
node.isLoading = false;
|
|
189
|
+
if (this.treeNodesSelection.isSelected(parentNode)) {
|
|
190
|
+
//timeout used to update nodeCheckboxes query list after new nodes are added so they can be selected
|
|
191
|
+
setTimeout(() => {
|
|
192
|
+
this.treeNodesSelection.select(...response.entries);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* When node is selected it selects all its descendants
|
|
199
|
+
*
|
|
200
|
+
* @param node selected node
|
|
201
|
+
*/
|
|
202
|
+
onNodeSelected(node) {
|
|
203
|
+
this.treeNodesSelection.toggle(node);
|
|
204
|
+
const descendants = this.treeService.treeControl.getDescendants(node).filter(this.isRegularNode);
|
|
205
|
+
if (descendants.length > 0) {
|
|
206
|
+
this.treeNodesSelection.isSelected(node)
|
|
207
|
+
? this.treeNodesSelection.select(...descendants)
|
|
208
|
+
: this.treeNodesSelection.deselect(...descendants);
|
|
209
|
+
}
|
|
210
|
+
this.checkParentsSelection(node);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Checks if all descendants of a node are selected
|
|
214
|
+
*
|
|
215
|
+
* @param node selected node
|
|
216
|
+
* @returns boolean
|
|
217
|
+
*/
|
|
218
|
+
descendantsAllSelected(node) {
|
|
219
|
+
const descendants = this.treeService.treeControl.getDescendants(node).filter(this.isRegularNode);
|
|
220
|
+
return descendants.length > 0 && descendants.every((descendant) => this.treeNodesSelection.isSelected(descendant));
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Checks if some descendants of a node are selected
|
|
224
|
+
*
|
|
225
|
+
* @param node selected node
|
|
226
|
+
* @returns boolean
|
|
227
|
+
*/
|
|
228
|
+
descendantsPartiallySelected(node) {
|
|
229
|
+
const descendants = this.treeService.treeControl.getDescendants(node).filter(this.isRegularNode);
|
|
230
|
+
return (descendants.length > 0 &&
|
|
231
|
+
!this.descendantsAllSelected(node) &&
|
|
232
|
+
descendants.some((descendant) => this.treeNodesSelection.isSelected(descendant)));
|
|
233
|
+
}
|
|
234
|
+
checkParentsSelection(node) {
|
|
235
|
+
let parent = this.treeService.getParentNode(node.parentId);
|
|
236
|
+
while (parent) {
|
|
237
|
+
this.checkRootNodeSelection(parent);
|
|
238
|
+
parent = this.treeService.getParentNode(parent.parentId);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
checkRootNodeSelection(node) {
|
|
242
|
+
const nodeSelected = this.treeNodesSelection.isSelected(node);
|
|
243
|
+
const descAllSelected = this.descendantsAllSelected(node);
|
|
244
|
+
if (nodeSelected && !descAllSelected) {
|
|
245
|
+
this.treeNodesSelection.deselect(node);
|
|
246
|
+
}
|
|
247
|
+
else if (!nodeSelected && descAllSelected) {
|
|
248
|
+
this.treeNodesSelection.select(node);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
onTreeSelectionChange(selectionChange) {
|
|
252
|
+
selectionChange.removed.forEach((unselectedNode) => {
|
|
253
|
+
if (this.isRegularNode(unselectedNode)) {
|
|
254
|
+
this.nodeCheckboxes.find((checkbox) => checkbox.id === unselectedNode.id).checked = false;
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
selectionChange.added.forEach((selectedNode) => {
|
|
258
|
+
if (this.isRegularNode(selectedNode)) {
|
|
259
|
+
this.nodeCheckboxes.find((checkbox) => checkbox.id === selectedNode.id).checked = true;
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
isRegularNode(node) {
|
|
264
|
+
return node.nodeType !== TreeNodeType.LoadMoreNode;
|
|
265
|
+
}
|
|
266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, deps: [{ token: i1.TreeService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
267
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeComponent, isStandalone: true, selector: "adf-tree", inputs: { emptyContentTemplate: "emptyContentTemplate", nodeActionsMenuTemplate: "nodeActionsMenuTemplate", stickyHeader: "stickyHeader", selectableNodes: "selectableNodes", displayName: "displayName", loadMoreSuffix: "loadMoreSuffix", expandIcon: "expandIcon", collapseIcon: "collapseIcon", contextMenuOptions: "contextMenuOptions" }, outputs: { paginationChanged: "paginationChanged", contextMenuOptionSelected: "contextMenuOptionSelected" }, host: { properties: { "class.adf-tree-sticky-header": "this.stickyHeader" }, classAttribute: "adf-tree" }, viewQueries: [{ propertyName: "nodeCheckboxes", predicate: MatCheckbox, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"(loadingRoot$ | async) === false; else loadingSpinner\">\n <ng-container *ngIf=\"!this.isEmpty(); else emptyContent\">\n <div class=\"adf-tree-row adf-tree-header\" *ngIf=\"displayName\">\n <div class=\"adf-tree-cell adf-tree-cell-header\" data-automation-id=\"tree-header-display-name\">\n <span class=\"adf-tree-cell-value\">\n {{ displayName | translate }}\n </span>\n </div>\n </div>\n <mat-tree\n class=\"adf-tree-body\"\n [dataSource]=\"treeService\"\n [treeControl]=\"treeService.treeControl\">\n <mat-tree-node\n class=\"adf-tree-load-more-row\"\n [attr.data-automation-id]=\"'loadMoreSubnodes_' + node.parentId\"\n *matTreeNodeDef=\"let node when isLoadMoreNode\"\n matTreeNodePadding>\n <div class=\"adf-tree-expand-collapse-container\">\n <button class=\"adf-tree-load-more-button\" mat-icon-button (click)=\"loadMoreSubnodes(node)\">\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\"\n [diameter]=\"24\"\n *ngIf=\"node.isLoading; else loadMoreIcon\" />\n <ng-template #loadMoreIcon>\n <adf-icon [value]=\"'chevron_right'\" />\n </ng-template>\n </button>\n </div>\n <div class=\"adf-tree-cell\">\n <span\n class=\"adf-tree-cell-value\"\n tabindex=\"0\"\n role=\"button\"\n (keyup.enter)=\"loadMoreSubnodes(node)\"\n (click)=\"loadMoreSubnodes(node)\">\n {{ 'ADF-TREE.LOAD-MORE-BUTTON' | translate: { name: loadMoreSuffix } }}\n </span>\n </div>\n </mat-tree-node>\n <mat-tree-node\n class=\"adf-tree-row\"\n [attr.data-automation-id]=\"'node_' + node.id\"\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n [adf-context-menu]=\"contextMenuOptions\"\n [adf-context-menu-enabled]=\"!!contextMenuOptions\"\n (contextmenu)=\"contextMenuSource = node\">\n <div class=\"adf-tree-expand-collapse-container\">\n <button *ngIf=\"node.hasChildren\"\n class=\"adf-tree-expand-collapse-button\"\n (click)=\"expandCollapseNode(node)\"\n mat-icon-button>\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\"\n [diameter]=\"24\"\n *ngIf=\"node.isLoading; else expandCollapseIcon\" />\n <ng-template #expandCollapseIcon>\n <adf-icon [value]=\"expandCollapseIconValue(node)\" />\n </ng-template>\n </button>\n </div>\n <ng-container *ngIf=\"selectableNodes\">\n <mat-checkbox *ngIf=\"node.hasChildren; else noChildrenNodeCheckbox\"\n color=\"primary\"\n [id]=\"node.id\"\n [checked]=\"descendantsAllSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"onNodeSelected(node)\"\n data-automation-id=\"has-children-node-checkbox\" />\n <ng-template #noChildrenNodeCheckbox>\n <mat-checkbox\n color=\"primary\"\n [id]=\"node.id\"\n [checked]=\"treeNodesSelection.isSelected(node)\"\n (change)=\"onNodeSelected(node)\"\n data-automation-id=\"no-children-node-checkbox\" />\n </ng-template>\n </ng-container>\n <div class=\"adf-tree-cell\">\n <span\n class=\"adf-tree-cell-value\"\n [class.adf-tree-clickable-cell-value]=\"node.hasChildren\"\n tabindex=\"0\"\n role=\"button\"\n (keyup.enter)=\"expandCollapseNode(node)\"\n (click)=\"expandCollapseNode(node)\">\n {{ node.nodeName }}\n </span>\n </div>\n <div class=\"adf-tree-actions\">\n <button mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n [attr.id]=\"'action_menu_right_' + node.id\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template\n [ngTemplateOutlet]=\"nodeActionsMenuTemplate\"\n [ngTemplateOutletContext]=\"{ node: node }\" />\n </mat-menu>\n </div>\n </mat-tree-node>\n </mat-tree>\n </ng-container>\n</ng-container>\n\n<ng-template #emptyContent>\n <ng-template [ngTemplateOutlet]=\"emptyContentTemplate\" />\n</ng-template>\n\n<ng-template #loadingSpinner>\n <div class=\"adf-tree-loading-spinner-container\">\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\" />\n </div>\n</ng-template>\n", styles: [".adf-tree-sticky-header{display:flex;flex-direction:column;height:100%}.adf-tree-sticky-header mat-tree{overflow-y:scroll}.adf-tree-load-more-row .adf-tree-cell-value,.adf-tree-clickable-cell-value{cursor:pointer}.adf-tree-row,.adf-tree-load-more-row{transition:all .3s ease;display:flex;align-items:center;padding-left:15px;padding-right:15px;transition-property:background-color;border-bottom:1px solid var(--adf-theme-foreground-text-color-007);min-height:56px;-webkit-user-select:none;user-select:none}.adf-tree-row .adf-tree-expand-collapse-container,.adf-tree-load-more-row .adf-tree-expand-collapse-container{min-width:55px}.adf-tree-row:hover,.adf-tree-load-more-row:hover{background-color:var(--adf-theme-background-hover-color)}.adf-tree-row:hover .adf-tree-actions,.adf-tree-load-more-row:hover .adf-tree-actions{display:flex}.adf-tree-row:focus,.adf-tree-load-more-row:focus{background-color:var(--adf-theme-background-hover-color);outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-tree-row .adf-tree-expand-collapse-button,.adf-tree-row .adf-tree-load-more-button,.adf-tree-load-more-row .adf-tree-expand-collapse-button,.adf-tree-load-more-row .adf-tree-load-more-button{display:flex;align-items:center;justify-content:center;margin-left:15px}.adf-tree-row .adf-tree-cell,.adf-tree-load-more-row .adf-tree-cell{color:var(--adf-theme-foreground-text-color);width:100%}.adf-tree-row .adf-tree-cell .adf-tree-cell-value,.adf-tree-load-more-row .adf-tree-cell .adf-tree-cell-value{display:inline-block;padding:10px;word-break:break-word}.adf-tree-header{display:flex;width:fit-content;min-width:100%;box-sizing:border-box}.adf-tree-header .adf-tree-cell-header:has(.adf-tree-cell-value){cursor:pointer;position:relative;vertical-align:bottom;text-overflow:ellipsis;font-weight:700;line-height:24px;letter-spacing:0;min-height:56px;font-size:12px;color:var(--adf-theme-foreground-text-color);box-sizing:border-box;padding-top:12px}.adf-tree-header .adf-tree-cell-header:has(.adf-tree-cell-value):focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-tree-loading-spinner-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i4.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i4.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "component", type: i4.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i4.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "adf-icon", inputs: ["color", "fontSet", "value"] }, { kind: "directive", type: ContextMenuDirective, selector: "[adf-context-menu]", inputs: ["adf-context-menu", "adf-context-menu-enabled"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i8.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: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
268
|
+
}
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, decorators: [{
|
|
270
|
+
type: Component,
|
|
271
|
+
args: [{ selector: 'adf-tree', standalone: true, imports: [
|
|
272
|
+
CommonModule,
|
|
273
|
+
TranslatePipe,
|
|
274
|
+
MatTreeModule,
|
|
275
|
+
MatProgressSpinnerModule,
|
|
276
|
+
MatButtonModule,
|
|
277
|
+
IconComponent,
|
|
278
|
+
ContextMenuDirective,
|
|
279
|
+
MatCheckboxModule,
|
|
280
|
+
MatMenuModule,
|
|
281
|
+
MatIconModule
|
|
282
|
+
], host: { class: 'adf-tree' }, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"(loadingRoot$ | async) === false; else loadingSpinner\">\n <ng-container *ngIf=\"!this.isEmpty(); else emptyContent\">\n <div class=\"adf-tree-row adf-tree-header\" *ngIf=\"displayName\">\n <div class=\"adf-tree-cell adf-tree-cell-header\" data-automation-id=\"tree-header-display-name\">\n <span class=\"adf-tree-cell-value\">\n {{ displayName | translate }}\n </span>\n </div>\n </div>\n <mat-tree\n class=\"adf-tree-body\"\n [dataSource]=\"treeService\"\n [treeControl]=\"treeService.treeControl\">\n <mat-tree-node\n class=\"adf-tree-load-more-row\"\n [attr.data-automation-id]=\"'loadMoreSubnodes_' + node.parentId\"\n *matTreeNodeDef=\"let node when isLoadMoreNode\"\n matTreeNodePadding>\n <div class=\"adf-tree-expand-collapse-container\">\n <button class=\"adf-tree-load-more-button\" mat-icon-button (click)=\"loadMoreSubnodes(node)\">\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\"\n [diameter]=\"24\"\n *ngIf=\"node.isLoading; else loadMoreIcon\" />\n <ng-template #loadMoreIcon>\n <adf-icon [value]=\"'chevron_right'\" />\n </ng-template>\n </button>\n </div>\n <div class=\"adf-tree-cell\">\n <span\n class=\"adf-tree-cell-value\"\n tabindex=\"0\"\n role=\"button\"\n (keyup.enter)=\"loadMoreSubnodes(node)\"\n (click)=\"loadMoreSubnodes(node)\">\n {{ 'ADF-TREE.LOAD-MORE-BUTTON' | translate: { name: loadMoreSuffix } }}\n </span>\n </div>\n </mat-tree-node>\n <mat-tree-node\n class=\"adf-tree-row\"\n [attr.data-automation-id]=\"'node_' + node.id\"\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n [adf-context-menu]=\"contextMenuOptions\"\n [adf-context-menu-enabled]=\"!!contextMenuOptions\"\n (contextmenu)=\"contextMenuSource = node\">\n <div class=\"adf-tree-expand-collapse-container\">\n <button *ngIf=\"node.hasChildren\"\n class=\"adf-tree-expand-collapse-button\"\n (click)=\"expandCollapseNode(node)\"\n mat-icon-button>\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\"\n [diameter]=\"24\"\n *ngIf=\"node.isLoading; else expandCollapseIcon\" />\n <ng-template #expandCollapseIcon>\n <adf-icon [value]=\"expandCollapseIconValue(node)\" />\n </ng-template>\n </button>\n </div>\n <ng-container *ngIf=\"selectableNodes\">\n <mat-checkbox *ngIf=\"node.hasChildren; else noChildrenNodeCheckbox\"\n color=\"primary\"\n [id]=\"node.id\"\n [checked]=\"descendantsAllSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"onNodeSelected(node)\"\n data-automation-id=\"has-children-node-checkbox\" />\n <ng-template #noChildrenNodeCheckbox>\n <mat-checkbox\n color=\"primary\"\n [id]=\"node.id\"\n [checked]=\"treeNodesSelection.isSelected(node)\"\n (change)=\"onNodeSelected(node)\"\n data-automation-id=\"no-children-node-checkbox\" />\n </ng-template>\n </ng-container>\n <div class=\"adf-tree-cell\">\n <span\n class=\"adf-tree-cell-value\"\n [class.adf-tree-clickable-cell-value]=\"node.hasChildren\"\n tabindex=\"0\"\n role=\"button\"\n (keyup.enter)=\"expandCollapseNode(node)\"\n (click)=\"expandCollapseNode(node)\">\n {{ node.nodeName }}\n </span>\n </div>\n <div class=\"adf-tree-actions\">\n <button mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n [attr.id]=\"'action_menu_right_' + node.id\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template\n [ngTemplateOutlet]=\"nodeActionsMenuTemplate\"\n [ngTemplateOutletContext]=\"{ node: node }\" />\n </mat-menu>\n </div>\n </mat-tree-node>\n </mat-tree>\n </ng-container>\n</ng-container>\n\n<ng-template #emptyContent>\n <ng-template [ngTemplateOutlet]=\"emptyContentTemplate\" />\n</ng-template>\n\n<ng-template #loadingSpinner>\n <div class=\"adf-tree-loading-spinner-container\">\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\" />\n </div>\n</ng-template>\n", styles: [".adf-tree-sticky-header{display:flex;flex-direction:column;height:100%}.adf-tree-sticky-header mat-tree{overflow-y:scroll}.adf-tree-load-more-row .adf-tree-cell-value,.adf-tree-clickable-cell-value{cursor:pointer}.adf-tree-row,.adf-tree-load-more-row{transition:all .3s ease;display:flex;align-items:center;padding-left:15px;padding-right:15px;transition-property:background-color;border-bottom:1px solid var(--adf-theme-foreground-text-color-007);min-height:56px;-webkit-user-select:none;user-select:none}.adf-tree-row .adf-tree-expand-collapse-container,.adf-tree-load-more-row .adf-tree-expand-collapse-container{min-width:55px}.adf-tree-row:hover,.adf-tree-load-more-row:hover{background-color:var(--adf-theme-background-hover-color)}.adf-tree-row:hover .adf-tree-actions,.adf-tree-load-more-row:hover .adf-tree-actions{display:flex}.adf-tree-row:focus,.adf-tree-load-more-row:focus{background-color:var(--adf-theme-background-hover-color);outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-tree-row .adf-tree-expand-collapse-button,.adf-tree-row .adf-tree-load-more-button,.adf-tree-load-more-row .adf-tree-expand-collapse-button,.adf-tree-load-more-row .adf-tree-load-more-button{display:flex;align-items:center;justify-content:center;margin-left:15px}.adf-tree-row .adf-tree-cell,.adf-tree-load-more-row .adf-tree-cell{color:var(--adf-theme-foreground-text-color);width:100%}.adf-tree-row .adf-tree-cell .adf-tree-cell-value,.adf-tree-load-more-row .adf-tree-cell .adf-tree-cell-value{display:inline-block;padding:10px;word-break:break-word}.adf-tree-header{display:flex;width:fit-content;min-width:100%;box-sizing:border-box}.adf-tree-header .adf-tree-cell-header:has(.adf-tree-cell-value){cursor:pointer;position:relative;vertical-align:bottom;text-overflow:ellipsis;font-weight:700;line-height:24px;letter-spacing:0;min-height:56px;font-size:12px;color:var(--adf-theme-foreground-text-color);box-sizing:border-box;padding-top:12px}.adf-tree-header .adf-tree-cell-header:has(.adf-tree-cell-value):focus{outline-offset:-1px;outline:1px solid var(--theme-accent-color-a200)}.adf-tree-loading-spinner-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
283
|
+
}], ctorParameters: () => [{ type: i1.TreeService }, { type: i2.UserPreferencesService }], propDecorators: { emptyContentTemplate: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], nodeActionsMenuTemplate: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], stickyHeader: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}, {
|
|
290
|
+
type: HostBinding,
|
|
291
|
+
args: ['class.adf-tree-sticky-header']
|
|
292
|
+
}], selectableNodes: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], displayName: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], loadMoreSuffix: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], expandIcon: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], collapseIcon: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], paginationChanged: [{
|
|
303
|
+
type: Output
|
|
304
|
+
}], contextMenuOptionSelected: [{
|
|
305
|
+
type: Output
|
|
306
|
+
}], nodeCheckboxes: [{
|
|
307
|
+
type: ViewChildren,
|
|
308
|
+
args: [MatCheckbox]
|
|
309
|
+
}], contextMenuOptions: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}] } });
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3RyZWUvY29tcG9uZW50cy90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdHJlZS9jb21wb25lbnRzL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQVksWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEgsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FB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eEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2hCLFFBR0ssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGlCQUNaLGlCQUFpQixDQUFDLElBQUk7cUhBSzlCLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFLQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBTUMsWUFBWTtzQkFGbEIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBS3BDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBS0MsV0FBVztzQkFEakIsS0FBSztnQkFLQyxjQUFjO3NCQURwQixLQUFLO2dCQUtDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSztnQkFLQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBS0EseUJBQXlCO3NCQUQvQixNQUFNO2dCQUlBLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsV0FBVztnQkFrQnJCLGtCQUFrQjtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmVlTm9kZSwgVHJlZU5vZGVUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3RyZWUtbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVEaXJlY3RpdmUsIEljb25Db21wb25lbnQsIFBhZ2luYXRpb25Nb2RlbCwgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFRyZWVSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy90cmVlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBUcmVlQ29udGV4dE1lbnVSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS1jb250ZXh0LW1lbnUtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi10cmVlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBNYXRUcmVlTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgQ29udGV4dE1lbnVEaXJlY3RpdmUsXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtdHJlZScgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQ8VCBleHRlbmRzIFRyZWVOb2RlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogVGVtcGxhdGVSZWYgdG8gcHJvdmlkZSBlbXB0eSB0ZW1wbGF0ZSB3aGVuIG5vIG5vZGVzIGFyZSBsb2FkZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBUZW1wbGF0ZVJlZiB0byBwcm92aWRlIGNvbnRleHQgbWVudSBpdGVtcyBmb3IgY29udGV4dCBtZW51IGRpc3BsYXllZCBvbiBlYWNoIHJvdyovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbm9kZUFjdGlvbnNNZW51VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogVmFyaWFibGUgZGVmaW5pbmcgaWYgdHJlZSBoZWFkZXIgc2hvdWxkIGJlIHN0aWNreS4gQnkgZGVmYXVsdCBzZXQgdG8gZmFsc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWRmLXRyZWUtc3RpY2t5LWhlYWRlcicpXG4gICAgcHVibGljIHN0aWNreUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFZhcmlhYmxlIGRlZmluaW5nIGlmIHRyZWUgbm9kZXMgc2hvdWxkIGJlIHNlbGVjdGFibGUuIEJ5IGRlZmF1bHQgc2V0IHRvIGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VsZWN0YWJsZU5vZGVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVHJlZSBkaXNwbGF5IG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIExvYWQgbW9yZSBzdWZmaXggZm9yIGxvYWQgbW9yZSBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb2FkTW9yZVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqIEljb24gc2hvd24gd2hlbiBub2RlIGhhcyBjaGlsZHJlbiBhbmQgaXMgY29sbGFwc2VkLiBCeSBkZWZhdWx0IHNldCB0byBjaGV2cm9uX3JpZ2h0ICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kSWNvbjogc3RyaW5nID0gJ2NoZXZyb25fcmlnaHQnO1xuXG4gICAgLyoqIEljb24gc2hvd24gd2hlbiBub2RlIGlzIGV4cGFuZGVkLiBCeSBkZWZhdWx0IHNldCB0byBleHBhbmRfbW9yZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbGxhcHNlSWNvbjogc3RyaW5nID0gJ2V4cGFuZF9tb3JlJztcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gcGFnaW5hdGlvbiBoYXMgYmVlbiBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhZ2luYXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbk1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW55IGNvbnRleHQgbWVudSBvcHRpb24gaXMgc2VsZWN0ZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY29udGV4dE1lbnVPcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZUNvbnRleHRNZW51UmVzdWx0PFQ+PigpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihNYXRDaGVja2JveClcbiAgICBwdWJsaWMgbm9kZUNoZWNrYm94ZXM6IFF1ZXJ5TGlzdDxNYXRDaGVja2JveD47XG5cbiAgICBwcml2YXRlIGxvYWRpbmdSb290U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfY29udGV4dE1lbnVTb3VyY2U6IFQ7XG4gICAgcHJpdmF0ZSBfY29udGV4dE1lbnVPcHRpb25zOiBhbnlbXTtcbiAgICBwcml2YXRlIGNvbnRleHRNZW51T3B0aW9uc0NoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwdWJsaWMgbG9hZGluZ1Jvb3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyB0cmVlTm9kZXNTZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VD4odHJ1ZSwgW10sIHRydWUsIChub2RlMTogVCwgbm9kZTI6IFQpID0+IG5vZGUxLmlkID09PSBub2RlMi5pZCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlPFQ+LCBwcml2YXRlIHVzZXJQcmVmZXJlbmNlU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSkge31cblxuICAgIHNldCBjb250ZXh0TWVudVNvdXJjZShjb250ZXh0TWVudVNvdXJjZTogVCkge1xuICAgICAgICB0aGlzLl9jb250ZXh0TWVudVNvdXJjZSA9IGNvbnRleHRNZW51U291cmNlO1xuICAgIH1cblxuICAgIC8qKiBBcnJheSBvZiBjb250ZXh0IG1lbnUgb3B0aW9ucyB3aGljaCBzaG91bGQgYmUgZGlzcGxheWVkIGZvciBlYWNoIHJvdy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0TWVudU9wdGlvbnMoY29udGV4dE1lbnVPcHRpb25zOiBhbnlbXSkge1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51T3B0aW9uc0NoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgaWYgKGNvbnRleHRNZW51T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fY29udGV4dE1lbnVPcHRpb25zID0gY29udGV4dE1lbnVPcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb24uc3ViamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdCgpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1lcmdlKC4uLnRoaXMuY29udGV4dE1lbnVPcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uc3ViamVjdCkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29udGV4dE1lbnVPcHRpb25zQ2hhbmdlZCQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51T3B0aW9uU2VsZWN0ZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3c6IHRoaXMuX2NvbnRleHRNZW51U291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnVPcHRpb246IG9wdGlvblxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHRNZW51T3B0aW9ucyA9IGNvbnRleHRNZW51T3B0aW9ucztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb250ZXh0TWVudU9wdGlvbnMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dE1lbnVPcHRpb25zO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmdSb290JCA9IHRoaXMubG9hZGluZ1Jvb3RTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaFRyZWUoMCwgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UucGFnaW5hdGlvblNpemUpO1xuICAgICAgICB0aGlzLnRyZWVOb2Rlc1NlbGVjdGlvbi5jaGFuZ2VkLnN1YnNjcmliZSgoc2VsZWN0aW9uQ2hhbmdlOiBTZWxlY3Rpb25DaGFuZ2U8VD4pID0+IHtcbiAgICAgICAgICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbkNoYW5nZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51T3B0aW9uc0NoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0TWVudU9wdGlvbnNDaGFuZ2VkJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBub2RlIGlzIExvYWRNb3JlTm9kZSBub2RlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gX2lkeCAodW51c2VkKVxuICAgICAqIEBwYXJhbSBub2RlIG5vZGUgdG8gYmUgY2hlY2tlZFxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGVyZSBhcmUgbW9yZSBpdGVtcyB0byBsb2FkLCBvdGhlcndpc2UgYGZhbHNlYFxuICAgICAqL1xuICAgIHB1YmxpYyBpc0xvYWRNb3JlTm9kZShfaWR4OiBudW1iZXIsIG5vZGU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5Mb2FkTW9yZU5vZGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRyZWUgaXMgZW1wdHlcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZVNlcnZpY2UuaXNFbXB0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWN0aW9uIGljb24gYmFzZWQgb24gZXhwYW5kZWQvY29sbGFwc2VkIG5vZGUgc3RhdGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSBub2RlIHRvIGJlIGNoZWNrZWRcbiAgICAgKiBAcmV0dXJucyBjb2xsYXBzZSBvciBleHBhbmQgaWNvblxuICAgICAqL1xuICAgIHB1YmxpYyBleHBhbmRDb2xsYXBzZUljb25WYWx1ZShub2RlOiBUKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZVNlcnZpY2UudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/IHRoaXMuY29sbGFwc2VJY29uIDogdGhpcy5leHBhbmRJY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2hlcyB0aGUgdHJlZSwgcm9vdCBub2RlcyBhcmUgcmVsb2FkZWQsIHRyZWUgc2VsZWN0aW9uIGlzIGNsZWFyZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2tpcENvdW50IE51bWJlciBvZiByb290IG5vZGVzIHRvIHNraXAuXG4gICAgICogQHBhcmFtIG1heEl0ZW1zIE1heGltdW0gbnVtYmVyIG9mIG5vZGVzIHJldHVybmVkIGZyb20gT2JzZXJ2YWJsZS5cbiAgICAgKiBAcGFyYW0gc2VhcmNoVGVybSBTcGVjaWZpZXMgaWYgY2F0ZWdvcmllcyBzaG91bGQgYmUgZmlsdGVyZWQgb3V0IGJ5IG5hbWUgb3Igbm90LiBJZiBub3Qgc3BlY2lmaWVkIHRoZW4gcmV0dXJucyBjYXRlZ29yaWVzIHdpdGhvdXQgZmlsdGVyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWZyZXNoVHJlZShza2lwQ291bnQ/OiBudW1iZXIsIG1heEl0ZW1zPzogbnVtYmVyLCBzZWFyY2hUZXJtPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGluZ1Jvb3RTb3VyY2UubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy50cmVlTm9kZXNTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy50cmVlU2VydmljZS5nZXRTdWJOb2RlcygnLXJvb3QtJywgc2tpcENvdW50LCBtYXhJdGVtcywgc2VhcmNoVGVybSkuc3Vic2NyaWJlKChyZXNwb25zZTogVHJlZVJlc3BvbnNlPFQ+KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnRyZWVOb2RlcyA9IHJlc3BvbnNlLmVudHJpZXM7XG4gICAgICAgICAgICB0aGlzLnRyZWVOb2Rlc1NlbGVjdGlvbi5kZXNlbGVjdCguLi5yZXNwb25zZS5lbnRyaWVzKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbkNoYW5nZWQuZW1pdChyZXNwb25zZS5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1Jvb3RTb3VyY2UubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbGxhcHNlcyBvciBleHBhbmRpbmcgdGhlIG5vZGUgYmFzZWQgb24gaXRzIGN1cnJlbnQgc3RhdGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIG5vZGUgdG8gYmUgY29sbGFwc2VkL2V4cGFuZGVkXG4gICAgICovXG4gICAgcHVibGljIGV4cGFuZENvbGxhcHNlTm9kZShub2RlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChub2RlLmhhc0NoaWxkcmVuICYmICFub2RlLmlzTG9hZGluZykge1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZVNlcnZpY2UudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UuY29sbGFwc2VOb2RlKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBub2RlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlU2VydmljZS5nZXRTdWJOb2Rlcyhub2RlLmlkLCAwLCB0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZS5wYWdpbmF0aW9uU2l6ZSkuc3Vic2NyaWJlKChyZXNwb25zZTogVHJlZVJlc3BvbnNlPFQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UuZXhwYW5kTm9kZShub2RlLCByZXNwb25zZS5lbnRyaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGltZW91dCB1c2VkIHRvIHVwZGF0ZSBub2RlQ2hlY2tib3hlcyBxdWVyeSBsaXN0IGFmdGVyIG5ldyBub2RlcyBhcmUgYWRkZWQgc28gdGhleSBjYW4gYmUgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLnNlbGVjdCguLi5yZXNwb25zZS5lbnRyaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyBtb3JlIHN1Ym5vZGUgZm9yIGEgZ2l2ZW4gcGFyZW50IG5vZGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHBhcmVudCBub2RlXG4gICAgICovXG4gICAgcHVibGljIGxvYWRNb3JlU3Vibm9kZXMobm9kZTogVCk6IHZvaWQge1xuICAgICAgICBub2RlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHBhcmVudE5vZGU6IFQgPSB0aGlzLnRyZWVTZXJ2aWNlLmdldFBhcmVudE5vZGUobm9kZS5wYXJlbnRJZCk7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2UucmVtb3ZlTm9kZShub2RlKTtcbiAgICAgICAgY29uc3QgbG9hZGVkQ2hpbGRyZW46IG51bWJlciA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0Q2hpbGRyZW4ocGFyZW50Tm9kZSkubGVuZ3RoO1xuICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0U3ViTm9kZXMocGFyZW50Tm9kZS5pZCwgbG9hZGVkQ2hpbGRyZW4sIHRoaXMudXNlclByZWZlcmVuY2VTZXJ2aWNlLnBhZ2luYXRpb25TaXplKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IFRyZWVSZXNwb25zZTxUPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UuYXBwZW5kTm9kZXMocGFyZW50Tm9kZSwgcmVzcG9uc2UuZW50cmllcyk7XG4gICAgICAgICAgICAgICAgbm9kZS5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlTm9kZXNTZWxlY3Rpb24uaXNTZWxlY3RlZChwYXJlbnROb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAvL3RpbWVvdXQgdXNlZCB0byB1cGRhdGUgbm9kZUNoZWNrYm94ZXMgcXVlcnkgbGlzdCBhZnRlciBuZXcgbm9kZXMgYXJlIGFkZGVkIHNvIHRoZXkgY2FuIGJlIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmVlTm9kZXNTZWxlY3Rpb24uc2VsZWN0KC4uLnJlc3BvbnNlLmVudHJpZXMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG5vZGUgaXMgc2VsZWN0ZWQgaXQgc2VsZWN0cyBhbGwgaXRzIGRlc2NlbmRhbnRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSBzZWxlY3RlZCBub2RlXG4gICAgICovXG4gICAgcHVibGljIG9uTm9kZVNlbGVjdGVkKG5vZGU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmVlTm9kZXNTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xuICAgICAgICBjb25zdCBkZXNjZW5kYW50czogVFtdID0gdGhpcy50cmVlU2VydmljZS50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIodGhpcy5pc1JlZ3VsYXJOb2RlKTtcbiAgICAgICAgaWYgKGRlc2NlbmRhbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cylcbiAgICAgICAgICAgICAgICA6IHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmRlc2VsZWN0KC4uLmRlc2NlbmRhbnRzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYWxsIGRlc2NlbmRhbnRzIG9mIGEgbm9kZSBhcmUgc2VsZWN0ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHNlbGVjdGVkIG5vZGVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgcHVibGljIGRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkZXNjZW5kYW50czogVFtdID0gdGhpcy50cmVlU2VydmljZS50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIodGhpcy5pc1JlZ3VsYXJOb2RlKTtcbiAgICAgICAgcmV0dXJuIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiYgZGVzY2VuZGFudHMuZXZlcnkoKGRlc2NlbmRhbnQ6IFQpID0+IHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmlzU2VsZWN0ZWQoZGVzY2VuZGFudCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBzb21lIGRlc2NlbmRhbnRzIG9mIGEgbm9kZSBhcmUgc2VsZWN0ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIHNlbGVjdGVkIG5vZGVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgcHVibGljIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkZXNjZW5kYW50czogVFtdID0gdGhpcy50cmVlU2VydmljZS50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIodGhpcy5pc1JlZ3VsYXJOb2RlKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICF0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSkgJiZcbiAgICAgICAgICAgIGRlc2NlbmRhbnRzLnNvbWUoKGRlc2NlbmRhbnQ6IFQpID0+IHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmlzU2VsZWN0ZWQoZGVzY2VuZGFudCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1BhcmVudHNTZWxlY3Rpb24obm9kZTogVCk6IHZvaWQge1xuICAgICAgICBsZXQgcGFyZW50OiBUID0gdGhpcy50cmVlU2VydmljZS5nZXRQYXJlbnROb2RlKG5vZGUucGFyZW50SWQpO1xuICAgICAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUm9vdE5vZGVTZWxlY3Rpb24ocGFyZW50KTtcbiAgICAgICAgICAgIHBhcmVudCA9IHRoaXMudHJlZVNlcnZpY2UuZ2V0UGFyZW50Tm9kZShwYXJlbnQucGFyZW50SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9kZVNlbGVjdGVkOiBib29sZWFuID0gdGhpcy50cmVlTm9kZXNTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKTtcbiAgICAgICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID0gdGhpcy5kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpO1xuICAgICAgICBpZiAobm9kZVNlbGVjdGVkICYmICFkZXNjQWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZU5vZGVzU2VsZWN0aW9uLmRlc2VsZWN0KG5vZGUpO1xuICAgICAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVOb2Rlc1NlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVHJlZVNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb25DaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxUPik6IHZvaWQge1xuICAgICAgICBzZWxlY3Rpb25DaGFuZ2UucmVtb3ZlZC5mb3JFYWNoKCh1bnNlbGVjdGVkTm9kZTogVCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWd1bGFyTm9kZSh1bnNlbGVjdGVkTm9kZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVDaGVja2JveGVzLmZpbmQoKGNoZWNrYm94OiBNYXRDaGVja2JveCkgPT4gY2hlY2tib3guaWQgPT09IHVuc2VsZWN0ZWROb2RlLmlkKS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzZWxlY3Rpb25DaGFuZ2UuYWRkZWQuZm9yRWFjaCgoc2VsZWN0ZWROb2RlOiBUKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1JlZ3VsYXJOb2RlKHNlbGVjdGVkTm9kZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVDaGVja2JveGVzLmZpbmQoKGNoZWNrYm94OiBNYXRDaGVja2JveCkgPT4gY2hlY2tib3guaWQgPT09IHNlbGVjdGVkTm9kZS5pZCkuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSZWd1bGFyTm9kZShub2RlOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVUeXBlICE9PSBUcmVlTm9kZVR5cGUuTG9hZE1vcmVOb2RlO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIobG9hZGluZ1Jvb3QkIHwgYXN5bmMpID09PSBmYWxzZTsgZWxzZSBsb2FkaW5nU3Bpbm5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGhpcy5pc0VtcHR5KCk7IGVsc2UgZW1wdHlDb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdHJlZS1yb3cgYWRmLXRyZWUtaGVhZGVyXCIgKm5nSWY9XCJkaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10cmVlLWNlbGwgYWRmLXRyZWUtY2VsbC1oZWFkZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJ0cmVlLWhlYWRlci1kaXNwbGF5LW5hbWVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi10cmVlLWNlbGwtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGlzcGxheU5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtdHJlZVxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtdHJlZS1ib2R5XCJcbiAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInRyZWVTZXJ2aWNlXCJcbiAgICAgICAgICAgIFt0cmVlQ29udHJvbF09XCJ0cmVlU2VydmljZS50cmVlQ29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi10cmVlLWxvYWQtbW9yZS1yb3dcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInbG9hZE1vcmVTdWJub2Rlc18nICsgbm9kZS5wYXJlbnRJZFwiXG4gICAgICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGUgd2hlbiBpc0xvYWRNb3JlTm9kZVwiXG4gICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdHJlZS1leHBhbmQtY29sbGFwc2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGYtdHJlZS1sb2FkLW1vcmUtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJsb2FkTW9yZVN1Ym5vZGVzKG5vZGUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZS5pc0xvYWRpbmc7IGVsc2UgbG9hZE1vcmVJY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZE1vcmVJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtaWNvbiBbdmFsdWVdPVwiJ2NoZXZyb25fcmlnaHQnXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdHJlZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi10cmVlLWNlbGwtdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvYWRNb3JlU3Vibm9kZXMobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxvYWRNb3JlU3Vibm9kZXMobm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBREYtVFJFRS5MT0FELU1PUkUtQlVUVE9OJyB8IHRyYW5zbGF0ZTogeyBuYW1lOiBsb2FkTW9yZVN1ZmZpeCB9IH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdHJlZS1yb3dcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInbm9kZV8nICsgbm9kZS5pZFwiXG4gICAgICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgICAgIFthZGYtY29udGV4dC1tZW51XT1cImNvbnRleHRNZW51T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2FkZi1jb250ZXh0LW1lbnUtZW5hYmxlZF09XCIhIWNvbnRleHRNZW51T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cImNvbnRleHRNZW51U291cmNlID0gbm9kZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdHJlZS1leHBhbmQtY29sbGFwc2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi10cmVlLWV4cGFuZC1jb2xsYXBzZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRDb2xsYXBzZU5vZGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJub2RlLmlzTG9hZGluZzsgZWxzZSBleHBhbmRDb2xsYXBzZUljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNleHBhbmRDb2xsYXBzZUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1pY29uIFt2YWx1ZV09XCJleHBhbmRDb2xsYXBzZUljb25WYWx1ZShub2RlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0YWJsZU5vZGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuOyBlbHNlIG5vQ2hpbGRyZW5Ob2RlQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIm5vZGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ob2RlU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImhhcy1jaGlsZHJlbi1ub2RlLWNoZWNrYm94XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuTm9kZUNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIm5vZGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInRyZWVOb2Rlc1NlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uTm9kZVNlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJuby1jaGlsZHJlbi1ub2RlLWNoZWNrYm94XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXRyZWUtY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdHJlZS1jZWxsLXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtdHJlZS1jbGlja2FibGUtY2VsbC12YWx1ZV09XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJleHBhbmRDb2xsYXBzZU5vZGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZENvbGxhcHNlTm9kZShub2RlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5ub2RlTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi10cmVlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ2FjdGlvbl9tZW51X3JpZ2h0XycgKyBub2RlLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVBY3Rpb25zTWVudVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBub2RlIH1cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICA8L21hdC10cmVlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlDb250ZW50PlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eUNvbnRlbnRUZW1wbGF0ZVwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdTcGlubmVyPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtdHJlZS1sb2FkaW5nLXNwaW5uZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIG1vZGU9XCJpbmRldGVybWluYXRlXCIgLz5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -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 './public-api';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3RyZWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -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 {};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb250ZXh0LW1lbnUtcmVzdWx0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdHJlZS9tb2RlbHMvdHJlZS1jb250ZXh0LW1lbnUtcmVzdWx0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUNvbnRleHRNZW51UmVzdWx0PFQ+IHtcbiAgICByb3c6IFQ7XG4gICAgY29udGV4dE1lbnVPcHRpb246IGFueTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
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 var TreeNodeType;
|
|
18
|
+
(function (TreeNodeType) {
|
|
19
|
+
TreeNodeType[TreeNodeType["RegularNode"] = 0] = "RegularNode";
|
|
20
|
+
TreeNodeType[TreeNodeType["LoadMoreNode"] = 1] = "LoadMoreNode";
|
|
21
|
+
})(TreeNodeType || (TreeNodeType = {}));
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdHJlZS9tb2RlbHMvdHJlZS1ub2RlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLDZEQUFXLENBQUE7SUFDWCwrREFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGVudW0gVHJlZU5vZGVUeXBlIHtcbiAgICBSZWd1bGFyTm9kZSxcbiAgICBMb2FkTW9yZU5vZGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmVlTm9kZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBub2RlTmFtZTogc3RyaW5nO1xuICAgIHBhcmVudElkOiBzdHJpbmc7XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICBub2RlVHlwZTogVHJlZU5vZGVUeXBlO1xuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -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 {};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1yZXNwb25zZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3RyZWUvbW9kZWxzL3RyZWUtcmVzcG9uc2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUcmVlUmVzcG9uc2U8VCBleHRlbmRzIFRyZWVOb2RlPiB7XG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbk1vZGVsO1xuICAgIGVudHJpZXM6IFRbXTtcbn1cbiJdfQ==
|
|
@@ -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 './tree.module';
|
|
18
|
+
export * from './models/tree-response.interface';
|
|
19
|
+
export * from './models/tree-node.interface';
|
|
20
|
+
export * from './models/tree-context-menu-result.interface';
|
|
21
|
+
export * from './services/tree.service';
|
|
22
|
+
export * from './components/tree.component';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdHJlZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90cmVlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90cmVlLXJlc3BvbnNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90cmVlLW5vZGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RyZWUtY29udGV4dC1tZW51LXJlc3VsdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90cmVlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RyZWUuY29tcG9uZW50JztcbiJdfQ==
|