@alfresco/adf-core 8.1.0-16295248176 → 8.1.0-16342534841
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/assets/adf-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/provide-app-config.mjs +44 -0
- package/esm2022/lib/app-config/public-api.mjs +23 -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 +296 -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 +75 -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 +36 -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 +75 -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 +153 -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 +21 -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 +75 -0
- package/esm2022/shell/lib/shell.routes.mjs +50 -0
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +35 -4
- package/fesm2022/adf-core.mjs +1083 -1101
- 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 +14 -68
- package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
- package/lib/app-config/provide-app-config.d.ts +2 -2
- 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/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/components/form-renderer.component.scss +4 -5
- 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 +3 -13
- package/shell/index.d.ts +0 -1
- package/shell/lib/shell.module.d.ts +1 -1
- 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
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Zurücksetzen",
|
|
454
454
|
"THUMBNAILS": "Dokumenten-Miniaturansichten",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Miniaturansichten-Fenster schließen",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "Angezeigt",
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Reiniciar",
|
|
454
454
|
"THUMBNAILS": "Miniaturas de documento",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Cerrar panel de miniaturas",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "Mostrando",
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Réinitialiser",
|
|
454
454
|
"THUMBNAILS": "Miniatures des documents",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Fermer le panneau des miniatures",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "Affichage en cours",
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Reimposta",
|
|
454
454
|
"THUMBNAILS": "Miniature documento",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Chiudi pannello miniature",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "Visualizzazione di",
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Resetuj",
|
|
454
454
|
"THUMBNAILS": "Miniatura dokumentu",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Zamknij panel miniatur",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "Wyświetlanie",
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"RESET": "Redefinir",
|
|
454
454
|
"THUMBNAILS": "Miniaturas do documento",
|
|
455
455
|
"THUMBNAILS_PANLEL_CLOSE": "Fechar painel de miniaturas",
|
|
456
|
-
"LOADING": "
|
|
456
|
+
"LOADING": "Document is loading"
|
|
457
457
|
},
|
|
458
458
|
"PAGE_LABEL": {
|
|
459
459
|
"SHOWING": "A mostrar",
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvYWRmLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tYWRmLWNvcmUtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvYXBpL3NyYy9hbGZyZXNjby1hZGYtY29yZS1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './lib/types';
|
|
18
|
+
export * from './lib/adf-http-client.service';
|
|
19
|
+
export * from './lib/interfaces';
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hcGkvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWRmLWh0dHAtY2xpZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG4iXX0=
|
|
@@ -0,0 +1,311 @@
|
|
|
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 { SHOULD_ADD_AUTH_TOKEN } from '@alfresco/adf-core/auth';
|
|
18
|
+
import { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
19
|
+
import { Injectable } from '@angular/core';
|
|
20
|
+
import { of, Subject, throwError } from 'rxjs';
|
|
21
|
+
import { catchError, map, takeUntil } from 'rxjs/operators';
|
|
22
|
+
import { convertObjectToFormData, getQueryParamsWithCustomEncoder, isBlobResponse, isConstructor, isHttpResponseEvent, isHttpUploadProgressEvent, removeNilValues } from './alfresco-api/alfresco-api.utils';
|
|
23
|
+
import { AlfrescoApiParamEncoder } from './alfresco-api/alfresco-api.param-encoder';
|
|
24
|
+
import { AlfrescoApiResponseError } from './alfresco-api/alfresco-api.response-error';
|
|
25
|
+
import ee from 'event-emitter';
|
|
26
|
+
import * as i0 from "@angular/core";
|
|
27
|
+
import * as i1 from "@angular/common/http";
|
|
28
|
+
export class AdfHttpClient {
|
|
29
|
+
get disableCsrf() {
|
|
30
|
+
return this._disableCsrf;
|
|
31
|
+
}
|
|
32
|
+
set disableCsrf(disableCsrf) {
|
|
33
|
+
this._disableCsrf = disableCsrf;
|
|
34
|
+
}
|
|
35
|
+
constructor(httpClient) {
|
|
36
|
+
this.httpClient = httpClient;
|
|
37
|
+
this.defaultSecurityOptions = {
|
|
38
|
+
withCredentials: true,
|
|
39
|
+
isBpmRequest: false,
|
|
40
|
+
authentications: {},
|
|
41
|
+
defaultHeaders: {}
|
|
42
|
+
};
|
|
43
|
+
ee(this);
|
|
44
|
+
}
|
|
45
|
+
setDefaultSecurityOption(options) {
|
|
46
|
+
this.defaultSecurityOptions = this.merge(this.defaultSecurityOptions, options);
|
|
47
|
+
}
|
|
48
|
+
merge(...objects) {
|
|
49
|
+
const result = {};
|
|
50
|
+
objects.forEach((source) => {
|
|
51
|
+
Object.keys(source).forEach((prop) => {
|
|
52
|
+
if (prop in result && Array.isArray(result[prop])) {
|
|
53
|
+
result[prop] = result[prop].concat(source[prop]);
|
|
54
|
+
}
|
|
55
|
+
else if (prop in result && typeof result[prop] === 'object') {
|
|
56
|
+
result[prop] = this.merge(result[prop], source[prop]);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
result[prop] = source[prop];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
request(url, options, sc = this.defaultSecurityOptions, emitters) {
|
|
66
|
+
const body = AdfHttpClient.getBody(options);
|
|
67
|
+
const params = getQueryParamsWithCustomEncoder(options.queryParams, new AlfrescoApiParamEncoder());
|
|
68
|
+
const responseType = AdfHttpClient.getResponseType(options);
|
|
69
|
+
const context = new HttpContext().set(SHOULD_ADD_AUTH_TOKEN, true);
|
|
70
|
+
const security = { ...this.defaultSecurityOptions, ...sc };
|
|
71
|
+
const headers = this.getHeaders(options);
|
|
72
|
+
if (!emitters) {
|
|
73
|
+
emitters = this.getEventEmitters();
|
|
74
|
+
}
|
|
75
|
+
const request = this.httpClient.request(options.httpMethod, url, {
|
|
76
|
+
context,
|
|
77
|
+
...(body && { body }),
|
|
78
|
+
...(responseType && { responseType }),
|
|
79
|
+
...security,
|
|
80
|
+
...(params && { params }),
|
|
81
|
+
headers,
|
|
82
|
+
observe: 'events',
|
|
83
|
+
reportProgress: true
|
|
84
|
+
});
|
|
85
|
+
return this.requestWithLegacyEventEmitters(request, emitters, options.returnType);
|
|
86
|
+
}
|
|
87
|
+
post(url, options, sc, emitters) {
|
|
88
|
+
return this.request(url, { ...options, httpMethod: 'POST' }, sc, emitters);
|
|
89
|
+
}
|
|
90
|
+
put(url, options, sc, emitters) {
|
|
91
|
+
return this.request(url, { ...options, httpMethod: 'PUT' }, sc, emitters);
|
|
92
|
+
}
|
|
93
|
+
get(url, options, sc, emitters) {
|
|
94
|
+
return this.request(url, { ...options, httpMethod: 'GET' }, sc, emitters);
|
|
95
|
+
}
|
|
96
|
+
delete(url, options, sc, emitters) {
|
|
97
|
+
return this.request(url, { ...options, httpMethod: 'DELETE' }, sc, emitters);
|
|
98
|
+
}
|
|
99
|
+
addPromiseListeners(promise, eventEmitter) {
|
|
100
|
+
const eventPromise = Object.assign(promise, {
|
|
101
|
+
on() {
|
|
102
|
+
// eslint-disable-next-line prefer-spread, prefer-rest-params
|
|
103
|
+
eventEmitter.on.apply(eventEmitter, arguments);
|
|
104
|
+
return this;
|
|
105
|
+
},
|
|
106
|
+
once() {
|
|
107
|
+
// eslint-disable-next-line prefer-spread, prefer-rest-params
|
|
108
|
+
eventEmitter.once.apply(eventEmitter, arguments);
|
|
109
|
+
return this;
|
|
110
|
+
},
|
|
111
|
+
emit() {
|
|
112
|
+
// eslint-disable-next-line prefer-spread, prefer-rest-params
|
|
113
|
+
eventEmitter.emit.apply(eventEmitter, arguments);
|
|
114
|
+
return this;
|
|
115
|
+
},
|
|
116
|
+
off() {
|
|
117
|
+
// eslint-disable-next-line prefer-spread, prefer-rest-params
|
|
118
|
+
eventEmitter.off.apply(eventEmitter, arguments);
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return eventPromise;
|
|
123
|
+
}
|
|
124
|
+
getEventEmitters() {
|
|
125
|
+
const apiClientEmitter = {
|
|
126
|
+
on: this.on.bind(this),
|
|
127
|
+
off: this.off.bind(this),
|
|
128
|
+
once: this.once.bind(this),
|
|
129
|
+
emit: this.emit.bind(this)
|
|
130
|
+
};
|
|
131
|
+
return {
|
|
132
|
+
apiClientEmitter,
|
|
133
|
+
eventEmitter: ee({})
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
requestWithLegacyEventEmitters(request$, emitters, returnType) {
|
|
137
|
+
const abort$ = new Subject();
|
|
138
|
+
const { eventEmitter, apiClientEmitter } = emitters;
|
|
139
|
+
const promise = request$
|
|
140
|
+
.pipe(map((res) => {
|
|
141
|
+
if (isHttpUploadProgressEvent(res)) {
|
|
142
|
+
const percent = Math.round((res.loaded / res.total) * 100);
|
|
143
|
+
eventEmitter.emit('progress', { loaded: res.loaded, total: res.total, percent });
|
|
144
|
+
}
|
|
145
|
+
if (isHttpResponseEvent(res)) {
|
|
146
|
+
eventEmitter.emit('success', res.body);
|
|
147
|
+
return AdfHttpClient.deserialize(res, returnType);
|
|
148
|
+
}
|
|
149
|
+
}), catchError((err) => {
|
|
150
|
+
// since we can't always determinate ahead of time if the response is going to be xml or plain text response
|
|
151
|
+
// we need to handle false positive cases here.
|
|
152
|
+
if (err.status === 200) {
|
|
153
|
+
eventEmitter.emit('success', err.error.text);
|
|
154
|
+
return of(err.error.text);
|
|
155
|
+
}
|
|
156
|
+
eventEmitter.emit('error', err);
|
|
157
|
+
apiClientEmitter.emit('error', { ...err, response: { req: err } });
|
|
158
|
+
if (err.status === 401) {
|
|
159
|
+
eventEmitter.emit('unauthorized');
|
|
160
|
+
apiClientEmitter.emit('unauthorized');
|
|
161
|
+
}
|
|
162
|
+
// for backwards compatibility we need to convert it to error class as the HttpErrorResponse only implements Error interface, not extending it,
|
|
163
|
+
// and we need to be able to correctly pass instanceof Error conditions used inside repository
|
|
164
|
+
// we also need to pass error as Stringify string as we are detecting statusCodes using JSON.parse(error.message) in some places
|
|
165
|
+
const msg = typeof err.error === 'string' ? err.error : JSON.stringify(err.error);
|
|
166
|
+
// for backwards compatibility to handle cases in code where we try read response.error.response.body;
|
|
167
|
+
const error = {
|
|
168
|
+
...err,
|
|
169
|
+
body: err.error
|
|
170
|
+
};
|
|
171
|
+
const alfrescoApiError = new AlfrescoApiResponseError(msg, err.status, error);
|
|
172
|
+
return throwError(alfrescoApiError);
|
|
173
|
+
}), takeUntil(abort$))
|
|
174
|
+
.toPromise();
|
|
175
|
+
promise.abort = function () {
|
|
176
|
+
eventEmitter.emit('abort');
|
|
177
|
+
abort$.next();
|
|
178
|
+
abort$.complete();
|
|
179
|
+
return this;
|
|
180
|
+
};
|
|
181
|
+
return this.addPromiseListeners(promise, eventEmitter);
|
|
182
|
+
}
|
|
183
|
+
static getBody(options) {
|
|
184
|
+
const contentType = options.contentType ? options.contentType : AdfHttpClient.jsonPreferredMime(options.contentTypes);
|
|
185
|
+
const isFormData = contentType === 'multipart/form-data';
|
|
186
|
+
const isFormUrlEncoded = contentType === 'application/x-www-form-urlencoded';
|
|
187
|
+
const body = options.bodyParam;
|
|
188
|
+
if (isFormData) {
|
|
189
|
+
return convertObjectToFormData(options.formParams);
|
|
190
|
+
}
|
|
191
|
+
if (isFormUrlEncoded) {
|
|
192
|
+
return new HttpParams({ fromObject: removeNilValues(options.formParams) });
|
|
193
|
+
}
|
|
194
|
+
return body;
|
|
195
|
+
}
|
|
196
|
+
getHeaders(options) {
|
|
197
|
+
const contentType = options.contentType || AdfHttpClient.jsonPreferredMime(options.contentTypes);
|
|
198
|
+
const accept = options.accept || AdfHttpClient.jsonPreferredMime(options.accepts);
|
|
199
|
+
const optionsHeaders = {
|
|
200
|
+
...options.headerParams,
|
|
201
|
+
...(accept && { Accept: accept }),
|
|
202
|
+
...(contentType && { 'Content-Type': contentType })
|
|
203
|
+
};
|
|
204
|
+
if (!this.disableCsrf) {
|
|
205
|
+
this.setCsrfToken(optionsHeaders);
|
|
206
|
+
}
|
|
207
|
+
return new HttpHeaders(optionsHeaders);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Chooses a content type from the given array, with JSON preferred; i.e. return JSON if included, otherwise return the first.
|
|
211
|
+
*
|
|
212
|
+
* @param contentTypes a contentType array
|
|
213
|
+
* @returns The chosen content type, preferring JSON.
|
|
214
|
+
*/
|
|
215
|
+
static jsonPreferredMime(contentTypes) {
|
|
216
|
+
if (!contentTypes?.length) {
|
|
217
|
+
return 'application/json';
|
|
218
|
+
}
|
|
219
|
+
for (let i = 0; i < contentTypes.length; i++) {
|
|
220
|
+
if (AdfHttpClient.isJsonMime(contentTypes[i])) {
|
|
221
|
+
return contentTypes[i];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return contentTypes[0];
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Checks whether the given content type represents JSON.<br>
|
|
228
|
+
* JSON content type examples:<br>
|
|
229
|
+
* <ul>
|
|
230
|
+
* <li>application/json</li>
|
|
231
|
+
* <li>application/json; charset=UTF8</li>
|
|
232
|
+
* <li>APPLICATION/JSON</li>
|
|
233
|
+
* </ul>
|
|
234
|
+
*
|
|
235
|
+
* @param contentType The MIME content type to check.
|
|
236
|
+
* @returns <code>true</code> if <code>contentType</code> represents JSON, otherwise <code>false</code>.
|
|
237
|
+
*/
|
|
238
|
+
static isJsonMime(contentType) {
|
|
239
|
+
return Boolean(contentType?.match(/^application\/json(;.*)?$/i));
|
|
240
|
+
}
|
|
241
|
+
setCsrfToken(optionsHeaders) {
|
|
242
|
+
const token = this.createCSRFToken();
|
|
243
|
+
optionsHeaders['X-CSRF-TOKEN'] = token;
|
|
244
|
+
try {
|
|
245
|
+
document.cookie = 'CSRF-TOKEN=' + token + ';path=/';
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
/* continue regardless of error */
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
createCSRFToken(a) {
|
|
252
|
+
const randomValue = AdfHttpClient.getSecureRandomValue();
|
|
253
|
+
return a ? (a ^ ((randomValue * 16) >> (a / 4))).toString(16) : ([1e16] + (1e16).toString()).replace(/[01]/g, this.createCSRFToken);
|
|
254
|
+
}
|
|
255
|
+
static getSecureRandomValue() {
|
|
256
|
+
const max = Math.pow(2, 32);
|
|
257
|
+
return window.crypto.getRandomValues(new Uint32Array(1))[0] / max;
|
|
258
|
+
}
|
|
259
|
+
static getResponseType(options) {
|
|
260
|
+
const isBlobType = options.returnType?.toString().toLowerCase() === 'blob' || options.responseType?.toString().toLowerCase() === 'blob';
|
|
261
|
+
if (isBlobType) {
|
|
262
|
+
return 'blob';
|
|
263
|
+
}
|
|
264
|
+
if (options.returnType === 'String') {
|
|
265
|
+
return 'text';
|
|
266
|
+
}
|
|
267
|
+
return 'json';
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Deserialize an HTTP response body into a value of the specified type.
|
|
271
|
+
*
|
|
272
|
+
* @param response response object
|
|
273
|
+
* @param returnType return type
|
|
274
|
+
* @returns deserialized object
|
|
275
|
+
*/
|
|
276
|
+
static deserialize(response, returnType) {
|
|
277
|
+
if (response === null) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
const body = response.body;
|
|
281
|
+
if (!returnType) {
|
|
282
|
+
// for backwards compatibility we need to return empty string instead of null,
|
|
283
|
+
// to avoid issues when accessing null response would break application [C309878]
|
|
284
|
+
// cannot read property 'entry' of null in cases like
|
|
285
|
+
// return this.post(apiUrl, saveFormRepresentation).pipe(map((res: any) => res.entry))
|
|
286
|
+
return body !== null ? body : '';
|
|
287
|
+
}
|
|
288
|
+
if (isBlobResponse(response, returnType)) {
|
|
289
|
+
return AdfHttpClient.deserializeBlobResponse(response);
|
|
290
|
+
}
|
|
291
|
+
if (!isConstructor(returnType)) {
|
|
292
|
+
return body;
|
|
293
|
+
}
|
|
294
|
+
if (Array.isArray(body)) {
|
|
295
|
+
return body.map((element) => new returnType(element));
|
|
296
|
+
}
|
|
297
|
+
return new returnType(body);
|
|
298
|
+
}
|
|
299
|
+
static deserializeBlobResponse(response) {
|
|
300
|
+
return new Blob([response.body], { type: response.headers.get('Content-Type') });
|
|
301
|
+
}
|
|
302
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
303
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfHttpClient, providedIn: 'root' }); }
|
|
304
|
+
}
|
|
305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdfHttpClient, decorators: [{
|
|
306
|
+
type: Injectable,
|
|
307
|
+
args: [{
|
|
308
|
+
providedIn: 'root'
|
|
309
|
+
}]
|
|
310
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWh0dHAtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hcGkvc3JjL2xpYi9hZGYtaHR0cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBZ0MsV0FBVyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNwSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLCtCQUErQixFQUMvQixjQUFjLEVBQ2QsYUFBYSxFQUNiLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxFQUNsQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3RGLE9BQU8sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7O0FBVTVDLE1BQU0sT0FBTyxhQUFhO0lBUXRCLElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBb0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQVNELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixV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RSxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7K0dBbFZRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTSE9VTERfQUREX0FVVEhfVE9LRU4gfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXV0aCc7XG5pbXBvcnQgeyBFbWl0dGVycyBhcyBKc0FwaUVtaXR0ZXJzLCBIdHRwQ2xpZW50IGFzIEpzQXBpSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENvbnRleHQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIGNvbnZlcnRPYmplY3RUb0Zvcm1EYXRhLFxuICAgIGdldFF1ZXJ5UGFyYW1zV2l0aEN1c3RvbUVuY29kZXIsXG4gICAgaXNCbG9iUmVzcG9uc2UsXG4gICAgaXNDb25zdHJ1Y3RvcixcbiAgICBpc0h0dHBSZXNwb25zZUV2ZW50LFxuICAgIGlzSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQsXG4gICAgcmVtb3ZlTmlsVmFsdWVzXG59IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS51dGlscyc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVBhcmFtRW5jb2RlciB9IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS5wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpUmVzcG9uc2VFcnJvciB9IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS5yZXNwb25zZS1lcnJvcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMsIFNlY3VyaXR5T3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgZWUsIHsgRW1pdHRlciB9IGZyb20gJ2V2ZW50LWVtaXR0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJzIHtcbiAgICByZWFkb25seSBldmVudEVtaXR0ZXI6IEVtaXR0ZXI7XG4gICAgcmVhZG9ubHkgYXBpQ2xpZW50RW1pdHRlcjogRW1pdHRlcjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBZGZIdHRwQ2xpZW50IGltcGxlbWVudHMgZWUuRW1pdHRlciwgSnNBcGlIdHRwQ2xpZW50IHtcbiAgICBvbjogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBvZmY6IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgb25jZTogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBfZGlzYWJsZUNzcmY6IGJvb2xlYW47XG5cbiAgICBlbWl0OiAodHlwZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcblxuICAgIGdldCBkaXNhYmxlQ3NyZigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVDc3JmO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlQ3NyZihkaXNhYmxlQ3NyZjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlQ3NyZiA9IGRpc2FibGVDc3JmO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdFNlY3VyaXR5T3B0aW9ucyA9IHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICBpc0JwbVJlcXVlc3Q6IGZhbHNlLFxuICAgICAgICBhdXRoZW50aWNhdGlvbnM6IHt9LFxuICAgICAgICBkZWZhdWx0SGVhZGVyczoge31cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIGVlKHRoaXMpO1xuICAgIH1cblxuICAgIHNldERlZmF1bHRTZWN1cml0eU9wdGlvbihvcHRpb25zOiBhbnkpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zID0gdGhpcy5tZXJnZSh0aGlzLmRlZmF1bHRTZWN1cml0eU9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG1lcmdlKC4uLm9iamVjdHMpOiBhbnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcblxuICAgICAgICBvYmplY3RzLmZvckVhY2goKHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3AgaW4gcmVzdWx0ICYmIEFycmF5LmlzQXJyYXkocmVzdWx0W3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSByZXN1bHRbcHJvcF0uY29uY2F0KHNvdXJjZVtwcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wIGluIHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0W3Byb3BdID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSB0aGlzLm1lcmdlKHJlc3VsdFtwcm9wXSwgc291cmNlW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmVxdWVzdDxUID0gYW55Pih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYzogU2VjdXJpdHlPcHRpb25zID0gdGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IEFkZkh0dHBDbGllbnQuZ2V0Qm9keShvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gZ2V0UXVlcnlQYXJhbXNXaXRoQ3VzdG9tRW5jb2RlcihvcHRpb25zLnF1ZXJ5UGFyYW1zLCBuZXcgQWxmcmVzY29BcGlQYXJhbUVuY29kZXIoKSk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IEFkZkh0dHBDbGllbnQuZ2V0UmVzcG9uc2VUeXBlKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCkuc2V0KFNIT1VMRF9BRERfQVVUSF9UT0tFTiwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHNlY3VyaXR5OiBTZWN1cml0eU9wdGlvbnMgPSB7IC4uLnRoaXMuZGVmYXVsdFNlY3VyaXR5T3B0aW9ucywgLi4uc2MgfTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycyhvcHRpb25zKTtcbiAgICAgICAgaWYgKCFlbWl0dGVycykge1xuICAgICAgICAgICAgZW1pdHRlcnMgPSB0aGlzLmdldEV2ZW50RW1pdHRlcnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChvcHRpb25zLmh0dHBNZXRob2QsIHVybCwge1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIC4uLihib2R5ICYmIHsgYm9keSB9KSxcbiAgICAgICAgICAgIC4uLihyZXNwb25zZVR5cGUgJiYgeyByZXNwb25zZVR5cGUgfSksXG4gICAgICAgICAgICAuLi5zZWN1cml0eSxcbiAgICAgICAgICAgIC4uLihwYXJhbXMgJiYgeyBwYXJhbXMgfSksXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0V2l0aExlZ2FjeUV2ZW50RW1pdHRlcnM8VD4ocmVxdWVzdCwgZW1pdHRlcnMsIG9wdGlvbnMucmV0dXJuVHlwZSk7XG4gICAgfVxuXG4gICAgcG9zdDxUID0gYW55Pih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYz86IFNlY3VyaXR5T3B0aW9ucywgZW1pdHRlcnM/OiBKc0FwaUVtaXR0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4odXJsLCB7IC4uLm9wdGlvbnMsIGh0dHBNZXRob2Q6ICdQT1NUJyB9LCBzYywgZW1pdHRlcnMpO1xuICAgIH1cblxuICAgIHB1dDxUID0gYW55Pih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYz86IFNlY3VyaXR5T3B0aW9ucywgZW1pdHRlcnM/OiBKc0FwaUVtaXR0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4odXJsLCB7IC4uLm9wdGlvbnMsIGh0dHBNZXRob2Q6ICdQVVQnIH0sIHNjLCBlbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIHNjPzogU2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPih1cmwsIHsgLi4ub3B0aW9ucywgaHR0cE1ldGhvZDogJ0dFVCcgfSwgc2MsIGVtaXR0ZXJzKTtcbiAgICB9XG5cbiAgICBkZWxldGU8VCA9IHZvaWQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIHNjPzogU2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPih1cmwsIHsgLi4ub3B0aW9ucywgaHR0cE1ldGhvZDogJ0RFTEVURScgfSwgc2MsIGVtaXR0ZXJzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFByb21pc2VMaXN0ZW5lcnM8VCA9IGFueT4ocHJvbWlzZTogUHJvbWlzZTxUPiwgZXZlbnRFbWl0dGVyOiBhbnkpIHtcbiAgICAgICAgY29uc3QgZXZlbnRQcm9taXNlID0gT2JqZWN0LmFzc2lnbihwcm9taXNlLCB7XG4gICAgICAgICAgICBvbigpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLm9uLmFwcGx5KGV2ZW50RW1pdHRlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbmNlKCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkLCBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIub25jZS5hcHBseShldmVudEVtaXR0ZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW1pdCgpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQuYXBwbHkoZXZlbnRFbWl0dGVyLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9mZigpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLm9mZi5hcHBseShldmVudEVtaXR0ZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBldmVudFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFdmVudEVtaXR0ZXJzKCk6IEVtaXR0ZXJzIHtcbiAgICAgICAgY29uc3QgYXBpQ2xpZW50RW1pdHRlciA9IHtcbiAgICAgICAgICAgIG9uOiB0aGlzLm9uLmJpbmQodGhpcyksXG4gICAgICAgICAgICBvZmY6IHRoaXMub2ZmLmJpbmQodGhpcyksXG4gICAgICAgICAgICBvbmNlOiB0aGlzLm9uY2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGVtaXQ6IHRoaXMuZW1pdC5iaW5kKHRoaXMpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFwaUNsaWVudEVtaXR0ZXIsXG4gICAgICAgICAgICBldmVudEVtaXR0ZXI6IGVlKHt9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWVzdFdpdGhMZWdhY3lFdmVudEVtaXR0ZXJzPFQgPSBhbnk+KHJlcXVlc3QkOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxUPj4sIGVtaXR0ZXJzOiBKc0FwaUVtaXR0ZXJzLCByZXR1cm5UeXBlOiBhbnkpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgY29uc3QgYWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgY29uc3QgeyBldmVudEVtaXR0ZXIsIGFwaUNsaWVudEVtaXR0ZXIgfSA9IGVtaXR0ZXJzO1xuXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQocmVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudCA9IE1hdGgucm91bmQoKHJlcy5sb2FkZWQgLyByZXMudG90YWwpICogMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdwcm9ncmVzcycsIHsgbG9hZGVkOiByZXMubG9hZGVkLCB0b3RhbDogcmVzLnRvdGFsLCBwZXJjZW50IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSHR0cFJlc3BvbnNlRXZlbnQocmVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ3N1Y2Nlc3MnLCByZXMuYm9keSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWRmSHR0cENsaWVudC5kZXNlcmlhbGl6ZShyZXMsIHJldHVyblR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8QWxmcmVzY29BcGlSZXNwb25zZUVycm9yPiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGNhbid0IGFsd2F5cyBkZXRlcm1pbmF0ZSBhaGVhZCBvZiB0aW1lIGlmIHRoZSByZXNwb25zZSBpcyBnb2luZyB0byBiZSB4bWwgb3IgcGxhaW4gdGV4dCByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGhhbmRsZSBmYWxzZSBwb3NpdGl2ZSBjYXNlcyBoZXJlLlxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdzdWNjZXNzJywgZXJyLmVycm9yLnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGVyci5lcnJvci50ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdlcnJvcicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIGFwaUNsaWVudEVtaXR0ZXIuZW1pdCgnZXJyb3InLCB7IC4uLmVyciwgcmVzcG9uc2U6IHsgcmVxOiBlcnIgfSB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcGlDbGllbnRFbWl0dGVyLmVtaXQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBlcnJvciBjbGFzcyBhcyB0aGUgSHR0cEVycm9yUmVzcG9uc2Ugb25seSBpbXBsZW1lbnRzIEVycm9yIGludGVyZmFjZSwgbm90IGV4dGVuZGluZyBpdCxcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkgcGFzcyBpbnN0YW5jZW9mIEVycm9yIGNvbmRpdGlvbnMgdXNlZCBpbnNpZGUgcmVwb3NpdG9yeVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhbHNvIG5lZWQgdG8gcGFzcyBlcnJvciBhcyBTdHJpbmdpZnkgc3RyaW5nIGFzIHdlIGFyZSBkZXRlY3Rpbmcgc3RhdHVzQ29kZXMgdXNpbmcgSlNPTi5wYXJzZShlcnJvci5tZXNzYWdlKSBpbiBzb21lIHBsYWNlc1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IGVyci5lcnJvciA6IEpTT04uc3RyaW5naWZ5KGVyci5lcnJvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHRvIGhhbmRsZSBjYXNlcyBpbiBjb2RlIHdoZXJlIHdlIHRyeSByZWFkIHJlc3BvbnNlLmVycm9yLnJlc3BvbnNlLmJvZHk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBlcnIuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbGZyZXNjb0FwaUVycm9yID0gbmV3IEFsZnJlc2NvQXBpUmVzcG9uc2VFcnJvcihtc2csIGVyci5zdGF0dXMsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoYWxmcmVzY29BcGlFcnJvcik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKGFib3J0JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcblxuICAgICAgICAocHJvbWlzZSBhcyBhbnkpLmFib3J0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ2Fib3J0Jyk7XG4gICAgICAgICAgICBhYm9ydCQubmV4dCgpO1xuICAgICAgICAgICAgYWJvcnQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hZGRQcm9taXNlTGlzdGVuZXJzKHByb21pc2UsIGV2ZW50RW1pdHRlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0Qm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6IGFueSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gb3B0aW9ucy5jb250ZW50VHlwZSA/IG9wdGlvbnMuY29udGVudFR5cGUgOiBBZGZIdHRwQ2xpZW50Lmpzb25QcmVmZXJyZWRNaW1lKG9wdGlvbnMuY29udGVudFR5cGVzKTtcbiAgICAgICAgY29uc3QgaXNGb3JtRGF0YSA9IGNvbnRlbnRUeXBlID09PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGNvbnN0IGlzRm9ybVVybEVuY29kZWQgPSBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBvcHRpb25zLmJvZHlQYXJhbTtcblxuICAgICAgICBpZiAoaXNGb3JtRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRPYmplY3RUb0Zvcm1EYXRhKG9wdGlvbnMuZm9ybVBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGb3JtVXJsRW5jb2RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHsgZnJvbU9iamVjdDogcmVtb3ZlTmlsVmFsdWVzKG9wdGlvbnMuZm9ybVBhcmFtcykgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYm9keTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhlYWRlcnMob3B0aW9uczogUmVxdWVzdE9wdGlvbnMpOiBIdHRwSGVhZGVycyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gb3B0aW9ucy5jb250ZW50VHlwZSB8fCBBZGZIdHRwQ2xpZW50Lmpzb25QcmVmZXJyZWRNaW1lKG9wdGlvbnMuY29udGVudFR5cGVzKTtcbiAgICAgICAgY29uc3QgYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQgfHwgQWRmSHR0cENsaWVudC5qc29uUHJlZmVycmVkTWltZShvcHRpb25zLmFjY2VwdHMpO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnNIZWFkZXJzID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5oZWFkZXJQYXJhbXMsXG4gICAgICAgICAgICAuLi4oYWNjZXB0ICYmIHsgQWNjZXB0OiBhY2NlcHQgfSksXG4gICAgICAgICAgICAuLi4oY29udGVudFR5cGUgJiYgeyAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZUNzcmYpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NyZlRva2VuKG9wdGlvbnNIZWFkZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMob3B0aW9uc0hlYWRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENob29zZXMgYSBjb250ZW50IHR5cGUgZnJvbSB0aGUgZ2l2ZW4gYXJyYXksIHdpdGggSlNPTiBwcmVmZXJyZWQ7IGkuZS4gcmV0dXJuIEpTT04gaWYgaW5jbHVkZWQsIG90aGVyd2lzZSByZXR1cm4gdGhlIGZpcnN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRUeXBlcyBhIGNvbnRlbnRUeXBlIGFycmF5XG4gICAgICogQHJldHVybnMgIFRoZSBjaG9zZW4gY29udGVudCB0eXBlLCBwcmVmZXJyaW5nIEpTT04uXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMganNvblByZWZlcnJlZE1pbWUoY29udGVudFR5cGVzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghY29udGVudFR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKEFkZkh0dHBDbGllbnQuaXNKc29uTWltZShjb250ZW50VHlwZXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGVudFR5cGVzWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBjb250ZW50IHR5cGUgcmVwcmVzZW50cyBKU09OLjxicj5cbiAgICAgKiBKU09OIGNvbnRlbnQgdHlwZSBleGFtcGxlczo8YnI+XG4gICAgICogPHVsPlxuICAgICAqIDxsaT5hcHBsaWNhdGlvbi9qc29uPC9saT5cbiAgICAgKiA8bGk+YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEY4PC9saT5cbiAgICAgKiA8bGk+QVBQTElDQVRJT04vSlNPTjwvbGk+XG4gICAgICogPC91bD5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50VHlwZSBUaGUgTUlNRSBjb250ZW50IHR5cGUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgPGNvZGU+Y29udGVudFR5cGU8L2NvZGU+IHJlcHJlc2VudHMgSlNPTiwgb3RoZXJ3aXNlIDxjb2RlPmZhbHNlPC9jb2RlPi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyBpc0pzb25NaW1lKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY29udGVudFR5cGU/Lm1hdGNoKC9eYXBwbGljYXRpb25cXC9qc29uKDsuKik/JC9pKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDc3JmVG9rZW4ob3B0aW9uc0hlYWRlcnM6IGFueSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3JlYXRlQ1NSRlRva2VuKCk7XG4gICAgICAgIG9wdGlvbnNIZWFkZXJzWydYLUNTUkYtVE9LRU4nXSA9IHRva2VuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnQ1NSRi1UT0tFTj0nICsgdG9rZW4gKyAnO3BhdGg9Lyc7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLyogY29udGludWUgcmVnYXJkbGVzcyBvZiBlcnJvciAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDU1JGVG9rZW4oYT86IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhbmRvbVZhbHVlID0gQWRmSHR0cENsaWVudC5nZXRTZWN1cmVSYW5kb21WYWx1ZSgpO1xuICAgICAgICByZXR1cm4gYSA/IChhIF4gKChyYW5kb21WYWx1ZSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpIDogKFsxZTE2XSArICgxZTE2KS50b1N0cmluZygpKS5yZXBsYWNlKC9bMDFdL2csIHRoaXMuY3JlYXRlQ1NSRlRva2VuKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRTZWN1cmVSYW5kb21WYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBtYXggPSBNYXRoLnBvdygyLCAzMik7XG4gICAgICAgIHJldHVybiB3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMSkpWzBdIC8gbWF4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFJlc3BvbnNlVHlwZShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0JyB7XG4gICAgICAgIGNvbnN0IGlzQmxvYlR5cGUgPSBvcHRpb25zLnJldHVyblR5cGU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2Jsb2InIHx8IG9wdGlvbnMucmVzcG9uc2VUeXBlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICdibG9iJztcblxuICAgICAgICBpZiAoaXNCbG9iVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuICdibG9iJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnJldHVyblR5cGUgPT09ICdTdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3RleHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdqc29uJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlcmlhbGl6ZSBhbiBIVFRQIHJlc3BvbnNlIGJvZHkgaW50byBhIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXNwb25zZSByZXNwb25zZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gcmV0dXJuVHlwZSByZXR1cm4gdHlwZVxuICAgICAqIEByZXR1cm5zIGRlc2VyaWFsaXplZCBvYmplY3RcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyBkZXNlcmlhbGl6ZTxUPihyZXNwb25zZTogSHR0cFJlc3BvbnNlPFQ+LCByZXR1cm5UeXBlPzogQ29uc3RydWN0b3I8dW5rbm93bj4gfCAnYmxvYicpOiBhbnkge1xuICAgICAgICBpZiAocmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYm9keSA9IHJlc3BvbnNlLmJvZHk7XG5cbiAgICAgICAgaWYgKCFyZXR1cm5UeXBlKSB7XG4gICAgICAgICAgICAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2UgbmVlZCB0byByZXR1cm4gZW1wdHkgc3RyaW5nIGluc3RlYWQgb2YgbnVsbCxcbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIGlzc3VlcyB3aGVuIGFjY2Vzc2luZyBudWxsIHJlc3BvbnNlIHdvdWxkIGJyZWFrIGFwcGxpY2F0aW9uIFtDMzA5ODc4XVxuICAgICAgICAgICAgLy8gY2Fubm90IHJlYWQgcHJvcGVydHkgJ2VudHJ5JyBvZiBudWxsIGluIGNhc2VzIGxpa2VcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnBvc3QoYXBpVXJsLCBzYXZlRm9ybVJlcHJlc2VudGF0aW9uKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpXG5cbiAgICAgICAgICAgIHJldHVybiBib2R5ICE9PSBudWxsID8gYm9keSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmxvYlJlc3BvbnNlKHJlc3BvbnNlLCByZXR1cm5UeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIEFkZkh0dHBDbGllbnQuZGVzZXJpYWxpemVCbG9iUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0NvbnN0cnVjdG9yKHJldHVyblR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGJvZHkpKSB7XG4gICAgICAgICAgICByZXR1cm4gYm9keS5tYXAoKGVsZW1lbnQpID0+IG5ldyByZXR1cm5UeXBlKGVsZW1lbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgcmV0dXJuVHlwZShib2R5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZXNlcmlhbGl6ZUJsb2JSZXNwb25zZShyZXNwb25zZTogSHR0cFJlc3BvbnNlPEJsb2I+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHsgdHlwZTogcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
// The default implementation of HttpParameterCodec from angular
|
|
18
|
+
// does not encode some special characters like + with is causing issues with the alfresco js API and returns 500 error
|
|
19
|
+
export class AlfrescoApiParamEncoder {
|
|
20
|
+
encodeKey(key) {
|
|
21
|
+
return encodeURIComponent(key);
|
|
22
|
+
}
|
|
23
|
+
encodeValue(value) {
|
|
24
|
+
return encodeURIComponent(value);
|
|
25
|
+
}
|
|
26
|
+
decodeKey(key) {
|
|
27
|
+
return decodeURIComponent(key);
|
|
28
|
+
}
|
|
29
|
+
decodeValue(value) {
|
|
30
|
+
return decodeURIComponent(value);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tYXBpLnBhcmFtLWVuY29kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hcGkvc3JjL2xpYi9hbGZyZXNjby1hcGkvYWxmcmVzY28tYXBpLnBhcmFtLWVuY29kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBSUgsZ0VBQWdFO0FBQ2hFLHVIQUF1SDtBQUV2SCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBIdHRwUGFyYW1ldGVyQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8vIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIEh0dHBQYXJhbWV0ZXJDb2RlYyBmcm9tIGFuZ3VsYXJcbi8vIGRvZXMgbm90IGVuY29kZSBzb21lIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlICsgd2l0aCBpcyBjYXVzaW5nIGlzc3VlcyB3aXRoIHRoZSBhbGZyZXNjbyBqcyBBUEkgYW5kIHJldHVybnMgNTAwIGVycm9yXG5cbmV4cG9ydCBjbGFzcyBBbGZyZXNjb0FwaVBhcmFtRW5jb2RlciBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XG4gICAgZW5jb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xuICAgIH1cblxuICAgIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICB9XG5cbiAgICBkZWNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gICAgfVxuXG4gICAgZGVjb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export class AlfrescoApiResponseError extends Error {
|
|
18
|
+
constructor(msg, status, response) {
|
|
19
|
+
super(msg);
|
|
20
|
+
this.status = status;
|
|
21
|
+
this.response = response;
|
|
22
|
+
this.name = 'AlfrescoApiResponseError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tYXBpLnJlc3BvbnNlLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvYXBpL3NyYy9saWIvYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS5yZXNwb25zZS1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsS0FBSztJQUcvQyxZQUFZLEdBQVcsRUFBUyxNQUFjLEVBQVMsUUFBNkI7UUFDaEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRGlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUY3RSxTQUFJLEdBQUcsMEJBQTBCLENBQUM7SUFJekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgY2xhc3MgQWxmcmVzY29BcGlSZXNwb25zZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIHB1YmxpYyBuYW1lID0gJ0FsZnJlc2NvQXBpUmVzcG9uc2VFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZywgcHVibGljIHN0YXR1czogbnVtYmVyLCBwdWJsaWMgcmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAgICAgc3VwZXIobXNnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { HttpEventType, HttpParams, HttpUrlEncodingCodec } from '@angular/common/http';
|
|
18
|
+
export const isHttpUploadProgressEvent = (val) => val.type === HttpEventType.UploadProgress;
|
|
19
|
+
export const isHttpResponseEvent = (val) => val.type === HttpEventType.Response;
|
|
20
|
+
export const isDate = (value) => value instanceof Date;
|
|
21
|
+
export const isXML = (value) => typeof value === 'string' && value.startsWith('<?xml');
|
|
22
|
+
export const isBlobResponse = (response, returnType) => returnType === 'blob' || response.body instanceof Blob;
|
|
23
|
+
export const isConstructor = (value) => typeof value === 'function' && !!value?.prototype?.constructor.name;
|
|
24
|
+
const convertParamsToString = (value) => (isDate(value) ? value.toISOString() : value);
|
|
25
|
+
export const getQueryParamsWithCustomEncoder = (obj, encoder = new HttpUrlEncodingCodec()) => {
|
|
26
|
+
if (!obj) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
let httpParams = new HttpParams({
|
|
30
|
+
encoder
|
|
31
|
+
});
|
|
32
|
+
const params = removeNilValues(obj);
|
|
33
|
+
for (const key in params) {
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(params, key)) {
|
|
35
|
+
const value = params[key];
|
|
36
|
+
if (value instanceof Array) {
|
|
37
|
+
const array = value.map(convertParamsToString).filter(Boolean);
|
|
38
|
+
httpParams = httpParams.appendAll({
|
|
39
|
+
[key]: array
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
httpParams = httpParams.append(key, convertParamsToString(value));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return httpParams;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Removes null and undefined values from an object.
|
|
51
|
+
*
|
|
52
|
+
* @param obj object to process
|
|
53
|
+
* @returns object with updated values
|
|
54
|
+
*/
|
|
55
|
+
export const removeNilValues = (obj) => {
|
|
56
|
+
if (!obj) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
60
|
+
const value = obj[key];
|
|
61
|
+
const isNil = value === undefined || value === null;
|
|
62
|
+
return isNil ? acc : { ...acc, [key]: value };
|
|
63
|
+
}, {});
|
|
64
|
+
};
|
|
65
|
+
export const convertObjectToFormData = (formParams) => {
|
|
66
|
+
const formData = new FormData();
|
|
67
|
+
for (const key in formParams) {
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(formParams, key)) {
|
|
69
|
+
const value = formParams[key];
|
|
70
|
+
if (value instanceof File) {
|
|
71
|
+
formData.append(key, value, value.name);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
formData.append(key, value);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return formData;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tYXBpLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvYXBpL3NyYy9saWIvYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBR0gsYUFBYSxFQUViLFVBQVUsRUFFVixvQkFBb0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFJLEdBQWlCLEVBQWtDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjLENBQUM7QUFDN0ksTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBSSxHQUFpQixFQUEwQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxDQUFDO0FBQ3pILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBaUIsRUFBRSxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUM7QUFDL0UsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBYyxFQUFXLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6RyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUEyQixFQUFFLFVBQXlDLEVBQWtDLEVBQUUsQ0FDckksVUFBVSxLQUFLLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBYyxLQUFVLEVBQTJCLEVBQUUsQ0FDOUUsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxJ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O2dCQUNKLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBIdHRwRXZlbnQsXG4gICAgSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQsXG4gICAgSHR0cEV2ZW50VHlwZSxcbiAgICBIdHRwUmVzcG9uc2UsXG4gICAgSHR0cFBhcmFtcyxcbiAgICBIdHRwUGFyYW1ldGVyQ29kZWMsXG4gICAgSHR0cFVybEVuY29kaW5nQ29kZWNcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc0h0dHBVcGxvYWRQcm9ncmVzc0V2ZW50ID0gPFQ+KHZhbDogSHR0cEV2ZW50PFQ+KTogdmFsIGlzIEh0dHBVcGxvYWRQcm9ncmVzc0V2ZW50ID0+IHZhbC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzO1xuZXhwb3J0IGNvbnN0IGlzSHR0cFJlc3BvbnNlRXZlbnQgPSA8VD4odmFsOiBIdHRwRXZlbnQ8VD4pOiB2YWwgaXMgSHR0cFJlc3BvbnNlPFQ+ID0+IHZhbC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlO1xuZXhwb3J0IGNvbnN0IGlzRGF0ZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGUgPT4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlO1xuZXhwb3J0IGNvbnN0IGlzWE1MID0gKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJzw/eG1sJyk7XG5leHBvcnQgY29uc3QgaXNCbG9iUmVzcG9uc2UgPSAocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxhbnk+LCByZXR1cm5UeXBlOiBDb25zdHJ1Y3Rvcjx1bmtub3duPiB8ICdibG9iJyk6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZTxCbG9iPiA9PlxuICAgIHJldHVyblR5cGUgPT09ICdibG9iJyB8fCByZXNwb25zZS5ib2R5IGluc3RhbmNlb2YgQmxvYjtcbmV4cG9ydCBjb25zdCBpc0NvbnN0cnVjdG9yID0gPFQgPSB1bmtub3duPih2YWx1ZTogYW55KTogdmFsdWUgaXMgQ29uc3RydWN0b3I8VD4gPT5cbiAgICB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgJiYgISF2YWx1ZT8ucHJvdG90eXBlPy5jb25zdHJ1Y3Rvci5uYW1lO1xuXG5jb25zdCBjb252ZXJ0UGFyYW1zVG9TdHJpbmcgPSAodmFsdWU6IGFueSk6IGFueSA9PiAoaXNEYXRlKHZhbHVlKSA/IHZhbHVlLnRvSVNPU3RyaW5nKCkgOiB2YWx1ZSk7XG5leHBvcnQgY29uc3QgZ2V0UXVlcnlQYXJhbXNXaXRoQ3VzdG9tRW5jb2RlciA9IChcbiAgICBvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIHVua25vd24+LFxuICAgIGVuY29kZXI6IEh0dHBQYXJhbWV0ZXJDb2RlYyA9IG5ldyBIdHRwVXJsRW5jb2RpbmdDb2RlYygpXG4pOiBIdHRwUGFyYW1zIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICBlbmNvZGVyXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSByZW1vdmVOaWxWYWx1ZXMob2JqKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFtcykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtcywga2V5KSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyYXkgPSB2YWx1ZS5tYXAoY29udmVydFBhcmFtc1RvU3RyaW5nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kQWxsKHtcbiAgICAgICAgICAgICAgICAgICAgW2tleV06IGFycmF5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChrZXksIGNvbnZlcnRQYXJhbXNUb1N0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbnVsbCBhbmQgdW5kZWZpbmVkIHZhbHVlcyBmcm9tIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gb2JqIG9iamVjdCB0byBwcm9jZXNzXG4gKiBAcmV0dXJucyBvYmplY3Qgd2l0aCB1cGRhdGVkIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlTmlsVmFsdWVzID0gKG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciwgdW5rbm93bj4pID0+IHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXldO1xuICAgICAgICBjb25zdCBpc05pbCA9IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGw7XG4gICAgICAgIHJldHVybiBpc05pbCA/IGFjYyA6IHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfTtcbiAgICB9LCB7fSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydE9iamVjdFRvRm9ybURhdGEgPSAoZm9ybVBhcmFtczogUmVjb3JkPHN0cmluZyB8IG51bWJlciwgc3RyaW5nIHwgQmxvYj4pOiBGb3JtRGF0YSA9PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1QYXJhbXMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtUGFyYW1zLCBrZXkpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZvcm1QYXJhbXNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSwgdmFsdWUubmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3JtRGF0YTtcbn07XG4iXX0=
|