@alfresco/adf-core 8.1.0-15062874470 → 8.1.0-15113180840
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/custom-theme/README.md +3 -0
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +4 -35
- package/fesm2022/adf-core.mjs +953 -969
- 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 +51 -56
- package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-shell.mjs +9 -9
- package/fesm2022/alfresco-adf-core-shell.mjs.map +1 -1
- package/lib/card-view/components/base-card-view.d.ts +1 -1
- package/lib/datatable/data/data-table.schema.d.ts +1 -1
- package/lib/form/components/form-field/form-field.component.d.ts +2 -3
- package/lib/form/components/form-renderer.component.d.ts +2 -4
- package/lib/form/components/form-renderer.component.scss +5 -6
- package/package.json +3 -15
- package/esm2022/adf-core.mjs +0 -5
- package/esm2022/api/alfresco-adf-core-api.mjs +0 -5
- package/esm2022/api/index.mjs +0 -20
- package/esm2022/api/lib/adf-http-client.service.mjs +0 -311
- package/esm2022/api/lib/alfresco-api/alfresco-api.param-encoder.mjs +0 -33
- package/esm2022/api/lib/alfresco-api/alfresco-api.response-error.mjs +0 -25
- package/esm2022/api/lib/alfresco-api/alfresco-api.utils.mjs +0 -80
- package/esm2022/api/lib/interfaces.mjs +0 -18
- package/esm2022/api/lib/types.mjs +0 -18
- package/esm2022/auth/alfresco-adf-core-auth.mjs +0 -5
- package/esm2022/auth/authentication-interceptor/authentication.interceptor.mjs +0 -56
- package/esm2022/auth/authentication.mjs +0 -19
- package/esm2022/auth/index.mjs +0 -19
- package/esm2022/breadcrumbs/alfresco-adf-core-breadcrumbs.mjs +0 -5
- package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +0 -83
- package/esm2022/breadcrumbs/components/breadcrumb-item/breadcrumb-item.component.mjs +0 -42
- package/esm2022/breadcrumbs/directives/breadcrumb-focus.directive.mjs +0 -44
- package/esm2022/breadcrumbs/index.mjs +0 -19
- package/esm2022/feature-flags/alfresco-adf-core-feature-flags.mjs +0 -5
- package/esm2022/feature-flags/index.mjs +0 -29
- package/esm2022/feature-flags/lib/components/feature-flags-wrapper.mjs +0 -36
- package/esm2022/feature-flags/lib/components/feature-override-indicator.component.mjs +0 -56
- package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +0 -130
- package/esm2022/feature-flags/lib/directives/features.directive.mjs +0 -63
- package/esm2022/feature-flags/lib/directives/not-features.directive.mjs +0 -63
- package/esm2022/feature-flags/lib/guards/is-feature-off.guard.mjs +0 -38
- package/esm2022/feature-flags/lib/guards/is-feature-on.guard.mjs +0 -38
- package/esm2022/feature-flags/lib/guards/is-flags-override-on.guard.mjs +0 -40
- package/esm2022/feature-flags/lib/interfaces/features.interface.mjs +0 -24
- package/esm2022/feature-flags/lib/mocks/features-service-mock.factory.mjs +0 -62
- package/esm2022/feature-flags/lib/providers/debug-feature-flags.provider.mjs +0 -51
- package/esm2022/feature-flags/lib/providers/dummy-feature-flags.provider.mjs +0 -36
- package/esm2022/feature-flags/lib/services/debug-features.service.mjs +0 -94
- package/esm2022/feature-flags/lib/services/dummy-features.service.mjs +0 -40
- package/esm2022/feature-flags/lib/services/flagset.parser.mjs +0 -38
- package/esm2022/feature-flags/lib/services/qa-features.helper.mjs +0 -62
- package/esm2022/feature-flags/lib/services/storage-features.service.mjs +0 -126
- package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +0 -52
- package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +0 -52
- package/esm2022/lib/about/about-module-list/module-list.component.mjs +0 -52
- package/esm2022/lib/about/about-package/package-list.component.mjs +0 -66
- package/esm2022/lib/about/about-panel.directive.mjs +0 -37
- package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +0 -60
- package/esm2022/lib/about/about-repository-info/repository-info.interface.mjs +0 -18
- package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +0 -43
- package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +0 -52
- package/esm2022/lib/about/about.component.mjs +0 -35
- package/esm2022/lib/about/about.module.mjs +0 -75
- package/esm2022/lib/about/index.mjs +0 -18
- package/esm2022/lib/about/interfaces.mjs +0 -18
- package/esm2022/lib/about/public-api.mjs +0 -28
- package/esm2022/lib/app-config/app-config-storage-prefix.factory.mjs +0 -51
- package/esm2022/lib/app-config/app-config.loader.mjs +0 -37
- package/esm2022/lib/app-config/app-config.module.mjs +0 -33
- package/esm2022/lib/app-config/app-config.pipe.mjs +0 -38
- package/esm2022/lib/app-config/app-config.service.mjs +0 -243
- package/esm2022/lib/app-config/debug-app-config.service.mjs +0 -44
- package/esm2022/lib/app-config/index.mjs +0 -18
- package/esm2022/lib/app-config/public-api.mjs +0 -22
- package/esm2022/lib/auth/authentication-interceptor/auth-bearer.interceptor.mjs +0 -67
- package/esm2022/lib/auth/basic-auth/basic-alfresco-auth.service.mjs +0 -356
- package/esm2022/lib/auth/basic-auth/content-auth.mjs +0 -189
- package/esm2022/lib/auth/basic-auth/process-auth.mjs +0 -193
- package/esm2022/lib/auth/guard/auth-guard-bpm.service.mjs +0 -31
- package/esm2022/lib/auth/guard/auth-guard-ecm.service.mjs +0 -31
- package/esm2022/lib/auth/guard/auth-guard-sso-role.service.mjs +0 -57
- package/esm2022/lib/auth/guard/auth-guard.mjs +0 -53
- package/esm2022/lib/auth/guard/auth-guard.service.mjs +0 -113
- package/esm2022/lib/auth/index.mjs +0 -18
- package/esm2022/lib/auth/interfaces/authentication-service.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/authentication.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/identity-group.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/identity-user.service.interface.mjs +0 -18
- package/esm2022/lib/auth/interfaces/openid-configuration.interface.mjs +0 -18
- package/esm2022/lib/auth/models/application-access.model.mjs +0 -18
- package/esm2022/lib/auth/models/identity-group.model.mjs +0 -18
- package/esm2022/lib/auth/models/identity-role.model.mjs +0 -30
- package/esm2022/lib/auth/models/identity-user.model.mjs +0 -18
- package/esm2022/lib/auth/models/oauth-config.model.mjs +0 -18
- package/esm2022/lib/auth/models/redirection.model.mjs +0 -28
- package/esm2022/lib/auth/models/user-access.model.mjs +0 -18
- package/esm2022/lib/auth/oidc/auth-config.mjs +0 -19
- package/esm2022/lib/auth/oidc/auth-config.service.mjs +0 -110
- package/esm2022/lib/auth/oidc/auth-routing.module.mjs +0 -34
- package/esm2022/lib/auth/oidc/auth.module.mjs +0 -112
- package/esm2022/lib/auth/oidc/auth.service.mjs +0 -22
- package/esm2022/lib/auth/oidc/oidc-auth.guard.mjs +0 -37
- package/esm2022/lib/auth/oidc/oidc-authentication.service.mjs +0 -202
- package/esm2022/lib/auth/oidc/public-api.mjs +0 -24
- package/esm2022/lib/auth/oidc/redirect-auth.service.mjs +0 -267
- package/esm2022/lib/auth/oidc/retry-login.service.mjs +0 -66
- package/esm2022/lib/auth/oidc/token.interceptor.mjs +0 -62
- package/esm2022/lib/auth/oidc/view/authentication-confirmation/authentication-confirmation.component.mjs +0 -31
- package/esm2022/lib/auth/public-api.mjs +0 -44
- package/esm2022/lib/auth/services/authentication.service.mjs +0 -190
- package/esm2022/lib/auth/services/base-authentication.service.mjs +0 -99
- package/esm2022/lib/auth/services/identity-group.service.mjs +0 -269
- package/esm2022/lib/auth/services/identity-role.service.mjs +0 -99
- package/esm2022/lib/auth/services/identity-user.service.mjs +0 -443
- package/esm2022/lib/auth/services/jwt-helper.service.mjs +0 -205
- package/esm2022/lib/auth/services/oauth2.service.mjs +0 -69
- package/esm2022/lib/auth/services/time-sync.service.mjs +0 -83
- package/esm2022/lib/auth/services/user-access.service.mjs +0 -110
- package/esm2022/lib/avatar/avatar.component.mjs +0 -51
- package/esm2022/lib/blank-page/blank-page.component.mjs +0 -31
- package/esm2022/lib/blank-page/blank-page.module.mjs +0 -33
- package/esm2022/lib/blank-page/index.mjs +0 -18
- package/esm2022/lib/blank-page/public-api.mjs +0 -19
- package/esm2022/lib/button/button.component.mjs +0 -61
- package/esm2022/lib/card-view/card-view.module.mjs +0 -80
- package/esm2022/lib/card-view/components/base-card-view.mjs +0 -51
- package/esm2022/lib/card-view/components/card-view/card-view.component.mjs +0 -66
- package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +0 -56
- package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +0 -40
- package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +0 -177
- package/esm2022/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +0 -108
- package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +0 -65
- package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +0 -47
- package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +0 -138
- package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +0 -114
- package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +0 -240
- package/esm2022/lib/card-view/components/card-view.components.mjs +0 -28
- package/esm2022/lib/card-view/index.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/base-card-view-update.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-arrayitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-boolitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-dateitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item-validator.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-item.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-keyvaluepairsitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-selectitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-textitem-pipe-property.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view-textitem-properties.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/card-view.interfaces.mjs +0 -29
- package/esm2022/lib/card-view/interfaces/click-notification.interface.mjs +0 -18
- package/esm2022/lib/card-view/interfaces/update-notification.interface.mjs +0 -18
- package/esm2022/lib/card-view/models/card-view-arrayitem.model.mjs +0 -28
- package/esm2022/lib/card-view/models/card-view-baseitem.model.mjs +0 -64
- package/esm2022/lib/card-view/models/card-view-boolitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-dateitem.model.mjs +0 -58
- package/esm2022/lib/card-view/models/card-view-datetimeitem.model.mjs +0 -28
- package/esm2022/lib/card-view/models/card-view-floatitem.model.mjs +0 -33
- package/esm2022/lib/card-view/models/card-view-intitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-keyvaluepairs.model.mjs +0 -27
- package/esm2022/lib/card-view/models/card-view-longitem.model.mjs +0 -36
- package/esm2022/lib/card-view/models/card-view-mapitem.model.mjs +0 -32
- package/esm2022/lib/card-view/models/card-view-selectitem.model.mjs +0 -41
- package/esm2022/lib/card-view/models/card-view-textitem.model.mjs +0 -40
- package/esm2022/lib/card-view/models/card-view.models.mjs +0 -29
- package/esm2022/lib/card-view/public-api.mjs +0 -25
- package/esm2022/lib/card-view/services/card-item-types.service.mjs +0 -54
- package/esm2022/lib/card-view/services/card-view-update.service.mjs +0 -59
- package/esm2022/lib/card-view/services/card-view.services.mjs +0 -19
- package/esm2022/lib/card-view/validators/card-view-item-float.validator.mjs +0 -31
- package/esm2022/lib/card-view/validators/card-view-item-int.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-length.validator.mjs +0 -34
- package/esm2022/lib/card-view/validators/card-view-item-long.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-match.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-minmax.validator.mjs +0 -35
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-int.validator.mjs +0 -32
- package/esm2022/lib/card-view/validators/card-view-item-only-positive-long.validator.mjs +0 -31
- package/esm2022/lib/card-view/validators/card-view.validators.mjs +0 -26
- package/esm2022/lib/card-view/validators/validators.map.mjs +0 -26
- package/esm2022/lib/clipboard/clipboard.directive.mjs +0 -99
- package/esm2022/lib/clipboard/clipboard.module.mjs +0 -34
- package/esm2022/lib/clipboard/clipboard.service.mjs +0 -103
- package/esm2022/lib/clipboard/index.mjs +0 -18
- package/esm2022/lib/clipboard/public-api.mjs +0 -21
- package/esm2022/lib/comments/comment-list/comment-list.component.mjs +0 -53
- package/esm2022/lib/comments/comment-list/comment-list.module.mjs +0 -33
- package/esm2022/lib/comments/comment-list/index.mjs +0 -18
- package/esm2022/lib/comments/comment-list/public-api.mjs +0 -19
- package/esm2022/lib/comments/comments.component.mjs +0 -128
- package/esm2022/lib/comments/comments.module.mjs +0 -33
- package/esm2022/lib/comments/index.mjs +0 -18
- package/esm2022/lib/comments/interfaces/comments-service.interface.mjs +0 -18
- package/esm2022/lib/comments/interfaces/comments.token.mjs +0 -19
- package/esm2022/lib/comments/public-api.mjs +0 -22
- package/esm2022/lib/common/index.mjs +0 -35
- package/esm2022/lib/common/interface/search-component.interface.mjs +0 -18
- package/esm2022/lib/common/mock/app-config.service.mock.mjs +0 -47
- package/esm2022/lib/common/models/default-languages.model.mjs +0 -36
- package/esm2022/lib/common/models/log-levels.model.mjs +0 -33
- package/esm2022/lib/common/models/user-info-mode.enum.mjs +0 -25
- package/esm2022/lib/common/services/cookie.service.mjs +0 -82
- package/esm2022/lib/common/services/download.service.mjs +0 -102
- package/esm2022/lib/common/services/dynamic-component-mapper.service.mjs +0 -89
- package/esm2022/lib/common/services/highlight-transform.service.mjs +0 -61
- package/esm2022/lib/common/services/language-item.interface.mjs +0 -18
- package/esm2022/lib/common/services/log.service.mjs +0 -171
- package/esm2022/lib/common/services/page-title.service.mjs +0 -63
- package/esm2022/lib/common/services/sort-by-category.service.mjs +0 -81
- package/esm2022/lib/common/services/storage.service.mjs +0 -143
- package/esm2022/lib/common/services/thumbnail.service.mjs +0 -194
- package/esm2022/lib/common/services/url.service.mjs +0 -45
- package/esm2022/lib/common/services/user-preferences.service.mjs +0 -238
- package/esm2022/lib/common/utils/date-fns-adapter.mjs +0 -115
- package/esm2022/lib/common/utils/date-fns-utils.mjs +0 -222
- package/esm2022/lib/common/utils/datetime-fns-adapter.mjs +0 -134
- package/esm2022/lib/common/utils/file-utils.mjs +0 -65
- package/esm2022/lib/common/utils/index.mjs +0 -18
- package/esm2022/lib/common/utils/moment-date-adapter.mjs +0 -202
- package/esm2022/lib/common/utils/moment-date-formats.model.mjs +0 -32
- package/esm2022/lib/common/utils/object-utils.mjs +0 -107
- package/esm2022/lib/common/utils/public-api.mjs +0 -25
- package/esm2022/lib/common/utils/string-utils.mjs +0 -45
- package/esm2022/lib/context-menu/animations.mjs +0 -33
- package/esm2022/lib/context-menu/context-menu-list.component.mjs +0 -92
- package/esm2022/lib/context-menu/context-menu-overlay.mjs +0 -25
- package/esm2022/lib/context-menu/context-menu-overlay.service.mjs +0 -109
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -63
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -35
- package/esm2022/lib/context-menu/context-menu.tokens.mjs +0 -19
- package/esm2022/lib/context-menu/index.mjs +0 -18
- package/esm2022/lib/context-menu/interfaces.mjs +0 -18
- package/esm2022/lib/context-menu/public-api.mjs +0 -21
- package/esm2022/lib/core.module.mjs +0 -314
- package/esm2022/lib/datatable/components/amount-cell/amount-cell.component.mjs +0 -45
- package/esm2022/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +0 -65
- package/esm2022/lib/datatable/components/columns-selector/columns-search-filter.pipe.mjs +0 -55
- package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +0 -114
- package/esm2022/lib/datatable/components/data-cell.event.mjs +0 -31
- package/esm2022/lib/datatable/components/data-row-action.event.mjs +0 -34
- package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +0 -915
- package/esm2022/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +0 -126
- package/esm2022/lib/datatable/components/datatable-row/datatable-row.component.mjs +0 -98
- package/esm2022/lib/datatable/components/date-cell/date-cell.component.mjs +0 -78
- package/esm2022/lib/datatable/components/empty-list/empty-list.component.mjs +0 -60
- package/esm2022/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +0 -49
- package/esm2022/lib/datatable/components/icon-cell/icon-cell.component.mjs +0 -67
- package/esm2022/lib/datatable/components/json-cell/json-cell.component.mjs +0 -86
- package/esm2022/lib/datatable/components/location-cell/location-cell.component.mjs +0 -69
- package/esm2022/lib/datatable/components/mocks/datatable.mock.mjs +0 -153
- package/esm2022/lib/datatable/components/number-cell/number-cell.component.mjs +0 -42
- package/esm2022/lib/datatable/data/data-column.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-row-event.model.mjs +0 -26
- package/esm2022/lib/datatable/data/data-row-update.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-row.model.mjs +0 -18
- package/esm2022/lib/datatable/data/data-sorting.model.mjs +0 -24
- package/esm2022/lib/datatable/data/data-table.schema.mjs +0 -132
- package/esm2022/lib/datatable/data/datatable-adapter.mjs +0 -18
- package/esm2022/lib/datatable/data/object-datacolumn.model.mjs +0 -46
- package/esm2022/lib/datatable/data/object-datarow.model.mjs +0 -38
- package/esm2022/lib/datatable/data/object-datatable-adapter.mjs +0 -134
- package/esm2022/lib/datatable/data-column/data-column-header.component.mjs +0 -45
- package/esm2022/lib/datatable/data-column/data-column-list.component.mjs +0 -36
- package/esm2022/lib/datatable/data-column/data-column.component.mjs +0 -114
- package/esm2022/lib/datatable/data-column/index.mjs +0 -18
- package/esm2022/lib/datatable/data-column/public-api.mjs +0 -20
- package/esm2022/lib/datatable/datatable.module.mjs +0 -161
- package/esm2022/lib/datatable/directives/custom-empty-content-template.directive.mjs +0 -35
- package/esm2022/lib/datatable/directives/custom-loading-template.directive.mjs +0 -30
- package/esm2022/lib/datatable/directives/custom-no-permission-template.directive.mjs +0 -35
- package/esm2022/lib/datatable/directives/drop-zone.directive.mjs +0 -89
- package/esm2022/lib/datatable/directives/header-filter-template.directive.mjs +0 -43
- package/esm2022/lib/datatable/directives/loading-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/main-data-table-action-template.directive.mjs +0 -43
- package/esm2022/lib/datatable/directives/no-content-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/no-permission-template.directive.mjs +0 -46
- package/esm2022/lib/datatable/directives/resizable/resizable.directive.mjs +0 -173
- package/esm2022/lib/datatable/directives/resizable/resize-handle.directive.mjs +0 -72
- package/esm2022/lib/datatable/directives/resizable/types.mjs +0 -18
- package/esm2022/lib/datatable/index.mjs +0 -18
- package/esm2022/lib/datatable/public-api.mjs +0 -55
- package/esm2022/lib/datatable/services/datatable.service.mjs +0 -33
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.mjs +0 -50
- package/esm2022/lib/dialogs/confirm-dialog/confirm.dialog.module.mjs +0 -38
- package/esm2022/lib/dialogs/dialog/dialog-data.interface.mjs +0 -18
- package/esm2022/lib/dialogs/dialog/dialog.component.mjs +0 -71
- package/esm2022/lib/dialogs/dialog/dialog.model.mjs +0 -22
- package/esm2022/lib/dialogs/dialog/index.mjs +0 -20
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +0 -51
- package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +0 -38
- package/esm2022/lib/dialogs/index.mjs +0 -18
- package/esm2022/lib/dialogs/public-api.mjs +0 -25
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +0 -74
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.model.mjs +0 -18
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +0 -33
- package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes.guard.mjs +0 -64
- package/esm2022/lib/directives/directive.module.mjs +0 -56
- package/esm2022/lib/directives/highlight.directive.mjs +0 -67
- package/esm2022/lib/directives/index.mjs +0 -18
- package/esm2022/lib/directives/infinite-select-scroll.directive.mjs +0 -67
- package/esm2022/lib/directives/logout.directive.mjs +0 -72
- package/esm2022/lib/directives/public-api.mjs +0 -24
- package/esm2022/lib/directives/tooltip-card/tooltip-card.component.mjs +0 -60
- package/esm2022/lib/directives/tooltip-card/tooltip-card.directive.mjs +0 -104
- package/esm2022/lib/directives/upload.directive.mjs +0 -241
- package/esm2022/lib/dynamic-chip-list/chip.mjs +0 -18
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +0 -205
- package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +0 -33
- package/esm2022/lib/dynamic-chip-list/index.mjs +0 -18
- package/esm2022/lib/dynamic-chip-list/public-api.mjs +0 -20
- package/esm2022/lib/events/base-ui.event.mjs +0 -21
- package/esm2022/lib/events/base.event.mjs +0 -29
- package/esm2022/lib/events/index.mjs +0 -18
- package/esm2022/lib/events/public-api.mjs +0 -19
- package/esm2022/lib/form/components/form-base.component.mjs +0 -230
- package/esm2022/lib/form/components/form-custom-button.directive.mjs +0 -30
- package/esm2022/lib/form/components/form-field/form-field.component.mjs +0 -145
- package/esm2022/lib/form/components/form-renderer.component.mjs +0 -168
- package/esm2022/lib/form/components/form-section/form-section.component.mjs +0 -46
- package/esm2022/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +0 -37
- package/esm2022/lib/form/components/middlewares/decimal-middleware.service.mjs +0 -48
- package/esm2022/lib/form/components/middlewares/middleware.mjs +0 -19
- package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +0 -78
- package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +0 -60
- package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +0 -53
- package/esm2022/lib/form/components/widgets/core/container-column.model.mjs +0 -28
- package/esm2022/lib/form/components/widgets/core/container.model.mjs +0 -50
- package/esm2022/lib/form/components/widgets/core/content-link.model.mjs +0 -52
- package/esm2022/lib/form/components/widgets/core/displayable-cm-properties.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/error-message.model.mjs +0 -38
- package/esm2022/lib/form/components/widgets/core/external-content-link.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/external-content.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-file-source.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-metadata.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-option.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-rule.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-selected-folder.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-templates.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field-types.mjs +0 -74
- package/esm2022/lib/form/components/widgets/core/form-field-utils.mjs +0 -23
- package/esm2022/lib/form/components/widgets/core/form-field-validator.mjs +0 -268
- package/esm2022/lib/form/components/widgets/core/form-field-variable-options.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-field.model.mjs +0 -482
- package/esm2022/lib/form/components/widgets/core/form-outcome-event.model.mjs +0 -32
- package/esm2022/lib/form/components/widgets/core/form-outcome.model.mjs +0 -38
- package/esm2022/lib/form/components/widgets/core/form-values.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-variable.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/form-widget.model.mjs +0 -33
- package/esm2022/lib/form/components/widgets/core/form.model.mjs +0 -384
- package/esm2022/lib/form/components/widgets/core/group.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/index.mjs +0 -49
- package/esm2022/lib/form/components/widgets/core/predefined-theme.mjs +0 -115
- package/esm2022/lib/form/components/widgets/core/process-form-model.interface.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/process-variable.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/tab.model.mjs +0 -34
- package/esm2022/lib/form/components/widgets/core/theme.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/core/upload-widget-content-link.model.mjs +0 -27
- package/esm2022/lib/form/components/widgets/core/widget-schema.model.mjs +0 -18
- package/esm2022/lib/form/components/widgets/date/date.widget.mjs +0 -163
- package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +0 -154
- package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +0 -54
- package/esm2022/lib/form/components/widgets/display-text/display-text.schema.mjs +0 -86
- package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +0 -47
- package/esm2022/lib/form/components/widgets/display-text/index.mjs +0 -19
- package/esm2022/lib/form/components/widgets/error/error.component.mjs +0 -93
- package/esm2022/lib/form/components/widgets/header/header.schema.mjs +0 -86
- package/esm2022/lib/form/components/widgets/header/header.widget.mjs +0 -43
- package/esm2022/lib/form/components/widgets/header/index.mjs +0 -19
- package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +0 -71
- package/esm2022/lib/form/components/widgets/index.mjs +0 -71
- package/esm2022/lib/form/components/widgets/json/json.widget.mjs +0 -67
- package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +0 -56
- package/esm2022/lib/form/components/widgets/number/number.widget.mjs +0 -66
- package/esm2022/lib/form/components/widgets/reactive-widget.interface.mjs +0 -18
- package/esm2022/lib/form/components/widgets/text/text-mask.component.mjs +0 -215
- package/esm2022/lib/form/components/widgets/text/text.widget.mjs +0 -66
- package/esm2022/lib/form/components/widgets/unknown/unknown.widget.mjs +0 -63
- package/esm2022/lib/form/components/widgets/widget.component.mjs +0 -110
- package/esm2022/lib/form/events/form-error.event.mjs +0 -24
- package/esm2022/lib/form/events/form-field.event.mjs +0 -24
- package/esm2022/lib/form/events/form-rules.event.mjs +0 -25
- package/esm2022/lib/form/events/form-spinner.event.mjs +0 -23
- package/esm2022/lib/form/events/form.event.mjs +0 -29
- package/esm2022/lib/form/events/index.mjs +0 -24
- package/esm2022/lib/form/events/validate-form-field.event.mjs +0 -24
- package/esm2022/lib/form/events/validate-form.event.mjs +0 -25
- package/esm2022/lib/form/form-base.module.mjs +0 -90
- package/esm2022/lib/form/index.mjs +0 -18
- package/esm2022/lib/form/models/form-rules.model.mjs +0 -77
- package/esm2022/lib/form/models/task-process-variable.model.mjs +0 -19
- package/esm2022/lib/form/models/widget-visibility.model.mjs +0 -104
- package/esm2022/lib/form/pipes/field-style.pipe.mjs +0 -45
- package/esm2022/lib/form/pipes/index.mjs +0 -18
- package/esm2022/lib/form/public-api.mjs +0 -34
- package/esm2022/lib/form/services/form-rendering.service.mjs +0 -53
- package/esm2022/lib/form/services/form-validation-service.interface.mjs +0 -18
- package/esm2022/lib/form/services/form.service.mjs +0 -86
- package/esm2022/lib/form/services/widget-visibility.service.mjs +0 -294
- package/esm2022/lib/header/header.component.mjs +0 -73
- package/esm2022/lib/header/index.mjs +0 -18
- package/esm2022/lib/header/navbar/navbar-item.component.mjs +0 -37
- package/esm2022/lib/header/navbar/navbar.component.mjs +0 -36
- package/esm2022/lib/header/public-api.mjs +0 -20
- package/esm2022/lib/icon/icon.component.mjs +0 -51
- package/esm2022/lib/icon/icon.module.mjs +0 -36
- package/esm2022/lib/icon/index.mjs +0 -18
- package/esm2022/lib/icon/public-api.mjs +0 -19
- package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +0 -87
- package/esm2022/lib/identity-user-info/identity-user-info.module.mjs +0 -33
- package/esm2022/lib/identity-user-info/index.mjs +0 -18
- package/esm2022/lib/identity-user-info/public-api.mjs +0 -19
- package/esm2022/lib/info-drawer/index.mjs +0 -18
- package/esm2022/lib/info-drawer/info-drawer-layout.component.mjs +0 -71
- package/esm2022/lib/info-drawer/info-drawer.component.mjs +0 -114
- package/esm2022/lib/info-drawer/info-drawer.module.mjs +0 -53
- package/esm2022/lib/info-drawer/public-api.mjs +0 -20
- package/esm2022/lib/interface/index.mjs +0 -18
- package/esm2022/lib/interface/injection.tokens.mjs +0 -19
- package/esm2022/lib/interface/public-api.mjs +0 -18
- package/esm2022/lib/language-menu/index.mjs +0 -18
- package/esm2022/lib/language-menu/language-menu.component.mjs +0 -61
- package/esm2022/lib/language-menu/language-menu.module.mjs +0 -35
- package/esm2022/lib/language-menu/language-picker.component.mjs +0 -78
- package/esm2022/lib/language-menu/public-api.mjs +0 -21
- package/esm2022/lib/language-menu/service/language.service.interface.mjs +0 -18
- package/esm2022/lib/language-menu/service/language.service.mjs +0 -34
- package/esm2022/lib/layout/components/header/header.component.mjs +0 -100
- package/esm2022/lib/layout/components/layout-container/layout-container.component.mjs +0 -180
- package/esm2022/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +0 -82
- package/esm2022/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +0 -145
- package/esm2022/lib/layout/directives/sidenav-layout-content.directive.mjs +0 -33
- package/esm2022/lib/layout/directives/sidenav-layout-header.directive.mjs +0 -33
- package/esm2022/lib/layout/directives/sidenav-layout-navigation.directive.mjs +0 -33
- package/esm2022/lib/layout/index.mjs +0 -18
- package/esm2022/lib/layout/layout.module.mjs +0 -72
- package/esm2022/lib/layout/public-api.mjs +0 -25
- package/esm2022/lib/login/components/login/login.component.mjs +0 -368
- package/esm2022/lib/login/components/login-dialog/login-dialog-component-data.interface.mjs +0 -18
- package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +0 -58
- package/esm2022/lib/login/components/login-dialog-panel/login-dialog-panel.component.mjs +0 -48
- package/esm2022/lib/login/directives/login-footer.directive.mjs +0 -41
- package/esm2022/lib/login/directives/login-header.directive.mjs +0 -41
- package/esm2022/lib/login/index.mjs +0 -18
- package/esm2022/lib/login/login.module.mjs +0 -54
- package/esm2022/lib/login/models/login-error.event.mjs +0 -22
- package/esm2022/lib/login/models/login-submit.event.mjs +0 -32
- package/esm2022/lib/login/models/login-success.event.mjs +0 -24
- package/esm2022/lib/login/public-api.mjs +0 -27
- package/esm2022/lib/material.module.mjs +0 -254
- package/esm2022/lib/mock/cookie.service.mock.mjs +0 -43
- package/esm2022/lib/mock/data-column.mock.mjs +0 -73
- package/esm2022/lib/mock/event.mock.mjs +0 -39
- package/esm2022/lib/mock/form/form-definition-readonly.mock.mjs +0 -225
- package/esm2022/lib/mock/form/form-definition-visibility.mock.mjs +0 -347
- package/esm2022/lib/mock/form/form-definition.mock.mjs +0 -403
- package/esm2022/lib/mock/form/form.component.mock.mjs +0 -275
- package/esm2022/lib/mock/form/form.service.mock.mjs +0 -248
- package/esm2022/lib/mock/form/widget-visibility.service.mock.mjs +0 -1835
- package/esm2022/lib/mock/index.mjs +0 -18
- package/esm2022/lib/mock/public-api.mjs +0 -27
- package/esm2022/lib/mock/translation.service.mock.mjs +0 -44
- package/esm2022/lib/models/comment.model.mjs +0 -51
- package/esm2022/lib/models/component.model.mjs +0 -24
- package/esm2022/lib/models/decimal-number.model.mjs +0 -26
- package/esm2022/lib/models/general-user.model.mjs +0 -24
- package/esm2022/lib/models/index.mjs +0 -18
- package/esm2022/lib/models/pagination.model.mjs +0 -29
- package/esm2022/lib/models/path.model.mjs +0 -24
- package/esm2022/lib/models/product-version.model.mjs +0 -28
- package/esm2022/lib/models/public-api.mjs +0 -24
- package/esm2022/lib/models/request-pagination.model.mjs +0 -25
- package/esm2022/lib/notifications/components/add-notification.stories.component.mjs +0 -44
- package/esm2022/lib/notifications/components/notification-history.component.mjs +0 -139
- package/esm2022/lib/notifications/helpers/notification.factory.mjs +0 -43
- package/esm2022/lib/notifications/index.mjs +0 -18
- package/esm2022/lib/notifications/models/notification.model.mjs +0 -25
- package/esm2022/lib/notifications/notification-history.module.mjs +0 -35
- package/esm2022/lib/notifications/public-api.mjs +0 -23
- package/esm2022/lib/notifications/services/notification.service.mjs +0 -166
- package/esm2022/lib/pagination/index.mjs +0 -18
- package/esm2022/lib/pagination/infinite-pagination.component.mjs +0 -112
- package/esm2022/lib/pagination/paginated-component.interface.mjs +0 -18
- package/esm2022/lib/pagination/pagination-component.interface.mjs +0 -18
- package/esm2022/lib/pagination/pagination.component.mjs +0 -263
- package/esm2022/lib/pagination/pagination.module.mjs +0 -35
- package/esm2022/lib/pagination/public-api.mjs +0 -22
- package/esm2022/lib/pipes/date-time.pipe.mjs +0 -46
- package/esm2022/lib/pipes/decimal-number.pipe.mjs +0 -78
- package/esm2022/lib/pipes/file-size.pipe.mjs +0 -54
- package/esm2022/lib/pipes/file-type.pipe.mjs +0 -40
- package/esm2022/lib/pipes/format-space.pipe.mjs +0 -39
- package/esm2022/lib/pipes/full-name.pipe.mjs +0 -43
- package/esm2022/lib/pipes/index.mjs +0 -18
- package/esm2022/lib/pipes/localized-date.pipe.mjs +0 -70
- package/esm2022/lib/pipes/multi-value.pipe.mjs +0 -37
- package/esm2022/lib/pipes/pipe.module.mjs +0 -83
- package/esm2022/lib/pipes/public-api.mjs +0 -30
- package/esm2022/lib/pipes/text-highlight.pipe.mjs +0 -39
- package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -65
- package/esm2022/lib/pipes/truncate.pipe.mjs +0 -33
- package/esm2022/lib/pipes/user-initial.pipe.mjs +0 -52
- package/esm2022/lib/pipes/user-like.interface.mjs +0 -18
- package/esm2022/lib/progress/progress.component.mjs +0 -90
- package/esm2022/lib/search-text/animations.mjs +0 -32
- package/esm2022/lib/search-text/index.mjs +0 -18
- package/esm2022/lib/search-text/models/search-text-input.model.mjs +0 -23
- package/esm2022/lib/search-text/public-api.mjs +0 -22
- package/esm2022/lib/search-text/search-text-input.component.mjs +0 -294
- package/esm2022/lib/search-text/search-text-input.module.mjs +0 -35
- package/esm2022/lib/search-text/search-trigger.directive.mjs +0 -181
- package/esm2022/lib/snackbar-content/index.mjs +0 -18
- package/esm2022/lib/snackbar-content/public-api.mjs +0 -20
- package/esm2022/lib/snackbar-content/snack-bar-data.mjs +0 -18
- package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +0 -48
- package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +0 -38
- package/esm2022/lib/sorting-picker/index.mjs +0 -18
- package/esm2022/lib/sorting-picker/public-api.mjs +0 -18
- package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +0 -68
- package/esm2022/lib/templates/empty-content/empty-content.component.mjs +0 -44
- package/esm2022/lib/templates/error-content/error-content.component.mjs +0 -62
- package/esm2022/lib/templates/index.mjs +0 -18
- package/esm2022/lib/templates/public-api.mjs +0 -20
- package/esm2022/lib/templates/template.module.mjs +0 -38
- package/esm2022/lib/testing/core.story.module.mjs +0 -39
- package/esm2022/lib/testing/core.testing.module.mjs +0 -35
- package/esm2022/lib/testing/index.mjs +0 -22
- package/esm2022/lib/testing/noop-auth.module.mjs +0 -80
- package/esm2022/lib/testing/noop-translate.module.mjs +0 -61
- package/esm2022/lib/testing/unit-testing-utils.mjs +0 -364
- package/esm2022/lib/toolbar/index.mjs +0 -18
- package/esm2022/lib/toolbar/public-api.mjs +0 -21
- package/esm2022/lib/toolbar/toolbar-divider.component.mjs +0 -27
- package/esm2022/lib/toolbar/toolbar-title.component.mjs +0 -32
- package/esm2022/lib/toolbar/toolbar.component.mjs +0 -40
- package/esm2022/lib/toolbar/toolbar.module.mjs +0 -36
- package/esm2022/lib/translation/index.mjs +0 -18
- package/esm2022/lib/translation/public-api.mjs +0 -19
- package/esm2022/lib/translation/translate-loader.service.mjs +0 -148
- package/esm2022/lib/translation/translation.service.mjs +0 -148
- package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +0 -37
- package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +0 -221
- package/esm2022/lib/viewer/components/media-player/media-player.component.mjs +0 -64
- package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +0 -549
- package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +0 -61
- package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +0 -49
- package/esm2022/lib/viewer/components/pdf-viewer-thumbnails/pdf-viewer-thumbnails.component.mjs +0 -198
- package/esm2022/lib/viewer/components/txt-viewer/txt-viewer.component.mjs +0 -77
- package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +0 -33
- package/esm2022/lib/viewer/components/viewer-more-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-open-with.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +0 -211
- package/esm2022/lib/viewer/components/viewer-sidebar.component.mjs +0 -46
- package/esm2022/lib/viewer/components/viewer-toolbar-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-toolbar-custom-actions.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer-toolbar.component.mjs +0 -34
- package/esm2022/lib/viewer/components/viewer.component.mjs +0 -462
- package/esm2022/lib/viewer/directives/viewer-extension.directive.mjs +0 -67
- package/esm2022/lib/viewer/index.mjs +0 -18
- package/esm2022/lib/viewer/models/download-prompt.actions.mjs +0 -23
- package/esm2022/lib/viewer/models/viewer.model.mjs +0 -22
- package/esm2022/lib/viewer/public-api.mjs +0 -40
- package/esm2022/lib/viewer/services/rendering-queue.services.mjs +0 -179
- package/esm2022/lib/viewer/services/view-util.service.mjs +0 -149
- package/esm2022/lib/viewer/viewer.module.mjs +0 -112
- package/esm2022/public-api.mjs +0 -60
- package/esm2022/shell/alfresco-adf-core-shell.mjs +0 -5
- package/esm2022/shell/index.mjs +0 -20
- package/esm2022/shell/lib/components/shell/shell.component.mjs +0 -122
- package/esm2022/shell/lib/services/shell-app.service.mjs +0 -22
- package/esm2022/shell/lib/shell.module.mjs +0 -79
- package/esm2022/shell/lib/shell.routes.mjs +0 -25
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
18
|
-
import { FormModel, FormOutcomeModel } from './widgets';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
21
|
-
export class FormBaseComponent {
|
|
22
|
-
constructor() {
|
|
23
|
-
/** Toggle rendering of the form title. */
|
|
24
|
-
this.showTitle = true;
|
|
25
|
-
/** Toggle rendering of the `Complete` outcome button. */
|
|
26
|
-
this.showCompleteButton = true;
|
|
27
|
-
/** If true then the `Complete` outcome button is shown but it will be disabled. */
|
|
28
|
-
this.disableCompleteButton = false;
|
|
29
|
-
/** If true then the `Save` outcome button is shown but will be disabled. */
|
|
30
|
-
this.disableSaveButton = false;
|
|
31
|
-
/** If true then the `Start Process` outcome button is shown but it will be disabled. */
|
|
32
|
-
this.disableStartProcessButton = false;
|
|
33
|
-
/** Toggle rendering of the `Save` outcome button. */
|
|
34
|
-
this.showSaveButton = true;
|
|
35
|
-
/** Toggle readonly state of the form. Forces all form widgets to render as readonly if enabled. */
|
|
36
|
-
this.readOnly = false;
|
|
37
|
-
/** Toggle rendering of the `Refresh` button. */
|
|
38
|
-
this.showRefreshButton = true;
|
|
39
|
-
/** Toggle rendering of the validation icon next to the form title. */
|
|
40
|
-
this.showValidationIcon = true;
|
|
41
|
-
/** Emitted when the supplied form values have a validation error. */
|
|
42
|
-
this.formError = new EventEmitter();
|
|
43
|
-
/**
|
|
44
|
-
* Emitted when any outcome is executed. Default behaviour can be prevented
|
|
45
|
-
* via `event.preventDefault()`.
|
|
46
|
-
*/
|
|
47
|
-
this.executeOutcome = new EventEmitter();
|
|
48
|
-
/**
|
|
49
|
-
* Emitted when any error occurs.
|
|
50
|
-
*/
|
|
51
|
-
this.error = new EventEmitter();
|
|
52
|
-
/**
|
|
53
|
-
* Custom style that is backed by the form.theme.
|
|
54
|
-
*/
|
|
55
|
-
this.formStyle = '';
|
|
56
|
-
}
|
|
57
|
-
static { this.SAVE_OUTCOME_ID = '$save'; }
|
|
58
|
-
static { this.COMPLETE_OUTCOME_ID = '$complete'; }
|
|
59
|
-
static { this.START_PROCESS_OUTCOME_ID = '$startProcess'; }
|
|
60
|
-
static { this.CUSTOM_OUTCOME_ID = '$custom'; }
|
|
61
|
-
static { this.COMPLETE_BUTTON_COLOR = 'primary'; }
|
|
62
|
-
static { this.COMPLETE_OUTCOME_NAME = 'COMPLETE'; }
|
|
63
|
-
get hasVisibleOutcomes() {
|
|
64
|
-
return this.form?.outcomes?.some((outcome) => this.isOutcomeButtonVisible(outcome, this.form.readOnly));
|
|
65
|
-
}
|
|
66
|
-
get form() {
|
|
67
|
-
return this._form;
|
|
68
|
-
}
|
|
69
|
-
/** Underlying form model instance. */
|
|
70
|
-
set form(form) {
|
|
71
|
-
console.log('FormBaseComponent: form input set', form);
|
|
72
|
-
this._form = form;
|
|
73
|
-
if (form) {
|
|
74
|
-
const theme = form.theme?.form;
|
|
75
|
-
this.formStyle = theme ? this.flattenStyles(theme) : '';
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.formStyle = '';
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
getParsedFormDefinition() {
|
|
82
|
-
return this;
|
|
83
|
-
}
|
|
84
|
-
hasForm() {
|
|
85
|
-
return !!this.form;
|
|
86
|
-
}
|
|
87
|
-
isTitleEnabled() {
|
|
88
|
-
let titleEnabled = false;
|
|
89
|
-
if (this.showTitle && this.form) {
|
|
90
|
-
titleEnabled = true;
|
|
91
|
-
}
|
|
92
|
-
return titleEnabled;
|
|
93
|
-
}
|
|
94
|
-
getColorForOutcome(outcomeName) {
|
|
95
|
-
return outcomeName === FormBaseComponent.COMPLETE_OUTCOME_NAME ? FormBaseComponent.COMPLETE_BUTTON_COLOR : null;
|
|
96
|
-
}
|
|
97
|
-
isOutcomeButtonEnabled(outcome) {
|
|
98
|
-
if (this.form.readOnly) {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
if (outcome) {
|
|
102
|
-
if (outcome.skipValidation) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
if (outcome.name === FormOutcomeModel.SAVE_ACTION) {
|
|
106
|
-
return !this.disableSaveButton;
|
|
107
|
-
}
|
|
108
|
-
if (outcome.name === FormOutcomeModel.COMPLETE_ACTION) {
|
|
109
|
-
return this.disableCompleteButton ? false : this.form.isValid;
|
|
110
|
-
}
|
|
111
|
-
if (outcome.name === FormOutcomeModel.START_PROCESS_ACTION) {
|
|
112
|
-
return this.disableStartProcessButton ? false : this.form.isValid;
|
|
113
|
-
}
|
|
114
|
-
return this.form.isValid;
|
|
115
|
-
}
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
isOutcomeButtonVisible(outcome, isFormReadOnly) {
|
|
119
|
-
if (outcome?.name) {
|
|
120
|
-
if (outcome.name === FormOutcomeModel.COMPLETE_ACTION) {
|
|
121
|
-
return this.showCompleteButton;
|
|
122
|
-
}
|
|
123
|
-
if (isFormReadOnly) {
|
|
124
|
-
return outcome.isSelected;
|
|
125
|
-
}
|
|
126
|
-
if (outcome.name === FormOutcomeModel.SAVE_ACTION) {
|
|
127
|
-
return this.showSaveButton;
|
|
128
|
-
}
|
|
129
|
-
if (outcome.name === FormOutcomeModel.START_PROCESS_ACTION) {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Invoked when user clicks outcome button.
|
|
138
|
-
*
|
|
139
|
-
* @param outcome Form outcome model
|
|
140
|
-
* @returns `true` if outcome button was clicked, otherwise `false`
|
|
141
|
-
*/
|
|
142
|
-
onOutcomeClicked(outcome) {
|
|
143
|
-
if (!this.readOnly && outcome && this.form) {
|
|
144
|
-
if (!this.onExecuteOutcome(outcome)) {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
if (outcome.isSystem) {
|
|
148
|
-
if (outcome.id === FormBaseComponent.SAVE_OUTCOME_ID) {
|
|
149
|
-
this.disableSaveButton = true;
|
|
150
|
-
this.saveTaskForm();
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
if (outcome.id === FormBaseComponent.COMPLETE_OUTCOME_ID) {
|
|
154
|
-
this.disableSaveButton = true;
|
|
155
|
-
this.disableCompleteButton = true;
|
|
156
|
-
this.completeTaskForm();
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
if (outcome.id === FormBaseComponent.START_PROCESS_OUTCOME_ID) {
|
|
160
|
-
this.completeTaskForm();
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
if (outcome.id === FormBaseComponent.CUSTOM_OUTCOME_ID) {
|
|
164
|
-
this.onTaskSaved(this.form);
|
|
165
|
-
this.storeFormAsMetadata();
|
|
166
|
-
return true;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
// Note: Activiti is using NAME field rather than ID for outcomes
|
|
171
|
-
if (outcome.name) {
|
|
172
|
-
this.completeTaskForm(outcome.name);
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
handleError(err) {
|
|
180
|
-
this.disableSaveButton = false;
|
|
181
|
-
this.disableCompleteButton = false;
|
|
182
|
-
this.error.emit(err);
|
|
183
|
-
}
|
|
184
|
-
flattenStyles(styles) {
|
|
185
|
-
return Object.entries(styles)
|
|
186
|
-
.map(([key, value]) => `${key}: ${value}`)
|
|
187
|
-
.join(';');
|
|
188
|
-
}
|
|
189
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
190
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FormBaseComponent, isStandalone: true, inputs: { path: "path", nameNode: "nameNode", showTitle: "showTitle", showCompleteButton: "showCompleteButton", disableCompleteButton: "disableCompleteButton", disableSaveButton: "disableSaveButton", disableStartProcessButton: "disableStartProcessButton", showSaveButton: "showSaveButton", readOnly: "readOnly", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", fieldValidators: "fieldValidators", form: "form" }, outputs: { formError: "formError", executeOutcome: "executeOutcome", error: "error" }, ngImport: i0 }); }
|
|
191
|
-
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormBaseComponent, decorators: [{
|
|
193
|
-
type: Directive,
|
|
194
|
-
args: [{
|
|
195
|
-
standalone: true
|
|
196
|
-
}]
|
|
197
|
-
}], propDecorators: { path: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], nameNode: [{
|
|
200
|
-
type: Input
|
|
201
|
-
}], showTitle: [{
|
|
202
|
-
type: Input
|
|
203
|
-
}], showCompleteButton: [{
|
|
204
|
-
type: Input
|
|
205
|
-
}], disableCompleteButton: [{
|
|
206
|
-
type: Input
|
|
207
|
-
}], disableSaveButton: [{
|
|
208
|
-
type: Input
|
|
209
|
-
}], disableStartProcessButton: [{
|
|
210
|
-
type: Input
|
|
211
|
-
}], showSaveButton: [{
|
|
212
|
-
type: Input
|
|
213
|
-
}], readOnly: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], showRefreshButton: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], showValidationIcon: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], fieldValidators: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], formError: [{
|
|
222
|
-
type: Output
|
|
223
|
-
}], executeOutcome: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}], error: [{
|
|
226
|
-
type: Output
|
|
227
|
-
}], form: [{
|
|
228
|
-
type: Input
|
|
229
|
-
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL2Zvcm0tYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQXNDLFNBQVMsRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBSzlHLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLGlCQUFpQjtJQUp2QztRQXNCSSwwQ0FBMEM7UUFFMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQix5REFBeUQ7UUFFekQsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBRW5DLG1GQUFtRjtRQUVuRiwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFFdkMsNEVBQTRFO1FBRTVFLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyx3RkFBd0Y7UUFFeEYsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBRTNDLHFEQUFxRDtRQUVyRCxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUUvQixtR0FBbUc7UUFFbkcsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnREFBZ0Q7UUFFaEQsc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBRWxDLHNFQUFzRTtRQUV0RSx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFNbkMscUVBQXFFO1FBRXJFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUVqRDs7O1dBR0c7UUFFSCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRXREOztXQUVHO1FBRUgsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxjQUFT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LElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBY08sYUFBYSxDQUFDLE1BQWlDO1FBQ25ELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO2FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDOytHQTNPaUIsaUJBQWlCO21HQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQWNHLElBQUk7c0JBREgsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsTUFBTTtnQkFRUCxjQUFjO3NCQURiLE1BQU07Z0JBT1AsS0FBSztzQkFESixNQUFNO2dCQWtCSCxJQUFJO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZE1vZGVsLCBGb3JtRmllbGRWYWxpZGF0b3IsIEZvcm1Nb2RlbCwgRm9ybU91dGNvbWVFdmVudCwgRm9ybU91dGNvbWVNb2RlbCB9IGZyb20gJy4vd2lkZ2V0cyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGb3JtQmFzZUNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIF9mb3JtOiBGb3JtTW9kZWw7XG5cbiAgICBzdGF0aWMgU0FWRV9PVVRDT01FX0lEOiBzdHJpbmcgPSAnJHNhdmUnO1xuICAgIHN0YXRpYyBDT01QTEVURV9PVVRDT01FX0lEOiBzdHJpbmcgPSAnJGNvbXBsZXRlJztcbiAgICBzdGF0aWMgU1RBUlRfUFJPQ0VTU19PVVRDT01FX0lEOiBzdHJpbmcgPSAnJHN0YXJ0UHJvY2Vzcyc7XG4gICAgc3RhdGljIENVU1RPTV9PVVRDT01FX0lEOiBzdHJpbmcgPSAnJGN1c3RvbSc7XG4gICAgc3RhdGljIENPTVBMRVRFX0JVVFRPTl9DT0xPUjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICAgIHN0YXRpYyBDT01QTEVURV9PVVRDT01FX05BTUU6IHN0cmluZyA9ICdDT01QTEVURSc7XG5cbiAgICAvKiogUGF0aCBvZiB0aGUgZm9sZGVyIHdoZXJlIHRoZSBtZXRhZGF0YSB3aWxsIGJlIHN0b3JlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBhdGg6IHN0cmluZztcblxuICAgIC8qKiBOYW1lIHRvIGFzc2lnbiB0byB0aGUgbmV3IG5vZGUgd2hlcmUgdGhlIG1ldGFkYXRhIGFyZSBzdG9yZWQuICovXG4gICAgQElucHV0KClcbiAgICBuYW1lTm9kZTogc3RyaW5nO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGZvcm0gdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGl0bGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBDb21wbGV0ZWAgb3V0Y29tZSBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q29tcGxldGVCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIElmIHRydWUgdGhlbiB0aGUgYENvbXBsZXRlYCBvdXRjb21lIGJ1dHRvbiBpcyBzaG93biBidXQgaXQgd2lsbCBiZSBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVDb21wbGV0ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIElmIHRydWUgdGhlbiB0aGUgYFNhdmVgIG91dGNvbWUgYnV0dG9uIGlzIHNob3duIGJ1dCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVNhdmVCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBJZiB0cnVlIHRoZW4gdGhlIGBTdGFydCBQcm9jZXNzYCBvdXRjb21lIGJ1dHRvbiBpcyBzaG93biBidXQgaXQgd2lsbCBiZSBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTdGFydFByb2Nlc3NCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgU2F2ZWAgb3V0Y29tZSBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93U2F2ZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlYWRvbmx5IHN0YXRlIG9mIHRoZSBmb3JtLiBGb3JjZXMgYWxsIGZvcm0gd2lkZ2V0cyB0byByZW5kZXIgYXMgcmVhZG9ubHkgaWYgZW5hYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYFJlZnJlc2hgIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dSZWZyZXNoQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSB2YWxpZGF0aW9uIGljb24gbmV4dCB0byB0aGUgZm9ybSB0aXRsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWYWxpZGF0aW9uSWNvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogQ29udGFpbnMgYSBsaXN0IG9mIGZvcm0gZmllbGQgdmFsaWRhdG9yIGluc3RhbmNlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkVmFsaWRhdG9yczogRm9ybUZpZWxkVmFsaWRhdG9yW107XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzdXBwbGllZCBmb3JtIHZhbHVlcyBoYXZlIGEgdmFsaWRhdGlvbiBlcnJvci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1GaWVsZE1vZGVsW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IG91dGNvbWUgaXMgZXhlY3V0ZWQuIERlZmF1bHQgYmVoYXZpb3VyIGNhbiBiZSBwcmV2ZW50ZWRcbiAgICAgKiB2aWEgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4ZWN1dGVPdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtT3V0Y29tZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGFueSBlcnJvciBvY2N1cnMuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBzdHlsZSB0aGF0IGlzIGJhY2tlZCBieSB0aGUgZm9ybS50aGVtZS5cbiAgICAgKi9cbiAgICBmb3JtU3R5bGU6IHN0cmluZyA9ICcnO1xuXG4gICAgZ2V0IGhhc1Zpc2libGVPdXRjb21lcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybT8ub3V0Y29tZXM/LnNvbWUoKG91dGNvbWUpID0+IHRoaXMuaXNPdXRjb21lQnV0dG9uVmlzaWJsZShvdXRjb21lLCB0aGlzLmZvcm0ucmVhZE9ubHkpKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybSgpOiBGb3JtTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICAvKiogVW5kZXJseWluZyBmb3JtIG1vZGVsIGluc3RhbmNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvcm0oZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdGb3JtQmFzZUNvbXBvbmVudDogZm9ybSBpbnB1dCBzZXQnLCBmb3JtKTtcbiAgICAgICAgdGhpcy5fZm9ybSA9IGZvcm07XG5cbiAgICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRoZW1lID0gZm9ybS50aGVtZT8uZm9ybTtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN0eWxlID0gdGhlbWUgPyB0aGlzLmZsYXR0ZW5TdHlsZXModGhlbWUpIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1TdHlsZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGFyc2VkRm9ybURlZmluaXRpb24oKTogRm9ybUJhc2VDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBoYXNGb3JtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZvcm07XG4gICAgfVxuXG4gICAgaXNUaXRsZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCB0aXRsZUVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpdGxlICYmIHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGl0bGVFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGl0bGVFbmFibGVkO1xuICAgIH1cblxuICAgIGdldENvbG9yRm9yT3V0Y29tZShvdXRjb21lTmFtZTogc3RyaW5nKTogVGhlbWVQYWxldHRlIHtcbiAgICAgICAgcmV0dXJuIG91dGNvbWVOYW1lID09PSBGb3JtQmFzZUNvbXBvbmVudC5DT01QTEVURV9PVVRDT01FX05BTUUgPyBGb3JtQmFzZUNvbXBvbmVudC5DT01QTEVURV9CVVRUT05fQ09MT1IgOiBudWxsO1xuICAgIH1cblxuICAgIGlzT3V0Y29tZUJ1dHRvbkVuYWJsZWQob3V0Y29tZT86IEZvcm1PdXRjb21lTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG91dGNvbWUpIHtcbiAgICAgICAgICAgIGlmIChvdXRjb21lLnNraXBWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3V0Y29tZS5uYW1lID09PSBGb3JtT3V0Y29tZU1vZGVsLlNBVkVfQUNUSU9OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLmRpc2FibGVTYXZlQnV0dG9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG91dGNvbWUubmFtZSA9PT0gRm9ybU91dGNvbWVNb2RlbC5DT01QTEVURV9BQ1RJT04pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlQ29tcGxldGVCdXR0b24gPyBmYWxzZSA6IHRoaXMuZm9ybS5pc1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG91dGNvbWUubmFtZSA9PT0gRm9ybU91dGNvbWVNb2RlbC5TVEFSVF9QUk9DRVNTX0FDVElPTikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVTdGFydFByb2Nlc3NCdXR0b24gPyBmYWxzZSA6IHRoaXMuZm9ybS5pc1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5pc1ZhbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzT3V0Y29tZUJ1dHRvblZpc2libGUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCwgaXNGb3JtUmVhZE9ubHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKG91dGNvbWU/Lm5hbWUpIHtcbiAgICAgICAgICAgIGlmIChvdXRjb21lLm5hbWUgPT09IEZvcm1PdXRjb21lTW9kZWwuQ09NUExFVEVfQUNUSU9OKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbXBsZXRlQnV0dG9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRm9ybVJlYWRPbmx5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dGNvbWUuaXNTZWxlY3RlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvdXRjb21lLm5hbWUgPT09IEZvcm1PdXRjb21lTW9kZWwuU0FWRV9BQ1RJT04pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93U2F2ZUJ1dHRvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvdXRjb21lLm5hbWUgPT09IEZvcm1PdXRjb21lTW9kZWwuU1RBUlRfUFJPQ0VTU19BQ1RJT04pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlZCB3aGVuIHVzZXIgY2xpY2tzIG91dGNvbWUgYnV0dG9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG91dGNvbWUgRm9ybSBvdXRjb21lIG1vZGVsXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIG91dGNvbWUgYnV0dG9uIHdhcyBjbGlja2VkLCBvdGhlcndpc2UgYGZhbHNlYFxuICAgICAqL1xuICAgIG9uT3V0Y29tZUNsaWNrZWQob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkgJiYgb3V0Y29tZSAmJiB0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5vbkV4ZWN1dGVPdXRjb21lKG91dGNvbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3V0Y29tZS5pc1N5c3RlbSkge1xuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lLmlkID09PSBGb3JtQmFzZUNvbXBvbmVudC5TQVZFX09VVENPTUVfSUQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZUJ1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVRhc2tGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lLmlkID09PSBGb3JtQmFzZUNvbXBvbmVudC5DT01QTEVURV9PVVRDT01FX0lEKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVDb21wbGV0ZUJ1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3V0Y29tZS5pZCA9PT0gRm9ybUJhc2VDb21wb25lbnQuU1RBUlRfUFJPQ0VTU19PVVRDT01FX0lEKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3V0Y29tZS5pZCA9PT0gRm9ybUJhc2VDb21wb25lbnQuQ1VTVE9NX09VVENPTUVfSUQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRhc2tTYXZlZCh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlRm9ybUFzTWV0YWRhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOb3RlOiBBY3Rpdml0aSBpcyB1c2luZyBOQU1FIGZpZWxkIHJhdGhlciB0aGFuIElEIGZvciBvdXRjb21lc1xuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZVRhc2tGb3JtKG91dGNvbWUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcihlcnI6IGFueSk6IGFueSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVNhdmVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlQ29tcGxldGVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XG4gICAgfVxuXG4gICAgYWJzdHJhY3Qgb25SZWZyZXNoQ2xpY2tlZCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3Qgc2F2ZVRhc2tGb3JtKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBjb21wbGV0ZVRhc2tGb3JtKG91dGNvbWU/OiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IG9uVGFza1NhdmVkKGZvcm06IEZvcm1Nb2RlbCk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3RvcmVGb3JtQXNNZXRhZGF0YSgpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IG9uRXhlY3V0ZU91dGNvbWUob3V0Y29tZTogRm9ybU91dGNvbWVNb2RlbCk6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIGZsYXR0ZW5TdHlsZXMoc3R5bGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHN0eWxlcylcbiAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fTogJHt2YWx1ZX1gKVxuICAgICAgICAgICAgLmpvaW4oJzsnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { Directive } from '@angular/core';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
export class StartFormCustomButtonDirective {
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartFormCustomButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: StartFormCustomButtonDirective, isStandalone: true, selector: "[adf-form-custom-button]", ngImport: i0 }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartFormCustomButtonDirective, decorators: [{
|
|
24
|
-
type: Directive,
|
|
25
|
-
args: [{
|
|
26
|
-
selector: '[adf-form-custom-button]',
|
|
27
|
-
standalone: true
|
|
28
|
-
}]
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXN0b20tYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL2Zvcm0tY3VzdG9tLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLDhCQUE4QjsrR0FBOUIsOEJBQThCO21HQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYWRmLWZvcm0tY3VzdG9tLWJ1dHRvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRGb3JtQ3VzdG9tQnV0dG9uRGlyZWN0aXZlIHt9XG4iXX0=
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { Compiler, Component, DestroyRef, inject, Input, NgModule, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
|
18
|
-
import { FormRenderingService } from '../../services/form-rendering.service';
|
|
19
|
-
import { WidgetVisibilityService } from '../../services/widget-visibility.service';
|
|
20
|
-
import { FormFieldModel } from '../widgets/core/form-field.model';
|
|
21
|
-
import { FieldStylePipe } from '../../pipes/field-style.pipe';
|
|
22
|
-
import { FormFieldTypes } from '../widgets/core/form-field-types';
|
|
23
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
24
|
-
import * as i0 from "@angular/core";
|
|
25
|
-
export class FormFieldComponent {
|
|
26
|
-
constructor() {
|
|
27
|
-
/**
|
|
28
|
-
* Contains all the necessary data needed to determine what UI Widget
|
|
29
|
-
* to use when rendering the field in the form. You would typically not
|
|
30
|
-
* create this data manually but instead create the form in APS and export
|
|
31
|
-
* it to get to all the `FormFieldModel` definitions.
|
|
32
|
-
*/
|
|
33
|
-
this.field = null;
|
|
34
|
-
this.focus = false;
|
|
35
|
-
this.formRenderingService = inject(FormRenderingService);
|
|
36
|
-
this.visibilityService = inject(WidgetVisibilityService);
|
|
37
|
-
this.destroyRef = inject(DestroyRef);
|
|
38
|
-
this.compiler = inject(Compiler);
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
const w = window;
|
|
42
|
-
if (w.adf === undefined) {
|
|
43
|
-
w.adf = {};
|
|
44
|
-
}
|
|
45
|
-
const originalField = this.getField();
|
|
46
|
-
if (originalField) {
|
|
47
|
-
const customTemplate = this.field.form.customFieldTemplates[originalField.type];
|
|
48
|
-
if (customTemplate && this.hasController(originalField.type)) {
|
|
49
|
-
const factory = this.getComponentFactorySync(originalField.type, customTemplate);
|
|
50
|
-
this.componentRef = this.container.createComponent(factory);
|
|
51
|
-
const instance = this.componentRef.instance;
|
|
52
|
-
if (instance) {
|
|
53
|
-
instance.field = originalField;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const componentType = this.formRenderingService.resolveComponentType(originalField);
|
|
58
|
-
if (componentType) {
|
|
59
|
-
this.componentRef = this.container.createComponent(componentType);
|
|
60
|
-
const instance = this.componentRef.instance;
|
|
61
|
-
instance.field = this.field;
|
|
62
|
-
instance.fieldChanged.subscribe((field) => {
|
|
63
|
-
if (field && this.field.form) {
|
|
64
|
-
this.visibilityService.refreshVisibility(field.form);
|
|
65
|
-
this.triggerFormFieldChanged(field);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
if (FormFieldTypes.isReactiveType(instance?.field?.type)) {
|
|
69
|
-
this.updateReactiveFormControlOnFormRulesEvent(instance);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
ngOnChanges(changes) {
|
|
76
|
-
console.log('changes', changes);
|
|
77
|
-
}
|
|
78
|
-
updateReactiveFormControlOnFormRulesEvent(instance) {
|
|
79
|
-
instance?.formService.formRulesEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
80
|
-
instance?.updateReactiveFormControl();
|
|
81
|
-
instance?.field?.form.validateForm(instance?.field);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
triggerFormFieldChanged(field) {
|
|
85
|
-
field.form.onFormFieldChanged(field);
|
|
86
|
-
}
|
|
87
|
-
ngOnDestroy() {
|
|
88
|
-
if (this.componentRef) {
|
|
89
|
-
this.componentRef.destroy();
|
|
90
|
-
this.componentRef = null;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
focusToggle() {
|
|
94
|
-
setTimeout(() => {
|
|
95
|
-
this.focus = !this.focus;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
getField() {
|
|
99
|
-
if (this.field?.params) {
|
|
100
|
-
const wrappedField = this.field.params.field;
|
|
101
|
-
if (wrappedField?.type) {
|
|
102
|
-
return wrappedField;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return this.field;
|
|
106
|
-
}
|
|
107
|
-
hasController(type) {
|
|
108
|
-
return adf?.components?.[type];
|
|
109
|
-
}
|
|
110
|
-
getComponentFactorySync(type, template) {
|
|
111
|
-
const componentInfo = adf.components[type];
|
|
112
|
-
if (componentInfo.factory) {
|
|
113
|
-
return componentInfo.factory;
|
|
114
|
-
}
|
|
115
|
-
const metadata = {
|
|
116
|
-
selector: `runtime-component-${type}`,
|
|
117
|
-
template
|
|
118
|
-
};
|
|
119
|
-
const factory = this.createComponentFactorySync(this.compiler, metadata, componentInfo.class);
|
|
120
|
-
componentInfo.factory = factory;
|
|
121
|
-
return factory;
|
|
122
|
-
}
|
|
123
|
-
createComponentFactorySync(compiler, metadata, componentClass) {
|
|
124
|
-
const cmpClass = componentClass || class RuntimeComponent {
|
|
125
|
-
};
|
|
126
|
-
const decoratedCmp = Component(metadata)(cmpClass);
|
|
127
|
-
const moduleClass = class RuntimeComponentModule {
|
|
128
|
-
};
|
|
129
|
-
const decoratedNgModule = NgModule({ imports: [], declarations: [decoratedCmp] })(moduleClass);
|
|
130
|
-
const module = compiler.compileModuleAndAllComponentsSync(decoratedNgModule);
|
|
131
|
-
return module.componentFactories.find((x) => x.componentType === decoratedCmp);
|
|
132
|
-
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "adf-form-field", inputs: { field: "field" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [id]=\"'field-' + field?.id + '-container'\"\n [style.display]=\"field?.isVisible ? 'block' : 'none'\"\n [style]=\"field | adfFieldStyle\"\n [class.adf-focus]=\"focus\"\n (focusin)=\"focusToggle()\"\n (focusout)=\"focusToggle()\">\n <div #container></div>\n</div>\n", dependencies: [{ kind: "pipe", type: FieldStylePipe, name: "adfFieldStyle" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
135
|
-
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
137
|
-
type: Component,
|
|
138
|
-
args: [{ selector: 'adf-form-field', standalone: true, encapsulation: ViewEncapsulation.None, imports: [FieldStylePipe], template: "<div [id]=\"'field-' + field?.id + '-container'\"\n [style.display]=\"field?.isVisible ? 'block' : 'none'\"\n [style]=\"field | adfFieldStyle\"\n [class.adf-focus]=\"focus\"\n (focusin)=\"focusToggle()\"\n (focusout)=\"focusToggle()\">\n <div #container></div>\n</div>\n" }]
|
|
139
|
-
}], propDecorators: { container: [{
|
|
140
|
-
type: ViewChild,
|
|
141
|
-
args: ['container', { read: ViewContainerRef, static: true }]
|
|
142
|
-
}], field: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUdULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFLUixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXaEUsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVdJOzs7OztXQUtHO1FBRUgsVUFBSyxHQUFtQixJQUFJLENBQUM7UUFJN0IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUVOLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FB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LEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ29tcGlsZXIsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtUmVuZGVyaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tcmVuZGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0VmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93aWRnZXQtdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZE1vZGVsIH0gZnJvbSAnLi4vd2lkZ2V0cy9jb3JlL2Zvcm0tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRTdHlsZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9maWVsZC1zdHlsZS5waXBlJztcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGVzIH0gZnJvbSAnLi4vd2lkZ2V0cy9jb3JlL2Zvcm0tZmllbGQtdHlwZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5kZWNsYXJlIGNvbnN0IGFkZjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1mb3JtLWZpZWxkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtGaWVsZFN0eWxlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICAvKipcbiAgICAgKiBDb250YWlucyBhbGwgdGhlIG5lY2Vzc2FyeSBkYXRhIG5lZWRlZCB0byBkZXRlcm1pbmUgd2hhdCBVSSBXaWRnZXRcbiAgICAgKiB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhlIGZpZWxkIGluIHRoZSBmb3JtLiBZb3Ugd291bGQgdHlwaWNhbGx5IG5vdFxuICAgICAqIGNyZWF0ZSB0aGlzIGRhdGEgbWFudWFsbHkgYnV0IGluc3RlYWQgY3JlYXRlIHRoZSBmb3JtIGluIEFQUyBhbmQgZXhwb3J0XG4gICAgICogaXQgdG8gZ2V0IHRvIGFsbCB0aGUgYEZvcm1GaWVsZE1vZGVsYCBkZWZpbml0aW9ucy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkOiBGb3JtRmllbGRNb2RlbCA9IG51bGw7XG5cbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gICAgZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVJlbmRlcmluZ1NlcnZpY2UgPSBpbmplY3QoRm9ybVJlbmRlcmluZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlzaWJpbGl0eVNlcnZpY2UgPSBpbmplY3QoV2lkZ2V0VmlzaWJpbGl0eVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBpbGVyID0gaW5qZWN0KENvbXBpbGVyKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3c7XG4gICAgICAgIGlmICh3LmFkZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB3LmFkZiA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxGaWVsZCA9IHRoaXMuZ2V0RmllbGQoKTtcbiAgICAgICAgaWYgKG9yaWdpbmFsRmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVRlbXBsYXRlID0gdGhpcy5maWVsZC5mb3JtLmN1c3RvbUZpZWxkVGVtcGxhdGVzW29yaWdpbmFsRmllbGQudHlwZV07XG4gICAgICAgICAgICBpZiAoY3VzdG9tVGVtcGxhdGUgJiYgdGhpcy5oYXNDb250cm9sbGVyKG9yaWdpbmFsRmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5nZXRDb21wb25lbnRGYWN0b3J5U3luYyhvcmlnaW5hbEZpZWxkLnR5cGUsIGN1c3RvbVRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gb3JpZ2luYWxGaWVsZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmZvcm1SZW5kZXJpbmdTZXJ2aWNlLnJlc29sdmVDb21wb25lbnRUeXBlKG9yaWdpbmFsRmllbGQpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcblxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5maWVsZENoYW5nZWQuc3Vic2NyaWJlKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkICYmIHRoaXMuZmllbGQuZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkoZmllbGQuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRm9ybUZpZWxkQ2hhbmdlZChmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChGb3JtRmllbGRUeXBlcy5pc1JlYWN0aXZlVHlwZShpbnN0YW5jZT8uZmllbGQ/LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2xPbkZvcm1SdWxlc0V2ZW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoYW5nZXMnLCBjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2xPbkZvcm1SdWxlc0V2ZW50KGluc3RhbmNlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaW5zdGFuY2U/LmZvcm1TZXJ2aWNlLmZvcm1SdWxlc0V2ZW50LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YW5jZT8udXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbCgpO1xuICAgICAgICAgICAgaW5zdGFuY2U/LmZpZWxkPy5mb3JtLnZhbGlkYXRlRm9ybShpbnN0YW5jZT8uZmllbGQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJGb3JtRmllbGRDaGFuZ2VkKGZpZWxkOiBGb3JtRmllbGRNb2RlbCk6IHZvaWQge1xuICAgICAgICBmaWVsZC5mb3JtLm9uRm9ybUZpZWxkQ2hhbmdlZChmaWVsZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNUb2dnbGUoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyA9ICF0aGlzLmZvY3VzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkKCk6IEZvcm1GaWVsZE1vZGVsIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnBhcmFtcykge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlZEZpZWxkID0gdGhpcy5maWVsZC5wYXJhbXMuZmllbGQ7XG4gICAgICAgICAgICBpZiAod3JhcHBlZEZpZWxkPy50eXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWRGaWVsZCBhcyBGb3JtRmllbGRNb2RlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0NvbnRyb2xsZXIodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhZGY/LmNvbXBvbmVudHM/Llt0eXBlXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbXBvbmVudEZhY3RvcnlTeW5jKHR5cGU6IHN0cmluZywgdGVtcGxhdGU6IHN0cmluZyk6IENvbXBvbmVudEZhY3Rvcnk8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEluZm8gPSBhZGYuY29tcG9uZW50c1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50SW5mby5mYWN0b3J5KSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50SW5mby5mYWN0b3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZWxlY3RvcjogYHJ1bnRpbWUtY29tcG9uZW50LSR7dHlwZX1gLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jcmVhdGVDb21wb25lbnRGYWN0b3J5U3luYyh0aGlzLmNvbXBpbGVyLCBtZXRhZGF0YSwgY29tcG9uZW50SW5mby5jbGFzcyk7XG4gICAgICAgIGNvbXBvbmVudEluZm8uZmFjdG9yeSA9IGZhY3Rvcnk7XG4gICAgICAgIHJldHVybiBmYWN0b3J5O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50RmFjdG9yeVN5bmMoY29tcGlsZXI6IENvbXBpbGVyLCBtZXRhZGF0YTogQ29tcG9uZW50LCBjb21wb25lbnRDbGFzczogYW55KTogQ29tcG9uZW50RmFjdG9yeTxhbnk+IHtcbiAgICAgICAgY29uc3QgY21wQ2xhc3MgPSBjb21wb25lbnRDbGFzcyB8fCBjbGFzcyBSdW50aW1lQ29tcG9uZW50IHt9O1xuICAgICAgICBjb25zdCBkZWNvcmF0ZWRDbXAgPSBDb21wb25lbnQobWV0YWRhdGEpKGNtcENsYXNzKTtcbiAgICAgICAgY29uc3QgbW9kdWxlQ2xhc3MgPSBjbGFzcyBSdW50aW1lQ29tcG9uZW50TW9kdWxlIHt9O1xuICAgICAgICBjb25zdCBkZWNvcmF0ZWROZ01vZHVsZSA9IE5nTW9kdWxlKHsgaW1wb3J0czogW10sIGRlY2xhcmF0aW9uczogW2RlY29yYXRlZENtcF0gfSkobW9kdWxlQ2xhc3MpO1xuICAgICAgICBjb25zdCBtb2R1bGUgPSBjb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoZGVjb3JhdGVkTmdNb2R1bGUpO1xuXG4gICAgICAgIHJldHVybiBtb2R1bGUuY29tcG9uZW50RmFjdG9yaWVzLmZpbmQoKHgpID0+IHguY29tcG9uZW50VHlwZSA9PT0gZGVjb3JhdGVkQ21wKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtpZF09XCInZmllbGQtJyArIGZpZWxkPy5pZCArICctY29udGFpbmVyJ1wiXG4gICAgIFtzdHlsZS5kaXNwbGF5XT1cImZpZWxkPy5pc1Zpc2libGUgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgW3N0eWxlXT1cImZpZWxkIHwgYWRmRmllbGRTdHlsZVwiXG4gICAgIFtjbGFzcy5hZGYtZm9jdXNdPVwiZm9jdXNcIlxuICAgICAoZm9jdXNpbik9XCJmb2N1c1RvZ2dsZSgpXCJcbiAgICAgKGZvY3Vzb3V0KT1cImZvY3VzVG9nZ2xlKClcIj5cbiAgICA8ZGl2ICNjb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|