@alfresco/adf-core 8.1.0-16295248176 → 8.1.0-16342534841
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/assets/adf-core/i18n/de.json +1 -1
- package/bundles/assets/adf-core/i18n/es.json +1 -1
- package/bundles/assets/adf-core/i18n/fr.json +1 -1
- package/bundles/assets/adf-core/i18n/it.json +1 -1
- package/bundles/assets/adf-core/i18n/pl.json +1 -1
- package/bundles/assets/adf-core/i18n/pt.json +1 -1
- package/esm2022/adf-core.mjs +5 -0
- package/esm2022/api/alfresco-adf-core-api.mjs +5 -0
- package/esm2022/api/index.mjs +20 -0
- package/esm2022/api/lib/adf-http-client.service.mjs +311 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +33 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +25 -0
- package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +80 -0
- package/esm2022/api/lib/interfaces.mjs +18 -0
- package/esm2022/api/lib/types.mjs +18 -0
- package/esm2022/auth/alfresco-adf-core-auth.mjs +5 -0
- package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +56 -0
- package/esm2022/auth/authentication.mjs +19 -0
- package/esm2022/auth/index.mjs +19 -0
- package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +5 -0
- package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +82 -0
- package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +42 -0
- package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +44 -0
- package/esm2022/breadcrumbs/index.mjs +19 -0
- package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +5 -0
- package/esm2022/feature-flags/index.mjs +29 -0
- package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +36 -0
- package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +56 -0
- package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +129 -0
- package/esm2022/feature-flags/lib/directives/features.directive.mjs +63 -0
- package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +63 -0
- package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +38 -0
- package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +38 -0
- package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +40 -0
- package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +24 -0
- package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +62 -0
- package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +51 -0
- package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +36 -0
- package/esm2022/feature-flags/lib/services/debug-features.service.mjs +94 -0
- package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +40 -0
- package/esm2022/feature-flags/lib/services/flagset.parser.mjs +38 -0
- package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +62 -0
- package/esm2022/feature-flags/lib/services/storage-features.service.mjs +126 -0
- package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +51 -0
- package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +51 -0
- package/esm2022/lib/about/about-module-list/module-list.component.mjs +51 -0
- package/esm2022/lib/about/about-package/package-list.component.mjs +65 -0
- package/esm2022/lib/about/about-panel.directive.mjs +37 -0
- package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +59 -0
- package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +18 -0
- package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +42 -0
- package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +51 -0
- package/esm2022/lib/about/about.component.mjs +35 -0
- package/esm2022/lib/about/about.module.mjs +75 -0
- package/esm2022/lib/about/index.mjs +18 -0
- package/esm2022/lib/about/interfaces.mjs +18 -0
- package/esm2022/lib/about/public-api.mjs +28 -0
- package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +51 -0
- package/esm2022/lib/app-config/app-config.loader.mjs +41 -0
- package/esm2022/lib/app-config/app-config.module.mjs +33 -0
- package/esm2022/lib/app-config/app-config.pipe.mjs +38 -0
- package/esm2022/lib/app-config/app-config.service.mjs +243 -0
- package/esm2022/lib/app-config/debug-app-config.service.mjs +44 -0
- package/esm2022/lib/app-config/index.mjs +18 -0
- package/esm2022/lib/app-config/provide-app-config.mjs +44 -0
- package/esm2022/lib/app-config/public-api.mjs +23 -0
- package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +67 -0
- package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +356 -0
- package/esm2022/lib/auth/basic-auth/content-auth.mjs +189 -0
- package/esm2022/lib/auth/basic-auth/process-auth.mjs +193 -0
- package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +31 -0
- package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +31 -0
- package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +57 -0
- package/esm2022/lib/auth/guard/auth-guard.mjs +53 -0
- package/esm2022/lib/auth/guard/auth-guard.service.mjs +113 -0
- package/esm2022/lib/auth/index.mjs +18 -0
- package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/authentication.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +18 -0
- package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +18 -0
- package/esm2022/lib/auth/models/application-access.model.mjs +18 -0
- package/esm2022/lib/auth/models/identity-group.model.mjs +18 -0
- package/esm2022/lib/auth/models/identity-role.model.mjs +30 -0
- package/esm2022/lib/auth/models/identity-user.model.mjs +18 -0
- package/esm2022/lib/auth/models/oauth-config.model.mjs +18 -0
- package/esm2022/lib/auth/models/redirection.model.mjs +28 -0
- package/esm2022/lib/auth/models/user-access.model.mjs +18 -0
- package/esm2022/lib/auth/oidc/auth-config.mjs +19 -0
- package/esm2022/lib/auth/oidc/auth-config.service.mjs +110 -0
- package/esm2022/lib/auth/oidc/auth-routing.module.mjs +34 -0
- package/esm2022/lib/auth/oidc/auth.module.mjs +112 -0
- package/esm2022/lib/auth/oidc/auth.service.mjs +22 -0
- package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +37 -0
- package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +202 -0
- package/esm2022/lib/auth/oidc/public-api.mjs +24 -0
- package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +267 -0
- package/esm2022/lib/auth/oidc/retry-login.service.mjs +66 -0
- package/esm2022/lib/auth/oidc/token.interceptor.mjs +62 -0
- package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +31 -0
- package/esm2022/lib/auth/public-api.mjs +44 -0
- package/esm2022/lib/auth/services/authentication.service.mjs +190 -0
- package/esm2022/lib/auth/services/base-authentication.service.mjs +99 -0
- package/esm2022/lib/auth/services/identity-group.service.mjs +269 -0
- package/esm2022/lib/auth/services/identity-role.service.mjs +99 -0
- package/esm2022/lib/auth/services/identity-user.service.mjs +443 -0
- package/esm2022/lib/auth/services/jwt-helper.service.mjs +205 -0
- package/esm2022/lib/auth/services/oauth2.service.mjs +69 -0
- package/esm2022/lib/auth/services/time-sync.service.mjs +83 -0
- package/esm2022/lib/auth/services/user-access.service.mjs +110 -0
- package/esm2022/lib/avatar/avatar.component.mjs +51 -0
- package/esm2022/lib/blank-page/blank-page.component.mjs +31 -0
- package/esm2022/lib/blank-page/blank-page.module.mjs +33 -0
- package/esm2022/lib/blank-page/index.mjs +18 -0
- package/esm2022/lib/blank-page/public-api.mjs +19 -0
- package/esm2022/lib/button/button.component.mjs +61 -0
- package/esm2022/lib/card-view/card-view.module.mjs +80 -0
- package/esm2022/lib/card-view/components/base-card-view.mjs +51 -0
- package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +66 -0
- package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +55 -0
- package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +39 -0
- package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +182 -0
- package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +108 -0
- package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +64 -0
- package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +46 -0
- package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +137 -0
- package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +113 -0
- package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +239 -0
- package/esm2022/lib/card-view/components/card-view.components.mjs +28 -0
- package/esm2022/lib/card-view/index.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +29 -0
- package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +18 -0
- package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +18 -0
- package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +28 -0
- package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +64 -0
- package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +58 -0
- package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +28 -0
- package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +33 -0
- package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +27 -0
- package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +36 -0
- package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +32 -0
- package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +41 -0
- package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +40 -0
- package/esm2022/lib/card-view/models/card-view.models.mjs +29 -0
- package/esm2022/lib/card-view/public-api.mjs +25 -0
- package/esm2022/lib/card-view/services/card-item-types.service.mjs +54 -0
- package/esm2022/lib/card-view/services/card-view-update.service.mjs +59 -0
- package/esm2022/lib/card-view/services/card-view.services.mjs +19 -0
- package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +31 -0
- package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +34 -0
- package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +35 -0
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +32 -0
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +31 -0
- package/esm2022/lib/card-view/validators/card-view.validators.mjs +26 -0
- package/esm2022/lib/card-view/validators/validators.map.mjs +26 -0
- package/esm2022/lib/clipboard/clipboard.directive.mjs +98 -0
- package/esm2022/lib/clipboard/clipboard.module.mjs +34 -0
- package/esm2022/lib/clipboard/clipboard.service.mjs +103 -0
- package/esm2022/lib/clipboard/index.mjs +18 -0
- package/esm2022/lib/clipboard/public-api.mjs +21 -0
- package/esm2022/lib/comments/comment-list/comment-list.component.mjs +52 -0
- package/esm2022/lib/comments/comment-list/comment-list.module.mjs +33 -0
- package/esm2022/lib/comments/comment-list/index.mjs +18 -0
- package/esm2022/lib/comments/comment-list/public-api.mjs +19 -0
- package/esm2022/lib/comments/comments.component.mjs +132 -0
- package/esm2022/lib/comments/comments.module.mjs +33 -0
- package/esm2022/lib/comments/index.mjs +18 -0
- package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +18 -0
- package/esm2022/lib/comments/interfaces/comments.token.mjs +19 -0
- package/esm2022/lib/comments/public-api.mjs +22 -0
- package/esm2022/lib/common/index.mjs +35 -0
- package/esm2022/lib/common/interface/search-component.interface.mjs +18 -0
- package/esm2022/lib/common/mock/app-config.service.mock.mjs +47 -0
- package/esm2022/lib/common/models/default-languages.model.mjs +36 -0
- package/esm2022/lib/common/models/log-levels.model.mjs +33 -0
- package/esm2022/lib/common/models/user-info-mode.enum.mjs +25 -0
- package/esm2022/lib/common/services/cookie.service.mjs +82 -0
- package/esm2022/lib/common/services/download.service.mjs +102 -0
- package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +89 -0
- package/esm2022/lib/common/services/highlight-transform.service.mjs +61 -0
- package/esm2022/lib/common/services/language-item.interface.mjs +18 -0
- package/esm2022/lib/common/services/log.service.mjs +171 -0
- package/esm2022/lib/common/services/page-title.service.mjs +63 -0
- package/esm2022/lib/common/services/sort-by-category.service.mjs +81 -0
- package/esm2022/lib/common/services/storage.service.mjs +143 -0
- package/esm2022/lib/common/services/thumbnail.service.mjs +194 -0
- package/esm2022/lib/common/services/url.service.mjs +45 -0
- package/esm2022/lib/common/services/user-preferences.service.mjs +238 -0
- package/esm2022/lib/common/utils/date-fns-adapter.mjs +115 -0
- package/esm2022/lib/common/utils/date-fns-utils.mjs +222 -0
- package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +134 -0
- package/esm2022/lib/common/utils/file-utils.mjs +65 -0
- package/esm2022/lib/common/utils/index.mjs +18 -0
- package/esm2022/lib/common/utils/moment-date-adapter.mjs +202 -0
- package/esm2022/lib/common/utils/moment-date-formats.model.mjs +32 -0
- package/esm2022/lib/common/utils/object-utils.mjs +107 -0
- package/esm2022/lib/common/utils/public-api.mjs +25 -0
- package/esm2022/lib/common/utils/string-utils.mjs +45 -0
- package/esm2022/lib/context-menu/animations.mjs +33 -0
- package/esm2022/lib/context-menu/context-menu-list.component.mjs +91 -0
- package/esm2022/lib/context-menu/context-menu-overlay.mjs +25 -0
- package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +109 -0
- package/esm2022/lib/context-menu/context-menu.directive.mjs +63 -0
- package/esm2022/lib/context-menu/context-menu.module.mjs +35 -0
- package/esm2022/lib/context-menu/context-menu.tokens.mjs +19 -0
- package/esm2022/lib/context-menu/index.mjs +18 -0
- package/esm2022/lib/context-menu/interfaces.mjs +18 -0
- package/esm2022/lib/context-menu/public-api.mjs +21 -0
- package/esm2022/lib/core.module.mjs +296 -0
- package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +45 -0
- package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +65 -0
- package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +55 -0
- package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +113 -0
- package/esm2022/lib/datatable/components/data-cell.event.mjs +31 -0
- package/esm2022/lib/datatable/components/data-row-action.event.mjs +34 -0
- package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +914 -0
- package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +126 -0
- package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +98 -0
- package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +78 -0
- package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +60 -0
- package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +49 -0
- package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +67 -0
- package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +86 -0
- package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +69 -0
- package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +153 -0
- package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +42 -0
- package/esm2022/lib/datatable/data/data-column.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-row-event.model.mjs +26 -0
- package/esm2022/lib/datatable/data/data-row-update.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-row.model.mjs +18 -0
- package/esm2022/lib/datatable/data/data-sorting.model.mjs +24 -0
- package/esm2022/lib/datatable/data/data-table.schema.mjs +132 -0
- package/esm2022/lib/datatable/data/datatable-adapter.mjs +18 -0
- package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +46 -0
- package/esm2022/lib/datatable/data/object-datarow.model.mjs +41 -0
- package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +134 -0
- package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +45 -0
- package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +36 -0
- package/esm2022/lib/datatable/data-column/data-column.component.mjs +114 -0
- package/esm2022/lib/datatable/data-column/index.mjs +18 -0
- package/esm2022/lib/datatable/data-column/public-api.mjs +20 -0
- package/esm2022/lib/datatable/datatable.module.mjs +161 -0
- package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +35 -0
- package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +30 -0
- package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +35 -0
- package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +89 -0
- package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +43 -0
- package/esm2022/lib/datatable/directives/loading-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +43 -0
- package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +46 -0
- package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +173 -0
- package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +72 -0
- package/esm2022/lib/datatable/directives/resizable/types.mjs +18 -0
- package/esm2022/lib/datatable/index.mjs +18 -0
- package/esm2022/lib/datatable/public-api.mjs +55 -0
- package/esm2022/lib/datatable/services/datatable.service.mjs +33 -0
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +50 -0
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +38 -0
- package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +18 -0
- package/esm2022/lib/dialogs/dialog/dialog.component.mjs +70 -0
- package/esm2022/lib/dialogs/dialog/dialog.model.mjs +22 -0
- package/esm2022/lib/dialogs/dialog/index.mjs +20 -0
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +52 -0
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +34 -0
- package/esm2022/lib/dialogs/index.mjs +18 -0
- package/esm2022/lib/dialogs/public-api.mjs +25 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +73 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +18 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +33 -0
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +64 -0
- package/esm2022/lib/directives/directive.module.mjs +56 -0
- package/esm2022/lib/directives/highlight.directive.mjs +67 -0
- package/esm2022/lib/directives/index.mjs +18 -0
- package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +67 -0
- package/esm2022/lib/directives/logout.directive.mjs +72 -0
- package/esm2022/lib/directives/public-api.mjs +24 -0
- package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +60 -0
- package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +104 -0
- package/esm2022/lib/directives/upload.directive.mjs +241 -0
- package/esm2022/lib/dynamic-chip-list/chip.mjs +18 -0
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +204 -0
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +33 -0
- package/esm2022/lib/dynamic-chip-list/index.mjs +18 -0
- package/esm2022/lib/dynamic-chip-list/public-api.mjs +20 -0
- package/esm2022/lib/events/base-ui.event.mjs +21 -0
- package/esm2022/lib/events/base.event.mjs +29 -0
- package/esm2022/lib/events/index.mjs +18 -0
- package/esm2022/lib/events/public-api.mjs +19 -0
- package/esm2022/lib/form/components/form-base.component.mjs +212 -0
- package/esm2022/lib/form/components/form-custom-button.directive.mjs +30 -0
- package/esm2022/lib/form/components/form-field/form-field.component.mjs +142 -0
- package/esm2022/lib/form/components/form-renderer.component.mjs +161 -0
- package/esm2022/lib/form/components/form-section/form-section.component.mjs +46 -0
- package/esm2022/lib/form/components/helpers/buttons-visibility.mjs +37 -0
- package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +37 -0
- package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +48 -0
- package/esm2022/lib/form/components/middlewares/middleware.mjs +19 -0
- package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +77 -0
- package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +59 -0
- package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +52 -0
- package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +28 -0
- package/esm2022/lib/form/components/widgets/core/container.model.mjs +50 -0
- package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +52 -0
- package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +38 -0
- package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/external-content.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +74 -0
- package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +23 -0
- package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +268 -0
- package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +490 -0
- package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +32 -0
- package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +38 -0
- package/esm2022/lib/form/components/widgets/core/form-values.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +33 -0
- package/esm2022/lib/form/components/widgets/core/form.model.mjs +387 -0
- package/esm2022/lib/form/components/widgets/core/group.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/index.mjs +49 -0
- package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +115 -0
- package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/tab.model.mjs +34 -0
- package/esm2022/lib/form/components/widgets/core/theme.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +27 -0
- package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +18 -0
- package/esm2022/lib/form/components/widgets/date/date.widget.mjs +162 -0
- package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +153 -0
- package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +53 -0
- package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +86 -0
- package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +46 -0
- package/esm2022/lib/form/components/widgets/display-text/index.mjs +19 -0
- package/esm2022/lib/form/components/widgets/error/error.component.mjs +92 -0
- package/esm2022/lib/form/components/widgets/header/header.schema.mjs +86 -0
- package/esm2022/lib/form/components/widgets/header/header.widget.mjs +42 -0
- package/esm2022/lib/form/components/widgets/header/index.mjs +19 -0
- package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +69 -0
- package/esm2022/lib/form/components/widgets/index.mjs +71 -0
- package/esm2022/lib/form/components/widgets/json/json.widget.mjs +66 -0
- package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +55 -0
- package/esm2022/lib/form/components/widgets/number/number.widget.mjs +71 -0
- package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +18 -0
- package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +215 -0
- package/esm2022/lib/form/components/widgets/text/text.widget.mjs +65 -0
- package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +63 -0
- package/esm2022/lib/form/components/widgets/widget.component.mjs +110 -0
- package/esm2022/lib/form/events/form-error.event.mjs +24 -0
- package/esm2022/lib/form/events/form-field.event.mjs +24 -0
- package/esm2022/lib/form/events/form-rules.event.mjs +25 -0
- package/esm2022/lib/form/events/form-spinner.event.mjs +23 -0
- package/esm2022/lib/form/events/form.event.mjs +29 -0
- package/esm2022/lib/form/events/index.mjs +24 -0
- package/esm2022/lib/form/events/validate-form-field.event.mjs +24 -0
- package/esm2022/lib/form/events/validate-form.event.mjs +25 -0
- package/esm2022/lib/form/form-base.module.mjs +75 -0
- package/esm2022/lib/form/index.mjs +18 -0
- package/esm2022/lib/form/models/form-rules.model.mjs +77 -0
- package/esm2022/lib/form/models/task-process-variable.model.mjs +19 -0
- package/esm2022/lib/form/models/widget-visibility.model.mjs +104 -0
- package/esm2022/lib/form/pipes/field-style.pipe.mjs +45 -0
- package/esm2022/lib/form/pipes/index.mjs +18 -0
- package/esm2022/lib/form/public-api.mjs +35 -0
- package/esm2022/lib/form/services/form-rendering.service.mjs +53 -0
- package/esm2022/lib/form/services/form-validation-service.interface.mjs +18 -0
- package/esm2022/lib/form/services/form.service.mjs +86 -0
- package/esm2022/lib/form/services/widget-visibility.service.mjs +294 -0
- package/esm2022/lib/header/header.component.mjs +73 -0
- package/esm2022/lib/header/index.mjs +18 -0
- package/esm2022/lib/header/navbar/navbar-item.component.mjs +37 -0
- package/esm2022/lib/header/navbar/navbar.component.mjs +36 -0
- package/esm2022/lib/header/public-api.mjs +20 -0
- package/esm2022/lib/icon/icon.component.mjs +51 -0
- package/esm2022/lib/icon/icon.module.mjs +36 -0
- package/esm2022/lib/icon/index.mjs +18 -0
- package/esm2022/lib/icon/public-api.mjs +19 -0
- package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +86 -0
- package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +33 -0
- package/esm2022/lib/identity-user-info/index.mjs +18 -0
- package/esm2022/lib/identity-user-info/public-api.mjs +19 -0
- package/esm2022/lib/info-drawer/index.mjs +18 -0
- package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +71 -0
- package/esm2022/lib/info-drawer/info-drawer.component.mjs +113 -0
- package/esm2022/lib/info-drawer/info-drawer.module.mjs +53 -0
- package/esm2022/lib/info-drawer/public-api.mjs +20 -0
- package/esm2022/lib/interface/index.mjs +18 -0
- package/esm2022/lib/interface/injection.tokens.mjs +19 -0
- package/esm2022/lib/interface/public-api.mjs +18 -0
- package/esm2022/lib/language-menu/index.mjs +18 -0
- package/esm2022/lib/language-menu/language-menu.component.mjs +61 -0
- package/esm2022/lib/language-menu/language-menu.module.mjs +35 -0
- package/esm2022/lib/language-menu/language-picker.component.mjs +77 -0
- package/esm2022/lib/language-menu/public-api.mjs +21 -0
- package/esm2022/lib/language-menu/service/language.service.interface.mjs +18 -0
- package/esm2022/lib/language-menu/service/language.service.mjs +34 -0
- package/esm2022/lib/layout/components/header/header.component.mjs +99 -0
- package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +180 -0
- package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +82 -0
- package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +145 -0
- package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +33 -0
- package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +33 -0
- package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +33 -0
- package/esm2022/lib/layout/index.mjs +18 -0
- package/esm2022/lib/layout/layout.module.mjs +72 -0
- package/esm2022/lib/layout/public-api.mjs +25 -0
- package/esm2022/lib/login/components/login/login.component.mjs +367 -0
- package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +18 -0
- package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +57 -0
- package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +48 -0
- package/esm2022/lib/login/directives/login-footer.directive.mjs +41 -0
- package/esm2022/lib/login/directives/login-header.directive.mjs +41 -0
- package/esm2022/lib/login/index.mjs +18 -0
- package/esm2022/lib/login/login.module.mjs +54 -0
- package/esm2022/lib/login/models/login-error.event.mjs +22 -0
- package/esm2022/lib/login/models/login-submit.event.mjs +32 -0
- package/esm2022/lib/login/models/login-success.event.mjs +24 -0
- package/esm2022/lib/login/public-api.mjs +27 -0
- package/esm2022/lib/material.module.mjs +254 -0
- package/esm2022/lib/mock/cookie.service.mock.mjs +43 -0
- package/esm2022/lib/mock/data-column.mock.mjs +73 -0
- package/esm2022/lib/mock/event.mock.mjs +39 -0
- package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +225 -0
- package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +347 -0
- package/esm2022/lib/mock/form/form-definition.mock.mjs +403 -0
- package/esm2022/lib/mock/form/form.component.mock.mjs +275 -0
- package/esm2022/lib/mock/form/form.service.mock.mjs +248 -0
- package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +1835 -0
- package/esm2022/lib/mock/index.mjs +18 -0
- package/esm2022/lib/mock/public-api.mjs +27 -0
- package/esm2022/lib/mock/translation.service.mock.mjs +44 -0
- package/esm2022/lib/models/comment.model.mjs +51 -0
- package/esm2022/lib/models/component.model.mjs +24 -0
- package/esm2022/lib/models/decimal-number.model.mjs +26 -0
- package/esm2022/lib/models/general-user.model.mjs +24 -0
- package/esm2022/lib/models/index.mjs +18 -0
- package/esm2022/lib/models/pagination.model.mjs +29 -0
- package/esm2022/lib/models/path.model.mjs +24 -0
- package/esm2022/lib/models/product-version.model.mjs +28 -0
- package/esm2022/lib/models/public-api.mjs +24 -0
- package/esm2022/lib/models/request-pagination.model.mjs +25 -0
- package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +44 -0
- package/esm2022/lib/notifications/components/notification-history.component.mjs +138 -0
- package/esm2022/lib/notifications/helpers/notification.factory.mjs +43 -0
- package/esm2022/lib/notifications/index.mjs +18 -0
- package/esm2022/lib/notifications/models/notification.model.mjs +25 -0
- package/esm2022/lib/notifications/notification-history.module.mjs +35 -0
- package/esm2022/lib/notifications/public-api.mjs +23 -0
- package/esm2022/lib/notifications/services/notification.service.mjs +166 -0
- package/esm2022/lib/pagination/index.mjs +18 -0
- package/esm2022/lib/pagination/infinite-pagination.component.mjs +111 -0
- package/esm2022/lib/pagination/paginated-component.interface.mjs +18 -0
- package/esm2022/lib/pagination/pagination-component.interface.mjs +18 -0
- package/esm2022/lib/pagination/pagination.component.mjs +263 -0
- package/esm2022/lib/pagination/pagination.module.mjs +35 -0
- package/esm2022/lib/pagination/public-api.mjs +22 -0
- package/esm2022/lib/pipes/date-time.pipe.mjs +46 -0
- package/esm2022/lib/pipes/decimal-number.pipe.mjs +78 -0
- package/esm2022/lib/pipes/file-size.pipe.mjs +54 -0
- package/esm2022/lib/pipes/file-type.pipe.mjs +40 -0
- package/esm2022/lib/pipes/format-space.pipe.mjs +39 -0
- package/esm2022/lib/pipes/full-name.pipe.mjs +43 -0
- package/esm2022/lib/pipes/index.mjs +18 -0
- package/esm2022/lib/pipes/localized-date.pipe.mjs +70 -0
- package/esm2022/lib/pipes/multi-value.pipe.mjs +37 -0
- package/esm2022/lib/pipes/pipe.module.mjs +83 -0
- package/esm2022/lib/pipes/public-api.mjs +30 -0
- package/esm2022/lib/pipes/text-highlight.pipe.mjs +39 -0
- package/esm2022/lib/pipes/time-ago.pipe.mjs +65 -0
- package/esm2022/lib/pipes/truncate.pipe.mjs +33 -0
- package/esm2022/lib/pipes/user-initial.pipe.mjs +52 -0
- package/esm2022/lib/pipes/user-like.interface.mjs +18 -0
- package/esm2022/lib/progress/progress.component.mjs +90 -0
- package/esm2022/lib/search-text/animations.mjs +32 -0
- package/esm2022/lib/search-text/index.mjs +18 -0
- package/esm2022/lib/search-text/models/search-text-input.model.mjs +23 -0
- package/esm2022/lib/search-text/public-api.mjs +22 -0
- package/esm2022/lib/search-text/search-text-input.component.mjs +283 -0
- package/esm2022/lib/search-text/search-text-input.module.mjs +35 -0
- package/esm2022/lib/search-text/search-trigger.directive.mjs +181 -0
- package/esm2022/lib/snackbar-content/index.mjs +18 -0
- package/esm2022/lib/snackbar-content/public-api.mjs +20 -0
- package/esm2022/lib/snackbar-content/snack-bar-data.mjs +18 -0
- package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +49 -0
- package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +33 -0
- package/esm2022/lib/sorting-picker/index.mjs +18 -0
- package/esm2022/lib/sorting-picker/public-api.mjs +18 -0
- package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +67 -0
- package/esm2022/lib/templates/empty-content/empty-content.component.mjs +43 -0
- package/esm2022/lib/templates/error-content/error-content.component.mjs +61 -0
- package/esm2022/lib/templates/index.mjs +18 -0
- package/esm2022/lib/templates/public-api.mjs +20 -0
- package/esm2022/lib/templates/template.module.mjs +38 -0
- package/esm2022/lib/testing/core.story.module.mjs +39 -0
- package/esm2022/lib/testing/core.testing.module.mjs +36 -0
- package/esm2022/lib/testing/index.mjs +22 -0
- package/esm2022/lib/testing/noop-auth.module.mjs +80 -0
- package/esm2022/lib/testing/noop-translate.module.mjs +75 -0
- package/esm2022/lib/testing/unit-testing-utils.mjs +364 -0
- package/esm2022/lib/toolbar/index.mjs +18 -0
- package/esm2022/lib/toolbar/public-api.mjs +21 -0
- package/esm2022/lib/toolbar/toolbar-divider.component.mjs +27 -0
- package/esm2022/lib/toolbar/toolbar-title.component.mjs +32 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +39 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +36 -0
- package/esm2022/lib/translation/index.mjs +18 -0
- package/esm2022/lib/translation/public-api.mjs +19 -0
- package/esm2022/lib/translation/translate-loader.service.mjs +153 -0
- package/esm2022/lib/translation/translation.service.mjs +148 -0
- package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +36 -0
- package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +220 -0
- package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +64 -0
- package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +550 -0
- package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +60 -0
- package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +48 -0
- package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +198 -0
- package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +85 -0
- package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +32 -0
- package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +216 -0
- package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +46 -0
- package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +34 -0
- package/esm2022/lib/viewer/components/viewer.component.mjs +486 -0
- package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +67 -0
- package/esm2022/lib/viewer/index.mjs +18 -0
- package/esm2022/lib/viewer/models/download-prompt.actions.mjs +23 -0
- package/esm2022/lib/viewer/models/viewer.model.mjs +22 -0
- package/esm2022/lib/viewer/public-api.mjs +40 -0
- package/esm2022/lib/viewer/services/rendering-queue.services.mjs +179 -0
- package/esm2022/lib/viewer/services/view-util.service.mjs +149 -0
- package/esm2022/lib/viewer/viewer.module.mjs +110 -0
- package/esm2022/public-api.mjs +60 -0
- package/esm2022/shell/alfresco-adf-core-shell.mjs +5 -0
- package/esm2022/shell/index.mjs +21 -0
- package/esm2022/shell/lib/components/shell/shell.component.mjs +122 -0
- package/esm2022/shell/lib/services/shell-app.service.mjs +22 -0
- package/esm2022/shell/lib/shell.module.mjs +75 -0
- package/esm2022/shell/lib/shell.routes.mjs +50 -0
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +35 -4
- package/fesm2022/adf-core.mjs +1083 -1101
- package/fesm2022/adf-core.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-api.mjs +4 -4
- package/fesm2022/alfresco-adf-core-api.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
- package/fesm2022/alfresco-adf-core-auth.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +11 -11
- package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-feature-flags.mjs +59 -52
- package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-shell.mjs +14 -68
- package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
- package/lib/app-config/provide-app-config.d.ts +2 -2
- package/lib/auth/oidc/auth.module.d.ts +4 -4
- package/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.d.ts +1 -1
- package/lib/card-view/components/base-card-view.d.ts +1 -1
- package/lib/card-view/components/card-view/card-view.component.scss +9 -12
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +2 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +5 -2
- package/lib/datatable/data/data-table.schema.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm.dialog.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm.dialog.module.d.ts +6 -2
- package/lib/form/components/form-renderer.component.scss +4 -5
- package/lib/translation/public-api.d.ts +0 -1
- package/package.json +15 -3
- package/public-api.d.ts +0 -1
- package/shell/README.md +3 -13
- package/shell/index.d.ts +0 -1
- package/shell/lib/shell.module.d.ts +1 -1
- package/lib/landing-page/index.d.ts +0 -17
- package/lib/landing-page/provider.d.ts +0 -24
- package/lib/landing-page/public-api.d.ts +0 -17
- package/lib/translation/provide-i18n.d.ts +0 -39
- package/shell/lib/providers.d.ts +0 -36
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/* eslint-disable @angular-eslint/no-input-rename */
|
|
18
|
+
/* eslint-disable rxjs/no-subject-value */
|
|
19
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
20
|
+
import { UserPreferencesService, UserPreferenceValues } from '../common/services/user-preferences.service';
|
|
21
|
+
import { PaginationModel } from '../models/pagination.model';
|
|
22
|
+
import { CommonModule } from '@angular/common';
|
|
23
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
24
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
25
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
26
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "../common/services/user-preferences.service";
|
|
29
|
+
import * as i2 from "@angular/common";
|
|
30
|
+
import * as i3 from "@angular/material/button";
|
|
31
|
+
import * as i4 from "@angular/material/progress-bar";
|
|
32
|
+
export class InfinitePaginationComponent {
|
|
33
|
+
static { this.DEFAULT_PAGINATION = new PaginationModel({
|
|
34
|
+
skipCount: 0,
|
|
35
|
+
maxItems: 25,
|
|
36
|
+
totalItems: 0
|
|
37
|
+
}); }
|
|
38
|
+
/** Component that provides custom pagination support. */
|
|
39
|
+
set target(target) {
|
|
40
|
+
if (target) {
|
|
41
|
+
this._target = target;
|
|
42
|
+
target.pagination.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((pagination) => {
|
|
43
|
+
this.isLoading = false;
|
|
44
|
+
this.pagination = pagination;
|
|
45
|
+
if (!this.pagination.hasMoreItems) {
|
|
46
|
+
this.pagination.hasMoreItems = false;
|
|
47
|
+
}
|
|
48
|
+
this.cdr.detectChanges();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get target() {
|
|
53
|
+
return this._target;
|
|
54
|
+
}
|
|
55
|
+
constructor(cdr, userPreferencesService) {
|
|
56
|
+
this.cdr = cdr;
|
|
57
|
+
this.userPreferencesService = userPreferencesService;
|
|
58
|
+
/** Is a new page loading? */
|
|
59
|
+
this.isLoading = false;
|
|
60
|
+
/** Emitted when the "Load More" button is clicked. */
|
|
61
|
+
this.loadMore = new EventEmitter();
|
|
62
|
+
this.pagination = InfinitePaginationComponent.DEFAULT_PAGINATION;
|
|
63
|
+
this.requestPaginationModel = {
|
|
64
|
+
skipCount: 0,
|
|
65
|
+
merge: true
|
|
66
|
+
};
|
|
67
|
+
this.destroyRef = inject(DestroyRef);
|
|
68
|
+
}
|
|
69
|
+
ngOnInit() {
|
|
70
|
+
this.userPreferencesService
|
|
71
|
+
.select(UserPreferenceValues.PaginationSize)
|
|
72
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
73
|
+
.subscribe((pageSize) => {
|
|
74
|
+
this.pageSize = this.pageSize || pageSize;
|
|
75
|
+
this.requestPaginationModel.maxItems = this.pageSize;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onLoadMore() {
|
|
79
|
+
this.requestPaginationModel.skipCount = 0;
|
|
80
|
+
this.requestPaginationModel.merge = true;
|
|
81
|
+
this.requestPaginationModel.maxItems += this.pageSize;
|
|
82
|
+
this.loadMore.next(this.requestPaginationModel);
|
|
83
|
+
if (this._target) {
|
|
84
|
+
this.isLoading = true;
|
|
85
|
+
this._target.updatePagination(this.requestPaginationModel);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
reset() {
|
|
89
|
+
this.pagination.skipCount = 0;
|
|
90
|
+
this.pagination.maxItems = this.pageSize;
|
|
91
|
+
if (this._target) {
|
|
92
|
+
this._target.updatePagination(this.pagination);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InfinitePaginationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InfinitePaginationComponent, isStandalone: true, selector: "adf-infinite-pagination", inputs: { target: "target", pageSize: "pageSize", isLoading: ["loading", "isLoading"] }, outputs: { loadMore: "loadMore" }, host: { classAttribute: "infinite-adf-pagination" }, ngImport: i0, template: "<div *ngIf=\"pagination?.hasMoreItems || isLoading\" class=\"adf-infinite-pagination\">\n\n <button mat-button\n *ngIf=\"!isLoading\"\n class=\"adf-infinite-pagination-load-more\"\n (click)=\"onLoadMore()\"\n data-automation-id=\"adf-infinite-pagination-button\">\n <ng-content />\n </button>\n\n <mat-progress-bar *ngIf=\"isLoading\"\n mode=\"indeterminate\"\n class=\"adf-infinite-pagination-spinner\"\n data-automation-id=\"adf-infinite-pagination-spinner\"\n [attr.aria-label]=\"'DATA_LOADING' | translate\" />\n</div>\n", styles: [".adf-infinite-pagination{display:flex;justify-content:space-around;min-height:56px}.adf-infinite-pagination-load-more{margin-bottom:10px;margin-top:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
97
|
+
}
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InfinitePaginationComponent, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{ selector: 'adf-infinite-pagination', host: { class: 'infinite-adf-pagination' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, MatButtonModule, MatProgressBarModule, TranslatePipe], template: "<div *ngIf=\"pagination?.hasMoreItems || isLoading\" class=\"adf-infinite-pagination\">\n\n <button mat-button\n *ngIf=\"!isLoading\"\n class=\"adf-infinite-pagination-load-more\"\n (click)=\"onLoadMore()\"\n data-automation-id=\"adf-infinite-pagination-button\">\n <ng-content />\n </button>\n\n <mat-progress-bar *ngIf=\"isLoading\"\n mode=\"indeterminate\"\n class=\"adf-infinite-pagination-spinner\"\n data-automation-id=\"adf-infinite-pagination-spinner\"\n [attr.aria-label]=\"'DATA_LOADING' | translate\" />\n</div>\n", styles: [".adf-infinite-pagination{display:flex;justify-content:space-around;min-height:56px}.adf-infinite-pagination-load-more{margin-bottom:10px;margin-top:10px}\n"] }]
|
|
101
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.UserPreferencesService }], propDecorators: { target: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], pageSize: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], isLoading: [{
|
|
106
|
+
type: Input,
|
|
107
|
+
args: ['loading']
|
|
108
|
+
}], loadMore: [{
|
|
109
|
+
type: Output
|
|
110
|
+
}] } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vaW5maW5pdGUtcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vaW5maW5pdGUtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxvREFBb0Q7QUFDcEQsMENBQTBDO0FBRTFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVloRSxNQUFNLE9BQU8sMkJBQTJCO2FBQzdCLHVCQUFrQixHQUFvQixJQUFJLGVBQWUsQ0FBQztRQUM3RCxTQUFTLEVBQUUsQ0FBQztRQUNaLFFBQVEsRUFBRSxFQUFFO1FBQ1osVUFBVSxFQUFFLENBQUM7S0FDaEIsQ0FB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Q0FBQzsrR0FyRlEsMkJBQTJCO21HQUEzQiwyQkFBMkIsb1FDdER4QywwbEJBZ0JBLG9ORG9DYyxZQUFZLGtJQUFFLGVBQWUsMk5BQUUsb0JBQW9CLG9OQUFFLGFBQWE7OzRGQUVuRSwyQkFBMkI7a0JBVnZDLFNBQVM7K0JBQ0kseUJBQXlCLFFBQzdCLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxDQUFDOzJIQWF6RSxNQUFNO3NCQURULEtBQUs7Z0JBdUJOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7dUJBQUMsU0FBUztnQkFLaEIsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG4vKiBlc2xpbnQtZGlzYWJsZSByeGpzL25vLXN1YmplY3QtdmFsdWUgKi9cblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBhZ2luYXRlZENvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGVkLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vcGFnaW5hdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcXVlc3RQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcmVxdWVzdC1wYWdpbmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtaW5maW5pdGUtcGFnaW5hdGlvbicsXG4gICAgaG9zdDogeyBjbGFzczogJ2luZmluaXRlLWFkZi1wYWdpbmF0aW9uJyB9LFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmZpbml0ZS1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbmZpbml0ZS1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEluZmluaXRlUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgUGFnaW5hdGlvbkNvbXBvbmVudEludGVyZmFjZSB7XG4gICAgc3RhdGljIERFRkFVTFRfUEFHSU5BVElPTjogUGFnaW5hdGlvbk1vZGVsID0gbmV3IFBhZ2luYXRpb25Nb2RlbCh7XG4gICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgbWF4SXRlbXM6IDI1LFxuICAgICAgICB0b3RhbEl0ZW1zOiAwXG4gICAgfSk7XG5cbiAgICBfdGFyZ2V0OiBQYWdpbmF0ZWRDb21wb25lbnQ7XG5cbiAgICAvKiogQ29tcG9uZW50IHRoYXQgcHJvdmlkZXMgY3VzdG9tIHBhZ2luYXRpb24gc3VwcG9ydC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YXJnZXQodGFyZ2V0OiBQYWdpbmF0ZWRDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICAgICAgdGFyZ2V0LnBhZ2luYXRpb24ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChwYWdpbmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSBwYWdpbmF0aW9uO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24uaGFzTW9yZUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5oYXNNb3JlSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0YXJnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gICAgfVxuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyB0aGF0IGFyZSBhZGRlZCB3aXRoIGVhY2ggXCJsb2FkIG1vcmVcIiBldmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBhZ2VTaXplOiBudW1iZXI7XG5cbiAgICAvKiogSXMgYSBuZXcgcGFnZSBsb2FkaW5nPyAqL1xuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBcIkxvYWQgTW9yZVwiIGJ1dHRvbiBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGxvYWRNb3JlOiBFdmVudEVtaXR0ZXI8UmVxdWVzdFBhZ2luYXRpb25Nb2RlbD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlcXVlc3RQYWdpbmF0aW9uTW9kZWw+KCk7XG5cbiAgICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwgPSBJbmZpbml0ZVBhZ2luYXRpb25Db21wb25lbnQuREVGQVVMVF9QQUdJTkFUSU9OO1xuXG4gICAgcmVxdWVzdFBhZ2luYXRpb25Nb2RlbDogUmVxdWVzdFBhZ2luYXRpb25Nb2RlbCA9IHtcbiAgICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgICBtZXJnZTogdHJ1ZVxuICAgIH07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdXNlclByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2VcbiAgICAgICAgICAgIC5zZWxlY3QoVXNlclByZWZlcmVuY2VWYWx1ZXMuUGFnaW5hdGlvblNpemUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2VTaXplOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZSB8fCBwYWdlU2l6ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RQYWdpbmF0aW9uTW9kZWwubWF4SXRlbXMgPSB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Mb2FkTW9yZSgpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0UGFnaW5hdGlvbk1vZGVsLnNraXBDb3VudCA9IDA7XG4gICAgICAgIHRoaXMucmVxdWVzdFBhZ2luYXRpb25Nb2RlbC5tZXJnZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0UGFnaW5hdGlvbk1vZGVsLm1heEl0ZW1zICs9IHRoaXMucGFnZVNpemU7XG5cbiAgICAgICAgdGhpcy5sb2FkTW9yZS5uZXh0KHRoaXMucmVxdWVzdFBhZ2luYXRpb25Nb2RlbCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LnVwZGF0ZVBhZ2luYXRpb24odGhpcy5yZXF1ZXN0UGFnaW5hdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24uc2tpcENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLm1heEl0ZW1zID0gdGhpcy5wYWdlU2l6ZTtcblxuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLl90YXJnZXQudXBkYXRlUGFnaW5hdGlvbih0aGlzLnBhZ2luYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInBhZ2luYXRpb24/Lmhhc01vcmVJdGVtcyB8fCBpc0xvYWRpbmdcIiBjbGFzcz1cImFkZi1pbmZpbml0ZS1wYWdpbmF0aW9uXCI+XG5cbiAgICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCJcbiAgICAgICAgY2xhc3M9XCJhZGYtaW5maW5pdGUtcGFnaW5hdGlvbi1sb2FkLW1vcmVcIlxuICAgICAgICAoY2xpY2spPVwib25Mb2FkTW9yZSgpXCJcbiAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWluZmluaXRlLXBhZ2luYXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJpc0xvYWRpbmdcIlxuICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIGNsYXNzPVwiYWRmLWluZmluaXRlLXBhZ2luYXRpb24tc3Bpbm5lclwiXG4gICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1pbmZpbml0ZS1wYWdpbmF0aW9uLXNwaW5uZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidEQVRBX0xPQURJTkcnIHwgdHJhbnNsYXRlXCIgLz5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGVkLWNvbXBvbmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGVkLWNvbXBvbmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlcXVlc3RQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcmVxdWVzdC1wYWdpbmF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0ZWRDb21wb25lbnQge1xuICAgIHBhZ2luYXRpb246IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uTW9kZWw+O1xuICAgIHVwZGF0ZVBhZ2luYXRpb24ocmVxdWVzdFBhZ2luYXRpb25Nb2RlbDogUmVxdWVzdFBhZ2luYXRpb25Nb2RlbCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24tY29tcG9uZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFBhZ2luYXRlZENvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGVkLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3BhZ2luYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db21wb25lbnRJbnRlcmZhY2Uge1xuICAgIHRhcmdldDogUGFnaW5hdGVkQ29tcG9uZW50O1xuICAgIHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, inject, Input, Output, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
18
|
+
import { PaginationModel } from '../models/pagination.model';
|
|
19
|
+
import { UserPreferencesService, UserPreferenceValues } from '../common/services/user-preferences.service';
|
|
20
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
21
|
+
import { CommonModule } from '@angular/common';
|
|
22
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
23
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
24
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
25
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
26
|
+
import * as i0 from "@angular/core";
|
|
27
|
+
import * as i1 from "../common/services/user-preferences.service";
|
|
28
|
+
import * as i2 from "@ngx-translate/core";
|
|
29
|
+
import * as i3 from "@angular/common";
|
|
30
|
+
import * as i4 from "@angular/material/button";
|
|
31
|
+
import * as i5 from "@angular/material/icon";
|
|
32
|
+
import * as i6 from "@angular/material/menu";
|
|
33
|
+
export const DEFAULT_PAGINATION = {
|
|
34
|
+
skipCount: 0,
|
|
35
|
+
maxItems: 25,
|
|
36
|
+
totalItems: 0,
|
|
37
|
+
count: 0,
|
|
38
|
+
hasMoreItems: false
|
|
39
|
+
};
|
|
40
|
+
export class PaginationComponent {
|
|
41
|
+
get pagination() {
|
|
42
|
+
return this._pagination;
|
|
43
|
+
}
|
|
44
|
+
/** Pagination object. */
|
|
45
|
+
set pagination(value) {
|
|
46
|
+
value = value || DEFAULT_PAGINATION;
|
|
47
|
+
this._pagination = value;
|
|
48
|
+
this._hasItems = value && value.count > 0;
|
|
49
|
+
this._isEmpty = !this.hasItems;
|
|
50
|
+
// TODO: Angular 10 workaround for HostBinding bug
|
|
51
|
+
if (this._isEmpty) {
|
|
52
|
+
this.renderer.addClass(this.elementRef.nativeElement, 'adf-pagination__empty');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.renderer.removeClass(this.elementRef.nativeElement, 'adf-pagination__empty');
|
|
56
|
+
}
|
|
57
|
+
this.cdr.detectChanges();
|
|
58
|
+
}
|
|
59
|
+
constructor(elementRef, renderer, cdr, userPreferencesService, translate) {
|
|
60
|
+
this.elementRef = elementRef;
|
|
61
|
+
this.renderer = renderer;
|
|
62
|
+
this.cdr = cdr;
|
|
63
|
+
this.userPreferencesService = userPreferencesService;
|
|
64
|
+
this.translate = translate;
|
|
65
|
+
this._isEmpty = true;
|
|
66
|
+
this._hasItems = false;
|
|
67
|
+
/** Emitted when pagination changes in any way. */
|
|
68
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
69
|
+
this.change = new EventEmitter();
|
|
70
|
+
/** Emitted when the page number changes. */
|
|
71
|
+
this.changePageNumber = new EventEmitter();
|
|
72
|
+
/** Emitted when the page size changes. */
|
|
73
|
+
this.changePageSize = new EventEmitter();
|
|
74
|
+
/** Emitted when the next page is requested. */
|
|
75
|
+
this.nextPage = new EventEmitter();
|
|
76
|
+
/** Emitted when the previous page is requested. */
|
|
77
|
+
this.prevPage = new EventEmitter();
|
|
78
|
+
this.destroyRef = inject(DestroyRef);
|
|
79
|
+
}
|
|
80
|
+
ngOnInit() {
|
|
81
|
+
this.userPreferencesService
|
|
82
|
+
.select(UserPreferenceValues.PaginationSize)
|
|
83
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
84
|
+
.subscribe((maxItems) => {
|
|
85
|
+
this.pagination = {
|
|
86
|
+
...DEFAULT_PAGINATION,
|
|
87
|
+
...this.pagination,
|
|
88
|
+
maxItems
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
if (!this.supportedPageSizes) {
|
|
92
|
+
this.supportedPageSizes = this.userPreferencesService.supportedPageSizes;
|
|
93
|
+
}
|
|
94
|
+
if (this.target) {
|
|
95
|
+
this.target.pagination.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((pagination) => {
|
|
96
|
+
if (pagination.count === 0 && !this.isFirstPage) {
|
|
97
|
+
this.goPrevious();
|
|
98
|
+
}
|
|
99
|
+
this.pagination = {
|
|
100
|
+
...pagination
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (!this.pagination) {
|
|
105
|
+
this.pagination = {
|
|
106
|
+
...DEFAULT_PAGINATION
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
get lastPage() {
|
|
111
|
+
const { maxItems, totalItems } = this.pagination;
|
|
112
|
+
return totalItems && maxItems ? Math.ceil(totalItems / maxItems) : 1;
|
|
113
|
+
}
|
|
114
|
+
get current() {
|
|
115
|
+
const { maxItems, skipCount } = this.pagination;
|
|
116
|
+
return skipCount && maxItems ? Math.floor(skipCount / maxItems) + 1 : 1;
|
|
117
|
+
}
|
|
118
|
+
get isLastPage() {
|
|
119
|
+
if (!this.pagination.totalItems && this.pagination.hasMoreItems) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
return this.current === this.lastPage;
|
|
123
|
+
}
|
|
124
|
+
get isFirstPage() {
|
|
125
|
+
return this.current === 1;
|
|
126
|
+
}
|
|
127
|
+
get next() {
|
|
128
|
+
return this.isLastPage ? this.current : this.current + 1;
|
|
129
|
+
}
|
|
130
|
+
get previous() {
|
|
131
|
+
return this.isFirstPage ? 1 : this.current - 1;
|
|
132
|
+
}
|
|
133
|
+
get hasItems() {
|
|
134
|
+
return this._hasItems;
|
|
135
|
+
}
|
|
136
|
+
// TODO: not working correctly in Angular 10
|
|
137
|
+
// @HostBinding('class.adf-pagination__empty')
|
|
138
|
+
get isEmpty() {
|
|
139
|
+
return this._isEmpty;
|
|
140
|
+
}
|
|
141
|
+
get range() {
|
|
142
|
+
const { skipCount, maxItems, totalItems } = this.pagination;
|
|
143
|
+
let start = 0;
|
|
144
|
+
if (totalItems || totalItems !== 0) {
|
|
145
|
+
start = skipCount + 1;
|
|
146
|
+
}
|
|
147
|
+
const end = this.isLastPage ? totalItems : skipCount + maxItems;
|
|
148
|
+
return [start, end];
|
|
149
|
+
}
|
|
150
|
+
get pages() {
|
|
151
|
+
return Array(this.lastPage)
|
|
152
|
+
.fill('n')
|
|
153
|
+
.map((_, index) => index + 1);
|
|
154
|
+
}
|
|
155
|
+
get limitedPages() {
|
|
156
|
+
if (this.lastPage <= 100) {
|
|
157
|
+
return this.pages;
|
|
158
|
+
}
|
|
159
|
+
const twentyItems = Array.from(Array(20));
|
|
160
|
+
return [
|
|
161
|
+
1,
|
|
162
|
+
...twentyItems.map((_, i) => this.current - i - 1).reverse(),
|
|
163
|
+
this.current,
|
|
164
|
+
...twentyItems.map((_, i) => this.current + i + 1),
|
|
165
|
+
this.lastPage
|
|
166
|
+
].filter((value, index, array) => value > 0 && value <= this.lastPage && !array.slice(0, index).includes(value));
|
|
167
|
+
}
|
|
168
|
+
get itemRangeText() {
|
|
169
|
+
const rangeString = this.range.join('-');
|
|
170
|
+
let translation = this.translate.instant('CORE.PAGINATION.ITEMS_RANGE', {
|
|
171
|
+
range: rangeString,
|
|
172
|
+
total: this.pagination.totalItems
|
|
173
|
+
});
|
|
174
|
+
if (!this.pagination.totalItems) {
|
|
175
|
+
translation = translation.substr(0, translation.indexOf(rangeString) + rangeString.length);
|
|
176
|
+
}
|
|
177
|
+
return translation;
|
|
178
|
+
}
|
|
179
|
+
goNext() {
|
|
180
|
+
if (this.hasItems) {
|
|
181
|
+
const maxItems = this.pagination.maxItems;
|
|
182
|
+
const skipCount = (this.next - 1) * maxItems;
|
|
183
|
+
this.pagination = {
|
|
184
|
+
...this.pagination,
|
|
185
|
+
skipCount
|
|
186
|
+
};
|
|
187
|
+
this.handlePaginationEvent('NEXT_PAGE');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
goPrevious() {
|
|
191
|
+
if (this.hasItems) {
|
|
192
|
+
const maxItems = this.pagination.maxItems;
|
|
193
|
+
const skipCount = (this.previous - 1) * maxItems;
|
|
194
|
+
this.pagination = {
|
|
195
|
+
...this.pagination,
|
|
196
|
+
skipCount
|
|
197
|
+
};
|
|
198
|
+
this.handlePaginationEvent('PREV_PAGE');
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
onChangePageNumber(pageNumber) {
|
|
202
|
+
if (this.hasItems) {
|
|
203
|
+
const maxItems = this.pagination.maxItems;
|
|
204
|
+
const skipCount = (pageNumber - 1) * maxItems;
|
|
205
|
+
this.pagination = {
|
|
206
|
+
...this.pagination,
|
|
207
|
+
skipCount
|
|
208
|
+
};
|
|
209
|
+
this.handlePaginationEvent('CHANGE_PAGE_NUMBER');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
onChangePageSize(maxItems) {
|
|
213
|
+
this.pagination = {
|
|
214
|
+
...this.pagination,
|
|
215
|
+
skipCount: 0,
|
|
216
|
+
maxItems
|
|
217
|
+
};
|
|
218
|
+
this.userPreferencesService.paginationSize = maxItems;
|
|
219
|
+
this.handlePaginationEvent('CHANGE_PAGE_SIZE');
|
|
220
|
+
}
|
|
221
|
+
handlePaginationEvent(action) {
|
|
222
|
+
const paginationModel = { ...this.pagination };
|
|
223
|
+
if (action === 'NEXT_PAGE') {
|
|
224
|
+
this.nextPage.emit(paginationModel);
|
|
225
|
+
}
|
|
226
|
+
if (action === 'PREV_PAGE') {
|
|
227
|
+
this.prevPage.emit(paginationModel);
|
|
228
|
+
}
|
|
229
|
+
if (action === 'CHANGE_PAGE_NUMBER') {
|
|
230
|
+
this.changePageNumber.emit(paginationModel);
|
|
231
|
+
}
|
|
232
|
+
if (action === 'CHANGE_PAGE_SIZE') {
|
|
233
|
+
this.changePageSize.emit(paginationModel);
|
|
234
|
+
}
|
|
235
|
+
this.change.emit(paginationModel);
|
|
236
|
+
if (this.target) {
|
|
237
|
+
this.target.updatePagination(paginationModel);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.UserPreferencesService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
241
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaginationComponent, isStandalone: true, selector: "adf-pagination", inputs: { target: "target", supportedPageSizes: "supportedPageSizes", pagination: "pagination" }, outputs: { change: "change", changePageNumber: "changePageNumber", changePageSize: "changePageSize", nextPage: "nextPage", prevPage: "prevPage" }, host: { classAttribute: "adf-pagination" }, ngImport: i0, template: "<ng-container *ngIf=\"hasItems\">\n <div class=\"adf-pagination__block adf-pagination__range-block\" aria-live=\"polite\">\n <span class=\"adf-pagination__range\">\n {{ itemRangeText }}\n </span>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__perpage-block\">\n <span>\n {{ 'CORE.PAGINATION.ITEMS_PER_PAGE' | translate }}\n </span>\n\n <span class=\"adf-pagination__max-items\">\n {{ pagination.maxItems }}\n </span>\n\n <button\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.ITEMS_PER_PAGE' | translate\"\n [matMenuTriggerFor]=\"pageSizeMenu\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n\n <mat-menu #pageSizeMenu=\"matMenu\" class=\"adf-pagination__page-selector\">\n <button\n mat-menu-item\n *ngFor=\"let pageSize of supportedPageSizes\"\n (click)=\"onChangePageSize(pageSize)\">\n {{ pageSize }}\n </button>\n </mat-menu>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__actualinfo-block\">\n <span class=\"adf-pagination__current-page\">\n {{ 'CORE.PAGINATION.CURRENT_PAGE' | translate: { number: current } }}\n </span>\n\n <button\n mat-icon-button\n data-automation-id=\"page-selector\"\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.CURRENT_PAGE' | translate\"\n [matMenuTriggerFor]=\"pagesMenu\"\n *ngIf=\"lastPage > 1\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n\n <div *ngIf=\"pagination.totalItems\">\n <span class=\"adf-pagination__total-pages\">\n {{ 'CORE.PAGINATION.TOTAL_PAGES' | translate: { total: lastPage } }}\n </span>\n </div>\n\n <mat-menu #pagesMenu=\"matMenu\" class=\"adf-pagination__page-selector\">\n <button\n mat-menu-item\n *ngFor=\"let pageNumber of limitedPages\"\n (click)=\"onChangePageNumber(pageNumber)\">\n {{ pageNumber }}\n </button>\n </mat-menu>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__controls-block\">\n <button\n class=\"adf-pagination__previous-button\"\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.PREVIOUS_PAGE' | translate\"\n [disabled]=\"isFirstPage\"\n (click)=\"goPrevious()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button\n class=\"adf-pagination__next-button\"\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.NEXT_PAGE' | translate\"\n [disabled]=\"isLastPage\"\n (click)=\"goNext()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [".adf-pagination{display:flex;border-top:none;height:48px;line-height:20px;color:var(--adf-theme-foreground-text-color)}.adf-pagination__block{display:flex;align-items:center;padding:0 8px;border-right:none}.adf-pagination__block:first-child{flex:1 1 auto;padding-left:24px}.adf-pagination__block:last-child{border-right-width:0}@media (max-width: 599.9px){.adf-pagination{flex-wrap:wrap;padding:0 16px;justify-content:space-between}.adf-pagination__range-block,.adf-pagination__perpage-block{display:none}.adf-pagination__actualinfo-block{border-right:none}.adf-pagination__controls-block{padding-right:0}}.adf-pagination__max-items{margin-left:10px}.adf-pagination__max-items,.adf-pagination__current-page{margin-right:5px}.adf-pagination__max-items,.adf-pagination__max-items+button,.adf-pagination__current-page,.adf-pagination__current-page+button{color:var(--adf-theme-foreground-text-color)}.adf-pagination__max-items+button,.adf-pagination__current-page+button{margin-left:-10px}.adf-pagination__previous-button,.adf-pagination__next-button{margin:0 5px}.adf-pagination__page-selector{max-height:250px}.adf-pagination.adf-pagination__empty{border-top:none;height:48px}.adf-pagination button[mat-icon-button]{line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
242
|
+
}
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{ selector: 'adf-pagination', host: { class: 'adf-pagination' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, TranslatePipe, MatButtonModule, MatIconModule, MatMenuModule], template: "<ng-container *ngIf=\"hasItems\">\n <div class=\"adf-pagination__block adf-pagination__range-block\" aria-live=\"polite\">\n <span class=\"adf-pagination__range\">\n {{ itemRangeText }}\n </span>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__perpage-block\">\n <span>\n {{ 'CORE.PAGINATION.ITEMS_PER_PAGE' | translate }}\n </span>\n\n <span class=\"adf-pagination__max-items\">\n {{ pagination.maxItems }}\n </span>\n\n <button\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.ITEMS_PER_PAGE' | translate\"\n [matMenuTriggerFor]=\"pageSizeMenu\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n\n <mat-menu #pageSizeMenu=\"matMenu\" class=\"adf-pagination__page-selector\">\n <button\n mat-menu-item\n *ngFor=\"let pageSize of supportedPageSizes\"\n (click)=\"onChangePageSize(pageSize)\">\n {{ pageSize }}\n </button>\n </mat-menu>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__actualinfo-block\">\n <span class=\"adf-pagination__current-page\">\n {{ 'CORE.PAGINATION.CURRENT_PAGE' | translate: { number: current } }}\n </span>\n\n <button\n mat-icon-button\n data-automation-id=\"page-selector\"\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.CURRENT_PAGE' | translate\"\n [matMenuTriggerFor]=\"pagesMenu\"\n *ngIf=\"lastPage > 1\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n\n <div *ngIf=\"pagination.totalItems\">\n <span class=\"adf-pagination__total-pages\">\n {{ 'CORE.PAGINATION.TOTAL_PAGES' | translate: { total: lastPage } }}\n </span>\n </div>\n\n <mat-menu #pagesMenu=\"matMenu\" class=\"adf-pagination__page-selector\">\n <button\n mat-menu-item\n *ngFor=\"let pageNumber of limitedPages\"\n (click)=\"onChangePageNumber(pageNumber)\">\n {{ pageNumber }}\n </button>\n </mat-menu>\n </div>\n\n <div class=\"adf-pagination__block adf-pagination__controls-block\">\n <button\n class=\"adf-pagination__previous-button\"\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.PREVIOUS_PAGE' | translate\"\n [disabled]=\"isFirstPage\"\n (click)=\"goPrevious()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button\n class=\"adf-pagination__next-button\"\n mat-icon-button\n [attr.aria-label]=\"'CORE.PAGINATION.ARIA.NEXT_PAGE' | translate\"\n [disabled]=\"isLastPage\"\n (click)=\"goNext()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n </div>\n</ng-container>\n", styles: [".adf-pagination{display:flex;border-top:none;height:48px;line-height:20px;color:var(--adf-theme-foreground-text-color)}.adf-pagination__block{display:flex;align-items:center;padding:0 8px;border-right:none}.adf-pagination__block:first-child{flex:1 1 auto;padding-left:24px}.adf-pagination__block:last-child{border-right-width:0}@media (max-width: 599.9px){.adf-pagination{flex-wrap:wrap;padding:0 16px;justify-content:space-between}.adf-pagination__range-block,.adf-pagination__perpage-block{display:none}.adf-pagination__actualinfo-block{border-right:none}.adf-pagination__controls-block{padding-right:0}}.adf-pagination__max-items{margin-left:10px}.adf-pagination__max-items,.adf-pagination__current-page{margin-right:5px}.adf-pagination__max-items,.adf-pagination__max-items+button,.adf-pagination__current-page,.adf-pagination__current-page+button{color:var(--adf-theme-foreground-text-color)}.adf-pagination__max-items+button,.adf-pagination__current-page+button{margin-left:-10px}.adf-pagination__previous-button,.adf-pagination__next-button{margin:0 5px}.adf-pagination__page-selector{max-height:250px}.adf-pagination.adf-pagination__empty{border-top:none;height:48px}.adf-pagination button[mat-icon-button]{line-height:20px}\n"] }]
|
|
246
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.UserPreferencesService }, { type: i2.TranslateService }], propDecorators: { target: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], supportedPageSizes: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], pagination: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], change: [{
|
|
253
|
+
type: Output
|
|
254
|
+
}], changePageNumber: [{
|
|
255
|
+
type: Output
|
|
256
|
+
}], changePageSize: [{
|
|
257
|
+
type: Output
|
|
258
|
+
}], nextPage: [{
|
|
259
|
+
type: Output
|
|
260
|
+
}], prevPage: [{
|
|
261
|
+
type: Output
|
|
262
|
+
}] } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDM0csT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFJaEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQW9CO0lBQy9DLFNBQVMsRUFBRSxDQUFDO0lBQ1osUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLEtBQUss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QyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNMLENBQUM7K0dBM1FRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJXQzlEaEMsMjlGQW1GQSwyd0NEdkJjLFlBQVksMlBBQUUsYUFBYSxpREFBRSxlQUFlLDJJQUFFLGFBQWEsbUxBQUUsYUFBYTs7NEZBRTNFLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDSSxnQkFBZ0IsUUFDcEIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyTUFTckYsTUFBTTtzQkFETCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFTRixVQUFVO3NCQURiLEtBQUs7Z0JBcUJOLE1BQU07c0JBREwsTUFBTTtnQkFLUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0ZWRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRlZC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL3BhZ2luYXRpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLCBVc2VyUHJlZmVyZW5jZVZhbHVlcyB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25BY3Rpb24gPSAnTkVYVF9QQUdFJyB8ICdQUkVWX1BBR0UnIHwgJ0NIQU5HRV9QQUdFX1NJWkUnIHwgJ0NIQU5HRV9QQUdFX05VTUJFUic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBR0lOQVRJT046IFBhZ2luYXRpb25Nb2RlbCA9IHtcbiAgICBza2lwQ291bnQ6IDAsXG4gICAgbWF4SXRlbXM6IDI1LFxuICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgY291bnQ6IDAsXG4gICAgaGFzTW9yZUl0ZW1zOiBmYWxzZVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtcGFnaW5hdGlvbicsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1wYWdpbmF0aW9uJyB9LFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0TWVudU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgUGFnaW5hdGlvbkNvbXBvbmVudEludGVyZmFjZSB7XG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbk1vZGVsO1xuICAgIHByaXZhdGUgX2lzRW1wdHkgPSB0cnVlO1xuICAgIHByaXZhdGUgX2hhc0l0ZW1zID0gZmFsc2U7XG5cbiAgICAvKiogQ29tcG9uZW50IHRoYXQgcHJvdmlkZXMgY3VzdG9tIHBhZ2luYXRpb24gc3VwcG9ydC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhcmdldDogUGFnaW5hdGVkQ29tcG9uZW50O1xuXG4gICAgLyoqIEFuIGFycmF5IG9mIHBhZ2Ugc2l6ZXMuICovXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0ZWRQYWdlU2l6ZXM6IG51bWJlcltdO1xuXG4gICAgZ2V0IHBhZ2luYXRpb24oKTogUGFnaW5hdGlvbk1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gICAgfVxuXG4gICAgLyoqIFBhZ2luYXRpb24gb2JqZWN0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBhZ2luYXRpb24odmFsdWU6IFBhZ2luYXRpb25Nb2RlbCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlIHx8IERFRkFVTFRfUEFHSU5BVElPTjtcblxuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2hhc0l0ZW1zID0gdmFsdWUgJiYgdmFsdWUuY291bnQgPiAwO1xuICAgICAgICB0aGlzLl9pc0VtcHR5ID0gIXRoaXMuaGFzSXRlbXM7XG5cbiAgICAgICAgLy8gVE9ETzogQW5ndWxhciAxMCB3b3JrYXJvdW5kIGZvciBIb3N0QmluZGluZyBidWdcbiAgICAgICAgaWYgKHRoaXMuX2lzRW1wdHkpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdhZGYtcGFnaW5hdGlvbl9fZW1wdHknKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdhZGYtcGFnaW5hdGlvbl9fZW1wdHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHBhZ2luYXRpb24gY2hhbmdlcyBpbiBhbnkgd2F5LiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKVxuICAgIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbk1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgcGFnZSBudW1iZXIgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VQYWdlTnVtYmVyID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBwYWdlIHNpemUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VQYWdlU2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbk1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbmV4dCBwYWdlIGlzIHJlcXVlc3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBuZXh0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbk1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgcHJldmlvdXMgcGFnZSBpcyByZXF1ZXN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcHJldlBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25Nb2RlbD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5QYWdpbmF0aW9uU2l6ZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobWF4SXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLkRFRkFVTFRfUEFHSU5BVElPTixcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBtYXhJdGVtc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydGVkUGFnZVNpemVzKSB7XG4gICAgICAgICAgICB0aGlzLnN1cHBvcnRlZFBhZ2VTaXplcyA9IHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5zdXBwb3J0ZWRQYWdlU2l6ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LnBhZ2luYXRpb24ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChwYWdpbmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2luYXRpb24uY291bnQgPT09IDAgJiYgIXRoaXMuaXNGaXJzdFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nb1ByZXZpb3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wYWdpbmF0aW9uXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAuLi5ERUZBVUxUX1BBR0lOQVRJT05cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbGFzdFBhZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgeyBtYXhJdGVtcywgdG90YWxJdGVtcyB9ID0gdGhpcy5wYWdpbmF0aW9uO1xuXG4gICAgICAgIHJldHVybiB0b3RhbEl0ZW1zICYmIG1heEl0ZW1zID8gTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBtYXhJdGVtcykgOiAxO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHsgbWF4SXRlbXMsIHNraXBDb3VudCB9ID0gdGhpcy5wYWdpbmF0aW9uO1xuXG4gICAgICAgIHJldHVybiBza2lwQ291bnQgJiYgbWF4SXRlbXMgPyBNYXRoLmZsb29yKHNraXBDb3VudCAvIG1heEl0ZW1zKSArIDEgOiAxO1xuICAgIH1cblxuICAgIGdldCBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbi50b3RhbEl0ZW1zICYmIHRoaXMucGFnaW5hdGlvbi5oYXNNb3JlSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50ID09PSB0aGlzLmxhc3RQYWdlO1xuICAgIH1cblxuICAgIGdldCBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudCA9PT0gMTtcbiAgICB9XG5cbiAgICBnZXQgbmV4dCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0xhc3RQYWdlID8gdGhpcy5jdXJyZW50IDogdGhpcy5jdXJyZW50ICsgMTtcbiAgICB9XG5cbiAgICBnZXQgcHJldmlvdXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGaXJzdFBhZ2UgPyAxIDogdGhpcy5jdXJyZW50IC0gMTtcbiAgICB9XG5cbiAgICBnZXQgaGFzSXRlbXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNJdGVtcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBub3Qgd29ya2luZyBjb3JyZWN0bHkgaW4gQW5ndWxhciAxMFxuICAgIC8vIEBIb3N0QmluZGluZygnY2xhc3MuYWRmLXBhZ2luYXRpb25fX2VtcHR5JylcbiAgICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW1wdHk7XG4gICAgfVxuXG4gICAgZ2V0IHJhbmdlKCk6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgeyBza2lwQ291bnQsIG1heEl0ZW1zLCB0b3RhbEl0ZW1zIH0gPSB0aGlzLnBhZ2luYXRpb247XG5cbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgaWYgKHRvdGFsSXRlbXMgfHwgdG90YWxJdGVtcyAhPT0gMCkge1xuICAgICAgICAgICAgc3RhcnQgPSBza2lwQ291bnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5pc0xhc3RQYWdlID8gdG90YWxJdGVtcyA6IHNraXBDb3VudCArIG1heEl0ZW1zO1xuXG4gICAgICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2VzKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5KHRoaXMubGFzdFBhZ2UpXG4gICAgICAgICAgICAuZmlsbCgnbicpXG4gICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gaW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICBnZXQgbGltaXRlZFBhZ2VzKCk6IG51bWJlcltdIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFBhZ2UgPD0gMTAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYWdlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0d2VudHlJdGVtcyA9IEFycmF5LmZyb20oQXJyYXkoMjApKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAuLi50d2VudHlJdGVtcy5tYXAoKF8sIGkpID0+IHRoaXMuY3VycmVudCAtIGkgLSAxKS5yZXZlcnNlKCksXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQsXG4gICAgICAgICAgICAuLi50d2VudHlJdGVtcy5tYXAoKF8sIGkpID0+IHRoaXMuY3VycmVudCArIGkgKyAxKSxcbiAgICAgICAgICAgIHRoaXMubGFzdFBhZ2VcbiAgICAgICAgXS5maWx0ZXIoKHZhbHVlOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGFycmF5OiBudW1iZXJbXSkgPT4gdmFsdWUgPiAwICYmIHZhbHVlIDw9IHRoaXMubGFzdFBhZ2UgJiYgIWFycmF5LnNsaWNlKDAsIGluZGV4KS5pbmNsdWRlcyh2YWx1ZSkpO1xuICAgIH1cblxuICAgIGdldCBpdGVtUmFuZ2VUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJhbmdlU3RyaW5nID0gdGhpcy5yYW5nZS5qb2luKCctJyk7XG5cbiAgICAgICAgbGV0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ09SRS5QQUdJTkFUSU9OLklURU1TX1JBTkdFJywge1xuICAgICAgICAgICAgcmFuZ2U6IHJhbmdlU3RyaW5nLFxuICAgICAgICAgICAgdG90YWw6IHRoaXMucGFnaW5hdGlvbi50b3RhbEl0ZW1zXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5wYWdpbmF0aW9uLnRvdGFsSXRlbXMpIHtcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24uc3Vic3RyKDAsIHRyYW5zbGF0aW9uLmluZGV4T2YocmFuZ2VTdHJpbmcpICsgcmFuZ2VTdHJpbmcubGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcbiAgICB9XG5cbiAgICBnb05leHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBtYXhJdGVtcyA9IHRoaXMucGFnaW5hdGlvbi5tYXhJdGVtcztcbiAgICAgICAgICAgIGNvbnN0IHNraXBDb3VudCA9ICh0aGlzLm5leHQgLSAxKSAqIG1heEl0ZW1zO1xuXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICAgICAgICAgIHNraXBDb3VudFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uRXZlbnQoJ05FWFRfUEFHRScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ29QcmV2aW91cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzSXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG1heEl0ZW1zID0gdGhpcy5wYWdpbmF0aW9uLm1heEl0ZW1zO1xuICAgICAgICAgICAgY29uc3Qgc2tpcENvdW50ID0gKHRoaXMucHJldmlvdXMgLSAxKSAqIG1heEl0ZW1zO1xuXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICAgICAgICAgIHNraXBDb3VudFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uRXZlbnQoJ1BSRVZfUEFHRScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGFuZ2VQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5oYXNJdGVtcykge1xuICAgICAgICAgICAgY29uc3QgbWF4SXRlbXMgPSB0aGlzLnBhZ2luYXRpb24ubWF4SXRlbXM7XG4gICAgICAgICAgICBjb25zdCBza2lwQ291bnQgPSAocGFnZU51bWJlciAtIDEpICogbWF4SXRlbXM7XG5cbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBhZ2luYXRpb24sXG4gICAgICAgICAgICAgICAgc2tpcENvdW50XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVBhZ2luYXRpb25FdmVudCgnQ0hBTkdFX1BBR0VfTlVNQkVSJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZVBhZ2VTaXplKG1heEl0ZW1zOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgICAgICAgbWF4SXRlbXNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2UucGFnaW5hdGlvblNpemUgPSBtYXhJdGVtcztcbiAgICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uRXZlbnQoJ0NIQU5HRV9QQUdFX1NJWkUnKTtcbiAgICB9XG4gICAgaGFuZGxlUGFnaW5hdGlvbkV2ZW50KGFjdGlvbjogUGFnaW5hdGlvbkFjdGlvbikge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uTW9kZWwgPSB7IC4uLnRoaXMucGFnaW5hdGlvbiB9O1xuXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdORVhUX1BBR0UnKSB7XG4gICAgICAgICAgICB0aGlzLm5leHRQYWdlLmVtaXQocGFnaW5hdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdQUkVWX1BBR0UnKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZQYWdlLmVtaXQocGFnaW5hdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdDSEFOR0VfUEFHRV9OVU1CRVInKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VOdW1iZXIuZW1pdChwYWdpbmF0aW9uTW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ0NIQU5HRV9QQUdFX1NJWkUnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VTaXplLmVtaXQocGFnaW5hdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQocGFnaW5hdGlvbk1vZGVsKTtcblxuICAgICAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0LnVwZGF0ZVBhZ2luYXRpb24ocGFnaW5hdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNJdGVtc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fYmxvY2sgYWRmLXBhZ2luYXRpb25fX3JhbmdlLWJsb2NrXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLXBhZ2luYXRpb25fX3JhbmdlXCI+XG4gICAgICAgICAgICB7eyBpdGVtUmFuZ2VUZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fYmxvY2sgYWRmLXBhZ2luYXRpb25fX3BlcnBhZ2UtYmxvY2tcIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyAnQ09SRS5QQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fbWF4LWl0ZW1zXCI+XG4gICAgICAgICAgICB7eyBwYWdpbmF0aW9uLm1heEl0ZW1zIH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NPUkUuUEFHSU5BVElPTi5BUklBLklURU1TX1BFUl9QQUdFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicGFnZVNpemVNZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG1hdC1tZW51ICNwYWdlU2l6ZU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fcGFnZS1zZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZVNpemUgb2Ygc3VwcG9ydGVkUGFnZVNpemVzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DaGFuZ2VQYWdlU2l6ZShwYWdlU2l6ZSlcIj5cbiAgICAgICAgICAgICAgICB7eyBwYWdlU2l6ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXBhZ2luYXRpb25fX2Jsb2NrIGFkZi1wYWdpbmF0aW9uX19hY3R1YWxpbmZvLWJsb2NrXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLXBhZ2luYXRpb25fX2N1cnJlbnQtcGFnZVwiPlxuICAgICAgICAgICAge3sgJ0NPUkUuUEFHSU5BVElPTi5DVVJSRU5UX1BBR0UnIHwgdHJhbnNsYXRlOiB7IG51bWJlcjogY3VycmVudCB9IH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInBhZ2Utc2VsZWN0b3JcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09SRS5QQUdJTkFUSU9OLkFSSUEuQ1VSUkVOVF9QQUdFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwicGFnZXNNZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwibGFzdFBhZ2UgPiAxXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2luYXRpb24udG90YWxJdGVtc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fdG90YWwtcGFnZXNcIj5cbiAgICAgICAgICAgICAgICB7eyAnQ09SRS5QQUdJTkFUSU9OLlRPVEFMX1BBR0VTJyB8IHRyYW5zbGF0ZTogeyB0b3RhbDogbGFzdFBhZ2UgfSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWF0LW1lbnUgI3BhZ2VzTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImFkZi1wYWdpbmF0aW9uX19wYWdlLXNlbGVjdG9yXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIGxpbWl0ZWRQYWdlc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlUGFnZU51bWJlcihwYWdlTnVtYmVyKVwiPlxuICAgICAgICAgICAgICAgIHt7IHBhZ2VOdW1iZXIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFkZi1wYWdpbmF0aW9uX19ibG9jayBhZGYtcGFnaW5hdGlvbl9fY29udHJvbHMtYmxvY2tcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fcHJldmlvdXMtYnV0dG9uXCJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09SRS5QQUdJTkFUSU9OLkFSSUEuUFJFVklPVVNfUEFHRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRmlyc3RQYWdlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1ByZXZpb3VzKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtcGFnaW5hdGlvbl9fbmV4dC1idXR0b25cIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT1JFLlBBR0lOQVRJT04uQVJJQS5ORVhUX1BBR0UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xhc3RQYWdlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb05leHQoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { NgModule } from '@angular/core';
|
|
18
|
+
import { InfinitePaginationComponent } from './infinite-pagination.component';
|
|
19
|
+
import { PaginationComponent } from './pagination.component';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
export const PAGINATION_DIRECTIVES = [InfinitePaginationComponent, PaginationComponent];
|
|
22
|
+
/** @deprecated use `...PAGINATION_DIRECTIVES` or import standalone components */
|
|
23
|
+
export class PaginationModule {
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PaginationModule, imports: [InfinitePaginationComponent, PaginationComponent], exports: [InfinitePaginationComponent, PaginationComponent] }); }
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationModule, imports: [PAGINATION_DIRECTIVES] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
imports: [...PAGINATION_DIRECTIVES],
|
|
32
|
+
exports: [...PAGINATION_DIRECTIVES]
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRXhGLGlGQUFpRjtBQUtqRixNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQVBTLDJCQUEyQixFQUFFLG1CQUFtQixhQUFoRCwyQkFBMkIsRUFBRSxtQkFBbUI7Z0hBT3pFLGdCQUFnQixZQUhaLHFCQUFxQjs7NEZBR3pCLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluZmluaXRlUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW5maW5pdGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgUEFHSU5BVElPTl9ESVJFQ1RJVkVTID0gW0luZmluaXRlUGFnaW5hdGlvbkNvbXBvbmVudCwgUGFnaW5hdGlvbkNvbXBvbmVudF07XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgYC4uLlBBR0lOQVRJT05fRElSRUNUSVZFU2Agb3IgaW1wb3J0IHN0YW5kYWxvbmUgY29tcG9uZW50cyAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbLi4uUEFHSU5BVElPTl9ESVJFQ1RJVkVTXSxcbiAgICBleHBvcnRzOiBbLi4uUEFHSU5BVElPTl9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export * from './pagination.component';
|
|
18
|
+
export * from './infinite-pagination.component';
|
|
19
|
+
export * from './paginated-component.interface';
|
|
20
|
+
export * from './pagination-component.interface';
|
|
21
|
+
export * from './pagination.module';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvcGFnaW5hdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2luZmluaXRlLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGVkLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24ubW9kdWxlJztcbiJdfQ==
|