@alfresco/adf-core 8.1.0-14485353256 → 8.1.0-14489297497
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/lib/alfresco-api/alfresco-api.utils.d.ts +1 -1
- package/breadcrumbs/styles/_breadcrumb.theme.scss +4 -4
- package/custom-theme/material-theme.scss +4 -7
- package/custom-theme/theme/custom-theme-palettes.scss +8 -12
- package/custom-theme/theme/typography.scss +26 -26
- package/feature-flags/lib/providers/debug-feature-flags.provider.d.ts +4 -35
- package/fesm2022/adf-core.mjs +938 -956
- package/fesm2022/adf-core.mjs.map +1 -1
- package/fesm2022/alfresco-adf-core-api.mjs +3 -3
- package/fesm2022/alfresco-adf-core-auth.mjs +3 -3
- package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +10 -10
- 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 +8 -8
- 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/prebuilt-themes/adf-blue-orange.css +1 -1
- package/lib/prebuilt-themes/adf-blue-purple.css +1 -1
- package/lib/prebuilt-themes/adf-cyan-orange.css +1 -1
- package/lib/prebuilt-themes/adf-cyan-purple.css +1 -1
- package/lib/prebuilt-themes/adf-green-orange.css +1 -1
- package/lib/prebuilt-themes/adf-green-purple.css +1 -1
- package/lib/prebuilt-themes/adf-indigo-pink.css +1 -1
- package/lib/prebuilt-themes/adf-pink-bluegrey.css +1 -1
- package/lib/prebuilt-themes/adf-purple-green.css +1 -1
- package/lib/styles/_components-variables.scss +42 -42
- package/lib/styles/_index.scss +57 -57
- package/lib/styles/_typography.scss +13 -13
- package/lib/styles/prebuilt/adf-blue-orange.scss +7 -6
- package/lib/styles/prebuilt/adf-blue-purple.scss +7 -6
- package/lib/styles/prebuilt/adf-cyan-orange.scss +7 -6
- package/lib/styles/prebuilt/adf-cyan-purple.scss +7 -6
- package/lib/styles/prebuilt/adf-green-orange.scss +7 -6
- package/lib/styles/prebuilt/adf-green-purple.scss +7 -6
- package/lib/styles/prebuilt/adf-indigo-pink.scss +7 -6
- package/lib/styles/prebuilt/adf-pink-bluegrey.scss +7 -6
- package/lib/styles/prebuilt/adf-purple-green.scss +7 -6
- package/package.json +3 -15
- package/schematics/migrations/schematics/migrations/7_0_0/index.d.ts +1 -1
- package/schematics/migrations/schematics/migrations/7_0_0/index.js +2 -2
- package/schematics/migrations/schematics/migrations/7_0_0/index.js.map +1 -1
- 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 -84
- 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 -121
- 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 -229
- package/esm2022/lib/form/components/form-custom-button.directive.mjs +0 -30
- package/esm2022/lib/form/components/form-field/form-field.component.mjs +0 -142
- package/esm2022/lib/form/components/form-renderer.component.mjs +0 -171
- 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 -513
- 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,482 +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
|
-
/* eslint-disable @angular-eslint/component-selector */
|
|
18
|
-
import { WidgetVisibilityModel } from '../../../models/widget-visibility.model';
|
|
19
|
-
import { ContainerColumnModel } from './container-column.model';
|
|
20
|
-
import { ErrorMessageModel } from './error-message.model';
|
|
21
|
-
import { FormFieldTypes } from './form-field-types';
|
|
22
|
-
import { FormWidgetModel } from './form-widget.model';
|
|
23
|
-
import { isNumberValue } from './form-field-utils';
|
|
24
|
-
import { DateFnsUtils } from '../../../../common';
|
|
25
|
-
import { isValid as isValidDate } from 'date-fns';
|
|
26
|
-
// Maps to FormFieldRepresentation
|
|
27
|
-
export class FormFieldModel extends FormWidgetModel {
|
|
28
|
-
get value() {
|
|
29
|
-
return this._value;
|
|
30
|
-
}
|
|
31
|
-
set value(v) {
|
|
32
|
-
if (v !== this._value) {
|
|
33
|
-
this._value = v;
|
|
34
|
-
this.updateForm();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
get readOnly() {
|
|
38
|
-
if (this.form?.readOnly) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
return this._readOnly;
|
|
42
|
-
}
|
|
43
|
-
set readOnly(readOnly) {
|
|
44
|
-
this._readOnly = readOnly;
|
|
45
|
-
this.updateForm();
|
|
46
|
-
}
|
|
47
|
-
get required() {
|
|
48
|
-
return this._required;
|
|
49
|
-
}
|
|
50
|
-
set required(value) {
|
|
51
|
-
this._required = value;
|
|
52
|
-
this.updateForm();
|
|
53
|
-
}
|
|
54
|
-
get isValid() {
|
|
55
|
-
return this._isValid;
|
|
56
|
-
}
|
|
57
|
-
get hasMultipleValues() {
|
|
58
|
-
return this.selectionType === 'multiple' || this.params.multiple;
|
|
59
|
-
}
|
|
60
|
-
markAsInvalid() {
|
|
61
|
-
this._isValid = false;
|
|
62
|
-
}
|
|
63
|
-
markAsValid() {
|
|
64
|
-
this._isValid = true;
|
|
65
|
-
}
|
|
66
|
-
validate() {
|
|
67
|
-
this.validationSummary = new ErrorMessageModel();
|
|
68
|
-
if (this.isFieldValidatable()) {
|
|
69
|
-
const validators = this.form.fieldValidators || [];
|
|
70
|
-
for (const validator of validators) {
|
|
71
|
-
if (!validator.validate(this)) {
|
|
72
|
-
this._isValid = false;
|
|
73
|
-
return this._isValid;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
this._isValid = true;
|
|
78
|
-
return this._isValid;
|
|
79
|
-
}
|
|
80
|
-
isFieldValidatable() {
|
|
81
|
-
return !this.readOnly || FormFieldTypes.isValidatableType(this.type);
|
|
82
|
-
}
|
|
83
|
-
constructor(form, json) {
|
|
84
|
-
super(form, json);
|
|
85
|
-
this._readOnly = false;
|
|
86
|
-
this._isValid = true;
|
|
87
|
-
this._required = false;
|
|
88
|
-
this.defaultDateFormat = 'D-M-YYYY';
|
|
89
|
-
this.defaultDateTimeFormat = 'D-M-YYYY hh:mm A';
|
|
90
|
-
this.defaultEmptyOptionId = 'empty';
|
|
91
|
-
this.defaultEmptyOptionName = 'Choose one...';
|
|
92
|
-
this.rowspan = 1;
|
|
93
|
-
this.colspan = 1;
|
|
94
|
-
this.placeholder = null;
|
|
95
|
-
this.tooltip = null;
|
|
96
|
-
this.minLength = 0;
|
|
97
|
-
this.maxLength = 0;
|
|
98
|
-
this.maxDateRangeValue = 0;
|
|
99
|
-
this.minDateRangeValue = 0;
|
|
100
|
-
this.options = [];
|
|
101
|
-
this.params = {};
|
|
102
|
-
this.isVisible = true;
|
|
103
|
-
this.visibilityCondition = null;
|
|
104
|
-
this.enableFractions = false;
|
|
105
|
-
this.currency = null;
|
|
106
|
-
this.dateDisplayFormat = this.defaultDateFormat;
|
|
107
|
-
this.leftLabels = false;
|
|
108
|
-
// container model members
|
|
109
|
-
this.numberOfColumns = 1;
|
|
110
|
-
this.fields = [];
|
|
111
|
-
this.columns = [];
|
|
112
|
-
if (json) {
|
|
113
|
-
this.fieldType = json.fieldType;
|
|
114
|
-
this.id = json.id;
|
|
115
|
-
this.name = json.name;
|
|
116
|
-
this.type = json.type;
|
|
117
|
-
this.roles = json.roles;
|
|
118
|
-
this._required = json.required;
|
|
119
|
-
this._readOnly = json.readOnly || json.type === 'readonly';
|
|
120
|
-
this.overrideId = json.overrideId;
|
|
121
|
-
this.tab = json.tab;
|
|
122
|
-
this.restUrl = json.restUrl;
|
|
123
|
-
this.restResponsePath = json.restResponsePath;
|
|
124
|
-
this.restIdProperty = json.restIdProperty;
|
|
125
|
-
this.restLabelProperty = json.restLabelProperty;
|
|
126
|
-
this.colspan = json.colspan;
|
|
127
|
-
this.rowspan = json.rowspan;
|
|
128
|
-
this.minLength = json.minLength || 0;
|
|
129
|
-
this.maxLength = json.maxLength || 0;
|
|
130
|
-
this.minValue = json.minValue;
|
|
131
|
-
this.maxValue = json.maxValue;
|
|
132
|
-
this.minDateRangeValue = json.minDateRangeValue;
|
|
133
|
-
this.maxDateRangeValue = json.maxDateRangeValue;
|
|
134
|
-
this.dynamicDateRangeSelection = json.dynamicDateRangeSelection;
|
|
135
|
-
this.regexPattern = json.regexPattern;
|
|
136
|
-
this.options = this.parseOptions(json.options, json.optionType);
|
|
137
|
-
this.emptyOption = this.getEmptyOption(this.options);
|
|
138
|
-
this.hasEmptyValue = json?.hasEmptyValue ?? !!this.emptyOption;
|
|
139
|
-
this.className = json.className;
|
|
140
|
-
this.optionType = json.optionType;
|
|
141
|
-
this.params = json.params || {};
|
|
142
|
-
this.hyperlinkUrl = json.hyperlinkUrl;
|
|
143
|
-
this.displayText = json.displayText;
|
|
144
|
-
this.visibilityCondition = json.visibilityCondition ? new WidgetVisibilityModel(json.visibilityCondition) : undefined;
|
|
145
|
-
this.enableFractions = json.enableFractions;
|
|
146
|
-
this.currency = json.currency;
|
|
147
|
-
this.dateDisplayFormat = json.dateDisplayFormat || this.getDefaultDateFormat(json);
|
|
148
|
-
this.validationSummary = new ErrorMessageModel();
|
|
149
|
-
this.tooltip = json.tooltip || '';
|
|
150
|
-
this.selectionType = json.selectionType;
|
|
151
|
-
this.alignmentType = json.alignmentType;
|
|
152
|
-
this.rule = json.rule;
|
|
153
|
-
this.selectLoggedUser = json.selectLoggedUser;
|
|
154
|
-
this.groupsRestriction = json.groupsRestriction?.groups;
|
|
155
|
-
this.variableConfig = json.variableConfig;
|
|
156
|
-
this.schemaDefinition = json.schemaDefinition;
|
|
157
|
-
this.precision = json.precision;
|
|
158
|
-
this.externalProperty = json.externalProperty;
|
|
159
|
-
this._value = this.parseValue(json);
|
|
160
|
-
this.style = json.style;
|
|
161
|
-
if (json.placeholder && json.placeholder !== '' && json.placeholder !== 'null') {
|
|
162
|
-
this.placeholder = json.placeholder;
|
|
163
|
-
}
|
|
164
|
-
if (FormFieldTypes.isReadOnlyType(this.type)) {
|
|
165
|
-
if (this.params?.field) {
|
|
166
|
-
this.setValueForReadonlyType(form);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (FormFieldTypes.isContainerType(this.type) || FormFieldTypes.isSectionType(this.type)) {
|
|
170
|
-
this.containerFactory(json, form);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (form?.json) {
|
|
174
|
-
this.leftLabels = form.json.leftLabels || false;
|
|
175
|
-
}
|
|
176
|
-
this.updateForm();
|
|
177
|
-
}
|
|
178
|
-
getEmptyOption(options) {
|
|
179
|
-
return options.find((option) => option?.id === this.defaultEmptyOptionId);
|
|
180
|
-
}
|
|
181
|
-
setValueForReadonlyType(form) {
|
|
182
|
-
const value = this.getProcessVariableValue(this.params.field, form);
|
|
183
|
-
if (value) {
|
|
184
|
-
this.value = value;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
getDefaultDateFormat(jsonField) {
|
|
188
|
-
let originalType = jsonField.type;
|
|
189
|
-
if (FormFieldTypes.isReadOnlyType(jsonField.type) && jsonField.params?.field) {
|
|
190
|
-
originalType = jsonField.params.field.type;
|
|
191
|
-
}
|
|
192
|
-
return originalType === FormFieldTypes.DATETIME ? this.defaultDateTimeFormat : this.defaultDateFormat;
|
|
193
|
-
}
|
|
194
|
-
isTypeaheadFieldType(type) {
|
|
195
|
-
return type === 'typeahead';
|
|
196
|
-
}
|
|
197
|
-
getFieldNameWithLabel(name) {
|
|
198
|
-
return name + '_LABEL';
|
|
199
|
-
}
|
|
200
|
-
getProcessVariableValue(field, form) {
|
|
201
|
-
let fieldName = field.name;
|
|
202
|
-
if (this.isTypeaheadFieldType(field.type)) {
|
|
203
|
-
fieldName = this.getFieldNameWithLabel(field.id);
|
|
204
|
-
}
|
|
205
|
-
return form.getProcessVariableValue(fieldName);
|
|
206
|
-
}
|
|
207
|
-
containerFactory(json, form) {
|
|
208
|
-
const { numberOfColumns = 1, fields = {} } = json;
|
|
209
|
-
this.numberOfColumns = numberOfColumns;
|
|
210
|
-
this.fields = fields;
|
|
211
|
-
this.rowspan = 1;
|
|
212
|
-
this.colspan = 1;
|
|
213
|
-
Object.keys(fields).forEach((currentField) => {
|
|
214
|
-
if (!Object.prototype.hasOwnProperty.call(fields, currentField)) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
const col = new ContainerColumnModel();
|
|
218
|
-
col.fields = (fields[currentField] || []).map((field) => new FormFieldModel(form, field));
|
|
219
|
-
col.rowspan = fields[currentField].length;
|
|
220
|
-
if (!FormFieldTypes.isSectionType(this.type)) {
|
|
221
|
-
this.updateContainerColspan(col.fields);
|
|
222
|
-
}
|
|
223
|
-
this.rowspan = Math.max(this.rowspan, col.rowspan);
|
|
224
|
-
this.columns.push(col);
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
updateContainerColspan(fields) {
|
|
228
|
-
fields.forEach((colField) => {
|
|
229
|
-
this.colspan = Math.max(this.colspan, colField.colspan);
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
parseValue(json) {
|
|
233
|
-
const value = Object.prototype.hasOwnProperty.call(json, 'value') && json.value !== undefined ? json.value : null;
|
|
234
|
-
/*
|
|
235
|
-
This is needed due to Activiti issue related to reading dropdown values as value string
|
|
236
|
-
but saving back as object: { id: <id>, name: <name> }
|
|
237
|
-
*/
|
|
238
|
-
if (json.type === FormFieldTypes.DROPDOWN) {
|
|
239
|
-
if (this.hasEmptyValue) {
|
|
240
|
-
if (!this.emptyOption) {
|
|
241
|
-
this.emptyOption = {
|
|
242
|
-
id: this.defaultEmptyOptionId,
|
|
243
|
-
name: this.defaultEmptyOptionName
|
|
244
|
-
};
|
|
245
|
-
this.options.unshift(this.emptyOption);
|
|
246
|
-
}
|
|
247
|
-
const isEmptyValue = !value || [this.emptyOption.id, this.emptyOption.name].includes(value);
|
|
248
|
-
if (isEmptyValue) {
|
|
249
|
-
return this.emptyOption.id;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
if (this.isValidOption(value)) {
|
|
253
|
-
this.addOption({ id: value.id, name: value.name });
|
|
254
|
-
return value.id;
|
|
255
|
-
}
|
|
256
|
-
if (this.hasMultipleValues) {
|
|
257
|
-
const validSelectedOptions = (Array.isArray(json.value) ? json.value : []).filter((option) => this.isValidOption(option));
|
|
258
|
-
this.addOptions(validSelectedOptions);
|
|
259
|
-
return validSelectedOptions;
|
|
260
|
-
}
|
|
261
|
-
return value;
|
|
262
|
-
}
|
|
263
|
-
/*
|
|
264
|
-
This is needed due to Activiti issue related to reading radio button values as value string
|
|
265
|
-
but saving back as object: { id: <id>, name: <name> }
|
|
266
|
-
*/
|
|
267
|
-
if (json.type === FormFieldTypes.RADIO_BUTTONS) {
|
|
268
|
-
if (json.value?.options) {
|
|
269
|
-
this.options = this.parseValidOptions(json.value.options);
|
|
270
|
-
}
|
|
271
|
-
// Activiti has a bug with default radio button value where initial selection passed as `name` value
|
|
272
|
-
// so try resolving current one with a fallback to first entry via name or id
|
|
273
|
-
// TODO: needs to be reported and fixed at Activiti side
|
|
274
|
-
const matchingOption = this.options.find((opt) => opt.id === value || opt.name === value || (value && (opt.id === value.id || opt.name === value.name)));
|
|
275
|
-
if (matchingOption) {
|
|
276
|
-
return matchingOption.id;
|
|
277
|
-
}
|
|
278
|
-
if (this.isValidOption(value)) {
|
|
279
|
-
this.addOption({ id: value.id, name: value.name });
|
|
280
|
-
return value.id;
|
|
281
|
-
}
|
|
282
|
-
return value;
|
|
283
|
-
}
|
|
284
|
-
if (this.isDateField(json) || this.isDateTimeField(json)) {
|
|
285
|
-
if (value) {
|
|
286
|
-
let dateValue;
|
|
287
|
-
if (isNumberValue(value)) {
|
|
288
|
-
dateValue = new Date(value);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
dateValue = this.isDateTimeField(json)
|
|
292
|
-
? DateFnsUtils.parseDate(value, 'YYYY-MM-DD hh:mm A')
|
|
293
|
-
: DateFnsUtils.parseDate(value.split('T')[0], 'YYYY-M-D');
|
|
294
|
-
}
|
|
295
|
-
if (isValidDate(dateValue)) {
|
|
296
|
-
return dateValue;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return value;
|
|
300
|
-
}
|
|
301
|
-
if (this.isCheckboxField(json)) {
|
|
302
|
-
return json.value === 'true' || json.value === true;
|
|
303
|
-
}
|
|
304
|
-
return value;
|
|
305
|
-
}
|
|
306
|
-
updateForm() {
|
|
307
|
-
if (!this.form) {
|
|
308
|
-
return;
|
|
309
|
-
}
|
|
310
|
-
switch (this.type) {
|
|
311
|
-
case FormFieldTypes.DROPDOWN: {
|
|
312
|
-
if (!this.value) {
|
|
313
|
-
this.form.values[this.id] = null;
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
316
|
-
/*
|
|
317
|
-
This is needed due to Activiti reading dropdown values as string
|
|
318
|
-
but saving back as object: { id: <id>, name: <name> }
|
|
319
|
-
*/
|
|
320
|
-
if (Array.isArray(this.value)) {
|
|
321
|
-
this.form.values[this.id] = this.value;
|
|
322
|
-
break;
|
|
323
|
-
}
|
|
324
|
-
if (typeof this.value === 'string') {
|
|
325
|
-
if (this.value === 'empty' || this.value === '') {
|
|
326
|
-
this.form.values[this.id] = null;
|
|
327
|
-
break;
|
|
328
|
-
}
|
|
329
|
-
const matchingOption = this.options.find((opt) => opt.id === this.value);
|
|
330
|
-
this.form.values[this.id] = matchingOption || null;
|
|
331
|
-
}
|
|
332
|
-
break;
|
|
333
|
-
}
|
|
334
|
-
case FormFieldTypes.RADIO_BUTTONS: {
|
|
335
|
-
const radioButton = this.options.find((opt) => opt.id === this.value);
|
|
336
|
-
if (this.optionType === 'rest') {
|
|
337
|
-
this.form.values[this.id] = radioButton
|
|
338
|
-
? { ...radioButton, options: this.options }
|
|
339
|
-
: { id: null, name: null, options: this.options };
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
this.form.values[this.id] = radioButton ? { ...radioButton } : null;
|
|
343
|
-
}
|
|
344
|
-
break;
|
|
345
|
-
}
|
|
346
|
-
case FormFieldTypes.UPLOAD: {
|
|
347
|
-
this.form.hasUpload = true;
|
|
348
|
-
if (this.value && this.value.length > 0) {
|
|
349
|
-
this.form.values[this.id] = Array.isArray(this.value) ? this.value.map((elem) => elem.id).join(',') : [this.value];
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
this.form.values[this.id] = null;
|
|
353
|
-
}
|
|
354
|
-
break;
|
|
355
|
-
}
|
|
356
|
-
case FormFieldTypes.TYPEAHEAD: {
|
|
357
|
-
const typeAheadEntry = this.options.filter((opt) => opt.id === this.value || opt.name === this.value);
|
|
358
|
-
if (typeAheadEntry.length > 0) {
|
|
359
|
-
this.form.values[this.id] = typeAheadEntry[0];
|
|
360
|
-
}
|
|
361
|
-
else if (this.options.length > 0) {
|
|
362
|
-
this.form.values[this.id] = null;
|
|
363
|
-
}
|
|
364
|
-
break;
|
|
365
|
-
}
|
|
366
|
-
case FormFieldTypes.DATE: {
|
|
367
|
-
if (typeof this.value === 'string' && this.value === 'today') {
|
|
368
|
-
this.value = new Date();
|
|
369
|
-
}
|
|
370
|
-
let dateValue;
|
|
371
|
-
try {
|
|
372
|
-
dateValue = DateFnsUtils.parseDate(this.value, this.dateDisplayFormat);
|
|
373
|
-
}
|
|
374
|
-
catch (e) {
|
|
375
|
-
dateValue = new Date('error');
|
|
376
|
-
}
|
|
377
|
-
if (isValidDate(dateValue)) {
|
|
378
|
-
const datePart = DateFnsUtils.formatDate(dateValue, 'yyyy-MM-dd');
|
|
379
|
-
this.form.values[this.id] = `${datePart}T00:00:00.000Z`;
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
this.form.values[this.id] = null;
|
|
383
|
-
this._value = this.value;
|
|
384
|
-
}
|
|
385
|
-
break;
|
|
386
|
-
}
|
|
387
|
-
case FormFieldTypes.DATETIME: {
|
|
388
|
-
if (typeof this.value === 'string' && this.value === 'now') {
|
|
389
|
-
this.value = new Date();
|
|
390
|
-
}
|
|
391
|
-
const dateTimeValue = this.value !== null ? DateFnsUtils.getDate(this.value) : null;
|
|
392
|
-
if (isValidDate(dateTimeValue)) {
|
|
393
|
-
this.form.values[this.id] = dateTimeValue.toISOString();
|
|
394
|
-
}
|
|
395
|
-
else {
|
|
396
|
-
this.form.values[this.id] = null;
|
|
397
|
-
this._value = this.value;
|
|
398
|
-
}
|
|
399
|
-
break;
|
|
400
|
-
}
|
|
401
|
-
case FormFieldTypes.NUMBER: {
|
|
402
|
-
this.form.values[this.id] = this.enableFractions ? parseFloat(this.value) : parseInt(this.value, 10);
|
|
403
|
-
break;
|
|
404
|
-
}
|
|
405
|
-
case FormFieldTypes.AMOUNT: {
|
|
406
|
-
this.form.values[this.id] = this.enableFractions ? parseFloat(this.value) : parseInt(this.value, 10);
|
|
407
|
-
break;
|
|
408
|
-
}
|
|
409
|
-
case FormFieldTypes.DECIMAL: {
|
|
410
|
-
this.form.values[this.id] = parseFloat(this.value);
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
case FormFieldTypes.BOOLEAN: {
|
|
414
|
-
this.form.values[this.id] = this.value !== null && this.value !== undefined ? this.value : false;
|
|
415
|
-
break;
|
|
416
|
-
}
|
|
417
|
-
case FormFieldTypes.PEOPLE: {
|
|
418
|
-
this.form.values[this.id] = this.value ? this.value : null;
|
|
419
|
-
break;
|
|
420
|
-
}
|
|
421
|
-
case FormFieldTypes.FUNCTIONAL_GROUP: {
|
|
422
|
-
this.form.values[this.id] = this.value ? this.value : null;
|
|
423
|
-
break;
|
|
424
|
-
}
|
|
425
|
-
default:
|
|
426
|
-
if (this.shouldUpdateFormValues(this.type)) {
|
|
427
|
-
this.form.values[this.id] = this.value;
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
this.form.onFormFieldChanged(this);
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* Check if the field type is invalid, requires a type to be a `container`
|
|
434
|
-
*
|
|
435
|
-
* @param type field type
|
|
436
|
-
* @returns `true` if type is a `container`, otherwise `false`
|
|
437
|
-
*/
|
|
438
|
-
isInvalidFieldType(type) {
|
|
439
|
-
return type === 'container';
|
|
440
|
-
}
|
|
441
|
-
getOptionName() {
|
|
442
|
-
const option = this.options.find((opt) => opt.id === this.value);
|
|
443
|
-
return option ? option.name : null;
|
|
444
|
-
}
|
|
445
|
-
hasOptions() {
|
|
446
|
-
return this.options?.length > 0;
|
|
447
|
-
}
|
|
448
|
-
isEmptyValueOption(option) {
|
|
449
|
-
return this.hasEmptyValue && option?.id === this.defaultEmptyOptionId;
|
|
450
|
-
}
|
|
451
|
-
shouldUpdateFormValues(type) {
|
|
452
|
-
return !FormFieldTypes.isReadOnlyType(type) && !this.isInvalidFieldType(type) && !FormFieldTypes.isSectionType(type);
|
|
453
|
-
}
|
|
454
|
-
addOptions(options) {
|
|
455
|
-
options.forEach((option) => this.addOption(option));
|
|
456
|
-
}
|
|
457
|
-
addOption(option) {
|
|
458
|
-
const alreadyExists = this.options.find((opt) => opt?.id === option?.id);
|
|
459
|
-
if (!alreadyExists) {
|
|
460
|
-
this.options.push(option);
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
parseValidOptions(options) {
|
|
464
|
-
return Array.isArray(options) ? options.filter((option) => this.isValidOption(option)) : [];
|
|
465
|
-
}
|
|
466
|
-
parseOptions(options, optionType) {
|
|
467
|
-
return optionType === 'rest' ? [] : this.parseValidOptions(options);
|
|
468
|
-
}
|
|
469
|
-
isValidOption(option) {
|
|
470
|
-
return typeof option === 'object' && !Array.isArray(option) && option?.id && option?.name;
|
|
471
|
-
}
|
|
472
|
-
isDateField(json) {
|
|
473
|
-
return json.params?.field?.type === FormFieldTypes.DATE || json.type === FormFieldTypes.DATE;
|
|
474
|
-
}
|
|
475
|
-
isDateTimeField(json) {
|
|
476
|
-
return json.params?.field?.type === FormFieldTypes.DATETIME || json.type === FormFieldTypes.DATETIME;
|
|
477
|
-
}
|
|
478
|
-
isCheckboxField(json) {
|
|
479
|
-
return json.params?.field?.type === FormFieldTypes.BOOLEAN || json.type === FormFieldTypes.BOOLEAN;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvY29yZS9mb3JtLWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFNbEQsa0NBQWtDO0FBQ2xDLE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQW9FL0MsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFNO1FBQ1osSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FB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QU0sS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLElBQUksQ0FBQztJQUM5RixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLGNBQWMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ3pHLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBUztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxjQUFjLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2RyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IFdpZGdldFZpc2liaWxpdHlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy93aWRnZXQtdmlzaWJpbGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBDb250YWluZXJDb2x1bW5Nb2RlbCB9IGZyb20gJy4vY29udGFpbmVyLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VNb2RlbCB9IGZyb20gJy4vZXJyb3ItbWVzc2FnZS5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRmllbGRNZXRhZGF0YSB9IGZyb20gJy4vZm9ybS1maWVsZC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBGb3JtRmllbGRPcHRpb24gfSBmcm9tICcuL2Zvcm0tZmllbGQtb3B0aW9uJztcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGVzIH0gZnJvbSAnLi9mb3JtLWZpZWxkLXR5cGVzJztcbmltcG9ydCB7IEZvcm1XaWRnZXRNb2RlbCB9IGZyb20gJy4vZm9ybS13aWRnZXQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUZpZWxkUnVsZSB9IGZyb20gJy4vZm9ybS1maWVsZC1ydWxlJztcbmltcG9ydCB7IFByb2Nlc3NGb3JtTW9kZWwgfSBmcm9tICcuL3Byb2Nlc3MtZm9ybS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNOdW1iZXJWYWx1ZSB9IGZyb20gJy4vZm9ybS1maWVsZC11dGlscyc7XG5pbXBvcnQgeyBWYXJpYWJsZUNvbmZpZyB9IGZyb20gJy4vZm9ybS1maWVsZC12YXJpYWJsZS1vcHRpb25zJztcbmltcG9ydCB7IERhdGFDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi8uLi9kYXRhdGFibGUvZGF0YS9kYXRhLWNvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgaXNWYWxpZCBhcyBpc1ZhbGlkRGF0ZSB9IGZyb20gJ2RhdGUtZm5zJztcblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb25UeXBlID0gJ3Jlc3QnIHwgJ21hbnVhbCcgfCAndmFyaWFibGUnO1xuZXhwb3J0IHR5cGUgRmllbGRTZWxlY3Rpb25UeXBlID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuZXhwb3J0IHR5cGUgRmllbGRBbGlnbm1lbnRUeXBlID0gJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcblxuLy8gTWFwcyB0byBGb3JtRmllbGRSZXByZXNlbnRhdGlvblxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZE1vZGVsIGV4dGVuZHMgRm9ybVdpZGdldE1vZGVsIHtcbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3JlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNWYWxpZDogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGRlZmF1bHREYXRlRm9ybWF0OiBzdHJpbmcgPSAnRC1NLVlZWVknO1xuICAgIHJlYWRvbmx5IGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nID0gJ0QtTS1ZWVlZIGhoOm1tIEEnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEVtcHR5T3B0aW9uSWQgPSAnZW1wdHknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEVtcHR5T3B0aW9uTmFtZSA9ICdDaG9vc2Ugb25lLi4uJztcblxuICAgIC8vIG1vZGVsIG1lbWJlcnNcbiAgICBmaWVsZFR5cGU6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgb3ZlcnJpZGVJZDogYm9vbGVhbjtcbiAgICB0YWI6IHN0cmluZztcbiAgICByb3dzcGFuOiBudW1iZXIgPSAxO1xuICAgIGNvbHNwYW46IG51bWJlciA9IDE7XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG4gICAgdG9vbHRpcDogc3RyaW5nID0gbnVsbDtcbiAgICBtaW5MZW5ndGg6IG51bWJlciA9IDA7XG4gICAgbWF4TGVuZ3RoOiBudW1iZXIgPSAwO1xuICAgIG1pblZhbHVlOiBzdHJpbmc7XG4gICAgbWF4VmFsdWU6IHN0cmluZztcbiAgICBtYXhEYXRlUmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBtaW5EYXRlUmFuZ2VWYWx1ZTogbnVtYmVyID0gMDtcbiAgICBwcmVjaXNpb246IG51bWJlcjtcbiAgICBkeW5hbWljRGF0ZVJhbmdlU2VsZWN0aW9uOiBib29sZWFuO1xuICAgIHJlZ2V4UGF0dGVybjogc3RyaW5nO1xuICAgIG9wdGlvbnM6IEZvcm1GaWVsZE9wdGlvbltdID0gW107XG4gICAgcmVzdFVybDogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICByZXN0UmVzcG9uc2VQYXRoOiBzdHJpbmc7XG4gICAgcmVzdElkUHJvcGVydHk6IHN0cmluZztcbiAgICByZXN0TGFiZWxQcm9wZXJ0eTogc3RyaW5nO1xuICAgIGhhc0VtcHR5VmFsdWU6IGJvb2xlYW47XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgb3B0aW9uVHlwZTogRmllbGRPcHRpb25UeXBlO1xuICAgIHBhcmFtczogRm9ybUZpZWxkTWV0YWRhdGEgPSB7fTtcbiAgICBoeXBlcmxpbmtVcmw6IHN0cmluZztcbiAgICBkaXNwbGF5VGV4dDogc3RyaW5nO1xuICAgIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgdmlzaWJpbGl0eUNvbmRpdGlvbjogV2lkZ2V0VmlzaWJpbGl0eU1vZGVsID0gbnVsbDtcbiAgICBlbmFibGVGcmFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBjdXJyZW5jeTogc3RyaW5nID0gbnVsbDtcbiAgICBkYXRlRGlzcGxheUZvcm1hdDogc3RyaW5nID0gdGhpcy5kZWZhdWx0RGF0ZUZvcm1hdDtcbiAgICBzZWxlY3Rpb25UeXBlOiBGaWVsZFNlbGVjdGlvblR5cGU7XG4gICAgYWxpZ25tZW50VHlwZTogRmllbGRBbGlnbm1lbnRUeXBlO1xuICAgIHJ1bGU/OiBGb3JtRmllbGRSdWxlO1xuICAgIHNlbGVjdExvZ2dlZFVzZXI6IGJvb2xlYW47XG4gICAgZ3JvdXBzUmVzdHJpY3Rpb246IHN0cmluZ1tdO1xuICAgIGxlZnRMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB2YXJpYWJsZUNvbmZpZzogVmFyaWFibGVDb25maWc7XG4gICAgc2NoZW1hRGVmaW5pdGlvbjogRGF0YUNvbHVtbltdO1xuICAgIGV4dGVybmFsUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgc3R5bGU/OiBzdHJpbmc7XG5cbiAgICAvLyBjb250YWluZXIgbW9kZWwgbWVtYmVyc1xuICAgIG51bWJlck9mQ29sdW1uczogbnVtYmVyID0gMTtcbiAgICBmaWVsZHM6IEZvcm1GaWVsZE1vZGVsW10gPSBbXTtcbiAgICBjb2x1bW5zOiBDb250YWluZXJDb2x1bW5Nb2RlbFtdID0gW107XG5cbiAgICAvLyB1dGlsIG1lbWJlcnNcbiAgICBlbXB0eU9wdGlvbjogRm9ybUZpZWxkT3B0aW9uO1xuICAgIHZhbGlkYXRpb25TdW1tYXJ5OiBFcnJvck1lc3NhZ2VNb2RlbDtcblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtPy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuICAgIH1cblxuICAgIHNldCByZWFkT25seShyZWFkT25seTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZWFkT25seSA9IHJlYWRPbmx5O1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG5cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGdldCBoYXNNdWx0aXBsZVZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ211bHRpcGxlJyB8fCB0aGlzLnBhcmFtcy5tdWx0aXBsZTtcbiAgICB9XG5cbiAgICBtYXJrQXNJbnZhbGlkKCkge1xuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbWFya0FzVmFsaWQoKSB7XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGaWVsZFZhbGlkYXRhYmxlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmZvcm0uZmllbGRWYWxpZGF0b3JzIHx8IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmllbGRWYWxpZGF0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5IHx8IEZvcm1GaWVsZFR5cGVzLmlzVmFsaWRhdGFibGVUeXBlKHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoZm9ybTogYW55LCBqc29uPzogYW55KSB7XG4gICAgICAgIHN1cGVyKGZvcm0sIGpzb24pO1xuICAgICAgICBpZiAoanNvbikge1xuICAgICAgICAgICAgdGhpcy5maWVsZFR5cGUgPSBqc29uLmZpZWxkVHlwZTtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBqc29uLmlkO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0ganNvbi5uYW1lO1xuICAgICAgICAgICAgdGhpcy50eXBlID0ganNvbi50eXBlO1xuICAgICAgICAgICAgdGhpcy5yb2xlcyA9IGpzb24ucm9sZXM7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGpzb24ucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLl9yZWFkT25seSA9IGpzb24ucmVhZE9ubHkgfHwganNvbi50eXBlID09PSAncmVhZG9ubHknO1xuICAgICAgICAgICAgdGhpcy5vdmVycmlkZUlkID0ganNvbi5vdmVycmlkZUlkO1xuICAgICAgICAgICAgdGhpcy50YWIgPSBqc29uLnRhYjtcbiAgICAgICAgICAgIHRoaXMucmVzdFVybCA9IGpzb24ucmVzdFVybDtcbiAgICAgICAgICAgIHRoaXMucmVzdFJlc3BvbnNlUGF0aCA9IGpzb24ucmVzdFJlc3BvbnNlUGF0aDtcbiAgICAgICAgICAgIHRoaXMucmVzdElkUHJvcGVydHkgPSBqc29uLnJlc3RJZFByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5yZXN0TGFiZWxQcm9wZXJ0eSA9IGpzb24ucmVzdExhYmVsUHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmNvbHNwYW4gPSBqc29uLmNvbHNwYW47XG4gICAgICAgICAgICB0aGlzLnJvd3NwYW4gPSBqc29uLnJvd3NwYW47XG4gICAgICAgICAgICB0aGlzLm1pbkxlbmd0aCA9IGpzb24ubWluTGVuZ3RoIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm1heExlbmd0aCA9IGpzb24ubWF4TGVuZ3RoIHx8IDA7XG4gICAgICAgICAgICB0aGlzLm1pblZhbHVlID0ganNvbi5taW5WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBqc29uLm1heFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlUmFuZ2VWYWx1ZSA9IGpzb24ubWluRGF0ZVJhbmdlVmFsdWU7XG4gICAgICAgICAgICB0aGlzLm1heERhdGVSYW5nZVZhbHVlID0ganNvbi5tYXhEYXRlUmFuZ2VWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0RhdGVSYW5nZVNlbGVjdGlvbiA9IGpzb24uZHluYW1pY0RhdGVSYW5nZVNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMucmVnZXhQYXR0ZXJuID0ganNvbi5yZWdleFBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLnBhcnNlT3B0aW9ucyhqc29uLm9wdGlvbnMsIGpzb24ub3B0aW9uVHlwZSk7XG4gICAgICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0gdGhpcy5nZXRFbXB0eU9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5oYXNFbXB0eVZhbHVlID0ganNvbj8uaGFzRW1wdHlWYWx1ZSA/PyAhIXRoaXMuZW1wdHlPcHRpb247XG4gICAgICAgICAgICB0aGlzLmNsYXNzTmFtZSA9IGpzb24uY2xhc3NOYW1lO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25UeXBlID0ganNvbi5vcHRpb25UeXBlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbXMgPSBqc29uLnBhcmFtcyB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMuaHlwZXJsaW5rVXJsID0ganNvbi5oeXBlcmxpbmtVcmw7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlUZXh0ID0ganNvbi5kaXNwbGF5VGV4dDtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eUNvbmRpdGlvbiA9IGpzb24udmlzaWJpbGl0eUNvbmRpdGlvbiA/IG5ldyBXaWRnZXRWaXNpYmlsaXR5TW9kZWwoanNvbi52aXNpYmlsaXR5Q29uZGl0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRnJhY3Rpb25zID0ganNvbi5lbmFibGVGcmFjdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0ganNvbi5jdXJyZW5jeTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZURpc3BsYXlGb3JtYXQgPSBqc29uLmRhdGVEaXNwbGF5Rm9ybWF0IHx8IHRoaXMuZ2V0RGVmYXVsdERhdGVGb3JtYXQoanNvbik7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKCk7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAgPSBqc29uLnRvb2x0aXAgfHwgJyc7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPSBqc29uLnNlbGVjdGlvblR5cGU7XG4gICAgICAgICAgICB0aGlzLmFsaWdubWVudFR5cGUgPSBqc29uLmFsaWdubWVudFR5cGU7XG4gICAgICAgICAgICB0aGlzLnJ1bGUgPSBqc29uLnJ1bGU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdExvZ2dlZFVzZXIgPSBqc29uLnNlbGVjdExvZ2dlZFVzZXI7XG4gICAgICAgICAgICB0aGlzLmdyb3Vwc1Jlc3RyaWN0aW9uID0ganNvbi5ncm91cHNSZXN0cmljdGlvbj8uZ3JvdXBzO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZUNvbmZpZyA9IGpzb24udmFyaWFibGVDb25maWc7XG4gICAgICAgICAgICB0aGlzLnNjaGVtYURlZmluaXRpb24gPSBqc29uLnNjaGVtYURlZmluaXRpb247XG4gICAgICAgICAgICB0aGlzLnByZWNpc2lvbiA9IGpzb24ucHJlY2lzaW9uO1xuICAgICAgICAgICAgdGhpcy5leHRlcm5hbFByb3BlcnR5ID0ganNvbi5leHRlcm5hbFByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLnBhcnNlVmFsdWUoanNvbik7XG4gICAgICAgICAgICB0aGlzLnN0eWxlID0ganNvbi5zdHlsZTtcblxuICAgICAgICAgICAgaWYgKGpzb24ucGxhY2Vob2xkZXIgJiYganNvbi5wbGFjZWhvbGRlciAhPT0gJycgJiYganNvbi5wbGFjZWhvbGRlciAhPT0gJ251bGwnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGpzb24ucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChGb3JtRmllbGRUeXBlcy5pc1JlYWRPbmx5VHlwZSh0aGlzLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyYW1zPy5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlRm9yUmVhZG9ubHlUeXBlKGZvcm0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKEZvcm1GaWVsZFR5cGVzLmlzQ29udGFpbmVyVHlwZSh0aGlzLnR5cGUpIHx8IEZvcm1GaWVsZFR5cGVzLmlzU2VjdGlvblR5cGUodGhpcy50eXBlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyRmFjdG9yeShqc29uLCBmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3JtPy5qc29uKSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRMYWJlbHMgPSBmb3JtLmpzb24ubGVmdExhYmVscyB8fCBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RW1wdHlPcHRpb24ob3B0aW9uczogRm9ybUZpZWxkT3B0aW9uW10pOiBGb3JtRmllbGRPcHRpb24ge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuZGVmYXVsdEVtcHR5T3B0aW9uSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVGb3JSZWFkb25seVR5cGUoZm9ybTogYW55KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQcm9jZXNzVmFyaWFibGVWYWx1ZSh0aGlzLnBhcmFtcy5maWVsZCwgZm9ybSk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0RGF0ZUZvcm1hdChqc29uRmllbGQ6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBvcmlnaW5hbFR5cGUgPSBqc29uRmllbGQudHlwZTtcbiAgICAgICAgaWYgKEZvcm1GaWVsZFR5cGVzLmlzUmVhZE9ubHlUeXBlKGpzb25GaWVsZC50eXBlKSAmJiBqc29uRmllbGQucGFyYW1zPy5maWVsZCkge1xuICAgICAgICAgICAgb3JpZ2luYWxUeXBlID0ganNvbkZpZWxkLnBhcmFtcy5maWVsZC50eXBlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FID8gdGhpcy5kZWZhdWx0RGF0ZVRpbWVGb3JtYXQgOiB0aGlzLmRlZmF1bHREYXRlRm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUeXBlYWhlYWRGaWVsZFR5cGUodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAndHlwZWFoZWFkJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkTmFtZVdpdGhMYWJlbChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbmFtZSArICdfTEFCRUwnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1ZhcmlhYmxlVmFsdWUoZmllbGQ6IGFueSwgZm9ybTogUHJvY2Vzc0Zvcm1Nb2RlbCk6IGFueSB7XG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSBmaWVsZC5uYW1lO1xuICAgICAgICBpZiAodGhpcy5pc1R5cGVhaGVhZEZpZWxkVHlwZShmaWVsZC50eXBlKSkge1xuICAgICAgICAgICAgZmllbGROYW1lID0gdGhpcy5nZXRGaWVsZE5hbWVXaXRoTGFiZWwoZmllbGQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtLmdldFByb2Nlc3NWYXJpYWJsZVZhbHVlKGZpZWxkTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250YWluZXJGYWN0b3J5KGpzb246IGFueSwgZm9ybTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgbnVtYmVyT2ZDb2x1bW5zID0gMSwgZmllbGRzID0ge30gfSA9IGpzb247XG4gICAgICAgIHRoaXMubnVtYmVyT2ZDb2x1bW5zID0gbnVtYmVyT2ZDb2x1bW5zO1xuICAgICAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICAgICAgdGhpcy5yb3dzcGFuID0gMTtcbiAgICAgICAgdGhpcy5jb2xzcGFuID0gMTtcblxuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goKGN1cnJlbnRGaWVsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZmllbGRzLCBjdXJyZW50RmllbGQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb2wgPSBuZXcgQ29udGFpbmVyQ29sdW1uTW9kZWwoKTtcbiAgICAgICAgICAgIGNvbC5maWVsZHMgPSAoZmllbGRzW2N1cnJlbnRGaWVsZF0gfHwgW10pLm1hcCgoZmllbGQ6IGFueSkgPT4gbmV3IEZvcm1GaWVsZE1vZGVsKGZvcm0sIGZpZWxkKSk7XG4gICAgICAgICAgICBjb2wucm93c3BhbiA9IGZpZWxkc1tjdXJyZW50RmllbGRdLmxlbmd0aDtcblxuICAgICAgICAgICAgaWYgKCFGb3JtRmllbGRUeXBlcy5pc1NlY3Rpb25UeXBlKHRoaXMudHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lckNvbHNwYW4oY29sLmZpZWxkcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucm93c3BhbiA9IE1hdGgubWF4KHRoaXMucm93c3BhbiwgY29sLnJvd3NwYW4pO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLnB1c2goY29sKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb250YWluZXJDb2xzcGFuKGZpZWxkczogRm9ybUZpZWxkTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmaWVsZHMuZm9yRWFjaCgoY29sRmllbGQ6IEZvcm1GaWVsZE1vZGVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbHNwYW4gPSBNYXRoLm1heCh0aGlzLmNvbHNwYW4sIGNvbEZpZWxkLmNvbHNwYW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwYXJzZVZhbHVlKGpzb246IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGpzb24sICd2YWx1ZScpICYmIGpzb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IGpzb24udmFsdWUgOiBudWxsO1xuXG4gICAgICAgIC8qXG4gICAgICAgICBUaGlzIGlzIG5lZWRlZCBkdWUgdG8gQWN0aXZpdGkgaXNzdWUgcmVsYXRlZCB0byByZWFkaW5nIGRyb3Bkb3duIHZhbHVlcyBhcyB2YWx1ZSBzdHJpbmdcbiAgICAgICAgIGJ1dCBzYXZpbmcgYmFjayBhcyBvYmplY3Q6IHsgaWQ6IDxpZD4sIG5hbWU6IDxuYW1lPiB9XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoanNvbi50eXBlID09PSBGb3JtRmllbGRUeXBlcy5EUk9QRE9XTikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRW1wdHlWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbXB0eU9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5T3B0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMuZGVmYXVsdEVtcHR5T3B0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmRlZmF1bHRFbXB0eU9wdGlvbk5hbWVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnVuc2hpZnQodGhpcy5lbXB0eU9wdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNFbXB0eVZhbHVlID0gIXZhbHVlIHx8IFt0aGlzLmVtcHR5T3B0aW9uLmlkLCB0aGlzLmVtcHR5T3B0aW9uLm5hbWVdLmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVtcHR5T3B0aW9uLmlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZE9wdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE9wdGlvbih7IGlkOiB2YWx1ZS5pZCwgbmFtZTogdmFsdWUubmFtZSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc011bHRpcGxlVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRTZWxlY3RlZE9wdGlvbnMgPSAoQXJyYXkuaXNBcnJheShqc29uLnZhbHVlKSA/IGpzb24udmFsdWUgOiBbXSkuZmlsdGVyKChvcHRpb24pID0+IHRoaXMuaXNWYWxpZE9wdGlvbihvcHRpb24pKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuYWRkT3B0aW9ucyh2YWxpZFNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkU2VsZWN0ZWRPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgVGhpcyBpcyBuZWVkZWQgZHVlIHRvIEFjdGl2aXRpIGlzc3VlIHJlbGF0ZWQgdG8gcmVhZGluZyByYWRpbyBidXR0b24gdmFsdWVzIGFzIHZhbHVlIHN0cmluZ1xuICAgICAgICAgYnV0IHNhdmluZyBiYWNrIGFzIG9iamVjdDogeyBpZDogPGlkPiwgbmFtZTogPG5hbWU+IH1cbiAgICAgICAgICovXG4gICAgICAgIGlmIChqc29uLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlMpIHtcbiAgICAgICAgICAgIGlmIChqc29uLnZhbHVlPy5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5wYXJzZVZhbGlkT3B0aW9ucyhqc29uLnZhbHVlLm9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBY3Rpdml0aSBoYXMgYSBidWcgd2l0aCBkZWZhdWx0IHJhZGlvIGJ1dHRvbiB2YWx1ZSB3aGVyZSBpbml0aWFsIHNlbGVjdGlvbiBwYXNzZWQgYXMgYG5hbWVgIHZhbHVlXG4gICAgICAgICAgICAvLyBzbyB0cnkgcmVzb2x2aW5nIGN1cnJlbnQgb25lIHdpdGggYSBmYWxsYmFjayB0byBmaXJzdCBlbnRyeSB2aWEgbmFtZSBvciBpZFxuICAgICAgICAgICAgLy8gVE9ETzogbmVlZHMgdG8gYmUgcmVwb3J0ZWQgYW5kIGZpeGVkIGF0IEFjdGl2aXRpIHNpZGVcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdCkgPT4gb3B0LmlkID09PSB2YWx1ZSB8fCBvcHQubmFtZSA9PT0gdmFsdWUgfHwgKHZhbHVlICYmIChvcHQuaWQgPT09IHZhbHVlLmlkIHx8IG9wdC5uYW1lID09PSB2YWx1ZS5uYW1lKSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaGluZ09wdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGluZ09wdGlvbi5pZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZE9wdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZE9wdGlvbih7IGlkOiB2YWx1ZS5pZCwgbmFtZTogdmFsdWUubmFtZSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGF0ZUZpZWxkKGpzb24pIHx8IHRoaXMuaXNEYXRlVGltZUZpZWxkKGpzb24pKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZVZhbHVlOiBEYXRlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVWYWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPSB0aGlzLmlzRGF0ZVRpbWVGaWVsZChqc29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKHZhbHVlLCAnWVlZWS1NTS1ERCBoaDptbSBBJylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRGF0ZUZuc1V0aWxzLnBhcnNlRGF0ZSh2YWx1ZS5zcGxpdCgnVCcpWzBdLCAnWVlZWS1NLUQnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZERhdGUoZGF0ZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2JveEZpZWxkKGpzb24pKSB7XG4gICAgICAgICAgICByZXR1cm4ganNvbi52YWx1ZSA9PT0gJ3RydWUnIHx8IGpzb24udmFsdWUgPT09IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgdXBkYXRlRm9ybSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRST1BET1dOOiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICBUaGlzIGlzIG5lZWRlZCBkdWUgdG8gQWN0aXZpdGkgcmVhZGluZyBkcm9wZG93biB2YWx1ZXMgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgIGJ1dCBzYXZpbmcgYmFjayBhcyBvYmplY3Q6IHsgaWQ6IDxpZD4sIG5hbWU6IDxuYW1lPiB9XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09ICdlbXB0eScgfHwgdGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ09wdGlvbjogRm9ybUZpZWxkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbWF0Y2hpbmdPcHRpb24gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlJBRElPX0JVVFRPTlM6IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYWRpb0J1dHRvbjogRm9ybUZpZWxkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvblR5cGUgPT09ICdyZXN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgID8geyAuLi5yYWRpb0J1dHRvbiwgb3B0aW9uczogdGhpcy5vcHRpb25zIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogeyBpZDogbnVsbCwgbmFtZTogbnVsbCwgb3B0aW9uczogdGhpcy5vcHRpb25zIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHJhZGlvQnV0dG9uID8geyAuLi5yYWRpb0J1dHRvbiB9IDogbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRm9ybUZpZWxkVHlwZXMuVVBMT0FEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmhhc1VwbG9hZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5tYXAoKGVsZW0pID0+IGVsZW0uaWQpLmpvaW4oJywnKSA6IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRDoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVBaGVhZEVudHJ5OiBGb3JtRmllbGRPcHRpb25bXSA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gb3B0LmlkID09PSB0aGlzLnZhbHVlIHx8IG9wdC5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZUFoZWFkRW50cnkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdHlwZUFoZWFkRW50cnlbMF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRBVEU6IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMudmFsdWUgPT09ICd0b2RheScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGRhdGVWYWx1ZTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlVmFsdWUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKHRoaXMudmFsdWUsIHRoaXMuZGF0ZURpc3BsYXlGb3JtYXQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVZhbHVlID0gbmV3IERhdGUoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWREYXRlKGRhdGVWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZVBhcnQgPSBEYXRlRm5zVXRpbHMuZm9ybWF0RGF0ZShkYXRlVmFsdWUsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBgJHtkYXRlUGFydH1UMDA6MDA6MDAuMDAwWmA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FOiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLnZhbHVlID09PSAnbm93Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVGltZVZhbHVlID0gdGhpcy52YWx1ZSAhPT0gbnVsbCA/IERhdGVGbnNVdGlscy5nZXREYXRlKHRoaXMudmFsdWUpIDogbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF0ZShkYXRlVGltZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gZGF0ZVRpbWVWYWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5OVU1CRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy5lbmFibGVGcmFjdGlvbnMgPyBwYXJzZUZsb2F0KHRoaXMudmFsdWUpIDogcGFyc2VJbnQodGhpcy52YWx1ZSwgMTApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5BTU9VTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy5lbmFibGVGcmFjdGlvbnMgPyBwYXJzZUZsb2F0KHRoaXMudmFsdWUpIDogcGFyc2VJbnQodGhpcy52YWx1ZSwgMTApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBGb3JtRmllbGRUeXBlcy5ERUNJTUFMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkJPT0xFQU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLnZhbHVlIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLlBFT1BMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXNbdGhpcy5pZF0gPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEZvcm1GaWVsZFR5cGVzLkZVTkNUSU9OQUxfR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVzW3RoaXMuaWRdID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaG91bGRVcGRhdGVGb3JtVmFsdWVzKHRoaXMudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlc1t0aGlzLmlkXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtLm9uRm9ybUZpZWxkQ2hhbmdlZCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZmllbGQgdHlwZSBpcyBpbnZhbGlkLCByZXF1aXJlcyBhIHR5cGUgdG8gYmUgYSBgY29udGFpbmVyYFxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUgZmllbGQgdHlwZVxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0eXBlIGlzIGEgYGNvbnRhaW5lcmAsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAgICovXG4gICAgaXNJbnZhbGlkRmllbGRUeXBlKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZSA9PT0gJ2NvbnRhaW5lcic7XG4gICAgfVxuXG4gICAgZ2V0T3B0aW9uTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvcHRpb246IEZvcm1GaWVsZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy52YWx1ZSk7XG4gICAgICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubmFtZSA6IG51bGw7XG4gICAgfVxuXG4gICAgaGFzT3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBpc0VtcHR5VmFsdWVPcHRpb24ob3B0aW9uOiBGb3JtRmllbGRPcHRpb24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzRW1wdHlWYWx1ZSAmJiBvcHRpb24/LmlkID09PSB0aGlzLmRlZmF1bHRFbXB0eU9wdGlvbklkO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvdWxkVXBkYXRlRm9ybVZhbHVlcyh0eXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhRm9ybUZpZWxkVHlwZXMuaXNSZWFkT25seVR5cGUodHlwZSkgJiYgIXRoaXMuaXNJbnZhbGlkRmllbGRUeXBlKHR5cGUpICYmICFGb3JtRmllbGRUeXBlcy5pc1NlY3Rpb25UeXBlKHR5cGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkT3B0aW9ucyhvcHRpb25zOiBGb3JtRmllbGRPcHRpb25bXSkge1xuICAgICAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gdGhpcy5hZGRPcHRpb24ob3B0aW9uKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRPcHRpb24ob3B0aW9uOiBGb3JtRmllbGRPcHRpb24pIHtcbiAgICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdD8uaWQgPT09IG9wdGlvbj8uaWQpO1xuICAgICAgICBpZiAoIWFscmVhZHlFeGlzdHMpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlVmFsaWRPcHRpb25zKG9wdGlvbnM6IGFueSk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3B0aW9ucykgPyBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiB0aGlzLmlzVmFsaWRPcHRpb24ob3B0aW9uKSkgOiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlT3B0aW9ucyhvcHRpb25zOiBhbnksIG9wdGlvblR5cGU6IEZpZWxkT3B0aW9uVHlwZSk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvblR5cGUgPT09ICdyZXN0JyA/IFtdIDogdGhpcy5wYXJzZVZhbGlkT3B0aW9ucyhvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRPcHRpb24ob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9wdGlvbikgJiYgb3B0aW9uPy5pZCAmJiBvcHRpb24/Lm5hbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0RhdGVGaWVsZChqc29uOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGpzb24ucGFyYW1zPy5maWVsZD8udHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuREFURSB8fCBqc29uLnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0RhdGVUaW1lRmllbGQoanNvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBqc29uLnBhcmFtcz8uZmllbGQ/LnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkRBVEVUSU1FIHx8IGpzb24udHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuREFURVRJTUU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NoZWNrYm94RmllbGQoanNvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBqc29uLnBhcmFtcz8uZmllbGQ/LnR5cGUgPT09IEZvcm1GaWVsZFR5cGVzLkJPT0xFQU4gfHwganNvbi50eXBlID09PSBGb3JtRmllbGRUeXBlcy5CT09MRUFOO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
export class FormOutcomeEvent {
|
|
18
|
-
get outcome() {
|
|
19
|
-
return this._outcome;
|
|
20
|
-
}
|
|
21
|
-
get defaultPrevented() {
|
|
22
|
-
return this._defaultPrevented;
|
|
23
|
-
}
|
|
24
|
-
constructor(outcome) {
|
|
25
|
-
this._defaultPrevented = false;
|
|
26
|
-
this._outcome = outcome;
|
|
27
|
-
}
|
|
28
|
-
preventDefault() {
|
|
29
|
-
this._defaultPrevented = true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vdXRjb21lLWV2ZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9jb3JlL2Zvcm0tb3V0Y29tZS1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWdCO0lBSXpCLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksT0FBeUI7UUFWN0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBV3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgRm9ybU91dGNvbWVNb2RlbCB9IGZyb20gJy4vZm9ybS1vdXRjb21lLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1PdXRjb21lRXZlbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX291dGNvbWU6IEZvcm1PdXRjb21lTW9kZWw7XG4gICAgcHJpdmF0ZSBfZGVmYXVsdFByZXZlbnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IG91dGNvbWUoKTogRm9ybU91dGNvbWVNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRjb21lO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0UHJldmVudGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFByZXZlbnRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvdXRjb21lOiBGb3JtT3V0Y29tZU1vZGVsKSB7XG4gICAgICAgIHRoaXMuX291dGNvbWUgPSBvdXRjb21lO1xuICAgIH1cblxuICAgIHByZXZlbnREZWZhdWx0KCkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|