@hmcts/ccd-case-ui-toolkit 5.0.2-angular11-upgrade → 5.0.6-angular11-upgrade
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +7239 -0
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -0
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +17 -0
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -0
- package/esm2015/hmcts-ccd-case-ui-toolkit.js +5 -0
- package/esm2015/lib/app.config.js +37 -0
- package/esm2015/lib/components/banners/alert/alert-icon-class.pipe.js +25 -0
- package/esm2015/lib/components/banners/alert/alert.component.js +101 -0
- package/esm2015/lib/components/banners/alert/alert.module.js +26 -0
- package/esm2015/lib/components/banners/alert/index.js +4 -0
- package/esm2015/lib/components/banners/banners.module.js +27 -0
- package/esm2015/lib/components/banners/index.js +2 -0
- package/esm2015/lib/components/body/body.component.js +25 -0
- package/esm2015/lib/components/body/body.module.js +20 -0
- package/esm2015/lib/components/body/index.js +2 -0
- package/esm2015/lib/components/footer/footer.component.js +105 -0
- package/esm2015/lib/components/footer/footers.module.js +19 -0
- package/esm2015/lib/components/footer/index.js +2 -0
- package/esm2015/lib/components/form/date-input/date-input.component.js +329 -0
- package/esm2015/lib/components/form/date-input/index.js +2 -0
- package/esm2015/lib/components/form/form.module.js +27 -0
- package/esm2015/lib/components/form/index.js +2 -0
- package/esm2015/lib/components/header/header-bar/header-bar.component.js +108 -0
- package/esm2015/lib/components/header/header-bar/index.js +2 -0
- package/esm2015/lib/components/header/headers.module.js +23 -0
- package/esm2015/lib/components/header/index.js +5 -0
- package/esm2015/lib/components/header/navigation/index.js +3 -0
- package/esm2015/lib/components/header/navigation/navigation-item.component.js +44 -0
- package/esm2015/lib/components/header/navigation/navigation.component.js +30 -0
- package/esm2015/lib/components/header/phase/index.js +2 -0
- package/esm2015/lib/components/header/phase/phase.component.js +42 -0
- package/esm2015/lib/components/index.js +7 -0
- package/esm2015/lib/components/tabs/index.js +4 -0
- package/esm2015/lib/components/tabs/tab.component.js +34 -0
- package/esm2015/lib/components/tabs/tabs.component.js +86 -0
- package/esm2015/lib/components/tabs/tabs.module.js +36 -0
- package/esm2015/lib/shared/commons/constants.js +12 -0
- package/esm2015/lib/shared/components/case-editor/case-access-utils/index.js +94 -0
- package/esm2015/lib/shared/components/case-editor/domain/confirmation.model.js +21 -0
- package/esm2015/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.js +7 -0
- package/esm2015/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.js +2 -0
- package/esm2015/lib/shared/components/case-editor/domain/event-completion-states.enum.model.js +14 -0
- package/esm2015/lib/shared/components/case-editor/domain/index.js +8 -0
- package/esm2015/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.js +3 -0
- package/esm2015/lib/shared/components/case-editor/domain/wizard-page-field.model.js +3 -0
- package/esm2015/lib/shared/components/case-editor/domain/wizard-page.model.js +28 -0
- package/esm2015/lib/shared/components/case-editor/domain/wizard.model.js +57 -0
- package/esm2015/lib/shared/components/case-editor/services/case.notifier.js +19 -0
- package/esm2015/lib/shared/components/case-editor/services/cases.service.js +270 -0
- package/esm2015/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.js +115 -0
- package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +170 -0
- package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +59 -0
- package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +57 -0
- package/esm2015/lib/shared/components/helpers/index.js +2 -0
- package/esm2015/lib/shared/components/helpers/init-dialog-helper.js +16 -0
- package/esm2015/lib/shared/components/palette/address/address-option.model.js +24 -0
- package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +244 -0
- package/esm2015/lib/shared/components/palette/base-field/abstract-field-read.component.js +32 -0
- package/esm2015/lib/shared/components/palette/base-field/abstract-field-write.component.js +44 -0
- package/esm2015/lib/shared/components/palette/base-field/abstract-form-field.component.js +79 -0
- package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +93 -0
- package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +85 -0
- package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +84 -0
- package/esm2015/lib/shared/components/palette/base-field/index.js +8 -0
- package/esm2015/lib/shared/components/palette/base-field/palette-context.enum.js +7 -0
- package/esm2015/lib/shared/components/palette/base-field/payment-field.component.js +32 -0
- package/esm2015/lib/shared/components/palette/case-link/read-case-link-field.component.js +38 -0
- package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +125 -0
- package/esm2015/lib/shared/components/palette/collection/collection-create-checker.service.js +42 -0
- package/esm2015/lib/shared/components/palette/collection/index.js +3 -0
- package/esm2015/lib/shared/components/palette/collection/read-collection-field.component.js +91 -0
- package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +414 -0
- package/esm2015/lib/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.js +29 -0
- package/esm2015/lib/shared/components/palette/complex/ccd-cyapage-label-filter.pipe.js +29 -0
- package/esm2015/lib/shared/components/palette/complex/ccd-read-fields-filter.pipe.js +154 -0
- package/esm2015/lib/shared/components/palette/complex/ccd-tab-fields.pipe.js +31 -0
- package/esm2015/lib/shared/components/palette/complex/cdd-page-fields.pipe.js +39 -0
- package/esm2015/lib/shared/components/palette/complex/fields-filter.pipe.js +103 -0
- package/esm2015/lib/shared/components/palette/complex/index.js +12 -0
- package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +414 -0
- package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +61 -0
- package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +97 -0
- package/esm2015/lib/shared/components/palette/complex/read-complex-field.component.js +81 -0
- package/esm2015/lib/shared/components/palette/complex/sort-order.js +7 -0
- package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +178 -0
- package/esm2015/lib/shared/components/palette/date/index.js +4 -0
- package/esm2015/lib/shared/components/palette/date/read-date-field.component.js +29 -0
- package/esm2015/lib/shared/components/palette/date/write-date-container-field.component.js +41 -0
- package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +81 -0
- package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker-utils.js +12 -0
- package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +300 -0
- package/esm2015/lib/shared/components/palette/datetime-picker/index.js +2 -0
- package/esm2015/lib/shared/components/palette/document/document-url.pipe.js +24 -0
- package/esm2015/lib/shared/components/palette/document/file-upload-progress.guard.js +29 -0
- package/esm2015/lib/shared/components/palette/document/file-upload-state.service.js +16 -0
- package/esm2015/lib/shared/components/palette/document/index.js +4 -0
- package/esm2015/lib/shared/components/palette/document/read-document-field.component.js +80 -0
- package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +369 -0
- package/esm2015/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.js +18 -0
- package/esm2015/lib/shared/components/palette/dynamic-list/index.js +4 -0
- package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +35 -0
- package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +121 -0
- package/esm2015/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.js +25 -0
- package/esm2015/lib/shared/components/palette/dynamic-radio-list/index.js +4 -0
- package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +41 -0
- package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +126 -0
- package/esm2015/lib/shared/components/palette/email/index.js +3 -0
- package/esm2015/lib/shared/components/palette/email/read-email-field.component.js +36 -0
- package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +76 -0
- package/esm2015/lib/shared/components/palette/fixed-list/fixed-list.pipe.js +23 -0
- package/esm2015/lib/shared/components/palette/fixed-list/index.js +4 -0
- package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +25 -0
- package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +110 -0
- package/esm2015/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.js +18 -0
- package/esm2015/lib/shared/components/palette/fixed-radio-list/index.js +4 -0
- package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +25 -0
- package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +101 -0
- package/esm2015/lib/shared/components/palette/history/case-history-viewer-field.component.js +21 -0
- package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +127 -0
- package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +234 -0
- package/esm2015/lib/shared/components/palette/history/event-log/event-log.component.js +83 -0
- package/esm2015/lib/shared/components/palette/history/event-log/index.js +4 -0
- package/esm2015/lib/shared/components/palette/history/index.js +3 -0
- package/esm2015/lib/shared/components/palette/label/index.js +2 -0
- package/esm2015/lib/shared/components/palette/label/label-field.component.js +37 -0
- package/esm2015/lib/shared/components/palette/markdown/index.js +2 -0
- package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +44 -0
- package/esm2015/lib/shared/components/palette/money-gbp/index.js +4 -0
- package/esm2015/lib/shared/components/palette/money-gbp/money-gbp-input.component.js +123 -0
- package/esm2015/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.js +48 -0
- package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +83 -0
- package/esm2015/lib/shared/components/palette/multi-select-list/index.js +3 -0
- package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +50 -0
- package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +132 -0
- package/esm2015/lib/shared/components/palette/number/index.js +3 -0
- package/esm2015/lib/shared/components/palette/number/read-number-field.component.js +25 -0
- package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +76 -0
- package/esm2015/lib/shared/components/palette/order-summary/fee-value.model.js +3 -0
- package/esm2015/lib/shared/components/palette/order-summary/fee.model.js +3 -0
- package/esm2015/lib/shared/components/palette/order-summary/index.js +7 -0
- package/esm2015/lib/shared/components/palette/order-summary/order-summary.model.js +3 -0
- package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +71 -0
- package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +51 -0
- package/esm2015/lib/shared/components/palette/order-summary/write-order-summary-field.component.js +49 -0
- package/esm2015/lib/shared/components/palette/organisation/index.js +6 -0
- package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +90 -0
- package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +100 -0
- package/esm2015/lib/shared/components/palette/organisation/read-organisation-field.component.js +63 -0
- package/esm2015/lib/shared/components/palette/organisation/write-organisation-complex-field.component.js +37 -0
- package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +394 -0
- package/esm2015/lib/shared/components/palette/palette.module.js +413 -0
- package/esm2015/lib/shared/components/palette/palette.service.js +114 -0
- package/esm2015/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.js +27 -0
- package/esm2015/lib/shared/components/palette/payment/index.js +2 -0
- package/esm2015/lib/shared/components/palette/phone-uk/index.js +3 -0
- package/esm2015/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.js +23 -0
- package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +76 -0
- package/esm2015/lib/shared/components/palette/text/index.js +3 -0
- package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +23 -0
- package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +81 -0
- package/esm2015/lib/shared/components/palette/text-area/index.js +3 -0
- package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +23 -0
- package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +91 -0
- package/esm2015/lib/shared/components/palette/unsupported-field.component.js +17 -0
- package/esm2015/lib/shared/components/palette/utils/dash.pipe.js +16 -0
- package/esm2015/lib/shared/components/palette/utils/date.pipe.js +132 -0
- package/esm2015/lib/shared/components/palette/utils/field-label.pipe.js +22 -0
- package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +41 -0
- package/esm2015/lib/shared/components/palette/utils/index.js +10 -0
- package/esm2015/lib/shared/components/palette/utils/is-compound.pipe.js +31 -0
- package/esm2015/lib/shared/components/palette/utils/is-mandatory.pipe.js +21 -0
- package/esm2015/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.js +31 -0
- package/esm2015/lib/shared/components/palette/utils/is-read-only.pipe.js +21 -0
- package/esm2015/lib/shared/components/palette/utils/utils.module.js +62 -0
- package/esm2015/lib/shared/components/palette/waystopay/index.js +2 -0
- package/esm2015/lib/shared/components/palette/waystopay/waystopay-field.component.js +37 -0
- package/esm2015/lib/shared/components/palette/yes-no/index.js +4 -0
- package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +32 -0
- package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +105 -0
- package/esm2015/lib/shared/components/palette/yes-no/yes-no.service.js +48 -0
- package/esm2015/lib/shared/components/search-filters/domain/index.js +2 -0
- package/esm2015/lib/shared/components/search-filters/domain/search-input.model.js +10 -0
- package/esm2015/lib/shared/components/search-filters/index.js +5 -0
- package/esm2015/lib/shared/components/search-filters/search-filters-wrapper.component.js +61 -0
- package/esm2015/lib/shared/components/search-filters/search-filters.component.js +296 -0
- package/esm2015/lib/shared/components/search-filters/search-filters.module.js +65 -0
- package/esm2015/lib/shared/directives/conditional-show/conditional-show-form.directive.js +164 -0
- package/esm2015/lib/shared/directives/conditional-show/conditional-show.module.js +33 -0
- package/esm2015/lib/shared/directives/conditional-show/domain/conditional-show.model.js +296 -0
- package/esm2015/lib/shared/directives/conditional-show/domain/index.js +2 -0
- package/esm2015/lib/shared/directives/conditional-show/index.js +5 -0
- package/esm2015/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.js +19 -0
- package/esm2015/lib/shared/directives/conditional-show/services/grey-bar.service.js +47 -0
- package/esm2015/lib/shared/directives/conditional-show/services/index.js +3 -0
- package/esm2015/lib/shared/directives/focus-element/focus-element.directive.js +36 -0
- package/esm2015/lib/shared/directives/focus-element/focus-element.module.js +21 -0
- package/esm2015/lib/shared/directives/focus-element/index.js +3 -0
- package/esm2015/lib/shared/directives/index.js +4 -0
- package/esm2015/lib/shared/directives/substitutor/index.js +4 -0
- package/esm2015/lib/shared/directives/substitutor/label-substitutor.directive.js +78 -0
- package/esm2015/lib/shared/directives/substitutor/label-substitutor.module.js +30 -0
- package/esm2015/lib/shared/directives/substitutor/services/index.js +2 -0
- package/esm2015/lib/shared/directives/substitutor/services/placeholder.service.js +200 -0
- package/esm2015/lib/shared/domain/activity/activity.model.js +10 -0
- package/esm2015/lib/shared/domain/activity/index.js +2 -0
- package/esm2015/lib/shared/domain/addresses/address.model.js +12 -0
- package/esm2015/lib/shared/domain/addresses/index.js +2 -0
- package/esm2015/lib/shared/domain/alert/alert-level.model.js +2 -0
- package/esm2015/lib/shared/domain/alert/alert.model.js +3 -0
- package/esm2015/lib/shared/domain/alert/index.js +3 -0
- package/esm2015/lib/shared/domain/case-details.model.js +3 -0
- package/esm2015/lib/shared/domain/case-event-data.model.js +3 -0
- package/esm2015/lib/shared/domain/case-view/access-types.model.js +4 -0
- package/esm2015/lib/shared/domain/case-view/case-event-trigger.model.js +22 -0
- package/esm2015/lib/shared/domain/case-view/case-print-document.model.js +3 -0
- package/esm2015/lib/shared/domain/case-view/case-tab.model.js +11 -0
- package/esm2015/lib/shared/domain/case-view/case-view-event.model.js +3 -0
- package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +4 -0
- package/esm2015/lib/shared/domain/case-view/case-view.model.js +16 -0
- package/esm2015/lib/shared/domain/case-view/challenged-access-request.model.js +2 -0
- package/esm2015/lib/shared/domain/case-view/index.js +12 -0
- package/esm2015/lib/shared/domain/case-view/review-specific-access-request.model.js +2 -0
- package/esm2015/lib/shared/domain/case-view/role-assignment-response.model.js +2 -0
- package/esm2015/lib/shared/domain/case-view/role-request.model.js +2 -0
- package/esm2015/lib/shared/domain/case-view/specific-access-request.model.js +2 -0
- package/esm2015/lib/shared/domain/definition/access-control-list.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/banner.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/case-event.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/case-field.model.js +194 -0
- package/esm2015/lib/shared/domain/definition/case-state.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/case-type-lite.model.js +5 -0
- package/esm2015/lib/shared/domain/definition/case-type.model.js +11 -0
- package/esm2015/lib/shared/domain/definition/event-case-field.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +2 -0
- package/esm2015/lib/shared/domain/definition/field-type.model.js +20 -0
- package/esm2015/lib/shared/domain/definition/fixed-list-item.model.js +3 -0
- package/esm2015/lib/shared/domain/definition/index.js +12 -0
- package/esm2015/lib/shared/domain/definition/jurisdiction.model.js +3 -0
- package/esm2015/lib/shared/domain/document/document-data.model.js +13 -0
- package/esm2015/lib/shared/domain/document/index.js +2 -0
- package/esm2015/lib/shared/domain/draft.model.js +11 -0
- package/esm2015/lib/shared/domain/error-message.model.js +2 -0
- package/esm2015/lib/shared/domain/http/http-error.model.js +27 -0
- package/esm2015/lib/shared/domain/http/index.js +2 -0
- package/esm2015/lib/shared/domain/index.js +23 -0
- package/esm2015/lib/shared/domain/order/index.js +2 -0
- package/esm2015/lib/shared/domain/order/orderable.model.js +2 -0
- package/esm2015/lib/shared/domain/organisation/index.js +3 -0
- package/esm2015/lib/shared/domain/organisation/organisation-converter.js +42 -0
- package/esm2015/lib/shared/domain/organisation/simple-organisation.model.js +2 -0
- package/esm2015/lib/shared/domain/pagination-metadata.model.js +3 -0
- package/esm2015/lib/shared/domain/predicate.model.js +2 -0
- package/esm2015/lib/shared/domain/profile/index.js +2 -0
- package/esm2015/lib/shared/domain/profile/profile.model.js +29 -0
- package/esm2015/lib/shared/domain/search/field.model.js +11 -0
- package/esm2015/lib/shared/domain/search/index.js +5 -0
- package/esm2015/lib/shared/domain/search/search-result-view-column.model.js +3 -0
- package/esm2015/lib/shared/domain/search/search-result-view-item.model.js +11 -0
- package/esm2015/lib/shared/domain/search/search-result-view.model.js +22 -0
- package/esm2015/lib/shared/domain/search/sorting/search-result-view-item-comparator.js +2 -0
- package/esm2015/lib/shared/domain/search/sorting/sort-order.js +7 -0
- package/esm2015/lib/shared/domain/search/sorting/sort-parameters.js +7 -0
- package/esm2015/lib/shared/domain/user/user-details.model.js +2 -0
- package/esm2015/lib/shared/domain/user/user-info.model.js +2 -0
- package/esm2015/lib/shared/domain/work-allocation/Task.js +21 -0
- package/esm2015/lib/shared/domain/work-allocation/TaskPayload.js +2 -0
- package/esm2015/lib/shared/domain/work-allocation/index.js +2 -0
- package/esm2015/lib/shared/domain/work-allocation/task-response.model.js +2 -0
- package/esm2015/lib/shared/domain/work-allocation/task-search-parameter.model.js +2 -0
- package/esm2015/lib/shared/domain/workbasket/index.js +2 -0
- package/esm2015/lib/shared/domain/workbasket/workbasket-input.model.js +12 -0
- package/esm2015/lib/shared/fixture/case-field-builder.js +69 -0
- package/esm2015/lib/shared/fixture/shared.test.fixture.js +129 -0
- package/esm2015/lib/shared/index.js +8 -0
- package/esm2015/lib/shared/pipes/case-reference/case-reference.pipe.js +33 -0
- package/esm2015/lib/shared/pipes/case-reference/index.js +2 -0
- package/esm2015/lib/shared/pipes/case-title/ccd-case-title.pipe.js +29 -0
- package/esm2015/lib/shared/pipes/case-title/index.js +2 -0
- package/esm2015/lib/shared/pipes/index.js +5 -0
- package/esm2015/lib/shared/pipes/pipes.module.js +37 -0
- package/esm2015/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.js +24 -0
- package/esm2015/lib/shared/services/activity/activity.polling.service.js +112 -0
- package/esm2015/lib/shared/services/activity/activity.service.js +91 -0
- package/esm2015/lib/shared/services/activity/index.js +3 -0
- package/esm2015/lib/shared/services/addresses/address-parser.js +76 -0
- package/esm2015/lib/shared/services/addresses/addresses.service.js +57 -0
- package/esm2015/lib/shared/services/addresses/index.js +2 -0
- package/esm2015/lib/shared/services/alert/alert.service.js +122 -0
- package/esm2015/lib/shared/services/alert/index.js +2 -0
- package/esm2015/lib/shared/services/auth/auth.service.js +33 -0
- package/esm2015/lib/shared/services/auth/index.js +2 -0
- package/esm2015/lib/shared/services/banners/banners.service.js +33 -0
- package/esm2015/lib/shared/services/banners/index.js +2 -0
- package/esm2015/lib/shared/services/browser/browser.service.js +24 -0
- package/esm2015/lib/shared/services/browser/index.js +2 -0
- package/esm2015/lib/shared/services/case-fields/case-field.service.js +34 -0
- package/esm2015/lib/shared/services/case-fields/format-translator.service.js +242 -0
- package/esm2015/lib/shared/services/case-fields/index.js +2 -0
- package/esm2015/lib/shared/services/definitions/definitions.module.js +19 -0
- package/esm2015/lib/shared/services/definitions/definitions.service.js +35 -0
- package/esm2015/lib/shared/services/definitions/index.js +3 -0
- package/esm2015/lib/shared/services/document-management/document-management.service.js +112 -0
- package/esm2015/lib/shared/services/document-management/index.js +2 -0
- package/esm2015/lib/shared/services/draft/draft.service.js +86 -0
- package/esm2015/lib/shared/services/draft/index.js +2 -0
- package/esm2015/lib/shared/services/error/error-notifier.service.js +18 -0
- package/esm2015/lib/shared/services/error/index.js +2 -0
- package/esm2015/lib/shared/services/eventStatusService/event-status.service.js +21 -0
- package/esm2015/lib/shared/services/eventStatusService/index.js +2 -0
- package/esm2015/lib/shared/services/fields/fields.purger.js +277 -0
- package/esm2015/lib/shared/services/fields/fields.utils.js +334 -0
- package/esm2015/lib/shared/services/fields/index.js +3 -0
- package/esm2015/lib/shared/services/form/field-type-sanitiser.js +75 -0
- package/esm2015/lib/shared/services/form/form-error.service.js +46 -0
- package/esm2015/lib/shared/services/form/form-validators.service.js +56 -0
- package/esm2015/lib/shared/services/form/form-value.service.js +490 -0
- package/esm2015/lib/shared/services/form/index.js +5 -0
- package/esm2015/lib/shared/services/http/http-error.service.js +65 -0
- package/esm2015/lib/shared/services/http/http.service.js +93 -0
- package/esm2015/lib/shared/services/http/index.js +3 -0
- package/esm2015/lib/shared/services/index.js +29 -0
- package/esm2015/lib/shared/services/jurisdiction/index.js +2 -0
- package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +18 -0
- package/esm2015/lib/shared/services/loading/index.js +3 -0
- package/esm2015/lib/shared/services/loading/loading.module.js +22 -0
- package/esm2015/lib/shared/services/loading/loading.service.js +38 -0
- package/esm2015/lib/shared/services/navigation/index.js +3 -0
- package/esm2015/lib/shared/services/navigation/navigation-notifier.service.js +18 -0
- package/esm2015/lib/shared/services/navigation/navigation-origin.model.js +9 -0
- package/esm2015/lib/shared/services/order/index.js +2 -0
- package/esm2015/lib/shared/services/order/order.service.js +39 -0
- package/esm2015/lib/shared/services/organisation/index.js +2 -0
- package/esm2015/lib/shared/services/organisation/organisation.service.js +57 -0
- package/esm2015/lib/shared/services/profile/index.js +3 -0
- package/esm2015/lib/shared/services/profile/profile.notifier.js +19 -0
- package/esm2015/lib/shared/services/profile/profile.service.js +34 -0
- package/esm2015/lib/shared/services/request/index.js +2 -0
- package/esm2015/lib/shared/services/request/request.options.builder.js +55 -0
- package/esm2015/lib/shared/services/router/index.js +2 -0
- package/esm2015/lib/shared/services/router/router-helper.service.js +20 -0
- package/esm2015/lib/shared/services/search/index.js +2 -0
- package/esm2015/lib/shared/services/search/search.service.js +83 -0
- package/esm2015/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.js +71 -0
- package/esm2015/lib/shared/services/session/index.js +2 -0
- package/esm2015/lib/shared/services/session/session-storage.service.js +34 -0
- package/esm2015/lib/shared/services/window/index.js +2 -0
- package/esm2015/lib/shared/services/window/window.service.js +37 -0
- package/esm2015/lib/shared/services/workbasket/index.js +2 -0
- package/esm2015/lib/shared/services/workbasket/workbasket-input-filter.service.js +53 -0
- package/esm2015/lib/shared/test/test-route-snapshot-builder.js +39 -0
- package/esm2015/public-api.js +3 -0
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +5985 -0
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -0
- package/hmcts-ccd-case-ui-toolkit.d.ts +6 -0
- package/hmcts-ccd-case-ui-toolkit.d.ts.map +1 -0
- package/lib/app.config.d.ts +125 -0
- package/lib/app.config.d.ts.map +1 -0
- package/lib/components/banners/alert/alert-icon-class.pipe.d.ts +10 -0
- package/lib/components/banners/alert/alert-icon-class.pipe.d.ts.map +1 -0
- package/lib/components/banners/alert/alert.component.d.ts +19 -0
- package/lib/components/banners/alert/alert.component.d.ts.map +1 -0
- package/lib/components/banners/alert/alert.module.d.ts +10 -0
- package/lib/components/banners/alert/alert.module.d.ts.map +1 -0
- package/lib/components/banners/alert/index.d.ts +4 -0
- package/lib/components/banners/alert/index.d.ts.map +1 -0
- package/lib/components/banners/banners.module.d.ts +9 -0
- package/lib/components/banners/banners.module.d.ts.map +1 -0
- package/lib/components/banners/index.d.ts +2 -0
- package/lib/components/banners/index.d.ts.map +1 -0
- package/lib/components/body/body.component.d.ts +6 -0
- package/lib/components/body/body.component.d.ts.map +1 -0
- package/lib/components/body/body.module.d.ts +10 -0
- package/lib/components/body/body.module.d.ts.map +1 -0
- package/lib/components/body/index.d.ts +2 -0
- package/lib/components/body/index.d.ts.map +1 -0
- package/lib/components/footer/footer.component.d.ts +10 -0
- package/lib/components/footer/footer.component.d.ts.map +1 -0
- package/lib/components/footer/footers.module.d.ts +9 -0
- package/lib/components/footer/footers.module.d.ts.map +1 -0
- package/lib/components/footer/index.d.ts +2 -0
- package/lib/components/footer/index.d.ts.map +1 -0
- package/lib/components/form/date-input/date-input.component.d.ts +54 -0
- package/lib/components/form/date-input/date-input.component.d.ts.map +1 -0
- package/lib/components/form/date-input/index.d.ts +2 -0
- package/lib/components/form/date-input/index.d.ts.map +1 -0
- package/lib/components/form/form.module.d.ts +9 -0
- package/lib/components/form/form.module.d.ts.map +1 -0
- package/lib/components/form/index.d.ts +2 -0
- package/lib/components/form/index.d.ts.map +1 -0
- package/lib/components/header/header-bar/header-bar.component.d.ts +11 -0
- package/lib/components/header/header-bar/header-bar.component.d.ts.map +1 -0
- package/lib/components/header/header-bar/index.d.ts +2 -0
- package/lib/components/header/header-bar/index.d.ts.map +1 -0
- package/lib/components/header/headers.module.d.ts +13 -0
- package/lib/components/header/headers.module.d.ts.map +1 -0
- package/lib/components/header/index.d.ts +5 -0
- package/lib/components/header/index.d.ts.map +1 -0
- package/lib/components/header/navigation/index.d.ts +3 -0
- package/lib/components/header/navigation/index.d.ts.map +1 -0
- package/lib/components/header/navigation/navigation-item.component.d.ts +9 -0
- package/lib/components/header/navigation/navigation-item.component.d.ts.map +1 -0
- package/lib/components/header/navigation/navigation.component.d.ts +7 -0
- package/lib/components/header/navigation/navigation.component.d.ts.map +1 -0
- package/lib/components/header/phase/index.d.ts +2 -0
- package/lib/components/header/phase/index.d.ts.map +1 -0
- package/lib/components/header/phase/phase.component.d.ts +9 -0
- package/lib/components/header/phase/phase.component.d.ts.map +1 -0
- package/lib/components/index.d.ts +7 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/tabs/index.d.ts +4 -0
- package/lib/components/tabs/index.d.ts.map +1 -0
- package/lib/components/tabs/tab.component.d.ts +9 -0
- package/lib/components/tabs/tab.component.d.ts.map +1 -0
- package/lib/components/tabs/tabs.component.d.ts +16 -0
- package/lib/components/tabs/tabs.component.d.ts.map +1 -0
- package/lib/components/tabs/tabs.module.d.ts +11 -0
- package/lib/components/tabs/tabs.module.d.ts.map +1 -0
- package/lib/shared/commons/constants.d.ts +8 -0
- package/lib/shared/commons/constants.d.ts.map +1 -0
- package/lib/shared/components/case-editor/case-access-utils/index.d.ts +25 -0
- package/lib/shared/components/case-editor/case-access-utils/index.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/confirmation.model.d.ts +12 -0
- package/lib/shared/components/case-editor/domain/confirmation.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.d.ts +6 -0
- package/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.d.ts +24 -0
- package/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/event-completion-states.enum.model.d.ts +13 -0
- package/lib/shared/components/case-editor/domain/event-completion-states.enum.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/index.d.ts +8 -0
- package/lib/shared/components/case-editor/domain/index.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.d.ts +8 -0
- package/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/wizard-page-field.model.d.ts +9 -0
- package/lib/shared/components/case-editor/domain/wizard-page-field.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/wizard-page.model.d.ts +17 -0
- package/lib/shared/components/case-editor/domain/wizard-page.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/domain/wizard.model.d.ts +18 -0
- package/lib/shared/components/case-editor/domain/wizard.model.d.ts.map +1 -0
- package/lib/shared/components/case-editor/services/case.notifier.d.ts +12 -0
- package/lib/shared/components/case-editor/services/case.notifier.d.ts.map +1 -0
- package/lib/shared/components/case-editor/services/cases.service.d.ts +59 -0
- package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -0
- package/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.d.ts +17 -0
- package/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.d.ts.map +1 -0
- package/lib/shared/components/case-editor/services/work-allocation.service.d.ts +72 -0
- package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -0
- package/lib/shared/components/dialogs/document-dialog/document-dialog.component.d.ts +14 -0
- package/lib/shared/components/dialogs/document-dialog/document-dialog.component.d.ts.map +1 -0
- package/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.d.ts +12 -0
- package/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.d.ts.map +1 -0
- package/lib/shared/components/helpers/index.d.ts +2 -0
- package/lib/shared/components/helpers/index.d.ts.map +1 -0
- package/lib/shared/components/helpers/init-dialog-helper.d.ts +3 -0
- package/lib/shared/components/helpers/init-dialog-helper.d.ts.map +1 -0
- package/lib/shared/components/palette/address/address-option.model.d.ts +10 -0
- package/lib/shared/components/palette/address/address-option.model.d.ts.map +1 -0
- package/lib/shared/components/palette/address/write-address-field.component.d.ts +36 -0
- package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts +17 -0
- package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts +17 -0
- package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +20 -0
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +16 -0
- package/lib/shared/components/palette/base-field/field-read-label.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/field-read.component.d.ts +20 -0
- package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/field-write.component.d.ts +19 -0
- package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/index.d.ts +8 -0
- package/lib/shared/components/palette/base-field/index.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/palette-context.enum.d.ts +6 -0
- package/lib/shared/components/palette/base-field/palette-context.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/payment-field.component.d.ts +14 -0
- package/lib/shared/components/palette/base-field/payment-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts +8 -0
- package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts +16 -0
- package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/collection/collection-create-checker.service.d.ts +13 -0
- package/lib/shared/components/palette/collection/collection-create-checker.service.d.ts.map +1 -0
- package/lib/shared/components/palette/collection/index.d.ts +3 -0
- package/lib/shared/components/palette/collection/index.d.ts.map +1 -0
- package/lib/shared/components/palette/collection/read-collection-field.component.d.ts +11 -0
- package/lib/shared/components/palette/collection/read-collection-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +56 -0
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.d.ts +11 -0
- package/lib/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/ccd-cyapage-label-filter.pipe.d.ts +10 -0
- package/lib/shared/components/palette/complex/ccd-cyapage-label-filter.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/ccd-read-fields-filter.pipe.d.ts +27 -0
- package/lib/shared/components/palette/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/ccd-tab-fields.pipe.d.ts +10 -0
- package/lib/shared/components/palette/complex/ccd-tab-fields.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/cdd-page-fields.pipe.d.ts +11 -0
- package/lib/shared/components/palette/complex/cdd-page-fields.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/fields-filter.pipe.d.ts +23 -0
- package/lib/shared/components/palette/complex/fields-filter.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/index.d.ts +12 -0
- package/lib/shared/components/palette/complex/index.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts +32 -0
- package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts +13 -0
- package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts +9 -0
- package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/read-complex-field.component.d.ts +13 -0
- package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/sort-order.d.ts +6 -0
- package/lib/shared/components/palette/complex/sort-order.d.ts.map +1 -0
- package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +30 -0
- package/lib/shared/components/palette/complex/write-complex-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/date/index.d.ts +4 -0
- package/lib/shared/components/palette/date/index.d.ts.map +1 -0
- package/lib/shared/components/palette/date/read-date-field.component.d.ts +8 -0
- package/lib/shared/components/palette/date/read-date-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/date/write-date-container-field.component.d.ts +7 -0
- package/lib/shared/components/palette/date/write-date-container-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/date/write-date-field.component.d.ts +12 -0
- package/lib/shared/components/palette/date/write-date-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/datetime-picker/datetime-picker-utils.d.ts +3 -0
- package/lib/shared/components/palette/datetime-picker/datetime-picker-utils.d.ts.map +1 -0
- package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +53 -0
- package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -0
- package/lib/shared/components/palette/datetime-picker/index.d.ts +2 -0
- package/lib/shared/components/palette/datetime-picker/index.d.ts.map +1 -0
- package/lib/shared/components/palette/document/document-url.pipe.d.ts +11 -0
- package/lib/shared/components/palette/document/document-url.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/document/file-upload-progress.guard.d.ts +14 -0
- package/lib/shared/components/palette/document/file-upload-progress.guard.d.ts.map +1 -0
- package/lib/shared/components/palette/document/file-upload-state.service.d.ts +9 -0
- package/lib/shared/components/palette/document/file-upload-state.service.d.ts.map +1 -0
- package/lib/shared/components/palette/document/index.d.ts +4 -0
- package/lib/shared/components/palette/document/index.d.ts.map +1 -0
- package/lib/shared/components/palette/document/read-document-field.component.d.ts +24 -0
- package/lib/shared/components/palette/document/read-document-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +66 -0
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.d.ts +10 -0
- package/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-list/index.d.ts +4 -0
- package/lib/shared/components/palette/dynamic-list/index.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.d.ts +9 -0
- package/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.d.ts +11 -0
- package/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.d.ts +10 -0
- package/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-radio-list/index.d.ts +4 -0
- package/lib/shared/components/palette/dynamic-radio-list/index.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.d.ts +9 -0
- package/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +12 -0
- package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/email/index.d.ts +3 -0
- package/lib/shared/components/palette/email/index.d.ts.map +1 -0
- package/lib/shared/components/palette/email/read-email-field.component.d.ts +8 -0
- package/lib/shared/components/palette/email/read-email-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/email/write-email-field.component.d.ts +11 -0
- package/lib/shared/components/palette/email/write-email-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-list/fixed-list.pipe.d.ts +10 -0
- package/lib/shared/components/palette/fixed-list/fixed-list.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-list/index.d.ts +4 -0
- package/lib/shared/components/palette/fixed-list/index.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.d.ts +7 -0
- package/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.d.ts +12 -0
- package/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.d.ts +10 -0
- package/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-radio-list/index.d.ts +4 -0
- package/lib/shared/components/palette/fixed-radio-list/index.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.d.ts +7 -0
- package/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.d.ts +11 -0
- package/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/history/case-history-viewer-field.component.d.ts +7 -0
- package/lib/shared/components/palette/history/case-history-viewer-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts +8 -0
- package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts.map +1 -0
- package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +22 -0
- package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/history/event-log/event-log.component.d.ts +15 -0
- package/lib/shared/components/palette/history/event-log/event-log.component.d.ts.map +1 -0
- package/lib/shared/components/palette/history/event-log/index.d.ts +4 -0
- package/lib/shared/components/palette/history/event-log/index.d.ts.map +1 -0
- package/lib/shared/components/palette/history/index.d.ts +3 -0
- package/lib/shared/components/palette/history/index.d.ts.map +1 -0
- package/lib/shared/components/palette/label/index.d.ts +2 -0
- package/lib/shared/components/palette/label/index.d.ts.map +1 -0
- package/lib/shared/components/palette/label/label-field.component.d.ts +10 -0
- package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/markdown/index.d.ts +2 -0
- package/lib/shared/components/palette/markdown/index.d.ts.map +1 -0
- package/lib/shared/components/palette/markdown/markdown.component.d.ts +12 -0
- package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -0
- package/lib/shared/components/palette/money-gbp/index.d.ts +4 -0
- package/lib/shared/components/palette/money-gbp/index.d.ts.map +1 -0
- package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts +23 -0
- package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts.map +1 -0
- package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts +12 -0
- package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.d.ts +11 -0
- package/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/multi-select-list/index.d.ts +3 -0
- package/lib/shared/components/palette/multi-select-list/index.d.ts.map +1 -0
- package/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.d.ts +7 -0
- package/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.d.ts +13 -0
- package/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/number/index.d.ts +3 -0
- package/lib/shared/components/palette/number/index.d.ts.map +1 -0
- package/lib/shared/components/palette/number/read-number-field.component.d.ts +7 -0
- package/lib/shared/components/palette/number/read-number-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/number/write-number-field.component.d.ts +11 -0
- package/lib/shared/components/palette/number/write-number-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/fee-value.model.d.ts +5 -0
- package/lib/shared/components/palette/order-summary/fee-value.model.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/fee.model.d.ts +7 -0
- package/lib/shared/components/palette/order-summary/fee.model.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/index.d.ts +7 -0
- package/lib/shared/components/palette/order-summary/index.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/order-summary.model.d.ts +7 -0
- package/lib/shared/components/palette/order-summary/order-summary.model.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/read-order-summary-field.component.d.ts +10 -0
- package/lib/shared/components/palette/order-summary/read-order-summary-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts +12 -0
- package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts.map +1 -0
- package/lib/shared/components/palette/order-summary/write-order-summary-field.component.d.ts +10 -0
- package/lib/shared/components/palette/order-summary/write-order-summary-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/index.d.ts +6 -0
- package/lib/shared/components/palette/organisation/index.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts +20 -0
- package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts +20 -0
- package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts +13 -0
- package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts +11 -0
- package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/organisation/write-organisation-field.component.d.ts +47 -0
- package/lib/shared/components/palette/organisation/write-organisation-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/palette.module.d.ts +99 -0
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -0
- package/lib/shared/components/palette/palette.service.d.ts +9 -0
- package/lib/shared/components/palette/palette.service.d.ts.map +1 -0
- package/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.d.ts +10 -0
- package/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/payment/index.d.ts +2 -0
- package/lib/shared/components/palette/payment/index.d.ts.map +1 -0
- package/lib/shared/components/palette/phone-uk/index.d.ts +3 -0
- package/lib/shared/components/palette/phone-uk/index.d.ts.map +1 -0
- package/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.d.ts +7 -0
- package/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.d.ts +11 -0
- package/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/text/index.d.ts +3 -0
- package/lib/shared/components/palette/text/index.d.ts.map +1 -0
- package/lib/shared/components/palette/text/read-text-field.component.d.ts +7 -0
- package/lib/shared/components/palette/text/read-text-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/text/write-text-field.component.d.ts +12 -0
- package/lib/shared/components/palette/text/write-text-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/text-area/index.d.ts +3 -0
- package/lib/shared/components/palette/text-area/index.d.ts.map +1 -0
- package/lib/shared/components/palette/text-area/read-text-area-field.component.d.ts +7 -0
- package/lib/shared/components/palette/text-area/read-text-area-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/text-area/write-text-area-field.component.d.ts +15 -0
- package/lib/shared/components/palette/text-area/write-text-area-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/unsupported-field.component.d.ts +6 -0
- package/lib/shared/components/palette/unsupported-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/dash.pipe.d.ts +8 -0
- package/lib/shared/components/palette/utils/dash.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/date.pipe.d.ts +23 -0
- package/lib/shared/components/palette/utils/date.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/field-label.pipe.d.ts +9 -0
- package/lib/shared/components/palette/utils/field-label.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/first-error.pipe.d.ts +9 -0
- package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/index.d.ts +10 -0
- package/lib/shared/components/palette/utils/index.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/is-compound.pipe.d.ts +11 -0
- package/lib/shared/components/palette/utils/is-compound.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/is-mandatory.pipe.d.ts +12 -0
- package/lib/shared/components/palette/utils/is-mandatory.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.d.ts +13 -0
- package/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/is-read-only.pipe.d.ts +12 -0
- package/lib/shared/components/palette/utils/is-read-only.pipe.d.ts.map +1 -0
- package/lib/shared/components/palette/utils/utils.module.d.ts +16 -0
- package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -0
- package/lib/shared/components/palette/waystopay/index.d.ts +2 -0
- package/lib/shared/components/palette/waystopay/index.d.ts.map +1 -0
- package/lib/shared/components/palette/waystopay/waystopay-field.component.d.ts +11 -0
- package/lib/shared/components/palette/waystopay/waystopay-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/yes-no/index.d.ts +4 -0
- package/lib/shared/components/palette/yes-no/index.d.ts.map +1 -0
- package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts +13 -0
- package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts +15 -0
- package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/yes-no/yes-no.service.d.ts +14 -0
- package/lib/shared/components/palette/yes-no/yes-no.service.d.ts.map +1 -0
- package/lib/shared/components/search-filters/domain/index.d.ts +2 -0
- package/lib/shared/components/search-filters/domain/index.d.ts.map +1 -0
- package/lib/shared/components/search-filters/domain/search-input.model.d.ts +11 -0
- package/lib/shared/components/search-filters/domain/search-input.model.d.ts.map +1 -0
- package/lib/shared/components/search-filters/index.d.ts +5 -0
- package/lib/shared/components/search-filters/index.d.ts.map +1 -0
- package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts +21 -0
- package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts.map +1 -0
- package/lib/shared/components/search-filters/search-filters.component.d.ts +57 -0
- package/lib/shared/components/search-filters/search-filters.component.d.ts.map +1 -0
- package/lib/shared/components/search-filters/search-filters.module.d.ts +13 -0
- package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts +40 -0
- package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/conditional-show.module.d.ts +8 -0
- package/lib/shared/directives/conditional-show/conditional-show.module.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts +56 -0
- package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/domain/index.d.ts +2 -0
- package/lib/shared/directives/conditional-show/domain/index.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/index.d.ts +5 -0
- package/lib/shared/directives/conditional-show/index.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.d.ts +10 -0
- package/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/services/grey-bar.service.d.ts +22 -0
- package/lib/shared/directives/conditional-show/services/grey-bar.service.d.ts.map +1 -0
- package/lib/shared/directives/conditional-show/services/index.d.ts +3 -0
- package/lib/shared/directives/conditional-show/services/index.d.ts.map +1 -0
- package/lib/shared/directives/focus-element/focus-element.directive.d.ts +12 -0
- package/lib/shared/directives/focus-element/focus-element.directive.d.ts.map +1 -0
- package/lib/shared/directives/focus-element/focus-element.module.d.ts +8 -0
- package/lib/shared/directives/focus-element/focus-element.module.d.ts.map +1 -0
- package/lib/shared/directives/focus-element/index.d.ts +3 -0
- package/lib/shared/directives/focus-element/index.d.ts.map +1 -0
- package/lib/shared/directives/index.d.ts +4 -0
- package/lib/shared/directives/index.d.ts.map +1 -0
- package/lib/shared/directives/substitutor/index.d.ts +4 -0
- package/lib/shared/directives/substitutor/index.d.ts.map +1 -0
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +27 -0
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts.map +1 -0
- package/lib/shared/directives/substitutor/label-substitutor.module.d.ts +8 -0
- package/lib/shared/directives/substitutor/label-substitutor.module.d.ts.map +1 -0
- package/lib/shared/directives/substitutor/services/index.d.ts +2 -0
- package/lib/shared/directives/substitutor/services/index.d.ts.map +1 -0
- package/lib/shared/directives/substitutor/services/placeholder.service.d.ts +64 -0
- package/lib/shared/directives/substitutor/services/placeholder.service.d.ts.map +1 -0
- package/lib/shared/domain/activity/activity.model.d.ts +16 -0
- package/lib/shared/domain/activity/activity.model.d.ts.map +1 -0
- package/lib/shared/domain/activity/index.d.ts +2 -0
- package/lib/shared/domain/activity/index.d.ts.map +1 -0
- package/lib/shared/domain/addresses/address.model.d.ts +10 -0
- package/lib/shared/domain/addresses/address.model.d.ts.map +1 -0
- package/lib/shared/domain/addresses/index.d.ts +2 -0
- package/lib/shared/domain/addresses/index.d.ts.map +1 -0
- package/lib/shared/domain/alert/alert-level.model.d.ts +2 -0
- package/lib/shared/domain/alert/alert-level.model.d.ts.map +1 -0
- package/lib/shared/domain/alert/alert.model.d.ts +6 -0
- package/lib/shared/domain/alert/alert.model.d.ts.map +1 -0
- package/lib/shared/domain/alert/index.d.ts +3 -0
- package/lib/shared/domain/alert/index.d.ts.map +1 -0
- package/lib/shared/domain/case-details.model.d.ts +12 -0
- package/lib/shared/domain/case-details.model.d.ts.map +1 -0
- package/lib/shared/domain/case-event-data.model.d.ts +14 -0
- package/lib/shared/domain/case-event-data.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/access-types.model.d.ts +5 -0
- package/lib/shared/domain/case-view/access-types.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-event-trigger.model.d.ts +18 -0
- package/lib/shared/domain/case-view/case-event-trigger.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-print-document.model.d.ts +6 -0
- package/lib/shared/domain/case-view/case-print-document.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-tab.model.d.ts +10 -0
- package/lib/shared/domain/case-view/case-tab.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-view-event.model.d.ts +19 -0
- package/lib/shared/domain/case-view/case-view-event.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +9 -0
- package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-view.model.d.ts +36 -0
- package/lib/shared/domain/case-view/case-view.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/challenged-access-request.model.d.ts +6 -0
- package/lib/shared/domain/case-view/challenged-access-request.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/index.d.ts +12 -0
- package/lib/shared/domain/case-view/index.d.ts.map +1 -0
- package/lib/shared/domain/case-view/review-specific-access-request.model.d.ts +5 -0
- package/lib/shared/domain/case-view/review-specific-access-request.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/role-assignment-response.model.d.ts +7 -0
- package/lib/shared/domain/case-view/role-assignment-response.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/role-request.model.d.ts +35 -0
- package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -0
- package/lib/shared/domain/case-view/specific-access-request.model.d.ts +4 -0
- package/lib/shared/domain/case-view/specific-access-request.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/access-control-list.model.d.ts +8 -0
- package/lib/shared/domain/definition/access-control-list.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/banner.model.d.ts +8 -0
- package/lib/shared/domain/definition/banner.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/case-event.model.d.ts +14 -0
- package/lib/shared/domain/definition/case-event.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/case-field.model.d.ts +44 -0
- package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/case-state.model.d.ts +8 -0
- package/lib/shared/domain/definition/case-state.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/case-type-lite.model.d.ts +10 -0
- package/lib/shared/domain/definition/case-type-lite.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/case-type.model.d.ts +15 -0
- package/lib/shared/domain/definition/case-type.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/event-case-field.model.d.ts +5 -0
- package/lib/shared/domain/definition/event-case-field.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/field-type-enum.model.d.ts +2 -0
- package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/field-type.model.d.ts +14 -0
- package/lib/shared/domain/definition/field-type.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/fixed-list-item.model.d.ts +7 -0
- package/lib/shared/domain/definition/fixed-list-item.model.d.ts.map +1 -0
- package/lib/shared/domain/definition/index.d.ts +12 -0
- package/lib/shared/domain/definition/index.d.ts.map +1 -0
- package/lib/shared/domain/definition/jurisdiction.model.d.ts +8 -0
- package/lib/shared/domain/definition/jurisdiction.model.d.ts.map +1 -0
- package/lib/shared/domain/document/document-data.model.d.ts +26 -0
- package/lib/shared/domain/document/document-data.model.d.ts.map +1 -0
- package/lib/shared/domain/document/index.d.ts +2 -0
- package/lib/shared/domain/document/index.d.ts.map +1 -0
- package/lib/shared/domain/draft.model.d.ts +13 -0
- package/lib/shared/domain/draft.model.d.ts.map +1 -0
- package/lib/shared/domain/error-message.model.d.ts +9 -0
- package/lib/shared/domain/error-message.model.d.ts.map +1 -0
- package/lib/shared/domain/http/http-error.model.d.ts +18 -0
- package/lib/shared/domain/http/http-error.model.d.ts.map +1 -0
- package/lib/shared/domain/http/index.d.ts +2 -0
- package/lib/shared/domain/http/index.d.ts.map +1 -0
- package/lib/shared/domain/index.d.ts +23 -0
- package/lib/shared/domain/index.d.ts.map +1 -0
- package/lib/shared/domain/order/index.d.ts +2 -0
- package/lib/shared/domain/order/index.d.ts.map +1 -0
- package/lib/shared/domain/order/orderable.model.d.ts +4 -0
- package/lib/shared/domain/order/orderable.model.d.ts.map +1 -0
- package/lib/shared/domain/organisation/index.d.ts +3 -0
- package/lib/shared/domain/organisation/index.d.ts.map +1 -0
- package/lib/shared/domain/organisation/organisation-converter.d.ts +10 -0
- package/lib/shared/domain/organisation/organisation-converter.d.ts.map +1 -0
- package/lib/shared/domain/organisation/simple-organisation.model.d.ts +6 -0
- package/lib/shared/domain/organisation/simple-organisation.model.d.ts.map +1 -0
- package/lib/shared/domain/pagination-metadata.model.d.ts +5 -0
- package/lib/shared/domain/pagination-metadata.model.d.ts.map +1 -0
- package/lib/shared/domain/predicate.model.d.ts +2 -0
- package/lib/shared/domain/predicate.model.d.ts.map +1 -0
- package/lib/shared/domain/profile/index.d.ts +2 -0
- package/lib/shared/domain/profile/index.d.ts.map +1 -0
- package/lib/shared/domain/profile/profile.model.d.ts +24 -0
- package/lib/shared/domain/profile/profile.model.d.ts.map +1 -0
- package/lib/shared/domain/search/field.model.d.ts +11 -0
- package/lib/shared/domain/search/field.model.d.ts.map +1 -0
- package/lib/shared/domain/search/index.d.ts +5 -0
- package/lib/shared/domain/search/index.d.ts.map +1 -0
- package/lib/shared/domain/search/search-result-view-column.model.d.ts +10 -0
- package/lib/shared/domain/search/search-result-view-column.model.d.ts.map +1 -0
- package/lib/shared/domain/search/search-result-view-item.model.d.ts +10 -0
- package/lib/shared/domain/search/search-result-view-item.model.d.ts.map +1 -0
- package/lib/shared/domain/search/search-result-view.model.d.ts +9 -0
- package/lib/shared/domain/search/search-result-view.model.d.ts.map +1 -0
- package/lib/shared/domain/search/sorting/search-result-view-item-comparator.d.ts +5 -0
- package/lib/shared/domain/search/sorting/search-result-view-item-comparator.d.ts.map +1 -0
- package/lib/shared/domain/search/sorting/sort-order.d.ts +6 -0
- package/lib/shared/domain/search/sorting/sort-order.d.ts.map +1 -0
- package/lib/shared/domain/search/sorting/sort-parameters.d.ts +8 -0
- package/lib/shared/domain/search/sorting/sort-parameters.d.ts.map +1 -0
- package/lib/shared/domain/user/user-details.model.d.ts +10 -0
- package/lib/shared/domain/user/user-details.model.d.ts.map +1 -0
- package/lib/shared/domain/user/user-info.model.d.ts +11 -0
- package/lib/shared/domain/user/user-info.model.d.ts.map +1 -0
- package/lib/shared/domain/work-allocation/Task.d.ts +50 -0
- package/lib/shared/domain/work-allocation/Task.d.ts.map +1 -0
- package/lib/shared/domain/work-allocation/TaskPayload.d.ts +6 -0
- package/lib/shared/domain/work-allocation/TaskPayload.d.ts.map +1 -0
- package/lib/shared/domain/work-allocation/index.d.ts +2 -0
- package/lib/shared/domain/work-allocation/index.d.ts.map +1 -0
- package/lib/shared/domain/work-allocation/task-response.model.d.ts +5 -0
- package/lib/shared/domain/work-allocation/task-response.model.d.ts.map +1 -0
- package/lib/shared/domain/work-allocation/task-search-parameter.model.d.ts +15 -0
- package/lib/shared/domain/work-allocation/task-search-parameter.model.d.ts.map +1 -0
- package/lib/shared/domain/workbasket/index.d.ts +2 -0
- package/lib/shared/domain/workbasket/index.d.ts.map +1 -0
- package/lib/shared/domain/workbasket/workbasket-input.model.d.ts +14 -0
- package/lib/shared/domain/workbasket/workbasket-input.model.d.ts.map +1 -0
- package/lib/shared/fixture/case-field-builder.d.ts +22 -0
- package/lib/shared/fixture/case-field-builder.d.ts.map +1 -0
- package/lib/shared/fixture/shared.test.fixture.d.ts +25 -0
- package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -0
- package/lib/shared/index.d.ts +8 -0
- package/lib/shared/index.d.ts.map +1 -0
- package/lib/shared/pipes/case-reference/case-reference.pipe.d.ts +8 -0
- package/lib/shared/pipes/case-reference/case-reference.pipe.d.ts.map +1 -0
- package/lib/shared/pipes/case-reference/index.d.ts +2 -0
- package/lib/shared/pipes/case-reference/index.d.ts.map +1 -0
- package/lib/shared/pipes/case-title/ccd-case-title.pipe.d.ts +15 -0
- package/lib/shared/pipes/case-title/ccd-case-title.pipe.d.ts.map +1 -0
- package/lib/shared/pipes/case-title/index.d.ts +2 -0
- package/lib/shared/pipes/case-title/index.d.ts.map +1 -0
- package/lib/shared/pipes/index.d.ts +5 -0
- package/lib/shared/pipes/index.d.ts.map +1 -0
- package/lib/shared/pipes/pipes.module.d.ts +11 -0
- package/lib/shared/pipes/pipes.module.d.ts.map +1 -0
- package/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.d.ts +10 -0
- package/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.d.ts.map +1 -0
- package/lib/shared/services/activity/activity.polling.service.d.ts +30 -0
- package/lib/shared/services/activity/activity.polling.service.d.ts.map +1 -0
- package/lib/shared/services/activity/activity.service.d.ts +26 -0
- package/lib/shared/services/activity/activity.service.d.ts.map +1 -0
- package/lib/shared/services/activity/index.d.ts +3 -0
- package/lib/shared/services/activity/index.d.ts.map +1 -0
- package/lib/shared/services/addresses/address-parser.d.ts +18 -0
- package/lib/shared/services/addresses/address-parser.d.ts.map +1 -0
- package/lib/shared/services/addresses/addresses.service.d.ts +21 -0
- package/lib/shared/services/addresses/addresses.service.d.ts.map +1 -0
- package/lib/shared/services/addresses/index.d.ts +2 -0
- package/lib/shared/services/addresses/index.d.ts.map +1 -0
- package/lib/shared/services/alert/alert.service.d.ts +35 -0
- package/lib/shared/services/alert/alert.service.d.ts.map +1 -0
- package/lib/shared/services/alert/index.d.ts +2 -0
- package/lib/shared/services/alert/index.d.ts.map +1 -0
- package/lib/shared/services/auth/auth.service.d.ts +16 -0
- package/lib/shared/services/auth/auth.service.d.ts.map +1 -0
- package/lib/shared/services/auth/index.d.ts +2 -0
- package/lib/shared/services/auth/index.d.ts.map +1 -0
- package/lib/shared/services/banners/banners.service.d.ts +15 -0
- package/lib/shared/services/banners/banners.service.d.ts.map +1 -0
- package/lib/shared/services/banners/index.d.ts +2 -0
- package/lib/shared/services/banners/index.d.ts.map +1 -0
- package/lib/shared/services/browser/browser.service.d.ts +9 -0
- package/lib/shared/services/browser/browser.service.d.ts.map +1 -0
- package/lib/shared/services/browser/index.d.ts +2 -0
- package/lib/shared/services/browser/index.d.ts.map +1 -0
- package/lib/shared/services/case-fields/case-field.service.d.ts +11 -0
- package/lib/shared/services/case-fields/case-field.service.d.ts.map +1 -0
- package/lib/shared/services/case-fields/format-translator.service.d.ts +16 -0
- package/lib/shared/services/case-fields/format-translator.service.d.ts.map +1 -0
- package/lib/shared/services/case-fields/index.d.ts +2 -0
- package/lib/shared/services/case-fields/index.d.ts.map +1 -0
- package/lib/shared/services/definitions/definitions.module.d.ts +7 -0
- package/lib/shared/services/definitions/definitions.module.d.ts.map +1 -0
- package/lib/shared/services/definitions/definitions.service.d.ts +16 -0
- package/lib/shared/services/definitions/definitions.service.d.ts.map +1 -0
- package/lib/shared/services/definitions/index.d.ts +3 -0
- package/lib/shared/services/definitions/index.d.ts.map +1 -0
- package/lib/shared/services/document-management/document-management.service.d.ts +34 -0
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -0
- package/lib/shared/services/document-management/index.d.ts +2 -0
- package/lib/shared/services/document-management/index.d.ts.map +1 -0
- package/lib/shared/services/draft/draft.service.d.ts +25 -0
- package/lib/shared/services/draft/draft.service.d.ts.map +1 -0
- package/lib/shared/services/draft/index.d.ts +2 -0
- package/lib/shared/services/draft/index.d.ts.map +1 -0
- package/lib/shared/services/error/error-notifier.service.d.ts +10 -0
- package/lib/shared/services/error/error-notifier.service.d.ts.map +1 -0
- package/lib/shared/services/error/index.d.ts +2 -0
- package/lib/shared/services/error/index.d.ts.map +1 -0
- package/lib/shared/services/eventStatusService/event-status.service.d.ts +11 -0
- package/lib/shared/services/eventStatusService/event-status.service.d.ts.map +1 -0
- package/lib/shared/services/eventStatusService/index.d.ts +2 -0
- package/lib/shared/services/eventStatusService/index.d.ts.map +1 -0
- package/lib/shared/services/fields/fields.purger.d.ts +39 -0
- package/lib/shared/services/fields/fields.purger.d.ts.map +1 -0
- package/lib/shared/services/fields/fields.utils.d.ts +81 -0
- package/lib/shared/services/fields/fields.utils.d.ts.map +1 -0
- package/lib/shared/services/fields/index.d.ts +3 -0
- package/lib/shared/services/fields/index.d.ts.map +1 -0
- package/lib/shared/services/form/field-type-sanitiser.d.ts +29 -0
- package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -0
- package/lib/shared/services/form/form-error.service.d.ts +12 -0
- package/lib/shared/services/form/form-error.service.d.ts.map +1 -0
- package/lib/shared/services/form/form-validators.service.d.ts +12 -0
- package/lib/shared/services/form/form-validators.service.d.ts.map +1 -0
- package/lib/shared/services/form/form-value.service.d.ts +172 -0
- package/lib/shared/services/form/form-value.service.d.ts.map +1 -0
- package/lib/shared/services/form/index.d.ts +5 -0
- package/lib/shared/services/form/index.d.ts.map +1 -0
- package/lib/shared/services/http/http-error.service.d.ts +19 -0
- package/lib/shared/services/http/http-error.service.d.ts.map +1 -0
- package/lib/shared/services/http/http.service.d.ts +60 -0
- package/lib/shared/services/http/http.service.d.ts.map +1 -0
- package/lib/shared/services/http/index.d.ts +3 -0
- package/lib/shared/services/http/index.d.ts.map +1 -0
- package/lib/shared/services/index.d.ts +29 -0
- package/lib/shared/services/index.d.ts.map +1 -0
- package/lib/shared/services/jurisdiction/index.d.ts +2 -0
- package/lib/shared/services/jurisdiction/index.d.ts.map +1 -0
- package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts +11 -0
- package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -0
- package/lib/shared/services/loading/index.d.ts +3 -0
- package/lib/shared/services/loading/index.d.ts.map +1 -0
- package/lib/shared/services/loading/loading.module.d.ts +7 -0
- package/lib/shared/services/loading/loading.module.d.ts.map +1 -0
- package/lib/shared/services/loading/loading.service.d.ts +16 -0
- package/lib/shared/services/loading/loading.service.d.ts.map +1 -0
- package/lib/shared/services/navigation/index.d.ts +3 -0
- package/lib/shared/services/navigation/index.d.ts.map +1 -0
- package/lib/shared/services/navigation/navigation-notifier.service.d.ts +10 -0
- package/lib/shared/services/navigation/navigation-notifier.service.d.ts.map +1 -0
- package/lib/shared/services/navigation/navigation-origin.model.d.ts +8 -0
- package/lib/shared/services/navigation/navigation-origin.model.d.ts.map +1 -0
- package/lib/shared/services/order/index.d.ts +2 -0
- package/lib/shared/services/order/index.d.ts.map +1 -0
- package/lib/shared/services/order/order.service.d.ts +19 -0
- package/lib/shared/services/order/order.service.d.ts.map +1 -0
- package/lib/shared/services/organisation/index.d.ts +2 -0
- package/lib/shared/services/organisation/index.d.ts.map +1 -0
- package/lib/shared/services/organisation/organisation.service.d.ts +53 -0
- package/lib/shared/services/organisation/organisation.service.d.ts.map +1 -0
- package/lib/shared/services/profile/index.d.ts +3 -0
- package/lib/shared/services/profile/index.d.ts.map +1 -0
- package/lib/shared/services/profile/profile.notifier.d.ts +11 -0
- package/lib/shared/services/profile/profile.notifier.d.ts.map +1 -0
- package/lib/shared/services/profile/profile.service.d.ts +16 -0
- package/lib/shared/services/profile/profile.service.d.ts.map +1 -0
- package/lib/shared/services/request/index.d.ts +2 -0
- package/lib/shared/services/request/index.d.ts.map +1 -0
- package/lib/shared/services/request/request.options.builder.d.ts +17 -0
- package/lib/shared/services/request/request.options.builder.d.ts.map +1 -0
- package/lib/shared/services/router/index.d.ts +2 -0
- package/lib/shared/services/router/index.d.ts.map +1 -0
- package/lib/shared/services/router/router-helper.service.d.ts +8 -0
- package/lib/shared/services/router/router-helper.service.d.ts.map +1 -0
- package/lib/shared/services/search/index.d.ts +2 -0
- package/lib/shared/services/search/index.d.ts.map +1 -0
- package/lib/shared/services/search/search.service.d.ts +32 -0
- package/lib/shared/services/search/search.service.d.ts.map +1 -0
- package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts +12 -0
- package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts.map +1 -0
- package/lib/shared/services/session/index.d.ts +2 -0
- package/lib/shared/services/session/index.d.ts.map +1 -0
- package/lib/shared/services/session/session-storage.service.d.ts +22 -0
- package/lib/shared/services/session/session-storage.service.d.ts.map +1 -0
- package/lib/shared/services/window/index.d.ts +2 -0
- package/lib/shared/services/window/index.d.ts.map +1 -0
- package/lib/shared/services/window/window.service.d.ts +15 -0
- package/lib/shared/services/window/window.service.d.ts.map +1 -0
- package/lib/shared/services/workbasket/index.d.ts +2 -0
- package/lib/shared/services/workbasket/index.d.ts.map +1 -0
- package/lib/shared/services/workbasket/workbasket-input-filter.service.d.ts +19 -0
- package/lib/shared/services/workbasket/workbasket-input-filter.service.d.ts.map +1 -0
- package/lib/shared/test/test-route-snapshot-builder.d.ts +11 -0
- package/lib/shared/test/test-route-snapshot-builder.d.ts.map +1 -0
- package/package.json +14 -199
- package/public-api.d.ts +3 -0
- package/public-api.d.ts.map +1 -0
- package/.editorconfig +0 -14
- package/.github/CONTRIBUTING.md +0 -39
- package/.github/ISSUE_TEMPLATE.md +0 -5
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -23
- package/.github/stale.yml +0 -24
- package/.github/workflows/npmpublish.yml +0 -98
- package/.nyc_output/.gitkeep +0 -1
- package/.project +0 -4
- package/.storybook/main.js +0 -13
- package/.storybook/preview.js +0 -15
- package/.storybook/tsconfig.json +0 -21
- package/.storybook/typings.d.ts +0 -4
- package/.travis.yml +0 -54
- package/LICENSE.md +0 -9
- package/README.md +0 -191
- package/RELEASE-NOTES.md +0 -1153
- package/angular.json +0 -193
- package/bin/run-yarn-audit.sh +0 -38
- package/browserslist +0 -12
- package/documentation.json +0 -88650
- package/e2e/tsconfig.e2e.json +0 -13
- package/projects/ccd-case-ui-toolkit/ng-package.json +0 -8
- package/projects/ccd-case-ui-toolkit/package.json +0 -18
- package/projects/ccd-case-ui-toolkit/tsconfig.lib.json +0 -33
- package/projects/ccd-case-ui-toolkit/tsconfig.lib.prod.json +0 -7
- package/projects/ccd-case-ui-toolkit/tsconfig.spec.json +0 -21
- package/projects/ccd-case-ui-toolkit/tslint.json +0 -96
- package/scripts/create-release-tag.sh +0 -23
- package/sonar-project.properties +0 -12
- package/storybook/assets/fonts/bold-a2452cb66f-v1.woff2 +0 -0
- package/storybook/assets/fonts/bold-f38c792ac2-v1.woff +0 -0
- package/storybook/assets/fonts/bold-fb2676462a-v1.eot +0 -0
- package/storybook/assets/fonts/bold-tabular-357fdfbcc3-v1.eot +0 -0
- package/storybook/assets/fonts/bold-tabular-784c21afb8-v1.woff +0 -0
- package/storybook/assets/fonts/bold-tabular-b89238d840-v1.woff2 +0 -0
- package/storybook/assets/fonts/light-2c037cf7e1-v1.eot +0 -0
- package/storybook/assets/fonts/light-458f8ea81c-v1.woff +0 -0
- package/storybook/assets/fonts/light-f38ad40456-v1.woff2 +0 -0
- package/storybook/assets/fonts/light-tabular-498ea8ffe2-v1.eot +0 -0
- package/storybook/assets/fonts/light-tabular-62cc6f0a28-v1.woff +0 -0
- package/storybook/assets/fonts/light-tabular-851b10ccdd-v1.woff2 +0 -0
- package/storybook/assets/images/govuk-crest-2x.png +0 -0
- package/storybook/assets/images/govuk-crest.png +0 -0
- package/storybook/assets/img/accordion-minus.png +0 -0
- package/storybook/assets/img/accordion-plus.png +0 -0
- package/storybook/assets/img/apple-touch-icon-120x120.png +0 -0
- package/storybook/assets/img/apple-touch-icon-152x152.png +0 -0
- package/storybook/assets/img/apple-touch-icon-60x60.png +0 -0
- package/storybook/assets/img/apple-touch-icon-76x76.png +0 -0
- package/storybook/assets/img/dropdown-arrow.PNG +0 -0
- package/storybook/assets/img/editor.png +0 -0
- package/storybook/assets/img/editorBanner.png +0 -0
- package/storybook/assets/img/favicon.ico +0 -0
- package/storybook/assets/img/gov.uk_logotype_crown.svg +0 -7
- package/storybook/assets/img/gov.uk_logotype_crown_invert_trans.png +0 -0
- package/storybook/assets/img/icon-search-white.png +0 -0
- package/storybook/assets/img/viewer.png +0 -0
- package/storybook/assets/img/viewerBanner.png +0 -0
- package/storybook/assets/img/warning.png +0 -0
- package/storybook/assets/img/x.PNG +0 -0
- package/storybook/assets/sass/annotation-ui-theme.scss +0 -217
- package/storybook/assets/sass/application-ie8.scss +0 -3
- package/storybook/assets/sass/application.scss +0 -214
- package/storybook/assets/sass/components/_cookie-banner.scss +0 -24
- package/storybook/assets/sass/jui/all.scss +0 -20
- package/storybook/assets/sass/jui/objects/_manifest.scss +0 -5
- package/storybook/assets/sass/jui/objects/_objects.container.scss +0 -7
- package/storybook/assets/sass/jui/settings/_manifest.scss +0 -6
- package/storybook/assets/sass/jui/settings/_settings.aspect-ratio.scss +0 -9
- package/storybook/assets/sass/jui/settings/_settings.general.scss +0 -34
- package/storybook/assets/sass/patterns/_check-your-answers.scss +0 -86
- package/storybook/assets/sass/patterns/_pba.scss +0 -278
- package/storybook/assets/sass/patterns/_related-items.scss +0 -11
- package/storybook/assets/sass/patterns/_task-list.scss +0 -72
- package/storybook/assets/sass/unbranded.scss +0 -12
- package/storybook/storybook.component.ts +0 -11
- package/storybook/storybook.styles.scss +0 -17
- package/storybook/style/_buttons.scss +0 -19
- package/storybook/style/_forms.scss +0 -19
- package/storybook/style/_markdown.scss +0 -48
- package/storybook/style/_material.scss +0 -53
- package/storybook/style/_notifications.scss +0 -23
- package/storybook/style/_palette.scss +0 -77
- package/storybook/style/_print.scss +0 -19
- package/storybook/style/app.scss +0 -399
- package/storybook/style/vendor/prism.scss +0 -116
- package/storybook-static/0.835660aac5fb57f1c871.manager.bundle.js +0 -2
- package/storybook-static/0.835660aac5fb57f1c871.manager.bundle.js.LICENSE.txt +0 -8
- package/storybook-static/0.8a2e5fcc.iframe.bundle.js +0 -3
- package/storybook-static/0.8a2e5fcc.iframe.bundle.js.LICENSE.txt +0 -17
- package/storybook-static/0.8a2e5fcc.iframe.bundle.js.map +0 -1
- package/storybook-static/1.2f18dfb406091ad58686.manager.bundle.js +0 -1
- package/storybook-static/1.ab9ea240.iframe.bundle.js +0 -3
- package/storybook-static/1.ab9ea240.iframe.bundle.js.LICENSE.txt +0 -8
- package/storybook-static/1.ab9ea240.iframe.bundle.js.map +0 -1
- package/storybook-static/10.fa5fcd50.iframe.bundle.js +0 -3
- package/storybook-static/10.fa5fcd50.iframe.bundle.js.LICENSE.txt +0 -12
- package/storybook-static/10.fa5fcd50.iframe.bundle.js.map +0 -1
- package/storybook-static/2.e37e048c.iframe.bundle.js +0 -1
- package/storybook-static/3.a2afbe6b.iframe.bundle.js +0 -1
- package/storybook-static/5.472a084050c6577e437c.manager.bundle.js +0 -2
- package/storybook-static/5.472a084050c6577e437c.manager.bundle.js.LICENSE.txt +0 -31
- package/storybook-static/6.6d8b7e0d6abfb2af3157.manager.bundle.js +0 -1
- package/storybook-static/7.33e8f7c3.iframe.bundle.js +0 -3
- package/storybook-static/7.33e8f7c3.iframe.bundle.js.LICENSE.txt +0 -31
- package/storybook-static/7.33e8f7c3.iframe.bundle.js.map +0 -1
- package/storybook-static/7.b9048b95a2d61a0d5990.manager.bundle.js +0 -1
- package/storybook-static/8.c0075f29233ef3a5f866.manager.bundle.js +0 -2
- package/storybook-static/8.c0075f29233ef3a5f866.manager.bundle.js.LICENSE.txt +0 -12
- package/storybook-static/8.c6adb04b.iframe.bundle.js +0 -1
- package/storybook-static/9.73d6cb6ada64ba200277.manager.bundle.js +0 -1
- package/storybook-static/9.eaf466b7.iframe.bundle.js +0 -1
- package/storybook-static/favicon.ico +0 -0
- package/storybook-static/iframe.html +0 -364
- package/storybook-static/index.html +0 -59
- package/storybook-static/main.6f2a4d7a.iframe.bundle.js +0 -1
- package/storybook-static/main.bbfce4da3ddc788a6d97.manager.bundle.js +0 -1
- package/storybook-static/project.json +0 -1
- package/storybook-static/runtime~main.17dc4af8228ff7ffc150.manager.bundle.js +0 -1
- package/storybook-static/runtime~main.da0120f3.iframe.bundle.js +0 -1
- package/storybook-static/static/media/code-brackets.2e1112d7.svg +0 -1
- package/storybook-static/static/media/colors.a4bd0486.svg +0 -1
- package/storybook-static/static/media/comments.a3859089.svg +0 -1
- package/storybook-static/static/media/direction.b770f9af.svg +0 -1
- package/storybook-static/static/media/flow.edad2ac1.svg +0 -1
- package/storybook-static/static/media/plugin.d494b228.svg +0 -1
- package/storybook-static/static/media/repo.6d496322.svg +0 -1
- package/storybook-static/static/media/stackalt.dba9fbb3.svg +0 -1
- package/storybook-static/vendors~main.ac63a4b3609bbef0abd4.manager.bundle.js +0 -2
- package/storybook-static/vendors~main.ac63a4b3609bbef0abd4.manager.bundle.js.LICENSE.txt +0 -104
- package/storybook-static/vendors~main.c4556936.iframe.bundle.js +0 -13
- package/storybook-static/vendors~main.c4556936.iframe.bundle.js.LICENSE.txt +0 -94
- package/storybook-static/vendors~main.c4556936.iframe.bundle.js.map +0 -1
- package/tsconfig.json +0 -44
- package/tslint.json +0 -96
- package/yarn-audit-known-issues +0 -28
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { CurrencyPipe } from '@angular/common';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
|
4
|
+
import { plainToClassFromExist } from 'class-transformer';
|
|
5
|
+
import { DatePipe } from '../../components/palette/utils/date.pipe';
|
|
6
|
+
import { CaseField } from '../../domain/definition/case-field.model';
|
|
7
|
+
import { FormatTranslatorService } from '../case-fields/format-translator.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
// @dynamic
|
|
10
|
+
export class FieldsUtils {
|
|
11
|
+
static convertToCaseField(obj) {
|
|
12
|
+
if (!(obj instanceof CaseField)) {
|
|
13
|
+
return plainToClassFromExist(new CaseField(), obj);
|
|
14
|
+
}
|
|
15
|
+
return obj;
|
|
16
|
+
}
|
|
17
|
+
static toValuesMap(caseFields) {
|
|
18
|
+
const valueMap = {};
|
|
19
|
+
caseFields.forEach(field => {
|
|
20
|
+
valueMap[field.id] = FieldsUtils.prepareValue(field);
|
|
21
|
+
});
|
|
22
|
+
return valueMap;
|
|
23
|
+
}
|
|
24
|
+
static getType(elem) {
|
|
25
|
+
return Object.prototype.toString.call(elem).slice(8, -1);
|
|
26
|
+
}
|
|
27
|
+
static isObject(elem) {
|
|
28
|
+
return typeof elem === 'object' && elem !== null;
|
|
29
|
+
}
|
|
30
|
+
static isNonEmptyObject(elem) {
|
|
31
|
+
return this.isObject(elem) && Object.keys(elem).length !== 0;
|
|
32
|
+
}
|
|
33
|
+
static isArray(elem) {
|
|
34
|
+
return Array.isArray(elem);
|
|
35
|
+
}
|
|
36
|
+
static areCollectionValuesSimpleFields(fieldValue) {
|
|
37
|
+
return !this.isObject(fieldValue[0]['value']) && !Array.isArray(fieldValue[0]['value']) && fieldValue[0]['value'] !== undefined;
|
|
38
|
+
}
|
|
39
|
+
static isCollectionOfSimpleTypes(fieldValue) {
|
|
40
|
+
return this.isCollection(fieldValue) && this.areCollectionValuesSimpleFields(fieldValue);
|
|
41
|
+
}
|
|
42
|
+
static isMultiSelectValue(form) {
|
|
43
|
+
return this.isNonEmptyArray(form) && !this.isCollectionWithValue(form);
|
|
44
|
+
}
|
|
45
|
+
static isNonEmptyArray(pageFormFields) {
|
|
46
|
+
return Array.isArray(pageFormFields) && pageFormFields[0] !== undefined;
|
|
47
|
+
}
|
|
48
|
+
static isCollection(pageFormFields) {
|
|
49
|
+
return this.isNonEmptyArray(pageFormFields) && this.isCollectionWithValue(pageFormFields);
|
|
50
|
+
}
|
|
51
|
+
static isCollectionWithValue(pageFormFields) {
|
|
52
|
+
return pageFormFields[0]['value'] !== undefined;
|
|
53
|
+
}
|
|
54
|
+
static cloneObject(obj) {
|
|
55
|
+
return Object.assign({}, obj);
|
|
56
|
+
}
|
|
57
|
+
// temporary function until this can be moved to CaseView class (RDM-2681)
|
|
58
|
+
static getCaseFields(caseView) {
|
|
59
|
+
const caseDataFields = caseView.tabs.reduce((acc, tab) => {
|
|
60
|
+
return acc.concat(tab.fields);
|
|
61
|
+
}, []);
|
|
62
|
+
const metadataFields = caseView.metadataFields;
|
|
63
|
+
return metadataFields.concat(caseDataFields.filter((caseField) => {
|
|
64
|
+
return metadataFields.findIndex(metadataField => metadataField.id === caseField.id) < 0;
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
static addCaseFieldAndComponentReferences(c, cf, comp) {
|
|
68
|
+
c['caseField'] = cf;
|
|
69
|
+
c['component'] = comp;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Recursive check of an array or object and its descendants for the presence of any non-empty values.
|
|
73
|
+
*
|
|
74
|
+
* @param object The array or object to check
|
|
75
|
+
* @returns `true` if the array or object (or a descendant) contains at least one non-empty value; `false` otherwise
|
|
76
|
+
*/
|
|
77
|
+
static containsNonEmptyValues(object) {
|
|
78
|
+
if (!object) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const values = Object.keys(object).map(key => object[key]);
|
|
82
|
+
const objectRefs = [];
|
|
83
|
+
// Also test for numeric values, and length > 0 for non-numeric values because this covers both strings and arrays.
|
|
84
|
+
// Note: Deliberate use of non-equality (!=) operator for null check, to handle both null and undefined values.
|
|
85
|
+
const hasNonNullPrimitive = values.some(x => (x != null &&
|
|
86
|
+
((typeof x === 'object' && x.constructor === Object) || Array.isArray(x)
|
|
87
|
+
? !objectRefs.push(x)
|
|
88
|
+
: typeof x === 'number' || x.length > 0)));
|
|
89
|
+
return !hasNonNullPrimitive ? objectRefs.some(y => this.containsNonEmptyValues(y)) : hasNonNullPrimitive;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* handleNestedDynamicLists()
|
|
93
|
+
* Reassigns list_item and value data to DynamicList children
|
|
94
|
+
* down the tree. Server response returns data only in
|
|
95
|
+
* the `value` object of parent complex type
|
|
96
|
+
*
|
|
97
|
+
* EUI-2530 Dynamic Lists for Elements in a Complex Type
|
|
98
|
+
*
|
|
99
|
+
* @param jsonBody - { case_fields: [ CaseField, CaseField ] }
|
|
100
|
+
*/
|
|
101
|
+
static handleNestedDynamicLists(jsonBody) {
|
|
102
|
+
if (jsonBody.case_fields) {
|
|
103
|
+
jsonBody.case_fields.forEach(caseField => {
|
|
104
|
+
if (caseField.field_type) {
|
|
105
|
+
this.setDynamicListDefinition(caseField, caseField.field_type, caseField);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return jsonBody;
|
|
110
|
+
}
|
|
111
|
+
static prepareValue(field) {
|
|
112
|
+
if (field.value) {
|
|
113
|
+
return field.value;
|
|
114
|
+
}
|
|
115
|
+
else if (field.isComplex()) {
|
|
116
|
+
const valueMap = {};
|
|
117
|
+
field.field_type.complex_fields.forEach(complexField => {
|
|
118
|
+
valueMap[complexField.id] = FieldsUtils.prepareValue(complexField);
|
|
119
|
+
});
|
|
120
|
+
return valueMap;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Formats a `MoneyGBP` value to include currency units.
|
|
125
|
+
* @param fieldValue The CurrencyPipe expects an `any` parameter so this must also be `any`,
|
|
126
|
+
* but it should be "number-like" (e.g., '1234')
|
|
127
|
+
* @returns A formatted string (e.g., £12.34)
|
|
128
|
+
*/
|
|
129
|
+
static getMoneyGBP(fieldValue) {
|
|
130
|
+
return fieldValue ? FieldsUtils.currencyPipe.transform(fieldValue / 100, 'GBP', 'symbol') : fieldValue;
|
|
131
|
+
}
|
|
132
|
+
static getLabel(fieldValue) {
|
|
133
|
+
return fieldValue ? fieldValue.label : '';
|
|
134
|
+
}
|
|
135
|
+
static getDate(fieldValue) {
|
|
136
|
+
try {
|
|
137
|
+
// Format specified here wasn't previously working and lots of tests depend on it not working
|
|
138
|
+
// Now that formats work correctly many test would break - and this could affect services which may depend on
|
|
139
|
+
// the orginal behaviour of returning dates in "d MMM yyyy"
|
|
140
|
+
// Note - replaced 'd' with 'D' as datepipe using moment to avoid timezone discrepancies
|
|
141
|
+
return FieldsUtils.datePipe.transform(fieldValue, null, 'D MMM yyyy');
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
return this.textForInvalidField('Date', fieldValue);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
static getFixedListLabelByCodeOrEmpty(field, code) {
|
|
148
|
+
const relevantItem = code ? field.field_type.fixed_list_items.find(item => item.code === code) : null;
|
|
149
|
+
return relevantItem ? relevantItem.label : '';
|
|
150
|
+
}
|
|
151
|
+
static textForInvalidField(type, invalidValue) {
|
|
152
|
+
return `{ Invalid ${type}: ${invalidValue} }`;
|
|
153
|
+
}
|
|
154
|
+
static setDynamicListDefinition(caseField, caseFieldType, rootCaseField) {
|
|
155
|
+
if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX) {
|
|
156
|
+
caseFieldType.complex_fields.forEach(field => {
|
|
157
|
+
try {
|
|
158
|
+
const isDynamicField = FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;
|
|
159
|
+
if (isDynamicField) {
|
|
160
|
+
const dynamicListValue = this.getDynamicListValue(rootCaseField.value, field.id);
|
|
161
|
+
if (dynamicListValue) {
|
|
162
|
+
const list_items = dynamicListValue[0].list_items;
|
|
163
|
+
const complexValue = dynamicListValue.map(data => data.value);
|
|
164
|
+
const value = {
|
|
165
|
+
list_items,
|
|
166
|
+
value: complexValue.length > 0 ? complexValue : undefined
|
|
167
|
+
};
|
|
168
|
+
field.value = Object.assign({}, value);
|
|
169
|
+
field.formatted_value = Object.assign(Object.assign({}, field.formatted_value), value);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this.setDynamicListDefinition(field, field.field_type, rootCaseField);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.log(error);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
else if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {
|
|
182
|
+
if (caseFieldType.collection_field_type) {
|
|
183
|
+
this.setDynamicListDefinition(caseField, caseFieldType.collection_field_type, rootCaseField);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
static getDynamicListValue(jsonBlock, key) {
|
|
188
|
+
const data = jsonBlock ? this.getNestedFieldValues(jsonBlock, key, []) : [];
|
|
189
|
+
return data.length > 0 ? data : null;
|
|
190
|
+
}
|
|
191
|
+
static getNestedFieldValues(jsonData, key, output = []) {
|
|
192
|
+
if (jsonData && jsonData[key]) {
|
|
193
|
+
output.push(jsonData[key]);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
for (const elementKey in jsonData) {
|
|
197
|
+
if (typeof jsonData === 'object' && jsonData.hasOwnProperty(elementKey)) {
|
|
198
|
+
this.getNestedFieldValues(jsonData[elementKey], key, output);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return output;
|
|
203
|
+
}
|
|
204
|
+
buildCanShowPredicate(eventTrigger, form) {
|
|
205
|
+
const currentState = this.getCurrentEventState(eventTrigger, form);
|
|
206
|
+
return (page) => {
|
|
207
|
+
return page.parsedShowCondition.match(currentState);
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
getCurrentEventState(eventTrigger, form) {
|
|
211
|
+
return this.mergeCaseFieldsAndFormFields(eventTrigger.case_fields, form.controls['data'].value);
|
|
212
|
+
}
|
|
213
|
+
cloneCaseField(obj) {
|
|
214
|
+
return Object.assign(new CaseField(), obj);
|
|
215
|
+
}
|
|
216
|
+
mergeCaseFieldsAndFormFields(caseFields, formFields) {
|
|
217
|
+
return this.mergeFields(caseFields, formFields, FieldsUtils.DEFAULT_MERGE_FUNCTION);
|
|
218
|
+
}
|
|
219
|
+
mergeLabelCaseFieldsAndFormFields(caseFields, formFields) {
|
|
220
|
+
return this.mergeFields(caseFields, formFields, FieldsUtils.LABEL_MERGE_FUNCTION);
|
|
221
|
+
}
|
|
222
|
+
controlIterator(aControl, formArrayFn, formGroupFn, controlFn) {
|
|
223
|
+
if (aControl instanceof FormArray) { // We're in a collection
|
|
224
|
+
formArrayFn(aControl);
|
|
225
|
+
}
|
|
226
|
+
else if (aControl instanceof FormGroup) { // We're in a complex type.
|
|
227
|
+
formGroupFn(aControl);
|
|
228
|
+
}
|
|
229
|
+
else if (aControl instanceof FormControl) { // FormControl
|
|
230
|
+
controlFn(aControl);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
mergeFields(caseFields, formFields, mergeFunction) {
|
|
234
|
+
const result = FieldsUtils.cloneObject(formFields);
|
|
235
|
+
caseFields.forEach(field => {
|
|
236
|
+
mergeFunction(field, result);
|
|
237
|
+
if (field.field_type && field.field_type.complex_fields && field.field_type.complex_fields.length > 0) {
|
|
238
|
+
result[field.id] = this.mergeFields(field.field_type.complex_fields, result[field.id], mergeFunction);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// EUI-4244. 3 dashes instead of 1 to make this less likely to clash with a real field.
|
|
245
|
+
FieldsUtils.LABEL_SUFFIX = '---LABEL';
|
|
246
|
+
// Handling of Dynamic Lists in Complex Types
|
|
247
|
+
FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION = 'Collection';
|
|
248
|
+
FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX = 'Complex';
|
|
249
|
+
FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList'];
|
|
250
|
+
FieldsUtils.currencyPipe = new CurrencyPipe('en-GB');
|
|
251
|
+
FieldsUtils.datePipe = new DatePipe(new FormatTranslatorService());
|
|
252
|
+
FieldsUtils.DEFAULT_MERGE_FUNCTION = function mergeFunction(field, result) {
|
|
253
|
+
if (!result.hasOwnProperty(field.id)) {
|
|
254
|
+
result[field.id] = field.value;
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
FieldsUtils.LABEL_MERGE_FUNCTION = function mergeFunction(field, result) {
|
|
258
|
+
if (!result.hasOwnProperty(field.id)) {
|
|
259
|
+
result[field.id] = field.value;
|
|
260
|
+
}
|
|
261
|
+
switch (field.field_type.type) {
|
|
262
|
+
case 'FixedList':
|
|
263
|
+
case 'FixedRadioList': {
|
|
264
|
+
result[field.id] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, result[field.id] || field.value);
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case 'MultiSelectList': {
|
|
268
|
+
const fieldValue = result[field.id] || [];
|
|
269
|
+
result[field.id + FieldsUtils.LABEL_SUFFIX] = [];
|
|
270
|
+
fieldValue.forEach((code, idx) => {
|
|
271
|
+
result[field.id + FieldsUtils.LABEL_SUFFIX][idx] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, code);
|
|
272
|
+
});
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case 'Label': {
|
|
276
|
+
result[field.id] = FieldsUtils.getLabel(field);
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
case 'MoneyGBP': {
|
|
280
|
+
const fieldValue = (result[field.id] || field.value);
|
|
281
|
+
result[field.id] = FieldsUtils.getMoneyGBP(fieldValue);
|
|
282
|
+
break;
|
|
283
|
+
}
|
|
284
|
+
case 'Date': {
|
|
285
|
+
const fieldValue = (result[field.id] || field.value);
|
|
286
|
+
result[field.id] = FieldsUtils.getDate(fieldValue);
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
case 'Complex': {
|
|
290
|
+
if (result[field.id] && field.field_type.complex_fields) {
|
|
291
|
+
field.field_type.complex_fields.forEach((f) => {
|
|
292
|
+
if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {
|
|
293
|
+
FieldsUtils.LABEL_MERGE_FUNCTION(f, result[field.id]);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
case 'Collection': {
|
|
300
|
+
const elements = (result[field.id] || field.value);
|
|
301
|
+
if (elements) {
|
|
302
|
+
elements.forEach((elem) => {
|
|
303
|
+
switch (field.field_type.collection_field_type.type) {
|
|
304
|
+
case 'MoneyGBP': {
|
|
305
|
+
elem.value = FieldsUtils.getMoneyGBP(elem.value);
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
case 'Date': {
|
|
309
|
+
elem.value = FieldsUtils.getDate(elem.value);
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
case 'Complex': {
|
|
313
|
+
if (field.field_type.collection_field_type.complex_fields) {
|
|
314
|
+
field.field_type.collection_field_type.complex_fields.forEach((f) => {
|
|
315
|
+
if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {
|
|
316
|
+
FieldsUtils.LABEL_MERGE_FUNCTION(f, elem.value);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
FieldsUtils.ɵfac = function FieldsUtils_Factory(t) { return new (t || FieldsUtils)(); };
|
|
330
|
+
FieldsUtils.ɵprov = i0.ɵɵdefineInjectable({ token: FieldsUtils, factory: FieldsUtils.ɵfac });
|
|
331
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldsUtils, [{
|
|
332
|
+
type: Injectable
|
|
333
|
+
}], null, null); })();
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFJcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBS3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUVuRixXQUFXO0FBRVgsTUFBTSxPQUFPLFdBQVc7SUFXZixNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBUTtRQUN2QyxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUF1QjtRQUMvQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQs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eUJBQ1A7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELE1BQU07U0FDUDtLQUNGO0FBQ0gsQ0FBQyxDQUFDO3NFQTdOUyxXQUFXO21EQUFYLFdBQVcsV0FBWCxXQUFXO3VGQUFYLFdBQVc7Y0FEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcblxuaW1wb3J0IHsgV2l6YXJkUGFnZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wYWxldHRlL2Jhc2UtZmllbGQvYWJzdHJhY3QtZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3BhbGV0dGUvdXRpbHMvZGF0ZS5waXBlJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIgfSBmcm9tICcuLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2UtZXZlbnQtdHJpZ2dlci5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXRhYi5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvY2FzZS12aWV3Lm1vZGVsJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2ZpZWxkLXR5cGUtZW51bS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLm1vZGVsJztcbmltcG9ydCB7IEZpeGVkTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maXhlZC1saXN0LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL3ByZWRpY2F0ZS5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtYXRUcmFuc2xhdG9yU2VydmljZSB9IGZyb20gJy4uL2Nhc2UtZmllbGRzL2Zvcm1hdC10cmFuc2xhdG9yLnNlcnZpY2UnO1xuXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpZWxkc1V0aWxzIHtcbiAgLy8gRVVJLTQyNDQuIDMgZGFzaGVzIGluc3RlYWQgb2YgMSB0byBtYWtlIHRoaXMgbGVzcyBsaWtlbHkgdG8gY2xhc2ggd2l0aCBhIHJlYWwgZmllbGQuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEFCRUxfU1VGRklYID0gJy0tLUxBQkVMJztcbiAgLy8gSGFuZGxpbmcgb2YgRHluYW1pYyBMaXN0cyBpbiBDb21wbGV4IFR5cGVzXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VSVkVSX1JFU1BPTlNFX0ZJRUxEX1RZUEVfQ09MTEVDVElPTiA9ICdDb2xsZWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVJWRVJfUkVTUE9OU0VfRklFTERfVFlQRV9DT01QTEVYID0gJ0NvbXBsZXgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFUlZFUl9SRVNQT05TRV9GSUVMRF9UWVBFX0RZTkFNSUNfTElTVF9UWVBFOiBGaWVsZFR5cGVFbnVtW10gPSBbJ0R5bmFtaWNMaXN0JywgJ0R5bmFtaWNSYWRpb0xpc3QnXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSA9IG5ldyBDdXJyZW5jeVBpcGUoJ2VuLUdCJyk7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRhdGVQaXBlOiBEYXRlUGlwZSA9IG5ldyBEYXRlUGlwZShuZXcgRm9ybWF0VHJhbnNsYXRvclNlcnZpY2UoKSk7XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0VG9DYXNlRmllbGQob2JqOiBhbnkpOiBDYXNlRmllbGQge1xuICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIENhc2VGaWVsZCkpIHtcbiAgICAgIHJldHVybiBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCBvYmopO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b1ZhbHVlc01hcChjYXNlRmllbGRzOiBDYXNlRmllbGRbXSk6IGFueSB7XG4gICAgY29uc3QgdmFsdWVNYXAgPSB7fTtcbiAgICBjYXNlRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgdmFsdWVNYXBbZmllbGQuaWRdID0gRmllbGRzVXRpbHMucHJlcGFyZVZhbHVlKGZpZWxkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWVNYXA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFR5cGUoZWxlbTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVsZW0pLnNsaWNlKDgsIC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBlbGVtID09PSAnb2JqZWN0JyAmJiBlbGVtICE9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc05vbkVtcHR5T2JqZWN0KGVsZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzT2JqZWN0KGVsZW0pICYmIE9iamVjdC5rZXlzKGVsZW0pLmxlbmd0aCAhPT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBcnJheShlbGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShlbGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXJlQ29sbGVjdGlvblZhbHVlc1NpbXBsZUZpZWxkcyhmaWVsZFZhbHVlOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc09iamVjdChmaWVsZFZhbHVlWzBdWyd2YWx1ZSddKSAmJiAhQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlWzBdWyd2YWx1ZSddKSAmJiBmaWVsZFZhbHVlWzBdWyd2YWx1ZSddICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQ29sbGVjdGlvbk9mU2ltcGxlVHlwZXMoZmllbGRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb2xsZWN0aW9uKGZpZWxkVmFsdWUpICYmIHRoaXMuYXJlQ29sbGVjdGlvblZhbHVlc1NpbXBsZUZpZWxkcyhmaWVsZFZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNNdWx0aVNlbGVjdFZhbHVlKGZvcm06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzTm9uRW1wdHlBcnJheShmb3JtKSAmJiAhdGhpcy5pc0NvbGxlY3Rpb25XaXRoVmFsdWUoZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm9uRW1wdHlBcnJheShwYWdlRm9ybUZpZWxkczogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocGFnZUZvcm1GaWVsZHMpICYmIHBhZ2VGb3JtRmllbGRzWzBdICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQ29sbGVjdGlvbihwYWdlRm9ybUZpZWxkczogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNOb25FbXB0eUFycmF5KHBhZ2VGb3JtRmllbGRzKSAmJiB0aGlzLmlzQ29sbGVjdGlvbldpdGhWYWx1ZShwYWdlRm9ybUZpZWxkcyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQ29sbGVjdGlvbldpdGhWYWx1ZShwYWdlRm9ybUZpZWxkczogYW55W10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFnZUZvcm1GaWVsZHNbMF1bJ3ZhbHVlJ10gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2xvbmVPYmplY3Qob2JqOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvYmopO1xuICB9XG5cbiAgLy8gdGVtcG9yYXJ5IGZ1bmN0aW9uIHVudGlsIHRoaXMgY2FuIGJlIG1vdmVkIHRvIENhc2VWaWV3IGNsYXNzIChSRE0tMjY4MSlcbiAgcHVibGljIHN0YXRpYyBnZXRDYXNlRmllbGRzKGNhc2VWaWV3OiBDYXNlVmlldyk6IENhc2VGaWVsZFtdIHtcbiAgICBjb25zdCBjYXNlRGF0YUZpZWxkczogQ2FzZUZpZWxkW10gPSBjYXNlVmlldy50YWJzLnJlZHVjZSgoYWNjOiBDYXNlRmllbGRbXSwgdGFiOiBDYXNlVGFiKSA9PiB7XG4gICAgICByZXR1cm4gYWNjLmNvbmNhdCh0YWIuZmllbGRzKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBtZXRhZGF0YUZpZWxkczogQ2FzZUZpZWxkW10gPSBjYXNlVmlldy5tZXRhZGF0YUZpZWxkcztcbiAgICByZXR1cm4gbWV0YWRhdGFGaWVsZHMuY29uY2F0KGNhc2VEYXRhRmllbGRzLmZpbHRlcigoY2FzZUZpZWxkOiBDYXNlRmllbGQpID0+IHtcbiAgICAgIHJldHVybiBtZXRhZGF0YUZpZWxkcy5maW5kSW5kZXgobWV0YWRhdGFGaWVsZCA9PiBtZXRhZGF0YUZpZWxkLmlkID09PSBjYXNlRmllbGQuaWQpIDwgMDtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXMgKGM6IEFic3RyYWN0Q29udHJvbCwgY2Y6IENhc2VGaWVsZCwgY29tcDogQWJzdHJhY3RGb3JtRmllbGRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjWydjYXNlRmllbGQnXSA9IGNmO1xuICAgIGNbJ2NvbXBvbmVudCddID0gY29tcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmUgY2hlY2sgb2YgYW4gYXJyYXkgb3Igb2JqZWN0IGFuZCBpdHMgZGVzY2VuZGFudHMgZm9yIHRoZSBwcmVzZW5jZSBvZiBhbnkgbm9uLWVtcHR5IHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIG9iamVjdCBUaGUgYXJyYXkgb3Igb2JqZWN0IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJyYXkgb3Igb2JqZWN0IChvciBhIGRlc2NlbmRhbnQpIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBub24tZW1wdHkgdmFsdWU7IGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbnRhaW5zTm9uRW1wdHlWYWx1ZXMob2JqZWN0OiBvYmplY3QpOiBib29sZWFuIHtcbiAgICBpZiAoIW9iamVjdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3Qua2V5cyhvYmplY3QpLm1hcChrZXkgPT4gb2JqZWN0W2tleV0pO1xuICAgIGNvbnN0IG9iamVjdFJlZnMgPSBbXTtcbiAgICAvLyBBbHNvIHRlc3QgZm9yIG51bWVyaWMgdmFsdWVzLCBhbmQgbGVuZ3RoID4gMCBmb3Igbm9uLW51bWVyaWMgdmFsdWVzIGJlY2F1c2UgdGhpcyBjb3ZlcnMgYm90aCBzdHJpbmdzIGFuZCBhcnJheXMuXG4gICAgLy8gTm90ZTogRGVsaWJlcmF0ZSB1c2Ugb2Ygbm9uLWVxdWFsaXR5ICghPSkgb3BlcmF0b3IgZm9yIG51bGwgY2hlY2ssIHRvIGhhbmRsZSBib3RoIG51bGwgYW5kIHVuZGVmaW5lZCB2YWx1ZXMuXG4gICAgY29uc3QgaGFzTm9uTnVsbFByaW1pdGl2ZSA9IHZhbHVlcy5zb21lKHggPT4gKHggIT0gbnVsbCAmJlxuICAgICAgKCh0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeC5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB8fCBBcnJheS5pc0FycmF5KHgpXG4gICAgICAgID8gIW9iamVjdFJlZnMucHVzaCh4KVxuICAgICAgICA6IHR5cGVvZiB4ID09PSAnbnVtYmVyJyB8fCB4Lmxlbmd0aCA+IDApXG4gICAgKSk7XG4gICAgcmV0dXJuICFoYXNOb25OdWxsUHJpbWl0aXZlID8gb2JqZWN0UmVmcy5zb21lKHkgPT4gdGhpcy5jb250YWluc05vbkVtcHR5VmFsdWVzKHkpKSA6IGhhc05vbk51bGxQcmltaXRpdmU7XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlTmVzdGVkRHluYW1pY0xpc3RzKClcbiAgICogUmVhc3NpZ25zIGxpc3RfaXRlbSBhbmQgdmFsdWUgZGF0YSB0byBEeW5hbWljTGlzdCBjaGlsZHJlblxuICAgKiBkb3duIHRoZSB0cmVlLiBTZXJ2ZXIgcmVzcG9uc2UgcmV0dXJucyBkYXRhIG9ubHkgaW5cbiAgICogdGhlIGB2YWx1ZWAgb2JqZWN0IG9mIHBhcmVudCBjb21wbGV4IHR5cGVcbiAgICpcbiAgICogRVVJLTI1MzAgRHluYW1pYyBMaXN0cyBmb3IgRWxlbWVudHMgaW4gYSBDb21wbGV4IFR5cGVcbiAgICpcbiAgICogQHBhcmFtIGpzb25Cb2R5IC0geyBjYXNlX2ZpZWxkczogWyBDYXNlRmllbGQsIENhc2VGaWVsZCBdIH1cbiAgICovXG4gICBwdWJsaWMgc3RhdGljIGhhbmRsZU5lc3RlZER5bmFtaWNMaXN0cyhqc29uQm9keTogeyBjYXNlX2ZpZWxkczogQ2FzZUZpZWxkW10gfSk6IGFueSB7XG5cbiAgICBpZiAoanNvbkJvZHkuY2FzZV9maWVsZHMpIHtcbiAgICAgIGpzb25Cb2R5LmNhc2VfZmllbGRzLmZvckVhY2goY2FzZUZpZWxkID0+IHtcbiAgICAgICAgaWYgKGNhc2VGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICAgICAgdGhpcy5zZXREeW5hbWljTGlzdERlZmluaXRpb24oY2FzZUZpZWxkLCBjYXNlRmllbGQuZmllbGRfdHlwZSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb25Cb2R5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcHJlcGFyZVZhbHVlKGZpZWxkOiBDYXNlRmllbGQpOiBhbnkge1xuICAgIGlmIChmaWVsZC52YWx1ZSkge1xuICAgICAgcmV0dXJuIGZpZWxkLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoZmllbGQuaXNDb21wbGV4KCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlTWFwID0ge307XG4gICAgICBmaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goY29tcGxleEZpZWxkID0+IHtcbiAgICAgICAgdmFsdWVNYXBbY29tcGxleEZpZWxkLmlkXSA9IEZpZWxkc1V0aWxzLnByZXBhcmVWYWx1ZShjb21wbGV4RmllbGQpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdmFsdWVNYXA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9NRVJHRV9GVU5DVElPTiA9IGZ1bmN0aW9uIG1lcmdlRnVuY3Rpb24oZmllbGQ6IENhc2VGaWVsZCwgcmVzdWx0OiBvYmplY3QpOiB2b2lkIHtcbiAgICBpZiAoIXJlc3VsdC5oYXNPd25Qcm9wZXJ0eShmaWVsZC5pZCkpIHtcbiAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBmaWVsZC52YWx1ZTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTEFCRUxfTUVSR0VfRlVOQ1RJT04gPSBmdW5jdGlvbiBtZXJnZUZ1bmN0aW9uKGZpZWxkOiBDYXNlRmllbGQsIHJlc3VsdDogb2JqZWN0KTogdm9pZCB7XG4gICAgaWYgKCFyZXN1bHQuaGFzT3duUHJvcGVydHkoZmllbGQuaWQpKSB7XG4gICAgICByZXN1bHRbZmllbGQuaWRdID0gZmllbGQudmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAoZmllbGQuZmllbGRfdHlwZS50eXBlKSB7XG4gICAgICBjYXNlICdGaXhlZExpc3QnOlxuICAgICAgY2FzZSAnRml4ZWRSYWRpb0xpc3QnOiB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRGaXhlZExpc3RMYWJlbEJ5Q29kZU9yRW1wdHkoZmllbGQsIHJlc3VsdFtmaWVsZC5pZF0gfHwgZmllbGQudmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ011bHRpU2VsZWN0TGlzdCc6IHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHJlc3VsdFtmaWVsZC5pZF0gfHwgW107XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZCArIEZpZWxkc1V0aWxzLkxBQkVMX1NVRkZJWF0gPSBbXTtcbiAgICAgICAgZmllbGRWYWx1ZS5mb3JFYWNoKChjb2RlOiBhbnksIGlkeDogYW55KSA9PiB7XG4gICAgICAgICAgcmVzdWx0W2ZpZWxkLmlkICsgRmllbGRzVXRpbHMuTEFCRUxfU1VGRklYXVtpZHhdID0gRmllbGRzVXRpbHMuZ2V0Rml4ZWRMaXN0TGFiZWxCeUNvZGVPckVtcHR5KGZpZWxkLCBjb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTGFiZWwnOiB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRMYWJlbChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTW9uZXlHQlAnOiB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSAocmVzdWx0W2ZpZWxkLmlkXSB8fCBmaWVsZC52YWx1ZSk7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRNb25leUdCUChmaWVsZFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdEYXRlJzoge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gKHJlc3VsdFtmaWVsZC5pZF0gfHwgZmllbGQudmFsdWUpO1xuICAgICAgICByZXN1bHRbZmllbGQuaWRdID0gRmllbGRzVXRpbHMuZ2V0RGF0ZShmaWVsZFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDb21wbGV4Jzoge1xuICAgICAgICBpZiAocmVzdWx0W2ZpZWxkLmlkXSAmJiBmaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgICAgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKChmOiBDYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChbJ0NvbGxlY3Rpb24nLCAnQ29tcGxleCcsICdNdWx0aVNlbGVjdExpc3QnXS5pbmRleE9mKGYuZmllbGRfdHlwZS50eXBlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIEZpZWxkc1V0aWxzLkxBQkVMX01FUkdFX0ZVTkNUSU9OKGYsIHJlc3VsdFtmaWVsZC5pZF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ29sbGVjdGlvbic6IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSAocmVzdWx0W2ZpZWxkLmlkXSB8fCBmaWVsZC52YWx1ZSk7XG4gICAgICAgIGlmIChlbGVtZW50cykge1xuICAgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ01vbmV5R0JQJzoge1xuICAgICAgICAgICAgICAgIGVsZW0udmFsdWUgPSBGaWVsZHNVdGlscy5nZXRNb25leUdCUChlbGVtLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlICdEYXRlJzoge1xuICAgICAgICAgICAgICAgIGVsZW0udmFsdWUgPSBGaWVsZHNVdGlscy5nZXREYXRlKGVsZW0udmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgJ0NvbXBsZXgnOiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKChmOiBDYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFsnQ29sbGVjdGlvbicsICdDb21wbGV4JywgJ011bHRpU2VsZWN0TGlzdCddLmluZGV4T2YoZi5maWVsZF90eXBlLnR5cGUpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICBGaWVsZHNVdGlscy5MQUJFTF9NRVJHRV9GVU5DVElPTihmLCBlbGVtLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgYE1vbmV5R0JQYCB2YWx1ZSB0byBpbmNsdWRlIGN1cnJlbmN5IHVuaXRzLlxuICAgKiBAcGFyYW0gZmllbGRWYWx1ZSBUaGUgQ3VycmVuY3lQaXBlIGV4cGVjdHMgYW4gYGFueWAgcGFyYW1ldGVyIHNvIHRoaXMgbXVzdCBhbHNvIGJlIGBhbnlgLFxuICAgKiBidXQgaXQgc2hvdWxkIGJlIFwibnVtYmVyLWxpa2VcIiAoZS5nLiwgJzEyMzQnKVxuICAgKiBAcmV0dXJucyBBIGZvcm1hdHRlZCBzdHJpbmcgKGUuZy4sIMKjMTIuMzQpXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRNb25leUdCUChmaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBmaWVsZFZhbHVlID8gRmllbGRzVXRpbHMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShmaWVsZFZhbHVlIC8gMTAwLCAnR0JQJywgJ3N5bWJvbCcpIDogZmllbGRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldExhYmVsKGZpZWxkVmFsdWU6IENhc2VGaWVsZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZpZWxkVmFsdWUgPyBmaWVsZFZhbHVlLmxhYmVsIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXREYXRlKGZpZWxkVmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZvcm1hdCBzcGVjaWZpZWQgaGVyZSB3YXNuJ3QgcHJldmlvdXNseSB3b3JraW5nIGFuZCBsb3RzIG9mIHRlc3RzIGRlcGVuZCBvbiBpdCBub3Qgd29ya2luZ1xuICAgICAgLy8gTm93IHRoYXQgZm9ybWF0cyB3b3JrIGNvcnJlY3RseSBtYW55IHRlc3Qgd291bGQgYnJlYWsgLSBhbmQgdGhpcyBjb3VsZCBhZmZlY3Qgc2VydmljZXMgd2hpY2ggbWF5IGRlcGVuZCBvblxuICAgICAgLy8gdGhlIG9yZ2luYWwgYmVoYXZpb3VyIG9mIHJldHVybmluZyBkYXRlcyBpbiBcImQgTU1NIHl5eXlcIlxuICAgICAgLy8gTm90ZSAtIHJlcGxhY2VkICdkJyB3aXRoICdEJyBhcyBkYXRlcGlwZSB1c2luZyBtb21lbnQgdG8gYXZvaWQgdGltZXpvbmUgZGlzY3JlcGFuY2llc1xuICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWVsZFZhbHVlLCBudWxsLCAnRCBNTU0geXl5eScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRGb3JJbnZhbGlkRmllbGQoJ0RhdGUnLCBmaWVsZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRGaXhlZExpc3RMYWJlbEJ5Q29kZU9yRW1wdHkoZmllbGQ6IENhc2VGaWVsZCwgY29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZWxldmFudEl0ZW06IEZpeGVkTGlzdEl0ZW0gPSBjb2RlID8gZmllbGQuZmllbGRfdHlwZS5maXhlZF9saXN0X2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmNvZGUgPT09IGNvZGUpIDogbnVsbDtcbiAgICByZXR1cm4gcmVsZXZhbnRJdGVtID8gcmVsZXZhbnRJdGVtLmxhYmVsIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0ZXh0Rm9ySW52YWxpZEZpZWxkKHR5cGU6IHN0cmluZywgaW52YWxpZFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgeyBJbnZhbGlkICR7dHlwZX06ICR7aW52YWxpZFZhbHVlfSB9YDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldER5bmFtaWNMaXN0RGVmaW5pdGlvbihjYXNlRmllbGQ6IENhc2VGaWVsZCwgY2FzZUZpZWxkVHlwZTogRmllbGRUeXBlLCByb290Q2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICBpZiAoY2FzZUZpZWxkVHlwZS50eXBlID09PSBGaWVsZHNVdGlscy5TRVJWRVJfUkVTUE9OU0VfRklFTERfVFlQRV9DT01QTEVYKSB7XG5cbiAgICAgIGNhc2VGaWVsZFR5cGUuY29tcGxleF9maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaXNEeW5hbWljRmllbGQgPSBGaWVsZHNVdGlscy5TRVJWRVJfUkVTUE9OU0VfRklFTERfVFlQRV9EWU5BTUlDX0xJU1RfVFlQRS5pbmRleE9mKGZpZWxkLmZpZWxkX3R5cGUudHlwZSkgIT09IC0xO1xuXG4gICAgICAgICAgaWYgKGlzRHluYW1pY0ZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBkeW5hbWljTGlzdFZhbHVlID0gdGhpcy5nZXREeW5hbWljTGlzdFZhbHVlKHJvb3RDYXNlRmllbGQudmFsdWUsIGZpZWxkLmlkKTtcbiAgICAgICAgICAgIGlmIChkeW5hbWljTGlzdFZhbHVlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxpc3RfaXRlbXMgPSBkeW5hbWljTGlzdFZhbHVlWzBdLmxpc3RfaXRlbXM7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXhWYWx1ZSA9IGR5bmFtaWNMaXN0VmFsdWUubWFwKGRhdGEgPT4gZGF0YS52YWx1ZSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgICAgICAgICAgIGxpc3RfaXRlbXMsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbXBsZXhWYWx1ZS5sZW5ndGggPiAwID8gY29tcGxleFZhbHVlIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGZpZWxkLnZhbHVlID0ge1xuICAgICAgICAgICAgICAgIC4uLnZhbHVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGZpZWxkLmZvcm1hdHRlZF92YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5maWVsZC5mb3JtYXR0ZWRfdmFsdWUsXG4gICAgICAgICAgICAgICAgLi4udmFsdWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXREeW5hbWljTGlzdERlZmluaXRpb24oZmllbGQsIGZpZWxkLmZpZWxkX3R5cGUsIHJvb3RDYXNlRmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2FzZUZpZWxkVHlwZS50eXBlID09PSBGaWVsZHNVdGlscy5TRVJWRVJfUkVTUE9OU0VfRklFTERfVFlQRV9DT0xMRUNUSU9OKSB7XG4gICAgICBpZiAoY2FzZUZpZWxkVHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpIHtcbiAgICAgICAgdGhpcy5zZXREeW5hbWljTGlzdERlZmluaXRpb24oY2FzZUZpZWxkLCBjYXNlRmllbGRUeXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSwgcm9vdENhc2VGaWVsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RHluYW1pY0xpc3RWYWx1ZShqc29uQmxvY2s6IGFueSwga2V5OiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGRhdGEgPSBqc29uQmxvY2sgPyB0aGlzLmdldE5lc3RlZEZpZWxkVmFsdWVzKGpzb25CbG9jaywga2V5LCBbXSkgOiBbXTtcblxuICAgIHJldHVybiBkYXRhLmxlbmd0aCA+IDAgPyBkYXRhIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldE5lc3RlZEZpZWxkVmFsdWVzKGpzb25EYXRhOiBhbnksIGtleTogc3RyaW5nLCBvdXRwdXQ6IGFueVtdID0gW10pIHtcbiAgICBpZiAoanNvbkRhdGEgJiYganNvbkRhdGFba2V5XSkge1xuICAgICAgb3V0cHV0LnB1c2goanNvbkRhdGFba2V5XSk7XG4gICAgfSBlbHNlICB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnRLZXkgaW4ganNvbkRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBqc29uRGF0YSA9PT0gJ29iamVjdCcgJiYganNvbkRhdGEuaGFzT3duUHJvcGVydHkoZWxlbWVudEtleSkpIHtcbiAgICAgICAgICB0aGlzLmdldE5lc3RlZEZpZWxkVmFsdWVzKGpzb25EYXRhW2VsZW1lbnRLZXldLCBrZXksIG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhblNob3dQcmVkaWNhdGUoZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyLCBmb3JtOiBhbnkpOiBQcmVkaWNhdGU8V2l6YXJkUGFnZT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZ2V0Q3VycmVudEV2ZW50U3RhdGUoZXZlbnRUcmlnZ2VyLCBmb3JtKTtcbiAgICByZXR1cm4gKHBhZ2U6IFdpemFyZFBhZ2UpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBwYWdlLnBhcnNlZFNob3dDb25kaXRpb24ubWF0Y2goY3VycmVudFN0YXRlKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRFdmVudFN0YXRlKGV2ZW50VHJpZ2dlcjogeyBjYXNlX2ZpZWxkczogQ2FzZUZpZWxkW10gfSwgZm9ybTogRm9ybUdyb3VwKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5tZXJnZUNhc2VGaWVsZHNBbmRGb3JtRmllbGRzKGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcywgZm9ybS5jb250cm9sc1snZGF0YSddLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZUNhc2VGaWVsZChvYmo6IGFueSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCBvYmopO1xuICB9XG5cbiAgcHVibGljIG1lcmdlQ2FzZUZpZWxkc0FuZEZvcm1GaWVsZHMoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIGZvcm1GaWVsZHM6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VGaWVsZHMoY2FzZUZpZWxkcywgZm9ybUZpZWxkcywgRmllbGRzVXRpbHMuREVGQVVMVF9NRVJHRV9GVU5DVElPTik7XG4gIH1cblxuICBwdWJsaWMgbWVyZ2VMYWJlbENhc2VGaWVsZHNBbmRGb3JtRmllbGRzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBmb3JtRmllbGRzOiBvYmplY3QpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLm1lcmdlRmllbGRzKGNhc2VGaWVsZHMsIGZvcm1GaWVsZHMsIEZpZWxkc1V0aWxzLkxBQkVMX01FUkdFX0ZVTkNUSU9OKTtcbiAgfVxuXG4gIHB1YmxpYyBjb250cm9sSXRlcmF0b3IoXG4gICAgYUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICBmb3JtQXJyYXlGbjogKGFycmF5OiBGb3JtQXJyYXkpID0+IHZvaWQsXG4gICAgZm9ybUdyb3VwRm46IChncm91cDogRm9ybUdyb3VwKSA9PiB2b2lkLFxuICAgIGNvbnRyb2xGbjogKGNvbnRyb2w6IEZvcm1Db250cm9sKSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIGlmIChhQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkgeyAvLyBXZSdyZSBpbiBhIGNvbGxlY3Rpb25cbiAgICAgIGZvcm1BcnJheUZuKGFDb250cm9sKTtcbiAgICB9IGVsc2UgaWYgKGFDb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7IC8vIFdlJ3JlIGluIGEgY29tcGxleCB0eXBlLlxuICAgICAgZm9ybUdyb3VwRm4oYUNvbnRyb2wpO1xuICAgIH0gZWxzZSBpZiAoYUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkgeyAvLyBGb3JtQ29udHJvbFxuICAgICAgY29udHJvbEZuKGFDb250cm9sKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlRmllbGRzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBmb3JtRmllbGRzOiBvYmplY3QsIG1lcmdlRnVuY3Rpb246IChmaWVsZDogQ2FzZUZpZWxkLCByZXN1bHQ6IG9iamVjdCkgPT4gdm9pZCk6IG9iamVjdCB7XG4gICAgY29uc3QgcmVzdWx0OiBvYmplY3QgPSBGaWVsZHNVdGlscy5jbG9uZU9iamVjdChmb3JtRmllbGRzKTtcbiAgICBjYXNlRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgbWVyZ2VGdW5jdGlvbihmaWVsZCwgcmVzdWx0KTtcbiAgICAgIGlmIChmaWVsZC5maWVsZF90eXBlICYmIGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMgJiYgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSB0aGlzLm1lcmdlRmllbGRzKGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMsIHJlc3VsdFtmaWVsZC5pZF0sIG1lcmdlRnVuY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './fields.utils';
|
|
2
|
+
export * from './fields.purger';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2ZpZWxkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpZWxkcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcy5wdXJnZXInO1xuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FieldTypeSanitiser {
|
|
4
|
+
/**
|
|
5
|
+
* This method finds dynamiclists in a form and replaces their string
|
|
6
|
+
* values, with a JSON object, as below:
|
|
7
|
+
* From: 'xyz'
|
|
8
|
+
* To : {
|
|
9
|
+
* value: { code:'xyz', label:'XYZ' },
|
|
10
|
+
* list_items: [
|
|
11
|
+
* { code:'xyz', label:'XYZ'},
|
|
12
|
+
* { code:'abc', label:'ABC'}
|
|
13
|
+
* ]
|
|
14
|
+
* }
|
|
15
|
+
* @param caseFields The CaseFields to assess.
|
|
16
|
+
* @param data The data in the form.
|
|
17
|
+
*/
|
|
18
|
+
sanitiseLists(caseFields, data) {
|
|
19
|
+
if (!data || !caseFields) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
caseFields.forEach(caseField => {
|
|
23
|
+
switch (caseField.field_type.type) {
|
|
24
|
+
case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST:
|
|
25
|
+
case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST:
|
|
26
|
+
this.convertStringToDynamicListOutput(caseField, data);
|
|
27
|
+
break;
|
|
28
|
+
case FieldTypeSanitiser.FIELD_TYPE_COMPLEX:
|
|
29
|
+
this.sanitiseLists(caseField.field_type.complex_fields, data[caseField.id]);
|
|
30
|
+
break;
|
|
31
|
+
case FieldTypeSanitiser.FIELD_TYPE_COLLECTION:
|
|
32
|
+
if (Array.isArray(data[caseField.id])) {
|
|
33
|
+
data[caseField.id].forEach((formElement) => {
|
|
34
|
+
this.sanitiseLists(caseField.field_type.collection_field_type.complex_fields, formElement.value);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
convertStringToDynamicListOutput(field, data) {
|
|
42
|
+
const stringValue = data[field.id];
|
|
43
|
+
if (typeof stringValue === 'string') {
|
|
44
|
+
const listItems = this.getListItems(field);
|
|
45
|
+
const matches = listItems.filter(value => value.code === stringValue);
|
|
46
|
+
if (matches && matches.length > 0) {
|
|
47
|
+
data[field.id] = {
|
|
48
|
+
value: matches[0],
|
|
49
|
+
list_items: listItems
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
getListItems(field) {
|
|
55
|
+
if (field) {
|
|
56
|
+
if (field.list_items) {
|
|
57
|
+
return field.list_items;
|
|
58
|
+
}
|
|
59
|
+
if (field.formatted_value && field.formatted_value.list_items) {
|
|
60
|
+
return field.formatted_value.list_items;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
FieldTypeSanitiser.FIELD_TYPE_COMPLEX = 'Complex';
|
|
67
|
+
FieldTypeSanitiser.FIELD_TYPE_COLLECTION = 'Collection';
|
|
68
|
+
FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST = 'DynamicList';
|
|
69
|
+
FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST = 'DynamicRadioList';
|
|
70
|
+
FieldTypeSanitiser.ɵfac = function FieldTypeSanitiser_Factory(t) { return new (t || FieldTypeSanitiser)(); };
|
|
71
|
+
FieldTypeSanitiser.ɵprov = i0.ɵɵdefineInjectable({ token: FieldTypeSanitiser, factory: FieldTypeSanitiser.ɵfac });
|
|
72
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldTypeSanitiser, [{
|
|
73
|
+
type: Injectable
|
|
74
|
+
}], null, null); })();
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1zYW5pdGlzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZmllbGQtdHlwZS1zYW5pdGlzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQU03Qjs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ssYUFBYSxDQUFDLFVBQXVCLEVBQUUsSUFBUztRQUN0RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFFN0IsUUFBUSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDakMsS0FBSyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDdEQsS0FBSyxrQkFBa0IsQ0FBQyx1QkFBdUI7b0JBQzdDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBRVIsS0FBSyxrQkFBa0IsQ0FBQyxrQkFBa0I7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM1RSxNQUFNO2dCQUVSLEtBQUssa0JBQWtCLENBQUMscUJBQXFCO29CQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRTs0QkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25HLENBQUMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELE1BQU07YUFDVDtRQUVILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLEtBQWdCLEVBQUUsSUFBUztRQUNsRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7WUFDdEUsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUc7b0JBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxTQUFTO2lCQUN0QixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsS0FBZ0I7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUN6QjtZQUNELElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtnQkFDN0QsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQzthQUN6QztTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQXZFc0IscUNBQWtCLEdBQWtCLFNBQVMsQ0FBQztBQUM5Qyx3Q0FBcUIsR0FBa0IsWUFBWSxDQUFDO0FBQ3BELDBDQUF1QixHQUFrQixhQUFhLENBQUM7QUFDdkQsZ0RBQTZCLEdBQWtCLGtCQUFrQixDQUFDO29GQUo5RSxrQkFBa0I7MERBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS1lbnVtLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpZWxkVHlwZVNhbml0aXNlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT01QTEVYOiBGaWVsZFR5cGVFbnVtID0gJ0NvbXBsZXgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfQ09MTEVDVElPTjogRmllbGRUeXBlRW51bSA9ICdDb2xsZWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljTGlzdCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9EWU5BTUlDX1JBRElPX0xJU1Q6IEZpZWxkVHlwZUVudW0gPSAnRHluYW1pY1JhZGlvTGlzdCc7XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZpbmRzIGR5bmFtaWNsaXN0cyBpbiBhIGZvcm0gYW5kIHJlcGxhY2VzIHRoZWlyIHN0cmluZ1xuICAgKiB2YWx1ZXMsIHdpdGggYSBKU09OIG9iamVjdCwgYXMgYmVsb3c6XG4gICAqIEZyb206ICd4eXonXG4gICAqIFRvICA6IHtcbiAgICogICB2YWx1ZTogeyBjb2RlOid4eXonLCBsYWJlbDonWFlaJyB9LFxuICAgKiAgIGxpc3RfaXRlbXM6IFtcbiAgICogICAgIHsgY29kZToneHl6JywgbGFiZWw6J1hZWid9LFxuICAgKiAgICAgeyBjb2RlOidhYmMnLCBsYWJlbDonQUJDJ31cbiAgICogICBdXG4gICAqIH1cbiAgICogQHBhcmFtIGNhc2VGaWVsZHMgVGhlIENhc2VGaWVsZHMgdG8gYXNzZXNzLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBpbiB0aGUgZm9ybS5cbiAgICovXG4gICBwdWJsaWMgc2FuaXRpc2VMaXN0cyhjYXNlRmllbGRzOiBDYXNlRmllbGRbXSwgZGF0YTogYW55KSB7XG4gICAgaWYgKCFkYXRhIHx8ICFjYXNlRmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhc2VGaWVsZHMuZm9yRWFjaChjYXNlRmllbGQgPT4ge1xuXG4gICAgICBzd2l0Y2ggKGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9EWU5BTUlDX1JBRElPX0xJU1Q6XG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfRFlOQU1JQ19MSVNUOlxuICAgICAgICAgIHRoaXMuY29udmVydFN0cmluZ1RvRHluYW1pY0xpc3RPdXRwdXQoY2FzZUZpZWxkLCBkYXRhKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTVBMRVg6XG4gICAgICAgICAgdGhpcy5zYW5pdGlzZUxpc3RzKGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBkYXRhW2Nhc2VGaWVsZC5pZF0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfQ09MTEVDVElPTjpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2Nhc2VGaWVsZC5pZF0pKSB7XG4gICAgICAgICAgICBkYXRhW2Nhc2VGaWVsZC5pZF0uZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNhbml0aXNlTGlzdHMoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBmb3JtRWxlbWVudC52YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFN0cmluZ1RvRHluYW1pY0xpc3RPdXRwdXQoZmllbGQ6IENhc2VGaWVsZCwgZGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc3RyaW5nVmFsdWUgPSBkYXRhW2ZpZWxkLmlkXTtcbiAgICBpZiAodHlwZW9mIHN0cmluZ1ZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbGlzdEl0ZW1zID0gdGhpcy5nZXRMaXN0SXRlbXMoZmllbGQpO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpc3RJdGVtcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUuY29kZSA9PT0gc3RyaW5nVmFsdWUpO1xuICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRhdGFbZmllbGQuaWRdID0ge1xuICAgICAgICAgIHZhbHVlOiBtYXRjaGVzWzBdLFxuICAgICAgICAgIGxpc3RfaXRlbXM6IGxpc3RJdGVtc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGlzdEl0ZW1zKGZpZWxkOiBDYXNlRmllbGQpOiBhbnlbXSB7XG4gICAgaWYgKGZpZWxkKSB7XG4gICAgICBpZiAoZmllbGQubGlzdF9pdGVtcykge1xuICAgICAgICByZXR1cm4gZmllbGQubGlzdF9pdGVtcztcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWUgJiYgZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXMpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmZvcm1hdHRlZF92YWx1ZS5saXN0X2l0ZW1zO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormArray } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormErrorService {
|
|
5
|
+
mapFieldErrors(errors, form, errorKey) {
|
|
6
|
+
errors.forEach(error => {
|
|
7
|
+
const formControl = this.getFormControl(form, error.id);
|
|
8
|
+
if (formControl) {
|
|
9
|
+
formControl.setErrors({
|
|
10
|
+
[errorKey]: error.message
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
getFormControl(form, fieldId) {
|
|
16
|
+
const fields = fieldId.split('.');
|
|
17
|
+
let group = form;
|
|
18
|
+
let inArray = false;
|
|
19
|
+
let control;
|
|
20
|
+
fields.every((field, index) => {
|
|
21
|
+
if (index === fields.length - 1) {
|
|
22
|
+
control = group.controls[field];
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
group = group.controls[field];
|
|
26
|
+
if (inArray && group.controls['value']) {
|
|
27
|
+
group = group.controls['value'];
|
|
28
|
+
}
|
|
29
|
+
if (group && group.constructor && FormArray.name === group.constructor.name) {
|
|
30
|
+
inArray = true;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
inArray = false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return !!group;
|
|
37
|
+
});
|
|
38
|
+
return control;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
FormErrorService.ɵfac = function FormErrorService_Factory(t) { return new (t || FormErrorService)(); };
|
|
42
|
+
FormErrorService.ɵprov = i0.ɵɵdefineInjectable({ token: FormErrorService, factory: FormErrorService.ɵfac });
|
|
43
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormErrorService, [{
|
|
44
|
+
type: Injectable
|
|
45
|
+
}], null, null); })();
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9mb3JtL2Zvcm0tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7O0FBR25FLE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsY0FBYyxDQUFDLE1BQXlDLEVBQUUsSUFBZSxFQUFFLFFBQWdCO1FBRWhHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhELElBQUksV0FBVyxFQUFFO2dCQUNmLFdBQVcsQ0FBQyxTQUFTLENBQUM7b0JBQ3BCLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU87aUJBQzFCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWUsRUFBRSxPQUFlO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsSUFBSSxLQUFLLEdBQWMsSUFBSSxDQUFDO1FBQzVCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLE9BQW9CLENBQUM7UUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM1QixJQUFJLEtBQUssS0FBSyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFnQixDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBYyxDQUFDO2dCQUUzQyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN0QyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQWMsQ0FBQztpQkFDOUM7Z0JBRUQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO29CQUMzRSxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjtxQkFBTTtvQkFDTCxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNqQjthQUNGO1lBQ0QsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0ZBekNVLGdCQUFnQjt3REFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JTZXJ2aWNlIHtcblxuICBwdWJsaWMgbWFwRmllbGRFcnJvcnMoZXJyb3JzOiB7IGlkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9W10sIGZvcm06IEZvcm1Hcm91cCwgZXJyb3JLZXk6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgZXJyb3JzLmZvckVhY2goZXJyb3IgPT4ge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKGZvcm0sIGVycm9yLmlkKTtcblxuICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgW2Vycm9yS2V5XTogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybUNvbnRyb2woZm9ybTogRm9ybUdyb3VwLCBmaWVsZElkOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRJZC5zcGxpdCgnLicpO1xuXG4gICAgbGV0IGdyb3VwOiBGb3JtR3JvdXAgPSBmb3JtO1xuICAgIGxldCBpbkFycmF5ID0gZmFsc2U7XG4gICAgbGV0IGNvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIGZpZWxkcy5ldmVyeSgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5kZXggPT09IGZpZWxkcy5sZW5ndGggLSAxKSB7XG4gICAgICAgIGNvbnRyb2wgPSBncm91cC5jb250cm9sc1tmaWVsZF0gYXMgRm9ybUNvbnRyb2w7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncm91cCA9IGdyb3VwLmNvbnRyb2xzW2ZpZWxkXSBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgaWYgKGluQXJyYXkgJiYgZ3JvdXAuY29udHJvbHNbJ3ZhbHVlJ10pIHtcbiAgICAgICAgICBncm91cCA9IGdyb3VwLmNvbnRyb2xzWyd2YWx1ZSddIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cCAmJiBncm91cC5jb25zdHJ1Y3RvciAmJiBGb3JtQXJyYXkubmFtZSA9PT0gZ3JvdXAuY29uc3RydWN0b3IubmFtZSkge1xuICAgICAgICAgIGluQXJyYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluQXJyYXkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuICEhZ3JvdXA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { Constants } from '../../commons/constants';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FormValidatorsService {
|
|
6
|
+
static addValidators(caseField, control) {
|
|
7
|
+
if (caseField.display_context === Constants.MANDATORY &&
|
|
8
|
+
FormValidatorsService.CUSTOM_VALIDATED_TYPES.indexOf(caseField.field_type.type) === -1) {
|
|
9
|
+
const validators = [Validators.required];
|
|
10
|
+
if (caseField.field_type.type === 'Text') {
|
|
11
|
+
if (caseField.field_type.regular_expression) {
|
|
12
|
+
validators.push(Validators.pattern(caseField.field_type.regular_expression));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
validators.push(this.emptyValidator());
|
|
16
|
+
}
|
|
17
|
+
if (caseField.field_type.min && (typeof caseField.field_type.min === 'number')) {
|
|
18
|
+
validators.push(Validators.minLength(caseField.field_type.min));
|
|
19
|
+
}
|
|
20
|
+
if (caseField.field_type.max && (typeof caseField.field_type.max === 'number')) {
|
|
21
|
+
validators.push(Validators.maxLength(caseField.field_type.max));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (control.validator) {
|
|
25
|
+
validators.push(control.validator);
|
|
26
|
+
}
|
|
27
|
+
control.setValidators(validators);
|
|
28
|
+
}
|
|
29
|
+
return control;
|
|
30
|
+
}
|
|
31
|
+
static emptyValidator() {
|
|
32
|
+
const validator = (control) => {
|
|
33
|
+
if (control && control.value && control.value.toString().trim().length === 0) {
|
|
34
|
+
return { required: {} };
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
return validator;
|
|
39
|
+
}
|
|
40
|
+
// TODO: Strip this out as it's only here for the moment because
|
|
41
|
+
// the service is being injected all over the place but it doesn't
|
|
42
|
+
// need to be as FormValidatorsService.addValidators is perfectly
|
|
43
|
+
// happy being static.
|
|
44
|
+
addValidators(caseField, control) {
|
|
45
|
+
return FormValidatorsService.addValidators(caseField, control);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
FormValidatorsService.CUSTOM_VALIDATED_TYPES = [
|
|
49
|
+
'Date', 'MoneyGBP', 'Label'
|
|
50
|
+
];
|
|
51
|
+
FormValidatorsService.ɵfac = function FormValidatorsService_Factory(t) { return new (t || FormValidatorsService)(); };
|
|
52
|
+
FormValidatorsService.ɵprov = i0.ɵɵdefineInjectable({ token: FormValidatorsService, factory: FormValidatorsService.ɵfac });
|
|
53
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormValidatorsService, [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], null, null); })();
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUt6QixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDeEUsSUFDRSxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxTQUFTO1lBQ2pELHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNwRjtZQUNGLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUU7b0JBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztpQkFDOUU7cUJBQU07b0JBQ0wsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7b0JBQzlFLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFO2dCQUNELElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxFQUFFO29CQUM5RSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNqRTthQUNGO1lBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUNyQixVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNwQztZQUNELE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQ3RFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMzRSxPQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGtFQUFrRTtJQUNsRSxpRUFBaUU7SUFDakUsc0JBQXNCO0lBQ2YsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDakUsT0FBTyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O0FBOUN1Qiw0Q0FBc0IsR0FBb0I7SUFDaEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPO0NBQzVCLENBQUM7MEZBSlMscUJBQXFCOzZEQUFyQixxQkFBcUIsV0FBckIscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2ZpZWxkLXR5cGUtZW51bS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdG9yc1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENVU1RPTV9WQUxJREFURURfVFlQRVM6IEZpZWxkVHlwZUVudW1bXSA9IFtcbiAgICAnRGF0ZScsICdNb25leUdCUCcsICdMYWJlbCdcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBhZGRWYWxpZGF0b3JzKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChcbiAgICAgIGNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgPT09IENvbnN0YW50cy5NQU5EQVRPUlkgJiZcbiAgICAgIEZvcm1WYWxpZGF0b3JzU2VydmljZS5DVVNUT01fVkFMSURBVEVEX1RZUEVTLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSkgPT09IC0xXG4gICAgICApIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ1RleHQnKSB7XG4gICAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS5yZWd1bGFyX2V4cHJlc3Npb24pIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGNhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaCh0aGlzLmVtcHR5VmFsaWRhdG9yKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS5taW4gJiYgKHR5cGVvZiBjYXNlRmllbGQuZmllbGRfdHlwZS5taW4gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChjYXNlRmllbGQuZmllbGRfdHlwZS5taW4pKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWF4ICYmICh0eXBlb2YgY2FzZUZpZWxkLmZpZWxkX3R5cGUubWF4ID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWF4KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cm9sLnZhbGlkYXRvcikge1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goY29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgfVxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHlWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOlZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+ICB7XG4gICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgJiYgY29udHJvbC52YWx1ZS50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuICB7IHJlcXVpcmVkOiB7fSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgICByZXR1cm4gdmFsaWRhdG9yO1xuICB9XG5cbiAgLy8gVE9ETzogU3RyaXAgdGhpcyBvdXQgYXMgaXQncyBvbmx5IGhlcmUgZm9yIHRoZSBtb21lbnQgYmVjYXVzZVxuICAvLyB0aGUgc2VydmljZSBpcyBiZWluZyBpbmplY3RlZCBhbGwgb3ZlciB0aGUgcGxhY2UgYnV0IGl0IGRvZXNuJ3RcbiAgLy8gbmVlZCB0byBiZSBhcyBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyBpcyBwZXJmZWN0bHlcbiAgLy8gaGFwcHkgYmVpbmcgc3RhdGljLlxuICBwdWJsaWMgYWRkVmFsaWRhdG9ycyhjYXNlRmllbGQ6IENhc2VGaWVsZCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZFZhbGlkYXRvcnMoY2FzZUZpZWxkLCBjb250cm9sKTtcbiAgfVxufVxuIl19
|