@ampath-kenya/ngx-openmrs-formentry 2.12.11 → 2.12.13
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/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/afe-control-type.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/afe-form-array.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/afe-form-control.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/afe-form-group.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/control-extensions.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/index.d.ts +0 -0
- package/{dist/ngx-formentry/abstract-controls-extension → abstract-controls-extension}/value-change.listener.d.ts +0 -0
- package/{dist/ngx-formentry/ngx-openmrs-formentry.d.ts → ampath-kenya-ngx-openmrs-formentry.d.ts} +0 -0
- package/{dist/ngx-formentry/ngx-openmrs-formentry.metadata.json → ampath-kenya-ngx-openmrs-formentry.metadata.json} +1 -1
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.js +10706 -0
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.js.map +1 -0
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js +2 -0
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js.map +1 -0
- package/{dist/ngx-formentry/change-tracking → change-tracking}/control-relation.d.ts +0 -0
- package/{dist/ngx-formentry/change-tracking → change-tracking}/control-relations.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/afe-ng-select.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/appointments-overview/appointments-overview.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/check-box/checkbox.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/check-box/checkbox.module.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/date-picker/date-picker.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/date-time-picker.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/date-time-picker.module.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/picker-modal/modal.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/pipes/moment.pipe.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/date-time-picker/time-picker/time-picker.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/file-upload/file-upload.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/file-upload/file-upload.module.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/file-upload/secure.pipe.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/ngx-date-time-picker/ngx-date-time-picker.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/ngx-date-time-picker/ngx-date-time-picker.module.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/remote-select/remote-select.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/remote-select/remote-select.module.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/diacritics.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/option-list.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/option.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/select-dropdown.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/select-dropdown.component.style.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/select.component.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/select.component.style.d.ts +0 -0
- package/{dist/ngx-formentry/components → components}/select/select.module.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/display-controls/file-preview.component.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/display-controls/question-control.component.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/display-controls/remote-answer.component.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/encounter-container/encounter-container.component.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/encounter-pdf-viewer.service.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/encounter-view/encounter-viewer.component.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/encounter-viewer.module.d.ts +0 -0
- package/{dist/ngx-formentry/encounter-viewer → encounter-viewer}/encounter-viewer.service.d.ts +0 -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 +1 -0
- package/esm2015/ampath-kenya-ngx-openmrs-formentry.js +42 -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 +161 -0
- package/esm2015/components/check-box/checkbox.component.js +97 -0
- package/esm2015/components/check-box/checkbox.module.js +14 -0
- package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +270 -0
- package/esm2015/components/date-time-picker/date-time-picker.component.js +207 -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 +36 -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 +160 -0
- package/esm2015/components/file-upload/file-upload.component.js +128 -0
- package/esm2015/components/file-upload/file-upload.module.js +27 -0
- package/esm2015/components/file-upload/secure.pipe.js +102 -0
- package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.component.js +191 -0
- package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.module.js +41 -0
- package/esm2015/components/remote-select/remote-select.component.js +169 -0
- package/esm2015/components/remote-select/remote-select.module.js +17 -0
- package/esm2015/components/select/diacritics.js +855 -0
- package/esm2015/components/select/option-list.js +179 -0
- package/esm2015/components/select/option.js +29 -0
- package/esm2015/components/select/select-dropdown.component.js +161 -0
- package/esm2015/components/select/select-dropdown.component.style.js +58 -0
- package/esm2015/components/select/select.component.js +514 -0
- package/esm2015/components/select/select.component.style.js +101 -0
- package/esm2015/components/select/select.module.js +15 -0
- package/esm2015/encounter-viewer/display-controls/file-preview.component.js +109 -0
- package/esm2015/encounter-viewer/display-controls/question-control.component.js +92 -0
- package/esm2015/encounter-viewer/display-controls/remote-answer.component.js +79 -0
- package/esm2015/encounter-viewer/encounter-container/encounter-container.component.js +48 -0
- package/esm2015/encounter-viewer/encounter-pdf-viewer.service.js +435 -0
- package/esm2015/encounter-viewer/encounter-view/encounter-viewer.component.js +299 -0
- package/esm2015/encounter-viewer/encounter-viewer.module.js +35 -0
- package/esm2015/encounter-viewer/encounter-viewer.service.js +160 -0
- package/esm2015/form-entry/control-alerts/alert-helpers.js +40 -0
- package/esm2015/form-entry/control-alerts/can-generate-alert.js +1 -0
- package/esm2015/form-entry/control-calculators/can-calculate.js +1 -0
- package/esm2015/form-entry/control-hiders-disablers/can-disable.js +1 -0
- package/esm2015/form-entry/control-hiders-disablers/can-hide.js +1 -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/historical-value-directive.js +66 -0
- package/esm2015/form-entry/error-renderer/error-renderer.component.js +69 -0
- package/esm2015/form-entry/expression-runner/expression-runner.js +152 -0
- package/esm2015/form-entry/form-entry.module.js +103 -0
- package/esm2015/form-entry/form-factory/control-relations.factory.js +236 -0
- package/esm2015/form-entry/form-factory/form-control.service.js +117 -0
- package/esm2015/form-entry/form-factory/form-node.js +78 -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 +834 -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 +156 -0
- package/esm2015/form-entry/form-renderer/form-renderer.component.js +632 -0
- package/esm2015/form-entry/helpers/historical-expression-helper-service.js +38 -0
- package/esm2015/form-entry/helpers/historical-field-helper-service.js +32 -0
- package/esm2015/form-entry/helpers/js-expression-helper.js +234 -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/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 +1 -0
- package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/data-source.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/date-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/group-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/nested-questions.js +7 -0
- package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/select-option.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/select-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/text-question-options.js +1 -0
- package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +1 -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 +24 -0
- package/{dist/ngx-formentry/esm2015 → esm2015}/form-entry/question-models/rendering-type.js +1 -1
- 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 +171 -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 +173 -0
- package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +490 -0
- package/esm2015/form-entry/value-adapters/obs.adapter.js +542 -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 +1 -0
- package/esm2015/public_api.js +51 -0
- package/esm2015/shared.module.js +15 -0
- package/esm5/abstract-controls-extension/afe-control-type.js +8 -0
- package/esm5/abstract-controls-extension/afe-form-array.js +98 -0
- package/esm5/abstract-controls-extension/afe-form-control.js +96 -0
- package/esm5/abstract-controls-extension/afe-form-group.js +70 -0
- package/esm5/abstract-controls-extension/control-extensions.js +5 -0
- package/esm5/abstract-controls-extension/index.js +5 -0
- package/esm5/abstract-controls-extension/value-change.listener.js +1 -0
- package/esm5/ampath-kenya-ngx-openmrs-formentry.js +42 -0
- package/esm5/change-tracking/control-relation.js +59 -0
- package/esm5/change-tracking/control-relations.js +46 -0
- package/esm5/components/afe-ng-select.component.js +87 -0
- package/esm5/components/appointments-overview/appointments-overview.component.js +123 -0
- package/esm5/components/check-box/checkbox.component.js +88 -0
- package/esm5/components/check-box/checkbox.module.js +18 -0
- package/esm5/components/date-time-picker/date-picker/date-picker.component.js +186 -0
- package/esm5/components/date-time-picker/date-time-picker.component.js +111 -0
- package/esm5/components/date-time-picker/date-time-picker.module.js +38 -0
- package/esm5/components/date-time-picker/picker-modal/modal.component.js +32 -0
- package/esm5/components/date-time-picker/pipes/moment.pipe.js +17 -0
- package/esm5/components/date-time-picker/time-picker/time-picker.component.js +117 -0
- package/esm5/components/file-upload/file-upload.component.js +126 -0
- package/esm5/components/file-upload/file-upload.module.js +31 -0
- package/esm5/components/file-upload/secure.pipe.js +105 -0
- package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.component.js +140 -0
- package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.module.js +45 -0
- package/esm5/components/remote-select/remote-select.component.js +163 -0
- package/esm5/components/remote-select/remote-select.module.js +21 -0
- package/esm5/components/select/diacritics.js +860 -0
- package/esm5/components/select/option-list.js +224 -0
- package/esm5/components/select/option.js +31 -0
- package/esm5/components/select/select-dropdown.component.js +131 -0
- package/esm5/components/select/select-dropdown.component.style.js +2 -0
- package/esm5/components/select/select.component.js +456 -0
- package/esm5/components/select/select.component.style.js +2 -0
- package/esm5/components/select/select.module.js +19 -0
- package/{dist/ngx-formentry/esm2015 → esm5}/encounter-viewer/display-controls/file-preview.component.js +70 -70
- package/esm5/encounter-viewer/display-controls/question-control.component.js +104 -0
- package/esm5/encounter-viewer/display-controls/remote-answer.component.js +86 -0
- package/esm5/encounter-viewer/encounter-container/encounter-container.component.js +45 -0
- package/esm5/encounter-viewer/encounter-pdf-viewer.service.js +521 -0
- package/esm5/encounter-viewer/encounter-view/encounter-viewer.component.js +185 -0
- package/esm5/encounter-viewer/encounter-viewer.module.js +39 -0
- package/esm5/encounter-viewer/encounter-viewer.service.js +165 -0
- package/esm5/form-entry/control-alerts/alert-helpers.js +44 -0
- package/esm5/form-entry/control-alerts/can-generate-alert.js +1 -0
- package/esm5/form-entry/control-calculators/can-calculate.js +1 -0
- package/esm5/form-entry/control-hiders-disablers/can-disable.js +1 -0
- package/esm5/form-entry/control-hiders-disablers/can-hide.js +1 -0
- package/esm5/form-entry/control-hiders-disablers/disabler-helper.js +37 -0
- package/esm5/form-entry/control-hiders-disablers/hider-helpers.js +44 -0
- package/esm5/form-entry/data-sources/data-sources.js +37 -0
- package/esm5/form-entry/data-sources/dummy-data-source.js +106 -0
- package/esm5/form-entry/directives/historical-value-directive.js +72 -0
- package/esm5/form-entry/error-renderer/error-renderer.component.js +62 -0
- package/esm5/form-entry/expression-runner/expression-runner.js +158 -0
- package/esm5/form-entry/form-entry.module.js +107 -0
- package/{dist/ngx-formentry/esm2015 → esm5}/form-entry/form-factory/control-relations.factory.js +94 -87
- package/esm5/form-entry/form-factory/form-control.service.js +120 -0
- package/esm5/form-entry/form-factory/form-node.js +116 -0
- package/esm5/form-entry/form-factory/form.factory.js +136 -0
- package/esm5/form-entry/form-factory/form.js +213 -0
- package/esm5/form-entry/form-factory/hiders-disablers.factory.js +68 -0
- package/esm5/form-entry/form-factory/question.factory.js +838 -0
- package/esm5/form-entry/form-factory/show-messages.factory.js +32 -0
- package/esm5/form-entry/form-factory/validation.factory.js +189 -0
- package/esm5/form-entry/form-renderer/form-renderer.component.css.js +2 -0
- package/esm5/form-entry/form-renderer/form-renderer.component.js +211 -0
- package/esm5/form-entry/helpers/historical-expression-helper-service.js +41 -0
- package/esm5/form-entry/helpers/historical-field-helper-service.js +36 -0
- package/esm5/form-entry/helpers/js-expression-helper.js +242 -0
- package/esm5/form-entry/question-models/checkbox.model.js +16 -0
- package/esm5/form-entry/question-models/conditional-validation.model.js +14 -0
- package/esm5/form-entry/question-models/date-question.js +17 -0
- package/esm5/form-entry/question-models/date-validation.model.js +15 -0
- package/esm5/form-entry/question-models/file-upload-question.js +18 -0
- package/esm5/form-entry/question-models/group-question.js +17 -0
- package/esm5/form-entry/question-models/interfaces/base-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/checkbox-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/data-source.js +1 -0
- package/esm5/form-entry/question-models/interfaces/date-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/file-upload-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/group-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/multi-select-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/nested-questions.js +11 -0
- package/esm5/form-entry/question-models/interfaces/repeating-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/select-option.js +1 -0
- package/esm5/form-entry/question-models/interfaces/select-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/test-order-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/text-area-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/text-question-options.js +1 -0
- package/esm5/form-entry/question-models/interfaces/ui-select-question-options.js +1 -0
- package/esm5/form-entry/question-models/js-expression-validation.model.js +13 -0
- package/esm5/form-entry/question-models/max-validation.model.js +14 -0
- package/esm5/form-entry/question-models/min-validation.model.js +14 -0
- package/esm5/form-entry/question-models/models.js +12 -0
- package/esm5/form-entry/question-models/multi-select-question.js +16 -0
- package/esm5/form-entry/question-models/pair.model.js +9 -0
- package/esm5/form-entry/question-models/question-base.js +26 -0
- package/{dist/ngx-formentry/esm5 → esm5}/form-entry/question-models/rendering-type.js +1 -1
- package/esm5/form-entry/question-models/repeating-question.js +16 -0
- package/esm5/form-entry/question-models/select-option.js +9 -0
- package/esm5/form-entry/question-models/select-question.js +17 -0
- package/esm5/form-entry/question-models/test-order-question.js +20 -0
- package/esm5/form-entry/question-models/text-area-input-question.js +18 -0
- package/esm5/form-entry/question-models/text-input-question.js +15 -0
- package/esm5/form-entry/question-models/ui-select-question.js +16 -0
- package/esm5/form-entry/question-models/validation.model.js +9 -0
- package/esm5/form-entry/services/debug-mode.service.js +24 -0
- package/esm5/form-entry/services/form-errors.service.js +20 -0
- package/esm5/form-entry/services/form-schema-compiler.service.js +252 -0
- package/esm5/form-entry/services/historical-encounter-data.service.js +178 -0
- package/esm5/form-entry/utils/messages.js +16 -0
- package/esm5/form-entry/validators/conditional-answered.validator.js +49 -0
- package/esm5/form-entry/validators/conditional-required.validator.js +43 -0
- package/esm5/form-entry/validators/date.validator.js +21 -0
- package/esm5/form-entry/validators/future-date-restriction.validator.js +24 -0
- package/esm5/form-entry/validators/js-expression.validator.js +29 -0
- package/esm5/form-entry/validators/max-date.validator.js +27 -0
- package/esm5/form-entry/validators/max.validator.js +21 -0
- package/esm5/form-entry/validators/min-date.validator.js +27 -0
- package/esm5/form-entry/validators/min.validator.js +21 -0
- package/esm5/form-entry/validators/required.validator.js +15 -0
- package/esm5/form-entry/validators/validations.js +8 -0
- package/esm5/form-entry/value-adapters/encounter.adapter.js +176 -0
- package/esm5/form-entry/value-adapters/obs-adapter-helper.js +508 -0
- package/esm5/form-entry/value-adapters/obs.adapter.js +735 -0
- package/esm5/form-entry/value-adapters/order.adapter.js +226 -0
- package/esm5/form-entry/value-adapters/person-attribute.adapter.js +91 -0
- package/esm5/form-entry/value-adapters/value.adapter.js +1 -0
- package/esm5/public_api.js +51 -0
- package/esm5/shared.module.js +19 -0
- package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js +10919 -0
- package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js.map +1 -0
- package/fesm5/ampath-kenya-ngx-openmrs-formentry.js +10359 -0
- package/fesm5/ampath-kenya-ngx-openmrs-formentry.js.map +1 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-alerts/alert-helpers.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-alerts/can-generate-alert.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-calculators/can-calculate.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-hiders-disablers/can-disable.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-hiders-disablers/can-hide.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-hiders-disablers/disabler-helper.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/control-hiders-disablers/hider-helpers.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/data-sources/data-sources.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/data-sources/dummy-data-source.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/directives/historical-value-directive.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/error-renderer/error-renderer.component.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/expression-runner/expression-runner.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-entry.module.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/control-relations.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/form-control.service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/form-node.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/form.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/form.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/hiders-disablers.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/question.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/show-messages.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-factory/validation.factory.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-renderer/form-renderer.component.css.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/form-renderer/form-renderer.component.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/helpers/historical-expression-helper-service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/helpers/historical-field-helper-service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/helpers/js-expression-helper.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/checkbox.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/conditional-validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/date-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/date-validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/file-upload-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/group-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/base-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/checkbox-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/data-source.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/date-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/file-upload-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/group-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/multi-select-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/nested-questions.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/repeating-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/select-option.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/select-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/test-order-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/text-area-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/text-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/interfaces/ui-select-question-options.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/js-expression-validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/max-validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/min-validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/models.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/multi-select-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/pair.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/question-base.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/rendering-type.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/repeating-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/select-option.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/select-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/test-order-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/text-area-input-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/text-input-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/ui-select-question.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/question-models/validation.model.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/services/debug-mode.service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/services/form-errors.service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/services/form-schema-compiler.service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/services/historical-encounter-data.service.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/utils/messages.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/conditional-answered.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/conditional-required.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/date.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/future-date-restriction.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/js-expression.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/max-date.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/max.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/min-date.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/min.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/required.validator.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/validators/validations.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/encounter.adapter.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/obs-adapter-helper.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/obs.adapter.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/order.adapter.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/person-attribute.adapter.d.ts +0 -0
- package/{dist/ngx-formentry/form-entry → form-entry}/value-adapters/value.adapter.d.ts +0 -0
- package/package.json +21 -83
- package/{dist/ngx-formentry/public_api.d.ts → public_api.d.ts} +0 -0
- package/{dist/ngx-formentry/shared.module.d.ts → shared.module.d.ts} +0 -0
- package/.editorconfig +0 -13
- package/.prettierignore +0 -40
- package/.prettierrc +0 -6
- package/.travis.yml +0 -17
- package/README.md +0 -34
- package/angular.json +0 -143
- package/dist/ngx-formentry/bundles/ngx-openmrs-formentry.umd.js +0 -10706
- package/dist/ngx-formentry/bundles/ngx-openmrs-formentry.umd.js.map +0 -1
- package/dist/ngx-formentry/bundles/ngx-openmrs-formentry.umd.min.js +0 -2
- package/dist/ngx-formentry/bundles/ngx-openmrs-formentry.umd.min.js.map +0 -1
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/afe-control-type.js +0 -8
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/afe-form-array.js +0 -85
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/afe-form-control.js +0 -88
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/afe-form-group.js +0 -61
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/control-extensions.js +0 -5
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/index.js +0 -5
- package/dist/ngx-formentry/esm2015/abstract-controls-extension/value-change.listener.js +0 -1
- package/dist/ngx-formentry/esm2015/change-tracking/control-relation.js +0 -44
- package/dist/ngx-formentry/esm2015/change-tracking/control-relations.js +0 -32
- package/dist/ngx-formentry/esm2015/components/afe-ng-select.component.js +0 -87
- package/dist/ngx-formentry/esm2015/components/appointments-overview/appointments-overview.component.js +0 -161
- package/dist/ngx-formentry/esm2015/components/check-box/checkbox.component.js +0 -97
- package/dist/ngx-formentry/esm2015/components/check-box/checkbox.module.js +0 -14
- package/dist/ngx-formentry/esm2015/components/date-time-picker/date-picker/date-picker.component.js +0 -270
- package/dist/ngx-formentry/esm2015/components/date-time-picker/date-time-picker.component.js +0 -207
- package/dist/ngx-formentry/esm2015/components/date-time-picker/date-time-picker.module.js +0 -34
- package/dist/ngx-formentry/esm2015/components/date-time-picker/picker-modal/modal.component.js +0 -36
- package/dist/ngx-formentry/esm2015/components/date-time-picker/pipes/moment.pipe.js +0 -13
- package/dist/ngx-formentry/esm2015/components/date-time-picker/time-picker/time-picker.component.js +0 -160
- package/dist/ngx-formentry/esm2015/components/file-upload/file-upload.component.js +0 -128
- package/dist/ngx-formentry/esm2015/components/file-upload/file-upload.module.js +0 -27
- package/dist/ngx-formentry/esm2015/components/file-upload/secure.pipe.js +0 -102
- package/dist/ngx-formentry/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.component.js +0 -191
- package/dist/ngx-formentry/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.module.js +0 -41
- package/dist/ngx-formentry/esm2015/components/remote-select/remote-select.component.js +0 -169
- package/dist/ngx-formentry/esm2015/components/remote-select/remote-select.module.js +0 -17
- package/dist/ngx-formentry/esm2015/components/select/diacritics.js +0 -855
- package/dist/ngx-formentry/esm2015/components/select/option-list.js +0 -179
- package/dist/ngx-formentry/esm2015/components/select/option.js +0 -29
- package/dist/ngx-formentry/esm2015/components/select/select-dropdown.component.js +0 -161
- package/dist/ngx-formentry/esm2015/components/select/select-dropdown.component.style.js +0 -58
- package/dist/ngx-formentry/esm2015/components/select/select.component.js +0 -514
- package/dist/ngx-formentry/esm2015/components/select/select.component.style.js +0 -101
- package/dist/ngx-formentry/esm2015/components/select/select.module.js +0 -15
- package/dist/ngx-formentry/esm2015/encounter-viewer/display-controls/question-control.component.js +0 -92
- package/dist/ngx-formentry/esm2015/encounter-viewer/display-controls/remote-answer.component.js +0 -79
- package/dist/ngx-formentry/esm2015/encounter-viewer/encounter-container/encounter-container.component.js +0 -48
- package/dist/ngx-formentry/esm2015/encounter-viewer/encounter-pdf-viewer.service.js +0 -435
- package/dist/ngx-formentry/esm2015/encounter-viewer/encounter-view/encounter-viewer.component.js +0 -299
- package/dist/ngx-formentry/esm2015/encounter-viewer/encounter-viewer.module.js +0 -35
- package/dist/ngx-formentry/esm2015/encounter-viewer/encounter-viewer.service.js +0 -160
- package/dist/ngx-formentry/esm2015/form-entry/control-alerts/alert-helpers.js +0 -40
- package/dist/ngx-formentry/esm2015/form-entry/control-alerts/can-generate-alert.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/control-calculators/can-calculate.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/control-hiders-disablers/can-disable.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/control-hiders-disablers/can-hide.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +0 -33
- package/dist/ngx-formentry/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +0 -40
- package/dist/ngx-formentry/esm2015/form-entry/data-sources/data-sources.js +0 -30
- package/dist/ngx-formentry/esm2015/form-entry/data-sources/dummy-data-source.js +0 -104
- package/dist/ngx-formentry/esm2015/form-entry/directives/historical-value-directive.js +0 -66
- package/dist/ngx-formentry/esm2015/form-entry/error-renderer/error-renderer.component.js +0 -69
- package/dist/ngx-formentry/esm2015/form-entry/expression-runner/expression-runner.js +0 -152
- package/dist/ngx-formentry/esm2015/form-entry/form-entry.module.js +0 -103
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/form-control.service.js +0 -117
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/form-node.js +0 -78
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/form.factory.js +0 -132
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/form.js +0 -193
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/hiders-disablers.factory.js +0 -66
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/question.factory.js +0 -834
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/show-messages.factory.js +0 -30
- package/dist/ngx-formentry/esm2015/form-entry/form-factory/validation.factory.js +0 -145
- package/dist/ngx-formentry/esm2015/form-entry/form-renderer/form-renderer.component.css.js +0 -156
- package/dist/ngx-formentry/esm2015/form-entry/form-renderer/form-renderer.component.js +0 -632
- package/dist/ngx-formentry/esm2015/form-entry/helpers/historical-expression-helper-service.js +0 -38
- package/dist/ngx-formentry/esm2015/form-entry/helpers/historical-field-helper-service.js +0 -32
- package/dist/ngx-formentry/esm2015/form-entry/helpers/js-expression-helper.js +0 -234
- package/dist/ngx-formentry/esm2015/form-entry/question-models/checkbox.model.js +0 -11
- package/dist/ngx-formentry/esm2015/form-entry/question-models/conditional-validation.model.js +0 -9
- package/dist/ngx-formentry/esm2015/form-entry/question-models/date-question.js +0 -12
- package/dist/ngx-formentry/esm2015/form-entry/question-models/date-validation.model.js +0 -10
- package/dist/ngx-formentry/esm2015/form-entry/question-models/file-upload-question.js +0 -13
- package/dist/ngx-formentry/esm2015/form-entry/question-models/group-question.js +0 -12
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/base-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/checkbox-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/data-source.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/date-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/group-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/multi-select-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/nested-questions.js +0 -7
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/select-option.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/select-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/text-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +0 -1
- package/dist/ngx-formentry/esm2015/form-entry/question-models/js-expression-validation.model.js +0 -8
- package/dist/ngx-formentry/esm2015/form-entry/question-models/max-validation.model.js +0 -9
- package/dist/ngx-formentry/esm2015/form-entry/question-models/min-validation.model.js +0 -9
- package/dist/ngx-formentry/esm2015/form-entry/question-models/models.js +0 -12
- package/dist/ngx-formentry/esm2015/form-entry/question-models/multi-select-question.js +0 -11
- package/dist/ngx-formentry/esm2015/form-entry/question-models/pair.model.js +0 -7
- package/dist/ngx-formentry/esm2015/form-entry/question-models/question-base.js +0 -24
- package/dist/ngx-formentry/esm2015/form-entry/question-models/repeating-question.js +0 -11
- package/dist/ngx-formentry/esm2015/form-entry/question-models/select-option.js +0 -7
- package/dist/ngx-formentry/esm2015/form-entry/question-models/select-question.js +0 -12
- package/dist/ngx-formentry/esm2015/form-entry/question-models/test-order-question.js +0 -15
- package/dist/ngx-formentry/esm2015/form-entry/question-models/text-area-input-question.js +0 -13
- package/dist/ngx-formentry/esm2015/form-entry/question-models/text-input-question.js +0 -10
- package/dist/ngx-formentry/esm2015/form-entry/question-models/ui-select-question.js +0 -11
- package/dist/ngx-formentry/esm2015/form-entry/question-models/validation.model.js +0 -7
- package/dist/ngx-formentry/esm2015/form-entry/services/debug-mode.service.js +0 -22
- package/dist/ngx-formentry/esm2015/form-entry/services/form-errors.service.js +0 -18
- package/dist/ngx-formentry/esm2015/form-entry/services/form-schema-compiler.service.js +0 -246
- package/dist/ngx-formentry/esm2015/form-entry/services/historical-encounter-data.service.js +0 -171
- package/dist/ngx-formentry/esm2015/form-entry/utils/messages.js +0 -12
- package/dist/ngx-formentry/esm2015/form-entry/validators/conditional-answered.validator.js +0 -46
- package/dist/ngx-formentry/esm2015/form-entry/validators/conditional-required.validator.js +0 -40
- package/dist/ngx-formentry/esm2015/form-entry/validators/date.validator.js +0 -18
- package/dist/ngx-formentry/esm2015/form-entry/validators/future-date-restriction.validator.js +0 -21
- package/dist/ngx-formentry/esm2015/form-entry/validators/js-expression.validator.js +0 -26
- package/dist/ngx-formentry/esm2015/form-entry/validators/max-date.validator.js +0 -23
- package/dist/ngx-formentry/esm2015/form-entry/validators/max.validator.js +0 -17
- package/dist/ngx-formentry/esm2015/form-entry/validators/min-date.validator.js +0 -23
- package/dist/ngx-formentry/esm2015/form-entry/validators/min.validator.js +0 -17
- package/dist/ngx-formentry/esm2015/form-entry/validators/required.validator.js +0 -11
- package/dist/ngx-formentry/esm2015/form-entry/validators/validations.js +0 -5
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/encounter.adapter.js +0 -173
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/obs-adapter-helper.js +0 -490
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/obs.adapter.js +0 -542
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/order.adapter.js +0 -186
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/person-attribute.adapter.js +0 -87
- package/dist/ngx-formentry/esm2015/form-entry/value-adapters/value.adapter.js +0 -1
- package/dist/ngx-formentry/esm2015/ngx-openmrs-formentry.js +0 -42
- package/dist/ngx-formentry/esm2015/public_api.js +0 -51
- package/dist/ngx-formentry/esm2015/shared.module.js +0 -15
- package/dist/ngx-formentry/esm5/abstract-controls-extension/afe-control-type.js +0 -8
- package/dist/ngx-formentry/esm5/abstract-controls-extension/afe-form-array.js +0 -98
- package/dist/ngx-formentry/esm5/abstract-controls-extension/afe-form-control.js +0 -96
- package/dist/ngx-formentry/esm5/abstract-controls-extension/afe-form-group.js +0 -70
- package/dist/ngx-formentry/esm5/abstract-controls-extension/control-extensions.js +0 -5
- package/dist/ngx-formentry/esm5/abstract-controls-extension/index.js +0 -5
- package/dist/ngx-formentry/esm5/abstract-controls-extension/value-change.listener.js +0 -1
- package/dist/ngx-formentry/esm5/change-tracking/control-relation.js +0 -59
- package/dist/ngx-formentry/esm5/change-tracking/control-relations.js +0 -46
- package/dist/ngx-formentry/esm5/components/afe-ng-select.component.js +0 -87
- package/dist/ngx-formentry/esm5/components/appointments-overview/appointments-overview.component.js +0 -123
- package/dist/ngx-formentry/esm5/components/check-box/checkbox.component.js +0 -88
- package/dist/ngx-formentry/esm5/components/check-box/checkbox.module.js +0 -18
- package/dist/ngx-formentry/esm5/components/date-time-picker/date-picker/date-picker.component.js +0 -186
- package/dist/ngx-formentry/esm5/components/date-time-picker/date-time-picker.component.js +0 -111
- package/dist/ngx-formentry/esm5/components/date-time-picker/date-time-picker.module.js +0 -38
- package/dist/ngx-formentry/esm5/components/date-time-picker/picker-modal/modal.component.js +0 -32
- package/dist/ngx-formentry/esm5/components/date-time-picker/pipes/moment.pipe.js +0 -17
- package/dist/ngx-formentry/esm5/components/date-time-picker/time-picker/time-picker.component.js +0 -117
- package/dist/ngx-formentry/esm5/components/file-upload/file-upload.component.js +0 -126
- package/dist/ngx-formentry/esm5/components/file-upload/file-upload.module.js +0 -31
- package/dist/ngx-formentry/esm5/components/file-upload/secure.pipe.js +0 -105
- package/dist/ngx-formentry/esm5/components/ngx-date-time-picker/ngx-date-time-picker.component.js +0 -140
- package/dist/ngx-formentry/esm5/components/ngx-date-time-picker/ngx-date-time-picker.module.js +0 -45
- package/dist/ngx-formentry/esm5/components/remote-select/remote-select.component.js +0 -163
- package/dist/ngx-formentry/esm5/components/remote-select/remote-select.module.js +0 -21
- package/dist/ngx-formentry/esm5/components/select/diacritics.js +0 -860
- package/dist/ngx-formentry/esm5/components/select/option-list.js +0 -224
- package/dist/ngx-formentry/esm5/components/select/option.js +0 -31
- package/dist/ngx-formentry/esm5/components/select/select-dropdown.component.js +0 -131
- package/dist/ngx-formentry/esm5/components/select/select-dropdown.component.style.js +0 -2
- package/dist/ngx-formentry/esm5/components/select/select.component.js +0 -456
- package/dist/ngx-formentry/esm5/components/select/select.component.style.js +0 -2
- package/dist/ngx-formentry/esm5/components/select/select.module.js +0 -19
- package/dist/ngx-formentry/esm5/encounter-viewer/display-controls/file-preview.component.js +0 -109
- package/dist/ngx-formentry/esm5/encounter-viewer/display-controls/question-control.component.js +0 -104
- package/dist/ngx-formentry/esm5/encounter-viewer/display-controls/remote-answer.component.js +0 -86
- package/dist/ngx-formentry/esm5/encounter-viewer/encounter-container/encounter-container.component.js +0 -45
- package/dist/ngx-formentry/esm5/encounter-viewer/encounter-pdf-viewer.service.js +0 -521
- package/dist/ngx-formentry/esm5/encounter-viewer/encounter-view/encounter-viewer.component.js +0 -185
- package/dist/ngx-formentry/esm5/encounter-viewer/encounter-viewer.module.js +0 -39
- package/dist/ngx-formentry/esm5/encounter-viewer/encounter-viewer.service.js +0 -165
- package/dist/ngx-formentry/esm5/form-entry/control-alerts/alert-helpers.js +0 -44
- package/dist/ngx-formentry/esm5/form-entry/control-alerts/can-generate-alert.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/control-calculators/can-calculate.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/control-hiders-disablers/can-disable.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/control-hiders-disablers/can-hide.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/control-hiders-disablers/disabler-helper.js +0 -37
- package/dist/ngx-formentry/esm5/form-entry/control-hiders-disablers/hider-helpers.js +0 -44
- package/dist/ngx-formentry/esm5/form-entry/data-sources/data-sources.js +0 -37
- package/dist/ngx-formentry/esm5/form-entry/data-sources/dummy-data-source.js +0 -106
- package/dist/ngx-formentry/esm5/form-entry/directives/historical-value-directive.js +0 -72
- package/dist/ngx-formentry/esm5/form-entry/error-renderer/error-renderer.component.js +0 -62
- package/dist/ngx-formentry/esm5/form-entry/expression-runner/expression-runner.js +0 -158
- package/dist/ngx-formentry/esm5/form-entry/form-entry.module.js +0 -107
- package/dist/ngx-formentry/esm5/form-entry/form-factory/control-relations.factory.js +0 -243
- package/dist/ngx-formentry/esm5/form-entry/form-factory/form-control.service.js +0 -120
- package/dist/ngx-formentry/esm5/form-entry/form-factory/form-node.js +0 -116
- package/dist/ngx-formentry/esm5/form-entry/form-factory/form.factory.js +0 -136
- package/dist/ngx-formentry/esm5/form-entry/form-factory/form.js +0 -213
- package/dist/ngx-formentry/esm5/form-entry/form-factory/hiders-disablers.factory.js +0 -68
- package/dist/ngx-formentry/esm5/form-entry/form-factory/question.factory.js +0 -838
- package/dist/ngx-formentry/esm5/form-entry/form-factory/show-messages.factory.js +0 -32
- package/dist/ngx-formentry/esm5/form-entry/form-factory/validation.factory.js +0 -189
- package/dist/ngx-formentry/esm5/form-entry/form-renderer/form-renderer.component.css.js +0 -2
- package/dist/ngx-formentry/esm5/form-entry/form-renderer/form-renderer.component.js +0 -211
- package/dist/ngx-formentry/esm5/form-entry/helpers/historical-expression-helper-service.js +0 -41
- package/dist/ngx-formentry/esm5/form-entry/helpers/historical-field-helper-service.js +0 -36
- package/dist/ngx-formentry/esm5/form-entry/helpers/js-expression-helper.js +0 -242
- package/dist/ngx-formentry/esm5/form-entry/question-models/checkbox.model.js +0 -16
- package/dist/ngx-formentry/esm5/form-entry/question-models/conditional-validation.model.js +0 -14
- package/dist/ngx-formentry/esm5/form-entry/question-models/date-question.js +0 -17
- package/dist/ngx-formentry/esm5/form-entry/question-models/date-validation.model.js +0 -15
- package/dist/ngx-formentry/esm5/form-entry/question-models/file-upload-question.js +0 -18
- package/dist/ngx-formentry/esm5/form-entry/question-models/group-question.js +0 -17
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/base-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/checkbox-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/data-source.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/date-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/file-upload-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/group-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/multi-select-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/nested-questions.js +0 -11
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/repeating-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/select-option.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/select-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/test-order-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/text-area-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/text-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/interfaces/ui-select-question-options.js +0 -1
- package/dist/ngx-formentry/esm5/form-entry/question-models/js-expression-validation.model.js +0 -13
- package/dist/ngx-formentry/esm5/form-entry/question-models/max-validation.model.js +0 -14
- package/dist/ngx-formentry/esm5/form-entry/question-models/min-validation.model.js +0 -14
- package/dist/ngx-formentry/esm5/form-entry/question-models/models.js +0 -12
- package/dist/ngx-formentry/esm5/form-entry/question-models/multi-select-question.js +0 -16
- package/dist/ngx-formentry/esm5/form-entry/question-models/pair.model.js +0 -9
- package/dist/ngx-formentry/esm5/form-entry/question-models/question-base.js +0 -26
- package/dist/ngx-formentry/esm5/form-entry/question-models/repeating-question.js +0 -16
- package/dist/ngx-formentry/esm5/form-entry/question-models/select-option.js +0 -9
- package/dist/ngx-formentry/esm5/form-entry/question-models/select-question.js +0 -17
- package/dist/ngx-formentry/esm5/form-entry/question-models/test-order-question.js +0 -20
- package/dist/ngx-formentry/esm5/form-entry/question-models/text-area-input-question.js +0 -18
- package/dist/ngx-formentry/esm5/form-entry/question-models/text-input-question.js +0 -15
- package/dist/ngx-formentry/esm5/form-entry/question-models/ui-select-question.js +0 -16
- package/dist/ngx-formentry/esm5/form-entry/question-models/validation.model.js +0 -9
- package/dist/ngx-formentry/esm5/form-entry/services/debug-mode.service.js +0 -24
- package/dist/ngx-formentry/esm5/form-entry/services/form-errors.service.js +0 -20
- package/dist/ngx-formentry/esm5/form-entry/services/form-schema-compiler.service.js +0 -252
- package/dist/ngx-formentry/esm5/form-entry/services/historical-encounter-data.service.js +0 -178
- package/dist/ngx-formentry/esm5/form-entry/utils/messages.js +0 -16
- package/dist/ngx-formentry/esm5/form-entry/validators/conditional-answered.validator.js +0 -49
- package/dist/ngx-formentry/esm5/form-entry/validators/conditional-required.validator.js +0 -43
- package/dist/ngx-formentry/esm5/form-entry/validators/date.validator.js +0 -21
- package/dist/ngx-formentry/esm5/form-entry/validators/future-date-restriction.validator.js +0 -24
- package/dist/ngx-formentry/esm5/form-entry/validators/js-expression.validator.js +0 -29
- package/dist/ngx-formentry/esm5/form-entry/validators/max-date.validator.js +0 -27
- package/dist/ngx-formentry/esm5/form-entry/validators/max.validator.js +0 -21
- package/dist/ngx-formentry/esm5/form-entry/validators/min-date.validator.js +0 -27
- package/dist/ngx-formentry/esm5/form-entry/validators/min.validator.js +0 -21
- package/dist/ngx-formentry/esm5/form-entry/validators/required.validator.js +0 -15
- package/dist/ngx-formentry/esm5/form-entry/validators/validations.js +0 -8
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/encounter.adapter.js +0 -176
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/obs-adapter-helper.js +0 -508
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/obs.adapter.js +0 -735
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/order.adapter.js +0 -226
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/person-attribute.adapter.js +0 -91
- package/dist/ngx-formentry/esm5/form-entry/value-adapters/value.adapter.js +0 -1
- package/dist/ngx-formentry/esm5/ngx-openmrs-formentry.js +0 -42
- package/dist/ngx-formentry/esm5/public_api.js +0 -51
- package/dist/ngx-formentry/esm5/shared.module.js +0 -19
- package/dist/ngx-formentry/fesm2015/ngx-openmrs-formentry.js +0 -10919
- package/dist/ngx-formentry/fesm2015/ngx-openmrs-formentry.js.map +0 -1
- package/dist/ngx-formentry/fesm5/ngx-openmrs-formentry.js +0 -10359
- package/dist/ngx-formentry/fesm5/ngx-openmrs-formentry.js.map +0 -1
- package/dist/ngx-formentry/package.json +0 -35
- package/scripts/build.sh +0 -2
- package/tsconfig.json +0 -20
- package/tslint.json +0 -96
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Component, Input, forwardRef, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
4
|
+
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
+
import * as moment_ from 'moment';
|
|
6
|
+
const moment = moment_;
|
|
7
|
+
export const MY_FORMATS = {
|
|
8
|
+
parse: {
|
|
9
|
+
dateInput: 'LL'
|
|
10
|
+
},
|
|
11
|
+
display: {
|
|
12
|
+
dateInput: 'LL',
|
|
13
|
+
monthYearLabel: 'MMM YYYY',
|
|
14
|
+
dateA11yLabel: 'LL',
|
|
15
|
+
monthYearA11yLabel: 'MMMM YYYY'
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export class NgxDateTimePickerComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
// public date = new FormControl(moment());
|
|
21
|
+
this.selectedTime = moment().format();
|
|
22
|
+
this.selectedDate = moment().format();
|
|
23
|
+
this.loadInitial = false;
|
|
24
|
+
this.showTimePicker = false;
|
|
25
|
+
this.weeks = [0, 2, 4, 6, 8, 12, 16, 24];
|
|
26
|
+
this.showTime = false;
|
|
27
|
+
this.showWeeks = true;
|
|
28
|
+
this.onDateChange = new EventEmitter();
|
|
29
|
+
this.onChange = () => { };
|
|
30
|
+
this.onTouched = () => { };
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() { }
|
|
33
|
+
writeValue(value) {
|
|
34
|
+
this.value = value;
|
|
35
|
+
}
|
|
36
|
+
registerOnChange(fn) {
|
|
37
|
+
this.onChange = fn;
|
|
38
|
+
}
|
|
39
|
+
registerOnTouched(fn) { }
|
|
40
|
+
onTimeSelect($event) {
|
|
41
|
+
const setDate = moment(this.selectedDate);
|
|
42
|
+
const setTime = $event;
|
|
43
|
+
this.setDateTime(setDate, setTime);
|
|
44
|
+
}
|
|
45
|
+
onDateSelect($event) {
|
|
46
|
+
const setDate = moment($event.value);
|
|
47
|
+
const setTime = this.selectedTime;
|
|
48
|
+
const dateString = this.setDateTime(setDate, setTime);
|
|
49
|
+
const selectedDate = $event.value;
|
|
50
|
+
this.value = dateString;
|
|
51
|
+
}
|
|
52
|
+
toggleTimePicker(status) {
|
|
53
|
+
this.showTimePicker = status;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
setCurrentTime() {
|
|
57
|
+
const setDate = moment(this.selectedDate);
|
|
58
|
+
const currentTime = moment().format('HH:mm:ss');
|
|
59
|
+
this.setDateTime(setDate, currentTime);
|
|
60
|
+
}
|
|
61
|
+
weekSelect($event) {
|
|
62
|
+
const dateToUse = moment().format();
|
|
63
|
+
const nextWeekDate = moment(dateToUse).add($event.value, 'weeks');
|
|
64
|
+
const nextWeekTime = dateToUse;
|
|
65
|
+
this.setDateTime(nextWeekDate, nextWeekTime);
|
|
66
|
+
}
|
|
67
|
+
selectionChange($event) {
|
|
68
|
+
console.log('Week selected', $event);
|
|
69
|
+
}
|
|
70
|
+
getWeekPickerCssClass() {
|
|
71
|
+
if (this.showTime) {
|
|
72
|
+
return 'col-sm-2 form-group';
|
|
73
|
+
}
|
|
74
|
+
return 'col-sm-3 form-group';
|
|
75
|
+
}
|
|
76
|
+
getDatePickerCssClass() {
|
|
77
|
+
if (this.showTime && this.showWeeks) {
|
|
78
|
+
return 'col-sm-5 form-group';
|
|
79
|
+
}
|
|
80
|
+
if (this.showWeeks === true) {
|
|
81
|
+
return 'col-sm-9 form-group';
|
|
82
|
+
}
|
|
83
|
+
if (this.showTime === true) {
|
|
84
|
+
return 'col-sm-8 form-group';
|
|
85
|
+
}
|
|
86
|
+
return 'col-sm-12 form-group';
|
|
87
|
+
}
|
|
88
|
+
getTimePickerCssClass() {
|
|
89
|
+
if (this.showTime && this.showWeeks) {
|
|
90
|
+
return 'col-sm-5 form-group';
|
|
91
|
+
}
|
|
92
|
+
if (this.showWeeks === true) {
|
|
93
|
+
return 'col-sm-9 form-group';
|
|
94
|
+
}
|
|
95
|
+
return 'col-sm-4 form-group';
|
|
96
|
+
}
|
|
97
|
+
setDateTime(setDate, setTime) {
|
|
98
|
+
const newDate = moment(setDate).format('DD-MM-YYYY');
|
|
99
|
+
let newTime;
|
|
100
|
+
if (this.showTime) {
|
|
101
|
+
newTime = moment(setTime).format('HH:mm:ss');
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
newTime = '00:00:00';
|
|
105
|
+
}
|
|
106
|
+
const newDateTime = moment(newDate + '' + newTime, 'DD-MM-YYYY HH:mm:ss');
|
|
107
|
+
const dateTimeString = moment(newDateTime).format();
|
|
108
|
+
this.selectedDate = dateTimeString;
|
|
109
|
+
this.selectedTime = dateTimeString;
|
|
110
|
+
this.value = dateTimeString;
|
|
111
|
+
this.onChange(this.value);
|
|
112
|
+
return dateTimeString;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
NgxDateTimePickerComponent.decorators = [
|
|
116
|
+
{ type: Component, args: [{
|
|
117
|
+
selector: 'ngx-date-time-picker',
|
|
118
|
+
template: `<div>
|
|
119
|
+
<div class="row">
|
|
120
|
+
<div [class]="getDatePickerCssClass()">
|
|
121
|
+
<div class="input-group">
|
|
122
|
+
<input
|
|
123
|
+
matInput
|
|
124
|
+
[matDatepicker]="picker"
|
|
125
|
+
class="form-control"
|
|
126
|
+
[value]="value"
|
|
127
|
+
placeholder="Choose a date"
|
|
128
|
+
(dateChange)="onDateSelect($event)"
|
|
129
|
+
(click)="picker.open()"
|
|
130
|
+
readonly
|
|
131
|
+
/>
|
|
132
|
+
<mat-datepicker #picker disabled="false"></mat-datepicker>
|
|
133
|
+
<mat-datepicker-toggle
|
|
134
|
+
matSuffix
|
|
135
|
+
[for]="picker"
|
|
136
|
+
class="input-group-btn"
|
|
137
|
+
></mat-datepicker-toggle>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div [class]="getWeekPickerCssClass()" *ngIf="showWeeks">
|
|
141
|
+
<mat-select
|
|
142
|
+
placeholder="Select Weeks"
|
|
143
|
+
class="form-control"
|
|
144
|
+
name="weeks"
|
|
145
|
+
(selectionChange)="weekSelect($event)"
|
|
146
|
+
>
|
|
147
|
+
<mat-option *ngFor="let count of weeks" [value]="count">
|
|
148
|
+
{{ count }} Weeks
|
|
149
|
+
</mat-option>
|
|
150
|
+
</mat-select>
|
|
151
|
+
</div>
|
|
152
|
+
<div [class]="getTimePickerCssClass()" *ngIf="showTime">
|
|
153
|
+
<input
|
|
154
|
+
type="text"
|
|
155
|
+
class="form-control"
|
|
156
|
+
[value]="value | date: 'shortTime'"
|
|
157
|
+
(focus)="toggleTimePicker(true)"
|
|
158
|
+
readonly
|
|
159
|
+
placeholder="Select Time"
|
|
160
|
+
/>
|
|
161
|
+
<time-picker
|
|
162
|
+
*ngIf="showTimePicker"
|
|
163
|
+
[initTime]="value"
|
|
164
|
+
[use12Hour]="true"
|
|
165
|
+
(onSelectTime)="onTimeSelect($event)"
|
|
166
|
+
(onTimePickerCancel)="toggleTimePicker($event)"
|
|
167
|
+
></time-picker>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
`,
|
|
172
|
+
styles: [`#time-section{display:inline-block}#ngx-atp-time-picker,#ngx-mat-form-field{width:100%}.up{bottom:100%!important;top:auto!important}.time-btn{margin-top:-20px}`],
|
|
173
|
+
providers: [
|
|
174
|
+
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
175
|
+
{ provide: DateAdapter, useClass: MomentDateAdapter },
|
|
176
|
+
{
|
|
177
|
+
provide: NG_VALUE_ACCESSOR,
|
|
178
|
+
useExisting: forwardRef(() => NgxDateTimePickerComponent),
|
|
179
|
+
multi: true
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
},] },
|
|
183
|
+
];
|
|
184
|
+
NgxDateTimePickerComponent.propDecorators = {
|
|
185
|
+
weeks: [{ type: Input }],
|
|
186
|
+
modelValue: [{ type: Input }],
|
|
187
|
+
showTime: [{ type: Input }],
|
|
188
|
+
showWeeks: [{ type: Input }],
|
|
189
|
+
onDateChange: [{ type: Output }]
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL25neC1kYXRlLXRpbWUtcGlja2VyL25neC1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBRWxCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLElBQUk7S0FDaEI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsSUFBSTtRQUNmLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBcUVGLE1BQU07SUFuRU47UUFxRUUsMkNBQTJDO1FBQ3BDLGlCQUFZLEdBQUcsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsaUJBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNyQixVQUFLLEdBQWEsQ0FBQyxDQUFD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QUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDeEIsQ0FBQzs7O1lBcExGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcURYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLGlLQUFpSyxDQUFDO2dCQUMzSyxTQUFTLEVBQUU7b0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtvQkFDbkQsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtvQkFDckQ7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzt3QkFDekQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O29CQVNFLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudC9tb21lbnQnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBGb3JtQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5leHBvcnQgY29uc3QgTVlfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdMTCdcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ0xMJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWSdcbiAgfVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRhdGUtdGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZTogYDxkaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJnZXREYXRlUGlja2VyQ3NzQ2xhc3MoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBhIGRhdGVcIlxuICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIgZGlzYWJsZWQ9XCJmYWxzZVwiPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGVcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICBbZm9yXT1cInBpY2tlclwiXG4gICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIlxuICAgICAgICA+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtjbGFzc109XCJnZXRXZWVrUGlja2VyQ3NzQ2xhc3MoKVwiICpuZ0lmPVwic2hvd1dlZWtzXCI+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBXZWVrc1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgbmFtZT1cIndlZWtzXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ3ZWVrU2VsZWN0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY291bnQgb2Ygd2Vla3NcIiBbdmFsdWVdPVwiY291bnRcIj5cbiAgICAgICAgICB7eyBjb3VudCB9fSBXZWVrc1xuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiZ2V0VGltZVBpY2tlckNzc0NsYXNzKClcIiAqbmdJZj1cInNob3dUaW1lXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGRhdGU6ICdzaG9ydFRpbWUnXCJcbiAgICAgICAgKGZvY3VzKT1cInRvZ2dsZVRpbWVQaWNrZXIodHJ1ZSlcIlxuICAgICAgICByZWFkb25seVxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCJcbiAgICAgIC8+XG4gICAgICA8dGltZS1waWNrZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VGltZVBpY2tlclwiXG4gICAgICAgIFtpbml0VGltZV09XCJ2YWx1ZVwiXG4gICAgICAgIFt1c2UxMkhvdXJdPVwidHJ1ZVwiXG4gICAgICAgIChvblNlbGVjdFRpbWUpPVwib25UaW1lU2VsZWN0KCRldmVudClcIlxuICAgICAgICAob25UaW1lUGlja2VyQ2FuY2VsKT1cInRvZ2dsZVRpbWVQaWNrZXIoJGV2ZW50KVwiXG4gICAgICA+PC90aW1lLXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbmAsXG4gIHN0eWxlczogW2AjdGltZS1zZWN0aW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNuZ3gtYXRwLXRpbWUtcGlja2VyLCNuZ3gtbWF0LWZvcm0tZmllbGR7d2lkdGg6MTAwJX0udXB7Ym90dG9tOjEwMCUhaW1wb3J0YW50O3RvcDphdXRvIWltcG9ydGFudH0udGltZS1idG57bWFyZ2luLXRvcDotMjBweH1gXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfRk9STUFUUyB9LFxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlciB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmd4RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4RGF0ZVRpbWVQaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLy8gcHVibGljIGRhdGUgPSBuZXcgRm9ybUNvbnRyb2wobW9tZW50KCkpO1xuICBwdWJsaWMgc2VsZWN0ZWRUaW1lID0gbW9tZW50KCkuZm9ybWF0KCk7XG4gIHB1YmxpYyBzZWxlY3RlZERhdGUgPSBtb21lbnQoKS5mb3JtYXQoKTtcbiAgcHVibGljIGxvYWRJbml0aWFsID0gZmFsc2U7XG4gIHB1YmxpYyB2YWx1ZTtcbiAgcHVibGljIHNob3dUaW1lUGlja2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdlZWtzOiBudW1iZXJbXSA9IFswLCAyLCA0LCA2LCA4LCAxMiwgMTYsIDI0XTtcbiAgQElucHV0KCkgbW9kZWxWYWx1ZTogYW55O1xuICBASW5wdXQoKSBzaG93VGltZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93V2Vla3MgPSB0cnVlO1xuICBAT3V0cHV0KCkgb25EYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHB1YmxpYyBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgbmdPbkluaXQoKSB7fVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHt9XG5cbiAgcHVibGljIG9uVGltZVNlbGVjdCgkZXZlbnQpIHtcbiAgICBjb25zdCBzZXREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBjb25zdCBzZXRUaW1lID0gJGV2ZW50O1xuICAgIHRoaXMuc2V0RGF0ZVRpbWUoc2V0RGF0ZSwgc2V0VGltZSk7XG4gIH1cblxuICBwdWJsaWMgb25EYXRlU2VsZWN0KCRldmVudCkge1xuICAgIGNvbnN0IHNldERhdGUgPSBtb21lbnQoJGV2ZW50LnZhbHVlKTtcbiAgICBjb25zdCBzZXRUaW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XG4gICAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuc2V0RGF0ZVRpbWUoc2V0RGF0ZSwgc2V0VGltZSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSAkZXZlbnQudmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IGRhdGVTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVGltZVBpY2tlcihzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUaW1lUGlja2VyID0gc3RhdHVzO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJyZW50VGltZSgpIHtcbiAgICBjb25zdCBzZXREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG1vbWVudCgpLmZvcm1hdCgnSEg6bW06c3MnKTtcbiAgICB0aGlzLnNldERhdGVUaW1lKHNldERhdGUsIGN1cnJlbnRUaW1lKTtcbiAgfVxuXG4gIHB1YmxpYyB3ZWVrU2VsZWN0KCRldmVudCkge1xuICAgIGNvbnN0IGRhdGVUb1VzZSA9IG1vbWVudCgpLmZvcm1hdCgpO1xuICAgIGNvbnN0IG5leHRXZWVrRGF0ZSA9IG1vbWVudChkYXRlVG9Vc2UpLmFkZCgkZXZlbnQudmFsdWUsICd3ZWVrcycpO1xuICAgIGNvbnN0IG5leHRXZWVrVGltZSA9IGRhdGVUb1VzZTtcbiAgICB0aGlzLnNldERhdGVUaW1lKG5leHRXZWVrRGF0ZSwgbmV4dFdlZWtUaW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KSB7XG4gICAgY29uc29sZS5sb2coJ1dlZWsgc2VsZWN0ZWQnLCAkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldFdlZWtQaWNrZXJDc3NDbGFzcygpIHtcbiAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgcmV0dXJuICdjb2wtc20tMiBmb3JtLWdyb3VwJztcbiAgICB9XG4gICAgcmV0dXJuICdjb2wtc20tMyBmb3JtLWdyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRlUGlja2VyQ3NzQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1RpbWUgJiYgdGhpcy5zaG93V2Vla3MpIHtcbiAgICAgIHJldHVybiAnY29sLXNtLTUgZm9ybS1ncm91cCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1dlZWtzID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS05IGZvcm0tZ3JvdXAnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dUaW1lID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS04IGZvcm0tZ3JvdXAnO1xuICAgIH1cbiAgICByZXR1cm4gJ2NvbC1zbS0xMiBmb3JtLWdyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRUaW1lUGlja2VyQ3NzQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1RpbWUgJiYgdGhpcy5zaG93V2Vla3MpIHtcbiAgICAgIHJldHVybiAnY29sLXNtLTUgZm9ybS1ncm91cCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1dlZWtzID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS05IGZvcm0tZ3JvdXAnO1xuICAgIH1cbiAgICByZXR1cm4gJ2NvbC1zbS00IGZvcm0tZ3JvdXAnO1xuICB9XG5cbiAgcHVibGljIHNldERhdGVUaW1lKHNldERhdGUsIHNldFRpbWUpIHtcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHNldERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xuICAgIGxldCBuZXdUaW1lO1xuICAgIGlmICh0aGlzLnNob3dUaW1lKSB7XG4gICAgICBuZXdUaW1lID0gbW9tZW50KHNldFRpbWUpLmZvcm1hdCgnSEg6bW06c3MnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VGltZSA9ICcwMDowMDowMCc7XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGVUaW1lID0gbW9tZW50KG5ld0RhdGUgKyAnJyArIG5ld1RpbWUsICdERC1NTS1ZWVlZIEhIOm1tOnNzJyk7XG4gICAgY29uc3QgZGF0ZVRpbWVTdHJpbmcgPSBtb21lbnQobmV3RGF0ZVRpbWUpLmZvcm1hdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZVRpbWVTdHJpbmc7XG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSBkYXRlVGltZVN0cmluZztcbiAgICB0aGlzLnZhbHVlID0gZGF0ZVRpbWVTdHJpbmc7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgIHJldHVybiBkYXRlVGltZVN0cmluZztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* date-time-picker.module
|
|
3
|
+
*/
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
8
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
9
|
+
import { MatNativeDateModule, MatInputModule } from '@angular/material';
|
|
10
|
+
import { NgxDateTimePickerComponent } from './ngx-date-time-picker.component';
|
|
11
|
+
// import { AmazingTimePickerModule } from 'amazing-time-picker';
|
|
12
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
13
|
+
import { DateTimePickerModule } from '../date-time-picker/date-time-picker.module';
|
|
14
|
+
export class NgxDateTimePickerModule {
|
|
15
|
+
}
|
|
16
|
+
NgxDateTimePickerModule.decorators = [
|
|
17
|
+
{ type: NgModule, args: [{
|
|
18
|
+
imports: [
|
|
19
|
+
CommonModule,
|
|
20
|
+
FormsModule,
|
|
21
|
+
ReactiveFormsModule,
|
|
22
|
+
MatDatepickerModule,
|
|
23
|
+
MatFormFieldModule,
|
|
24
|
+
MatNativeDateModule,
|
|
25
|
+
MatInputModule,
|
|
26
|
+
DateTimePickerModule,
|
|
27
|
+
// AmazingTimePickerModule,
|
|
28
|
+
MatSelectModule
|
|
29
|
+
],
|
|
30
|
+
declarations: [NgxDateTimePickerComponent],
|
|
31
|
+
exports: [
|
|
32
|
+
MatDatepickerModule,
|
|
33
|
+
MatFormFieldModule,
|
|
34
|
+
MatNativeDateModule,
|
|
35
|
+
MatInputModule,
|
|
36
|
+
NgxDateTimePickerComponent
|
|
37
|
+
],
|
|
38
|
+
providers: []
|
|
39
|
+
},] },
|
|
40
|
+
];
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGUtdGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL25neC1kYXRlLXRpbWUtcGlja2VyL25neC1kYXRlLXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQXlCbkYsTUFBTTs7O1lBdkJMLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxvQkFBb0I7b0JBQ3BCLDJCQUEyQjtvQkFDM0IsZUFBZTtpQkFDaEI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQzFDLE9BQU8sRUFBRTtvQkFDUCxtQkFBbUI7b0JBQ25CLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGF0ZS10aW1lLXBpY2tlci5tb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE5neERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xuLy8gaW1wb3J0IHsgQW1hemluZ1RpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdhbWF6aW5nLXRpbWUtcGlja2VyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJy4uL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBEYXRlVGltZVBpY2tlck1vZHVsZSxcbiAgICAvLyBBbWF6aW5nVGltZVBpY2tlck1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4RGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBOZ3hEYXRlVGltZVBpY2tlckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5neERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Component, Input, forwardRef, ViewChild, Output, EventEmitter, Renderer2 } from '@angular/core';
|
|
2
|
+
import { SelectComponent } from '../../components/select/select.component';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import * as _ from 'lodash';
|
|
5
|
+
export class RemoteSelectComponent {
|
|
6
|
+
constructor(renderer) {
|
|
7
|
+
this.renderer = renderer;
|
|
8
|
+
// @Input() dataSource: DataSource;
|
|
9
|
+
this.placeholder = 'Search...';
|
|
10
|
+
this.items = [];
|
|
11
|
+
this.value = [];
|
|
12
|
+
this.loading = false;
|
|
13
|
+
this.searchText = '';
|
|
14
|
+
this.notFoundMsg = 'match no found';
|
|
15
|
+
this.done = new EventEmitter();
|
|
16
|
+
this.characters = [];
|
|
17
|
+
// the method set in registerOnChange, it is just
|
|
18
|
+
// a placeholder for a method that takes one parameter,
|
|
19
|
+
// we use it to emit changes back to the form
|
|
20
|
+
this.propagateChange = (change) => { };
|
|
21
|
+
}
|
|
22
|
+
get dataSource() {
|
|
23
|
+
return this._dataSource;
|
|
24
|
+
}
|
|
25
|
+
set dataSource(v) {
|
|
26
|
+
this._dataSource = v;
|
|
27
|
+
if (this._dataSource && this._dataSource.dataFromSourceChanged) {
|
|
28
|
+
this.subscribeToDataSourceDataChanges();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() { }
|
|
32
|
+
subscribeToDataSourceDataChanges() {
|
|
33
|
+
this._dataSource.dataFromSourceChanged.subscribe((results) => {
|
|
34
|
+
if (results.length > 0) {
|
|
35
|
+
this.items = results;
|
|
36
|
+
this.notFoundMsg = '';
|
|
37
|
+
// console.log('updating items', results, this.selectC.value);
|
|
38
|
+
this.restoreSelectedValue(this.selectC.value, results);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.notFoundMsg = 'Not found';
|
|
42
|
+
this.items = [];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
typed(value) {
|
|
47
|
+
this.search(value);
|
|
48
|
+
}
|
|
49
|
+
search(value) {
|
|
50
|
+
if (this.dataSource) {
|
|
51
|
+
this.searchText = value;
|
|
52
|
+
this.notFoundMsg = 'Loading.........';
|
|
53
|
+
this.dataSource.searchOptions(value).subscribe((result) => {
|
|
54
|
+
if (result.length > 0) {
|
|
55
|
+
const existing = _.map(this.value, _.clone);
|
|
56
|
+
const concat = existing.concat(result);
|
|
57
|
+
this.items = _.uniqBy(concat, 'value');
|
|
58
|
+
}
|
|
59
|
+
this.notFoundMsg = '';
|
|
60
|
+
}, (error) => {
|
|
61
|
+
this.notFoundMsg = 'Errored';
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
restoreSelectedValue(value, results) {
|
|
66
|
+
let found = false;
|
|
67
|
+
_.each(results, (item) => {
|
|
68
|
+
if (item.value === value) {
|
|
69
|
+
setTimeout(() => {
|
|
70
|
+
this.selectC.select(value);
|
|
71
|
+
this.selectC.value = value;
|
|
72
|
+
});
|
|
73
|
+
found = true;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
if (!found) {
|
|
77
|
+
// console.log('not found after loading items', value, results);
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
this.selectC.select('');
|
|
80
|
+
this.selectC.value = '';
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
canSearch(searchText) {
|
|
85
|
+
return ((searchText.length - this.searchText.length >= 2 ||
|
|
86
|
+
(searchText.length - this.searchText.length <= 2 &&
|
|
87
|
+
searchText !== '')) &&
|
|
88
|
+
this.loading === false);
|
|
89
|
+
}
|
|
90
|
+
// this is the initial value set to the component
|
|
91
|
+
writeValue(value) {
|
|
92
|
+
if (value && value !== '') {
|
|
93
|
+
if (this.dataSource) {
|
|
94
|
+
this.loading = true;
|
|
95
|
+
this.dataSource.resolveSelectedValue(value).subscribe((result) => {
|
|
96
|
+
this.items = [result];
|
|
97
|
+
setTimeout(() => {
|
|
98
|
+
this.selectC.select(result.value);
|
|
99
|
+
this.selectC.value = result.value;
|
|
100
|
+
});
|
|
101
|
+
this.loading = false;
|
|
102
|
+
}, (error) => {
|
|
103
|
+
this.loading = false;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// registers 'fn' that will be fired when changes are made
|
|
109
|
+
// this is how we emit the changes back to the form
|
|
110
|
+
registerOnChange(fn) {
|
|
111
|
+
this.propagateChange = fn;
|
|
112
|
+
}
|
|
113
|
+
// not used, used for touch input
|
|
114
|
+
registerOnTouched() { }
|
|
115
|
+
// change events from the textarea
|
|
116
|
+
onChange(event) {
|
|
117
|
+
this.propagateChange(event.id);
|
|
118
|
+
// .....
|
|
119
|
+
// update the form
|
|
120
|
+
// this.propagateChange(this.data);
|
|
121
|
+
}
|
|
122
|
+
removed(event) {
|
|
123
|
+
console.log('Removed');
|
|
124
|
+
this.propagateChange('');
|
|
125
|
+
}
|
|
126
|
+
selected(event) {
|
|
127
|
+
this.propagateChange(event.value);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
RemoteSelectComponent.decorators = [
|
|
131
|
+
{ type: Component, args: [{
|
|
132
|
+
selector: 'remote-select',
|
|
133
|
+
template: `<div>
|
|
134
|
+
<ng-select
|
|
135
|
+
[id]="componentID"
|
|
136
|
+
[noFilter]="0"
|
|
137
|
+
(selected)="selected($event)"
|
|
138
|
+
(deselected)="removed($event)"
|
|
139
|
+
[options]="items"
|
|
140
|
+
[allowClear]="true"
|
|
141
|
+
[placeholder]="placeholder"
|
|
142
|
+
[notFoundMsg]="notFoundMsg"
|
|
143
|
+
(typed)="typed($event)"
|
|
144
|
+
tabindex="0"
|
|
145
|
+
>
|
|
146
|
+
</ng-select>
|
|
147
|
+
<div *ngIf="loading">resolving....</div>
|
|
148
|
+
</div>
|
|
149
|
+
`,
|
|
150
|
+
providers: [
|
|
151
|
+
{
|
|
152
|
+
provide: NG_VALUE_ACCESSOR,
|
|
153
|
+
useExisting: forwardRef(() => RemoteSelectComponent),
|
|
154
|
+
multi: true
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},] },
|
|
158
|
+
];
|
|
159
|
+
RemoteSelectComponent.ctorParameters = () => [
|
|
160
|
+
{ type: Renderer2 }
|
|
161
|
+
];
|
|
162
|
+
RemoteSelectComponent.propDecorators = {
|
|
163
|
+
placeholder: [{ type: Input }],
|
|
164
|
+
componentID: [{ type: Input }],
|
|
165
|
+
done: [{ type: Output }],
|
|
166
|
+
selectC: [{ type: ViewChild, args: [SelectComponent,] }],
|
|
167
|
+
dataSource: [{ type: Input }]
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1wYXRoLWtlbnlhL25neC1vcGVubXJzLWZvcm1lbnRyeS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcmVtb3RlLXNlbGVjdC9yZW1vdGUtc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUE0QjVCLE1BQU07SUEwQkosWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXpCdkMsbUNBQW1DO1FBQzFCLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBRW5DLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsZ0JBQWdCLENBQUM7UUFDckIsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTVELGVBQVUsR0FBRyxFQUFFLENBQUM7UUFpSWhCLGlEQUFpRDtRQUNqRCx1REFBdUQ7UUFDdkQsNkNBQTZDO1FBQ3JDLG9CQUFlLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQXJISixDQUFDO0lBWDNDLElBQ1csVUFBVTtRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsQ0FB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TixTQUFTLFNBQUMsZUFBZTt5QkFHekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLXNvdXJjZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyZW1vdGUtc2VsZWN0JyxcbiAgdGVtcGxhdGU6IGA8ZGl2PlxuICA8bmctc2VsZWN0XG4gICAgW2lkXT1cImNvbXBvbmVudElEXCJcbiAgICBbbm9GaWx0ZXJdPVwiMFwiXG4gICAgKHNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIlxuICAgIChkZXNlbGVjdGVkKT1cInJlbW92ZWQoJGV2ZW50KVwiXG4gICAgW29wdGlvbnNdPVwiaXRlbXNcIlxuICAgIFthbGxvd0NsZWFyXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW25vdEZvdW5kTXNnXT1cIm5vdEZvdW5kTXNnXCJcbiAgICAodHlwZWQpPVwidHlwZWQoJGV2ZW50KVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgPlxuICA8L25nLXNlbGVjdD5cbiAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIj5yZXNvbHZpbmcuLi4uPC9kaXY+XG48L2Rpdj5cbmAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVtb3RlU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvLyBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdTZWFyY2guLi4nO1xuICBASW5wdXQoKSBjb21wb25lbnRJRDogc3RyaW5nO1xuICBpdGVtcyA9IFtdO1xuICB2YWx1ZSA9IFtdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIHNlYXJjaFRleHQgPSAnJztcbiAgbm90Rm91bmRNc2cgPSAnbWF0Y2ggbm8gZm91bmQnO1xuICBAT3V0cHV0KCkgZG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjaGFyYWN0ZXJzID0gW107XG4gIEBWaWV3Q2hpbGQoU2VsZWN0Q29tcG9uZW50KSBwcml2YXRlIHNlbGVjdEM6IFNlbGVjdENvbXBvbmVudDtcblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cbiAgcHVibGljIHNldCBkYXRhU291cmNlKHY6IERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcbiAgICBpZiAodGhpcy5fZGF0YVNvdXJjZSAmJiB0aGlzLl9kYXRhU291cmNlLmRhdGFGcm9tU291cmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0RhdGFTb3VyY2VEYXRhQ2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgc3Vic2NyaWJlVG9EYXRhU291cmNlRGF0YUNoYW5nZXMoKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhRnJvbVNvdXJjZUNoYW5nZWQuc3Vic2NyaWJlKChyZXN1bHRzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSByZXN1bHRzO1xuICAgICAgICB0aGlzLm5vdEZvdW5kTXNnID0gJyc7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1cGRhdGluZyBpdGVtcycsIHJlc3VsdHMsIHRoaXMuc2VsZWN0Qy52YWx1ZSk7XG4gICAgICAgIHRoaXMucmVzdG9yZVNlbGVjdGVkVmFsdWUodGhpcy5zZWxlY3RDLnZhbHVlLCByZXN1bHRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm90Rm91bmRNc2cgPSAnTm90IGZvdW5kJztcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHR5cGVkKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaCh2YWx1ZSk7XG4gIH1cbiAgc2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSB2YWx1ZTtcbiAgICAgIHRoaXMubm90Rm91bmRNc2cgPSAnTG9hZGluZy4uLi4uLi4uLic7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VhcmNoT3B0aW9ucyh2YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IF8ubWFwKHRoaXMudmFsdWUsIF8uY2xvbmUpO1xuICAgICAgICAgICAgY29uc3QgY29uY2F0ID0gZXhpc3RpbmcuY29uY2F0KHJlc3VsdCk7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gXy51bmlxQnkoY29uY2F0LCAndmFsdWUnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3RGb3VuZE1zZyA9ICcnO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdEZvdW5kTXNnID0gJ0Vycm9yZWQnO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJlc3RvcmVTZWxlY3RlZFZhbHVlKHZhbHVlLCByZXN1bHRzKSB7XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgXy5lYWNoKHJlc3VsdHMsIChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RDLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RDLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgLy8gY29uc29sZS5sb2coJ25vdCBmb3VuZCBhZnRlciBsb2FkaW5nIGl0ZW1zJywgdmFsdWUsIHJlc3VsdHMpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0Qy5zZWxlY3QoJycpO1xuICAgICAgICB0aGlzLnNlbGVjdEMudmFsdWUgPSAnJztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNhblNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHNlYXJjaFRleHQubGVuZ3RoIC0gdGhpcy5zZWFyY2hUZXh0Lmxlbmd0aCA+PSAyIHx8XG4gICAgICAgIChzZWFyY2hUZXh0Lmxlbmd0aCAtIHRoaXMuc2VhcmNoVGV4dC5sZW5ndGggPD0gMiAmJlxuICAgICAgICAgIHNlYXJjaFRleHQgIT09ICcnKSkgJiZcbiAgICAgIHRoaXMubG9hZGluZyA9PT0gZmFsc2VcbiAgICApO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnJykge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVzb2x2ZVNlbGVjdGVkVmFsdWUodmFsdWUpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbcmVzdWx0XTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdEMuc2VsZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0Qy52YWx1ZSA9IHJlc3VsdC52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxuICAvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cbiAgLy8gY2hhbmdlIGV2ZW50cyBmcm9tIHRoZSB0ZXh0YXJlYVxuICBvbkNoYW5nZShldmVudCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGV2ZW50LmlkKTtcbiAgICAvLyAuLi4uLlxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIC8vIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuZGF0YSk7XG4gIH1cbiAgcmVtb3ZlZChldmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdSZW1vdmVkJyk7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoJycpO1xuICB9XG4gIHNlbGVjdGVkKGV2ZW50KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgLy8gdGhlIG1ldGhvZCBzZXQgaW4gcmVnaXN0ZXJPbkNoYW5nZSwgaXQgaXMganVzdFxuICAvLyBhIHBsYWNlaG9sZGVyIGZvciBhIG1ldGhvZCB0aGF0IHRha2VzIG9uZSBwYXJhbWV0ZXIsXG4gIC8vIHdlIHVzZSBpdCB0byBlbWl0IGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChjaGFuZ2U6IGFueSkgPT4ge307XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
// import { SelectModule } from 'ng2-select/ng2-select';
|
|
5
|
+
import { SelectModule } from '../../components/select/select.module';
|
|
6
|
+
import { RemoteSelectComponent } from './remote-select.component';
|
|
7
|
+
export class RemoteSelectModule {
|
|
8
|
+
}
|
|
9
|
+
RemoteSelectModule.decorators = [
|
|
10
|
+
{ type: NgModule, args: [{
|
|
11
|
+
imports: [CommonModule, SelectModule, FormsModule],
|
|
12
|
+
exports: [RemoteSelectComponent],
|
|
13
|
+
declarations: [RemoteSelectComponent],
|
|
14
|
+
providers: []
|
|
15
|
+
},] },
|
|
16
|
+
];
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLXNlbGVjdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1wYXRoLWtlbnlhL25neC1vcGVubXJzLWZvcm1lbnRyeS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcmVtb3RlLXNlbGVjdC9yZW1vdGUtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0Msd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVFsRSxNQUFNOzs7WUFOTCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7Z0JBQ2xELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUNoQyxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vIGltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ25nMi1zZWxlY3QvbmcyLXNlbGVjdCc7XG5pbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcbmltcG9ydCB7IFJlbW90ZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vcmVtb3RlLXNlbGVjdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWxlY3RNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
|