@alfresco/adf-core 6.9.0 → 6.10.0-10005011517
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/api/lib/types.d.ts +1 -1
- package/breadcrumbs/components/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.d.ts +1 -1
- package/breadcrumbs/directives/breadcrumb-focus.directive.d.ts +1 -1
- package/bundles/assets/adf-core/i18n/ar.json +6 -0
- package/bundles/assets/adf-core/i18n/cs.json +6 -0
- package/bundles/assets/adf-core/i18n/da.json +6 -0
- package/bundles/assets/adf-core/i18n/de.json +6 -0
- package/bundles/assets/adf-core/i18n/en.json +13 -20
- package/bundles/assets/adf-core/i18n/es.json +6 -0
- package/bundles/assets/adf-core/i18n/fi.json +6 -0
- package/bundles/assets/adf-core/i18n/fr.json +6 -0
- package/bundles/assets/adf-core/i18n/it.json +6 -0
- package/bundles/assets/adf-core/i18n/ja.json +6 -0
- package/bundles/assets/adf-core/i18n/nb.json +6 -0
- package/bundles/assets/adf-core/i18n/nl.json +6 -0
- package/bundles/assets/adf-core/i18n/pl.json +6 -0
- package/bundles/assets/adf-core/i18n/pt-BR.json +6 -0
- package/bundles/assets/adf-core/i18n/ru.json +6 -0
- package/bundles/assets/adf-core/i18n/sv.json +6 -0
- package/bundles/assets/adf-core/i18n/zh-CN.json +6 -0
- package/custom-theme/theme/typography.scss +23 -25
- package/esm2020/api/lib/adf-http-client.service.mjs +10 -10
- package/esm2020/auth/authentication-interceptor/authentication.interceptor.mjs +4 -4
- package/esm2020/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +7 -14
- package/esm2020/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
- package/esm2020/breadcrumbs/directives/breadcrumb-focus.directive.mjs +4 -4
- package/esm2020/feature-flags/alfresco-adf-core-feature-flags.mjs +5 -0
- package/esm2020/feature-flags/index.mjs +29 -0
- package/esm2020/feature-flags/lib/components/feature-flags-wrapper.mjs +36 -0
- package/esm2020/feature-flags/lib/components/feature-override-indicator.component.mjs +62 -0
- package/esm2020/feature-flags/lib/components/flags/flags.component.mjs +134 -0
- package/esm2020/feature-flags/lib/directives/features.directive.mjs +68 -0
- package/esm2020/feature-flags/lib/directives/not-features.directive.mjs +68 -0
- package/esm2020/feature-flags/lib/guards/is-feature-off.guard.mjs +38 -0
- package/esm2020/feature-flags/lib/guards/is-feature-on.guard.mjs +38 -0
- package/esm2020/feature-flags/lib/guards/is-flags-override-on.guard.mjs +40 -0
- package/esm2020/feature-flags/lib/interfaces/features.interface.mjs +24 -0
- package/esm2020/feature-flags/lib/mocks/features-service-mock.factory.mjs +62 -0
- package/esm2020/feature-flags/lib/providers/debug-feature-flags.provider.mjs +51 -0
- package/esm2020/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +36 -0
- package/esm2020/feature-flags/lib/services/debug-features.service.mjs +84 -0
- package/esm2020/feature-flags/lib/services/dummy-features.service.mjs +40 -0
- package/esm2020/feature-flags/lib/services/flagset.parser.mjs +38 -0
- package/esm2020/feature-flags/lib/services/qa-features.helper.mjs +62 -0
- package/esm2020/feature-flags/lib/services/storage-features.service.mjs +120 -0
- package/esm2020/lib/about/about-extension-list/about-extension-list.component.mjs +4 -4
- package/esm2020/lib/about/about-license-list/about-license-list.component.mjs +4 -4
- package/esm2020/lib/about/about-module-list/module-list.component.mjs +4 -4
- package/esm2020/lib/about/about-package/package-list.component.mjs +5 -5
- package/esm2020/lib/about/about-panel.directive.mjs +4 -4
- package/esm2020/lib/about/about-repository-info/about-repository-info.component.mjs +5 -5
- package/esm2020/lib/about/about-server-settings/about-server-settings.component.mjs +5 -5
- package/esm2020/lib/about/about-status-list/about-status-list.component.mjs +4 -4
- package/esm2020/lib/about/about.component.mjs +4 -4
- package/esm2020/lib/about/about.module.mjs +25 -45
- package/esm2020/lib/about/public-api.mjs +1 -3
- package/esm2020/lib/api-factories/alfresco-api-no-auth.service.mjs +4 -4
- package/esm2020/lib/api-factories/alfresco-api-v2-loader.service.mjs +4 -4
- package/esm2020/lib/app-config/app-config-storage-prefix.factory.mjs +4 -4
- package/esm2020/lib/app-config/app-config.module.mjs +5 -5
- package/esm2020/lib/app-config/app-config.pipe.mjs +4 -4
- package/esm2020/lib/app-config/app-config.service.mjs +7 -7
- package/esm2020/lib/app-config/debug-app-config.service.mjs +4 -4
- package/esm2020/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +4 -4
- package/esm2020/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +4 -4
- package/esm2020/lib/auth/basic-auth/content-auth.mjs +8 -8
- package/esm2020/lib/auth/basic-auth/process-auth.mjs +8 -8
- package/esm2020/lib/auth/guard/auth-guard-base.mjs +4 -4
- package/esm2020/lib/auth/guard/auth-guard-bpm.service.mjs +6 -6
- package/esm2020/lib/auth/guard/auth-guard-ecm.service.mjs +6 -6
- package/esm2020/lib/auth/guard/auth-guard-sso-role.service.mjs +4 -4
- package/esm2020/lib/auth/guard/auth-guard.service.mjs +6 -6
- package/esm2020/lib/auth/index.mjs +1 -2
- package/esm2020/lib/auth/oidc/auth-config.service.mjs +6 -7
- package/esm2020/lib/auth/oidc/auth-routing.module.mjs +5 -5
- package/esm2020/lib/auth/oidc/auth.module.mjs +5 -5
- package/esm2020/lib/auth/oidc/auth.service.mjs +1 -1
- package/esm2020/lib/auth/oidc/oidc-auth.guard.mjs +4 -4
- package/esm2020/lib/auth/oidc/oidc-authentication.service.mjs +194 -0
- package/esm2020/lib/auth/oidc/public-api.mjs +2 -1
- package/esm2020/lib/auth/oidc/redirect-auth.service.mjs +13 -12
- package/esm2020/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +4 -4
- package/esm2020/lib/auth/public-api.mjs +2 -1
- package/esm2020/lib/auth/services/authentication.service.mjs +10 -6
- package/esm2020/lib/auth/services/identity-group.service.mjs +4 -4
- package/esm2020/lib/auth/services/identity-role.service.mjs +4 -4
- package/esm2020/lib/auth/services/identity-user.service.mjs +4 -4
- package/esm2020/lib/auth/services/jwt-helper.service.mjs +4 -4
- package/esm2020/lib/auth/services/oauth2.service.mjs +4 -4
- package/esm2020/lib/auth/services/user-access.service.mjs +4 -4
- package/esm2020/lib/avatar/avatar.component.mjs +51 -0
- package/esm2020/lib/blank-page/blank-page.component.mjs +4 -4
- package/esm2020/lib/blank-page/blank-page.module.mjs +5 -5
- package/esm2020/lib/button/button.component.mjs +53 -0
- package/esm2020/lib/card-view/card-view.module.mjs +8 -12
- package/esm2020/lib/card-view/components/base-card-view.mjs +4 -4
- package/esm2020/lib/card-view/components/card-view/card-view.component.mjs +5 -5
- package/esm2020/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +5 -5
- package/esm2020/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +8 -6
- package/esm2020/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +7 -8
- package/esm2020/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +4 -4
- package/esm2020/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +5 -5
- package/esm2020/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +4 -4
- package/esm2020/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +5 -5
- package/esm2020/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +7 -7
- package/esm2020/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +22 -12
- package/esm2020/lib/card-view/models/card-view-boolitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-dateitem.model.mjs +2 -4
- package/esm2020/lib/card-view/models/card-view-datetimeitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-floatitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-intitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-keyvaluepairs.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-longitem.model.mjs +36 -0
- package/esm2020/lib/card-view/models/card-view-mapitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-selectitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view-textitem.model.mjs +1 -1
- package/esm2020/lib/card-view/models/card-view.models.mjs +2 -1
- package/esm2020/lib/card-view/services/card-item-types.service.mjs +5 -4
- package/esm2020/lib/card-view/services/card-view-update.service.mjs +4 -4
- package/esm2020/lib/card-view/validators/card-view-item-length.validator.mjs +34 -0
- package/esm2020/lib/card-view/validators/card-view-item-long.validator.mjs +35 -0
- package/esm2020/lib/card-view/validators/card-view-item-match.validator.mjs +35 -0
- package/esm2020/lib/card-view/validators/card-view-item-minmax.validator.mjs +35 -0
- package/esm2020/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +31 -0
- package/esm2020/lib/card-view/validators/card-view.validators.mjs +6 -4
- package/esm2020/lib/card-view/validators/validators.map.mjs +4 -4
- package/esm2020/lib/clipboard/clipboard.directive.mjs +7 -7
- package/esm2020/lib/clipboard/clipboard.module.mjs +5 -5
- package/esm2020/lib/clipboard/clipboard.service.mjs +4 -4
- package/esm2020/lib/comments/comment-list/comment-list.component.mjs +7 -7
- package/esm2020/lib/comments/comment-list/comment-list.module.mjs +12 -13
- package/esm2020/lib/comments/comments.component.mjs +5 -5
- package/esm2020/lib/comments/comments.module.mjs +5 -5
- package/esm2020/lib/comments/interfaces/comments-service.interface.mjs +1 -1
- package/esm2020/lib/common/mock/app-config.service.mock.mjs +4 -4
- package/esm2020/lib/common/services/cookie.service.mjs +4 -4
- package/esm2020/lib/common/services/directionality-config.service.mjs +4 -4
- package/esm2020/lib/common/services/download.service.mjs +4 -4
- package/esm2020/lib/common/services/highlight-transform.service.mjs +4 -4
- package/esm2020/lib/common/services/log.service.mjs +8 -8
- package/esm2020/lib/common/services/page-title.service.mjs +4 -4
- package/esm2020/lib/common/services/sort-by-category.service.mjs +5 -5
- package/esm2020/lib/common/services/storage.service.mjs +10 -10
- package/esm2020/lib/common/services/thumbnail.service.mjs +4 -4
- package/esm2020/lib/common/services/url.service.mjs +4 -4
- package/esm2020/lib/common/services/user-preferences.service.mjs +4 -4
- package/esm2020/lib/common/utils/date-fns-adapter.mjs +10 -10
- package/esm2020/lib/common/utils/datetime-fns-adapter.mjs +10 -10
- package/esm2020/lib/common/utils/moment-date-adapter.mjs +4 -4
- package/esm2020/lib/context-menu/animations.mjs +3 -3
- package/esm2020/lib/context-menu/context-menu-list.component.mjs +16 -16
- package/esm2020/lib/context-menu/context-menu-overlay.service.mjs +4 -4
- package/esm2020/lib/context-menu/context-menu.directive.mjs +4 -4
- package/esm2020/lib/context-menu/context-menu.module.mjs +5 -5
- package/esm2020/lib/core.module.mjs +25 -29
- package/esm2020/lib/datatable/components/amount-cell/amount-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/columns-selector/columns-selector.component.mjs +4 -4
- package/esm2020/lib/datatable/components/datatable/datatable.component.mjs +34 -31
- package/esm2020/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/datatable-row/datatable-row.component.mjs +9 -9
- package/esm2020/lib/datatable/components/date-cell/date-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/empty-list/empty-list.component.mjs +13 -13
- package/esm2020/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/icon-cell/icon-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/components/json-cell/json-cell.component.mjs +5 -5
- package/esm2020/lib/datatable/components/location-cell/location-cell.component.mjs +5 -5
- package/esm2020/lib/datatable/components/number-cell/number-cell.component.mjs +4 -4
- package/esm2020/lib/datatable/data/data-table.schema.mjs +4 -4
- package/esm2020/lib/datatable/data/object-datatable-adapter.mjs +17 -17
- package/esm2020/lib/datatable/data-column/data-column-header.component.mjs +4 -4
- package/esm2020/lib/datatable/data-column/data-column-list.component.mjs +4 -4
- package/esm2020/lib/datatable/data-column/data-column.component.mjs +4 -4
- package/esm2020/lib/datatable/data-column/data-column.module.mjs +5 -5
- package/esm2020/lib/datatable/datatable.module.mjs +5 -5
- package/esm2020/lib/datatable/directives/custom-empty-content-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/custom-loading-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/custom-no-permission-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/drop-zone.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/header-filter-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/loading-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/main-data-table-action-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/no-content-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/no-permission-template.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/resizable/resizable.directive.mjs +4 -4
- package/esm2020/lib/datatable/directives/resizable/resizable.module.mjs +5 -5
- package/esm2020/lib/datatable/directives/resizable/resize-handle.directive.mjs +4 -4
- package/esm2020/lib/datatable/services/datatable.service.mjs +4 -4
- package/esm2020/lib/dialogs/confirm-dialog/confirm.dialog.mjs +50 -0
- package/esm2020/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +38 -0
- package/esm2020/lib/dialogs/dialog/dialog-data.interface.mjs +18 -0
- package/esm2020/lib/dialogs/dialog/dialog.component.mjs +75 -0
- package/esm2020/lib/dialogs/dialog/dialog.model.mjs +22 -0
- package/esm2020/lib/dialogs/dialog/index.mjs +20 -0
- package/esm2020/lib/dialogs/edit-json/edit-json.dialog.mjs +5 -5
- package/esm2020/lib/dialogs/edit-json/edit-json.dialog.module.mjs +5 -5
- package/esm2020/lib/dialogs/public-api.mjs +4 -1
- package/esm2020/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +4 -4
- package/esm2020/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -5
- package/esm2020/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +4 -4
- package/esm2020/lib/directives/directive.module.mjs +8 -8
- package/esm2020/lib/directives/highlight.directive.mjs +4 -4
- package/esm2020/lib/directives/infinite-select-scroll.directive.mjs +4 -4
- package/esm2020/lib/directives/logout.directive.mjs +4 -4
- package/esm2020/lib/directives/tooltip-card/tooltip-card.component.mjs +4 -4
- package/esm2020/lib/directives/tooltip-card/tooltip-card.directive.mjs +4 -4
- package/esm2020/lib/directives/upload.directive.mjs +4 -4
- package/esm2020/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +22 -15
- package/esm2020/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +6 -26
- package/esm2020/lib/form/components/form-base.component.mjs +12 -6
- package/esm2020/lib/form/components/form-custom-button.directive.mjs +8 -8
- package/esm2020/lib/form/components/form-field/form-field.component.mjs +11 -37
- package/esm2020/lib/form/components/form-renderer.component.mjs +44 -18
- package/esm2020/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +11 -9
- package/esm2020/lib/form/components/middlewares/decimal-middleware.service.mjs +5 -8
- package/esm2020/lib/form/components/middlewares/middleware.mjs +1 -1
- package/esm2020/lib/form/components/widgets/amount/amount.widget.mjs +19 -16
- package/esm2020/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +11 -10
- package/esm2020/lib/form/components/widgets/checkbox/checkbox.widget.mjs +14 -12
- package/esm2020/lib/form/components/widgets/core/container.model.mjs +4 -4
- package/esm2020/lib/form/components/widgets/core/form-field-validator.mjs +28 -79
- package/esm2020/lib/form/components/widgets/core/form-field.model.mjs +109 -94
- package/esm2020/lib/form/components/widgets/core/form-outcome-event.model.mjs +5 -5
- package/esm2020/lib/form/components/widgets/core/form-outcome.model.mjs +3 -1
- package/esm2020/lib/form/components/widgets/core/tab.model.mjs +4 -4
- package/esm2020/lib/form/components/widgets/date/date.widget.mjs +21 -16
- package/esm2020/lib/form/components/widgets/date-time/date-time.widget.mjs +18 -17
- package/esm2020/lib/form/components/widgets/decimal/decimal.component.mjs +14 -11
- package/esm2020/lib/form/components/widgets/display-text/display-text.widget.mjs +8 -8
- package/esm2020/lib/form/components/widgets/error/error.component.mjs +26 -12
- package/esm2020/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +9 -9
- package/esm2020/lib/form/components/widgets/json/json.widget.mjs +12 -16
- package/esm2020/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +17 -14
- package/esm2020/lib/form/components/widgets/number/number.widget.mjs +16 -13
- package/esm2020/lib/form/components/widgets/text/text-mask.component.mjs +5 -4
- package/esm2020/lib/form/components/widgets/text/text.widget.mjs +19 -13
- package/esm2020/lib/form/components/widgets/unknown/unknown.widget.mjs +23 -23
- package/esm2020/lib/form/components/widgets/widget.component.mjs +6 -6
- package/esm2020/lib/form/form-base.module.mjs +24 -66
- package/esm2020/lib/form/services/form-rendering.service.mjs +4 -4
- package/esm2020/lib/form/services/form.service.mjs +4 -4
- package/esm2020/lib/form/services/widget-visibility.service.mjs +4 -4
- package/esm2020/lib/icon/icon.component.mjs +4 -4
- package/esm2020/lib/icon/icon.module.mjs +5 -5
- package/esm2020/lib/identity-user-info/identity-user-info.component.mjs +5 -5
- package/esm2020/lib/identity-user-info/identity-user-info.module.mjs +5 -5
- package/esm2020/lib/info-drawer/info-drawer-layout.component.mjs +14 -14
- package/esm2020/lib/info-drawer/info-drawer.component.mjs +8 -8
- package/esm2020/lib/info-drawer/info-drawer.module.mjs +5 -5
- package/esm2020/lib/language-menu/language-menu.component.mjs +4 -4
- package/esm2020/lib/language-menu/language-menu.module.mjs +5 -5
- package/esm2020/lib/language-menu/language-picker.component.mjs +4 -4
- package/esm2020/lib/language-menu/service/language.service.mjs +4 -4
- package/esm2020/lib/layout/components/header/header.component.mjs +4 -4
- package/esm2020/lib/layout/components/layout-container/layout-container.component.mjs +24 -19
- package/esm2020/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +13 -13
- package/esm2020/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +4 -4
- package/esm2020/lib/layout/directives/sidenav-layout-content.directive.mjs +4 -4
- package/esm2020/lib/layout/directives/sidenav-layout-header.directive.mjs +4 -4
- package/esm2020/lib/layout/directives/sidenav-layout-navigation.directive.mjs +4 -4
- package/esm2020/lib/layout/layout.module.mjs +5 -5
- package/esm2020/lib/login/components/login/login.component.mjs +7 -7
- package/esm2020/lib/login/components/login-dialog/login-dialog.component.mjs +4 -4
- package/esm2020/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +4 -4
- package/esm2020/lib/login/directives/login-footer.directive.mjs +4 -4
- package/esm2020/lib/login/directives/login-header.directive.mjs +4 -4
- package/esm2020/lib/login/login.module.mjs +5 -5
- package/esm2020/lib/login/models/login-submit.event.mjs +5 -5
- package/esm2020/lib/material.module.mjs +176 -39
- package/esm2020/lib/mock/alfresco-api.service.mock.mjs +4 -4
- package/esm2020/lib/mock/cookie.service.mock.mjs +4 -4
- package/esm2020/lib/mock/public-api.mjs +1 -3
- package/esm2020/lib/mock/translation.service.mock.mjs +4 -4
- package/esm2020/lib/models/comment.model.mjs +11 -10
- package/esm2020/lib/models/general-user.model.mjs +1 -2
- package/esm2020/lib/notifications/components/add-notification.stories.component.mjs +4 -4
- package/esm2020/lib/notifications/components/notification-history.component.mjs +6 -10
- package/esm2020/lib/notifications/notification-history.module.mjs +5 -5
- package/esm2020/lib/notifications/services/notification.service.mjs +4 -4
- package/esm2020/lib/pagination/infinite-pagination.component.mjs +18 -18
- package/esm2020/lib/pagination/pagination.component.mjs +23 -23
- package/esm2020/lib/pagination/pagination.module.mjs +5 -5
- package/esm2020/lib/pipes/boolean.pipe.mjs +4 -4
- package/esm2020/lib/pipes/date-time.pipe.mjs +4 -4
- package/esm2020/lib/pipes/decimal-number.pipe.mjs +4 -4
- package/esm2020/lib/pipes/file-size.pipe.mjs +4 -4
- package/esm2020/lib/pipes/file-type.pipe.mjs +4 -4
- package/esm2020/lib/pipes/filter-out-every-object-by-prop.pipe.mjs +4 -4
- package/esm2020/lib/pipes/filter-string.pipe.mjs +4 -4
- package/esm2020/lib/pipes/format-space.pipe.mjs +4 -4
- package/esm2020/lib/pipes/full-name.pipe.mjs +4 -4
- package/esm2020/lib/pipes/localized-date.pipe.mjs +4 -4
- package/esm2020/lib/pipes/localized-role.pipe.mjs +4 -4
- package/esm2020/lib/pipes/mime-type-icon.pipe.mjs +4 -4
- package/esm2020/lib/pipes/moment-date.pipe.mjs +4 -4
- package/esm2020/lib/pipes/moment-datetime.pipe.mjs +4 -4
- package/esm2020/lib/pipes/multi-value.pipe.mjs +4 -4
- package/esm2020/lib/pipes/pipe.module.mjs +5 -5
- package/esm2020/lib/pipes/text-highlight.pipe.mjs +4 -4
- package/esm2020/lib/pipes/time-ago.pipe.mjs +4 -4
- package/esm2020/lib/pipes/user-initial.pipe.mjs +4 -4
- package/esm2020/lib/search-text/search-text-input.component.mjs +13 -9
- package/esm2020/lib/search-text/search-text-input.module.mjs +5 -5
- package/esm2020/lib/search-text/search-trigger.directive.mjs +4 -4
- package/esm2020/lib/services/alfresco-api.service.mjs +7 -7
- package/esm2020/lib/snackbar-content/snackbar-content.component.mjs +5 -5
- package/esm2020/lib/snackbar-content/snackbar-content.module.mjs +5 -5
- package/esm2020/lib/sorting-picker/sorting-picker.component.mjs +4 -4
- package/esm2020/lib/sorting-picker/sorting-picker.module.mjs +5 -5
- package/esm2020/lib/templates/empty-content/empty-content.component.mjs +4 -4
- package/esm2020/lib/templates/error-content/error-content.component.mjs +5 -5
- package/esm2020/lib/templates/template.module.mjs +5 -5
- package/esm2020/lib/testing/core.story.module.mjs +39 -0
- package/esm2020/lib/testing/core.testing.module.mjs +14 -22
- package/esm2020/lib/testing/index.mjs +2 -2
- package/esm2020/lib/toolbar/toolbar-divider.component.mjs +4 -4
- package/esm2020/lib/toolbar/toolbar-title.component.mjs +4 -4
- package/esm2020/lib/toolbar/toolbar.component.mjs +4 -4
- package/esm2020/lib/toolbar/toolbar.module.mjs +5 -5
- package/esm2020/lib/translation/translate-loader.service.mjs +4 -4
- package/esm2020/lib/translation/translation.service.mjs +4 -4
- package/esm2020/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +4 -4
- package/esm2020/lib/viewer/components/img-viewer/img-viewer.component.mjs +14 -8
- package/esm2020/lib/viewer/components/media-player/media-player.component.mjs +4 -4
- package/esm2020/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +12 -10
- package/esm2020/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +4 -4
- package/esm2020/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +4 -4
- package/esm2020/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +20 -20
- package/esm2020/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +4 -4
- package/esm2020/lib/viewer/components/unknown-format/unknown-format.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-more-actions.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-open-with.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-render/viewer-render.component.mjs +38 -27
- package/esm2020/lib/viewer/components/viewer-sidebar.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-toolbar-actions.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer-toolbar.component.mjs +4 -4
- package/esm2020/lib/viewer/components/viewer.component.mjs +29 -15
- package/esm2020/lib/viewer/directives/viewer-extension.directive.mjs +4 -4
- package/esm2020/lib/viewer/services/rendering-queue.services.mjs +4 -4
- package/esm2020/lib/viewer/services/view-util.service.mjs +20 -20
- package/esm2020/lib/viewer/viewer.module.mjs +31 -47
- package/esm2020/public-api.mjs +3 -3
- package/esm2020/shell/lib/components/shell/shell.component.mjs +10 -9
- package/esm2020/shell/lib/shell.module.mjs +8 -13
- package/feature-flags/README.md +62 -0
- package/feature-flags/index.d.ts +28 -0
- package/feature-flags/lib/components/feature-flags-wrapper.d.ts +5 -0
- package/feature-flags/lib/components/feature-override-indicator.component.d.ts +30 -0
- package/feature-flags/lib/components/flags/flags.component.d.ts +47 -0
- package/feature-flags/lib/directives/features.directive.d.ts +33 -0
- package/feature-flags/lib/directives/not-features.directive.d.ts +33 -0
- package/feature-flags/lib/guards/is-feature-off.guard.d.ts +12 -0
- package/feature-flags/lib/guards/is-feature-on.guard.d.ts +12 -0
- package/feature-flags/lib/guards/is-flags-override-on.guard.d.ts +10 -0
- package/feature-flags/lib/interfaces/features.interface.d.ts +63 -0
- package/feature-flags/lib/mocks/features-service-mock.factory.d.ts +24 -0
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +77 -0
- package/feature-flags/lib/providers/dummy-feature-flags.provider.d.ts +34 -0
- package/feature-flags/lib/services/debug-features.service.d.ts +32 -0
- package/feature-flags/lib/services/dummy-features.service.d.ts +11 -0
- package/feature-flags/lib/services/flagset.parser.d.ts +28 -0
- package/feature-flags/lib/services/qa-features.helper.d.ts +32 -0
- package/feature-flags/lib/services/storage-features.service.d.ts +23 -0
- package/fesm2015/adf-core.mjs +5096 -7903
- package/fesm2015/adf-core.mjs.map +1 -1
- package/fesm2015/alfresco-adf-core-api.mjs +9 -9
- package/fesm2015/alfresco-adf-core-api.mjs.map +1 -1
- package/fesm2015/alfresco-adf-core-auth.mjs +3 -3
- package/fesm2015/alfresco-adf-core-auth.mjs.map +1 -1
- package/fesm2015/alfresco-adf-core-breadcrumbs.mjs +12 -19
- package/fesm2015/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
- package/fesm2015/alfresco-adf-core-feature-flags.mjs +950 -0
- package/fesm2015/alfresco-adf-core-feature-flags.mjs.map +1 -0
- package/fesm2015/alfresco-adf-core-shell.mjs +31 -17
- package/fesm2015/alfresco-adf-core-shell.mjs.map +1 -1
- package/fesm2020/adf-core.mjs +5159 -7933
- package/fesm2020/adf-core.mjs.map +1 -1
- package/fesm2020/alfresco-adf-core-api.mjs +9 -9
- package/fesm2020/alfresco-adf-core-api.mjs.map +1 -1
- package/fesm2020/alfresco-adf-core-auth.mjs +3 -3
- package/fesm2020/alfresco-adf-core-auth.mjs.map +1 -1
- package/fesm2020/alfresco-adf-core-breadcrumbs.mjs +12 -19
- package/fesm2020/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
- package/fesm2020/alfresco-adf-core-feature-flags.mjs +958 -0
- package/fesm2020/alfresco-adf-core-feature-flags.mjs.map +1 -0
- package/fesm2020/alfresco-adf-core-shell.mjs +13 -15
- package/fesm2020/alfresco-adf-core-shell.mjs.map +1 -1
- package/lib/about/about-extension-list/about-extension-list.component.d.ts +1 -1
- package/lib/about/about-license-list/about-license-list.component.d.ts +1 -1
- package/lib/about/about-module-list/module-list.component.d.ts +1 -1
- package/lib/about/about-package/package-list.component.d.ts +1 -1
- package/lib/about/about-package/package-list.component.scss +0 -8
- package/lib/about/about-panel.directive.d.ts +1 -1
- package/lib/about/about-repository-info/about-repository-info.component.d.ts +1 -1
- package/lib/about/about-repository-info/about-repository-info.component.scss +3 -0
- package/lib/about/about-server-settings/about-server-settings.component.d.ts +1 -1
- package/lib/about/about-server-settings/about-server-settings.component.scss +12 -0
- package/lib/about/about-status-list/about-status-list.component.d.ts +1 -1
- package/lib/about/about.component.d.ts +1 -1
- package/lib/about/about.module.d.ts +20 -11
- package/lib/about/public-api.d.ts +0 -2
- package/lib/auth/guard/auth-guard-base.d.ts +1 -1
- package/lib/auth/guard/auth-guard-bpm.service.d.ts +1 -1
- package/lib/auth/guard/auth-guard-ecm.service.d.ts +1 -1
- package/lib/auth/guard/auth-guard.service.d.ts +1 -1
- package/lib/auth/index.d.ts +0 -1
- package/lib/auth/oidc/auth.service.d.ts +1 -0
- package/lib/auth/{services → oidc}/oidc-authentication.service.d.ts +4 -4
- package/lib/auth/oidc/public-api.d.ts +1 -0
- package/lib/auth/oidc/redirect-auth.service.d.ts +1 -0
- package/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.d.ts +1 -1
- package/lib/auth/public-api.d.ts +1 -0
- package/lib/auth/services/authentication.service.d.ts +1 -0
- package/lib/avatar/avatar.component.d.ts +10 -0
- package/lib/avatar/avatar.component.scss +20 -0
- package/lib/blank-page/blank-page.component.d.ts +1 -1
- package/lib/button/button.component.d.ts +18 -0
- package/lib/button/button.component.scss +3 -0
- package/lib/card-view/card-view.module.d.ts +1 -2
- package/lib/card-view/components/base-card-view.d.ts +1 -1
- package/lib/card-view/components/card-view/card-view.component.d.ts +1 -1
- package/lib/card-view/components/card-view/card-view.component.scss +27 -16
- package/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.scss +10 -4
- package/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.d.ts +2 -1
- package/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.scss +19 -17
- package/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.d.ts +1 -1
- package/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.scss +6 -5
- package/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +25 -3
- package/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.d.ts +1 -1
- package/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.scss +6 -4
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.d.ts +2 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +12 -7
- package/lib/card-view/models/card-view-dateitem.model.d.ts +1 -1
- package/lib/{buttons-menu/buttons-menu.component.d.ts → card-view/models/card-view-longitem.model.d.ts} +9 -10
- package/lib/card-view/models/card-view.models.d.ts +1 -0
- package/lib/card-view/validators/{card-view-item-length.valiator.d.ts → card-view-item-length.validator.d.ts} +2 -1
- package/lib/{buttons-menu/public-api.d.ts → card-view/validators/card-view-item-long.validator.d.ts} +7 -2
- package/lib/card-view/validators/{card-view-item-match.valiator.d.ts → card-view-item-match.validator.d.ts} +2 -1
- package/lib/card-view/validators/{card-view-item-minmax.valiator.d.ts → card-view-item-minmax.validator.d.ts} +2 -1
- package/lib/{mock/form/demo-form.mock.d.ts → card-view/validators/card-view-item-only-positive-long.validator.d.ts} +5 -9
- package/lib/card-view/validators/card-view.validators.d.ts +5 -3
- package/lib/card-view/validators/validators.map.d.ts +3 -3
- package/lib/clipboard/clipboard.directive.d.ts +2 -2
- package/lib/comments/comment-list/comment-list.component.d.ts +2 -3
- package/lib/comments/comment-list/comment-list.component.scss +2 -1
- package/lib/comments/comment-list/comment-list.module.d.ts +2 -1
- package/lib/comments/comments.component.d.ts +1 -1
- package/lib/comments/comments.component.scss +42 -14
- package/lib/comments/interfaces/comments-service.interface.d.ts +1 -1
- package/lib/common/services/dynamic-component-mapper.service.d.ts +1 -1
- package/lib/common/services/sort-by-category.service.d.ts +1 -1
- package/lib/common/utils/moment-date-adapter.d.ts +1 -1
- package/lib/context-menu/context-menu-list.component.d.ts +2 -2
- package/lib/context-menu/context-menu.directive.d.ts +1 -1
- package/lib/core.module.d.ts +40 -33
- package/lib/datatable/components/amount-cell/amount-cell.component.d.ts +1 -1
- package/lib/datatable/components/boolean-cell/boolean-cell.component.d.ts +1 -1
- package/lib/datatable/components/columns-selector/columns-selector.component.d.ts +1 -1
- package/lib/datatable/components/datatable/datatable.component.d.ts +1 -1
- package/lib/datatable/components/datatable/datatable.component.scss +1 -1
- package/lib/datatable/components/datatable-cell/datatable-cell.component.d.ts +1 -1
- package/lib/datatable/components/datatable-row/datatable-row.component.d.ts +1 -1
- package/lib/datatable/components/date-cell/date-cell.component.d.ts +1 -1
- package/lib/datatable/components/empty-list/empty-list.component.d.ts +4 -4
- package/lib/datatable/components/filesize-cell/filesize-cell.component.d.ts +1 -1
- package/lib/datatable/components/icon-cell/icon-cell.component.d.ts +1 -1
- package/lib/datatable/components/json-cell/json-cell.component.d.ts +1 -1
- package/lib/datatable/components/location-cell/location-cell.component.d.ts +1 -1
- package/lib/datatable/components/number-cell/number-cell.component.d.ts +1 -1
- package/lib/datatable/data/data-table.schema.d.ts +1 -1
- package/lib/datatable/data-column/data-column-header.component.d.ts +1 -1
- package/lib/datatable/data-column/data-column-list.component.d.ts +1 -1
- package/lib/datatable/data-column/data-column.component.d.ts +1 -1
- package/lib/datatable/directives/custom-empty-content-template.directive.d.ts +1 -1
- package/lib/datatable/directives/custom-loading-template.directive.d.ts +1 -1
- package/lib/datatable/directives/custom-no-permission-template.directive.d.ts +1 -1
- package/lib/datatable/directives/drop-zone.directive.d.ts +1 -1
- package/lib/datatable/directives/header-filter-template.directive.d.ts +1 -1
- package/lib/datatable/directives/loading-template.directive.d.ts +1 -1
- package/lib/datatable/directives/main-data-table-action-template.directive.d.ts +1 -1
- package/lib/datatable/directives/no-content-template.directive.d.ts +1 -1
- package/lib/datatable/directives/no-permission-template.directive.d.ts +1 -1
- package/lib/datatable/directives/resizable/resizable.directive.d.ts +1 -1
- package/lib/datatable/directives/resizable/resize-handle.directive.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm.dialog.d.ts +23 -0
- package/lib/dialogs/confirm-dialog/confirm.dialog.module.d.ts +12 -0
- package/lib/dialogs/confirm-dialog/confirm.dialog.scss +13 -0
- package/lib/dialogs/dialog/dialog-data.interface.d.ts +43 -0
- package/lib/dialogs/dialog/dialog.component.d.ts +42 -0
- package/lib/dialogs/dialog/dialog.component.scss +284 -0
- package/lib/{mock/alfresco-api.mock.d.ts → dialogs/dialog/dialog.model.d.ts} +6 -5
- package/lib/{buttons-menu → dialogs/dialog}/index.d.ts +3 -1
- package/lib/dialogs/edit-json/edit-json.dialog.d.ts +1 -1
- package/lib/dialogs/edit-json/edit-json.dialog.scss +3 -1
- package/lib/dialogs/public-api.d.ts +3 -0
- package/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -1
- package/lib/directives/highlight.directive.d.ts +1 -1
- package/lib/directives/infinite-select-scroll.directive.d.ts +1 -1
- package/lib/directives/logout.directive.d.ts +1 -1
- package/lib/directives/tooltip-card/tooltip-card.component.d.ts +1 -1
- package/lib/directives/tooltip-card/tooltip-card.directive.d.ts +1 -1
- package/lib/directives/upload.directive.d.ts +1 -1
- package/lib/dynamic-chip-list/dynamic-chip-list.component.d.ts +4 -2
- package/lib/dynamic-chip-list/dynamic-chip-list.component.scss +19 -4
- package/lib/dynamic-chip-list/dynamic-chip-list.module.d.ts +1 -6
- package/lib/form/components/form-base.component.d.ts +3 -3
- package/lib/form/components/form-custom-button.directive.d.ts +1 -4
- package/lib/form/components/form-field/form-field.component.d.ts +3 -3
- package/lib/form/components/form-renderer.component.d.ts +3 -19
- package/lib/form/components/form-renderer.component.scss +33 -33
- package/lib/form/components/inplace-form-input/inplace-form-input.component.d.ts +1 -1
- package/lib/form/components/inplace-form-input/inplace-form-input.component.scss +5 -3
- package/lib/form/components/middlewares/middleware.d.ts +1 -1
- package/lib/form/components/widgets/amount/amount.widget.d.ts +1 -17
- package/lib/form/components/widgets/amount/amount.widget.scss +10 -2
- package/lib/form/components/widgets/base-viewer/base-viewer.widget.d.ts +1 -17
- package/lib/form/components/widgets/checkbox/checkbox.widget.d.ts +1 -1
- package/lib/form/components/widgets/core/form-field.model.d.ts +8 -0
- package/lib/form/components/widgets/core/form-outcome.model.d.ts +1 -0
- package/lib/form/components/widgets/date/date.widget.d.ts +3 -19
- package/lib/form/components/widgets/date-time/date-time.widget.d.ts +1 -17
- package/lib/form/components/widgets/date-time/date-time.widget.scss +7 -5
- package/lib/form/components/widgets/decimal/decimal.component.d.ts +1 -1
- package/lib/form/components/widgets/display-text/display-text.widget.d.ts +1 -1
- package/lib/form/components/widgets/error/error.component.d.ts +2 -2
- package/lib/form/components/widgets/error/error.component.scss +5 -0
- package/lib/form/components/widgets/form.theme.scss +13 -11
- package/lib/form/components/widgets/hyperlink/hyperlink.widget.d.ts +2 -18
- package/lib/form/components/widgets/json/json.widget.d.ts +2 -2
- package/lib/form/components/widgets/multiline-text/multiline-text.widget.d.ts +1 -1
- package/lib/form/components/widgets/number/number.widget.d.ts +2 -18
- package/lib/form/components/widgets/text/text-mask.component.d.ts +1 -1
- package/lib/form/components/widgets/text/text.widget.d.ts +1 -17
- package/lib/form/components/widgets/text/text.widget.scss +3 -1
- package/lib/form/components/widgets/unknown/unknown.widget.d.ts +1 -1
- package/lib/form/components/widgets/widget.component.d.ts +1 -1
- package/lib/form/form-base.module.d.ts +19 -30
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/identity-user-info/identity-user-info.component.d.ts +1 -1
- package/lib/info-drawer/info-drawer-layout.component.d.ts +4 -4
- package/lib/info-drawer/info-drawer-layout.component.scss +10 -3
- package/lib/info-drawer/info-drawer.component.d.ts +2 -2
- package/lib/info-drawer/info-drawer.component.scss +46 -33
- package/lib/language-menu/language-menu.component.d.ts +1 -1
- package/lib/language-menu/language-picker.component.d.ts +1 -1
- package/lib/layout/components/header/header.component.d.ts +1 -1
- package/lib/layout/components/layout-container/layout-container.component.d.ts +2 -1
- package/lib/layout/components/layout-container/layout-container.component.scss +5 -3
- package/lib/layout/components/sidebar-action/sidebar-action-menu.component.d.ts +4 -4
- package/lib/layout/components/sidenav-layout/sidenav-layout.component.d.ts +1 -1
- package/lib/layout/components/sidenav-layout/sidenav-layout.component.scss +2 -1
- package/lib/layout/directives/sidenav-layout-content.directive.d.ts +1 -1
- package/lib/layout/directives/sidenav-layout-header.directive.d.ts +1 -1
- package/lib/layout/directives/sidenav-layout-navigation.directive.d.ts +1 -1
- package/lib/login/components/login/login.component.d.ts +2 -2
- package/lib/login/components/login/login.component.scss +54 -18
- package/lib/login/components/login-dialog/login-dialog.component.d.ts +1 -1
- package/lib/login/components/login-dialog-panel/login-dialog-panel.component.d.ts +1 -1
- package/lib/login/directives/login-footer.directive.d.ts +1 -1
- package/lib/login/directives/login-header.directive.d.ts +1 -1
- package/lib/material.module.d.ts +4 -5
- package/lib/mock/data-column.mock.d.ts +1 -1
- package/lib/mock/public-api.d.ts +0 -2
- package/lib/models/comment.model.d.ts +1 -1
- package/lib/notifications/components/add-notification.stories.component.d.ts +1 -1
- package/lib/notifications/components/notification-history.component.d.ts +1 -1
- package/lib/notifications/components/notification-history.component.scss +82 -5
- package/lib/pagination/infinite-pagination.component.d.ts +1 -1
- package/lib/pagination/pagination.component.d.ts +2 -2
- package/lib/pagination/pagination.component.scss +2 -6
- package/lib/prebuilt-themes/adf-blue-orange.css +1 -1
- package/lib/prebuilt-themes/adf-blue-purple.css +1 -1
- package/lib/prebuilt-themes/adf-cyan-orange.css +1 -1
- package/lib/prebuilt-themes/adf-cyan-purple.css +1 -1
- package/lib/prebuilt-themes/adf-green-orange.css +1 -1
- package/lib/prebuilt-themes/adf-green-purple.css +1 -1
- package/lib/prebuilt-themes/adf-indigo-pink.css +1 -1
- package/lib/prebuilt-themes/adf-pink-bluegrey.css +1 -1
- package/lib/prebuilt-themes/adf-purple-green.css +1 -1
- package/lib/search-text/search-text-input.component.d.ts +3 -1
- package/lib/search-text/search-text-input.component.scss +5 -10
- package/lib/search-text/search-trigger.directive.d.ts +1 -1
- package/lib/snackbar-content/snackbar-content.component.d.ts +1 -1
- package/lib/snackbar-content/snackbar-content.component.scss +19 -1
- package/lib/sorting-picker/sorting-picker.component.d.ts +1 -1
- package/lib/styles/_components-variables.scss +3 -14
- package/lib/styles/_index.scss +12 -11
- package/lib/styles/_mat-selectors.scss +208 -0
- package/lib/styles/_theming.scss +1 -0
- package/lib/styles/_typography.scss +12 -13
- package/lib/styles/material.theme.scss +36 -10
- package/lib/styles/prebuilt/adf-blue-orange.scss +1 -0
- package/lib/styles/prebuilt/adf-blue-purple.scss +1 -0
- package/lib/styles/prebuilt/adf-cyan-orange.scss +1 -0
- package/lib/styles/prebuilt/adf-cyan-purple.scss +1 -0
- package/lib/styles/prebuilt/adf-green-orange.scss +1 -0
- package/lib/styles/prebuilt/adf-green-purple.scss +1 -0
- package/lib/styles/prebuilt/adf-indigo-pink.scss +1 -0
- package/lib/styles/prebuilt/adf-pink-bluegrey.scss +1 -0
- package/lib/styles/prebuilt/adf-purple-green.scss +1 -0
- package/lib/templates/empty-content/empty-content.component.d.ts +1 -1
- package/lib/templates/empty-content/empty-content.component.scss +2 -0
- package/lib/templates/error-content/error-content.component.d.ts +1 -1
- package/lib/testing/core.story.module.d.ts +9 -0
- package/lib/testing/index.d.ts +1 -1
- package/lib/toolbar/toolbar-divider.component.d.ts +1 -1
- package/lib/toolbar/toolbar-title.component.d.ts +1 -1
- package/lib/toolbar/toolbar.component.d.ts +1 -1
- package/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.d.ts +1 -1
- package/lib/viewer/components/img-viewer/img-viewer.component.d.ts +4 -1
- package/lib/viewer/components/img-viewer/img-viewer.component.scss +3 -1
- package/lib/viewer/components/media-player/media-player.component.d.ts +1 -1
- package/lib/viewer/components/pdf-viewer/pdf-viewer.component.d.ts +2 -2
- package/lib/viewer/components/pdf-viewer/pdf-viewer.component.scss +4 -2
- package/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.d.ts +1 -1
- package/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.d.ts +1 -1
- package/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.d.ts +1 -1
- package/lib/viewer/components/txt-viewer/txt-viewer.component.d.ts +1 -1
- package/lib/viewer/components/unknown-format/unknown-format.component.d.ts +1 -1
- package/lib/viewer/components/viewer-more-actions.component.d.ts +1 -1
- package/lib/viewer/components/viewer-open-with.component.d.ts +1 -1
- package/lib/viewer/components/viewer-render/viewer-render.component.d.ts +9 -1
- package/lib/viewer/components/viewer-render/viewer-render.component.scss +2 -0
- package/lib/viewer/components/viewer-sidebar.component.d.ts +1 -1
- package/lib/viewer/components/viewer-toolbar-actions.component.d.ts +1 -1
- package/lib/viewer/components/viewer-toolbar-custom-actions.component.d.ts +1 -1
- package/lib/viewer/components/viewer-toolbar.component.d.ts +1 -1
- package/lib/viewer/components/viewer.component.d.ts +10 -2
- package/lib/viewer/components/viewer.component.scss +12 -2
- package/lib/viewer/directives/viewer-extension.directive.d.ts +1 -1
- package/lib/viewer/viewer.module.d.ts +20 -1
- package/package.json +12 -4
- package/public-api.d.ts +2 -2
- package/shell/lib/components/shell/shell.component.d.ts +1 -1
- package/shell/lib/shell.module.d.ts +17 -5
- package/auth/src/authentication-interceptor/README.md +0 -25
- package/bundles/assets/images/ecm-background.png +0 -0
- package/esm2020/lib/about/about-github-link/about-github-link.component.mjs +0 -47
- package/esm2020/lib/about/about-platform-version/about-platform-version.component.mjs +0 -63
- package/esm2020/lib/about/services/aae-info.service.mjs +0 -53
- package/esm2020/lib/auth/services/oidc-authentication.service.mjs +0 -194
- package/esm2020/lib/buttons-menu/buttons-menu.component.mjs +0 -40
- package/esm2020/lib/buttons-menu/buttons-menu.module.mjs +0 -49
- package/esm2020/lib/buttons-menu/index.mjs +0 -18
- package/esm2020/lib/buttons-menu/public-api.mjs +0 -19
- package/esm2020/lib/card-view/validators/card-view-item-length.valiator.mjs +0 -28
- package/esm2020/lib/card-view/validators/card-view-item-match.valiator.mjs +0 -29
- package/esm2020/lib/card-view/validators/card-view-item-minmax.valiator.mjs +0 -29
- package/esm2020/lib/mock/alfresco-api.mock.mjs +0 -26
- package/esm2020/lib/mock/form/demo-form.mock.mjs +0 -1948
- package/esm2020/lib/mock/form/start-form.component.mock.mjs +0 -1017
- package/esm2020/lib/testing/automation.service.mjs +0 -79
- package/lib/about/about-github-link/about-github-link.component.d.ts +0 -12
- package/lib/about/about-github-link/about-github-link.component.scss +0 -3
- package/lib/about/about-platform-version/about-platform-version.component.d.ts +0 -32
- package/lib/about/services/aae-info.service.d.ts +0 -18
- package/lib/buttons-menu/buttons-menu.component.scss +0 -29
- package/lib/buttons-menu/buttons-menu.module.d.ts +0 -12
- package/lib/mock/form/start-form.component.mock.d.ts +0 -24
- package/lib/testing/automation.service.d.ts +0 -19
package/api/lib/types.d.ts
CHANGED
|
@@ -33,5 +33,5 @@ export declare class BreadcrumbComponent implements AfterContentInit, OnChanges
|
|
|
33
33
|
private setBreadcrumbs;
|
|
34
34
|
private mapToTemplateRefs;
|
|
35
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "adf-breadcrumb", never, { "compact": "compact"; }, { "compactChange": "compactChange"; }, ["breadcrumbItems"], never, true>;
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "adf-breadcrumb", never, { "compact": "compact"; }, { "compactChange": "compactChange"; }, ["breadcrumbItems"], never, true, never>;
|
|
37
37
|
}
|
|
@@ -19,5 +19,5 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
export declare class BreadcrumbItemComponent {
|
|
20
20
|
templateRef: TemplateRef<any>;
|
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbItemComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbItemComponent, "adf-breadcrumb-item", never, {}, {}, never, ["*"], true>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbItemComponent, "adf-breadcrumb-item", never, {}, {}, never, ["*"], true, never>;
|
|
23
23
|
}
|
|
@@ -23,5 +23,5 @@ export declare class BreadcrumbFocusDirective {
|
|
|
23
23
|
focusOnFirstFocusableElement(): void;
|
|
24
24
|
private getFocusableElements;
|
|
25
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbFocusDirective, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BreadcrumbFocusDirective, "[adf-breadcrumb-focus]", never, {}, {}, never, never, true>;
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BreadcrumbFocusDirective, "[adf-breadcrumb-focus]", never, {}, {}, never, never, true, never>;
|
|
27
27
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "جار التحميل...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} مربع تحرير وسرد {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "تأكيد",
|
|
572
|
+
"ACTION": "هل تريد المتابعة؟",
|
|
573
|
+
"YES_LABEL": "نعم",
|
|
574
|
+
"NO_LABEL": "لا"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Načítání...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} combobox {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Potvrdit",
|
|
572
|
+
"ACTION": "Chcete pokračovat?",
|
|
573
|
+
"YES_LABEL": "Ano",
|
|
574
|
+
"NO_LABEL": "Ne"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Indlæser...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} kombiboks {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Bekræft",
|
|
572
|
+
"ACTION": "Vil du fortsætte?",
|
|
573
|
+
"YES_LABEL": "Ja",
|
|
574
|
+
"NO_LABEL": "Nej"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Es wird geladen...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} Kombinationsfeld {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Bestätigen",
|
|
572
|
+
"ACTION": "Möchten Sie fortfahren?",
|
|
573
|
+
"YES_LABEL": "Ja",
|
|
574
|
+
"NO_LABEL": "Nein"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -196,6 +196,7 @@
|
|
|
196
196
|
"VALIDATORS": {
|
|
197
197
|
"FLOAT_VALIDATION_ERROR": "Use a number format",
|
|
198
198
|
"INT_VALIDATION_ERROR": "Use an integer format",
|
|
199
|
+
"LONG_VALIDATION_ERROR": "Use a long format",
|
|
199
200
|
"LENGTH_VALIDATION_ERROR": "Value should be between {{ minLength }} and {{ maxLength }} in length",
|
|
200
201
|
"MATCH_VALIDATION_ERROR": "Value doesn't match pattern: {{ expression }}",
|
|
201
202
|
"MINMAX_VALIDATION_ERROR": "Value should be between {{ minValue }} and {{ maxValue }}",
|
|
@@ -252,6 +253,12 @@
|
|
|
252
253
|
"SEARCH": {
|
|
253
254
|
"TOGGLE_ASC_DESC_ORDER": "Toggle results between ascending and descending order",
|
|
254
255
|
"SORT_BY": "Sort by"
|
|
256
|
+
},
|
|
257
|
+
"FEATURE-FLAGS": {
|
|
258
|
+
"OVERRIDES": "Feature flag overrides",
|
|
259
|
+
"FILTER_OR_ADD_NEW": "Filter or add new",
|
|
260
|
+
"FILTER": "Filter",
|
|
261
|
+
"ADD_NEW": "Add new feature flag (Shift + Enter)"
|
|
255
262
|
}
|
|
256
263
|
},
|
|
257
264
|
"COMMENTS": {
|
|
@@ -508,26 +515,6 @@
|
|
|
508
515
|
"PROCESS_SERVICE_HOST": "Alfresco Process Services URL: {{ value }}"
|
|
509
516
|
},
|
|
510
517
|
"REPOSITORY": "Repository",
|
|
511
|
-
"VERSIONS": {
|
|
512
|
-
"TITLE": "Product Versions",
|
|
513
|
-
"CONTENT_SERVICE": "Content Services",
|
|
514
|
-
"PROCESS_SERVICE": "Process Services",
|
|
515
|
-
"MODELING_SERVICE": "Modeling Services",
|
|
516
|
-
"DEPLOYMENT_SERVICE": "Deployment Services",
|
|
517
|
-
"QUERY_SERVICE": "Deployment Services",
|
|
518
|
-
"RB": "Runtime",
|
|
519
|
-
"LABELS": {
|
|
520
|
-
"EDITION": "Edition",
|
|
521
|
-
"VERSION": "Version",
|
|
522
|
-
"LICENSE": "License",
|
|
523
|
-
"STATUS": "Status",
|
|
524
|
-
"MODULES": "Modules"
|
|
525
|
-
}
|
|
526
|
-
},
|
|
527
|
-
"SOURCE_CODE": {
|
|
528
|
-
"TITLE": "Source code",
|
|
529
|
-
"DESCRIPTION": "You are running the project based on the following commit:"
|
|
530
|
-
},
|
|
531
518
|
"PACKAGES": {
|
|
532
519
|
"TITLE": "Packages",
|
|
533
520
|
"NAME": "Name",
|
|
@@ -588,5 +575,11 @@
|
|
|
588
575
|
},
|
|
589
576
|
"DYNAMIC_CHIP_LIST": {
|
|
590
577
|
"LOAD_MORE": "Load more"
|
|
578
|
+
},
|
|
579
|
+
"ADF_CONFIRM_DIALOG": {
|
|
580
|
+
"TITLE": "Confirm",
|
|
581
|
+
"ACTION": "Do you want to proceed?",
|
|
582
|
+
"YES_LABEL": "Yes",
|
|
583
|
+
"NO_LABEL": "No"
|
|
591
584
|
}
|
|
592
585
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Cargando...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} combobox {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Confirmar",
|
|
572
|
+
"ACTION": "¿Desea continuar?",
|
|
573
|
+
"YES_LABEL": "Sí",
|
|
574
|
+
"NO_LABEL": "No"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Ladataan...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} yhdistelmäruutu {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Vahvista",
|
|
572
|
+
"ACTION": "Haluatko jatkaa?",
|
|
573
|
+
"YES_LABEL": "Kyllä",
|
|
574
|
+
"NO_LABEL": "Ei"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Chargement...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} zone de liste déroulante {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Confirmer",
|
|
572
|
+
"ACTION": "Voulez-vous continuer ?",
|
|
573
|
+
"YES_LABEL": "Oui",
|
|
574
|
+
"NO_LABEL": "Non"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Caricamento in corso...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} casella combinata {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Conferma",
|
|
572
|
+
"ACTION": "Procedere?",
|
|
573
|
+
"YES_LABEL": "Sì",
|
|
574
|
+
"NO_LABEL": "No"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "読み込んでいます...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}}コンボボックス{{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "確認",
|
|
572
|
+
"ACTION": "作業を続けますか?",
|
|
573
|
+
"YES_LABEL": "はい",
|
|
574
|
+
"NO_LABEL": "いいえ"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Laster inn...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} komboboks {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Bekreft",
|
|
572
|
+
"ACTION": "Vil du fortsette?",
|
|
573
|
+
"YES_LABEL": "Ja",
|
|
574
|
+
"NO_LABEL": "Nei"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Laden...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} keuzelijst met invoervak {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Bevestigen",
|
|
572
|
+
"ACTION": "Wilt u doorgaan?",
|
|
573
|
+
"YES_LABEL": "Ja",
|
|
574
|
+
"NO_LABEL": "Nee"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Wczytywanie...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} - pole kombi - {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Potwierdź",
|
|
572
|
+
"ACTION": "Czy chcesz kontynuować?",
|
|
573
|
+
"YES_LABEL": "Tak",
|
|
574
|
+
"NO_LABEL": "Nie"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Carregando...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} caixa de combinação {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Confirmar",
|
|
572
|
+
"ACTION": "Deseja continuar?",
|
|
573
|
+
"YES_LABEL": "Sim",
|
|
574
|
+
"NO_LABEL": "Não"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Загрузка...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} выпадающий список {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Подтвердить",
|
|
572
|
+
"ACTION": "Хотите продолжить?",
|
|
573
|
+
"YES_LABEL": "Да",
|
|
574
|
+
"NO_LABEL": "Нет"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -566,5 +566,11 @@
|
|
|
566
566
|
"ADF_DROPDOWN": {
|
|
567
567
|
"LOADING": "Läser in...",
|
|
568
568
|
"SELECTION_ARIA_LABEL": "{{placeholder}} kombinationsrutan {{selectedOption}}"
|
|
569
|
+
},
|
|
570
|
+
"ADF_CONFIRM_DIALOG": {
|
|
571
|
+
"TITLE": "Bekräfta",
|
|
572
|
+
"ACTION": "Vill du fortsätta?",
|
|
573
|
+
"YES_LABEL": "Ja",
|
|
574
|
+
"NO_LABEL": "Nej"
|
|
569
575
|
}
|
|
570
576
|
}
|
|
@@ -3,40 +3,38 @@
|
|
|
3
3
|
@import '../variables/font-family';
|
|
4
4
|
|
|
5
5
|
@function get-mat-typography($base-font-size, $font-family) {
|
|
6
|
-
$custom-typography: mat.define-typography-config(
|
|
7
|
-
$font-family:
|
|
8
|
-
$
|
|
9
|
-
$
|
|
10
|
-
$
|
|
11
|
-
$
|
|
12
|
-
$headline: mat.define-typography-level(24px, 32px, 400),
|
|
13
|
-
$
|
|
14
|
-
$
|
|
15
|
-
$
|
|
16
|
-
$
|
|
17
|
-
$body-
|
|
6
|
+
$custom-typography: mat.define-legacy-typography-configmat.define-typography-config(
|
|
7
|
+
$font-family: 'Muli, Roboto, "Helvetica Neue", sans-serif',
|
|
8
|
+
$headline-1: mat.define-typography-level(112px, 112px, 300),
|
|
9
|
+
$headline-2: mat.define-typography-level(56px, 56px, 400),
|
|
10
|
+
$headline-3: mat.define-typography-level(45px, 48px, 400),
|
|
11
|
+
$headline-4: mat.define-typography-level(34px, 40px, 400),
|
|
12
|
+
$headline-5: mat.define-typography-level(24px, 32px, 400),
|
|
13
|
+
$headline-6: mat.define-typography-level(20px, 32px, 500),
|
|
14
|
+
$subtitle-1: mat.define-typography-level(16px, 28px, 400),
|
|
15
|
+
$body-1: mat.define-typography-level(15px, 24px, 400),
|
|
16
|
+
$subtitle-2: mat.define-typography-level(14px, 24px, 500),
|
|
17
|
+
$body-2: mat.define-typography-level(14px, 20px, 400),
|
|
18
18
|
$caption: mat.define-typography-level(12px, 20px, 400),
|
|
19
19
|
$button: mat.define-typography-level(14px, 14px, 500),
|
|
20
20
|
// Line-height must be unit-less fraction of the font-size.
|
|
21
|
-
$input: mat.define-typography-level(16px, 1.25, 400),
|
|
22
21
|
);
|
|
23
22
|
|
|
24
23
|
@if $base-font-size {
|
|
25
|
-
$custom-typography: mat.define-typography-config(
|
|
26
|
-
$
|
|
27
|
-
$
|
|
28
|
-
$
|
|
29
|
-
$
|
|
30
|
-
$headline: mat.define-typography-level(1.71rem, 2.28rem, 400),
|
|
31
|
-
$
|
|
32
|
-
$
|
|
33
|
-
$
|
|
34
|
-
$
|
|
35
|
-
$body-
|
|
24
|
+
$custom-typography: mat.define-legacy-typography-configmat.define-typography-config(
|
|
25
|
+
$headline-1: mat.define-typography-level(8rem, 8rem, 300),
|
|
26
|
+
$headline-2: mat.define-typography-level(4rem, 4rem, 400),
|
|
27
|
+
$headline-3: mat.define-typography-level(3.21rem, 3.21rem, 400),
|
|
28
|
+
$headline-4: mat.define-typography-level(2.42rem, 2.85rem, 400),
|
|
29
|
+
$headline-5: mat.define-typography-level(1.71rem, 2.28rem, 400),
|
|
30
|
+
$headline-6: mat.define-typography-level(1.42rem, 2.28rem, 500),
|
|
31
|
+
$subtitle-1: mat.define-typography-level(1.14rem, 2rem, 400),
|
|
32
|
+
$body-1: mat.define-typography-level(1.07rem, 1.71rem, 400),
|
|
33
|
+
$subtitle-2: mat.define-typography-level(1rem, 1.71rem, 500),
|
|
34
|
+
$body-2: mat.define-typography-level(1rem, 1.42rem, 400),
|
|
36
35
|
$caption: mat.define-typography-level(0.86rem, 1.42rem, 400),
|
|
37
36
|
$button: mat.define-typography-level(1rem, 1rem, 500),
|
|
38
37
|
$font-family: $default-font-family,
|
|
39
|
-
$input: mat.define-typography-level(1.14em, 1.25, 400),
|
|
40
38
|
);
|
|
41
39
|
}
|
|
42
40
|
|
|
@@ -26,6 +26,12 @@ import ee from 'event-emitter';
|
|
|
26
26
|
import * as i0 from "@angular/core";
|
|
27
27
|
import * as i1 from "@angular/common/http";
|
|
28
28
|
export class AdfHttpClient {
|
|
29
|
+
get disableCsrf() {
|
|
30
|
+
return this._disableCsrf;
|
|
31
|
+
}
|
|
32
|
+
set disableCsrf(disableCsrf) {
|
|
33
|
+
this._disableCsrf = disableCsrf;
|
|
34
|
+
}
|
|
29
35
|
constructor(httpClient) {
|
|
30
36
|
this.httpClient = httpClient;
|
|
31
37
|
this.defaultSecurityOptions = {
|
|
@@ -36,12 +42,6 @@ export class AdfHttpClient {
|
|
|
36
42
|
};
|
|
37
43
|
ee(this);
|
|
38
44
|
}
|
|
39
|
-
get disableCsrf() {
|
|
40
|
-
return this._disableCsrf;
|
|
41
|
-
}
|
|
42
|
-
set disableCsrf(disableCsrf) {
|
|
43
|
-
this._disableCsrf = disableCsrf;
|
|
44
|
-
}
|
|
45
45
|
setDefaultSecurityOption(options) {
|
|
46
46
|
this.defaultSecurityOptions = this.merge(this.defaultSecurityOptions, options);
|
|
47
47
|
}
|
|
@@ -293,12 +293,12 @@ export class AdfHttpClient {
|
|
|
293
293
|
return new Blob([response.body], { type: response.headers.get('Content-Type') });
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
-
AdfHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
297
|
-
AdfHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
296
|
+
AdfHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdfHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
297
|
+
AdfHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdfHttpClient, providedIn: 'root' });
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdfHttpClient, decorators: [{
|
|
299
299
|
type: Injectable,
|
|
300
300
|
args: [{
|
|
301
301
|
providedIn: 'root'
|
|
302
302
|
}]
|
|
303
303
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWh0dHAtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hcGkvc3JjL2xpYi9hZGYtaHR0cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQ0gsVUFBVSxFQUNWLFdBQVcsRUFHWCxXQUFXLEVBQ1gsVUFBVSxFQUViLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QiwrQkFBK0IsRUFDL0IsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsRUFDbEIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUd0RixPQUFPLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQVU1QyxNQUFNLE9BQU8sYUFBYTtJQXdCdEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVBsQywyQkFBc0IsR0FBRztZQUM3QixlQUFlLEVBQUUsSUFBSTtZQUNyQixZQUFZLEVBQUUsS0FBSztZQUNuQixlQUFlLEVBQUUsRUFBRTtZQUNuQixjQUFjLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBR0UsRUFB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c0Y7WUFFdEYsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN0QyxPQUFPLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsUUFBNEI7UUFDL0QsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7MEdBclZRLGFBQWE7OEdBQWIsYUFBYSxjQUZWLE1BQU07MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFNIT1VMRF9BRERfQVVUSF9UT0tFTiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hdXRoJztcbmltcG9ydCB7IEVtaXR0ZXJzIGFzIEpzQXBpRW1pdHRlcnMsIEh0dHBDbGllbnQgYXMgSnNBcGlIdHRwQ2xpZW50IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQge1xuICAgIEh0dHBDbGllbnQsXG4gICAgSHR0cENvbnRleHQsXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXG4gICAgSHR0cEV2ZW50LFxuICAgIEh0dHBIZWFkZXJzLFxuICAgIEh0dHBQYXJhbXMsXG4gICAgSHR0cFJlc3BvbnNlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgY29udmVydE9iamVjdFRvRm9ybURhdGEsXG4gICAgZ2V0UXVlcnlQYXJhbXNXaXRoQ3VzdG9tRW5jb2RlcixcbiAgICBpc0Jsb2JSZXNwb25zZSxcbiAgICBpc0NvbnN0cnVjdG9yLFxuICAgIGlzSHR0cFJlc3BvbnNlRXZlbnQsXG4gICAgaXNIdHRwVXBsb2FkUHJvZ3Jlc3NFdmVudCxcbiAgICByZW1vdmVOaWxWYWx1ZXNcbn0gZnJvbSAnLi9hbGZyZXNjby1hcGkvYWxmcmVzY28tYXBpLnV0aWxzJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpUGFyYW1FbmNvZGVyIH0gZnJvbSAnLi9hbGZyZXNjby1hcGkvYWxmcmVzY28tYXBpLnBhcmFtLWVuY29kZXInO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlSZXNwb25zZUVycm9yIH0gZnJvbSAnLi9hbGZyZXNjby1hcGkvYWxmcmVzY28tYXBpLnJlc3BvbnNlLWVycm9yJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBSZXF1ZXN0T3B0aW9ucywgU2VjdXJpdHlPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCBlZSwgeyBFbWl0dGVyIH0gZnJvbSAnZXZlbnQtZW1pdHRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1pdHRlcnMge1xuICAgIHJlYWRvbmx5IGV2ZW50RW1pdHRlcjogRW1pdHRlcjtcbiAgICByZWFkb25seSBhcGlDbGllbnRFbWl0dGVyOiBFbWl0dGVyO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFkZkh0dHBDbGllbnQgaW1wbGVtZW50cyBlZS5FbWl0dGVyLEpzQXBpSHR0cENsaWVudCB7XG5cbiAgICBvbjogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBvZmY6IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgb25jZTogZWUuRW1pdHRlck1ldGhvZDtcbiAgICBfZGlzYWJsZUNzcmY6IGJvb2xlYW47XG5cbiAgICBlbWl0OiAodHlwZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcblxuICAgIGdldCBkaXNhYmxlQ3NyZigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVDc3JmO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlQ3NyZihkaXNhYmxlQ3NyZjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlQ3NyZiA9IGRpc2FibGVDc3JmO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdFNlY3VyaXR5T3B0aW9ucyA9IHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICBpc0JwbVJlcXVlc3Q6IGZhbHNlLFxuICAgICAgICBhdXRoZW50aWNhdGlvbnM6IHt9LFxuICAgICAgICBkZWZhdWx0SGVhZGVyczoge31cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIGVlKHRoaXMpO1xuICAgIH1cblxuICAgIHNldERlZmF1bHRTZWN1cml0eU9wdGlvbihvcHRpb25zOiBhbnkpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zID0gdGhpcy5tZXJnZSh0aGlzLmRlZmF1bHRTZWN1cml0eU9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG1lcmdlKC4uLm9iamVjdHMpOiBhbnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcblxuICAgICAgICBvYmplY3RzLmZvckVhY2goKHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3AgaW4gcmVzdWx0ICYmIEFycmF5LmlzQXJyYXkocmVzdWx0W3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSByZXN1bHRbcHJvcF0uY29uY2F0KHNvdXJjZVtwcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wIGluIHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0W3Byb3BdID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSB0aGlzLm1lcmdlKHJlc3VsdFtwcm9wXSwgc291cmNlW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmVxdWVzdDxUID0gYW55Pih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYzogU2VjdXJpdHlPcHRpb25zID0gdGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IEFkZkh0dHBDbGllbnQuZ2V0Qm9keShvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gZ2V0UXVlcnlQYXJhbXNXaXRoQ3VzdG9tRW5jb2RlcihvcHRpb25zLnF1ZXJ5UGFyYW1zLCBuZXcgQWxmcmVzY29BcGlQYXJhbUVuY29kZXIoKSk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9IEFkZkh0dHBDbGllbnQuZ2V0UmVzcG9uc2VUeXBlKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCkuc2V0KFNIT1VMRF9BRERfQVVUSF9UT0tFTiwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHNlY3VyaXR5OiBTZWN1cml0eU9wdGlvbnMgPSB7Li4udGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zLCAuLi5zY307XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMob3B0aW9ucyk7XG4gICAgICAgIGlmICghZW1pdHRlcnMpIHtcbiAgICAgICAgICAgIGVtaXR0ZXJzID0gdGhpcy5nZXRFdmVudEVtaXR0ZXJzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QoXG4gICAgICAgICAgICBvcHRpb25zLmh0dHBNZXRob2QsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICAuLi4oYm9keSAmJiB7Ym9keX0pLFxuICAgICAgICAgICAgICAgIC4uLihyZXNwb25zZVR5cGUgJiYge3Jlc3BvbnNlVHlwZX0pLFxuICAgICAgICAgICAgICAgIC4uLnNlY3VyaXR5LFxuICAgICAgICAgICAgICAgIC4uLihwYXJhbXMgJiYge3BhcmFtc30pLFxuICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0V2l0aExlZ2FjeUV2ZW50RW1pdHRlcnM8VD4ocmVxdWVzdCwgZW1pdHRlcnMsIG9wdGlvbnMucmV0dXJuVHlwZSk7XG4gICAgfVxuXG4gICAgcG9zdDxUID0gYW55Pih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYz86IFNlY3VyaXR5T3B0aW9ucywgZW1pdHRlcnM/OiBKc0FwaUVtaXR0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4odXJsLCB7Li4ub3B0aW9ucywgaHR0cE1ldGhvZDogJ1BPU1QnfSwgc2MsIGVtaXR0ZXJzKTtcbiAgICB9XG5cbiAgICBwdXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucywgc2M/OiBTZWN1cml0eU9wdGlvbnMsIGVtaXR0ZXJzPzogSnNBcGlFbWl0dGVycyk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KHVybCwgey4uLm9wdGlvbnMsIGh0dHBNZXRob2Q6ICdQVVQnfSwgc2MsIGVtaXR0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucywgc2M/OiBTZWN1cml0eU9wdGlvbnMsIGVtaXR0ZXJzPzogSnNBcGlFbWl0dGVycyk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KHVybCwgey4uLm9wdGlvbnMsIGh0dHBNZXRob2Q6ICdHRVQnfSwgc2MsIGVtaXR0ZXJzKTtcbiAgICB9XG5cbiAgICBkZWxldGU8VCA9IHZvaWQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIHNjPzogU2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPih1cmwsIHsuLi5vcHRpb25zLCBodHRwTWV0aG9kOiAnREVMRVRFJ30sIHNjLCBlbWl0dGVycyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQcm9taXNlTGlzdGVuZXJzPFQgPSBhbnk+KHByb21pc2U6IFByb21pc2U8VD4sIGV2ZW50RW1pdHRlcjogYW55KSAge1xuICAgICAgICBjb25zdCBldmVudFByb21pc2UgPSBPYmplY3QuYXNzaWduKHByb21pc2UsIHtcbiAgICAgICAgICAgIG9uKCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkLCBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIub24uYXBwbHkoZXZlbnRFbWl0dGVyLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uY2UoKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1zcHJlYWQsIHByZWZlci1yZXN0LXBhcmFtc1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5vbmNlLmFwcGx5KGV2ZW50RW1pdHRlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbWl0KCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkLCBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdC5hcHBseShldmVudEVtaXR0ZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb2ZmKCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkLCBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIub2ZmLmFwcGx5KGV2ZW50RW1pdHRlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEV2ZW50RW1pdHRlcnMoKTogRW1pdHRlcnMge1xuICAgICAgICBjb25zdCBhcGlDbGllbnRFbWl0dGVyID0ge1xuICAgICAgICAgICAgb246IHRoaXMub24uYmluZCh0aGlzKSxcbiAgICAgICAgICAgIG9mZjogdGhpcy5vZmYuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIG9uY2U6IHRoaXMub25jZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZW1pdDogdGhpcy5lbWl0LmJpbmQodGhpcylcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYXBpQ2xpZW50RW1pdHRlcixcbiAgICAgICAgICAgIGV2ZW50RW1pdHRlcjogZWUoe30pXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXF1ZXN0V2l0aExlZ2FjeUV2ZW50RW1pdHRlcnM8VCA9IGFueT4ocmVxdWVzdCQ6IE9ic2VydmFibGU8SHR0cEV2ZW50PFQ+PiwgZW1pdHRlcnM6IEpzQXBpRW1pdHRlcnMsIHJldHVyblR5cGU6IGFueSk6IFByb21pc2U8VD4ge1xuXG4gICAgICAgIGNvbnN0IGFib3J0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIGNvbnN0IHtldmVudEVtaXR0ZXIsIGFwaUNsaWVudEVtaXR0ZXJ9ID0gZW1pdHRlcnM7XG5cbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IHJlcXVlc3QkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0h0dHBVcGxvYWRQcm9ncmVzc0V2ZW50KHJlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudCA9IE1hdGgucm91bmQoKHJlcy5sb2FkZWQgLyByZXMudG90YWwpICogMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ3Byb2dyZXNzJywge2xvYWRlZDogcmVzLmxvYWRlZCwgdG90YWw6IHJlcy50b3RhbCwgcGVyY2VudH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc0h0dHBSZXNwb25zZUV2ZW50KHJlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ3N1Y2Nlc3MnLCByZXMuYm9keSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBZGZIdHRwQ2xpZW50LmRlc2VyaWFsaXplKHJlcywgcmV0dXJuVHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxBbGZyZXNjb0FwaVJlc3BvbnNlRXJyb3I+ID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGNhbid0IGFsd2F5cyBkZXRlcm1pbmF0ZSBhaGVhZCBvZiB0aW1lIGlmIHRoZSByZXNwb25zZSBpcyBnb2luZyB0byBiZSB4bWwgb3IgcGxhaW4gdGV4dCByZXNwb25zZVxuICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gaGFuZGxlIGZhbHNlIHBvc2l0aXZlIGNhc2VzIGhlcmUuXG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdzdWNjZXNzJywgZXJyLmVycm9yLnRleHQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXJyLmVycm9yLnRleHQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdlcnJvcicsIGVycik7XG4gICAgICAgICAgICAgICAgYXBpQ2xpZW50RW1pdHRlci5lbWl0KCdlcnJvcicsIHsgLi4uZXJyLCByZXNwb25zZTogeyByZXE6IGVyciB9IH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgICAgIGFwaUNsaWVudEVtaXR0ZXIuZW1pdCgndW5hdXRob3JpemVkJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBlcnJvciBjbGFzcyBhcyB0aGUgSHR0cEVycm9yUmVzcG9uc2Ugb25seSBpbXBsZW1lbnRzIEVycm9yIGludGVyZmFjZSwgbm90IGV4dGVuZGluZyBpdCxcbiAgICAgICAgICAgICAgICAvLyBhbmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGNvcnJlY3RseSBwYXNzIGluc3RhbmNlb2YgRXJyb3IgY29uZGl0aW9ucyB1c2VkIGluc2lkZSByZXBvc2l0b3J5XG4gICAgICAgICAgICAgICAgLy8gd2UgYWxzbyBuZWVkIHRvIHBhc3MgZXJyb3IgYXMgU3RyaW5naWZ5IHN0cmluZyBhcyB3ZSBhcmUgZGV0ZWN0aW5nIHN0YXR1c0NvZGVzIHVzaW5nIEpTT04ucGFyc2UoZXJyb3IubWVzc2FnZSkgaW4gc29tZSBwbGFjZXNcbiAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSB0eXBlb2YgZXJyLmVycm9yID09PSAnc3RyaW5nJyA/IGVyci5lcnJvciA6IEpTT04uc3RyaW5naWZ5KGVyci5lcnJvcik7XG5cbiAgICAgICAgICAgICAgICAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgdG8gaGFuZGxlIGNhc2VzIGluIGNvZGUgd2hlcmUgd2UgdHJ5IHJlYWQgcmVzcG9uc2UuZXJyb3IucmVzcG9uc2UuYm9keTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lcnIsIGJvZHk6IGVyci5lcnJvclxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhbGZyZXNjb0FwaUVycm9yID0gbmV3IEFsZnJlc2NvQXBpUmVzcG9uc2VFcnJvcihtc2csIGVyci5zdGF0dXMsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihhbGZyZXNjb0FwaUVycm9yKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFrZVVudGlsKGFib3J0JClcbiAgICAgICAgKS50b1Byb21pc2UoKTtcblxuICAgICAgICAocHJvbWlzZSBhcyBhbnkpLmFib3J0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdCgnYWJvcnQnKTtcbiAgICAgICAgICAgIGFib3J0JC5uZXh0KCk7XG4gICAgICAgICAgICBhYm9ydCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFkZFByb21pc2VMaXN0ZW5lcnMocHJvbWlzZSwgZXZlbnRFbWl0dGVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRCb2R5KG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zKTogYW55IHtcbiAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBvcHRpb25zLmNvbnRlbnRUeXBlID8gb3B0aW9ucy5jb250ZW50VHlwZSA6IEFkZkh0dHBDbGllbnQuanNvblByZWZlcnJlZE1pbWUob3B0aW9ucy5jb250ZW50VHlwZXMpO1xuICAgICAgICBjb25zdCBpc0Zvcm1EYXRhID0gY29udGVudFR5cGUgPT09ICdtdWx0aXBhcnQvZm9ybS1kYXRhJztcbiAgICAgICAgY29uc3QgaXNGb3JtVXJsRW5jb2RlZCA9IGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJztcbiAgICAgICAgY29uc3QgYm9keSA9IG9wdGlvbnMuYm9keVBhcmFtO1xuXG4gICAgICAgIGlmIChpc0Zvcm1EYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydE9iamVjdFRvRm9ybURhdGEob3B0aW9ucy5mb3JtUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Zvcm1VcmxFbmNvZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IHJlbW92ZU5pbFZhbHVlcyhvcHRpb25zLmZvcm1QYXJhbXMpfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYm9keTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhlYWRlcnMob3B0aW9uczogUmVxdWVzdE9wdGlvbnMpOiBIdHRwSGVhZGVycyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gb3B0aW9ucy5jb250ZW50VHlwZSB8fCBBZGZIdHRwQ2xpZW50Lmpzb25QcmVmZXJyZWRNaW1lKG9wdGlvbnMuY29udGVudFR5cGVzKTtcbiAgICAgICAgY29uc3QgYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQgfHwgQWRmSHR0cENsaWVudC5qc29uUHJlZmVycmVkTWltZShvcHRpb25zLmFjY2VwdHMpO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnNIZWFkZXJzID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5oZWFkZXJQYXJhbXMsXG4gICAgICAgICAgICAuLi4oYWNjZXB0ICYmIHtBY2NlcHQ6IGFjY2VwdH0pLFxuICAgICAgICAgICAgLi4uKChjb250ZW50VHlwZSkgJiYgeydDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZX0pXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVDc3JmKSB7XG4gICAgICAgICAgICB0aGlzLnNldENzcmZUb2tlbihvcHRpb25zSGVhZGVycyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKG9wdGlvbnNIZWFkZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaG9vc2VzIGEgY29udGVudCB0eXBlIGZyb20gdGhlIGdpdmVuIGFycmF5LCB3aXRoIEpTT04gcHJlZmVycmVkOyBpLmUuIHJldHVybiBKU09OIGlmIGluY2x1ZGVkLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBmaXJzdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50VHlwZXMgYSBjb250ZW50VHlwZSBhcnJheVxuICAgICAqIEByZXR1cm5zICBUaGUgY2hvc2VuIGNvbnRlbnQgdHlwZSwgcHJlZmVycmluZyBKU09OLlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGpzb25QcmVmZXJyZWRNaW1lKGNvbnRlbnRUeXBlczogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWNvbnRlbnRUeXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250ZW50VHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChBZGZIdHRwQ2xpZW50LmlzSnNvbk1pbWUoY29udGVudFR5cGVzW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlc1swXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gY29udGVudCB0eXBlIHJlcHJlc2VudHMgSlNPTi48YnI+XG4gICAgICogSlNPTiBjb250ZW50IHR5cGUgZXhhbXBsZXM6PGJyPlxuICAgICAqIDx1bD5cbiAgICAgKiA8bGk+YXBwbGljYXRpb24vanNvbjwvbGk+XG4gICAgICogPGxpPmFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGODwvbGk+XG4gICAgICogPGxpPkFQUExJQ0FUSU9OL0pTT048L2xpPlxuICAgICAqIDwvdWw+XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGUgVGhlIE1JTUUgY29udGVudCB0eXBlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIDxjb2RlPmNvbnRlbnRUeXBlPC9jb2RlPiByZXByZXNlbnRzIEpTT04sIG90aGVyd2lzZSA8Y29kZT5mYWxzZTwvY29kZT4uXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNKc29uTWltZShjb250ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKGNvbnRlbnRUeXBlPy5tYXRjaCgvXmFwcGxpY2F0aW9uXFwvanNvbig7LiopPyQvaSkpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXRDc3JmVG9rZW4ob3B0aW9uc0hlYWRlcnM6IGFueSkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3JlYXRlQ1NSRlRva2VuKCk7XG4gICAgICAgIG9wdGlvbnNIZWFkZXJzWydYLUNTUkYtVE9LRU4nXSA9IHRva2VuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnQ1NSRi1UT0tFTj0nICsgdG9rZW4gKyAnO3BhdGg9Lyc7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLyogY29udGludWUgcmVnYXJkbGVzcyBvZiBlcnJvciAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDU1JGVG9rZW4oYT86IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhbmRvbVZhbHVlID0gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDEpKVswXTtcbiAgICAgICAgcmV0dXJuIGEgPyAoYSBeICgocmFuZG9tVmFsdWUgKiAxNikgPj4gKGEgLyA0KSkpLnRvU3RyaW5nKDE2KSA6IChbMWUxNl0gKyAoMWUxNikudG9TdHJpbmcoKSkucmVwbGFjZSgvWzAxXS9nLCB0aGlzLmNyZWF0ZUNTUkZUb2tlbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVzcG9uc2VUeXBlKG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zKTogJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnIHtcblxuICAgICAgICBjb25zdCBpc0Jsb2JUeXBlID0gb3B0aW9ucy5yZXR1cm5UeXBlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09ICdibG9iJyB8fCBvcHRpb25zLnJlc3BvbnNlVHlwZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnYmxvYic7XG5cbiAgICAgICAgaWYgKGlzQmxvYlR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnYmxvYic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5UeXBlID09PSAnU3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnanNvbic7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzZXJpYWxpemUgYW4gSFRUUCByZXNwb25zZSBib2R5IGludG8gYSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVzcG9uc2UgcmVzcG9uc2Ugb2JqZWN0XG4gICAgICogQHBhcmFtIHJldHVyblR5cGUgcmV0dXJuIHR5cGVcbiAgICAgKiBAcmV0dXJucyBkZXNlcmlhbGl6ZWQgb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVzZXJpYWxpemU8VD4ocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxUPiwgcmV0dXJuVHlwZT86IENvbnN0cnVjdG9yPHVua25vd24+IHwgJ2Jsb2InKTogYW55IHtcblxuICAgICAgICBpZiAocmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYm9keSA9IHJlc3BvbnNlLmJvZHk7XG5cbiAgICAgICAgaWYgKCFyZXR1cm5UeXBlKSB7XG4gICAgICAgICAgICAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2UgbmVlZCB0byByZXR1cm4gZW1wdHkgc3RyaW5nIGluc3RlYWQgb2YgbnVsbCxcbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIGlzc3VlcyB3aGVuIGFjY2Vzc2luZyBudWxsIHJlc3BvbnNlIHdvdWxkIGJyZWFrIGFwcGxpY2F0aW9uIFtDMzA5ODc4XVxuICAgICAgICAgICAgLy8gY2Fubm90IHJlYWQgcHJvcGVydHkgJ2VudHJ5JyBvZiBudWxsIGluIGNhc2VzIGxpa2VcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnBvc3QoYXBpVXJsLCBzYXZlRm9ybVJlcHJlc2VudGF0aW9uKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpXG5cbiAgICAgICAgICAgIHJldHVybiBib2R5ICE9PSBudWxsID8gYm9keSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmxvYlJlc3BvbnNlKHJlc3BvbnNlLCByZXR1cm5UeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIEFkZkh0dHBDbGllbnQuZGVzZXJpYWxpemVCbG9iUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0NvbnN0cnVjdG9yKHJldHVyblR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGJvZHkpKSB7XG4gICAgICAgICAgICByZXR1cm4gYm9keS5tYXAoKGVsZW1lbnQpID0+IG5ldyByZXR1cm5UeXBlKGVsZW1lbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgcmV0dXJuVHlwZShib2R5KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgc3RhdGljIGRlc2VyaWFsaXplQmxvYlJlc3BvbnNlKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QmxvYj4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwge3R5cGU6IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKX0pO1xuICAgIH1cbn1cblxuIl19
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRmLWh0dHAtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hcGkvc3JjL2xpYi9hZGYtaHR0cC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQ0gsVUFBVSxFQUNWLFdBQVcsRUFHWCxXQUFXLEVBQ1gsVUFBVSxFQUViLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QiwrQkFBK0IsRUFDL0IsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsRUFDbEIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUd0RixPQUFPLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQVU1QyxNQUFNLE9BQU8sYUFBYTtJQVN0QixJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFdBQW9CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFTRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFB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O1lBRXRGLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDcEM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxhQUFhLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR08sTUFBTSxDQUFDLHVCQUF1QixDQUFDLFFBQTRCO1FBQy9ELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7OzJHQXJWUSxhQUFhOytHQUFiLGFBQWEsY0FGVixNQUFNOzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTSE9VTERfQUREX0FVVEhfVE9LRU4gfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXV0aCc7XG5pbXBvcnQgeyBFbWl0dGVycyBhcyBKc0FwaUVtaXR0ZXJzLCBIdHRwQ2xpZW50IGFzIEpzQXBpSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHtcbiAgICBIdHRwQ2xpZW50LFxuICAgIEh0dHBDb250ZXh0LFxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBFdmVudCxcbiAgICBIdHRwSGVhZGVycyxcbiAgICBIdHRwUGFyYW1zLFxuICAgIEh0dHBSZXNwb25zZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIGNvbnZlcnRPYmplY3RUb0Zvcm1EYXRhLFxuICAgIGdldFF1ZXJ5UGFyYW1zV2l0aEN1c3RvbUVuY29kZXIsXG4gICAgaXNCbG9iUmVzcG9uc2UsXG4gICAgaXNDb25zdHJ1Y3RvcixcbiAgICBpc0h0dHBSZXNwb25zZUV2ZW50LFxuICAgIGlzSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQsXG4gICAgcmVtb3ZlTmlsVmFsdWVzXG59IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS51dGlscyc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVBhcmFtRW5jb2RlciB9IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS5wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpUmVzcG9uc2VFcnJvciB9IGZyb20gJy4vYWxmcmVzY28tYXBpL2FsZnJlc2NvLWFwaS5yZXNwb25zZS1lcnJvcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMsIFNlY3VyaXR5T3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgZWUsIHsgRW1pdHRlciB9IGZyb20gJ2V2ZW50LWVtaXR0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJzIHtcbiAgICByZWFkb25seSBldmVudEVtaXR0ZXI6IEVtaXR0ZXI7XG4gICAgcmVhZG9ubHkgYXBpQ2xpZW50RW1pdHRlcjogRW1pdHRlcjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBZGZIdHRwQ2xpZW50IGltcGxlbWVudHMgZWUuRW1pdHRlcixKc0FwaUh0dHBDbGllbnQge1xuXG4gICAgb246IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgb2ZmOiBlZS5FbWl0dGVyTWV0aG9kO1xuICAgIG9uY2U6IGVlLkVtaXR0ZXJNZXRob2Q7XG4gICAgX2Rpc2FibGVDc3JmOiBib29sZWFuO1xuXG4gICAgZW1pdDogKHR5cGU6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG5cbiAgICBnZXQgZGlzYWJsZUNzcmYoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQ3NyZjtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZUNzcmYoZGlzYWJsZUNzcmY6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZUNzcmYgPSBkaXNhYmxlQ3NyZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZmF1bHRTZWN1cml0eU9wdGlvbnMgPSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgaXNCcG1SZXF1ZXN0OiBmYWxzZSxcbiAgICAgICAgYXV0aGVudGljYXRpb25zOiB7fSxcbiAgICAgICAgZGVmYXVsdEhlYWRlcnM6IHt9XG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICAgICAgICBlZSh0aGlzKTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0U2VjdXJpdHlPcHRpb24ob3B0aW9uczogYW55KSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFNlY3VyaXR5T3B0aW9ucyA9IHRoaXMubWVyZ2UodGhpcy5kZWZhdWx0U2VjdXJpdHlPcHRpb25zLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBtZXJnZSguLi5vYmplY3RzKTogYW55IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG5cbiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKChzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wIGluIHJlc3VsdCAmJiBBcnJheS5pc0FycmF5KHJlc3VsdFtwcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W3Byb3BdID0gcmVzdWx0W3Byb3BdLmNvbmNhdChzb3VyY2VbcHJvcF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcCBpbiByZXN1bHQgJiYgdHlwZW9mIHJlc3VsdFtwcm9wXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W3Byb3BdID0gdGhpcy5tZXJnZShyZXN1bHRbcHJvcF0sIHNvdXJjZVtwcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJlcXVlc3Q8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucywgc2M6IFNlY3VyaXR5T3B0aW9ucyA9IHRoaXMuZGVmYXVsdFNlY3VyaXR5T3B0aW9ucywgZW1pdHRlcnM/OiBKc0FwaUVtaXR0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBBZGZIdHRwQ2xpZW50LmdldEJvZHkob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGdldFF1ZXJ5UGFyYW1zV2l0aEN1c3RvbUVuY29kZXIob3B0aW9ucy5xdWVyeVBhcmFtcywgbmV3IEFsZnJlc2NvQXBpUGFyYW1FbmNvZGVyKCkpO1xuICAgICAgICBjb25zdCByZXNwb25zZVR5cGUgPSBBZGZIdHRwQ2xpZW50LmdldFJlc3BvbnNlVHlwZShvcHRpb25zKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBIdHRwQ29udGV4dCgpLnNldChTSE9VTERfQUREX0FVVEhfVE9LRU4sIHRydWUpO1xuICAgICAgICBjb25zdCBzZWN1cml0eTogU2VjdXJpdHlPcHRpb25zID0gey4uLnRoaXMuZGVmYXVsdFNlY3VyaXR5T3B0aW9ucywgLi4uc2N9O1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWVtaXR0ZXJzKSB7XG4gICAgICAgICAgICBlbWl0dGVycyA9IHRoaXMuZ2V0RXZlbnRFbWl0dGVycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0KFxuICAgICAgICAgICAgb3B0aW9ucy5odHRwTWV0aG9kLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgLi4uKGJvZHkgJiYge2JvZHl9KSxcbiAgICAgICAgICAgICAgICAuLi4ocmVzcG9uc2VUeXBlICYmIHtyZXNwb25zZVR5cGV9KSxcbiAgICAgICAgICAgICAgICAuLi5zZWN1cml0eSxcbiAgICAgICAgICAgICAgICAuLi4ocGFyYW1zICYmIHtwYXJhbXN9KSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFdpdGhMZWdhY3lFdmVudEVtaXR0ZXJzPFQ+KHJlcXVlc3QsIGVtaXR0ZXJzLCBvcHRpb25zLnJldHVyblR5cGUpO1xuICAgIH1cblxuICAgIHBvc3Q8VCA9IGFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucywgc2M/OiBTZWN1cml0eU9wdGlvbnMsIGVtaXR0ZXJzPzogSnNBcGlFbWl0dGVycyk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0PFQ+KHVybCwgey4uLm9wdGlvbnMsIGh0dHBNZXRob2Q6ICdQT1NUJ30sIHNjLCBlbWl0dGVycyk7XG4gICAgfVxuXG4gICAgcHV0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIHNjPzogU2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPih1cmwsIHsuLi5vcHRpb25zLCBodHRwTWV0aG9kOiAnUFVUJ30sIHNjLCBlbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMsIHNjPzogU2VjdXJpdHlPcHRpb25zLCBlbWl0dGVycz86IEpzQXBpRW1pdHRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPih1cmwsIHsuLi5vcHRpb25zLCBodHRwTWV0aG9kOiAnR0VUJ30sIHNjLCBlbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZGVsZXRlPFQgPSB2b2lkPih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zLCBzYz86IFNlY3VyaXR5T3B0aW9ucywgZW1pdHRlcnM/OiBKc0FwaUVtaXR0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VD4odXJsLCB7Li4ub3B0aW9ucywgaHR0cE1ldGhvZDogJ0RFTEVURSd9LCBzYywgZW1pdHRlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkUHJvbWlzZUxpc3RlbmVyczxUID0gYW55Pihwcm9taXNlOiBQcm9taXNlPFQ+LCBldmVudEVtaXR0ZXI6IGFueSkgIHtcbiAgICAgICAgY29uc3QgZXZlbnRQcm9taXNlID0gT2JqZWN0LmFzc2lnbihwcm9taXNlLCB7XG4gICAgICAgICAgICBvbigpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLm9uLmFwcGx5KGV2ZW50RW1pdHRlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbmNlKCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItc3ByZWFkLCBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIub25jZS5hcHBseShldmVudEVtaXR0ZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW1pdCgpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQuYXBwbHkoZXZlbnRFbWl0dGVyLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9mZigpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXNwcmVhZCwgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLm9mZi5hcHBseShldmVudEVtaXR0ZXIsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBldmVudFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFdmVudEVtaXR0ZXJzKCk6IEVtaXR0ZXJzIHtcbiAgICAgICAgY29uc3QgYXBpQ2xpZW50RW1pdHRlciA9IHtcbiAgICAgICAgICAgIG9uOiB0aGlzLm9uLmJpbmQodGhpcyksXG4gICAgICAgICAgICBvZmY6IHRoaXMub2ZmLmJpbmQodGhpcyksXG4gICAgICAgICAgICBvbmNlOiB0aGlzLm9uY2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGVtaXQ6IHRoaXMuZW1pdC5iaW5kKHRoaXMpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFwaUNsaWVudEVtaXR0ZXIsXG4gICAgICAgICAgICBldmVudEVtaXR0ZXI6IGVlKHt9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWVzdFdpdGhMZWdhY3lFdmVudEVtaXR0ZXJzPFQgPSBhbnk+KHJlcXVlc3QkOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxUPj4sIGVtaXR0ZXJzOiBKc0FwaUVtaXR0ZXJzLCByZXR1cm5UeXBlOiBhbnkpOiBQcm9taXNlPFQ+IHtcblxuICAgICAgICBjb25zdCBhYm9ydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICBjb25zdCB7ZXZlbnRFbWl0dGVyLCBhcGlDbGllbnRFbWl0dGVyfSA9IGVtaXR0ZXJzO1xuXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0JC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNIdHRwVXBsb2FkUHJvZ3Jlc3NFdmVudChyZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcmNlbnQgPSBNYXRoLnJvdW5kKChyZXMubG9hZGVkIC8gcmVzLnRvdGFsKSAqIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdwcm9ncmVzcycsIHtsb2FkZWQ6IHJlcy5sb2FkZWQsIHRvdGFsOiByZXMudG90YWwsIHBlcmNlbnR9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNIdHRwUmVzcG9uc2VFdmVudChyZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KCdzdWNjZXNzJywgcmVzLmJvZHkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWRmSHR0cENsaWVudC5kZXNlcmlhbGl6ZShyZXMsIHJldHVyblR5cGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8QWxmcmVzY29BcGlSZXNwb25zZUVycm9yPiA9PiB7XG5cbiAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSBjYW4ndCBhbHdheXMgZGV0ZXJtaW5hdGUgYWhlYWQgb2YgdGltZSBpZiB0aGUgcmVzcG9uc2UgaXMgZ29pbmcgdG8gYmUgeG1sIG9yIHBsYWluIHRleHQgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGhhbmRsZSBmYWxzZSBwb3NpdGl2ZSBjYXNlcyBoZXJlLlxuXG4gICAgICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdCgnc3VjY2VzcycsIGVyci5lcnJvci50ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGVyci5lcnJvci50ZXh0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIGFwaUNsaWVudEVtaXR0ZXIuZW1pdCgnZXJyb3InLCB7IC4uLmVyciwgcmVzcG9uc2U6IHsgcmVxOiBlcnIgfSB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgICAgICBhcGlDbGllbnRFbWl0dGVyLmVtaXQoJ3VuYXV0aG9yaXplZCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3ZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gZXJyb3IgY2xhc3MgYXMgdGhlIEh0dHBFcnJvclJlc3BvbnNlIG9ubHkgaW1wbGVtZW50cyBFcnJvciBpbnRlcmZhY2UsIG5vdCBleHRlbmRpbmcgaXQsXG4gICAgICAgICAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkgcGFzcyBpbnN0YW5jZW9mIEVycm9yIGNvbmRpdGlvbnMgdXNlZCBpbnNpZGUgcmVwb3NpdG9yeVxuICAgICAgICAgICAgICAgIC8vIHdlIGFsc28gbmVlZCB0byBwYXNzIGVycm9yIGFzIFN0cmluZ2lmeSBzdHJpbmcgYXMgd2UgYXJlIGRldGVjdGluZyBzdGF0dXNDb2RlcyB1c2luZyBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpIGluIHNvbWUgcGxhY2VzXG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gdHlwZW9mIGVyci5lcnJvciA9PT0gJ3N0cmluZycgPyBlcnIuZXJyb3IgOiBKU09OLnN0cmluZ2lmeShlcnIuZXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHRvIGhhbmRsZSBjYXNlcyBpbiBjb2RlIHdoZXJlIHdlIHRyeSByZWFkIHJlc3BvbnNlLmVycm9yLnJlc3BvbnNlLmJvZHk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZXJyLCBib2R5OiBlcnIuZXJyb3JcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWxmcmVzY29BcGlFcnJvciA9IG5ldyBBbGZyZXNjb0FwaVJlc3BvbnNlRXJyb3IobXNnLCBlcnIuc3RhdHVzLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoYWxmcmVzY29BcGlFcnJvcik7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VVbnRpbChhYm9ydCQpXG4gICAgICAgICkudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgKHByb21pc2UgYXMgYW55KS5hYm9ydCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoJ2Fib3J0Jyk7XG4gICAgICAgICAgICBhYm9ydCQubmV4dCgpO1xuICAgICAgICAgICAgYWJvcnQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hZGRQcm9taXNlTGlzdGVuZXJzKHByb21pc2UsIGV2ZW50RW1pdHRlcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0Qm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6IGFueSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gb3B0aW9ucy5jb250ZW50VHlwZSA/IG9wdGlvbnMuY29udGVudFR5cGUgOiBBZGZIdHRwQ2xpZW50Lmpzb25QcmVmZXJyZWRNaW1lKG9wdGlvbnMuY29udGVudFR5cGVzKTtcbiAgICAgICAgY29uc3QgaXNGb3JtRGF0YSA9IGNvbnRlbnRUeXBlID09PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGNvbnN0IGlzRm9ybVVybEVuY29kZWQgPSBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBvcHRpb25zLmJvZHlQYXJhbTtcblxuICAgICAgICBpZiAoaXNGb3JtRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRPYmplY3RUb0Zvcm1EYXRhKG9wdGlvbnMuZm9ybVBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGb3JtVXJsRW5jb2RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtmcm9tT2JqZWN0OiByZW1vdmVOaWxWYWx1ZXMob3B0aW9ucy5mb3JtUGFyYW1zKX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIZWFkZXJzKG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zKTogSHR0cEhlYWRlcnMge1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG9wdGlvbnMuY29udGVudFR5cGUgfHwgQWRmSHR0cENsaWVudC5qc29uUHJlZmVycmVkTWltZShvcHRpb25zLmNvbnRlbnRUeXBlcyk7XG4gICAgICAgIGNvbnN0IGFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0IHx8IEFkZkh0dHBDbGllbnQuanNvblByZWZlcnJlZE1pbWUob3B0aW9ucy5hY2NlcHRzKTtcblxuICAgICAgICBjb25zdCBvcHRpb25zSGVhZGVycyA9IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuaGVhZGVyUGFyYW1zLFxuICAgICAgICAgICAgLi4uKGFjY2VwdCAmJiB7QWNjZXB0OiBhY2NlcHR9KSxcbiAgICAgICAgICAgIC4uLigoY29udGVudFR5cGUpICYmIHsnQ29udGVudC1UeXBlJzogY29udGVudFR5cGV9KVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlQ3NyZikge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3JmVG9rZW4ob3B0aW9uc0hlYWRlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyhvcHRpb25zSGVhZGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hvb3NlcyBhIGNvbnRlbnQgdHlwZSBmcm9tIHRoZSBnaXZlbiBhcnJheSwgd2l0aCBKU09OIHByZWZlcnJlZDsgaS5lLiByZXR1cm4gSlNPTiBpZiBpbmNsdWRlZCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgZmlyc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVzIGEgY29udGVudFR5cGUgYXJyYXlcbiAgICAgKiBAcmV0dXJucyAgVGhlIGNob3NlbiBjb250ZW50IHR5cGUsIHByZWZlcnJpbmcgSlNPTi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyBqc29uUHJlZmVycmVkTWltZShjb250ZW50VHlwZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjb250ZW50VHlwZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGVudFR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoQWRmSHR0cENsaWVudC5pc0pzb25NaW1lKGNvbnRlbnRUeXBlc1tpXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudFR5cGVzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGNvbnRlbnQgdHlwZSByZXByZXNlbnRzIEpTT04uPGJyPlxuICAgICAqIEpTT04gY29udGVudCB0eXBlIGV4YW1wbGVzOjxicj5cbiAgICAgKiA8dWw+XG4gICAgICogPGxpPmFwcGxpY2F0aW9uL2pzb248L2xpPlxuICAgICAqIDxsaT5hcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURjg8L2xpPlxuICAgICAqIDxsaT5BUFBMSUNBVElPTi9KU09OPC9saT5cbiAgICAgKiA8L3VsPlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRUeXBlIFRoZSBNSU1FIGNvbnRlbnQgdHlwZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiA8Y29kZT5jb250ZW50VHlwZTwvY29kZT4gcmVwcmVzZW50cyBKU09OLCBvdGhlcndpc2UgPGNvZGU+ZmFsc2U8L2NvZGU+LlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGlzSnNvbk1pbWUoY29udGVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihjb250ZW50VHlwZT8ubWF0Y2goL15hcHBsaWNhdGlvblxcL2pzb24oOy4qKT8kL2kpKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgc2V0Q3NyZlRva2VuKG9wdGlvbnNIZWFkZXJzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmNyZWF0ZUNTUkZUb2tlbigpO1xuICAgICAgICBvcHRpb25zSGVhZGVyc1snWC1DU1JGLVRPS0VOJ10gPSB0b2tlbjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gJ0NTUkYtVE9LRU49JyArIHRva2VuICsgJztwYXRoPS8nO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8qIGNvbnRpbnVlIHJlZ2FyZGxlc3Mgb2YgZXJyb3IgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ1NSRlRva2VuKGE/OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByYW5kb21WYWx1ZSA9IHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF07XG4gICAgICAgIHJldHVybiBhID8gKGEgXiAoKHJhbmRvbVZhbHVlICogMTYpID4+IChhIC8gNCkpKS50b1N0cmluZygxNikgOiAoWzFlMTZdICsgKDFlMTYpLnRvU3RyaW5nKCkpLnJlcGxhY2UoL1swMV0vZywgdGhpcy5jcmVhdGVDU1JGVG9rZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFJlc3BvbnNlVHlwZShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6ICdibG9iJyB8ICdqc29uJyB8ICd0ZXh0JyB7XG5cbiAgICAgICAgY29uc3QgaXNCbG9iVHlwZSA9IG9wdGlvbnMucmV0dXJuVHlwZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnYmxvYicgfHwgb3B0aW9ucy5yZXNwb25zZVR5cGU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2Jsb2InO1xuXG4gICAgICAgIGlmIChpc0Jsb2JUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Jsb2InO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucmV0dXJuVHlwZSA9PT0gJ1N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ2pzb24nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VyaWFsaXplIGFuIEhUVFAgcmVzcG9uc2UgYm9keSBpbnRvIGEgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc3BvbnNlIHJlc3BvbnNlIG9iamVjdFxuICAgICAqIEBwYXJhbSByZXR1cm5UeXBlIHJldHVybiB0eXBlXG4gICAgICogQHJldHVybnMgZGVzZXJpYWxpemVkIG9iamVjdFxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGRlc2VyaWFsaXplPFQ+KHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8VD4sIHJldHVyblR5cGU/OiBDb25zdHJ1Y3Rvcjx1bmtub3duPiB8ICdibG9iJyk6IGFueSB7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJvZHkgPSByZXNwb25zZS5ib2R5O1xuXG4gICAgICAgIGlmICghcmV0dXJuVHlwZSkge1xuICAgICAgICAgICAgLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdlIG5lZWQgdG8gcmV0dXJuIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mIG51bGwsXG4gICAgICAgICAgICAvLyB0byBhdm9pZCBpc3N1ZXMgd2hlbiBhY2Nlc3NpbmcgbnVsbCByZXNwb25zZSB3b3VsZCBicmVhayBhcHBsaWNhdGlvbiBbQzMwOTg3OF1cbiAgICAgICAgICAgIC8vIGNhbm5vdCByZWFkIHByb3BlcnR5ICdlbnRyeScgb2YgbnVsbCBpbiBjYXNlcyBsaWtlXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhpcy5wb3N0KGFwaVVybCwgc2F2ZUZvcm1SZXByZXNlbnRhdGlvbikucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKVxuXG4gICAgICAgICAgICByZXR1cm4gYm9keSAhPT0gbnVsbCA/IGJvZHkgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Jsb2JSZXNwb25zZShyZXNwb25zZSwgcmV0dXJuVHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBBZGZIdHRwQ2xpZW50LmRlc2VyaWFsaXplQmxvYlJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNDb25zdHJ1Y3RvcihyZXR1cm5UeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGJvZHkubWFwKChlbGVtZW50KSA9PiBuZXcgcmV0dXJuVHlwZShlbGVtZW50KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IHJldHVyblR5cGUoYm9keSk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZXNlcmlhbGl6ZUJsb2JSZXNwb25zZShyZXNwb25zZTogSHR0cFJlc3BvbnNlPEJsb2I+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHt0eXBlOiByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyl9KTtcbiAgICB9XG59XG5cbiJdfQ==
|
|
@@ -49,9 +49,9 @@ export class AuthenticationInterceptor {
|
|
|
49
49
|
return headers;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
AuthenticationInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
AuthenticationInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
AuthenticationInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthenticationInterceptor, deps: [{ token: i1.Authentication }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
+
AuthenticationInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthenticationInterceptor });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthenticationInterceptor, decorators: [{
|
|
55
55
|
type: Injectable
|
|
56
56
|
}], ctorParameters: function () { return [{ type: i1.Authentication }]; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9hdXRoL3NyYy9hdXRoZW50aWNhdGlvbi1pbnRlcmNlcHRvci9hdXRoZW50aWNhdGlvbi5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsZ0JBQWdCLEVBVW5CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxJQUFJLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFFbkQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUdoRixNQUFNLE9BQU8seUJBQXlCO0lBRWxDLFlBQXFCLFdBQTJCO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUFJLENBQUM7SUFFckQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFHaEQsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQy9ELFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQzNCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzVFLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUMsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO3FCQUN4QixJQUFJLENBQ0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyRCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBb0I7UUFFaEQsc0dBQXNHO1FBQ3RHLHlFQUF5RTtRQUV6RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUsscUJBQXFCLEVBQUU7WUFDdkQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDOUIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7dUhBckNRLHlCQUF5QjsySEFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgSHR0cENvbnRleHRUb2tlbixcbiAgICBIdHRwSGFuZGxlcixcbiAgICBIdHRwSGVhZGVyUmVzcG9uc2UsXG4gICAgSHR0cEhlYWRlcnMsXG4gICAgSHR0cEludGVyY2VwdG9yLFxuICAgIEh0dHBQcm9ncmVzc0V2ZW50LFxuICAgIEh0dHBSZXF1ZXN0LFxuICAgIEh0dHBSZXNwb25zZSxcbiAgICBIdHRwU2VudEV2ZW50LFxuICAgIEh0dHBVc2VyRXZlbnRcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbiB9IGZyb20gJy4uL2F1dGhlbnRpY2F0aW9uJztcblxuZXhwb3J0IGNvbnN0IFNIT1VMRF9BRERfQVVUSF9UT0tFTiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IGZhbHNlKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgY29uc3RydWN0b3IoIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uKSB7IH1cblxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTpcbiAgICAgIE9ic2VydmFibGU8SHR0cFNlbnRFdmVudCB8IEh0dHBIZWFkZXJSZXNwb25zZSB8IEh0dHBQcm9ncmVzc0V2ZW50IHwgSHR0cFJlc3BvbnNlPGFueT4gfCBIdHRwVXNlckV2ZW50PGFueT4+IHtcblxuICAgICAgaWYgKHJlcS5jb250ZXh0LmdldChTSE9VTERfQUREX0FVVEhfVE9LRU4pKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuYWRkVG9rZW5Ub0hlYWRlcihyZXEudXJsLCByZXEuaGVhZGVycykucGlwZShcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoKGhlYWRlcnNXaXRoQmVhcmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJXaXRoQ29udGVudFR5cGUgPSB0aGlzLmFwcGVuZEpzb25Db250ZW50VHlwZShoZWFkZXJzV2l0aEJlYXJlcik7XG4gICAgICAgICAgICAgICAgICBjb25zdCBrY1JlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnM6IGhlYWRlcldpdGhDb250ZW50VHlwZX0pO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGtjUmVxKVxuICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yKSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShjYXRjaEVycm9yKChlcnJvcikgPT4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyb3IpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRKc29uQ29udGVudFR5cGUoaGVhZGVyczogSHR0cEhlYWRlcnMpOiBIdHRwSGVhZGVycyB7XG5cbiAgICAgIC8vIHByZXZlbnQgYWRkaW5nIGFueSBjb250ZW50IHR5cGUsIHRvIHByb3Blcmx5IGhhbmRsZSBmb3JtRGF0YSB3aXRoIGJvdW5kYXJ5IGJyb3dzZXIgZ2VuZXJhdGVkIHZhbHVlLFxuICAgICAgLy8gYXMgYWRkaW5nIGFueSBDb250ZW50LVR5cGUgaXRzIGdvaW5nIHRvIGJyZWFrIHRoZSB1cGxvYWQgZnVuY3Rpb25hbGl0eVxuXG4gICAgICBpZiAoaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpID09PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpIHtcbiAgICAgICAgICByZXR1cm4gaGVhZGVycy5kZWxldGUoJ0NvbnRlbnQtVHlwZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSkge1xuICAgICAgICAgIHJldHVybiBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCcpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaGVhZGVycztcbiAgICB9XG5cbn1cbiJdfQ==
|