@alfresco/adf-core 8.1.0-15484232623 → 8.1.0-15488123400
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/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +4 -35
- package/fesm2022/adf-core.mjs +972 -982
- 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 +6 -6
- 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 +51 -56
- package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-shell.mjs +9 -9
- package/fesm2022/alfresco-adf-core-shell.mjs.map +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 +1 -0
- package/lib/datatable/data/data-table.schema.d.ts +1 -1
- package/lib/form/components/form-renderer.component.scss +9 -0
- package/lib/form/components/inplace-form-input/inplace-form-input.component.scss +1 -1
- package/lib/viewer/components/viewer-render/viewer-render.component.d.ts +5 -9
- package/lib/viewer/components/viewer.component.d.ts +2 -0
- package/lib/viewer/components/viewer.component.scss +1 -14
- package/package.json +4 -16
- package/esm2022/adf-core.mjs +0 -5
- package/esm2022/api/alfresco-adf-core-api.mjs +0 -5
- package/esm2022/api/index.mjs +0 -20
- package/esm2022/api/lib/adf-http-client.service.mjs +0 -311
- package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +0 -33
- package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +0 -25
- package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +0 -80
- package/esm2022/api/lib/interfaces.mjs +0 -18
- package/esm2022/api/lib/types.mjs +0 -18
- package/esm2022/auth/alfresco-adf-core-auth.mjs +0 -5
- package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +0 -56
- package/esm2022/auth/authentication.mjs +0 -19
- package/esm2022/auth/index.mjs +0 -19
- package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +0 -5
- package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +0 -83
- package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +0 -42
- package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +0 -44
- package/esm2022/breadcrumbs/index.mjs +0 -19
- package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +0 -5
- package/esm2022/feature-flags/index.mjs +0 -29
- package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +0 -36
- package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +0 -56
- package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +0 -130
- package/esm2022/feature-flags/lib/directives/features.directive.mjs +0 -63
- package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +0 -63
- package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +0 -38
- package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +0 -38
- package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +0 -40
- package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +0 -24
- package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +0 -62
- package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +0 -51
- package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +0 -36
- package/esm2022/feature-flags/lib/services/debug-features.service.mjs +0 -94
- package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +0 -40
- package/esm2022/feature-flags/lib/services/flagset.parser.mjs +0 -38
- package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +0 -62
- package/esm2022/feature-flags/lib/services/storage-features.service.mjs +0 -126
- package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +0 -52
- package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +0 -52
- package/esm2022/lib/about/about-module-list/module-list.component.mjs +0 -52
- package/esm2022/lib/about/about-package/package-list.component.mjs +0 -66
- package/esm2022/lib/about/about-panel.directive.mjs +0 -37
- package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +0 -60
- package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +0 -18
- package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +0 -43
- package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +0 -52
- package/esm2022/lib/about/about.component.mjs +0 -35
- package/esm2022/lib/about/about.module.mjs +0 -75
- package/esm2022/lib/about/index.mjs +0 -18
- package/esm2022/lib/about/interfaces.mjs +0 -18
- package/esm2022/lib/about/public-api.mjs +0 -28
- package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +0 -51
- package/esm2022/lib/app-config/app-config.loader.mjs +0 -41
- package/esm2022/lib/app-config/app-config.module.mjs +0 -33
- package/esm2022/lib/app-config/app-config.pipe.mjs +0 -38
- package/esm2022/lib/app-config/app-config.service.mjs +0 -243
- package/esm2022/lib/app-config/debug-app-config.service.mjs +0 -44
- package/esm2022/lib/app-config/index.mjs +0 -18
- package/esm2022/lib/app-config/public-api.mjs +0 -22
- package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +0 -67
- package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +0 -356
- package/esm2022/lib/auth/basic-auth/content-auth.mjs +0 -189
- package/esm2022/lib/auth/basic-auth/process-auth.mjs +0 -193
- package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +0 -31
- package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +0 -31
- package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +0 -57
- package/esm2022/lib/auth/guard/auth-guard.mjs +0 -53
- package/esm2022/lib/auth/guard/auth-guard.service.mjs +0 -113
- package/esm2022/lib/auth/index.mjs +0 -18
- package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/authentication.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +0 -18
- package/esm2022/lib/auth/models/application-access.model.mjs +0 -18
- package/esm2022/lib/auth/models/identity-group.model.mjs +0 -18
- package/esm2022/lib/auth/models/identity-role.model.mjs +0 -30
- package/esm2022/lib/auth/models/identity-user.model.mjs +0 -18
- package/esm2022/lib/auth/models/oauth-config.model.mjs +0 -18
- package/esm2022/lib/auth/models/redirection.model.mjs +0 -28
- package/esm2022/lib/auth/models/user-access.model.mjs +0 -18
- package/esm2022/lib/auth/oidc/auth-config.mjs +0 -19
- package/esm2022/lib/auth/oidc/auth-config.service.mjs +0 -110
- package/esm2022/lib/auth/oidc/auth-routing.module.mjs +0 -34
- package/esm2022/lib/auth/oidc/auth.module.mjs +0 -112
- package/esm2022/lib/auth/oidc/auth.service.mjs +0 -22
- package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +0 -37
- package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +0 -202
- package/esm2022/lib/auth/oidc/public-api.mjs +0 -24
- package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +0 -267
- package/esm2022/lib/auth/oidc/retry-login.service.mjs +0 -66
- package/esm2022/lib/auth/oidc/token.interceptor.mjs +0 -62
- package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +0 -31
- package/esm2022/lib/auth/public-api.mjs +0 -44
- package/esm2022/lib/auth/services/authentication.service.mjs +0 -190
- package/esm2022/lib/auth/services/base-authentication.service.mjs +0 -99
- package/esm2022/lib/auth/services/identity-group.service.mjs +0 -269
- package/esm2022/lib/auth/services/identity-role.service.mjs +0 -99
- package/esm2022/lib/auth/services/identity-user.service.mjs +0 -443
- package/esm2022/lib/auth/services/jwt-helper.service.mjs +0 -205
- package/esm2022/lib/auth/services/oauth2.service.mjs +0 -69
- package/esm2022/lib/auth/services/time-sync.service.mjs +0 -83
- package/esm2022/lib/auth/services/user-access.service.mjs +0 -110
- package/esm2022/lib/avatar/avatar.component.mjs +0 -51
- package/esm2022/lib/blank-page/blank-page.component.mjs +0 -31
- package/esm2022/lib/blank-page/blank-page.module.mjs +0 -33
- package/esm2022/lib/blank-page/index.mjs +0 -18
- package/esm2022/lib/blank-page/public-api.mjs +0 -19
- package/esm2022/lib/button/button.component.mjs +0 -61
- package/esm2022/lib/card-view/card-view.module.mjs +0 -80
- package/esm2022/lib/card-view/components/base-card-view.mjs +0 -51
- package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +0 -66
- package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +0 -56
- package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +0 -40
- package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +0 -177
- package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +0 -108
- package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +0 -65
- package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +0 -47
- package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +0 -138
- package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +0 -114
- package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +0 -240
- package/esm2022/lib/card-view/components/card-view.components.mjs +0 -28
- package/esm2022/lib/card-view/index.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +0 -29
- package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +0 -18
- package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +0 -28
- package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +0 -64
- package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +0 -58
- package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +0 -28
- package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +0 -33
- package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +0 -27
- package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +0 -32
- package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +0 -41
- package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +0 -40
- package/esm2022/lib/card-view/models/card-view.models.mjs +0 -29
- package/esm2022/lib/card-view/public-api.mjs +0 -25
- package/esm2022/lib/card-view/services/card-item-types.service.mjs +0 -54
- package/esm2022/lib/card-view/services/card-view-update.service.mjs +0 -59
- package/esm2022/lib/card-view/services/card-view.services.mjs +0 -19
- package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +0 -31
- package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +0 -34
- package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +0 -32
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +0 -31
- package/esm2022/lib/card-view/validators/card-view.validators.mjs +0 -26
- package/esm2022/lib/card-view/validators/validators.map.mjs +0 -26
- package/esm2022/lib/clipboard/clipboard.directive.mjs +0 -99
- package/esm2022/lib/clipboard/clipboard.module.mjs +0 -34
- package/esm2022/lib/clipboard/clipboard.service.mjs +0 -103
- package/esm2022/lib/clipboard/index.mjs +0 -18
- package/esm2022/lib/clipboard/public-api.mjs +0 -21
- package/esm2022/lib/comments/comment-list/comment-list.component.mjs +0 -53
- package/esm2022/lib/comments/comment-list/comment-list.module.mjs +0 -33
- package/esm2022/lib/comments/comment-list/index.mjs +0 -18
- package/esm2022/lib/comments/comment-list/public-api.mjs +0 -19
- package/esm2022/lib/comments/comments.component.mjs +0 -128
- package/esm2022/lib/comments/comments.module.mjs +0 -33
- package/esm2022/lib/comments/index.mjs +0 -18
- package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +0 -18
- package/esm2022/lib/comments/interfaces/comments.token.mjs +0 -19
- package/esm2022/lib/comments/public-api.mjs +0 -22
- package/esm2022/lib/common/index.mjs +0 -35
- package/esm2022/lib/common/interface/search-component.interface.mjs +0 -18
- package/esm2022/lib/common/mock/app-config.service.mock.mjs +0 -47
- package/esm2022/lib/common/models/default-languages.model.mjs +0 -36
- package/esm2022/lib/common/models/log-levels.model.mjs +0 -33
- package/esm2022/lib/common/models/user-info-mode.enum.mjs +0 -25
- package/esm2022/lib/common/services/cookie.service.mjs +0 -82
- package/esm2022/lib/common/services/download.service.mjs +0 -102
- package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +0 -89
- package/esm2022/lib/common/services/highlight-transform.service.mjs +0 -61
- package/esm2022/lib/common/services/language-item.interface.mjs +0 -18
- package/esm2022/lib/common/services/log.service.mjs +0 -171
- package/esm2022/lib/common/services/page-title.service.mjs +0 -63
- package/esm2022/lib/common/services/sort-by-category.service.mjs +0 -81
- package/esm2022/lib/common/services/storage.service.mjs +0 -143
- package/esm2022/lib/common/services/thumbnail.service.mjs +0 -194
- package/esm2022/lib/common/services/url.service.mjs +0 -45
- package/esm2022/lib/common/services/user-preferences.service.mjs +0 -238
- package/esm2022/lib/common/utils/date-fns-adapter.mjs +0 -115
- package/esm2022/lib/common/utils/date-fns-utils.mjs +0 -222
- package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +0 -134
- package/esm2022/lib/common/utils/file-utils.mjs +0 -65
- package/esm2022/lib/common/utils/index.mjs +0 -18
- package/esm2022/lib/common/utils/moment-date-adapter.mjs +0 -202
- package/esm2022/lib/common/utils/moment-date-formats.model.mjs +0 -32
- package/esm2022/lib/common/utils/object-utils.mjs +0 -107
- package/esm2022/lib/common/utils/public-api.mjs +0 -25
- package/esm2022/lib/common/utils/string-utils.mjs +0 -45
- package/esm2022/lib/context-menu/animations.mjs +0 -33
- package/esm2022/lib/context-menu/context-menu-list.component.mjs +0 -92
- package/esm2022/lib/context-menu/context-menu-overlay.mjs +0 -25
- package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +0 -109
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -63
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -35
- package/esm2022/lib/context-menu/context-menu.tokens.mjs +0 -19
- package/esm2022/lib/context-menu/index.mjs +0 -18
- package/esm2022/lib/context-menu/interfaces.mjs +0 -18
- package/esm2022/lib/context-menu/public-api.mjs +0 -21
- package/esm2022/lib/core.module.mjs +0 -314
- package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +0 -45
- package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +0 -65
- package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +0 -55
- package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +0 -114
- package/esm2022/lib/datatable/components/data-cell.event.mjs +0 -31
- package/esm2022/lib/datatable/components/data-row-action.event.mjs +0 -34
- package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +0 -915
- package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +0 -126
- package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +0 -98
- package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +0 -78
- package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +0 -60
- package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +0 -49
- package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +0 -67
- package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +0 -86
- package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +0 -69
- package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +0 -153
- package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +0 -42
- package/esm2022/lib/datatable/data/data-column.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-row-event.model.mjs +0 -26
- package/esm2022/lib/datatable/data/data-row-update.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-row.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-sorting.model.mjs +0 -24
- package/esm2022/lib/datatable/data/data-table.schema.mjs +0 -132
- package/esm2022/lib/datatable/data/datatable-adapter.mjs +0 -18
- package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +0 -46
- package/esm2022/lib/datatable/data/object-datarow.model.mjs +0 -38
- package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +0 -134
- package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +0 -45
- package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +0 -36
- package/esm2022/lib/datatable/data-column/data-column.component.mjs +0 -114
- package/esm2022/lib/datatable/data-column/index.mjs +0 -18
- package/esm2022/lib/datatable/data-column/public-api.mjs +0 -20
- package/esm2022/lib/datatable/datatable.module.mjs +0 -161
- package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +0 -35
- package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +0 -30
- package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +0 -35
- package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +0 -89
- package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +0 -43
- package/esm2022/lib/datatable/directives/loading-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +0 -43
- package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +0 -173
- package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +0 -72
- package/esm2022/lib/datatable/directives/resizable/types.mjs +0 -18
- package/esm2022/lib/datatable/index.mjs +0 -18
- package/esm2022/lib/datatable/public-api.mjs +0 -55
- package/esm2022/lib/datatable/services/datatable.service.mjs +0 -33
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +0 -50
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +0 -38
- package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +0 -18
- package/esm2022/lib/dialogs/dialog/dialog.component.mjs +0 -71
- package/esm2022/lib/dialogs/dialog/dialog.model.mjs +0 -22
- package/esm2022/lib/dialogs/dialog/index.mjs +0 -20
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +0 -51
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +0 -38
- package/esm2022/lib/dialogs/index.mjs +0 -18
- package/esm2022/lib/dialogs/public-api.mjs +0 -25
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +0 -74
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +0 -18
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +0 -33
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +0 -64
- package/esm2022/lib/directives/directive.module.mjs +0 -56
- package/esm2022/lib/directives/highlight.directive.mjs +0 -67
- package/esm2022/lib/directives/index.mjs +0 -18
- package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +0 -67
- package/esm2022/lib/directives/logout.directive.mjs +0 -72
- package/esm2022/lib/directives/public-api.mjs +0 -24
- package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +0 -60
- package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +0 -104
- package/esm2022/lib/directives/upload.directive.mjs +0 -241
- package/esm2022/lib/dynamic-chip-list/chip.mjs +0 -18
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +0 -205
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +0 -33
- package/esm2022/lib/dynamic-chip-list/index.mjs +0 -18
- package/esm2022/lib/dynamic-chip-list/public-api.mjs +0 -20
- package/esm2022/lib/events/base-ui.event.mjs +0 -21
- package/esm2022/lib/events/base.event.mjs +0 -29
- package/esm2022/lib/events/index.mjs +0 -18
- package/esm2022/lib/events/public-api.mjs +0 -19
- package/esm2022/lib/form/components/form-base.component.mjs +0 -212
- package/esm2022/lib/form/components/form-custom-button.directive.mjs +0 -30
- package/esm2022/lib/form/components/form-field/form-field.component.mjs +0 -142
- package/esm2022/lib/form/components/form-renderer.component.mjs +0 -162
- package/esm2022/lib/form/components/form-section/form-section.component.mjs +0 -46
- package/esm2022/lib/form/components/helpers/buttons-visibility.mjs +0 -37
- package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +0 -37
- package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +0 -48
- package/esm2022/lib/form/components/middlewares/middleware.mjs +0 -19
- package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +0 -78
- package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +0 -60
- package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +0 -53
- package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +0 -28
- package/esm2022/lib/form/components/widgets/core/container.model.mjs +0 -50
- package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +0 -52
- package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +0 -38
- package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/external-content.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +0 -74
- package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +0 -23
- package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +0 -268
- package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +0 -490
- package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +0 -32
- package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +0 -38
- package/esm2022/lib/form/components/widgets/core/form-values.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +0 -33
- package/esm2022/lib/form/components/widgets/core/form.model.mjs +0 -387
- package/esm2022/lib/form/components/widgets/core/group.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/index.mjs +0 -49
- package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +0 -115
- package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/tab.model.mjs +0 -34
- package/esm2022/lib/form/components/widgets/core/theme.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +0 -27
- package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/date/date.widget.mjs +0 -163
- package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +0 -154
- package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +0 -54
- package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +0 -86
- package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +0 -47
- package/esm2022/lib/form/components/widgets/display-text/index.mjs +0 -19
- package/esm2022/lib/form/components/widgets/error/error.component.mjs +0 -93
- package/esm2022/lib/form/components/widgets/header/header.schema.mjs +0 -86
- package/esm2022/lib/form/components/widgets/header/header.widget.mjs +0 -43
- package/esm2022/lib/form/components/widgets/header/index.mjs +0 -19
- package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +0 -71
- package/esm2022/lib/form/components/widgets/index.mjs +0 -71
- package/esm2022/lib/form/components/widgets/json/json.widget.mjs +0 -67
- package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +0 -56
- package/esm2022/lib/form/components/widgets/number/number.widget.mjs +0 -66
- package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +0 -18
- package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +0 -215
- package/esm2022/lib/form/components/widgets/text/text.widget.mjs +0 -66
- package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +0 -63
- package/esm2022/lib/form/components/widgets/widget.component.mjs +0 -110
- package/esm2022/lib/form/events/form-error.event.mjs +0 -24
- package/esm2022/lib/form/events/form-field.event.mjs +0 -24
- package/esm2022/lib/form/events/form-rules.event.mjs +0 -25
- package/esm2022/lib/form/events/form-spinner.event.mjs +0 -23
- package/esm2022/lib/form/events/form.event.mjs +0 -29
- package/esm2022/lib/form/events/index.mjs +0 -24
- package/esm2022/lib/form/events/validate-form-field.event.mjs +0 -24
- package/esm2022/lib/form/events/validate-form.event.mjs +0 -25
- package/esm2022/lib/form/form-base.module.mjs +0 -90
- package/esm2022/lib/form/index.mjs +0 -18
- package/esm2022/lib/form/models/form-rules.model.mjs +0 -77
- package/esm2022/lib/form/models/task-process-variable.model.mjs +0 -19
- package/esm2022/lib/form/models/widget-visibility.model.mjs +0 -104
- package/esm2022/lib/form/pipes/field-style.pipe.mjs +0 -45
- package/esm2022/lib/form/pipes/index.mjs +0 -18
- package/esm2022/lib/form/public-api.mjs +0 -35
- package/esm2022/lib/form/services/form-rendering.service.mjs +0 -53
- package/esm2022/lib/form/services/form-validation-service.interface.mjs +0 -18
- package/esm2022/lib/form/services/form.service.mjs +0 -86
- package/esm2022/lib/form/services/widget-visibility.service.mjs +0 -294
- package/esm2022/lib/header/header.component.mjs +0 -73
- package/esm2022/lib/header/index.mjs +0 -18
- package/esm2022/lib/header/navbar/navbar-item.component.mjs +0 -37
- package/esm2022/lib/header/navbar/navbar.component.mjs +0 -36
- package/esm2022/lib/header/public-api.mjs +0 -20
- package/esm2022/lib/icon/icon.component.mjs +0 -51
- package/esm2022/lib/icon/icon.module.mjs +0 -36
- package/esm2022/lib/icon/index.mjs +0 -18
- package/esm2022/lib/icon/public-api.mjs +0 -19
- package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +0 -87
- package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +0 -33
- package/esm2022/lib/identity-user-info/index.mjs +0 -18
- package/esm2022/lib/identity-user-info/public-api.mjs +0 -19
- package/esm2022/lib/info-drawer/index.mjs +0 -18
- package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +0 -71
- package/esm2022/lib/info-drawer/info-drawer.component.mjs +0 -114
- package/esm2022/lib/info-drawer/info-drawer.module.mjs +0 -53
- package/esm2022/lib/info-drawer/public-api.mjs +0 -20
- package/esm2022/lib/interface/index.mjs +0 -18
- package/esm2022/lib/interface/injection.tokens.mjs +0 -19
- package/esm2022/lib/interface/public-api.mjs +0 -18
- package/esm2022/lib/language-menu/index.mjs +0 -18
- package/esm2022/lib/language-menu/language-menu.component.mjs +0 -61
- package/esm2022/lib/language-menu/language-menu.module.mjs +0 -35
- package/esm2022/lib/language-menu/language-picker.component.mjs +0 -78
- package/esm2022/lib/language-menu/public-api.mjs +0 -21
- package/esm2022/lib/language-menu/service/language.service.interface.mjs +0 -18
- package/esm2022/lib/language-menu/service/language.service.mjs +0 -34
- package/esm2022/lib/layout/components/header/header.component.mjs +0 -100
- package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +0 -180
- package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +0 -82
- package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +0 -145
- package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +0 -33
- package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +0 -33
- package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +0 -33
- package/esm2022/lib/layout/index.mjs +0 -18
- package/esm2022/lib/layout/layout.module.mjs +0 -72
- package/esm2022/lib/layout/public-api.mjs +0 -25
- package/esm2022/lib/login/components/login/login.component.mjs +0 -368
- package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +0 -18
- package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +0 -58
- package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +0 -48
- package/esm2022/lib/login/directives/login-footer.directive.mjs +0 -41
- package/esm2022/lib/login/directives/login-header.directive.mjs +0 -41
- package/esm2022/lib/login/index.mjs +0 -18
- package/esm2022/lib/login/login.module.mjs +0 -54
- package/esm2022/lib/login/models/login-error.event.mjs +0 -22
- package/esm2022/lib/login/models/login-submit.event.mjs +0 -32
- package/esm2022/lib/login/models/login-success.event.mjs +0 -24
- package/esm2022/lib/login/public-api.mjs +0 -27
- package/esm2022/lib/material.module.mjs +0 -254
- package/esm2022/lib/mock/cookie.service.mock.mjs +0 -43
- package/esm2022/lib/mock/data-column.mock.mjs +0 -73
- package/esm2022/lib/mock/event.mock.mjs +0 -39
- package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +0 -225
- package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +0 -347
- package/esm2022/lib/mock/form/form-definition.mock.mjs +0 -403
- package/esm2022/lib/mock/form/form.component.mock.mjs +0 -275
- package/esm2022/lib/mock/form/form.service.mock.mjs +0 -248
- package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +0 -1835
- package/esm2022/lib/mock/index.mjs +0 -18
- package/esm2022/lib/mock/public-api.mjs +0 -27
- package/esm2022/lib/mock/translation.service.mock.mjs +0 -44
- package/esm2022/lib/models/comment.model.mjs +0 -51
- package/esm2022/lib/models/component.model.mjs +0 -24
- package/esm2022/lib/models/decimal-number.model.mjs +0 -26
- package/esm2022/lib/models/general-user.model.mjs +0 -24
- package/esm2022/lib/models/index.mjs +0 -18
- package/esm2022/lib/models/pagination.model.mjs +0 -29
- package/esm2022/lib/models/path.model.mjs +0 -24
- package/esm2022/lib/models/product-version.model.mjs +0 -28
- package/esm2022/lib/models/public-api.mjs +0 -24
- package/esm2022/lib/models/request-pagination.model.mjs +0 -25
- package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +0 -44
- package/esm2022/lib/notifications/components/notification-history.component.mjs +0 -139
- package/esm2022/lib/notifications/helpers/notification.factory.mjs +0 -43
- package/esm2022/lib/notifications/index.mjs +0 -18
- package/esm2022/lib/notifications/models/notification.model.mjs +0 -25
- package/esm2022/lib/notifications/notification-history.module.mjs +0 -35
- package/esm2022/lib/notifications/public-api.mjs +0 -23
- package/esm2022/lib/notifications/services/notification.service.mjs +0 -166
- package/esm2022/lib/pagination/index.mjs +0 -18
- package/esm2022/lib/pagination/infinite-pagination.component.mjs +0 -112
- package/esm2022/lib/pagination/paginated-component.interface.mjs +0 -18
- package/esm2022/lib/pagination/pagination-component.interface.mjs +0 -18
- package/esm2022/lib/pagination/pagination.component.mjs +0 -263
- package/esm2022/lib/pagination/pagination.module.mjs +0 -35
- package/esm2022/lib/pagination/public-api.mjs +0 -22
- package/esm2022/lib/pipes/date-time.pipe.mjs +0 -46
- package/esm2022/lib/pipes/decimal-number.pipe.mjs +0 -78
- package/esm2022/lib/pipes/file-size.pipe.mjs +0 -54
- package/esm2022/lib/pipes/file-type.pipe.mjs +0 -40
- package/esm2022/lib/pipes/format-space.pipe.mjs +0 -39
- package/esm2022/lib/pipes/full-name.pipe.mjs +0 -43
- package/esm2022/lib/pipes/index.mjs +0 -18
- package/esm2022/lib/pipes/localized-date.pipe.mjs +0 -70
- package/esm2022/lib/pipes/multi-value.pipe.mjs +0 -37
- package/esm2022/lib/pipes/pipe.module.mjs +0 -83
- package/esm2022/lib/pipes/public-api.mjs +0 -30
- package/esm2022/lib/pipes/text-highlight.pipe.mjs +0 -39
- package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -65
- package/esm2022/lib/pipes/truncate.pipe.mjs +0 -33
- package/esm2022/lib/pipes/user-initial.pipe.mjs +0 -52
- package/esm2022/lib/pipes/user-like.interface.mjs +0 -18
- package/esm2022/lib/progress/progress.component.mjs +0 -90
- package/esm2022/lib/search-text/animations.mjs +0 -32
- package/esm2022/lib/search-text/index.mjs +0 -18
- package/esm2022/lib/search-text/models/search-text-input.model.mjs +0 -23
- package/esm2022/lib/search-text/public-api.mjs +0 -22
- package/esm2022/lib/search-text/search-text-input.component.mjs +0 -294
- package/esm2022/lib/search-text/search-text-input.module.mjs +0 -35
- package/esm2022/lib/search-text/search-trigger.directive.mjs +0 -181
- package/esm2022/lib/snackbar-content/index.mjs +0 -18
- package/esm2022/lib/snackbar-content/public-api.mjs +0 -20
- package/esm2022/lib/snackbar-content/snack-bar-data.mjs +0 -18
- package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +0 -48
- package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +0 -38
- package/esm2022/lib/sorting-picker/index.mjs +0 -18
- package/esm2022/lib/sorting-picker/public-api.mjs +0 -18
- package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +0 -68
- package/esm2022/lib/templates/empty-content/empty-content.component.mjs +0 -44
- package/esm2022/lib/templates/error-content/error-content.component.mjs +0 -62
- package/esm2022/lib/templates/index.mjs +0 -18
- package/esm2022/lib/templates/public-api.mjs +0 -20
- package/esm2022/lib/templates/template.module.mjs +0 -38
- package/esm2022/lib/testing/core.story.module.mjs +0 -39
- package/esm2022/lib/testing/core.testing.module.mjs +0 -35
- package/esm2022/lib/testing/index.mjs +0 -22
- package/esm2022/lib/testing/noop-auth.module.mjs +0 -80
- package/esm2022/lib/testing/noop-translate.module.mjs +0 -61
- package/esm2022/lib/testing/unit-testing-utils.mjs +0 -364
- package/esm2022/lib/toolbar/index.mjs +0 -18
- package/esm2022/lib/toolbar/public-api.mjs +0 -21
- package/esm2022/lib/toolbar/toolbar-divider.component.mjs +0 -27
- package/esm2022/lib/toolbar/toolbar-title.component.mjs +0 -32
- package/esm2022/lib/toolbar/toolbar.component.mjs +0 -40
- package/esm2022/lib/toolbar/toolbar.module.mjs +0 -36
- package/esm2022/lib/translation/index.mjs +0 -18
- package/esm2022/lib/translation/public-api.mjs +0 -19
- package/esm2022/lib/translation/translate-loader.service.mjs +0 -148
- package/esm2022/lib/translation/translation.service.mjs +0 -148
- package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +0 -37
- package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +0 -221
- package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +0 -64
- package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +0 -549
- package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +0 -61
- package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +0 -49
- package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +0 -198
- package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +0 -77
- package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +0 -33
- package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +0 -219
- package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +0 -46
- package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer.component.mjs +0 -462
- package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +0 -67
- package/esm2022/lib/viewer/index.mjs +0 -18
- package/esm2022/lib/viewer/models/download-prompt.actions.mjs +0 -23
- package/esm2022/lib/viewer/models/viewer.model.mjs +0 -22
- package/esm2022/lib/viewer/public-api.mjs +0 -40
- package/esm2022/lib/viewer/services/rendering-queue.services.mjs +0 -179
- package/esm2022/lib/viewer/services/view-util.service.mjs +0 -149
- package/esm2022/lib/viewer/viewer.module.mjs +0 -112
- package/esm2022/public-api.mjs +0 -60
- package/esm2022/shell/alfresco-adf-core-shell.mjs +0 -5
- package/esm2022/shell/index.mjs +0 -20
- package/esm2022/shell/lib/components/shell/shell.component.mjs +0 -122
- package/esm2022/shell/lib/services/shell-app.service.mjs +0 -22
- package/esm2022/shell/lib/shell.module.mjs +0 -79
- package/esm2022/shell/lib/shell.routes.mjs +0 -25
|
@@ -1,368 +0,0 @@
|
|
|
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 { CommonModule } from '@angular/common';
|
|
18
|
-
import { Component, DestroyRef, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
19
|
-
import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
|
|
20
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
21
|
-
import { MatCardModule } from '@angular/material/card';
|
|
22
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
23
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
24
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
25
|
-
import { MatInputModule } from '@angular/material/input';
|
|
26
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
27
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
28
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
29
|
-
import { AppConfigService, AppConfigValues } from '../../../app-config';
|
|
30
|
-
import { AuthenticationService, BasicAlfrescoAuthService } from '../../../auth';
|
|
31
|
-
import { OidcAuthenticationService } from '../../../auth/oidc/oidc-authentication.service';
|
|
32
|
-
import { UserPreferencesService } from '../../../common';
|
|
33
|
-
import { TranslationService } from '../../../translation';
|
|
34
|
-
import { LoginErrorEvent } from '../../models/login-error.event';
|
|
35
|
-
import { LoginSubmitEvent } from '../../models/login-submit.event';
|
|
36
|
-
import { LoginSuccessEvent } from '../../models/login-success.event';
|
|
37
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
38
|
-
import * as i0 from "@angular/core";
|
|
39
|
-
import * as i1 from "@angular/forms";
|
|
40
|
-
import * as i2 from "../../../auth";
|
|
41
|
-
import * as i3 from "../../../auth/oidc/oidc-authentication.service";
|
|
42
|
-
import * as i4 from "../../../translation";
|
|
43
|
-
import * as i5 from "@angular/router";
|
|
44
|
-
import * as i6 from "../../../app-config";
|
|
45
|
-
import * as i7 from "../../../common";
|
|
46
|
-
import * as i8 from "@angular/common";
|
|
47
|
-
import * as i9 from "@angular/material/card";
|
|
48
|
-
import * as i10 from "@ngx-translate/core";
|
|
49
|
-
import * as i11 from "@angular/material/icon";
|
|
50
|
-
import * as i12 from "@angular/material/form-field";
|
|
51
|
-
import * as i13 from "@angular/material/input";
|
|
52
|
-
import * as i14 from "@angular/material/button";
|
|
53
|
-
import * as i15 from "@angular/material/progress-spinner";
|
|
54
|
-
import * as i16 from "@angular/material/checkbox";
|
|
55
|
-
// eslint-disable-next-line no-shadow
|
|
56
|
-
var LoginSteps;
|
|
57
|
-
(function (LoginSteps) {
|
|
58
|
-
LoginSteps[LoginSteps["Landing"] = 0] = "Landing";
|
|
59
|
-
LoginSteps[LoginSteps["Checking"] = 1] = "Checking";
|
|
60
|
-
LoginSteps[LoginSteps["Welcome"] = 2] = "Welcome";
|
|
61
|
-
})(LoginSteps || (LoginSteps = {}));
|
|
62
|
-
export class LoginComponent {
|
|
63
|
-
constructor(_fb, authService, basicAlfrescoAuthService, oidcAuthenticationService, translateService, router, appConfig, userPreferences, route) {
|
|
64
|
-
this._fb = _fb;
|
|
65
|
-
this.authService = authService;
|
|
66
|
-
this.basicAlfrescoAuthService = basicAlfrescoAuthService;
|
|
67
|
-
this.oidcAuthenticationService = oidcAuthenticationService;
|
|
68
|
-
this.translateService = translateService;
|
|
69
|
-
this.router = router;
|
|
70
|
-
this.appConfig = appConfig;
|
|
71
|
-
this.userPreferences = userPreferences;
|
|
72
|
-
this.route = route;
|
|
73
|
-
this.isPasswordShow = false;
|
|
74
|
-
/**
|
|
75
|
-
* Should the `Remember me` checkbox be shown? When selected, this
|
|
76
|
-
* option will remember the logged-in user after the browser is closed
|
|
77
|
-
* to avoid logging in repeatedly.
|
|
78
|
-
*/
|
|
79
|
-
this.showRememberMe = true;
|
|
80
|
-
/** Should the extra actions (`Need Help`, `Register`, etc) be shown? */
|
|
81
|
-
this.showLoginActions = true;
|
|
82
|
-
/** Sets the URL of the NEED HELP link in the footer. */
|
|
83
|
-
this.needHelpLink = '';
|
|
84
|
-
/** Sets the URL of the REGISTER link in the footer. */
|
|
85
|
-
this.registerLink = '';
|
|
86
|
-
/** Path to a custom logo image. */
|
|
87
|
-
this.logoImageUrl = './assets/images/alfresco-logo.svg';
|
|
88
|
-
/** Path to a custom background image. */
|
|
89
|
-
this.backgroundImageUrl = './assets/images/background.svg';
|
|
90
|
-
/** The copyright text below the login box. */
|
|
91
|
-
this.copyrightText = '\u00A9 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.';
|
|
92
|
-
/** Route to redirect to on successful login. */
|
|
93
|
-
this.successRoute = null;
|
|
94
|
-
/** Emitted when the login is successful. */
|
|
95
|
-
this.success = new EventEmitter();
|
|
96
|
-
/** Emitted when the login fails. */
|
|
97
|
-
this.error = new EventEmitter();
|
|
98
|
-
/** Emitted when the login form is submitted. */
|
|
99
|
-
this.executeSubmit = new EventEmitter();
|
|
100
|
-
this.ssoLogin = false;
|
|
101
|
-
this.isError = false;
|
|
102
|
-
this.actualLoginStep = LoginSteps.Landing;
|
|
103
|
-
this.LoginSteps = LoginSteps;
|
|
104
|
-
this.rememberMe = true;
|
|
105
|
-
this.minLength = 2;
|
|
106
|
-
this.destroyRef = inject(DestroyRef);
|
|
107
|
-
}
|
|
108
|
-
ngOnInit() {
|
|
109
|
-
this.initFormError();
|
|
110
|
-
this.initFormFieldsDefault();
|
|
111
|
-
this.initFormFieldsMessages();
|
|
112
|
-
this.successRoute = this.appConfig.get('successRoute', this.successRoute);
|
|
113
|
-
if (this.authService.isLoggedIn()) {
|
|
114
|
-
this.router.navigate([this.successRoute]);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
if (this.authService.isOauth()) {
|
|
118
|
-
const oauth = this.appConfig.oauth2;
|
|
119
|
-
if (oauth?.silentLogin) {
|
|
120
|
-
this.redirectToSSOLogin();
|
|
121
|
-
}
|
|
122
|
-
else if (oauth?.implicitFlow || oauth?.codeFlow) {
|
|
123
|
-
this.ssoLogin = true;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
this.route.queryParams.subscribe((params) => {
|
|
127
|
-
const url = params['redirectUrl'];
|
|
128
|
-
const provider = this.appConfig.get(AppConfigValues.PROVIDERS);
|
|
129
|
-
this.basicAlfrescoAuthService.setRedirect({ provider, url });
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
if (this.fieldsValidation) {
|
|
133
|
-
this.form = this._fb.group(this.fieldsValidation);
|
|
134
|
-
}
|
|
135
|
-
this.form.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data) => this.onValueChanged(data));
|
|
136
|
-
}
|
|
137
|
-
submit() {
|
|
138
|
-
this.onSubmit(this.form.value);
|
|
139
|
-
}
|
|
140
|
-
redirectToSSOLogin() {
|
|
141
|
-
this.oidcAuthenticationService.ssoLogin();
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Method called on submit form
|
|
145
|
-
*
|
|
146
|
-
* @param values login form values
|
|
147
|
-
*/
|
|
148
|
-
onSubmit(values) {
|
|
149
|
-
this.disableError();
|
|
150
|
-
const args = new LoginSubmitEvent({
|
|
151
|
-
controls: { username: this.form.controls.username }
|
|
152
|
-
});
|
|
153
|
-
this.executeSubmit.emit(args);
|
|
154
|
-
if (!args.defaultPrevented) {
|
|
155
|
-
this.actualLoginStep = LoginSteps.Checking;
|
|
156
|
-
this.performLogin(values);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
implicitLogin() {
|
|
160
|
-
if (this.authService.isLoggedIn()) {
|
|
161
|
-
this.router.navigate([this.successRoute]);
|
|
162
|
-
}
|
|
163
|
-
this.oidcAuthenticationService.ssoLogin();
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* The method check the error in the form and push the error in the formError object
|
|
167
|
-
*
|
|
168
|
-
* @param data form data
|
|
169
|
-
*/
|
|
170
|
-
onValueChanged(data) {
|
|
171
|
-
this.disableError();
|
|
172
|
-
for (const field in this.formError) {
|
|
173
|
-
if (field) {
|
|
174
|
-
this.formError[field] = '';
|
|
175
|
-
const hasError = (this.form.controls[field].errors && data[field] !== '') || (this.form.controls[field].dirty && !this.form.controls[field].valid);
|
|
176
|
-
if (hasError) {
|
|
177
|
-
for (const key in this.form.controls[field].errors) {
|
|
178
|
-
if (key) {
|
|
179
|
-
const message = this._message[field][key];
|
|
180
|
-
if (message?.value) {
|
|
181
|
-
const translated = this.translateService.instant(message.value, message.params);
|
|
182
|
-
this.formError[field] += translated;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
performLogin(values) {
|
|
191
|
-
this.authService.login(values.username, values.password, this.rememberMe).subscribe(async (token) => {
|
|
192
|
-
const redirectUrl = this.basicAlfrescoAuthService.getRedirect();
|
|
193
|
-
this.actualLoginStep = LoginSteps.Welcome;
|
|
194
|
-
this.userPreferences.setStoragePrefix(values.username);
|
|
195
|
-
values.password = null;
|
|
196
|
-
this.success.emit(new LoginSuccessEvent(token, values.username, null));
|
|
197
|
-
if (redirectUrl) {
|
|
198
|
-
this.basicAlfrescoAuthService.setRedirect(null);
|
|
199
|
-
await this.router.navigateByUrl(redirectUrl);
|
|
200
|
-
}
|
|
201
|
-
else if (this.successRoute) {
|
|
202
|
-
await this.router.navigate([this.successRoute]);
|
|
203
|
-
}
|
|
204
|
-
}, (err) => {
|
|
205
|
-
this.actualLoginStep = LoginSteps.Landing;
|
|
206
|
-
this.displayErrorMessage(err);
|
|
207
|
-
this.isError = true;
|
|
208
|
-
this.error.emit(new LoginErrorEvent(err));
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Check and display the right error message in the UI
|
|
213
|
-
*
|
|
214
|
-
* @param err error object
|
|
215
|
-
*/
|
|
216
|
-
displayErrorMessage(err) {
|
|
217
|
-
if (err.error?.crossDomain && err.error.message.indexOf('Access-Control-Allow-Origin') !== -1) {
|
|
218
|
-
this.errorMsg = err.error.message;
|
|
219
|
-
}
|
|
220
|
-
else if (err.status === 403 && err.message.indexOf('Invalid CSRF-token') !== -1) {
|
|
221
|
-
this.errorMsg = 'LOGIN.MESSAGES.LOGIN-ERROR-CSRF';
|
|
222
|
-
}
|
|
223
|
-
else if (err.status === 403 && err.message.indexOf('The system is currently in read-only mode') !== -1) {
|
|
224
|
-
this.errorMsg = 'LOGIN.MESSAGES.LOGIN-ECM-LICENSE';
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
this.errorMsg = 'LOGIN.MESSAGES.LOGIN-ERROR-CREDENTIALS';
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Add a custom form error for a field
|
|
232
|
-
*
|
|
233
|
-
* @param field field
|
|
234
|
-
* @param msg error message
|
|
235
|
-
*/
|
|
236
|
-
addCustomFormError(field, msg) {
|
|
237
|
-
this.formError[field] += msg;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Add a custom validation rule error for a field
|
|
241
|
-
*
|
|
242
|
-
* @param field field
|
|
243
|
-
* @param ruleId - i.e. required | minlength | maxlength
|
|
244
|
-
* @param msg message
|
|
245
|
-
* @param params parameters
|
|
246
|
-
*/
|
|
247
|
-
addCustomValidationError(field, ruleId, msg, params) {
|
|
248
|
-
if (field !== '__proto__' && field !== 'constructor' && field !== 'prototype') {
|
|
249
|
-
this._message[field][ruleId] = {
|
|
250
|
-
value: msg,
|
|
251
|
-
params
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Display and hide the password value.
|
|
257
|
-
*
|
|
258
|
-
* @param event input event
|
|
259
|
-
*/
|
|
260
|
-
toggleShowPassword(event) {
|
|
261
|
-
event.stopPropagation();
|
|
262
|
-
this.isPasswordShow = !this.isPasswordShow;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* The method return if a field is valid or not
|
|
266
|
-
*
|
|
267
|
-
* @param field form field to check
|
|
268
|
-
* @returns `true` if form field should display an error, otherwise `false`
|
|
269
|
-
*/
|
|
270
|
-
isErrorStyle(field) {
|
|
271
|
-
return !field.valid && field.dirty && !field.pristine;
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Trim username
|
|
275
|
-
*
|
|
276
|
-
* @param event event
|
|
277
|
-
*/
|
|
278
|
-
trimUsername(event) {
|
|
279
|
-
event.target.value = event.target.value.trim();
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Default formError values
|
|
283
|
-
*/
|
|
284
|
-
initFormError() {
|
|
285
|
-
this.formError = {
|
|
286
|
-
username: '',
|
|
287
|
-
password: ''
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Init form fields messages
|
|
292
|
-
*/
|
|
293
|
-
initFormFieldsMessages() {
|
|
294
|
-
this._message = {
|
|
295
|
-
username: {
|
|
296
|
-
required: {
|
|
297
|
-
value: 'LOGIN.MESSAGES.USERNAME-REQUIRED'
|
|
298
|
-
},
|
|
299
|
-
minlength: {
|
|
300
|
-
value: 'LOGIN.MESSAGES.USERNAME-MIN',
|
|
301
|
-
params: {
|
|
302
|
-
minLength: this.minLength
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
password: {
|
|
307
|
-
required: {
|
|
308
|
-
value: 'LOGIN.MESSAGES.PASSWORD-REQUIRED'
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
initFormFieldsDefault() {
|
|
314
|
-
this.form = this._fb.group({
|
|
315
|
-
username: ['', Validators.compose([Validators.required, Validators.minLength(this.minLength)])],
|
|
316
|
-
password: ['', Validators.required]
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Disable the error flag
|
|
321
|
-
*/
|
|
322
|
-
disableError() {
|
|
323
|
-
this.isError = false;
|
|
324
|
-
this.initFormError();
|
|
325
|
-
}
|
|
326
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.AuthenticationService }, { token: i2.BasicAlfrescoAuthService }, { token: i3.OidcAuthenticationService }, { token: i4.TranslationService }, { token: i5.Router }, { token: i6.AppConfigService }, { token: i7.UserPreferencesService }, { token: i5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
327
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginComponent, isStandalone: true, selector: "adf-login", inputs: { showRememberMe: "showRememberMe", showLoginActions: "showLoginActions", needHelpLink: "needHelpLink", registerLink: "registerLink", logoImageUrl: "logoImageUrl", backgroundImageUrl: "backgroundImageUrl", copyrightText: "copyrightText", fieldsValidation: "fieldsValidation", successRoute: "successRoute" }, outputs: { success: "success", error: "error", executeSubmit: "executeSubmit" }, host: { classAttribute: "adf-login" }, ngImport: i0, template: "<div class=\"adf-login-content\" [style.background-image]=\"'url(' + backgroundImageUrl + ')'\">\n <div class=\"adf-ie11FixerParent\">\n <div class=\"adf-ie11FixerChild\">\n\n <mat-card class=\"adf-login-card-wide\">\n <form id=\"adf-login-form\"\n [formGroup]=\"form\"\n autocomplete=\"off\"\n (submit)=\"onSubmit(form.value)\">\n <mat-card-header class=\"adf-login-card-header-text\">\n <mat-card-title>\n <div class=\"adf-alfresco-logo\">\n <!--HEADER TEMPLATE-->\n <ng-template *ngIf=\"headerTemplate\"\n ngFor\n [ngForOf]=\"[data]\"\n [ngForTemplate]=\"headerTemplate\" />\n <img *ngIf=\"!headerTemplate\"\n id=\"adf-login-img-logo\"\n class=\"adf-img-logo\"\n [src]=\"logoImageUrl\"\n alt=\"{{ 'LOGIN.LOGO' | translate }}\">\n </div>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content class=\"adf-login-controls\">\n\n <!--ERRORS AREA-->\n <div class=\"adf-error-container\">\n <div *ngIf=\"isError\"\n id=\"login-error\"\n data-automation-id=\"login-error\"\n class=\"adf-error adf-error-message\">\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n <span class=\"adf-login-error-message\">\n {{ errorMsg | translate }}\n </span>\n </div>\n </div>\n\n <div *ngIf=\"!ssoLogin\">\n\n <!--USERNAME FIELD-->\n <div class=\"adf-login__field adf-login-container\"\n [ngClass]=\"{'adf-is-invalid': isErrorStyle(form.controls.username)}\">\n <mat-form-field class=\"adf-full-width adf-login-form-field\"\n floatPlaceholder=\"never\"\n color=\"primary\">\n <mat-label class=\"adf-login-form-input-label\">\n {{'LOGIN.LABEL.USERNAME' | translate }}\n </mat-label>\n <input matInput\n type=\"text\"\n class=\"adf-login-input\"\n formControlName=\"username\"\n id=\"username\"\n data-automation-id=\"username\"\n autocapitalize=\"none\"\n (blur)=\"trimUsername($event)\">\n </mat-form-field>\n <span *ngIf=\"formError['username']\"\n class=\"adf-login-validation\"\n for=\"username\">\n <span id=\"username-error\"\n class=\"adf-login-error\"\n data-automation-id=\"username-error\">\n {{ formError['username'] | translate }}\n </span>\n </span>\n </div>\n\n <!--PASSWORD FIELD-->\n <div class=\"adf-login__field\">\n <mat-form-field class=\"adf-full-width adf-login-form-field\"\n floatPlaceholder=\"never\"\n color=\"primary\">\n <mat-label class=\"adf-login-form-input-label\">\n {{'LOGIN.LABEL.PASSWORD' | translate }}\n </mat-label>\n <input matInput\n [type]=\"isPasswordShow ? 'text' : 'password'\"\n formControlName=\"password\"\n class=\"adf-login-input\"\n id=\"password\"\n data-automation-id=\"password\">\n <button matSuffix\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"(isPasswordShow ? 'LOGIN.ARIA-LABEL.HIDE-PASSWORD' : 'LOGIN.ARIA-LABEL.SHOW-PASSWORD') | translate\"\n (click)=\"toggleShowPassword($event)\"\n (keyup.enter)=\"toggleShowPassword($event)\"\n [attr.data-automation-id]=\"isPasswordShow ? 'hide_password' : 'show_password'\">\n <mat-icon class=\"adf-login-form-password-icon adf-login-password-icon\">\n {{ isPasswordShow ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n </mat-form-field>\n <span class=\"adf-login-validation\"\n for=\"password\"\n *ngIf=\"formError['password']\">\n <span id=\"password-required\"\n class=\"adf-login-error\"\n data-automation-id=\"password-required\">\n {{ formError['password'] | translate }}\n </span>\n </span>\n </div>\n\n <!--CUSTOM CONTENT-->\n <ng-content />\n\n <br>\n <button type=\"submit\"\n id=\"login-button\"\n class=\"adf-login-button\"\n mat-raised-button\n color=\"accent\"\n [class.adf-isChecking]=\"actualLoginStep === LoginSteps.Checking\"\n [class.adf-isWelcome]=\"actualLoginStep === LoginSteps.Welcome\"\n data-automation-id=\"login-button\"\n [disabled]=\"!form.valid\"\n [attr.aria-label]=\"'LOGIN.BUTTON.LOGIN' | translate\">\n <span *ngIf=\"actualLoginStep === LoginSteps.Landing\"\n class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.LOGIN' | translate }}\n </span>\n <div *ngIf=\"actualLoginStep === LoginSteps.Checking\"\n class=\"adf-interactive-login-label\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.CHECKING' | translate }}\n </span>\n <div class=\"adf-login-spinner-container\">\n <mat-spinner id=\"checking-spinner\"\n class=\"adf-login-checking-spinner\"\n [strokeWidth]=\"4\"\n [diameter]=\"25\" />\n </div>\n </div>\n <div *ngIf=\"actualLoginStep === LoginSteps.Welcome\"\n class=\"adf-interactive-login-label\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.WELCOME' | translate }}\n </span>\n <mat-icon class=\"adf-welcome-icon\">done</mat-icon>\n </div>\n </button>\n <div *ngIf=\"showRememberMe\" class=\"adf-login__remember-me\">\n <mat-checkbox id=\"adf-login-remember\"\n color=\"primary\"\n class=\"adf-login-remember-me\"\n [checked]=\"rememberMe\"\n (change)=\"rememberMe = !rememberMe\">\n <div class=\"adf-login-remember-me-label\">\n {{ 'LOGIN.LABEL.REMEMBER' | translate }}\n </div>\n </mat-checkbox>\n </div>\n </div>\n <div *ngIf=\"ssoLogin\">\n <button type=\"button\"\n (click)=\"implicitLogin()\"\n id=\"login-button-sso\"\n [attr.aria-label]=\"'LOGIN.BUTTON.SSO' | translate\"\n class=\"adf-login-button\"\n mat-raised-button color=\"primary\"\n data-automation-id=\"login-button-sso\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.SSO' | translate }}\n </span>\n </button>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"footerTemplate || showLoginActions\">\n\n <div class=\"adf-login-action-container\">\n <!--FOOTER TEMPLATE-->\n <ng-template *ngIf=\"footerTemplate\"\n ngFor\n [ngForOf]=\"[data]\"\n [ngForTemplate]=\"footerTemplate\" />\n <div class=\"adf-login-action\" *ngIf=\"!footerTemplate && showLoginActions\">\n <div id=\"adf-login-action-left\" class=\"adf-login-action-left\">\n <a href=\"{{ needHelpLink }}\">{{ 'LOGIN.ACTION.HELP' | translate }}</a>\n </div>\n <div id=\"adf-login-action-right\" class=\"adf-login-action-right\">\n <a href=\"{{ registerLink }}\">{{ 'LOGIN.ACTION.REGISTER' | translate }}</a>\n </div>\n </div>\n </div>\n </mat-card-actions>\n </form>\n </mat-card>\n\n <div class=\"adf-copyright\" data-automation-id=\"login-copyright\">\n {{ copyrightText }}\n </div>\n\n </div>\n </div>\n</div>\n", styles: [".adf-login{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0}.adf-login-content{background-size:cover;background-position:center;min-height:100%;min-width:320px;display:flex;justify-content:center;flex-direction:column}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.adf-login-content{display:table;width:100%;height:100%}}.adf-login-content .adf-ie11FixerParent{margin:16px 0;min-width:320px}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.adf-login-content .adf-ie11FixerParent{display:table-cell;vertical-align:middle;width:100%;padding-top:16px}}.adf-login-content .adf-ie11FixerChild{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.adf-login-content .adf-icon-inline{position:absolute;display:block;top:31%;left:82%;width:30px;overflow:hidden}.adf-login-content .adf-login-card-wide{border-radius:8px;background-color:var(--adf-theme-background-dialog-color);box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f;width:450px;min-width:320px;padding:21px 64px 34px;box-sizing:border-box}@media screen and (width <= 482px){.adf-login-content .adf-login-card-wide{width:calc(100% - 32px)}}.adf-login-content .adf-error-container{height:45px}.adf-login-content .adf-error-message{display:flex;flex-direction:row;justify-content:flex-start;color:var(--theme-warn-color);padding:0;margin-bottom:4px;font-size:var(--theme-caption-font-size)}.adf-login-content .adf-error-message .adf-error-icon{margin-right:10px}.adf-login-content .adf-login-card-header-text{padding-bottom:42px;padding-top:0;margin:0 auto}.adf-login-content .adf-img-logo{display:block;margin-left:auto;margin-right:auto}.adf-login-content .adf-alfresco-logo{padding:24px 16px}.adf-login-content .adf-alfresco-logo img{max-height:58px}.adf-login-content .adf-login-button{width:100%;height:36px;line-height:normal;box-shadow:none}.adf-login-content .adf-login-button-label{color:var(--theme-accent-color-default-contrast);font-weight:bolder}.adf-login-content .adf-login-button.adf-isChecking{background-color:#e0f7fa}.adf-login-content .adf-login-button.adf-isChecking .adf-login-button-label{color:var(--theme-primary-color)}.adf-login-content .adf-login-button.adf-isWelcome{background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast)}.adf-login-content .adf-login-button.adf-isWelcome .adf-welcome-icon{margin:5px 0 0 10px}.adf-login-content .adf-interactive-login-label{display:flex;flex-direction:row;line-height:38px;justify-content:center}.adf-login-content .adf-login-spinner-container{margin-left:15px;margin-top:5px}.adf-login-content .adf-login-action{margin-top:20px;display:flex;flex-direction:row;justify-content:space-between}.adf-login-content .adf-login-action-left a,.adf-login-content .adf-login-action-right a{text-decoration:none}.adf-login-content .adf-is-active{background-color:transparent;font-size:var(--theme-caption-font-size);font-weight:400;line-height:1.33;color:var(--theme-warn-color)}.adf-login-content .adf-copyright{min-width:320px;text-align:center;padding:16px 0;font-size:var(--theme-caption-font-size);opacity:.54}.adf-login-content .adf-login-input:is(input){font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-form-field .adf-login-password-icon.adf-login-form-password-icon{color:var(--adf-theme-foreground-text-color);font-size:var(--theme-subheading-2-font-size);top:9px;position:relative;left:7px}.adf-login-content .adf-login-controls:has(div){padding:0 0 26px;overflow:visible;width:100%;margin-bottom:16px}.adf-login-content .adf-login-controls:has(div) .adf-login-container{margin-bottom:20px}.adf-login-content .adf-login-controls:has(div) .adf-login__field{display:block;padding-bottom:16px;font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix{min-height:0;padding-bottom:3px;padding-top:20px}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix .adf-login-form-input-label{font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix .mdc-floating-label--required:after{font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--adf-theme-background-dialog-color) inset;-webkit-text-fill-color:var(--adf-theme-foreground-text-color)}.adf-login-content .adf-login-validation{background-color:transparent;color:var(--theme-warn-color);font-size:var(--theme-caption-font-size)}.adf-login-content .adf-login-error{color:var(--theme-warn-color);position:absolute;font-size:var(--theme-caption-font-size);margin-top:-12px;display:block}.adf-login-content .adf-full-width{width:100%}.adf-login-content .adf-login__remember-me{padding-top:22px}.adf-login-content .adf-login__remember-me .adf-login-remember-me-label{opacity:.87}.adf-login-content .adf-login-remember-me:has(.adf-login-remember-me-label){color:var(--adf-theme-foreground-text-color)}.adf-login-content .adf-login-action-container{border-top:1px solid rgba(0,0,0,.1);margin-top:23px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i9.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i9.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i14.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i15.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i16.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
328
|
-
}
|
|
329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginComponent, decorators: [{
|
|
330
|
-
type: Component,
|
|
331
|
-
args: [{ selector: 'adf-login', standalone: true, encapsulation: ViewEncapsulation.None, imports: [
|
|
332
|
-
CommonModule,
|
|
333
|
-
MatCardModule,
|
|
334
|
-
ReactiveFormsModule,
|
|
335
|
-
TranslateModule,
|
|
336
|
-
MatIconModule,
|
|
337
|
-
MatFormFieldModule,
|
|
338
|
-
MatInputModule,
|
|
339
|
-
MatButtonModule,
|
|
340
|
-
MatProgressSpinnerModule,
|
|
341
|
-
MatCheckboxModule
|
|
342
|
-
], host: { class: 'adf-login' }, template: "<div class=\"adf-login-content\" [style.background-image]=\"'url(' + backgroundImageUrl + ')'\">\n <div class=\"adf-ie11FixerParent\">\n <div class=\"adf-ie11FixerChild\">\n\n <mat-card class=\"adf-login-card-wide\">\n <form id=\"adf-login-form\"\n [formGroup]=\"form\"\n autocomplete=\"off\"\n (submit)=\"onSubmit(form.value)\">\n <mat-card-header class=\"adf-login-card-header-text\">\n <mat-card-title>\n <div class=\"adf-alfresco-logo\">\n <!--HEADER TEMPLATE-->\n <ng-template *ngIf=\"headerTemplate\"\n ngFor\n [ngForOf]=\"[data]\"\n [ngForTemplate]=\"headerTemplate\" />\n <img *ngIf=\"!headerTemplate\"\n id=\"adf-login-img-logo\"\n class=\"adf-img-logo\"\n [src]=\"logoImageUrl\"\n alt=\"{{ 'LOGIN.LOGO' | translate }}\">\n </div>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content class=\"adf-login-controls\">\n\n <!--ERRORS AREA-->\n <div class=\"adf-error-container\">\n <div *ngIf=\"isError\"\n id=\"login-error\"\n data-automation-id=\"login-error\"\n class=\"adf-error adf-error-message\">\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n <span class=\"adf-login-error-message\">\n {{ errorMsg | translate }}\n </span>\n </div>\n </div>\n\n <div *ngIf=\"!ssoLogin\">\n\n <!--USERNAME FIELD-->\n <div class=\"adf-login__field adf-login-container\"\n [ngClass]=\"{'adf-is-invalid': isErrorStyle(form.controls.username)}\">\n <mat-form-field class=\"adf-full-width adf-login-form-field\"\n floatPlaceholder=\"never\"\n color=\"primary\">\n <mat-label class=\"adf-login-form-input-label\">\n {{'LOGIN.LABEL.USERNAME' | translate }}\n </mat-label>\n <input matInput\n type=\"text\"\n class=\"adf-login-input\"\n formControlName=\"username\"\n id=\"username\"\n data-automation-id=\"username\"\n autocapitalize=\"none\"\n (blur)=\"trimUsername($event)\">\n </mat-form-field>\n <span *ngIf=\"formError['username']\"\n class=\"adf-login-validation\"\n for=\"username\">\n <span id=\"username-error\"\n class=\"adf-login-error\"\n data-automation-id=\"username-error\">\n {{ formError['username'] | translate }}\n </span>\n </span>\n </div>\n\n <!--PASSWORD FIELD-->\n <div class=\"adf-login__field\">\n <mat-form-field class=\"adf-full-width adf-login-form-field\"\n floatPlaceholder=\"never\"\n color=\"primary\">\n <mat-label class=\"adf-login-form-input-label\">\n {{'LOGIN.LABEL.PASSWORD' | translate }}\n </mat-label>\n <input matInput\n [type]=\"isPasswordShow ? 'text' : 'password'\"\n formControlName=\"password\"\n class=\"adf-login-input\"\n id=\"password\"\n data-automation-id=\"password\">\n <button matSuffix\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"(isPasswordShow ? 'LOGIN.ARIA-LABEL.HIDE-PASSWORD' : 'LOGIN.ARIA-LABEL.SHOW-PASSWORD') | translate\"\n (click)=\"toggleShowPassword($event)\"\n (keyup.enter)=\"toggleShowPassword($event)\"\n [attr.data-automation-id]=\"isPasswordShow ? 'hide_password' : 'show_password'\">\n <mat-icon class=\"adf-login-form-password-icon adf-login-password-icon\">\n {{ isPasswordShow ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n </mat-form-field>\n <span class=\"adf-login-validation\"\n for=\"password\"\n *ngIf=\"formError['password']\">\n <span id=\"password-required\"\n class=\"adf-login-error\"\n data-automation-id=\"password-required\">\n {{ formError['password'] | translate }}\n </span>\n </span>\n </div>\n\n <!--CUSTOM CONTENT-->\n <ng-content />\n\n <br>\n <button type=\"submit\"\n id=\"login-button\"\n class=\"adf-login-button\"\n mat-raised-button\n color=\"accent\"\n [class.adf-isChecking]=\"actualLoginStep === LoginSteps.Checking\"\n [class.adf-isWelcome]=\"actualLoginStep === LoginSteps.Welcome\"\n data-automation-id=\"login-button\"\n [disabled]=\"!form.valid\"\n [attr.aria-label]=\"'LOGIN.BUTTON.LOGIN' | translate\">\n <span *ngIf=\"actualLoginStep === LoginSteps.Landing\"\n class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.LOGIN' | translate }}\n </span>\n <div *ngIf=\"actualLoginStep === LoginSteps.Checking\"\n class=\"adf-interactive-login-label\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.CHECKING' | translate }}\n </span>\n <div class=\"adf-login-spinner-container\">\n <mat-spinner id=\"checking-spinner\"\n class=\"adf-login-checking-spinner\"\n [strokeWidth]=\"4\"\n [diameter]=\"25\" />\n </div>\n </div>\n <div *ngIf=\"actualLoginStep === LoginSteps.Welcome\"\n class=\"adf-interactive-login-label\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.WELCOME' | translate }}\n </span>\n <mat-icon class=\"adf-welcome-icon\">done</mat-icon>\n </div>\n </button>\n <div *ngIf=\"showRememberMe\" class=\"adf-login__remember-me\">\n <mat-checkbox id=\"adf-login-remember\"\n color=\"primary\"\n class=\"adf-login-remember-me\"\n [checked]=\"rememberMe\"\n (change)=\"rememberMe = !rememberMe\">\n <div class=\"adf-login-remember-me-label\">\n {{ 'LOGIN.LABEL.REMEMBER' | translate }}\n </div>\n </mat-checkbox>\n </div>\n </div>\n <div *ngIf=\"ssoLogin\">\n <button type=\"button\"\n (click)=\"implicitLogin()\"\n id=\"login-button-sso\"\n [attr.aria-label]=\"'LOGIN.BUTTON.SSO' | translate\"\n class=\"adf-login-button\"\n mat-raised-button color=\"primary\"\n data-automation-id=\"login-button-sso\">\n <span class=\"adf-login-button-label\">\n {{ 'LOGIN.BUTTON.SSO' | translate }}\n </span>\n </button>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"footerTemplate || showLoginActions\">\n\n <div class=\"adf-login-action-container\">\n <!--FOOTER TEMPLATE-->\n <ng-template *ngIf=\"footerTemplate\"\n ngFor\n [ngForOf]=\"[data]\"\n [ngForTemplate]=\"footerTemplate\" />\n <div class=\"adf-login-action\" *ngIf=\"!footerTemplate && showLoginActions\">\n <div id=\"adf-login-action-left\" class=\"adf-login-action-left\">\n <a href=\"{{ needHelpLink }}\">{{ 'LOGIN.ACTION.HELP' | translate }}</a>\n </div>\n <div id=\"adf-login-action-right\" class=\"adf-login-action-right\">\n <a href=\"{{ registerLink }}\">{{ 'LOGIN.ACTION.REGISTER' | translate }}</a>\n </div>\n </div>\n </div>\n </mat-card-actions>\n </form>\n </mat-card>\n\n <div class=\"adf-copyright\" data-automation-id=\"login-copyright\">\n {{ copyrightText }}\n </div>\n\n </div>\n </div>\n</div>\n", styles: [".adf-login{display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden;min-height:0}.adf-login-content{background-size:cover;background-position:center;min-height:100%;min-width:320px;display:flex;justify-content:center;flex-direction:column}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.adf-login-content{display:table;width:100%;height:100%}}.adf-login-content .adf-ie11FixerParent{margin:16px 0;min-width:320px}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.adf-login-content .adf-ie11FixerParent{display:table-cell;vertical-align:middle;width:100%;padding-top:16px}}.adf-login-content .adf-ie11FixerChild{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.adf-login-content .adf-icon-inline{position:absolute;display:block;top:31%;left:82%;width:30px;overflow:hidden}.adf-login-content .adf-login-card-wide{border-radius:8px;background-color:var(--adf-theme-background-dialog-color);box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f;width:450px;min-width:320px;padding:21px 64px 34px;box-sizing:border-box}@media screen and (width <= 482px){.adf-login-content .adf-login-card-wide{width:calc(100% - 32px)}}.adf-login-content .adf-error-container{height:45px}.adf-login-content .adf-error-message{display:flex;flex-direction:row;justify-content:flex-start;color:var(--theme-warn-color);padding:0;margin-bottom:4px;font-size:var(--theme-caption-font-size)}.adf-login-content .adf-error-message .adf-error-icon{margin-right:10px}.adf-login-content .adf-login-card-header-text{padding-bottom:42px;padding-top:0;margin:0 auto}.adf-login-content .adf-img-logo{display:block;margin-left:auto;margin-right:auto}.adf-login-content .adf-alfresco-logo{padding:24px 16px}.adf-login-content .adf-alfresco-logo img{max-height:58px}.adf-login-content .adf-login-button{width:100%;height:36px;line-height:normal;box-shadow:none}.adf-login-content .adf-login-button-label{color:var(--theme-accent-color-default-contrast);font-weight:bolder}.adf-login-content .adf-login-button.adf-isChecking{background-color:#e0f7fa}.adf-login-content .adf-login-button.adf-isChecking .adf-login-button-label{color:var(--theme-primary-color)}.adf-login-content .adf-login-button.adf-isWelcome{background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast)}.adf-login-content .adf-login-button.adf-isWelcome .adf-welcome-icon{margin:5px 0 0 10px}.adf-login-content .adf-interactive-login-label{display:flex;flex-direction:row;line-height:38px;justify-content:center}.adf-login-content .adf-login-spinner-container{margin-left:15px;margin-top:5px}.adf-login-content .adf-login-action{margin-top:20px;display:flex;flex-direction:row;justify-content:space-between}.adf-login-content .adf-login-action-left a,.adf-login-content .adf-login-action-right a{text-decoration:none}.adf-login-content .adf-is-active{background-color:transparent;font-size:var(--theme-caption-font-size);font-weight:400;line-height:1.33;color:var(--theme-warn-color)}.adf-login-content .adf-copyright{min-width:320px;text-align:center;padding:16px 0;font-size:var(--theme-caption-font-size);opacity:.54}.adf-login-content .adf-login-input:is(input){font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-form-field .adf-login-password-icon.adf-login-form-password-icon{color:var(--adf-theme-foreground-text-color);font-size:var(--theme-subheading-2-font-size);top:9px;position:relative;left:7px}.adf-login-content .adf-login-controls:has(div){padding:0 0 26px;overflow:visible;width:100%;margin-bottom:16px}.adf-login-content .adf-login-controls:has(div) .adf-login-container{margin-bottom:20px}.adf-login-content .adf-login-controls:has(div) .adf-login__field{display:block;padding-bottom:16px;font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix{min-height:0;padding-bottom:3px;padding-top:20px}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix .adf-login-form-input-label{font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field .mat-mdc-form-field-infix .mdc-floating-label--required:after{font-size:var(--theme-subheading-2-font-size)}.adf-login-content .adf-login-controls:has(div) .adf-login__field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--adf-theme-background-dialog-color) inset;-webkit-text-fill-color:var(--adf-theme-foreground-text-color)}.adf-login-content .adf-login-validation{background-color:transparent;color:var(--theme-warn-color);font-size:var(--theme-caption-font-size)}.adf-login-content .adf-login-error{color:var(--theme-warn-color);position:absolute;font-size:var(--theme-caption-font-size);margin-top:-12px;display:block}.adf-login-content .adf-full-width{width:100%}.adf-login-content .adf-login__remember-me{padding-top:22px}.adf-login-content .adf-login__remember-me .adf-login-remember-me-label{opacity:.87}.adf-login-content .adf-login-remember-me:has(.adf-login-remember-me-label){color:var(--adf-theme-foreground-text-color)}.adf-login-content .adf-login-action-container{border-top:1px solid rgba(0,0,0,.1);margin-top:23px}\n"] }]
|
|
343
|
-
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.AuthenticationService }, { type: i2.BasicAlfrescoAuthService }, { type: i3.OidcAuthenticationService }, { type: i4.TranslationService }, { type: i5.Router }, { type: i6.AppConfigService }, { type: i7.UserPreferencesService }, { type: i5.ActivatedRoute }], propDecorators: { showRememberMe: [{
|
|
344
|
-
type: Input
|
|
345
|
-
}], showLoginActions: [{
|
|
346
|
-
type: Input
|
|
347
|
-
}], needHelpLink: [{
|
|
348
|
-
type: Input
|
|
349
|
-
}], registerLink: [{
|
|
350
|
-
type: Input
|
|
351
|
-
}], logoImageUrl: [{
|
|
352
|
-
type: Input
|
|
353
|
-
}], backgroundImageUrl: [{
|
|
354
|
-
type: Input
|
|
355
|
-
}], copyrightText: [{
|
|
356
|
-
type: Input
|
|
357
|
-
}], fieldsValidation: [{
|
|
358
|
-
type: Input
|
|
359
|
-
}], successRoute: [{
|
|
360
|
-
type: Input
|
|
361
|
-
}], success: [{
|
|
362
|
-
type: Output
|
|
363
|
-
}], error: [{
|
|
364
|
-
type: Output
|
|
365
|
-
}], executeSubmit: [{
|
|
366
|
-
type: Output
|
|
367
|
-
}] } });
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9sb2dpbi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvbG9naW4vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIs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O2lXQVc1QixjQUFjO3NCQURiLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlLCBBcHBDb25maWdWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29uZmlnJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgQmFzaWNBbGZyZXNjb0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aCc7XG5pbXBvcnQgeyBPaWRjQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9vaWRjL29pZGMtYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RyYW5zbGF0aW9uJztcblxuaW1wb3J0IHsgTG9naW5FcnJvckV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvZ2luLWVycm9yLmV2ZW50JztcbmltcG9ydCB7IExvZ2luU3VibWl0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9naW4tc3VibWl0LmV2ZW50JztcbmltcG9ydCB7IExvZ2luU3VjY2Vzc0V2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvZ2luLXN1Y2Nlc3MuZXZlbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG5lbnVtIExvZ2luU3RlcHMge1xuICAgIExhbmRpbmcgPSAwLFxuICAgIENoZWNraW5nID0gMSxcbiAgICBXZWxjb21lID0gMlxufVxuXG5pbnRlcmZhY2UgVmFsaWRhdGlvbk1lc3NhZ2Uge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgcGFyYW1zPzogYW55O1xufVxuXG5pbnRlcmZhY2UgTG9naW5Gb3JtVmFsdWVzIHtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWxvZ2luJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZVxuICAgIF0sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1sb2dpbicgfVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaXNQYXNzd29yZFNob3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNob3VsZCB0aGUgYFJlbWVtYmVyIG1lYCBjaGVja2JveCBiZSBzaG93bj8gV2hlbiBzZWxlY3RlZCwgdGhpc1xuICAgICAqIG9wdGlvbiB3aWxsIHJlbWVtYmVyIHRoZSBsb2dnZWQtaW4gdXNlciBhZnRlciB0aGUgYnJvd3NlciBpcyBjbG9zZWRcbiAgICAgKiB0byBhdm9pZCBsb2dnaW5nIGluIHJlcGVhdGVkbHkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93UmVtZW1iZXJNZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogU2hvdWxkIHRoZSBleHRyYSBhY3Rpb25zIChgTmVlZCBIZWxwYCwgYFJlZ2lzdGVyYCwgZXRjKSBiZSBzaG93bj8gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dMb2dpbkFjdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNldHMgdGhlIFVSTCBvZiB0aGUgTkVFRCBIRUxQIGxpbmsgaW4gdGhlIGZvb3Rlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5lZWRIZWxwTGluazogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogU2V0cyB0aGUgVVJMIG9mIHRoZSBSRUdJU1RFUiBsaW5rIGluIHRoZSBmb290ZXIuICovXG4gICAgQElucHV0KClcbiAgICByZWdpc3Rlckxpbms6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIFBhdGggdG8gYSBjdXN0b20gbG9nbyBpbWFnZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxvZ29JbWFnZVVybDogc3RyaW5nID0gJy4vYXNzZXRzL2ltYWdlcy9hbGZyZXNjby1sb2dvLnN2Zyc7XG5cbiAgICAvKiogUGF0aCB0byBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYmFja2dyb3VuZEltYWdlVXJsOiBzdHJpbmcgPSAnLi9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmQuc3ZnJztcblxuICAgIC8qKiBUaGUgY29weXJpZ2h0IHRleHQgYmVsb3cgdGhlIGxvZ2luIGJveC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvcHlyaWdodFRleHQ6IHN0cmluZyA9ICdcXHUwMEE5IDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLic7XG5cbiAgICAvKiogQ3VzdG9tIHZhbGlkYXRpb24gcnVsZXMgZm9yIHRoZSBsb2dpbiBmb3JtLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGRzVmFsaWRhdGlvbjogYW55O1xuXG4gICAgLyoqIFJvdXRlIHRvIHJlZGlyZWN0IHRvIG9uIHN1Y2Nlc3NmdWwgbG9naW4uICovXG4gICAgQElucHV0KClcbiAgICBzdWNjZXNzUm91dGU6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBsb2dpbiBpcyBzdWNjZXNzZnVsLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2luU3VjY2Vzc0V2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbG9naW4gZmFpbHMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2luRXJyb3JFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxvZ2luIGZvcm0gaXMgc3VibWl0dGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4ZWN1dGVTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2luU3VibWl0RXZlbnQ+KCk7XG5cbiAgICBzc29Mb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gICAgZXJyb3JNc2c6IHN0cmluZztcbiAgICBhY3R1YWxMb2dpblN0ZXA6IGFueSA9IExvZ2luU3RlcHMuTGFuZGluZztcbiAgICBMb2dpblN0ZXBzID0gTG9naW5TdGVwcztcbiAgICByZW1lbWJlck1lOiBib29sZWFuID0gdHJ1ZTtcbiAgICBmb3JtRXJyb3I6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBtaW5MZW5ndGg6IG51bWJlciA9IDI7XG4gICAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZGF0YTogYW55O1xuXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogeyBbaWQ6IHN0cmluZ106IHsgW2lkOiBzdHJpbmddOiBWYWxpZGF0aW9uTWVzc2FnZSB9IH07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGJhc2ljQWxmcmVzY29BdXRoU2VydmljZTogQmFzaWNBbGZyZXNjb0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG9pZGNBdXRoZW50aWNhdGlvblNlcnZpY2U6IE9pZGNBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZzogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdEZvcm1FcnJvcigpO1xuICAgICAgICB0aGlzLmluaXRGb3JtRmllbGRzRGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmluaXRGb3JtRmllbGRzTWVzc2FnZXMoKTtcblxuICAgICAgICB0aGlzLnN1Y2Nlc3NSb3V0ZSA9IHRoaXMuYXBwQ29uZmlnLmdldDxzdHJpbmc+KCdzdWNjZXNzUm91dGUnLCB0aGlzLnN1Y2Nlc3NSb3V0ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5zdWNjZXNzUm91dGVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmlzT2F1dGgoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9hdXRoID0gdGhpcy5hcHBDb25maWcub2F1dGgyO1xuICAgICAgICAgICAgICAgIGlmIChvYXV0aD8uc2lsZW50TG9naW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvU1NPTG9naW4oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9hdXRoPy5pbXBsaWNpdEZsb3cgfHwgb2F1dGg/LmNvZGVGbG93KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3NvTG9naW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcGFyYW1zWydyZWRpcmVjdFVybCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGhpcy5hcHBDb25maWcuZ2V0PHN0cmluZz4oQXBwQ29uZmlnVmFsdWVzLlBST1ZJREVSUyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmJhc2ljQWxmcmVzY29BdXRoU2VydmljZS5zZXRSZWRpcmVjdCh7IHByb3ZpZGVyLCB1cmwgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkc1ZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHRoaXMuZmllbGRzVmFsaWRhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vblZhbHVlQ2hhbmdlZChkYXRhKSk7XG4gICAgfVxuXG4gICAgc3VibWl0KCkge1xuICAgICAgICB0aGlzLm9uU3VibWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVkaXJlY3RUb1NTT0xvZ2luKCkge1xuICAgICAgICB0aGlzLm9pZGNBdXRoZW50aWNhdGlvblNlcnZpY2Uuc3NvTG9naW4oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FsbGVkIG9uIHN1Ym1pdCBmb3JtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWVzIGxvZ2luIGZvcm0gdmFsdWVzXG4gICAgICovXG4gICAgb25TdWJtaXQodmFsdWVzOiBMb2dpbkZvcm1WYWx1ZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlRXJyb3IoKTtcblxuICAgICAgICBjb25zdCBhcmdzID0gbmV3IExvZ2luU3VibWl0RXZlbnQoe1xuICAgICAgICAgICAgY29udHJvbHM6IHsgdXNlcm5hbWU6IHRoaXMuZm9ybS5jb250cm9scy51c2VybmFtZSB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4ZWN1dGVTdWJtaXQuZW1pdChhcmdzKTtcblxuICAgICAgICBpZiAoIWFyZ3MuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2dpblN0ZXAgPSBMb2dpblN0ZXBzLkNoZWNraW5nO1xuXG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1Mb2dpbih2YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1wbGljaXRMb2dpbigpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5zdWNjZXNzUm91dGVdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9pZGNBdXRoZW50aWNhdGlvblNlcnZpY2Uuc3NvTG9naW4oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIGNoZWNrIHRoZSBlcnJvciBpbiB0aGUgZm9ybSBhbmQgcHVzaCB0aGUgZXJyb3IgaW4gdGhlIGZvcm1FcnJvciBvYmplY3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhIGZvcm0gZGF0YVxuICAgICAqL1xuICAgIG9uVmFsdWVDaGFuZ2VkKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmRpc2FibGVFcnJvcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMuZm9ybUVycm9yKSB7XG4gICAgICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FcnJvcltmaWVsZF0gPSAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNFcnJvciA9XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbZmllbGRdLmVycm9ycyAmJiBkYXRhW2ZpZWxkXSAhPT0gJycpIHx8ICh0aGlzLmZvcm0uY29udHJvbHNbZmllbGRdLmRpcnR5ICYmICF0aGlzLmZvcm0uY29udHJvbHNbZmllbGRdLnZhbGlkKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkXS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5fbWVzc2FnZVtmaWVsZF1ba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZT8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UudmFsdWUsIG1lc3NhZ2UucGFyYW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRXJyb3JbZmllbGRdICs9IHRyYW5zbGF0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGVyZm9ybUxvZ2luKHZhbHVlczogeyB1c2VybmFtZTogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH0pIHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dpbih2YWx1ZXMudXNlcm5hbWUsIHZhbHVlcy5wYXNzd29yZCwgdGhpcy5yZW1lbWJlck1lKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBhc3luYyAodG9rZW46IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gdGhpcy5iYXNpY0FsZnJlc2NvQXV0aFNlcnZpY2UuZ2V0UmVkaXJlY3QoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9naW5TdGVwID0gTG9naW5TdGVwcy5XZWxjb21lO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzLnNldFN0b3JhZ2VQcmVmaXgodmFsdWVzLnVzZXJuYW1lKTtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucGFzc3dvcmQgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KG5ldyBMb2dpblN1Y2Nlc3NFdmVudCh0b2tlbiwgdmFsdWVzLnVzZXJuYW1lLCBudWxsKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3RVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNpY0FsZnJlc2NvQXV0aFNlcnZpY2Uuc2V0UmVkaXJlY3QobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocmVkaXJlY3RVcmwpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdWNjZXNzUm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuc3VjY2Vzc1JvdXRlXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9naW5TdGVwID0gTG9naW5TdGVwcy5MYW5kaW5nO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheUVycm9yTWVzc2FnZShlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KG5ldyBMb2dpbkVycm9yRXZlbnQoZXJyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgYW5kIGRpc3BsYXkgdGhlIHJpZ2h0IGVycm9yIG1lc3NhZ2UgaW4gdGhlIFVJXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXJyIGVycm9yIG9iamVjdFxuICAgICAqL1xuICAgIHByaXZhdGUgZGlzcGxheUVycm9yTWVzc2FnZShlcnI6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyLmVycm9yPy5jcm9zc0RvbWFpbiAmJiBlcnIuZXJyb3IubWVzc2FnZS5pbmRleE9mKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNc2cgPSBlcnIuZXJyb3IubWVzc2FnZTtcbiAgICAgICAgfSBlbHNlIGlmIChlcnIuc3RhdHVzID09PSA0MDMgJiYgZXJyLm1lc3NhZ2UuaW5kZXhPZignSW52YWxpZCBDU1JGLXRva2VuJykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTXNnID0gJ0xPR0lOLk1FU1NBR0VTLkxPR0lOLUVSUk9SLUNTUkYnO1xuICAgICAgICB9IGVsc2UgaWYgKGVyci5zdGF0dXMgPT09IDQwMyAmJiBlcnIubWVzc2FnZS5pbmRleE9mKCdUaGUgc3lzdGVtIGlzIGN1cnJlbnRseSBpbiByZWFkLW9ubHkgbW9kZScpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5lcnJvck1zZyA9ICdMT0dJTi5NRVNTQUdFUy5MT0dJTi1FQ00tTElDRU5TRSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTXNnID0gJ0xPR0lOLk1FU1NBR0VTLkxPR0lOLUVSUk9SLUNSRURFTlRJQUxTJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBhIGN1c3RvbSBmb3JtIGVycm9yIGZvciBhIGZpZWxkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmllbGQgZmllbGRcbiAgICAgKiBAcGFyYW0gbXNnIGVycm9yIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkQ3VzdG9tRm9ybUVycm9yKGZpZWxkOiBzdHJpbmcsIG1zZzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9yW2ZpZWxkXSArPSBtc2c7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgY3VzdG9tIHZhbGlkYXRpb24gcnVsZSBlcnJvciBmb3IgYSBmaWVsZFxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkIGZpZWxkXG4gICAgICogQHBhcmFtIHJ1bGVJZCAtIGkuZS4gcmVxdWlyZWQgfCBtaW5sZW5ndGggfCBtYXhsZW5ndGhcbiAgICAgKiBAcGFyYW0gbXNnIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcGFyYW1zIHBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICBhZGRDdXN0b21WYWxpZGF0aW9uRXJyb3IoZmllbGQ6IHN0cmluZywgcnVsZUlkOiBzdHJpbmcsIG1zZzogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcbiAgICAgICAgaWYgKGZpZWxkICE9PSAnX19wcm90b19fJyAmJiBmaWVsZCAhPT0gJ2NvbnN0cnVjdG9yJyAmJiBmaWVsZCAhPT0gJ3Byb3RvdHlwZScpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VbZmllbGRdW3J1bGVJZF0gPSB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG1zZyxcbiAgICAgICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IGFuZCBoaWRlIHRoZSBwYXNzd29yZCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCBpbnB1dCBldmVudFxuICAgICAqL1xuICAgIHRvZ2dsZVNob3dQYXNzd29yZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNQYXNzd29yZFNob3cgPSAhdGhpcy5pc1Bhc3N3b3JkU2hvdztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIHJldHVybiBpZiBhIGZpZWxkIGlzIHZhbGlkIG9yIG5vdFxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkIGZvcm0gZmllbGQgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgZm9ybSBmaWVsZCBzaG91bGQgZGlzcGxheSBhbiBlcnJvciwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc0Vycm9yU3R5bGUoZmllbGQ6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIWZpZWxkLnZhbGlkICYmIGZpZWxkLmRpcnR5ICYmICFmaWVsZC5wcmlzdGluZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmltIHVzZXJuYW1lXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRcbiAgICAgKi9cbiAgICB0cmltVXNlcm5hbWUoZXZlbnQ6IGFueSkge1xuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUudHJpbSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgZm9ybUVycm9yIHZhbHVlc1xuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdEZvcm1FcnJvcigpIHtcbiAgICAgICAgdGhpcy5mb3JtRXJyb3IgPSB7XG4gICAgICAgICAgICB1c2VybmFtZTogJycsXG4gICAgICAgICAgICBwYXNzd29yZDogJydcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0IGZvcm0gZmllbGRzIG1lc3NhZ2VzXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0Rm9ybUZpZWxkc01lc3NhZ2VzKCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlID0ge1xuICAgICAgICAgICAgdXNlcm5hbWU6IHtcbiAgICAgICAgICAgICAgICByZXF1aXJlZDoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ0xPR0lOLk1FU1NBR0VTLlVTRVJOQU1FLVJFUVVJUkVEJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbWlubGVuZ3RoOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnTE9HSU4uTUVTU0FHRVMuVVNFUk5BTUUtTUlOJyxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5MZW5ndGg6IHRoaXMubWluTGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHtcbiAgICAgICAgICAgICAgICByZXF1aXJlZDoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ0xPR0lOLk1FU1NBR0VTLlBBU1NXT1JELVJFUVVJUkVEJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGb3JtRmllbGRzRGVmYXVsdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgdXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCldKV0sXG4gICAgICAgICAgICBwYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBlcnJvciBmbGFnXG4gICAgICovXG4gICAgcHJpdmF0ZSBkaXNhYmxlRXJyb3IoKSB7XG4gICAgICAgIHRoaXMuaXNFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluaXRGb3JtRXJyb3IoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLWxvZ2luLWNvbnRlbnRcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndXJsKCcgKyBiYWNrZ3JvdW5kSW1hZ2VVcmwgKyAnKSdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWllMTFGaXhlclBhcmVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWllMTFGaXhlckNoaWxkXCI+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImFkZi1sb2dpbi1jYXJkLXdpZGVcIj5cbiAgICAgICAgICAgICAgICA8Zm9ybSBpZD1cImFkZi1sb2dpbi1mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgKHN1Ym1pdCk9XCJvblN1Ym1pdChmb3JtLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwiYWRmLWxvZ2luLWNhcmQtaGVhZGVyLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWFsZnJlc2NvLWxvZ29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLUhFQURFUiBURU1QTEFURS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0ZvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nRm9yT2ZdPVwiW2RhdGFdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0ZvclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtbG9naW4taW1nLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWltZy1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29JbWFnZVVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwie3sgJ0xPR0lOLkxPR08nIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImFkZi1sb2dpbi1jb250cm9sc1wiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tRVJST1JTIEFSRUEtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzRXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsb2dpbi1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJsb2dpbi1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1lcnJvciAgYWRmLWVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLWVycm9yLWljb25cIj53YXJuaW5nPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtbG9naW4tZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXJyb3JNc2cgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc3NvTG9naW5cIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1VU0VSTkFNRSBGSUVMRC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtbG9naW5fX2ZpZWxkIGFkZi1sb2dpbi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhZGYtaXMtaW52YWxpZCc6IGlzRXJyb3JTdHlsZShmb3JtLmNvbnRyb2xzLnVzZXJuYW1lKX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZ1bGwtd2lkdGggYWRmLWxvZ2luLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRQbGFjZWhvbGRlcj1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImFkZi1sb2dpbi1mb3JtLWlucHV0LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snTE9HSU4uTEFCRUwuVVNFUk5BTUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1sb2dpbi1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cInRyaW1Vc2VybmFtZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybUVycm9yWyd1c2VybmFtZSddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbG9naW4tdmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInVzZXJuYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInVzZXJuYW1lLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWxvZ2luLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInVzZXJuYW1lLWVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZm9ybUVycm9yWyd1c2VybmFtZSddIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1QQVNTV09SRCBGSUVMRC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtbG9naW5fX2ZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoIGFkZi1sb2dpbi1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0UGxhY2Vob2xkZXI9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJhZGYtbG9naW4tZm9ybS1pbnB1dC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0xPR0lOLkxBQkVMLlBBU1NXT1JEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJpc1Bhc3N3b3JkU2hvdyA/ICd0ZXh0JyA6ICdwYXNzd29yZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1sb2dpbi1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoaXNQYXNzd29yZFNob3cgPyAnTE9HSU4uQVJJQS1MQUJFTC5ISURFLVBBU1NXT1JEJyA6ICdMT0dJTi5BUklBLUxBQkVMLlNIT1ctUEFTU1dPUkQnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVTaG93UGFzc3dvcmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJpc1Bhc3N3b3JkU2hvdyA/ICdoaWRlX3Bhc3N3b3JkJyA6ICdzaG93X3Bhc3N3b3JkJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1sb2dpbi1mb3JtLXBhc3N3b3JkLWljb24gYWRmLWxvZ2luLXBhc3N3b3JkLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXNQYXNzd29yZFNob3cgPyAndmlzaWJpbGl0eScgOiAndmlzaWJpbGl0eV9vZmYnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1sb2dpbi12YWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FcnJvclsncGFzc3dvcmQnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJwYXNzd29yZC1yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1sb2dpbi1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJwYXNzd29yZC1yZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1FcnJvclsncGFzc3dvcmQnXSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tQ1VTVE9NIENPTlRFTlQtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvZ2luLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1sb2dpbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZGYtaXNDaGVja2luZ109XCJhY3R1YWxMb2dpblN0ZXAgPT09IExvZ2luU3RlcHMuQ2hlY2tpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFkZi1pc1dlbGNvbWVdPVwiYWN0dWFsTG9naW5TdGVwID09PSBMb2dpblN0ZXBzLldlbGNvbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwibG9naW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidMT0dJTi5CVVRUT04uTE9HSU4nIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWN0dWFsTG9naW5TdGVwID09PSBMb2dpblN0ZXBzLkxhbmRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1sb2dpbi1idXR0b24tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdMT0dJTi5CVVRUT04uTE9HSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdHVhbExvZ2luU3RlcCA9PT0gTG9naW5TdGVwcy5DaGVja2luZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtaW50ZXJhY3RpdmUtbG9naW4tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWxvZ2luLWJ1dHRvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdMT0dJTi5CVVRUT04uQ0hFQ0tJTkcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvZ2luLXNwaW5uZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGlkPVwiY2hlY2tpbmctc3Bpbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWxvZ2luLWNoZWNraW5nLXNwaW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3Ryb2tlV2lkdGhdPVwiNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIyNVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3R1YWxMb2dpblN0ZXAgPT09IExvZ2luU3RlcHMuV2VsY29tZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtaW50ZXJhY3RpdmUtbG9naW4tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWxvZ2luLWJ1dHRvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdMT0dJTi5CVVRUT04uV0VMQ09NRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi13ZWxjb21lLWljb25cIj5kb25lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dSZW1lbWJlck1lXCIgY2xhc3M9XCJhZGYtbG9naW5fX3JlbWVtYmVyLW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggaWQ9XCJhZGYtbG9naW4tcmVtZW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbG9naW4tcmVtZW1iZXItbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJlbWVtYmVyTWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicmVtZW1iZXJNZSA9ICFyZW1lbWJlck1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvZ2luLXJlbWVtYmVyLW1lLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0xPR0lOLkxBQkVMLlJFTUVNQkVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3NvTG9naW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImltcGxpY2l0TG9naW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvZ2luLWJ1dHRvbi1zc29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTE9HSU4uQlVUVE9OLlNTTycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbG9naW4tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJsb2dpbi1idXR0b24tc3NvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWxvZ2luLWJ1dHRvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdMT0dJTi5CVVRUT04uU1NPJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGUgfHwgc2hvd0xvZ2luQWN0aW9uc1wiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvZ2luLWFjdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tRk9PVEVSIFRFTVBMQVRFLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ0ZvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdGb3JPZl09XCJbZGF0YV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdGb3JUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1sb2dpbi1hY3Rpb25cIiAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZSAmJiBzaG93TG9naW5BY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhZGYtbG9naW4tYWN0aW9uLWxlZnRcIiBjbGFzcz1cImFkZi1sb2dpbi1hY3Rpb24tbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7IG5lZWRIZWxwTGluayB9fVwiPnt7ICdMT0dJTi5BQ1RJT04uSEVMUCcgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWRmLWxvZ2luLWFjdGlvbi1yaWdodFwiIGNsYXNzPVwiYWRmLWxvZ2luLWFjdGlvbi1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7IHJlZ2lzdGVyTGluayB9fVwiPnt7ICdMT0dJTi5BQ1RJT04uUkVHSVNURVInIHwgdHJhbnNsYXRlIH19PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb3B5cmlnaHRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsb2dpbi1jb3B5cmlnaHRcIj5cbiAgICAgICAgICAgICAgICB7eyBjb3B5cmlnaHRUZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZGlhbG9nLWNvbXBvbmVudC1kYXRhLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvbG9naW4vY29tcG9uZW50cy9sb2dpbi1kaWFsb2cvbG9naW4tZGlhbG9nLWNvbXBvbmVudC1kYXRhLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbkRpYWxvZ0NvbXBvbmVudERhdGEge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZT86IHN0cmluZztcbiAgICBsb2dnZWQ6IFN1YmplY3Q8YW55Pjtcbn1cbiJdfQ==
|