@openmrs/ngx-formentry 3.0.1-pre.8
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/abstract-controls-extension/afe-control-type.d.ts +6 -0
- package/abstract-controls-extension/afe-form-array.d.ts +43 -0
- package/abstract-controls-extension/afe-form-control.d.ts +46 -0
- package/abstract-controls-extension/afe-form-group.d.ts +38 -0
- package/abstract-controls-extension/control-extensions.d.ts +4 -0
- package/abstract-controls-extension/index.d.ts +4 -0
- package/abstract-controls-extension/value-change.listener.d.ts +4 -0
- package/bundles/openmrs-ngx-formentry.umd.js +15020 -0
- package/bundles/openmrs-ngx-formentry.umd.js.map +1 -0
- package/bundles/openmrs-ngx-formentry.umd.min.js +2 -0
- package/bundles/openmrs-ngx-formentry.umd.min.js.map +1 -0
- package/change-tracking/control-relation.d.ts +12 -0
- package/change-tracking/control-relations.d.ts +12 -0
- package/components/afe-ng-select.component.d.ts +26 -0
- package/components/appointments-overview/appointments-overview.component.d.ts +15 -0
- package/components/check-box/checkbox.component.d.ts +16 -0
- package/components/check-box/checkbox.module.d.ts +2 -0
- package/components/custom-component-wrapper/custom-component-wrapper..module.d.ts +2 -0
- package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +11 -0
- package/components/custom-control-wrapper/custom-control-wrapper..module.d.ts +2 -0
- package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +25 -0
- package/components/date-time-picker/date-picker/date-picker.component.d.ts +42 -0
- package/components/date-time-picker/date-time-picker.component.d.ts +26 -0
- package/components/date-time-picker/date-time-picker.module.d.ts +5 -0
- package/components/date-time-picker/picker-modal/modal.component.d.ts +10 -0
- package/components/date-time-picker/pipes/moment.pipe.d.ts +8 -0
- package/components/date-time-picker/time-picker/time-picker.component.d.ts +29 -0
- package/components/file-upload/file-upload.component.d.ts +26 -0
- package/components/file-upload/file-upload.module.d.ts +2 -0
- package/components/file-upload/secure.pipe.d.ts +23 -0
- package/components/input/input.directive.d.ts +28 -0
- package/components/input/input.module.d.ts +2 -0
- package/components/input/label.component.d.ts +87 -0
- package/components/input/text-area.directive.d.ts +21 -0
- package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +17 -0
- package/components/ngx-datetime-picker/ngx-datetime-picker.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.d.ts +189 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.d.ts +15 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.d.ts +73 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.d.ts +7 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +77 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +139 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +109 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +120 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +141 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +90 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.d.ts +122 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +152 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.d.ts +51 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +21 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.d.ts +8 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +157 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time.class.d.ts +86 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.d.ts +7 -0
- package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +35 -0
- package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +129 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-config.class.d.ts +93 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-container.component.d.ts +56 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.d.ts +49 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog.service.d.ts +70 -0
- package/components/ngx-pick-datetime/lib/utils/index.d.ts +4 -0
- package/components/ngx-pick-datetime/lib/utils/object.utils.d.ts +11 -0
- package/components/ngx-remote-select/ngx-remote-select.component.d.ts +37 -0
- package/components/ngx-remote-select/ngx-remote-select.module.d.ts +2 -0
- package/components/ngx-tabset/components/tab-set.d.ts +16 -0
- package/components/ngx-tabset/components/tab.d.ts +10 -0
- package/components/ngx-tabset/directives/hover-class.directive.d.ts +8 -0
- package/components/ngx-tabset/modules/ngx-tabset.module.d.ts +11 -0
- package/components/number-input/number-input.component.d.ts +148 -0
- package/components/number-input/number-input.module.d.ts +2 -0
- package/components/select/optgroup.directive.d.ts +3 -0
- package/components/select/option.directive.d.ts +3 -0
- package/components/select/select.component.d.ts +112 -0
- package/components/select/select.module.d.ts +2 -0
- package/esm2015/abstract-controls-extension/afe-control-type.js +8 -0
- package/esm2015/abstract-controls-extension/afe-form-array.js +85 -0
- package/esm2015/abstract-controls-extension/afe-form-control.js +88 -0
- package/esm2015/abstract-controls-extension/afe-form-group.js +61 -0
- package/esm2015/abstract-controls-extension/control-extensions.js +5 -0
- package/esm2015/abstract-controls-extension/index.js +5 -0
- package/esm2015/abstract-controls-extension/value-change.listener.js +2 -0
- package/esm2015/change-tracking/control-relation.js +44 -0
- package/esm2015/change-tracking/control-relations.js +32 -0
- package/esm2015/components/afe-ng-select.component.js +87 -0
- package/esm2015/components/appointments-overview/appointments-overview.component.js +119 -0
- package/esm2015/components/check-box/checkbox.component.js +77 -0
- package/esm2015/components/check-box/checkbox.module.js +14 -0
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper..module.js +16 -0
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper.component.js +18 -0
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper..module.js +17 -0
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper.component.js +63 -0
- package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +182 -0
- package/esm2015/components/date-time-picker/date-time-picker.component.js +104 -0
- package/esm2015/components/date-time-picker/date-time-picker.module.js +34 -0
- package/esm2015/components/date-time-picker/picker-modal/modal.component.js +30 -0
- package/esm2015/components/date-time-picker/pipes/moment.pipe.js +13 -0
- package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +114 -0
- package/esm2015/components/file-upload/file-upload.component.js +110 -0
- package/esm2015/components/file-upload/file-upload.module.js +24 -0
- package/esm2015/components/file-upload/secure.pipe.js +102 -0
- package/esm2015/components/input/input.directive.js +55 -0
- package/esm2015/components/input/input.module.js +18 -0
- package/esm2015/components/input/label.component.js +177 -0
- package/esm2015/components/input/text-area.directive.js +40 -0
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +60 -0
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +26 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.js +114 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.js +7 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +344 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.js +16 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +30 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +149 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +429 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +367 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +359 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +334 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +251 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +380 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +590 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +60 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +71 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.js +21 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +512 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +153 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +58 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +24 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +85 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +292 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-config.class.js +56 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +208 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.js +119 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +22 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +222 -0
- package/esm2015/components/ngx-pick-datetime/lib/utils/index.js +5 -0
- package/esm2015/components/ngx-pick-datetime/lib/utils/object.utils.js +26 -0
- package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +121 -0
- package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +16 -0
- package/esm2015/components/ngx-tabset/components/tab-set.js +67 -0
- package/esm2015/components/ngx-tabset/components/tab.js +35 -0
- package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +26 -0
- package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +33 -0
- package/esm2015/components/number-input/number-input.component.js +203 -0
- package/esm2015/components/number-input/number-input.module.js +15 -0
- package/esm2015/components/select/optgroup.directive.js +17 -0
- package/esm2015/components/select/option.directive.js +17 -0
- package/esm2015/components/select/select.component.js +293 -0
- package/esm2015/components/select/select.module.js +18 -0
- package/esm2015/form-entry/control-alerts/alert-helpers.js +40 -0
- package/esm2015/form-entry/control-alerts/can-generate-alert.js +2 -0
- package/esm2015/form-entry/control-calculators/can-calculate.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/can-disable.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/can-hide.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +33 -0
- package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +40 -0
- package/esm2015/form-entry/data-sources/data-sources.js +30 -0
- package/esm2015/form-entry/data-sources/dummy-data-source.js +104 -0
- package/esm2015/form-entry/directives/collapse-animations.js +11 -0
- package/esm2015/form-entry/directives/collapse.directive.js +157 -0
- package/esm2015/form-entry/directives/historical-value-directive.js +66 -0
- package/esm2015/form-entry/error-renderer/error-renderer.component.js +55 -0
- package/esm2015/form-entry/expression-runner/expression-runner.js +168 -0
- package/esm2015/form-entry/form-entry.module.js +107 -0
- package/esm2015/form-entry/form-factory/control-relations.factory.js +236 -0
- package/esm2015/form-entry/form-factory/form-control.service.js +118 -0
- package/esm2015/form-entry/form-factory/form-node.js +81 -0
- package/esm2015/form-entry/form-factory/form.factory.js +132 -0
- package/esm2015/form-entry/form-factory/form.js +193 -0
- package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +66 -0
- package/esm2015/form-entry/form-factory/question.factory.js +864 -0
- package/esm2015/form-entry/form-factory/show-messages.factory.js +30 -0
- package/esm2015/form-entry/form-factory/validation.factory.js +145 -0
- package/esm2015/form-entry/form-renderer/form-renderer.component.css.js +179 -0
- package/esm2015/form-entry/form-renderer/form-renderer.component.js +231 -0
- package/esm2015/form-entry/helpers/historical-expression-helper-service.js +38 -0
- package/esm2015/form-entry/helpers/historical-field-helper-service.js +36 -0
- package/esm2015/form-entry/helpers/js-expression-helper.js +238 -0
- package/esm2015/form-entry/pipes/time-ago.pipe.js +107 -0
- package/esm2015/form-entry/question-models/checkbox.model.js +11 -0
- package/esm2015/form-entry/question-models/conditional-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/custom-control-question.model.js +10 -0
- package/esm2015/form-entry/question-models/date-question.js +12 -0
- package/esm2015/form-entry/question-models/date-validation.model.js +10 -0
- package/esm2015/form-entry/question-models/file-upload-question.js +13 -0
- package/esm2015/form-entry/question-models/group-question.js +12 -0
- package/esm2015/form-entry/question-models/interfaces/base-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/data-source.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/date-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/group-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/nested-questions.js +7 -0
- package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/select-option.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/select-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/text-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +2 -0
- package/esm2015/form-entry/question-models/js-expression-validation.model.js +8 -0
- package/esm2015/form-entry/question-models/max-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/min-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/models.js +12 -0
- package/esm2015/form-entry/question-models/multi-select-question.js +11 -0
- package/esm2015/form-entry/question-models/pair.model.js +7 -0
- package/esm2015/form-entry/question-models/question-base.js +25 -0
- package/esm2015/form-entry/question-models/rendering-type.js +9 -0
- package/esm2015/form-entry/question-models/repeating-question.js +11 -0
- package/esm2015/form-entry/question-models/select-option.js +7 -0
- package/esm2015/form-entry/question-models/select-question.js +12 -0
- package/esm2015/form-entry/question-models/test-order-question.js +15 -0
- package/esm2015/form-entry/question-models/text-area-input-question.js +13 -0
- package/esm2015/form-entry/question-models/text-input-question.js +10 -0
- package/esm2015/form-entry/question-models/ui-select-question.js +11 -0
- package/esm2015/form-entry/question-models/validation.model.js +7 -0
- package/esm2015/form-entry/services/debug-mode.service.js +22 -0
- package/esm2015/form-entry/services/form-errors.service.js +18 -0
- package/esm2015/form-entry/services/form-schema-compiler.service.js +246 -0
- package/esm2015/form-entry/services/historical-encounter-data.service.js +170 -0
- package/esm2015/form-entry/utils/messages.js +12 -0
- package/esm2015/form-entry/validators/conditional-answered.validator.js +46 -0
- package/esm2015/form-entry/validators/conditional-required.validator.js +40 -0
- package/esm2015/form-entry/validators/date.validator.js +18 -0
- package/esm2015/form-entry/validators/future-date-restriction.validator.js +21 -0
- package/esm2015/form-entry/validators/js-expression.validator.js +26 -0
- package/esm2015/form-entry/validators/max-date.validator.js +23 -0
- package/esm2015/form-entry/validators/max.validator.js +17 -0
- package/esm2015/form-entry/validators/min-date.validator.js +23 -0
- package/esm2015/form-entry/validators/min.validator.js +17 -0
- package/esm2015/form-entry/validators/required.validator.js +11 -0
- package/esm2015/form-entry/validators/validations.js +5 -0
- package/esm2015/form-entry/value-adapters/encounter.adapter.js +172 -0
- package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +496 -0
- package/esm2015/form-entry/value-adapters/obs.adapter.js +545 -0
- package/esm2015/form-entry/value-adapters/order.adapter.js +186 -0
- package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +87 -0
- package/esm2015/form-entry/value-adapters/value.adapter.js +2 -0
- package/esm2015/lib/index.js +49 -0
- package/esm2015/openmrs-ngx-formentry.js +76 -0
- package/esm2015/public_api.js +2 -0
- package/esm2015/shared.module.js +15 -0
- package/fesm2015/openmrs-ngx-formentry.js +13458 -0
- package/fesm2015/openmrs-ngx-formentry.js.map +1 -0
- package/form-entry/control-alerts/alert-helpers.d.ts +9 -0
- package/form-entry/control-alerts/can-generate-alert.d.ts +18 -0
- package/form-entry/control-calculators/can-calculate.d.ts +5 -0
- package/form-entry/control-hiders-disablers/can-disable.d.ts +19 -0
- package/form-entry/control-hiders-disablers/can-hide.d.ts +20 -0
- package/form-entry/control-hiders-disablers/disabler-helper.d.ts +7 -0
- package/form-entry/control-hiders-disablers/hider-helpers.d.ts +9 -0
- package/form-entry/data-sources/data-sources.d.ts +7 -0
- package/form-entry/data-sources/dummy-data-source.d.ts +18 -0
- package/form-entry/directives/collapse-animations.d.ts +4 -0
- package/form-entry/directives/collapse.directive.d.ts +42 -0
- package/form-entry/directives/historical-value-directive.d.ts +13 -0
- package/form-entry/error-renderer/error-renderer.component.d.ts +17 -0
- package/form-entry/expression-runner/expression-runner.d.ts +15 -0
- package/form-entry/form-entry.module.d.ts +2 -0
- package/form-entry/form-factory/control-relations.factory.d.ts +15 -0
- package/form-entry/form-factory/form-control.service.d.ts +22 -0
- package/form-entry/form-factory/form-node.d.ts +51 -0
- package/form-entry/form-factory/form.d.ts +28 -0
- package/form-entry/form-factory/form.factory.d.ts +23 -0
- package/form-entry/form-factory/hiders-disablers.factory.d.ts +17 -0
- package/form-entry/form-factory/question.factory.d.ts +56 -0
- package/form-entry/form-factory/show-messages.factory.d.ts +12 -0
- package/form-entry/form-factory/validation.factory.d.ts +22 -0
- package/form-entry/form-renderer/form-renderer.component.css.d.ts +1 -0
- package/form-entry/form-renderer/form-renderer.component.d.ts +52 -0
- package/form-entry/helpers/historical-expression-helper-service.d.ts +5 -0
- package/form-entry/helpers/historical-field-helper-service.d.ts +4 -0
- package/form-entry/helpers/js-expression-helper.d.ts +22 -0
- package/form-entry/pipes/time-ago.pipe.d.ts +11 -0
- package/form-entry/question-models/checkbox.model.d.ts +9 -0
- package/form-entry/question-models/conditional-validation.model.d.ts +6 -0
- package/form-entry/question-models/custom-control-question.model.d.ts +6 -0
- package/form-entry/question-models/date-question.d.ts +7 -0
- package/form-entry/question-models/date-validation.model.d.ts +5 -0
- package/form-entry/question-models/file-upload-question.d.ts +8 -0
- package/form-entry/question-models/group-question.d.ts +8 -0
- package/form-entry/question-models/interfaces/base-options.d.ts +28 -0
- package/form-entry/question-models/interfaces/checkbox-options.d.ts +7 -0
- package/form-entry/question-models/interfaces/data-source.d.ts +10 -0
- package/form-entry/question-models/interfaces/date-question-options.d.ts +3 -0
- package/form-entry/question-models/interfaces/file-upload-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/group-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/multi-select-options.d.ts +4 -0
- package/form-entry/question-models/interfaces/nested-questions.d.ts +6 -0
- package/form-entry/question-models/interfaces/repeating-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/select-option.d.ts +4 -0
- package/form-entry/question-models/interfaces/select-question-options.d.ts +9 -0
- package/form-entry/question-models/interfaces/test-order-question-options.d.ts +14 -0
- package/form-entry/question-models/interfaces/text-area-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/text-question-options.d.ts +4 -0
- package/form-entry/question-models/interfaces/ui-select-question-options.d.ts +9 -0
- package/form-entry/question-models/js-expression-validation.model.d.ts +5 -0
- package/form-entry/question-models/max-validation.model.d.ts +5 -0
- package/form-entry/question-models/min-validation.model.d.ts +5 -0
- package/form-entry/question-models/models.d.ts +15 -0
- package/form-entry/question-models/multi-select-question.d.ts +9 -0
- package/form-entry/question-models/pair.model.d.ts +5 -0
- package/form-entry/question-models/question-base.d.ts +40 -0
- package/form-entry/question-models/rendering-type.d.ts +7 -0
- package/form-entry/question-models/repeating-question.d.ts +7 -0
- package/form-entry/question-models/select-option.d.ts +6 -0
- package/form-entry/question-models/select-question.d.ts +10 -0
- package/form-entry/question-models/test-order-question.d.ts +13 -0
- package/form-entry/question-models/text-area-input-question.d.ts +7 -0
- package/form-entry/question-models/text-input-question.d.ts +6 -0
- package/form-entry/question-models/ui-select-question.d.ts +11 -0
- package/form-entry/question-models/validation.model.d.ts +5 -0
- package/form-entry/services/debug-mode.service.d.ts +5 -0
- package/form-entry/services/form-errors.service.d.ts +10 -0
- package/form-entry/services/form-schema-compiler.service.d.ts +20 -0
- package/form-entry/services/historical-encounter-data.service.d.ts +12 -0
- package/form-entry/utils/messages.d.ts +11 -0
- package/form-entry/validators/conditional-answered.validator.d.ts +8 -0
- package/form-entry/validators/conditional-required.validator.d.ts +8 -0
- package/form-entry/validators/date.validator.d.ts +7 -0
- package/form-entry/validators/future-date-restriction.validator.d.ts +7 -0
- package/form-entry/validators/js-expression.validator.d.ts +8 -0
- package/form-entry/validators/max-date.validator.d.ts +6 -0
- package/form-entry/validators/max.validator.d.ts +6 -0
- package/form-entry/validators/min-date.validator.d.ts +6 -0
- package/form-entry/validators/min.validator.d.ts +6 -0
- package/form-entry/validators/required.validator.d.ts +6 -0
- package/form-entry/validators/validations.d.ts +4 -0
- package/form-entry/value-adapters/encounter.adapter.d.ts +23 -0
- package/form-entry/value-adapters/obs-adapter-helper.d.ts +27 -0
- package/form-entry/value-adapters/obs.adapter.d.ts +35 -0
- package/form-entry/value-adapters/order.adapter.d.ts +17 -0
- package/form-entry/value-adapters/person-attribute.adapter.d.ts +12 -0
- package/form-entry/value-adapters/value.adapter.d.ts +5 -0
- package/lib/index.d.ts +49 -0
- package/openmrs-ngx-formentry.d.ts +85 -0
- package/openmrs-ngx-formentry.metadata.json +1 -0
- package/package.json +35 -0
- package/public_api.d.ts +1 -0
- package/shared.module.d.ts +2 -0
- package/styles/ngx-formentry.css +374 -0
- package/styles/picker.min.css +770 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dialog.service
|
|
3
|
+
*/
|
|
4
|
+
import { InjectionToken, Injector, TemplateRef } from '@angular/core';
|
|
5
|
+
import { Location } from '@angular/common';
|
|
6
|
+
import { OwlDialogConfig } from './dialog-config.class';
|
|
7
|
+
import { OwlDialogRef } from './dialog-ref.class';
|
|
8
|
+
import { Observable, Subject } from 'rxjs';
|
|
9
|
+
import { Overlay, OverlayContainer, ScrollStrategy } from '@angular/cdk/overlay';
|
|
10
|
+
import { ComponentType } from '@angular/cdk/portal';
|
|
11
|
+
export declare const OWL_DIALOG_DATA: InjectionToken<any>;
|
|
12
|
+
/**
|
|
13
|
+
* Injection token that determines the scroll handling while the dialog is open.
|
|
14
|
+
* */
|
|
15
|
+
export declare const OWL_DIALOG_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
|
|
16
|
+
export declare function OWL_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;
|
|
17
|
+
/** @docs-private */
|
|
18
|
+
export declare const OWL_DIALOG_SCROLL_STRATEGY_PROVIDER: {
|
|
19
|
+
provide: InjectionToken<() => ScrollStrategy>;
|
|
20
|
+
deps: (typeof Overlay)[];
|
|
21
|
+
useFactory: typeof OWL_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;
|
|
22
|
+
};
|
|
23
|
+
/** I
|
|
24
|
+
* njection token that can be used to specify default dialog options.
|
|
25
|
+
* */
|
|
26
|
+
export declare const OWL_DIALOG_DEFAULT_OPTIONS: InjectionToken<OwlDialogConfig>;
|
|
27
|
+
export declare class OwlDialogService {
|
|
28
|
+
private overlay;
|
|
29
|
+
private injector;
|
|
30
|
+
private location;
|
|
31
|
+
private defaultOptions;
|
|
32
|
+
private parentDialog;
|
|
33
|
+
private overlayContainer;
|
|
34
|
+
private ariaHiddenElements;
|
|
35
|
+
private _openDialogsAtThisLevel;
|
|
36
|
+
private _afterOpenAtThisLevel;
|
|
37
|
+
private _afterAllClosedAtThisLevel;
|
|
38
|
+
/** Keeps track of the currently-open dialogs. */
|
|
39
|
+
get openDialogs(): OwlDialogRef<any>[];
|
|
40
|
+
/** Stream that emits when a dialog has been opened. */
|
|
41
|
+
get afterOpen(): Subject<OwlDialogRef<any>>;
|
|
42
|
+
get _afterAllClosed(): any;
|
|
43
|
+
/**
|
|
44
|
+
* Stream that emits when all open dialog have finished closing.
|
|
45
|
+
* Will emit on subscribe if there are no open dialogs to begin with.
|
|
46
|
+
*/
|
|
47
|
+
afterAllClosed: Observable<{}>;
|
|
48
|
+
private scrollStrategy;
|
|
49
|
+
constructor(overlay: Overlay, injector: Injector, location: Location, scrollStrategy: any, defaultOptions: OwlDialogConfig, parentDialog: OwlDialogService, overlayContainer: OverlayContainer);
|
|
50
|
+
open<T>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: OwlDialogConfig): OwlDialogRef<any>;
|
|
51
|
+
/**
|
|
52
|
+
* Closes all of the currently-open dialogs.
|
|
53
|
+
*/
|
|
54
|
+
closeAll(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Finds an open dialog by its id.
|
|
57
|
+
* @param id ID to use when looking up the dialog.
|
|
58
|
+
*/
|
|
59
|
+
getDialogById(id: string): OwlDialogRef<any> | undefined;
|
|
60
|
+
private attachDialogContent;
|
|
61
|
+
private createInjector;
|
|
62
|
+
private createOverlay;
|
|
63
|
+
private attachDialogContainer;
|
|
64
|
+
private getOverlayConfig;
|
|
65
|
+
private removeOpenDialog;
|
|
66
|
+
/**
|
|
67
|
+
* Hides all of the content that isn't an overlay from assistive technology.
|
|
68
|
+
*/
|
|
69
|
+
private hideNonDialogContentFromAssistiveTechnology;
|
|
70
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* object.utils
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Extends an object with the *enumerable* and *own* properties of one or more source objects,
|
|
6
|
+
* similar to Object.assign.
|
|
7
|
+
*
|
|
8
|
+
* @param dest The object which will have properties copied to it.
|
|
9
|
+
* @param sources The source objects from which properties will be copied.
|
|
10
|
+
*/
|
|
11
|
+
export declare function extendObject(dest: any, ...sources: any[]): any;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { OnInit, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { Observable, Subject } from 'rxjs';
|
|
4
|
+
import { SelectOption } from '../../form-entry/question-models/interfaces/select-option';
|
|
5
|
+
import { DataSource } from '../../form-entry/question-models/interfaces/data-source';
|
|
6
|
+
export declare class RemoteSelectComponent implements OnInit, ControlValueAccessor {
|
|
7
|
+
private renderer;
|
|
8
|
+
remoteOptions$: Observable<SelectOption[]>;
|
|
9
|
+
remoteOptionsLoading: boolean;
|
|
10
|
+
remoteOptionInput$: Subject<string>;
|
|
11
|
+
selectedRemoteOptions: SelectOption;
|
|
12
|
+
placeholder: string;
|
|
13
|
+
componentID: string;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
theme: string;
|
|
16
|
+
items: any[];
|
|
17
|
+
value: any[];
|
|
18
|
+
loading: boolean;
|
|
19
|
+
searchText: string;
|
|
20
|
+
notFoundMsg: string;
|
|
21
|
+
done: EventEmitter<any>;
|
|
22
|
+
private _dataSource;
|
|
23
|
+
get dataSource(): DataSource;
|
|
24
|
+
set dataSource(v: DataSource);
|
|
25
|
+
constructor(renderer: Renderer2);
|
|
26
|
+
ngOnInit(): void;
|
|
27
|
+
subscribeToDataSourceDataChanges(): void;
|
|
28
|
+
writeValue(value: any): void;
|
|
29
|
+
registerOnChange(fn: any): void;
|
|
30
|
+
registerOnTouched(): void;
|
|
31
|
+
onChange(event: any): void;
|
|
32
|
+
selected(event: any): void;
|
|
33
|
+
compareItems: (item: any, selected: any) => boolean;
|
|
34
|
+
private propagateChange;
|
|
35
|
+
trackByFn(item: SelectOption): any;
|
|
36
|
+
private loadOptions;
|
|
37
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AfterContentInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import type { QueryList } from '@angular/core';
|
|
3
|
+
import { TabComponent } from './tab';
|
|
4
|
+
export declare class TabsetComponent implements AfterContentInit, OnChanges {
|
|
5
|
+
tabs: QueryList<TabComponent>;
|
|
6
|
+
disableStyle: boolean;
|
|
7
|
+
customNavClass: String;
|
|
8
|
+
customTabsClass: String;
|
|
9
|
+
selectedIndex: Number;
|
|
10
|
+
onSelect: EventEmitter<any>;
|
|
11
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
12
|
+
ngAfterContentInit(): void;
|
|
13
|
+
onHover($event: any): void;
|
|
14
|
+
selectTab(tabToSelect: TabComponent): void;
|
|
15
|
+
getStatusClasses(active: any, disabled: any): "active" | "disabled" | "enabled";
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
export declare class NgxTabSetModule {
|
|
3
|
+
/**
|
|
4
|
+
* Use in AppModule: new instance of NgxTabset.
|
|
5
|
+
*/
|
|
6
|
+
static forRoot(): ModuleWithProviders<NgxTabSetModule>;
|
|
7
|
+
/**
|
|
8
|
+
* Use in features modules with lazy loading: new instance of NgxTabset.
|
|
9
|
+
*/
|
|
10
|
+
static forChild(): ModuleWithProviders<NgxTabSetModule>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { EventEmitter, TemplateRef } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
/**
|
|
4
|
+
* Used to emit changes performed on number input components.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NumberChangeEvent {
|
|
7
|
+
/**
|
|
8
|
+
* Contains the `NumberInputComponent` that has been changed.
|
|
9
|
+
*/
|
|
10
|
+
source: NumberInputComponent;
|
|
11
|
+
/**
|
|
12
|
+
* The value of the `NumberInputComponent` field encompassed in the `NumberChange` class.
|
|
13
|
+
*/
|
|
14
|
+
value: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class NumberInputComponent implements ControlValueAccessor {
|
|
17
|
+
/**
|
|
18
|
+
* Variable used for creating unique ids for number input components.
|
|
19
|
+
*/
|
|
20
|
+
static numberCount: number;
|
|
21
|
+
/**
|
|
22
|
+
* `light` or `dark` number input theme.
|
|
23
|
+
*/
|
|
24
|
+
theme: 'light' | 'dark';
|
|
25
|
+
/**
|
|
26
|
+
* Set to `true` for a disabled number input.
|
|
27
|
+
*/
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Set to `true` for a loading number component.
|
|
31
|
+
*/
|
|
32
|
+
skeleton: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Set to `true` for an invalid number component.
|
|
35
|
+
*/
|
|
36
|
+
invalid: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The unique id for the number component.
|
|
39
|
+
*/
|
|
40
|
+
id: string;
|
|
41
|
+
/**
|
|
42
|
+
* Number input field render size
|
|
43
|
+
*/
|
|
44
|
+
size: 'sm' | 'md' | 'xl';
|
|
45
|
+
/**
|
|
46
|
+
* Reflects the required attribute of the `input` element.
|
|
47
|
+
*/
|
|
48
|
+
required: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Sets the value attribute on the `input` element.
|
|
51
|
+
*/
|
|
52
|
+
set value(v: any);
|
|
53
|
+
get value(): any;
|
|
54
|
+
/**
|
|
55
|
+
* Sets the min attribute on the `input` element.
|
|
56
|
+
*/
|
|
57
|
+
min: any;
|
|
58
|
+
/**
|
|
59
|
+
* Sets the max attribute on the `input` element.
|
|
60
|
+
*/
|
|
61
|
+
max: any;
|
|
62
|
+
/**
|
|
63
|
+
* Sets the text inside the `label` tag.
|
|
64
|
+
*/
|
|
65
|
+
label: string | TemplateRef<any>;
|
|
66
|
+
/**
|
|
67
|
+
* Sets the optional helper text.
|
|
68
|
+
*/
|
|
69
|
+
helperText: string | TemplateRef<any>;
|
|
70
|
+
/**
|
|
71
|
+
* Sets the invalid text.
|
|
72
|
+
*/
|
|
73
|
+
invalidText: string | TemplateRef<any>;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the amount the number controls increment and decrement by.
|
|
76
|
+
*/
|
|
77
|
+
step: number;
|
|
78
|
+
/**
|
|
79
|
+
* If `step` is a decimal, we may want precision to be set to go around floating point precision.
|
|
80
|
+
*/
|
|
81
|
+
precision: number;
|
|
82
|
+
/**
|
|
83
|
+
* Set to `true` to show a warning (contents set by warningText)
|
|
84
|
+
*/
|
|
85
|
+
warn: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the warning text
|
|
88
|
+
*/
|
|
89
|
+
warnText: string | TemplateRef<any>;
|
|
90
|
+
/**
|
|
91
|
+
* Emits event notifying other classes when a change in state occurs in the input.
|
|
92
|
+
*/
|
|
93
|
+
change: EventEmitter<NumberChangeEvent>;
|
|
94
|
+
/**
|
|
95
|
+
* Sets the decrement label text
|
|
96
|
+
*/
|
|
97
|
+
decrementLabel: string;
|
|
98
|
+
/**
|
|
99
|
+
* Sets the increment label text
|
|
100
|
+
*/
|
|
101
|
+
incrementLabel: string;
|
|
102
|
+
protected _value: number;
|
|
103
|
+
/**
|
|
104
|
+
* Creates an instance of `Number`.
|
|
105
|
+
*/
|
|
106
|
+
constructor();
|
|
107
|
+
/**
|
|
108
|
+
* This is the initial value set to the component
|
|
109
|
+
* @param value The input value.
|
|
110
|
+
*/
|
|
111
|
+
writeValue(value: any): void;
|
|
112
|
+
/**
|
|
113
|
+
* Sets a method in order to propagate changes back to the form.
|
|
114
|
+
*/
|
|
115
|
+
registerOnChange(fn: any): void;
|
|
116
|
+
/**
|
|
117
|
+
* Registers a callback to be triggered when the control has been touched.
|
|
118
|
+
* @param fn Callback to be triggered when the number input is touched.
|
|
119
|
+
*/
|
|
120
|
+
registerOnTouched(fn: any): void;
|
|
121
|
+
focusOut(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Sets the disabled state through the model
|
|
124
|
+
*/
|
|
125
|
+
setDisabledState(isDisabled: boolean): void;
|
|
126
|
+
/**
|
|
127
|
+
* Called when number input is blurred. Needed to properly implement `ControlValueAccessor`.
|
|
128
|
+
*/
|
|
129
|
+
onTouched: () => any;
|
|
130
|
+
/**
|
|
131
|
+
* Method set in `registerOnChange` to propagate changes back to the form.
|
|
132
|
+
*/
|
|
133
|
+
propagateChange: (_: any) => void;
|
|
134
|
+
/**
|
|
135
|
+
* Adds `step` to the current `value`.
|
|
136
|
+
*/
|
|
137
|
+
onIncrement(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Subtracts `step` to the current `value`.
|
|
140
|
+
*/
|
|
141
|
+
onDecrement(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Creates a class of `NumberChange` to emit the change in the `Number`.
|
|
144
|
+
*/
|
|
145
|
+
emitChangeEvent(): void;
|
|
146
|
+
onNumberInputChange(event: any): void;
|
|
147
|
+
isTemplate(value: any): boolean;
|
|
148
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, TemplateRef } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
/**
|
|
4
|
+
* `ibm-select` provides a styled `select` component.
|
|
5
|
+
*
|
|
6
|
+
* [See demo](../../?path=/story/select--basic)
|
|
7
|
+
*
|
|
8
|
+
* Example:
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* <ibm-select [(ngModel)]="model">
|
|
12
|
+
* <option value="default" disabled selected hidden>Choose an option</option>
|
|
13
|
+
* <option value="option1">Option 1</option>
|
|
14
|
+
* <option value="option2">Option 2</option>
|
|
15
|
+
* <option value="option3">Option 3</option>
|
|
16
|
+
* </ibm-select>
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* <example-url>../../iframe.html?id=select--basic</example-url>
|
|
20
|
+
*/
|
|
21
|
+
export declare class Select implements ControlValueAccessor, AfterViewInit {
|
|
22
|
+
/**
|
|
23
|
+
* Tracks the total number of selects instantiated. Used to generate unique IDs
|
|
24
|
+
*/
|
|
25
|
+
static selectCount: number;
|
|
26
|
+
/**
|
|
27
|
+
* `inline` or `default` select displays
|
|
28
|
+
*/
|
|
29
|
+
display: 'inline' | 'default';
|
|
30
|
+
/**
|
|
31
|
+
* Label for the select. Appears above the input.
|
|
32
|
+
*/
|
|
33
|
+
label: string | TemplateRef<any>;
|
|
34
|
+
/**
|
|
35
|
+
* Optional helper text that appears under the label.
|
|
36
|
+
*/
|
|
37
|
+
helperText: string | TemplateRef<any>;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the invalid text.
|
|
40
|
+
*/
|
|
41
|
+
invalidText: string | TemplateRef<any>;
|
|
42
|
+
/**
|
|
43
|
+
* Set to `true` to show a warning (contents set by warningText)
|
|
44
|
+
*/
|
|
45
|
+
warn: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Sets the warning text
|
|
48
|
+
*/
|
|
49
|
+
warnText: string | TemplateRef<any>;
|
|
50
|
+
/**
|
|
51
|
+
* Sets the unique ID. Defaults to `select-${total count of selects instantiated}`
|
|
52
|
+
*/
|
|
53
|
+
id: string;
|
|
54
|
+
/**
|
|
55
|
+
* Number input field render size
|
|
56
|
+
*/
|
|
57
|
+
size: 'sm' | 'md' | 'xl';
|
|
58
|
+
/**
|
|
59
|
+
* Set to true to disable component.
|
|
60
|
+
*/
|
|
61
|
+
disabled: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Set to true for a loading select.
|
|
64
|
+
*/
|
|
65
|
+
skeleton: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Set to `true` for an invalid select component.
|
|
68
|
+
*/
|
|
69
|
+
invalid: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* `light` or `dark` select theme
|
|
72
|
+
*/
|
|
73
|
+
theme: 'light' | 'dark';
|
|
74
|
+
ariaLabel: string;
|
|
75
|
+
valueChange: EventEmitter<any>;
|
|
76
|
+
select: ElementRef;
|
|
77
|
+
set value(v: any);
|
|
78
|
+
get value(): any;
|
|
79
|
+
protected _value: any;
|
|
80
|
+
ngAfterViewInit(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Receives a value from the model.
|
|
83
|
+
*/
|
|
84
|
+
writeValue(obj: any): void;
|
|
85
|
+
/**
|
|
86
|
+
* Registers a listener that notifies the model when the control updates
|
|
87
|
+
*/
|
|
88
|
+
registerOnChange(fn: any): void;
|
|
89
|
+
/**
|
|
90
|
+
* Registers a listener that notifies the model when the control is blurred
|
|
91
|
+
*/
|
|
92
|
+
registerOnTouched(fn: any): void;
|
|
93
|
+
/**
|
|
94
|
+
* Sets the disabled state through the model
|
|
95
|
+
*/
|
|
96
|
+
setDisabledState(isDisabled: boolean): void;
|
|
97
|
+
/**
|
|
98
|
+
* Handles the change event from the `select`.
|
|
99
|
+
* Sends events to the change handler and emits a `selected` event.
|
|
100
|
+
*/
|
|
101
|
+
onChange(event: any): void;
|
|
102
|
+
/**
|
|
103
|
+
* Listens for the host blurring, and notifies the model
|
|
104
|
+
*/
|
|
105
|
+
focusOut(): void;
|
|
106
|
+
isTemplate(value: any): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* placeholder declarations. Replaced by the functions provided to `registerOnChange` and `registerOnTouched`
|
|
109
|
+
*/
|
|
110
|
+
protected onChangeHandler: (_: any) => void;
|
|
111
|
+
protected onTouchedHandler: () => void;
|
|
112
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var AfeControlType;
|
|
2
|
+
(function (AfeControlType) {
|
|
3
|
+
AfeControlType[AfeControlType["AfeFormControl"] = 0] = "AfeFormControl";
|
|
4
|
+
AfeControlType[AfeControlType["AfeFormArray"] = 1] = "AfeFormArray";
|
|
5
|
+
AfeControlType[AfeControlType["AfeFormGroup"] = 2] = "AfeFormGroup";
|
|
6
|
+
AfeControlType[AfeControlType["None"] = 3] = "None";
|
|
7
|
+
})(AfeControlType || (AfeControlType = {}));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZlLWNvbnRyb2wtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtY29udHJvbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEIsdUVBQWMsQ0FBQTtJQUNkLG1FQUFZLENBQUE7SUFDWixtRUFBWSxDQUFBO0lBQ1osbURBQUksQ0FBQTtBQUNOLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFmZUNvbnRyb2xUeXBlIHtcbiAgQWZlRm9ybUNvbnRyb2wsXG4gIEFmZUZvcm1BcnJheSxcbiAgQWZlRm9ybUdyb3VwLFxuICBOb25lXG59XG4iXX0=
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { FormArray } from '@angular/forms';
|
|
2
|
+
import { ControlRelations } from '../change-tracking/control-relations';
|
|
3
|
+
import { HiderHelper } from '../form-entry/control-hiders-disablers/hider-helpers';
|
|
4
|
+
import { AlertHelper } from '../form-entry/control-alerts/alert-helpers';
|
|
5
|
+
import { DisablerHelper } from '../form-entry/control-hiders-disablers/disabler-helper';
|
|
6
|
+
export class AfeFormArray extends FormArray {
|
|
7
|
+
constructor(controls, validator, asyncValidator) {
|
|
8
|
+
super(controls, validator, asyncValidator);
|
|
9
|
+
this.hiderHelper = new HiderHelper();
|
|
10
|
+
this.AlertHelper = new AlertHelper();
|
|
11
|
+
this.disablerHelper = new DisablerHelper();
|
|
12
|
+
this._controlRelations = new ControlRelations(this);
|
|
13
|
+
this.hiders = [];
|
|
14
|
+
this.alerts = [];
|
|
15
|
+
this.disablers = [];
|
|
16
|
+
this.valueChanges.subscribe((value) => {
|
|
17
|
+
if (this._previousValue !== value) {
|
|
18
|
+
this.fireValueChangeListener(value);
|
|
19
|
+
this._previousValue = value;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
get uuid() {
|
|
24
|
+
return this._uuid;
|
|
25
|
+
}
|
|
26
|
+
set uuid(val) {
|
|
27
|
+
this._uuid = val;
|
|
28
|
+
}
|
|
29
|
+
get controlRelations() {
|
|
30
|
+
return this._controlRelations;
|
|
31
|
+
}
|
|
32
|
+
hide() {
|
|
33
|
+
this.hiderHelper.hideControl(this);
|
|
34
|
+
}
|
|
35
|
+
show() {
|
|
36
|
+
this.hiderHelper.showControl(this);
|
|
37
|
+
}
|
|
38
|
+
disable(param) {
|
|
39
|
+
super.disable(param);
|
|
40
|
+
super.setValue([]);
|
|
41
|
+
}
|
|
42
|
+
setHidingFn(newHider) {
|
|
43
|
+
this.hiderHelper.setHiderForControl(this, newHider);
|
|
44
|
+
}
|
|
45
|
+
clearHidingFns() {
|
|
46
|
+
this.hiderHelper.clearHidersForControl(this);
|
|
47
|
+
}
|
|
48
|
+
updateHiddenState() {
|
|
49
|
+
this.hiderHelper.evaluateControlHiders(this);
|
|
50
|
+
}
|
|
51
|
+
setDisablingFn(newDisabler) {
|
|
52
|
+
this.disablerHelper.setDisablerForControl(this, newDisabler);
|
|
53
|
+
}
|
|
54
|
+
clearDisablingFns() {
|
|
55
|
+
this.disablerHelper.clearDisablersForControl(this);
|
|
56
|
+
}
|
|
57
|
+
updateDisabledState() {
|
|
58
|
+
this.disablerHelper.evaluateControlDisablers(this);
|
|
59
|
+
}
|
|
60
|
+
setAlertFn(newHider) {
|
|
61
|
+
this.AlertHelper.setAlertsForControl(this, newHider);
|
|
62
|
+
}
|
|
63
|
+
clearMessageFns() {
|
|
64
|
+
this.AlertHelper.clearAlertsForControl(this);
|
|
65
|
+
}
|
|
66
|
+
updateAlert() {
|
|
67
|
+
this.AlertHelper.evaluateControlAlerts(this);
|
|
68
|
+
}
|
|
69
|
+
addValueChangeListener(func) {
|
|
70
|
+
this._valueChangeListener = func;
|
|
71
|
+
}
|
|
72
|
+
fireValueChangeListener(value) {
|
|
73
|
+
if (this.alerts.length > 0) {
|
|
74
|
+
this.updateAlert();
|
|
75
|
+
}
|
|
76
|
+
if (this._valueChangeListener &&
|
|
77
|
+
typeof this._valueChangeListener === 'function') {
|
|
78
|
+
this._valueChangeListener(value);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
setValue(value) {
|
|
82
|
+
super.setValue(value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZlLWZvcm0tYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9hYnN0cmFjdC1jb250cm9scy1leHRlbnNpb24vYWZlLWZvcm0tYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBY3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRXhGLE1BQU0sT0FBTyxZQUNYLFNBQVEsU0FBUztJQW9CakIsWUFDRSxRQUEyQixFQUMzQixTQUF1QixFQUN2QixjQUFpQztRQUVqQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVRyQyxnQkFBVyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzdDLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDN0MsbUJBQWMsR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQVE1RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQW1EO1FBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWU7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBcUI7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFTO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQVU7UUFDaEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFDRSxJQUFJLENBQUMsb0JBQW9CO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixLQUFLLFVBQVUsRUFDL0M7WUFDQSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGb3JtQXJyYXksXG4gIFZhbGlkYXRvckZuLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBBYnN0cmFjdENvbnRyb2xcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb250cm9sUmVsYXRpb25zIH0gZnJvbSAnLi4vY2hhbmdlLXRyYWNraW5nL2NvbnRyb2wtcmVsYXRpb25zJztcbmltcG9ydCB7IFZhbHVlQ2hhbmdlTGlzdGVuZXIgfSBmcm9tICcuL3ZhbHVlLWNoYW5nZS5saXN0ZW5lcic7XG5pbXBvcnQge1xuICBDYW5IaWRlLFxuICBIaWRlclxufSBmcm9tICcuLi9mb3JtLWVudHJ5L2NvbnRyb2wtaGlkZXJzLWRpc2FibGVycy9jYW4taGlkZSc7XG5pbXBvcnQge1xuICBDYW5HZW5lcmF0ZUFsZXJ0LFxuICBBbGVydFxufSBmcm9tICcuLi9mb3JtLWVudHJ5L2NvbnRyb2wtYWxlcnRzL2Nhbi1nZW5lcmF0ZS1hbGVydCc7XG5pbXBvcnQge1xuICBDYW5EaXNhYmxlLFxuICBEaXNhYmxlclxufSBmcm9tICcuLi9mb3JtLWVudHJ5L2NvbnRyb2wtaGlkZXJzLWRpc2FibGVycy9jYW4tZGlzYWJsZSc7XG5pbXBvcnQgeyBIaWRlckhlbHBlciB9IGZyb20gJy4uL2Zvcm0tZW50cnkvY29udHJvbC1oaWRlcnMtZGlzYWJsZXJzL2hpZGVyLWhlbHBlcnMnO1xuaW1wb3J0IHsgQWxlcnRIZWxwZXIgfSBmcm9tICcuLi9mb3JtLWVudHJ5L2NvbnRyb2wtYWxlcnRzL2FsZXJ0LWhlbHBlcnMnO1xuaW1wb3J0IHsgRGlzYWJsZXJIZWxwZXIgfSBmcm9tICcuLi9mb3JtLWVudHJ5L2NvbnRyb2wtaGlkZXJzLWRpc2FibGVycy9kaXNhYmxlci1oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgQWZlRm9ybUFycmF5XG4gIGV4dGVuZHMgRm9ybUFycmF5XG4gIGltcGxlbWVudHMgQ2FuSGlkZSwgQ2FuRGlzYWJsZSwgQ2FuR2VuZXJhdGVBbGVydCwgVmFsdWVDaGFuZ2VMaXN0ZW5lciB7XG4gIHByaXZhdGUgX2NvbnRyb2xSZWxhdGlvbnM6IENvbnRyb2xSZWxhdGlvbnM7XG4gIHByaXZhdGUgX3ZhbHVlQ2hhbmdlTGlzdGVuZXI6IGFueTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNWYWx1ZTtcbiAgcHJpdmF0ZSBfdXVpZDogc3RyaW5nO1xuICBwdWJsaWMgcGF0aEZyb21Sb290OiBzdHJpbmc7XG5cbiAgaGlkZGVuOiBmYWxzZTtcbiAgaGlkZXJzOiBIaWRlcltdO1xuXG4gIGFsZXJ0OiBzdHJpbmc7XG4gIGFsZXJ0czogQWxlcnRbXTtcblxuICBkaXNhYmxlcnM6IERpc2FibGVyW107XG5cbiAgcHJpdmF0ZSBoaWRlckhlbHBlcjogSGlkZXJIZWxwZXIgPSBuZXcgSGlkZXJIZWxwZXIoKTtcbiAgcHJpdmF0ZSBBbGVydEhlbHBlcjogQWxlcnRIZWxwZXIgPSBuZXcgQWxlcnRIZWxwZXIoKTtcbiAgcHJpdmF0ZSBkaXNhYmxlckhlbHBlcjogRGlzYWJsZXJIZWxwZXIgPSBuZXcgRGlzYWJsZXJIZWxwZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10sXG4gICAgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm4sXG4gICAgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvckZuXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3IsIGFzeW5jVmFsaWRhdG9yKTtcbiAgICB0aGlzLl9jb250cm9sUmVsYXRpb25zID0gbmV3IENvbnRyb2xSZWxhdGlvbnModGhpcyk7XG4gICAgdGhpcy5oaWRlcnMgPSBbXTtcbiAgICB0aGlzLmFsZXJ0cyA9IFtdO1xuICAgIHRoaXMuZGlzYWJsZXJzID0gW107XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5fcHJldmlvdXNWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhpcy5maXJlVmFsdWVDaGFuZ2VMaXN0ZW5lcih2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3V1aWQ7XG4gIH1cbiAgc2V0IHV1aWQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91dWlkID0gdmFsO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2xSZWxhdGlvbnMoKTogQ29udHJvbFJlbGF0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xSZWxhdGlvbnM7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuaGlkZXJIZWxwZXIuaGlkZUNvbnRyb2wodGhpcyk7XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuaGlkZXJIZWxwZXIuc2hvd0NvbnRyb2wodGhpcyk7XG4gIH1cblxuICBkaXNhYmxlKHBhcmFtPzogeyBvbmx5U2VsZj86IGJvb2xlYW47IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIHN1cGVyLmRpc2FibGUocGFyYW0pO1xuICAgIHN1cGVyLnNldFZhbHVlKFtdKTtcbiAgfVxuXG4gIHNldEhpZGluZ0ZuKG5ld0hpZGVyOiBIaWRlcikge1xuICAgIHRoaXMuaGlkZXJIZWxwZXIuc2V0SGlkZXJGb3JDb250cm9sKHRoaXMsIG5ld0hpZGVyKTtcbiAgfVxuXG4gIGNsZWFySGlkaW5nRm5zKCkge1xuICAgIHRoaXMuaGlkZXJIZWxwZXIuY2xlYXJIaWRlcnNGb3JDb250cm9sKHRoaXMpO1xuICB9XG5cbiAgdXBkYXRlSGlkZGVuU3RhdGUoKSB7XG4gICAgdGhpcy5oaWRlckhlbHBlci5ldmFsdWF0ZUNvbnRyb2xIaWRlcnModGhpcyk7XG4gIH1cblxuICBzZXREaXNhYmxpbmdGbihuZXdEaXNhYmxlcjogRGlzYWJsZXIpIHtcbiAgICB0aGlzLmRpc2FibGVySGVscGVyLnNldERpc2FibGVyRm9yQ29udHJvbCh0aGlzLCBuZXdEaXNhYmxlcik7XG4gIH1cblxuICBjbGVhckRpc2FibGluZ0ZucygpIHtcbiAgICB0aGlzLmRpc2FibGVySGVscGVyLmNsZWFyRGlzYWJsZXJzRm9yQ29udHJvbCh0aGlzKTtcbiAgfVxuXG4gIHVwZGF0ZURpc2FibGVkU3RhdGUoKSB7XG4gICAgdGhpcy5kaXNhYmxlckhlbHBlci5ldmFsdWF0ZUNvbnRyb2xEaXNhYmxlcnModGhpcyk7XG4gIH1cblxuICBzZXRBbGVydEZuKG5ld0hpZGVyOiBBbGVydCkge1xuICAgIHRoaXMuQWxlcnRIZWxwZXIuc2V0QWxlcnRzRm9yQ29udHJvbCh0aGlzLCBuZXdIaWRlcik7XG4gIH1cblxuICBjbGVhck1lc3NhZ2VGbnMoKSB7XG4gICAgdGhpcy5BbGVydEhlbHBlci5jbGVhckFsZXJ0c0ZvckNvbnRyb2wodGhpcyk7XG4gIH1cblxuICB1cGRhdGVBbGVydCgpIHtcbiAgICB0aGlzLkFsZXJ0SGVscGVyLmV2YWx1YXRlQ29udHJvbEFsZXJ0cyh0aGlzKTtcbiAgfVxuXG4gIGFkZFZhbHVlQ2hhbmdlTGlzdGVuZXIoZnVuYzogYW55KSB7XG4gICAgdGhpcy5fdmFsdWVDaGFuZ2VMaXN0ZW5lciA9IGZ1bmM7XG4gIH1cblxuICBmaXJlVmFsdWVDaGFuZ2VMaXN0ZW5lcih2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuYWxlcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudXBkYXRlQWxlcnQoKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VMaXN0ZW5lciAmJlxuICAgICAgdHlwZW9mIHRoaXMuX3ZhbHVlQ2hhbmdlTGlzdGVuZXIgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlTGlzdGVuZXIodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|