@alfresco/adf-core 8.1.0-16295248176 → 8.1.0-16320806191
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-core/i18n/de.json +1 -1
- package/bundles/assets/adf-core/i18n/es.json +1 -1
- package/bundles/assets/adf-core/i18n/fr.json +1 -1
- package/bundles/assets/adf-core/i18n/it.json +1 -1
- package/bundles/assets/adf-core/i18n/pl.json +1 -1
- package/bundles/assets/adf-core/i18n/pt.json +1 -1
- package/esm2022/adf-core.mjs +5 -0
- package/esm2022/api/alfresco-adf-core-api.mjs +5 -0
- package/esm2022/api/index.mjs +20 -0
- package/esm2022/api/lib/adf-http-client.service.mjs +311 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +33 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +25 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +80 -0
- package/esm2022/api/lib/interfaces.mjs +18 -0
- package/esm2022/api/lib/types.mjs +18 -0
- package/esm2022/auth/alfresco-adf-core-auth.mjs +5 -0
- package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +56 -0
- package/esm2022/auth/authentication.mjs +19 -0
- package/esm2022/auth/index.mjs +19 -0
- package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +5 -0
- package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +82 -0
- package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +42 -0
- package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +44 -0
- package/esm2022/breadcrumbs/index.mjs +19 -0
- package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +5 -0
- package/esm2022/feature-flags/index.mjs +29 -0
- package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +36 -0
- package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +56 -0
- package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +129 -0
- package/esm2022/feature-flags/lib/directives/features.directive.mjs +63 -0
- package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +63 -0
- package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +38 -0
- package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +38 -0
- package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +40 -0
- package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +24 -0
- package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +62 -0
- package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +51 -0
- package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +36 -0
- package/esm2022/feature-flags/lib/services/debug-features.service.mjs +94 -0
- package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +40 -0
- package/esm2022/feature-flags/lib/services/flagset.parser.mjs +38 -0
- package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +62 -0
- package/esm2022/feature-flags/lib/services/storage-features.service.mjs +126 -0
- package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +51 -0
- package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +51 -0
- package/esm2022/lib/about/about-module-list/module-list.component.mjs +51 -0
- package/esm2022/lib/about/about-package/package-list.component.mjs +65 -0
- package/esm2022/lib/about/about-panel.directive.mjs +37 -0
- package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +59 -0
- package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +18 -0
- package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +42 -0
- package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +51 -0
- package/esm2022/lib/about/about.component.mjs +35 -0
- package/esm2022/lib/about/about.module.mjs +75 -0
- package/esm2022/lib/about/index.mjs +18 -0
- package/esm2022/lib/about/interfaces.mjs +18 -0
- package/esm2022/lib/about/public-api.mjs +28 -0
- package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +51 -0
- package/esm2022/lib/app-config/app-config.loader.mjs +41 -0
- package/esm2022/lib/app-config/app-config.module.mjs +33 -0
- package/esm2022/lib/app-config/app-config.pipe.mjs +38 -0
- package/esm2022/lib/app-config/app-config.service.mjs +243 -0
- package/esm2022/lib/app-config/debug-app-config.service.mjs +44 -0
- package/esm2022/lib/app-config/index.mjs +18 -0
- package/esm2022/lib/app-config/public-api.mjs +22 -0
- package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +67 -0
- package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +356 -0
- package/esm2022/lib/auth/basic-auth/content-auth.mjs +189 -0
- package/esm2022/lib/auth/basic-auth/process-auth.mjs +193 -0
- package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +31 -0
- package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +31 -0
- package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +57 -0
- package/esm2022/lib/auth/guard/auth-guard.mjs +53 -0
- package/esm2022/lib/auth/guard/auth-guard.service.mjs +113 -0
- package/esm2022/lib/auth/index.mjs +18 -0
- package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/authentication.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +18 -0
- package/esm2022/lib/auth/models/application-access.model.mjs +18 -0
- package/esm2022/lib/auth/models/identity-group.model.mjs +18 -0
- package/esm2022/lib/auth/models/identity-role.model.mjs +30 -0
- package/esm2022/lib/auth/models/identity-user.model.mjs +18 -0
- package/esm2022/lib/auth/models/oauth-config.model.mjs +18 -0
- package/esm2022/lib/auth/models/redirection.model.mjs +28 -0
- package/esm2022/lib/auth/models/user-access.model.mjs +18 -0
- package/esm2022/lib/auth/oidc/auth-config.mjs +19 -0
- package/esm2022/lib/auth/oidc/auth-config.service.mjs +110 -0
- package/esm2022/lib/auth/oidc/auth-routing.module.mjs +34 -0
- package/esm2022/lib/auth/oidc/auth.module.mjs +112 -0
- package/esm2022/lib/auth/oidc/auth.service.mjs +22 -0
- package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +37 -0
- package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +202 -0
- package/esm2022/lib/auth/oidc/public-api.mjs +24 -0
- package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +267 -0
- package/esm2022/lib/auth/oidc/retry-login.service.mjs +66 -0
- package/esm2022/lib/auth/oidc/token.interceptor.mjs +62 -0
- package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +31 -0
- package/esm2022/lib/auth/public-api.mjs +44 -0
- package/esm2022/lib/auth/services/authentication.service.mjs +190 -0
- package/esm2022/lib/auth/services/base-authentication.service.mjs +99 -0
- package/esm2022/lib/auth/services/identity-group.service.mjs +269 -0
- package/esm2022/lib/auth/services/identity-role.service.mjs +99 -0
- package/esm2022/lib/auth/services/identity-user.service.mjs +443 -0
- package/esm2022/lib/auth/services/jwt-helper.service.mjs +205 -0
- package/esm2022/lib/auth/services/oauth2.service.mjs +69 -0
- package/esm2022/lib/auth/services/time-sync.service.mjs +83 -0
- package/esm2022/lib/auth/services/user-access.service.mjs +110 -0
- package/esm2022/lib/avatar/avatar.component.mjs +51 -0
- package/esm2022/lib/blank-page/blank-page.component.mjs +31 -0
- package/esm2022/lib/blank-page/blank-page.module.mjs +33 -0
- package/esm2022/lib/blank-page/index.mjs +18 -0
- package/esm2022/lib/blank-page/public-api.mjs +19 -0
- package/esm2022/lib/button/button.component.mjs +61 -0
- package/esm2022/lib/card-view/card-view.module.mjs +80 -0
- package/esm2022/lib/card-view/components/base-card-view.mjs +51 -0
- package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +66 -0
- package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +55 -0
- package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +39 -0
- package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +182 -0
- package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +108 -0
- package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +64 -0
- package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +46 -0
- package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +137 -0
- package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +113 -0
- package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +239 -0
- package/esm2022/lib/card-view/components/card-view.components.mjs +28 -0
- package/esm2022/lib/card-view/index.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +29 -0
- package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +18 -0
- package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +28 -0
- package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +64 -0
- package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +58 -0
- package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +28 -0
- package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +33 -0
- package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +27 -0
- package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +32 -0
- package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +41 -0
- package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +40 -0
- package/esm2022/lib/card-view/models/card-view.models.mjs +29 -0
- package/esm2022/lib/card-view/public-api.mjs +25 -0
- package/esm2022/lib/card-view/services/card-item-types.service.mjs +54 -0
- package/esm2022/lib/card-view/services/card-view-update.service.mjs +59 -0
- package/esm2022/lib/card-view/services/card-view.services.mjs +19 -0
- package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +31 -0
- package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +34 -0
- package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +32 -0
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +31 -0
- package/esm2022/lib/card-view/validators/card-view.validators.mjs +26 -0
- package/esm2022/lib/card-view/validators/validators.map.mjs +26 -0
- package/esm2022/lib/clipboard/clipboard.directive.mjs +98 -0
- package/esm2022/lib/clipboard/clipboard.module.mjs +34 -0
- package/esm2022/lib/clipboard/clipboard.service.mjs +103 -0
- package/esm2022/lib/clipboard/index.mjs +18 -0
- package/esm2022/lib/clipboard/public-api.mjs +21 -0
- package/esm2022/lib/comments/comment-list/comment-list.component.mjs +52 -0
- package/esm2022/lib/comments/comment-list/comment-list.module.mjs +33 -0
- package/esm2022/lib/comments/comment-list/index.mjs +18 -0
- package/esm2022/lib/comments/comment-list/public-api.mjs +19 -0
- package/esm2022/lib/comments/comments.component.mjs +132 -0
- package/esm2022/lib/comments/comments.module.mjs +33 -0
- package/esm2022/lib/comments/index.mjs +18 -0
- package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +18 -0
- package/esm2022/lib/comments/interfaces/comments.token.mjs +19 -0
- package/esm2022/lib/comments/public-api.mjs +22 -0
- package/esm2022/lib/common/index.mjs +35 -0
- package/esm2022/lib/common/interface/search-component.interface.mjs +18 -0
- package/esm2022/lib/common/mock/app-config.service.mock.mjs +47 -0
- package/esm2022/lib/common/models/default-languages.model.mjs +36 -0
- package/esm2022/lib/common/models/log-levels.model.mjs +33 -0
- package/esm2022/lib/common/models/user-info-mode.enum.mjs +25 -0
- package/esm2022/lib/common/services/cookie.service.mjs +82 -0
- package/esm2022/lib/common/services/download.service.mjs +102 -0
- package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +89 -0
- package/esm2022/lib/common/services/highlight-transform.service.mjs +61 -0
- package/esm2022/lib/common/services/language-item.interface.mjs +18 -0
- package/esm2022/lib/common/services/log.service.mjs +171 -0
- package/esm2022/lib/common/services/page-title.service.mjs +63 -0
- package/esm2022/lib/common/services/sort-by-category.service.mjs +81 -0
- package/esm2022/lib/common/services/storage.service.mjs +143 -0
- package/esm2022/lib/common/services/thumbnail.service.mjs +194 -0
- package/esm2022/lib/common/services/url.service.mjs +45 -0
- package/esm2022/lib/common/services/user-preferences.service.mjs +238 -0
- package/esm2022/lib/common/utils/date-fns-adapter.mjs +115 -0
- package/esm2022/lib/common/utils/date-fns-utils.mjs +222 -0
- package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +134 -0
- package/esm2022/lib/common/utils/file-utils.mjs +65 -0
- package/esm2022/lib/common/utils/index.mjs +18 -0
- package/esm2022/lib/common/utils/moment-date-adapter.mjs +202 -0
- package/esm2022/lib/common/utils/moment-date-formats.model.mjs +32 -0
- package/esm2022/lib/common/utils/object-utils.mjs +107 -0
- package/esm2022/lib/common/utils/public-api.mjs +25 -0
- package/esm2022/lib/common/utils/string-utils.mjs +45 -0
- package/esm2022/lib/context-menu/animations.mjs +33 -0
- package/esm2022/lib/context-menu/context-menu-list.component.mjs +91 -0
- package/esm2022/lib/context-menu/context-menu-overlay.mjs +25 -0
- package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +109 -0
- package/esm2022/lib/context-menu/context-menu.directive.mjs +63 -0
- package/esm2022/lib/context-menu/context-menu.module.mjs +35 -0
- package/esm2022/lib/context-menu/context-menu.tokens.mjs +19 -0
- package/esm2022/lib/context-menu/index.mjs +18 -0
- package/esm2022/lib/context-menu/interfaces.mjs +18 -0
- package/esm2022/lib/context-menu/public-api.mjs +21 -0
- package/esm2022/lib/core.module.mjs +314 -0
- package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +45 -0
- package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +65 -0
- package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +55 -0
- package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +113 -0
- package/esm2022/lib/datatable/components/data-cell.event.mjs +31 -0
- package/esm2022/lib/datatable/components/data-row-action.event.mjs +34 -0
- package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +914 -0
- package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +126 -0
- package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +98 -0
- package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +78 -0
- package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +60 -0
- package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +49 -0
- package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +67 -0
- package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +86 -0
- package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +69 -0
- package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +153 -0
- package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +42 -0
- package/esm2022/lib/datatable/data/data-column.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-row-event.model.mjs +26 -0
- package/esm2022/lib/datatable/data/data-row-update.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-row.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-sorting.model.mjs +24 -0
- package/esm2022/lib/datatable/data/data-table.schema.mjs +132 -0
- package/esm2022/lib/datatable/data/datatable-adapter.mjs +18 -0
- package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +46 -0
- package/esm2022/lib/datatable/data/object-datarow.model.mjs +41 -0
- package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +134 -0
- package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +45 -0
- package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +36 -0
- package/esm2022/lib/datatable/data-column/data-column.component.mjs +114 -0
- package/esm2022/lib/datatable/data-column/index.mjs +18 -0
- package/esm2022/lib/datatable/data-column/public-api.mjs +20 -0
- package/esm2022/lib/datatable/datatable.module.mjs +161 -0
- package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +35 -0
- package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +30 -0
- package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +35 -0
- package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +89 -0
- package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +43 -0
- package/esm2022/lib/datatable/directives/loading-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +43 -0
- package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +173 -0
- package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +72 -0
- package/esm2022/lib/datatable/directives/resizable/types.mjs +18 -0
- package/esm2022/lib/datatable/index.mjs +18 -0
- package/esm2022/lib/datatable/public-api.mjs +55 -0
- package/esm2022/lib/datatable/services/datatable.service.mjs +33 -0
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +50 -0
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +38 -0
- package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +18 -0
- package/esm2022/lib/dialogs/dialog/dialog.component.mjs +70 -0
- package/esm2022/lib/dialogs/dialog/dialog.model.mjs +22 -0
- package/esm2022/lib/dialogs/dialog/index.mjs +20 -0
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +52 -0
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +34 -0
- package/esm2022/lib/dialogs/index.mjs +18 -0
- package/esm2022/lib/dialogs/public-api.mjs +25 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +73 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +18 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +33 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +64 -0
- package/esm2022/lib/directives/directive.module.mjs +56 -0
- package/esm2022/lib/directives/highlight.directive.mjs +67 -0
- package/esm2022/lib/directives/index.mjs +18 -0
- package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +67 -0
- package/esm2022/lib/directives/logout.directive.mjs +72 -0
- package/esm2022/lib/directives/public-api.mjs +24 -0
- package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +60 -0
- package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +104 -0
- package/esm2022/lib/directives/upload.directive.mjs +241 -0
- package/esm2022/lib/dynamic-chip-list/chip.mjs +18 -0
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +204 -0
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +33 -0
- package/esm2022/lib/dynamic-chip-list/index.mjs +18 -0
- package/esm2022/lib/dynamic-chip-list/public-api.mjs +20 -0
- package/esm2022/lib/events/base-ui.event.mjs +21 -0
- package/esm2022/lib/events/base.event.mjs +29 -0
- package/esm2022/lib/events/index.mjs +18 -0
- package/esm2022/lib/events/public-api.mjs +19 -0
- package/esm2022/lib/form/components/form-base.component.mjs +212 -0
- package/esm2022/lib/form/components/form-custom-button.directive.mjs +30 -0
- package/esm2022/lib/form/components/form-field/form-field.component.mjs +142 -0
- package/esm2022/lib/form/components/form-renderer.component.mjs +161 -0
- package/esm2022/lib/form/components/form-section/form-section.component.mjs +46 -0
- package/esm2022/lib/form/components/helpers/buttons-visibility.mjs +37 -0
- package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +37 -0
- package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +48 -0
- package/esm2022/lib/form/components/middlewares/middleware.mjs +19 -0
- package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +77 -0
- package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +59 -0
- package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +52 -0
- package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +28 -0
- package/esm2022/lib/form/components/widgets/core/container.model.mjs +50 -0
- package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +52 -0
- package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +38 -0
- package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/external-content.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +74 -0
- package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +23 -0
- package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +268 -0
- package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +490 -0
- package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +32 -0
- package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +38 -0
- package/esm2022/lib/form/components/widgets/core/form-values.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +33 -0
- package/esm2022/lib/form/components/widgets/core/form.model.mjs +387 -0
- package/esm2022/lib/form/components/widgets/core/group.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/index.mjs +49 -0
- package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +115 -0
- package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/tab.model.mjs +34 -0
- package/esm2022/lib/form/components/widgets/core/theme.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +27 -0
- package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/date/date.widget.mjs +162 -0
- package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +153 -0
- package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +53 -0
- package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +86 -0
- package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +46 -0
- package/esm2022/lib/form/components/widgets/display-text/index.mjs +19 -0
- package/esm2022/lib/form/components/widgets/error/error.component.mjs +92 -0
- package/esm2022/lib/form/components/widgets/header/header.schema.mjs +86 -0
- package/esm2022/lib/form/components/widgets/header/header.widget.mjs +42 -0
- package/esm2022/lib/form/components/widgets/header/index.mjs +19 -0
- package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +69 -0
- package/esm2022/lib/form/components/widgets/index.mjs +71 -0
- package/esm2022/lib/form/components/widgets/json/json.widget.mjs +66 -0
- package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +55 -0
- package/esm2022/lib/form/components/widgets/number/number.widget.mjs +71 -0
- package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +18 -0
- package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +215 -0
- package/esm2022/lib/form/components/widgets/text/text.widget.mjs +65 -0
- package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +63 -0
- package/esm2022/lib/form/components/widgets/widget.component.mjs +110 -0
- package/esm2022/lib/form/events/form-error.event.mjs +24 -0
- package/esm2022/lib/form/events/form-field.event.mjs +24 -0
- package/esm2022/lib/form/events/form-rules.event.mjs +25 -0
- package/esm2022/lib/form/events/form-spinner.event.mjs +23 -0
- package/esm2022/lib/form/events/form.event.mjs +29 -0
- package/esm2022/lib/form/events/index.mjs +24 -0
- package/esm2022/lib/form/events/validate-form-field.event.mjs +24 -0
- package/esm2022/lib/form/events/validate-form.event.mjs +25 -0
- package/esm2022/lib/form/form-base.module.mjs +90 -0
- package/esm2022/lib/form/index.mjs +18 -0
- package/esm2022/lib/form/models/form-rules.model.mjs +77 -0
- package/esm2022/lib/form/models/task-process-variable.model.mjs +19 -0
- package/esm2022/lib/form/models/widget-visibility.model.mjs +104 -0
- package/esm2022/lib/form/pipes/field-style.pipe.mjs +45 -0
- package/esm2022/lib/form/pipes/index.mjs +18 -0
- package/esm2022/lib/form/public-api.mjs +35 -0
- package/esm2022/lib/form/services/form-rendering.service.mjs +53 -0
- package/esm2022/lib/form/services/form-validation-service.interface.mjs +18 -0
- package/esm2022/lib/form/services/form.service.mjs +86 -0
- package/esm2022/lib/form/services/widget-visibility.service.mjs +294 -0
- package/esm2022/lib/header/header.component.mjs +73 -0
- package/esm2022/lib/header/index.mjs +18 -0
- package/esm2022/lib/header/navbar/navbar-item.component.mjs +37 -0
- package/esm2022/lib/header/navbar/navbar.component.mjs +36 -0
- package/esm2022/lib/header/public-api.mjs +20 -0
- package/esm2022/lib/icon/icon.component.mjs +51 -0
- package/esm2022/lib/icon/icon.module.mjs +36 -0
- package/esm2022/lib/icon/index.mjs +18 -0
- package/esm2022/lib/icon/public-api.mjs +19 -0
- package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +86 -0
- package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +33 -0
- package/esm2022/lib/identity-user-info/index.mjs +18 -0
- package/esm2022/lib/identity-user-info/public-api.mjs +19 -0
- package/esm2022/lib/info-drawer/index.mjs +18 -0
- package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +71 -0
- package/esm2022/lib/info-drawer/info-drawer.component.mjs +113 -0
- package/esm2022/lib/info-drawer/info-drawer.module.mjs +53 -0
- package/esm2022/lib/info-drawer/public-api.mjs +20 -0
- package/esm2022/lib/interface/index.mjs +18 -0
- package/esm2022/lib/interface/injection.tokens.mjs +19 -0
- package/esm2022/lib/interface/public-api.mjs +18 -0
- package/esm2022/lib/language-menu/index.mjs +18 -0
- package/esm2022/lib/language-menu/language-menu.component.mjs +61 -0
- package/esm2022/lib/language-menu/language-menu.module.mjs +35 -0
- package/esm2022/lib/language-menu/language-picker.component.mjs +77 -0
- package/esm2022/lib/language-menu/public-api.mjs +21 -0
- package/esm2022/lib/language-menu/service/language.service.interface.mjs +18 -0
- package/esm2022/lib/language-menu/service/language.service.mjs +34 -0
- package/esm2022/lib/layout/components/header/header.component.mjs +99 -0
- package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +180 -0
- package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +82 -0
- package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +145 -0
- package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +33 -0
- package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +33 -0
- package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +33 -0
- package/esm2022/lib/layout/index.mjs +18 -0
- package/esm2022/lib/layout/layout.module.mjs +72 -0
- package/esm2022/lib/layout/public-api.mjs +25 -0
- package/esm2022/lib/login/components/login/login.component.mjs +367 -0
- package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +18 -0
- package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +57 -0
- package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +48 -0
- package/esm2022/lib/login/directives/login-footer.directive.mjs +41 -0
- package/esm2022/lib/login/directives/login-header.directive.mjs +41 -0
- package/esm2022/lib/login/index.mjs +18 -0
- package/esm2022/lib/login/login.module.mjs +54 -0
- package/esm2022/lib/login/models/login-error.event.mjs +22 -0
- package/esm2022/lib/login/models/login-submit.event.mjs +32 -0
- package/esm2022/lib/login/models/login-success.event.mjs +24 -0
- package/esm2022/lib/login/public-api.mjs +27 -0
- package/esm2022/lib/material.module.mjs +254 -0
- package/esm2022/lib/mock/cookie.service.mock.mjs +43 -0
- package/esm2022/lib/mock/data-column.mock.mjs +73 -0
- package/esm2022/lib/mock/event.mock.mjs +39 -0
- package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +225 -0
- package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +347 -0
- package/esm2022/lib/mock/form/form-definition.mock.mjs +403 -0
- package/esm2022/lib/mock/form/form.component.mock.mjs +275 -0
- package/esm2022/lib/mock/form/form.service.mock.mjs +248 -0
- package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +1835 -0
- package/esm2022/lib/mock/index.mjs +18 -0
- package/esm2022/lib/mock/public-api.mjs +27 -0
- package/esm2022/lib/mock/translation.service.mock.mjs +44 -0
- package/esm2022/lib/models/comment.model.mjs +51 -0
- package/esm2022/lib/models/component.model.mjs +24 -0
- package/esm2022/lib/models/decimal-number.model.mjs +26 -0
- package/esm2022/lib/models/general-user.model.mjs +24 -0
- package/esm2022/lib/models/index.mjs +18 -0
- package/esm2022/lib/models/pagination.model.mjs +29 -0
- package/esm2022/lib/models/path.model.mjs +24 -0
- package/esm2022/lib/models/product-version.model.mjs +28 -0
- package/esm2022/lib/models/public-api.mjs +24 -0
- package/esm2022/lib/models/request-pagination.model.mjs +25 -0
- package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +44 -0
- package/esm2022/lib/notifications/components/notification-history.component.mjs +138 -0
- package/esm2022/lib/notifications/helpers/notification.factory.mjs +43 -0
- package/esm2022/lib/notifications/index.mjs +18 -0
- package/esm2022/lib/notifications/models/notification.model.mjs +25 -0
- package/esm2022/lib/notifications/notification-history.module.mjs +35 -0
- package/esm2022/lib/notifications/public-api.mjs +23 -0
- package/esm2022/lib/notifications/services/notification.service.mjs +166 -0
- package/esm2022/lib/pagination/index.mjs +18 -0
- package/esm2022/lib/pagination/infinite-pagination.component.mjs +111 -0
- package/esm2022/lib/pagination/paginated-component.interface.mjs +18 -0
- package/esm2022/lib/pagination/pagination-component.interface.mjs +18 -0
- package/esm2022/lib/pagination/pagination.component.mjs +263 -0
- package/esm2022/lib/pagination/pagination.module.mjs +35 -0
- package/esm2022/lib/pagination/public-api.mjs +22 -0
- package/esm2022/lib/pipes/date-time.pipe.mjs +46 -0
- package/esm2022/lib/pipes/decimal-number.pipe.mjs +78 -0
- package/esm2022/lib/pipes/file-size.pipe.mjs +54 -0
- package/esm2022/lib/pipes/file-type.pipe.mjs +40 -0
- package/esm2022/lib/pipes/format-space.pipe.mjs +39 -0
- package/esm2022/lib/pipes/full-name.pipe.mjs +43 -0
- package/esm2022/lib/pipes/index.mjs +18 -0
- package/esm2022/lib/pipes/localized-date.pipe.mjs +70 -0
- package/esm2022/lib/pipes/multi-value.pipe.mjs +37 -0
- package/esm2022/lib/pipes/pipe.module.mjs +83 -0
- package/esm2022/lib/pipes/public-api.mjs +30 -0
- package/esm2022/lib/pipes/text-highlight.pipe.mjs +39 -0
- package/esm2022/lib/pipes/time-ago.pipe.mjs +65 -0
- package/esm2022/lib/pipes/truncate.pipe.mjs +33 -0
- package/esm2022/lib/pipes/user-initial.pipe.mjs +52 -0
- package/esm2022/lib/pipes/user-like.interface.mjs +18 -0
- package/esm2022/lib/progress/progress.component.mjs +90 -0
- package/esm2022/lib/search-text/animations.mjs +32 -0
- package/esm2022/lib/search-text/index.mjs +18 -0
- package/esm2022/lib/search-text/models/search-text-input.model.mjs +23 -0
- package/esm2022/lib/search-text/public-api.mjs +22 -0
- package/esm2022/lib/search-text/search-text-input.component.mjs +283 -0
- package/esm2022/lib/search-text/search-text-input.module.mjs +35 -0
- package/esm2022/lib/search-text/search-trigger.directive.mjs +181 -0
- package/esm2022/lib/snackbar-content/index.mjs +18 -0
- package/esm2022/lib/snackbar-content/public-api.mjs +20 -0
- package/esm2022/lib/snackbar-content/snack-bar-data.mjs +18 -0
- package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +49 -0
- package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +33 -0
- package/esm2022/lib/sorting-picker/index.mjs +18 -0
- package/esm2022/lib/sorting-picker/public-api.mjs +18 -0
- package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +67 -0
- package/esm2022/lib/templates/empty-content/empty-content.component.mjs +43 -0
- package/esm2022/lib/templates/error-content/error-content.component.mjs +61 -0
- package/esm2022/lib/templates/index.mjs +18 -0
- package/esm2022/lib/templates/public-api.mjs +20 -0
- package/esm2022/lib/templates/template.module.mjs +38 -0
- package/esm2022/lib/testing/core.story.module.mjs +39 -0
- package/esm2022/lib/testing/core.testing.module.mjs +35 -0
- package/esm2022/lib/testing/index.mjs +22 -0
- package/esm2022/lib/testing/noop-auth.module.mjs +80 -0
- package/esm2022/lib/testing/noop-translate.module.mjs +61 -0
- package/esm2022/lib/testing/unit-testing-utils.mjs +364 -0
- package/esm2022/lib/toolbar/index.mjs +18 -0
- package/esm2022/lib/toolbar/public-api.mjs +21 -0
- package/esm2022/lib/toolbar/toolbar-divider.component.mjs +27 -0
- package/esm2022/lib/toolbar/toolbar-title.component.mjs +32 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +39 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +36 -0
- package/esm2022/lib/translation/index.mjs +18 -0
- package/esm2022/lib/translation/public-api.mjs +19 -0
- package/esm2022/lib/translation/translate-loader.service.mjs +148 -0
- package/esm2022/lib/translation/translation.service.mjs +148 -0
- package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +36 -0
- package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +220 -0
- package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +64 -0
- package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +550 -0
- package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +60 -0
- package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +48 -0
- package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +198 -0
- package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +85 -0
- package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +32 -0
- package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +216 -0
- package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +46 -0
- package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer.component.mjs +486 -0
- package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +67 -0
- package/esm2022/lib/viewer/index.mjs +18 -0
- package/esm2022/lib/viewer/models/download-prompt.actions.mjs +23 -0
- package/esm2022/lib/viewer/models/viewer.model.mjs +22 -0
- package/esm2022/lib/viewer/public-api.mjs +40 -0
- package/esm2022/lib/viewer/services/rendering-queue.services.mjs +179 -0
- package/esm2022/lib/viewer/services/view-util.service.mjs +149 -0
- package/esm2022/lib/viewer/viewer.module.mjs +110 -0
- package/esm2022/public-api.mjs +60 -0
- package/esm2022/shell/alfresco-adf-core-shell.mjs +5 -0
- package/esm2022/shell/index.mjs +20 -0
- package/esm2022/shell/lib/components/shell/shell.component.mjs +122 -0
- package/esm2022/shell/lib/services/shell-app.service.mjs +22 -0
- package/esm2022/shell/lib/shell.module.mjs +79 -0
- package/esm2022/shell/lib/shell.routes.mjs +25 -0
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +35 -4
- package/fesm2022/adf-core.mjs +1177 -1229
- package/fesm2022/adf-core.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-api.mjs +4 -4
- package/fesm2022/alfresco-adf-core-api.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
- package/fesm2022/alfresco-adf-core-auth.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +11 -11
- package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-feature-flags.mjs +59 -52
- package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-shell.mjs +21 -96
- package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
- package/lib/app-config/app-config.module.d.ts +0 -1
- package/lib/app-config/public-api.d.ts +0 -1
- package/lib/auth/oidc/auth.module.d.ts +4 -4
- package/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.d.ts +1 -1
- package/lib/card-view/components/base-card-view.d.ts +1 -1
- package/lib/card-view/components/card-view/card-view.component.scss +9 -12
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +2 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +5 -2
- package/lib/core.module.d.ts +128 -124
- package/lib/datatable/data/data-table.schema.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm.dialog.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm.dialog.module.d.ts +6 -2
- package/lib/form/form-base.module.d.ts +0 -1
- package/lib/testing/core.testing.module.d.ts +0 -1
- package/lib/testing/noop-translate.module.d.ts +2 -1
- package/lib/translation/public-api.d.ts +0 -1
- package/package.json +15 -3
- package/public-api.d.ts +0 -1
- package/shell/README.md +6 -20
- package/shell/index.d.ts +0 -2
- package/shell/lib/shell.module.d.ts +7 -4
- package/shell/lib/shell.routes.d.ts +1 -13
- package/lib/app-config/provide-app-config.d.ts +0 -23
- package/lib/landing-page/index.d.ts +0 -17
- package/lib/landing-page/provider.d.ts +0 -24
- package/lib/landing-page/public-api.d.ts +0 -17
- package/lib/translation/provide-i18n.d.ts +0 -39
- package/shell/lib/providers.d.ts +0 -36
|
@@ -0,0 +1,189 @@
|
|
|
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 { Injectable } from '@angular/core';
|
|
18
|
+
import { AdfHttpClient } from '@alfresco/adf-core/api';
|
|
19
|
+
import { AppConfigService, AppConfigValues } from '../../app-config/app-config.service';
|
|
20
|
+
import { StorageService } from '../../common/services/storage.service';
|
|
21
|
+
import { ReplaySubject, Subject } from 'rxjs';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "../../app-config/app-config.service";
|
|
24
|
+
import * as i2 from "@alfresco/adf-core/api";
|
|
25
|
+
import * as i3 from "../../common/services/storage.service";
|
|
26
|
+
export class ContentAuth {
|
|
27
|
+
get basePath() {
|
|
28
|
+
const contextRootEcm = this.appConfigService.get(AppConfigValues.CONTEXTROOTECM) || 'alfresco';
|
|
29
|
+
return this.appConfigService.get(AppConfigValues.ECMHOST) + '/' + contextRootEcm + '/api/-default-/public/authentication/versions/1';
|
|
30
|
+
}
|
|
31
|
+
constructor(appConfigService, adfHttpClient, storageService) {
|
|
32
|
+
this.appConfigService = appConfigService;
|
|
33
|
+
this.adfHttpClient = adfHttpClient;
|
|
34
|
+
this.storageService = storageService;
|
|
35
|
+
this.onLogin = new ReplaySubject(1);
|
|
36
|
+
this.onLogout = new ReplaySubject(1);
|
|
37
|
+
this.onError = new Subject();
|
|
38
|
+
this.config = {
|
|
39
|
+
ticketEcm: null
|
|
40
|
+
};
|
|
41
|
+
this.authentications = {
|
|
42
|
+
basicAuth: {
|
|
43
|
+
ticket: ''
|
|
44
|
+
},
|
|
45
|
+
type: 'basic'
|
|
46
|
+
};
|
|
47
|
+
this.appConfigService.onLoad.subscribe(() => {
|
|
48
|
+
this.setConfig();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
setConfig() {
|
|
52
|
+
if (this.storageService.getItem(AppConfigValues.CONTENT_TICKET_STORAGE_LABEL)) {
|
|
53
|
+
this.setTicket(this.storageService.getItem(AppConfigValues.CONTENT_TICKET_STORAGE_LABEL));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
saveUsername(username) {
|
|
57
|
+
this.storageService.setItem('ACS_USERNAME', username);
|
|
58
|
+
}
|
|
59
|
+
getUsername() {
|
|
60
|
+
return this.storageService.getItem('ACS_USERNAME');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* login Alfresco API
|
|
64
|
+
*
|
|
65
|
+
* @param username username to login
|
|
66
|
+
* @param password password to login
|
|
67
|
+
* @returns A promise that returns {new authentication ticket} if resolved and {error} if rejected.
|
|
68
|
+
*/
|
|
69
|
+
login(username, password) {
|
|
70
|
+
this.authentications.basicAuth.username = username;
|
|
71
|
+
this.authentications.basicAuth.password = password;
|
|
72
|
+
const loginRequest = {};
|
|
73
|
+
loginRequest.userId = this.authentications.basicAuth.username;
|
|
74
|
+
loginRequest.password = this.authentications.basicAuth.password;
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
this.createTicket(loginRequest)
|
|
77
|
+
.then((data) => {
|
|
78
|
+
this.saveUsername(username);
|
|
79
|
+
this.setTicket(data.entry.id);
|
|
80
|
+
this.adfHttpClient.emit('success');
|
|
81
|
+
this.onLogin.next('success');
|
|
82
|
+
resolve(data.entry.id);
|
|
83
|
+
})
|
|
84
|
+
.catch((error) => {
|
|
85
|
+
this.saveUsername('');
|
|
86
|
+
if (error.status === 401) {
|
|
87
|
+
this.adfHttpClient.emit('unauthorized', error);
|
|
88
|
+
this.onError.next('unauthorized');
|
|
89
|
+
}
|
|
90
|
+
else if (error.status === 403) {
|
|
91
|
+
this.adfHttpClient.emit('forbidden', error);
|
|
92
|
+
this.onError.next('forbidden');
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.adfHttpClient.emit('error', error);
|
|
96
|
+
this.onError.next('error');
|
|
97
|
+
}
|
|
98
|
+
reject(error);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* logout Alfresco API
|
|
104
|
+
*
|
|
105
|
+
* @returns A promise that returns { authentication ticket} if resolved and {error} if rejected.
|
|
106
|
+
*/
|
|
107
|
+
logout() {
|
|
108
|
+
this.saveUsername('');
|
|
109
|
+
return new Promise((resolve, reject) => {
|
|
110
|
+
this.deleteTicket().then(() => {
|
|
111
|
+
this.invalidateSession();
|
|
112
|
+
this.adfHttpClient.emit('logout');
|
|
113
|
+
this.onLogout.next('logout');
|
|
114
|
+
resolve('logout');
|
|
115
|
+
}, (error) => {
|
|
116
|
+
if (error.status === 401) {
|
|
117
|
+
this.adfHttpClient.emit('unauthorized');
|
|
118
|
+
this.onError.next('unauthorized');
|
|
119
|
+
}
|
|
120
|
+
this.adfHttpClient.emit('error');
|
|
121
|
+
this.onError.next('error');
|
|
122
|
+
reject(error);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Set the current Ticket
|
|
128
|
+
*
|
|
129
|
+
* @param ticket a string representing the ticket
|
|
130
|
+
*/
|
|
131
|
+
setTicket(ticket) {
|
|
132
|
+
this.authentications.basicAuth.username = 'ROLE_TICKET';
|
|
133
|
+
this.authentications.basicAuth.password = ticket;
|
|
134
|
+
this.config.ticketEcm = ticket;
|
|
135
|
+
this.storageService.setItem(AppConfigValues.CONTENT_TICKET_STORAGE_LABEL, ticket);
|
|
136
|
+
this.ticket = ticket;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @returns the current Ticket
|
|
140
|
+
*/
|
|
141
|
+
getToken() {
|
|
142
|
+
if (!this.ticket) {
|
|
143
|
+
this.onError.next('error');
|
|
144
|
+
}
|
|
145
|
+
return this.ticket;
|
|
146
|
+
}
|
|
147
|
+
invalidateSession() {
|
|
148
|
+
this.storageService.removeItem(AppConfigValues.CONTENT_TICKET_STORAGE_LABEL);
|
|
149
|
+
this.authentications.basicAuth.username = null;
|
|
150
|
+
this.authentications.basicAuth.password = null;
|
|
151
|
+
this.config.ticketEcm = null;
|
|
152
|
+
this.ticket = null;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* @returns If the client is logged in return true
|
|
156
|
+
*/
|
|
157
|
+
isLoggedIn() {
|
|
158
|
+
return !!this.ticket;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @returns return the Authentication
|
|
162
|
+
*/
|
|
163
|
+
getAuthentication() {
|
|
164
|
+
return this.authentications;
|
|
165
|
+
}
|
|
166
|
+
createTicket(ticketBodyCreate) {
|
|
167
|
+
if (ticketBodyCreate === null || ticketBodyCreate === undefined) {
|
|
168
|
+
this.onError.next(`Missing param ticketBodyCreate`);
|
|
169
|
+
throw new Error(`Missing param ticketBodyCreate`);
|
|
170
|
+
}
|
|
171
|
+
return this.adfHttpClient.post(this.basePath + '/tickets', { bodyParam: ticketBodyCreate });
|
|
172
|
+
}
|
|
173
|
+
async requireAlfTicket() {
|
|
174
|
+
const ticket = await this.adfHttpClient.get(this.basePath + '/tickets/-me-');
|
|
175
|
+
this.setTicket(ticket.entry.id);
|
|
176
|
+
}
|
|
177
|
+
deleteTicket() {
|
|
178
|
+
return this.adfHttpClient.delete(this.basePath + '/tickets/-me-');
|
|
179
|
+
}
|
|
180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentAuth, deps: [{ token: i1.AppConfigService }, { token: i2.AdfHttpClient }, { token: i3.StorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
181
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentAuth, providedIn: 'root' }); }
|
|
182
|
+
}
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentAuth, decorators: [{
|
|
184
|
+
type: Injectable,
|
|
185
|
+
args: [{
|
|
186
|
+
providedIn: 'root'
|
|
187
|
+
}]
|
|
188
|
+
}], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.AdfHttpClient }, { type: i3.StorageService }] });
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgvY29udGVudC1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBa0I5QyxNQUFNLE9BQU8sV0FBVztJQWlCcEIsSUFBSSxRQUFRO1FBQ1IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBUyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksVUFBVSxDQUFDO1FBQ3ZHLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBUyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLGNBQWMsR0FBRyxpREFBaUQsQ0FBQztJQUNqSixDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxjQUE4QjtRQUFoSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFyQnBJLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksT0FB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aEMsQ0FBQztJQUVELFlBQVksQ0FBQyxnQkFBNEI7UUFDckMsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUVwRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0EvS1EsV0FBVzttSEFBWCxXQUFXLGNBRlIsTUFBTTs7NEZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZkh0dHBDbGllbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXBpJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEFwcENvbmZpZ1ZhbHVlcyB9IGZyb20gJy4uLy4uL2FwcC1jb25maWcvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvYXV0aGVudGljYXRpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBUaWNrZXRCb2R5IHtcbiAgICB1c2VySWQ/OiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0RW50cnkge1xuICAgIGVudHJ5OiB7XG4gICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICB1c2VySWQ/OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50QXV0aCB7XG4gICAgb25Mb2dpbiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gICAgb25Mb2dvdXQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuICAgIG9uRXJyb3IgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICB0aWNrZXQ6IHN0cmluZztcbiAgICBjb25maWcgPSB7XG4gICAgICAgIHRpY2tldEVjbTogbnVsbFxuICAgIH07XG5cbiAgICBhdXRoZW50aWNhdGlvbnM6IEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICBiYXNpY0F1dGg6IHtcbiAgICAgICAgICAgIHRpY2tldDogJydcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogJ2Jhc2ljJ1xuICAgIH07XG5cbiAgICBnZXQgYmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29udGV4dFJvb3RFY20gPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0PHN0cmluZz4oQXBwQ29uZmlnVmFsdWVzLkNPTlRFWFRST09URUNNKSB8fCAnYWxmcmVzY28nO1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxzdHJpbmc+KEFwcENvbmZpZ1ZhbHVlcy5FQ01IT1NUKSArICcvJyArIGNvbnRleHRSb290RWNtICsgJy9hcGkvLWRlZmF1bHQtL3B1YmxpYy9hdXRoZW50aWNhdGlvbi92ZXJzaW9ucy8xJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsIHByaXZhdGUgYWRmSHR0cENsaWVudDogQWRmSHR0cENsaWVudCwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLm9uTG9hZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDb25maWcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb25maWcoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oQXBwQ29uZmlnVmFsdWVzLkNPTlRFTlRfVElDS0VUX1NUT1JBR0VfTEFCRUwpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFRpY2tldCh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oQXBwQ29uZmlnVmFsdWVzLkNPTlRFTlRfVElDS0VUX1NUT1JBR0VfTEFCRUwpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNhdmVVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnQUNTX1VTRVJOQU1FJywgdXNlcm5hbWUpO1xuICAgIH1cblxuICAgIGdldFVzZXJuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCdBQ1NfVVNFUk5BTUUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2dpbiBBbGZyZXNjbyBBUElcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSB1c2VybmFtZSB0byBsb2dpblxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBwYXNzd29yZCB0byBsb2dpblxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJldHVybnMge25ldyBhdXRoZW50aWNhdGlvbiB0aWNrZXR9IGlmIHJlc29sdmVkIGFuZCB7ZXJyb3J9IGlmIHJlamVjdGVkLlxuICAgICAqL1xuICAgIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgudXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnBhc3N3b3JkID0gcGFzc3dvcmQ7XG5cbiAgICAgICAgY29uc3QgbG9naW5SZXF1ZXN0OiBhbnkgPSB7fTtcblxuICAgICAgICBsb2dpblJlcXVlc3QudXNlcklkID0gdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnVzZXJuYW1lO1xuICAgICAgICBsb2dpblJlcXVlc3QucGFzc3dvcmQgPSB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgucGFzc3dvcmQ7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlVGlja2V0KGxvZ2luUmVxdWVzdClcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVVzZXJuYW1lKHVzZXJuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUaWNrZXQoZGF0YS5lbnRyeS5pZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRmSHR0cENsaWVudC5lbWl0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YS5lbnRyeS5pZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVVzZXJuYW1lKCcnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgndW5hdXRob3JpemVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgnZm9yYmlkZGVuJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2ZvcmJpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGZIdHRwQ2xpZW50LmVtaXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9nb3V0IEFsZnJlc2NvIEFQSVxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmV0dXJucyB7IGF1dGhlbnRpY2F0aW9uIHRpY2tldH0gaWYgcmVzb2x2ZWQgYW5kIHtlcnJvcn0gaWYgcmVqZWN0ZWQuXG4gICAgICovXG4gICAgbG9nb3V0KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJuYW1lKCcnKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlVGlja2V0KCkudGhlbihcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZGF0ZVNlc3Npb24oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGZIdHRwQ2xpZW50LmVtaXQoJ2xvZ291dCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9nb3V0Lm5leHQoJ2xvZ291dCcpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCdsb2dvdXQnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRmSHR0cENsaWVudC5lbWl0KCd1bmF1dGhvcml6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCd1bmF1dGhvcml6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IFRpY2tldFxuICAgICAqXG4gICAgICogQHBhcmFtIHRpY2tldCBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHRpY2tldFxuICAgICAqL1xuICAgIHNldFRpY2tldCh0aWNrZXQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgudXNlcm5hbWUgPSAnUk9MRV9USUNLRVQnO1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgucGFzc3dvcmQgPSB0aWNrZXQ7XG4gICAgICAgIHRoaXMuY29uZmlnLnRpY2tldEVjbSA9IHRpY2tldDtcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKEFwcENvbmZpZ1ZhbHVlcy5DT05URU5UX1RJQ0tFVF9TVE9SQUdFX0xBQkVMLCB0aWNrZXQpO1xuICAgICAgICB0aGlzLnRpY2tldCA9IHRpY2tldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgY3VycmVudCBUaWNrZXRcbiAgICAgKi9cbiAgICBnZXRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMudGlja2V0KSB7XG4gICAgICAgICAgICB0aGlzLm9uRXJyb3IubmV4dCgnZXJyb3InKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRpY2tldDtcbiAgICB9XG5cbiAgICBpbnZhbGlkYXRlU2Vzc2lvbigpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKEFwcENvbmZpZ1ZhbHVlcy5DT05URU5UX1RJQ0tFVF9TVE9SQUdFX0xBQkVMKTtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnVzZXJuYW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnBhc3N3b3JkID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb25maWcudGlja2V0RWNtID0gbnVsbDtcbiAgICAgICAgdGhpcy50aWNrZXQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIElmIHRoZSBjbGllbnQgaXMgbG9nZ2VkIGluIHJldHVybiB0cnVlXG4gICAgICovXG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50aWNrZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgcmV0dXJuIHRoZSBBdXRoZW50aWNhdGlvblxuICAgICAqL1xuICAgIGdldEF1dGhlbnRpY2F0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlVGlja2V0KHRpY2tldEJvZHlDcmVhdGU6IFRpY2tldEJvZHkpOiBQcm9taXNlPFRpY2tldEVudHJ5PiB7XG4gICAgICAgIGlmICh0aWNrZXRCb2R5Q3JlYXRlID09PSBudWxsIHx8IHRpY2tldEJvZHlDcmVhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoYE1pc3NpbmcgcGFyYW0gdGlja2V0Qm9keUNyZWF0ZWApO1xuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcGFyYW0gdGlja2V0Qm9keUNyZWF0ZWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRmSHR0cENsaWVudC5wb3N0KHRoaXMuYmFzZVBhdGggKyAnL3RpY2tldHMnLCB7IGJvZHlQYXJhbTogdGlja2V0Qm9keUNyZWF0ZSB9KTtcbiAgICB9XG5cbiAgICBhc3luYyByZXF1aXJlQWxmVGlja2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0aWNrZXQgPSBhd2FpdCB0aGlzLmFkZkh0dHBDbGllbnQuZ2V0KHRoaXMuYmFzZVBhdGggKyAnL3RpY2tldHMvLW1lLScpO1xuICAgICAgICB0aGlzLnNldFRpY2tldCh0aWNrZXQuZW50cnkuaWQpO1xuICAgIH1cblxuICAgIGRlbGV0ZVRpY2tldCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGZIdHRwQ2xpZW50LmRlbGV0ZSh0aGlzLmJhc2VQYXRoICsgJy90aWNrZXRzLy1tZS0nKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,193 @@
|
|
|
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 { Injectable } from '@angular/core';
|
|
18
|
+
import { AdfHttpClient } from '@alfresco/adf-core/api';
|
|
19
|
+
import { AppConfigService, AppConfigValues } from '../../app-config/app-config.service';
|
|
20
|
+
import { StorageService } from '../../common/services/storage.service';
|
|
21
|
+
import { ReplaySubject, Subject } from 'rxjs';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "../../app-config/app-config.service";
|
|
24
|
+
import * as i2 from "@alfresco/adf-core/api";
|
|
25
|
+
import * as i3 from "../../common/services/storage.service";
|
|
26
|
+
export class ProcessAuth {
|
|
27
|
+
get basePath() {
|
|
28
|
+
const contextRootBpm = this.appConfigService.get(AppConfigValues.CONTEXTROOTBPM) || 'activiti-app';
|
|
29
|
+
return this.appConfigService.get(AppConfigValues.BPMHOST) + '/' + contextRootBpm;
|
|
30
|
+
}
|
|
31
|
+
constructor(appConfigService, adfHttpClient, storageService) {
|
|
32
|
+
this.appConfigService = appConfigService;
|
|
33
|
+
this.adfHttpClient = adfHttpClient;
|
|
34
|
+
this.storageService = storageService;
|
|
35
|
+
this.onLogin = new ReplaySubject(1);
|
|
36
|
+
this.onLogout = new ReplaySubject(1);
|
|
37
|
+
this.onError = new Subject();
|
|
38
|
+
this.config = {
|
|
39
|
+
ticketBpm: null
|
|
40
|
+
};
|
|
41
|
+
this.authentications = {
|
|
42
|
+
basicAuth: { ticket: '' },
|
|
43
|
+
type: 'activiti'
|
|
44
|
+
};
|
|
45
|
+
this.appConfigService.onLoad.subscribe(() => {
|
|
46
|
+
this.setConfig();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
setConfig() {
|
|
50
|
+
this.ticket = undefined;
|
|
51
|
+
this.setTicket(this.storageService.getItem(AppConfigValues.PROCESS_TICKET_STORAGE_LABEL));
|
|
52
|
+
}
|
|
53
|
+
saveUsername(username) {
|
|
54
|
+
this.storageService.setItem('APS_USERNAME', username);
|
|
55
|
+
}
|
|
56
|
+
getUsername() {
|
|
57
|
+
return this.storageService.getItem('APS_USERNAME');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* login Activiti API
|
|
61
|
+
*
|
|
62
|
+
* @param username Username to login
|
|
63
|
+
* @param password Password to login
|
|
64
|
+
* @returns A promise that returns {new authentication ticket} if resolved and {error} if rejected.
|
|
65
|
+
*/
|
|
66
|
+
login(username, password) {
|
|
67
|
+
this.authentications.basicAuth.username = username;
|
|
68
|
+
this.authentications.basicAuth.password = password;
|
|
69
|
+
const options = {
|
|
70
|
+
headerParams: {
|
|
71
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
72
|
+
'Cache-Control': 'no-cache'
|
|
73
|
+
},
|
|
74
|
+
formParams: {
|
|
75
|
+
j_username: this.authentications.basicAuth.username,
|
|
76
|
+
j_password: this.authentications.basicAuth.password,
|
|
77
|
+
_spring_security_remember_me: true,
|
|
78
|
+
submit: 'Login'
|
|
79
|
+
},
|
|
80
|
+
contentType: 'application/x-www-form-urlencoded',
|
|
81
|
+
accept: 'application/json'
|
|
82
|
+
};
|
|
83
|
+
const promise = new Promise((resolve, reject) => {
|
|
84
|
+
this.adfHttpClient.post(this.basePath + '/app/authentication', options).then(() => {
|
|
85
|
+
this.saveUsername(username);
|
|
86
|
+
const ticket = this.basicAuth(this.authentications.basicAuth.username, this.authentications.basicAuth.password);
|
|
87
|
+
this.setTicket(ticket);
|
|
88
|
+
this.onLogin.next('success');
|
|
89
|
+
this.adfHttpClient.emit('success');
|
|
90
|
+
this.adfHttpClient.emit('logged-in');
|
|
91
|
+
resolve(ticket);
|
|
92
|
+
}, (error) => {
|
|
93
|
+
this.saveUsername('');
|
|
94
|
+
if (error.status === 401) {
|
|
95
|
+
this.adfHttpClient.emit('unauthorized', error);
|
|
96
|
+
this.onError.next('unauthorized');
|
|
97
|
+
}
|
|
98
|
+
else if (error.status === 403) {
|
|
99
|
+
this.adfHttpClient.emit('forbidden', error);
|
|
100
|
+
this.onError.next('forbidden');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.adfHttpClient.emit('error', error);
|
|
104
|
+
this.onError.next('error');
|
|
105
|
+
}
|
|
106
|
+
reject(error);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
return promise;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* logout Alfresco API
|
|
113
|
+
*
|
|
114
|
+
* @returns A promise that returns {new authentication ticket} if resolved and {error} if rejected.
|
|
115
|
+
*/
|
|
116
|
+
async logout() {
|
|
117
|
+
this.saveUsername('');
|
|
118
|
+
return new Promise((resolve, reject) => {
|
|
119
|
+
this.adfHttpClient.get(this.basePath + `/app/logout`, {}).then(() => {
|
|
120
|
+
this.invalidateSession();
|
|
121
|
+
this.onLogout.next('logout');
|
|
122
|
+
this.adfHttpClient.emit('logout');
|
|
123
|
+
resolve('logout');
|
|
124
|
+
}, (error) => {
|
|
125
|
+
if (error.status === 401) {
|
|
126
|
+
this.adfHttpClient.emit('unauthorized');
|
|
127
|
+
this.onError.next('unauthorized');
|
|
128
|
+
}
|
|
129
|
+
this.adfHttpClient.emit('error');
|
|
130
|
+
this.onError.next('error');
|
|
131
|
+
reject(error);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
basicAuth(username, password) {
|
|
136
|
+
const str = username + ':' + password;
|
|
137
|
+
let base64;
|
|
138
|
+
if (typeof Buffer === 'function') {
|
|
139
|
+
base64 = Buffer.from(str.toString(), 'binary').toString('base64');
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
base64 = btoa(str);
|
|
143
|
+
}
|
|
144
|
+
return `Basic ${base64}`;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Set the current Ticket
|
|
148
|
+
*
|
|
149
|
+
* @param ticket a string representing the ticket
|
|
150
|
+
*/
|
|
151
|
+
setTicket(ticket) {
|
|
152
|
+
if (ticket && ticket !== 'null') {
|
|
153
|
+
this.authentications.basicAuth.ticket = ticket;
|
|
154
|
+
this.authentications.basicAuth.password = null;
|
|
155
|
+
this.config.ticketBpm = ticket;
|
|
156
|
+
this.storageService.setItem(AppConfigValues.PROCESS_TICKET_STORAGE_LABEL, ticket);
|
|
157
|
+
this.ticket = ticket;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
invalidateSession() {
|
|
161
|
+
this.storageService.removeItem(AppConfigValues.PROCESS_TICKET_STORAGE_LABEL);
|
|
162
|
+
this.authentications.basicAuth.ticket = null;
|
|
163
|
+
this.authentications.basicAuth.password = null;
|
|
164
|
+
this.authentications.basicAuth.username = null;
|
|
165
|
+
this.config.ticketBpm = null;
|
|
166
|
+
this.ticket = null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* @returns the current Ticket
|
|
170
|
+
*/
|
|
171
|
+
getToken() {
|
|
172
|
+
if (!this.ticket) {
|
|
173
|
+
this.onError.next('error');
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
return this.ticket;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* @returns If the client is logged in return true
|
|
180
|
+
*/
|
|
181
|
+
isLoggedIn() {
|
|
182
|
+
return !!this.ticket;
|
|
183
|
+
}
|
|
184
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessAuth, deps: [{ token: i1.AppConfigService }, { token: i2.AdfHttpClient }, { token: i3.StorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
185
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessAuth, providedIn: 'root' }); }
|
|
186
|
+
}
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessAuth, decorators: [{
|
|
188
|
+
type: Injectable,
|
|
189
|
+
args: [{
|
|
190
|
+
providedIn: 'root'
|
|
191
|
+
}]
|
|
192
|
+
}], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.AdfHttpClient }, { type: i3.StorageService }] });
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgvcHJvY2Vzcy1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBSzlDLE1BQU0sT0FBTyxXQUFXO0lBZXBCLElBQUksUUFBUTtRQUNSLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQVMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLGNBQWMsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQVMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxjQUFjLENBQUM7SUFDN0YsQ0FBQztJQUVELFlBQW9CLGdCQUFrQyxFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFBaEgscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbkJwSSxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FB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b3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkZkh0dHBDbGllbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXBpJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hdXRoZW50aWNhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgQXBwQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vLi4vYXBwLWNvbmZpZy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzQXV0aCB7XG4gICAgb25Mb2dpbiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gICAgb25Mb2dvdXQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuICAgIG9uRXJyb3IgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICB0aWNrZXQ6IHN0cmluZztcbiAgICBjb25maWcgPSB7XG4gICAgICAgIHRpY2tldEJwbTogbnVsbFxuICAgIH07XG5cbiAgICBhdXRoZW50aWNhdGlvbnM6IEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICBiYXNpY0F1dGg6IHsgdGlja2V0OiAnJyB9LFxuICAgICAgICB0eXBlOiAnYWN0aXZpdGknXG4gICAgfTtcblxuICAgIGdldCBiYXNlUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb250ZXh0Um9vdEJwbSA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQ8c3RyaW5nPihBcHBDb25maWdWYWx1ZXMuQ09OVEVYVFJPT1RCUE0pIHx8ICdhY3Rpdml0aS1hcHAnO1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxzdHJpbmc+KEFwcENvbmZpZ1ZhbHVlcy5CUE1IT1NUKSArICcvJyArIGNvbnRleHRSb290QnBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSwgcHJpdmF0ZSBhZGZIdHRwQ2xpZW50OiBBZGZIdHRwQ2xpZW50LCBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSkge1xuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2Uub25Mb2FkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENvbmZpZygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbmZpZygpIHtcbiAgICAgICAgdGhpcy50aWNrZXQgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5zZXRUaWNrZXQodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKEFwcENvbmZpZ1ZhbHVlcy5QUk9DRVNTX1RJQ0tFVF9TVE9SQUdFX0xBQkVMKSk7XG4gICAgfVxuXG4gICAgc2F2ZVVzZXJuYW1lKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdBUFNfVVNFUk5BTUUnLCB1c2VybmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0VXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ0FQU19VU0VSTkFNRScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvZ2luIEFjdGl2aXRpIEFQSVxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIHRvIGxvZ2luXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIHRvIGxvZ2luXG4gICAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmV0dXJucyB7bmV3IGF1dGhlbnRpY2F0aW9uIHRpY2tldH0gaWYgcmVzb2x2ZWQgYW5kIHtlcnJvcn0gaWYgcmVqZWN0ZWQuXG4gICAgICovXG4gICAgbG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25zLmJhc2ljQXV0aC51c2VybmFtZSA9IHVzZXJuYW1lO1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgucGFzc3dvcmQgPSBwYXNzd29yZDtcblxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJzogJ25vLWNhY2hlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvcm1QYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBqX3VzZXJuYW1lOiB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgal9wYXNzd29yZDogdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnBhc3N3b3JkLFxuICAgICAgICAgICAgICAgIF9zcHJpbmdfc2VjdXJpdHlfcmVtZW1iZXJfbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VibWl0OiAnTG9naW4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgICAgYWNjZXB0OiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwcm9taXNlOiBhbnkgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQucG9zdCh0aGlzLmJhc2VQYXRoICsgJy9hcHAvYXV0aGVudGljYXRpb24nLCBvcHRpb25zKS50aGVuKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZlVXNlcm5hbWUodXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aWNrZXQgPSB0aGlzLmJhc2ljQXV0aCh0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgudXNlcm5hbWUsIHRoaXMuYXV0aGVudGljYXRpb25zLmJhc2ljQXV0aC5wYXNzd29yZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGlja2V0KHRpY2tldCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbi5uZXh0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRmSHR0cENsaWVudC5lbWl0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRmSHR0cENsaWVudC5lbWl0KCdsb2dnZWQtaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aWNrZXQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVVzZXJuYW1lKCcnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgndW5hdXRob3JpemVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgnZm9yYmlkZGVuJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2ZvcmJpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGZIdHRwQ2xpZW50LmVtaXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yLm5leHQoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2dvdXQgQWxmcmVzY28gQVBJXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXR1cm5zIHtuZXcgYXV0aGVudGljYXRpb24gdGlja2V0fSBpZiByZXNvbHZlZCBhbmQge2Vycm9yfSBpZiByZWplY3RlZC5cbiAgICAgKi9cbiAgICBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgdGhpcy5zYXZlVXNlcm5hbWUoJycpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGZIdHRwQ2xpZW50LmdldCh0aGlzLmJhc2VQYXRoICsgYC9hcHAvbG9nb3V0YCwge30pLnRoZW4oXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRhdGVTZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dvdXQubmV4dCgnbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRmSHR0cENsaWVudC5lbWl0KCdsb2dvdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgnbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZkh0dHBDbGllbnQuZW1pdCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IubmV4dCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGZIdHRwQ2xpZW50LmVtaXQoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGJhc2ljQXV0aCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3RyOiBhbnkgPSB1c2VybmFtZSArICc6JyArIHBhc3N3b3JkO1xuXG4gICAgICAgIGxldCBiYXNlNjQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBCdWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGJhc2U2NCA9IEJ1ZmZlci5mcm9tKHN0ci50b1N0cmluZygpLCAnYmluYXJ5JykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmFzZTY0ID0gYnRvYShzdHIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGBCYXNpYyAke2Jhc2U2NH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBUaWNrZXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aWNrZXQgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0aWNrZXRcbiAgICAgKi9cbiAgICBzZXRUaWNrZXQodGlja2V0OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRpY2tldCAmJiB0aWNrZXQgIT09ICdudWxsJykge1xuICAgICAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnRpY2tldCA9IHRpY2tldDtcbiAgICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25zLmJhc2ljQXV0aC5wYXNzd29yZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aWNrZXRCcG0gPSB0aWNrZXQ7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQXBwQ29uZmlnVmFsdWVzLlBST0NFU1NfVElDS0VUX1NUT1JBR0VfTEFCRUwsIHRpY2tldCk7XG4gICAgICAgICAgICB0aGlzLnRpY2tldCA9IHRpY2tldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGludmFsaWRhdGVTZXNzaW9uKCkge1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oQXBwQ29uZmlnVmFsdWVzLlBST0NFU1NfVElDS0VUX1NUT1JBR0VfTEFCRUwpO1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucy5iYXNpY0F1dGgudGlja2V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnBhc3N3b3JkID0gbnVsbDtcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMuYmFzaWNBdXRoLnVzZXJuYW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb25maWcudGlja2V0QnBtID0gbnVsbDtcbiAgICAgICAgdGhpcy50aWNrZXQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IFRpY2tldFxuICAgICAqL1xuICAgIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy50aWNrZXQpIHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvci5uZXh0KCdlcnJvcicpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50aWNrZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgSWYgdGhlIGNsaWVudCBpcyBsb2dnZWQgaW4gcmV0dXJuIHRydWVcbiAgICAgKi9cbiAgICBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRpY2tldDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { inject } from '@angular/core';
|
|
18
|
+
import { AuthenticationService } from '../services/authentication.service';
|
|
19
|
+
import { AuthGuardService } from './auth-guard.service';
|
|
20
|
+
export const AuthGuardBpm = async (_, state) => {
|
|
21
|
+
const authGuardBaseService = inject(AuthGuardService);
|
|
22
|
+
const authenticationService = inject(AuthenticationService);
|
|
23
|
+
if (authenticationService.isLoggedIn() && authenticationService.isOauth() && authGuardBaseService.isLoginFragmentPresent()) {
|
|
24
|
+
return authGuardBaseService.redirectSSOSuccessURL();
|
|
25
|
+
}
|
|
26
|
+
if (authenticationService.isBpmLoggedIn() || authGuardBaseService.withCredentials) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return authGuardBaseService.redirectToUrl(state.url);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC1icG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXV0aC9ndWFyZC9hdXRoLWd1YXJkLWJwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQixLQUFLLEVBQUUsQ0FBeUIsRUFBRSxLQUEwQixFQUFvQixFQUFFO0lBQ3pILE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU1RCxJQUFJLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUN6SCxPQUFPLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsYUFBYSxFQUFFLElBQUksb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZFNlcnZpY2UgfSBmcm9tICcuL2F1dGgtZ3VhcmQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRoR3VhcmRCcG06IENhbkFjdGl2YXRlRm4gPSBhc3luYyAoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCBhdXRoR3VhcmRCYXNlU2VydmljZSA9IGluamVjdChBdXRoR3VhcmRTZXJ2aWNlKTtcbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcblxuICAgIGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpICYmIGF1dGhlbnRpY2F0aW9uU2VydmljZS5pc09hdXRoKCkgJiYgYXV0aEd1YXJkQmFzZVNlcnZpY2UuaXNMb2dpbkZyYWdtZW50UHJlc2VudCgpKSB7XG4gICAgICAgIHJldHVybiBhdXRoR3VhcmRCYXNlU2VydmljZS5yZWRpcmVjdFNTT1N1Y2Nlc3NVUkwoKTtcbiAgICB9XG5cbiAgICBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQnBtTG9nZ2VkSW4oKSB8fCBhdXRoR3VhcmRCYXNlU2VydmljZS53aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF1dGhHdWFyZEJhc2VTZXJ2aWNlLnJlZGlyZWN0VG9Vcmwoc3RhdGUudXJsKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { AuthenticationService } from '../services/authentication.service';
|
|
18
|
+
import { AuthGuardService } from './auth-guard.service';
|
|
19
|
+
import { inject } from '@angular/core';
|
|
20
|
+
export const AuthGuardEcm = async (_, state) => {
|
|
21
|
+
const authGuardBaseService = inject(AuthGuardService);
|
|
22
|
+
const authenticationService = inject(AuthenticationService);
|
|
23
|
+
if (authenticationService.isLoggedIn() && authenticationService.isOauth() && authGuardBaseService.isLoginFragmentPresent()) {
|
|
24
|
+
return authGuardBaseService.redirectSSOSuccessURL();
|
|
25
|
+
}
|
|
26
|
+
if (authenticationService.isEcmLoggedIn() || authGuardBaseService.withCredentials) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return authGuardBaseService.redirectToUrl(state.url);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC1lY20uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXV0aC9ndWFyZC9hdXRoLWd1YXJkLWVjbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUdILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQixLQUFLLEVBQUUsQ0FBeUIsRUFBRSxLQUEwQixFQUFvQixFQUFFO0lBQ3pILE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU1RCxJQUFJLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUN6SCxPQUFPLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsYUFBYSxFQUFFLElBQUksb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sb0JBQW9CLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoR3VhcmRTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBdXRoR3VhcmRFY206IENhbkFjdGl2YXRlRm4gPSBhc3luYyAoXzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCBhdXRoR3VhcmRCYXNlU2VydmljZSA9IGluamVjdChBdXRoR3VhcmRTZXJ2aWNlKTtcbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcblxuICAgIGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNMb2dnZWRJbigpICYmIGF1dGhlbnRpY2F0aW9uU2VydmljZS5pc09hdXRoKCkgJiYgYXV0aEd1YXJkQmFzZVNlcnZpY2UuaXNMb2dpbkZyYWdtZW50UHJlc2VudCgpKSB7XG4gICAgICAgIHJldHVybiBhdXRoR3VhcmRCYXNlU2VydmljZS5yZWRpcmVjdFNTT1N1Y2Nlc3NVUkwoKTtcbiAgICB9XG5cbiAgICBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzRWNtTG9nZ2VkSW4oKSB8fCBhdXRoR3VhcmRCYXNlU2VydmljZS53aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF1dGhHdWFyZEJhc2VTZXJ2aWNlLnJlZGlyZWN0VG9Vcmwoc3RhdGUudXJsKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
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 { inject } from '@angular/core';
|
|
18
|
+
import { Router } from '@angular/router';
|
|
19
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
20
|
+
import { UserAccessService } from '../services/user-access.service';
|
|
21
|
+
export const AuthGuardSsoRoleService = (route) => {
|
|
22
|
+
const userAccessService = inject(UserAccessService);
|
|
23
|
+
userAccessService.fetchUserAccess();
|
|
24
|
+
let hasRealmRole = false;
|
|
25
|
+
let hasClientRole = true;
|
|
26
|
+
if (route.data) {
|
|
27
|
+
if (route.data['roles']) {
|
|
28
|
+
const rolesToCheck = route.data['roles'];
|
|
29
|
+
if (rolesToCheck.length === 0) {
|
|
30
|
+
hasRealmRole = true;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const excludedRoles = route.data['excludedRoles'] || [];
|
|
34
|
+
if (excludedRoles?.length > 0) {
|
|
35
|
+
hasRealmRole = userAccessService.hasGlobalAccess(rolesToCheck) && !userAccessService.hasGlobalAccess(excludedRoles);
|
|
36
|
+
}
|
|
37
|
+
hasRealmRole = userAccessService.hasGlobalAccess(rolesToCheck);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (route.data['clientRoles']) {
|
|
41
|
+
const clientRoleName = route.params[route.data['clientRoles']];
|
|
42
|
+
const rolesToCheck = route.data['roles'];
|
|
43
|
+
hasClientRole = userAccessService.hasApplicationAccess(clientRoleName, rolesToCheck);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const hasRole = hasRealmRole && hasClientRole;
|
|
47
|
+
if (!hasRole && route?.data?.['redirectUrl']) {
|
|
48
|
+
const router = inject(Router);
|
|
49
|
+
router.navigate(['/' + route.data['redirectUrl']]);
|
|
50
|
+
}
|
|
51
|
+
if (!hasRole) {
|
|
52
|
+
const dialog = inject(MatDialog);
|
|
53
|
+
dialog.closeAll();
|
|
54
|
+
}
|
|
55
|
+
return hasRole;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC1zc28tcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL2d1YXJkL2F1dGgtZ3VhcmQtc3NvLXJvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBeUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFrQixDQUFDLEtBQTZCLEVBQVcsRUFBRTtJQUM3RixNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO0lBRXBDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztJQUN6QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDekIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLFlBQVksR0FBYSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hELElBQUksYUFBYSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsWUFBWSxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDeEgsQ0FBQztnQkFDRCxZQUFZLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDL0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxhQUFhLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsWUFBWSxJQUFJLGFBQWEsQ0FBQztJQUU5QyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDWCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVc2VyQWNjZXNzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItYWNjZXNzLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgQXV0aEd1YXJkU3NvUm9sZVNlcnZpY2U6IENhbkFjdGl2YXRlRm4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCB1c2VyQWNjZXNzU2VydmljZSA9IGluamVjdChVc2VyQWNjZXNzU2VydmljZSk7XG4gICAgdXNlckFjY2Vzc1NlcnZpY2UuZmV0Y2hVc2VyQWNjZXNzKCk7XG5cbiAgICBsZXQgaGFzUmVhbG1Sb2xlID0gZmFsc2U7XG4gICAgbGV0IGhhc0NsaWVudFJvbGUgPSB0cnVlO1xuICAgIGlmIChyb3V0ZS5kYXRhKSB7XG4gICAgICAgIGlmIChyb3V0ZS5kYXRhWydyb2xlcyddKSB7XG4gICAgICAgICAgICBjb25zdCByb2xlc1RvQ2hlY2s6IHN0cmluZ1tdID0gcm91dGUuZGF0YVsncm9sZXMnXTtcbiAgICAgICAgICAgIGlmIChyb2xlc1RvQ2hlY2subGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaGFzUmVhbG1Sb2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhjbHVkZWRSb2xlcyA9IHJvdXRlLmRhdGFbJ2V4Y2x1ZGVkUm9sZXMnXSB8fCBbXTtcbiAgICAgICAgICAgICAgICBpZiAoZXhjbHVkZWRSb2xlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBoYXNSZWFsbVJvbGUgPSB1c2VyQWNjZXNzU2VydmljZS5oYXNHbG9iYWxBY2Nlc3Mocm9sZXNUb0NoZWNrKSAmJiAhdXNlckFjY2Vzc1NlcnZpY2UuaGFzR2xvYmFsQWNjZXNzKGV4Y2x1ZGVkUm9sZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoYXNSZWFsbVJvbGUgPSB1c2VyQWNjZXNzU2VydmljZS5oYXNHbG9iYWxBY2Nlc3Mocm9sZXNUb0NoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyb3V0ZS5kYXRhWydjbGllbnRSb2xlcyddKSB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnRSb2xlTmFtZSA9IHJvdXRlLnBhcmFtc1tyb3V0ZS5kYXRhWydjbGllbnRSb2xlcyddXTtcbiAgICAgICAgICAgIGNvbnN0IHJvbGVzVG9DaGVjayA9IHJvdXRlLmRhdGFbJ3JvbGVzJ107XG4gICAgICAgICAgICBoYXNDbGllbnRSb2xlID0gdXNlckFjY2Vzc1NlcnZpY2UuaGFzQXBwbGljYXRpb25BY2Nlc3MoY2xpZW50Um9sZU5hbWUsIHJvbGVzVG9DaGVjayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGFzUm9sZSA9IGhhc1JlYWxtUm9sZSAmJiBoYXNDbGllbnRSb2xlO1xuXG4gICAgaWYgKCFoYXNSb2xlICYmIHJvdXRlPy5kYXRhPy5bJ3JlZGlyZWN0VXJsJ10pIHtcbiAgICAgICAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgICAgIHJvdXRlci5uYXZpZ2F0ZShbJy8nICsgcm91dGUuZGF0YVsncmVkaXJlY3RVcmwnXV0pO1xuICAgIH1cblxuICAgIGlmICghaGFzUm9sZSkge1xuICAgICAgICBjb25zdCBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgICAgICAgZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc1JvbGU7XG59O1xuIl19
|