@openmrs/ngx-formentry 3.0.1-pre.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstract-controls-extension/afe-control-type.d.ts +6 -0
- package/abstract-controls-extension/afe-form-array.d.ts +43 -0
- package/abstract-controls-extension/afe-form-control.d.ts +46 -0
- package/abstract-controls-extension/afe-form-group.d.ts +38 -0
- package/abstract-controls-extension/control-extensions.d.ts +4 -0
- package/abstract-controls-extension/index.d.ts +4 -0
- package/abstract-controls-extension/value-change.listener.d.ts +4 -0
- package/bundles/openmrs-ngx-formentry.umd.js +15020 -0
- package/bundles/openmrs-ngx-formentry.umd.js.map +1 -0
- package/bundles/openmrs-ngx-formentry.umd.min.js +2 -0
- package/bundles/openmrs-ngx-formentry.umd.min.js.map +1 -0
- package/change-tracking/control-relation.d.ts +12 -0
- package/change-tracking/control-relations.d.ts +12 -0
- package/components/afe-ng-select.component.d.ts +26 -0
- package/components/appointments-overview/appointments-overview.component.d.ts +15 -0
- package/components/check-box/checkbox.component.d.ts +16 -0
- package/components/check-box/checkbox.module.d.ts +2 -0
- package/components/custom-component-wrapper/custom-component-wrapper..module.d.ts +2 -0
- package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +11 -0
- package/components/custom-control-wrapper/custom-control-wrapper..module.d.ts +2 -0
- package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +25 -0
- package/components/date-time-picker/date-picker/date-picker.component.d.ts +42 -0
- package/components/date-time-picker/date-time-picker.component.d.ts +26 -0
- package/components/date-time-picker/date-time-picker.module.d.ts +5 -0
- package/components/date-time-picker/picker-modal/modal.component.d.ts +10 -0
- package/components/date-time-picker/pipes/moment.pipe.d.ts +8 -0
- package/components/date-time-picker/time-picker/time-picker.component.d.ts +29 -0
- package/components/file-upload/file-upload.component.d.ts +26 -0
- package/components/file-upload/file-upload.module.d.ts +2 -0
- package/components/file-upload/secure.pipe.d.ts +23 -0
- package/components/input/input.directive.d.ts +28 -0
- package/components/input/input.module.d.ts +2 -0
- package/components/input/label.component.d.ts +87 -0
- package/components/input/text-area.directive.d.ts +21 -0
- package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +17 -0
- package/components/ngx-datetime-picker/ngx-datetime-picker.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.d.ts +189 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.d.ts +15 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.d.ts +73 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.d.ts +7 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +77 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +139 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +109 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +120 -0
- package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +141 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +90 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.d.ts +122 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +152 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.d.ts +51 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +21 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.d.ts +8 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +157 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time.class.d.ts +86 -0
- package/components/ngx-pick-datetime/lib/date-time/date-time.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.d.ts +7 -0
- package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +35 -0
- package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +129 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-config.class.d.ts +93 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-container.component.d.ts +56 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.d.ts +49 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog.module.d.ts +5 -0
- package/components/ngx-pick-datetime/lib/dialog/dialog.service.d.ts +70 -0
- package/components/ngx-pick-datetime/lib/utils/index.d.ts +4 -0
- package/components/ngx-pick-datetime/lib/utils/object.utils.d.ts +11 -0
- package/components/ngx-remote-select/ngx-remote-select.component.d.ts +37 -0
- package/components/ngx-remote-select/ngx-remote-select.module.d.ts +2 -0
- package/components/ngx-tabset/components/tab-set.d.ts +16 -0
- package/components/ngx-tabset/components/tab.d.ts +10 -0
- package/components/ngx-tabset/directives/hover-class.directive.d.ts +8 -0
- package/components/ngx-tabset/modules/ngx-tabset.module.d.ts +11 -0
- package/components/number-input/number-input.component.d.ts +148 -0
- package/components/number-input/number-input.module.d.ts +2 -0
- package/components/select/optgroup.directive.d.ts +3 -0
- package/components/select/option.directive.d.ts +3 -0
- package/components/select/select.component.d.ts +112 -0
- package/components/select/select.module.d.ts +2 -0
- package/esm2015/abstract-controls-extension/afe-control-type.js +8 -0
- package/esm2015/abstract-controls-extension/afe-form-array.js +85 -0
- package/esm2015/abstract-controls-extension/afe-form-control.js +88 -0
- package/esm2015/abstract-controls-extension/afe-form-group.js +61 -0
- package/esm2015/abstract-controls-extension/control-extensions.js +5 -0
- package/esm2015/abstract-controls-extension/index.js +5 -0
- package/esm2015/abstract-controls-extension/value-change.listener.js +2 -0
- package/esm2015/change-tracking/control-relation.js +44 -0
- package/esm2015/change-tracking/control-relations.js +32 -0
- package/esm2015/components/afe-ng-select.component.js +87 -0
- package/esm2015/components/appointments-overview/appointments-overview.component.js +119 -0
- package/esm2015/components/check-box/checkbox.component.js +77 -0
- package/esm2015/components/check-box/checkbox.module.js +14 -0
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper..module.js +16 -0
- package/esm2015/components/custom-component-wrapper/custom-component-wrapper.component.js +18 -0
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper..module.js +17 -0
- package/esm2015/components/custom-control-wrapper/custom-control-wrapper.component.js +63 -0
- package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +182 -0
- package/esm2015/components/date-time-picker/date-time-picker.component.js +104 -0
- package/esm2015/components/date-time-picker/date-time-picker.module.js +34 -0
- package/esm2015/components/date-time-picker/picker-modal/modal.component.js +30 -0
- package/esm2015/components/date-time-picker/pipes/moment.pipe.js +13 -0
- package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +114 -0
- package/esm2015/components/file-upload/file-upload.component.js +110 -0
- package/esm2015/components/file-upload/file-upload.module.js +24 -0
- package/esm2015/components/file-upload/secure.pipe.js +102 -0
- package/esm2015/components/input/input.directive.js +55 -0
- package/esm2015/components/input/input.module.js +18 -0
- package/esm2015/components/input/label.component.js +177 -0
- package/esm2015/components/input/text-area.directive.js +40 -0
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +60 -0
- package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +26 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.js +114 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.js +7 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +344 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.js +16 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +30 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +149 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +429 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +367 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +359 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +334 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +251 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +380 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +590 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +60 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +71 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.js +21 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +512 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +153 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +58 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +24 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +85 -0
- package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +292 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-config.class.js +56 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +208 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.js +119 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +22 -0
- package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +222 -0
- package/esm2015/components/ngx-pick-datetime/lib/utils/index.js +5 -0
- package/esm2015/components/ngx-pick-datetime/lib/utils/object.utils.js +26 -0
- package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +121 -0
- package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +16 -0
- package/esm2015/components/ngx-tabset/components/tab-set.js +67 -0
- package/esm2015/components/ngx-tabset/components/tab.js +35 -0
- package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +26 -0
- package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +33 -0
- package/esm2015/components/number-input/number-input.component.js +203 -0
- package/esm2015/components/number-input/number-input.module.js +15 -0
- package/esm2015/components/select/optgroup.directive.js +17 -0
- package/esm2015/components/select/option.directive.js +17 -0
- package/esm2015/components/select/select.component.js +293 -0
- package/esm2015/components/select/select.module.js +18 -0
- package/esm2015/form-entry/control-alerts/alert-helpers.js +40 -0
- package/esm2015/form-entry/control-alerts/can-generate-alert.js +2 -0
- package/esm2015/form-entry/control-calculators/can-calculate.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/can-disable.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/can-hide.js +2 -0
- package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +33 -0
- package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +40 -0
- package/esm2015/form-entry/data-sources/data-sources.js +30 -0
- package/esm2015/form-entry/data-sources/dummy-data-source.js +104 -0
- package/esm2015/form-entry/directives/collapse-animations.js +11 -0
- package/esm2015/form-entry/directives/collapse.directive.js +157 -0
- package/esm2015/form-entry/directives/historical-value-directive.js +66 -0
- package/esm2015/form-entry/error-renderer/error-renderer.component.js +55 -0
- package/esm2015/form-entry/expression-runner/expression-runner.js +168 -0
- package/esm2015/form-entry/form-entry.module.js +107 -0
- package/esm2015/form-entry/form-factory/control-relations.factory.js +236 -0
- package/esm2015/form-entry/form-factory/form-control.service.js +118 -0
- package/esm2015/form-entry/form-factory/form-node.js +81 -0
- package/esm2015/form-entry/form-factory/form.factory.js +132 -0
- package/esm2015/form-entry/form-factory/form.js +193 -0
- package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +66 -0
- package/esm2015/form-entry/form-factory/question.factory.js +864 -0
- package/esm2015/form-entry/form-factory/show-messages.factory.js +30 -0
- package/esm2015/form-entry/form-factory/validation.factory.js +145 -0
- package/esm2015/form-entry/form-renderer/form-renderer.component.css.js +182 -0
- package/esm2015/form-entry/form-renderer/form-renderer.component.js +231 -0
- package/esm2015/form-entry/helpers/historical-expression-helper-service.js +38 -0
- package/esm2015/form-entry/helpers/historical-field-helper-service.js +36 -0
- package/esm2015/form-entry/helpers/js-expression-helper.js +238 -0
- package/esm2015/form-entry/pipes/time-ago.pipe.js +107 -0
- package/esm2015/form-entry/question-models/checkbox.model.js +11 -0
- package/esm2015/form-entry/question-models/conditional-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/custom-control-question.model.js +10 -0
- package/esm2015/form-entry/question-models/date-question.js +12 -0
- package/esm2015/form-entry/question-models/date-validation.model.js +10 -0
- package/esm2015/form-entry/question-models/file-upload-question.js +13 -0
- package/esm2015/form-entry/question-models/group-question.js +12 -0
- package/esm2015/form-entry/question-models/interfaces/base-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/data-source.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/date-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/group-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/nested-questions.js +7 -0
- package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/select-option.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/select-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/text-question-options.js +2 -0
- package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +2 -0
- package/esm2015/form-entry/question-models/js-expression-validation.model.js +8 -0
- package/esm2015/form-entry/question-models/max-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/min-validation.model.js +9 -0
- package/esm2015/form-entry/question-models/models.js +12 -0
- package/esm2015/form-entry/question-models/multi-select-question.js +11 -0
- package/esm2015/form-entry/question-models/pair.model.js +7 -0
- package/esm2015/form-entry/question-models/question-base.js +25 -0
- package/esm2015/form-entry/question-models/rendering-type.js +9 -0
- package/esm2015/form-entry/question-models/repeating-question.js +11 -0
- package/esm2015/form-entry/question-models/select-option.js +7 -0
- package/esm2015/form-entry/question-models/select-question.js +12 -0
- package/esm2015/form-entry/question-models/test-order-question.js +15 -0
- package/esm2015/form-entry/question-models/text-area-input-question.js +13 -0
- package/esm2015/form-entry/question-models/text-input-question.js +10 -0
- package/esm2015/form-entry/question-models/ui-select-question.js +11 -0
- package/esm2015/form-entry/question-models/validation.model.js +7 -0
- package/esm2015/form-entry/services/debug-mode.service.js +22 -0
- package/esm2015/form-entry/services/form-errors.service.js +18 -0
- package/esm2015/form-entry/services/form-schema-compiler.service.js +246 -0
- package/esm2015/form-entry/services/historical-encounter-data.service.js +170 -0
- package/esm2015/form-entry/utils/messages.js +12 -0
- package/esm2015/form-entry/validators/conditional-answered.validator.js +46 -0
- package/esm2015/form-entry/validators/conditional-required.validator.js +40 -0
- package/esm2015/form-entry/validators/date.validator.js +18 -0
- package/esm2015/form-entry/validators/future-date-restriction.validator.js +21 -0
- package/esm2015/form-entry/validators/js-expression.validator.js +26 -0
- package/esm2015/form-entry/validators/max-date.validator.js +23 -0
- package/esm2015/form-entry/validators/max.validator.js +17 -0
- package/esm2015/form-entry/validators/min-date.validator.js +23 -0
- package/esm2015/form-entry/validators/min.validator.js +17 -0
- package/esm2015/form-entry/validators/required.validator.js +11 -0
- package/esm2015/form-entry/validators/validations.js +5 -0
- package/esm2015/form-entry/value-adapters/encounter.adapter.js +172 -0
- package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +496 -0
- package/esm2015/form-entry/value-adapters/obs.adapter.js +545 -0
- package/esm2015/form-entry/value-adapters/order.adapter.js +186 -0
- package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +87 -0
- package/esm2015/form-entry/value-adapters/value.adapter.js +2 -0
- package/esm2015/lib/index.js +49 -0
- package/esm2015/openmrs-ngx-formentry.js +76 -0
- package/esm2015/public_api.js +2 -0
- package/esm2015/shared.module.js +15 -0
- package/fesm2015/openmrs-ngx-formentry.js +13461 -0
- package/fesm2015/openmrs-ngx-formentry.js.map +1 -0
- package/form-entry/control-alerts/alert-helpers.d.ts +9 -0
- package/form-entry/control-alerts/can-generate-alert.d.ts +18 -0
- package/form-entry/control-calculators/can-calculate.d.ts +5 -0
- package/form-entry/control-hiders-disablers/can-disable.d.ts +19 -0
- package/form-entry/control-hiders-disablers/can-hide.d.ts +20 -0
- package/form-entry/control-hiders-disablers/disabler-helper.d.ts +7 -0
- package/form-entry/control-hiders-disablers/hider-helpers.d.ts +9 -0
- package/form-entry/data-sources/data-sources.d.ts +7 -0
- package/form-entry/data-sources/dummy-data-source.d.ts +18 -0
- package/form-entry/directives/collapse-animations.d.ts +4 -0
- package/form-entry/directives/collapse.directive.d.ts +42 -0
- package/form-entry/directives/historical-value-directive.d.ts +13 -0
- package/form-entry/error-renderer/error-renderer.component.d.ts +17 -0
- package/form-entry/expression-runner/expression-runner.d.ts +15 -0
- package/form-entry/form-entry.module.d.ts +2 -0
- package/form-entry/form-factory/control-relations.factory.d.ts +15 -0
- package/form-entry/form-factory/form-control.service.d.ts +22 -0
- package/form-entry/form-factory/form-node.d.ts +51 -0
- package/form-entry/form-factory/form.d.ts +28 -0
- package/form-entry/form-factory/form.factory.d.ts +23 -0
- package/form-entry/form-factory/hiders-disablers.factory.d.ts +17 -0
- package/form-entry/form-factory/question.factory.d.ts +56 -0
- package/form-entry/form-factory/show-messages.factory.d.ts +12 -0
- package/form-entry/form-factory/validation.factory.d.ts +22 -0
- package/form-entry/form-renderer/form-renderer.component.css.d.ts +1 -0
- package/form-entry/form-renderer/form-renderer.component.d.ts +52 -0
- package/form-entry/helpers/historical-expression-helper-service.d.ts +5 -0
- package/form-entry/helpers/historical-field-helper-service.d.ts +4 -0
- package/form-entry/helpers/js-expression-helper.d.ts +22 -0
- package/form-entry/pipes/time-ago.pipe.d.ts +11 -0
- package/form-entry/question-models/checkbox.model.d.ts +9 -0
- package/form-entry/question-models/conditional-validation.model.d.ts +6 -0
- package/form-entry/question-models/custom-control-question.model.d.ts +6 -0
- package/form-entry/question-models/date-question.d.ts +7 -0
- package/form-entry/question-models/date-validation.model.d.ts +5 -0
- package/form-entry/question-models/file-upload-question.d.ts +8 -0
- package/form-entry/question-models/group-question.d.ts +8 -0
- package/form-entry/question-models/interfaces/base-options.d.ts +28 -0
- package/form-entry/question-models/interfaces/checkbox-options.d.ts +7 -0
- package/form-entry/question-models/interfaces/data-source.d.ts +10 -0
- package/form-entry/question-models/interfaces/date-question-options.d.ts +3 -0
- package/form-entry/question-models/interfaces/file-upload-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/group-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/multi-select-options.d.ts +4 -0
- package/form-entry/question-models/interfaces/nested-questions.d.ts +6 -0
- package/form-entry/question-models/interfaces/repeating-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/select-option.d.ts +4 -0
- package/form-entry/question-models/interfaces/select-question-options.d.ts +9 -0
- package/form-entry/question-models/interfaces/test-order-question-options.d.ts +14 -0
- package/form-entry/question-models/interfaces/text-area-question-options.d.ts +5 -0
- package/form-entry/question-models/interfaces/text-question-options.d.ts +4 -0
- package/form-entry/question-models/interfaces/ui-select-question-options.d.ts +9 -0
- package/form-entry/question-models/js-expression-validation.model.d.ts +5 -0
- package/form-entry/question-models/max-validation.model.d.ts +5 -0
- package/form-entry/question-models/min-validation.model.d.ts +5 -0
- package/form-entry/question-models/models.d.ts +15 -0
- package/form-entry/question-models/multi-select-question.d.ts +9 -0
- package/form-entry/question-models/pair.model.d.ts +5 -0
- package/form-entry/question-models/question-base.d.ts +40 -0
- package/form-entry/question-models/rendering-type.d.ts +7 -0
- package/form-entry/question-models/repeating-question.d.ts +7 -0
- package/form-entry/question-models/select-option.d.ts +6 -0
- package/form-entry/question-models/select-question.d.ts +10 -0
- package/form-entry/question-models/test-order-question.d.ts +13 -0
- package/form-entry/question-models/text-area-input-question.d.ts +7 -0
- package/form-entry/question-models/text-input-question.d.ts +6 -0
- package/form-entry/question-models/ui-select-question.d.ts +11 -0
- package/form-entry/question-models/validation.model.d.ts +5 -0
- package/form-entry/services/debug-mode.service.d.ts +5 -0
- package/form-entry/services/form-errors.service.d.ts +10 -0
- package/form-entry/services/form-schema-compiler.service.d.ts +20 -0
- package/form-entry/services/historical-encounter-data.service.d.ts +12 -0
- package/form-entry/utils/messages.d.ts +11 -0
- package/form-entry/validators/conditional-answered.validator.d.ts +8 -0
- package/form-entry/validators/conditional-required.validator.d.ts +8 -0
- package/form-entry/validators/date.validator.d.ts +7 -0
- package/form-entry/validators/future-date-restriction.validator.d.ts +7 -0
- package/form-entry/validators/js-expression.validator.d.ts +8 -0
- package/form-entry/validators/max-date.validator.d.ts +6 -0
- package/form-entry/validators/max.validator.d.ts +6 -0
- package/form-entry/validators/min-date.validator.d.ts +6 -0
- package/form-entry/validators/min.validator.d.ts +6 -0
- package/form-entry/validators/required.validator.d.ts +6 -0
- package/form-entry/validators/validations.d.ts +4 -0
- package/form-entry/value-adapters/encounter.adapter.d.ts +23 -0
- package/form-entry/value-adapters/obs-adapter-helper.d.ts +27 -0
- package/form-entry/value-adapters/obs.adapter.d.ts +35 -0
- package/form-entry/value-adapters/order.adapter.d.ts +17 -0
- package/form-entry/value-adapters/person-attribute.adapter.d.ts +12 -0
- package/form-entry/value-adapters/value.adapter.d.ts +5 -0
- package/lib/index.d.ts +49 -0
- package/openmrs-ngx-formentry.d.ts +85 -0
- package/openmrs-ngx-formentry.metadata.json +1 -0
- package/package.json +35 -0
- package/public_api.d.ts +1 -0
- package/shared.module.d.ts +2 -0
- package/styles/ngx-formentry.css +374 -0
- package/styles/picker.min.css +770 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/* eslint-disable @angular-eslint/component-class-suffix */
|
|
2
|
+
import { Component, Input, ElementRef, HostBinding, TemplateRef, ViewChild, ContentChild } from '@angular/core';
|
|
3
|
+
import { TextArea } from './text-area.directive';
|
|
4
|
+
/**
|
|
5
|
+
* [See demo](../../?path=/story/input--label)
|
|
6
|
+
*
|
|
7
|
+
* ```html
|
|
8
|
+
* <ibm-label labelState="success">
|
|
9
|
+
* <label label>Field with success</label>
|
|
10
|
+
* <input type="text" class="input-field">
|
|
11
|
+
* </ibm-label>
|
|
12
|
+
*
|
|
13
|
+
* <ibm-label labelState="warning">
|
|
14
|
+
* <label label>Field with warning</label>
|
|
15
|
+
* <input type="text" class="input-field">
|
|
16
|
+
* </ibm-label>
|
|
17
|
+
*
|
|
18
|
+
* <ibm-label labelState="error">
|
|
19
|
+
* <label label>Field with error</label>
|
|
20
|
+
* <input type="text" class="input-field">
|
|
21
|
+
* </ibm-label>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* <example-url>../../iframe.html?id=input--label</example-url>
|
|
25
|
+
*/
|
|
26
|
+
export class Label {
|
|
27
|
+
/**
|
|
28
|
+
* Creates an instance of Label.
|
|
29
|
+
*/
|
|
30
|
+
constructor() {
|
|
31
|
+
/**
|
|
32
|
+
* The class of the wrapper
|
|
33
|
+
*/
|
|
34
|
+
this.wrapperClass = 'cds--text-input__field-wrapper';
|
|
35
|
+
/**
|
|
36
|
+
* The id of the input item associated with the `Label`. This value is also used to associate the `Label` with
|
|
37
|
+
* its input counterpart through the 'for' attribute.
|
|
38
|
+
*/
|
|
39
|
+
this.labelInputID = 'ibm-label-' + Label.labelCounter;
|
|
40
|
+
/**
|
|
41
|
+
* State of the `Label` will determine the styles applied.
|
|
42
|
+
*/
|
|
43
|
+
this.labelState = '';
|
|
44
|
+
/**
|
|
45
|
+
* Set to `true` for a loading label.
|
|
46
|
+
*/
|
|
47
|
+
this.skeleton = false;
|
|
48
|
+
/**
|
|
49
|
+
* Set to `true` for an invalid label component.
|
|
50
|
+
*/
|
|
51
|
+
this.invalid = false;
|
|
52
|
+
/**
|
|
53
|
+
* Set to `true` to show a warning (contents set by warningText)
|
|
54
|
+
*/
|
|
55
|
+
this.warn = false;
|
|
56
|
+
this.labelClass = true;
|
|
57
|
+
Label.labelCounter++;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Update wrapper class if a textarea is hosted.
|
|
61
|
+
*/
|
|
62
|
+
ngAfterContentInit() {
|
|
63
|
+
if (this.textArea) {
|
|
64
|
+
this.wrapperClass = 'cds--text-area__wrapper';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sets the id on the input item associated with the `Label`.
|
|
69
|
+
*/
|
|
70
|
+
ngAfterViewInit() {
|
|
71
|
+
if (this.wrapper) {
|
|
72
|
+
const inputElement = this.wrapper.nativeElement.querySelector('input,textarea,div');
|
|
73
|
+
if (inputElement) {
|
|
74
|
+
inputElement.setAttribute('id', this.labelInputID);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
isTemplate(value) {
|
|
79
|
+
return value instanceof TemplateRef;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Used to build the id of the input item associated with the `Label`.
|
|
84
|
+
*/
|
|
85
|
+
Label.labelCounter = 0;
|
|
86
|
+
Label.decorators = [
|
|
87
|
+
{ type: Component, args: [{
|
|
88
|
+
selector: 'ibm-label',
|
|
89
|
+
template: `
|
|
90
|
+
<label
|
|
91
|
+
[for]="labelInputID"
|
|
92
|
+
[attr.aria-label]="ariaLabel"
|
|
93
|
+
class="cds--label"
|
|
94
|
+
[ngClass]="{
|
|
95
|
+
'cds--skeleton': skeleton
|
|
96
|
+
}"
|
|
97
|
+
>
|
|
98
|
+
<ng-content></ng-content>
|
|
99
|
+
</label>
|
|
100
|
+
<div
|
|
101
|
+
[class]="wrapperClass"
|
|
102
|
+
[ngClass]="{
|
|
103
|
+
'cds--text-input__field-wrapper--warning': warn
|
|
104
|
+
}"
|
|
105
|
+
[attr.data-invalid]="invalid ? true : null"
|
|
106
|
+
#wrapper
|
|
107
|
+
>
|
|
108
|
+
<svg
|
|
109
|
+
*ngIf="invalid"
|
|
110
|
+
focusable="false"
|
|
111
|
+
preserveAspectRatio="xMidYMid meet"
|
|
112
|
+
style="will-change: transform;"
|
|
113
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
114
|
+
class="cds--text-input__invalid-icon"
|
|
115
|
+
width="16"
|
|
116
|
+
height="16"
|
|
117
|
+
viewBox="0 0 16 16"
|
|
118
|
+
aria-hidden="true"
|
|
119
|
+
>
|
|
120
|
+
<path
|
|
121
|
+
d="M8,1C4.2,1,1,4.2,1,8s3.2,7,7,7s7-3.1,7-7S11.9,1,8,1z M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2 c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z"
|
|
122
|
+
></path>
|
|
123
|
+
<path
|
|
124
|
+
d="M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8 c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z"
|
|
125
|
+
data-icon-path="inner-path"
|
|
126
|
+
opacity="0"
|
|
127
|
+
></path>
|
|
128
|
+
</svg>
|
|
129
|
+
<ng-content select="input,textarea,div"></ng-content>
|
|
130
|
+
</div>
|
|
131
|
+
<div
|
|
132
|
+
*ngIf="!skeleton && helperText && !invalid && !warn"
|
|
133
|
+
class="cds--form__helper-text"
|
|
134
|
+
>
|
|
135
|
+
<ng-container *ngIf="!isTemplate(helperText)">{{
|
|
136
|
+
helperText
|
|
137
|
+
}}</ng-container>
|
|
138
|
+
<ng-template
|
|
139
|
+
*ngIf="isTemplate(helperText)"
|
|
140
|
+
[ngTemplateOutlet]="helperText"
|
|
141
|
+
></ng-template>
|
|
142
|
+
</div>
|
|
143
|
+
<div *ngIf="!warn && invalid" class="cds--form-requirement">
|
|
144
|
+
<ng-container *ngIf="!isTemplate(invalidText)">{{
|
|
145
|
+
invalidText
|
|
146
|
+
}}</ng-container>
|
|
147
|
+
<ng-template
|
|
148
|
+
*ngIf="isTemplate(invalidText)"
|
|
149
|
+
[ngTemplateOutlet]="invalidText"
|
|
150
|
+
></ng-template>
|
|
151
|
+
</div>
|
|
152
|
+
<div *ngIf="!invalid && warn" class="cds--form-requirement">
|
|
153
|
+
<ng-container *ngIf="!isTemplate(warnText)">{{ warnText }}</ng-container>
|
|
154
|
+
<ng-template
|
|
155
|
+
*ngIf="isTemplate(warnText)"
|
|
156
|
+
[ngTemplateOutlet]="warnText"
|
|
157
|
+
></ng-template>
|
|
158
|
+
</div>
|
|
159
|
+
`
|
|
160
|
+
},] }
|
|
161
|
+
];
|
|
162
|
+
Label.ctorParameters = () => [];
|
|
163
|
+
Label.propDecorators = {
|
|
164
|
+
labelInputID: [{ type: Input }],
|
|
165
|
+
labelState: [{ type: Input }],
|
|
166
|
+
skeleton: [{ type: Input }],
|
|
167
|
+
helperText: [{ type: Input }],
|
|
168
|
+
invalidText: [{ type: Input }],
|
|
169
|
+
invalid: [{ type: Input }],
|
|
170
|
+
warn: [{ type: Input }],
|
|
171
|
+
warnText: [{ type: Input }],
|
|
172
|
+
ariaLabel: [{ type: Input }],
|
|
173
|
+
wrapper: [{ type: ViewChild, args: ['wrapper', { static: false },] }],
|
|
174
|
+
textArea: [{ type: ContentChild, args: [TextArea, { static: false },] }],
|
|
175
|
+
labelClass: [{ type: HostBinding, args: ['class.cds--form-item',] }]
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9pbnB1dC9sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUEyRUgsTUFBTSxPQUFPLEtBQUs7SUF3RGhCOztPQUVHO0lBQ0g7UUF0REE7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLGdDQUFnQyxDQUFDO1FBQ2hEOzs7V0FHRztRQUNNLGlCQUFZLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFFMUQ7O1dBRUc7UUFDTSxlQUFVLEdBQXlDLEVBQUUsQ0FBQztRQUMvRDs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFTMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQztRQWdCZSxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBTXJELEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcseUJBQXlCLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDM0Qsb0JBQW9CLENBQ3JCLENBQUM7WUFDRixJQUFJLFlBQVksRUFBRTtnQkFDaEIsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3BEO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7UUFDckIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3RDLENBQUM7O0FBdkZEOztHQUVHO0FBQ0ksa0JBQVksR0FBRyxDQUFDLENBQUM7O1lBOUV6QixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNFVDthQUNGOzs7OzJCQWNFLEtBQUs7eUJBS0wsS0FBSzt1QkFJTCxLQUFLO3lCQUlMLEtBQUs7MEJBSUwsS0FBSztzQkFJTCxLQUFLO21CQUlMLEtBQUs7dUJBSUwsS0FBSzt3QkFJTCxLQUFLO3NCQUdMLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3VCQUd0QyxZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFFeEMsV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4ICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ29udGVudENoaWxkLFxuICBBZnRlckNvbnRlbnRJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUZXh0QXJlYSB9IGZyb20gJy4vdGV4dC1hcmVhLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvaW5wdXQtLWxhYmVsKVxuICpcbiAqIGBgYGh0bWxcbiAqIDxpYm0tbGFiZWwgbGFiZWxTdGF0ZT1cInN1Y2Nlc3NcIj5cbiAqICAgICA8bGFiZWwgbGFiZWw+RmllbGQgd2l0aCBzdWNjZXNzPC9sYWJlbD5cbiAqICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gKiA8L2libS1sYWJlbD5cbiAqXG4gKiA8aWJtLWxhYmVsIGxhYmVsU3RhdGU9XCJ3YXJuaW5nXCI+XG4gKiAgICAgPGxhYmVsIGxhYmVsPkZpZWxkIHdpdGggd2FybmluZzwvbGFiZWw+XG4gKiAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9pYm0tbGFiZWw+XG4gKlxuICogPGlibS1sYWJlbCBsYWJlbFN0YXRlPVwiZXJyb3JcIj5cbiAqICAgICA8bGFiZWwgbGFiZWw+RmllbGQgd2l0aCBlcnJvcjwvbGFiZWw+XG4gKiAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9pYm0tbGFiZWw+XG4gKiBgYGBcbiAqXG4gKiA8ZXhhbXBsZS11cmw+Li4vLi4vaWZyYW1lLmh0bWw/aWQ9aW5wdXQtLWxhYmVsPC9leGFtcGxlLXVybD5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWJtLWxhYmVsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGFiZWxcbiAgICAgIFtmb3JdPVwibGFiZWxJbnB1dElEXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgIGNsYXNzPVwiY2RzLS1sYWJlbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdjZHMtLXNrZWxldG9uJzogc2tlbGV0b25cbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2xhYmVsPlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJ3cmFwcGVyQ2xhc3NcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY2RzLS10ZXh0LWlucHV0X19maWVsZC13cmFwcGVyLS13YXJuaW5nJzogd2FyblxuICAgICAgfVwiXG4gICAgICBbYXR0ci5kYXRhLWludmFsaWRdPVwiaW52YWxpZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICN3cmFwcGVyXG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICAqbmdJZj1cImludmFsaWRcIlxuICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcbiAgICAgICAgc3R5bGU9XCJ3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1wiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBjbGFzcz1cImNkcy0tdGV4dC1pbnB1dF9faW52YWxpZC1pY29uXCJcbiAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk04LDFDNC4yLDEsMSw0LjIsMSw4czMuMiw3LDcsN3M3LTMuMSw3LTdTMTEuOSwxLDgsMXogTTcuNSw0aDF2NWgtMUM3LjUsOSw3LjUsNCw3LjUsNHogTTgsMTIuMiAgICBjLTAuNCwwLTAuOC0wLjQtMC44LTAuOHMwLjMtMC44LDAuOC0wLjhjMC40LDAsMC44LDAuNCwwLjgsMC44UzguNCwxMi4yLDgsMTIuMnpcIlxuICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNNy41LDRoMXY1aC0xQzcuNSw5LDcuNSw0LDcuNSw0eiBNOCwxMi4yYy0wLjQsMC0wLjgtMC40LTAuOC0wLjhzMC4zLTAuOCwwLjgtMC44ICAgIGMwLjQsMCwwLjgsMC40LDAuOCwwLjhTOC40LDEyLjIsOCwxMi4yelwiXG4gICAgICAgICAgZGF0YS1pY29uLXBhdGg9XCJpbm5lci1wYXRoXCJcbiAgICAgICAgICBvcGFjaXR5PVwiMFwiXG4gICAgICAgID48L3BhdGg+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0LHRleHRhcmVhLGRpdlwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFza2VsZXRvbiAmJiBoZWxwZXJUZXh0ICYmICFpbnZhbGlkICYmICF3YXJuXCJcbiAgICAgIGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3tcbiAgICAgICAgaGVscGVyVGV4dFxuICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUoaGVscGVyVGV4dClcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWxwZXJUZXh0XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhd2FybiAmJiBpbnZhbGlkXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e1xuICAgICAgICBpbnZhbGlkVGV4dFxuICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW52YWxpZFRleHRcIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7IHdhcm5UZXh0IH19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlKHdhcm5UZXh0KVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIExhYmVsIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGJ1aWxkIHRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuXG4gICAqL1xuICBzdGF0aWMgbGFiZWxDb3VudGVyID0gMDtcbiAgLyoqXG4gICAqIFRoZSBjbGFzcyBvZiB0aGUgd3JhcHBlclxuICAgKi9cbiAgd3JhcHBlckNsYXNzID0gJ2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlcic7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGlucHV0IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBgTGFiZWxgLiBUaGlzIHZhbHVlIGlzIGFsc28gdXNlZCB0byBhc3NvY2lhdGUgdGhlIGBMYWJlbGAgd2l0aFxuICAgKiBpdHMgaW5wdXQgY291bnRlcnBhcnQgdGhyb3VnaCB0aGUgJ2ZvcicgYXR0cmlidXRlLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxJbnB1dElEID0gJ2libS1sYWJlbC0nICsgTGFiZWwubGFiZWxDb3VudGVyO1xuXG4gIC8qKlxuICAgKiBTdGF0ZSBvZiB0aGUgYExhYmVsYCB3aWxsIGRldGVybWluZSB0aGUgc3R5bGVzIGFwcGxpZWQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbFN0YXRlOiAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJycgPSAnJztcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWxwZXIgdGV4dCB0aGF0IGFwcGVhcnMgdW5kZXIgdGhlIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KCkgaGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGludmFsaWQgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWRUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0IHRvIGB0cnVlYCBmb3IgYW4gaW52YWxpZCBsYWJlbCBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG4gICAqL1xuICBASW5wdXQoKSB3YXJuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcbiAgICovXG4gIEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0IHRoZSBhcmlhbGFiZWwgZm9yIGxhYmVsXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcblxuICAvLyBAdHMtaWdub3JlXG4gIEBWaWV3Q2hpbGQoJ3dyYXBwZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAQ29udGVudENoaWxkKFRleHRBcmVhLCB7IHN0YXRpYzogZmFsc2UgfSkgdGV4dEFyZWE6IFRleHRBcmVhO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2RzLS1mb3JtLWl0ZW0nKSBsYWJlbENsYXNzID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYWJlbC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIExhYmVsLmxhYmVsQ291bnRlcisrO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB3cmFwcGVyIGNsYXNzIGlmIGEgdGV4dGFyZWEgaXMgaG9zdGVkLlxuICAgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0aGlzLnRleHRBcmVhKSB7XG4gICAgICB0aGlzLndyYXBwZXJDbGFzcyA9ICdjZHMtLXRleHQtYXJlYV9fd3JhcHBlcic7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC5cbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy53cmFwcGVyKSB7XG4gICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnaW5wdXQsdGV4dGFyZWEsZGl2J1xuICAgICAgKTtcbiAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgaW5wdXRFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmxhYmVsSW5wdXRJRCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable @angular-eslint/component-class-suffix, @angular-eslint/directive-class-suffix */
|
|
2
|
+
import { Directive, HostBinding, Input } from '@angular/core';
|
|
3
|
+
/**
|
|
4
|
+
* A directive for applying styling to a textarea element.
|
|
5
|
+
*
|
|
6
|
+
* Example:
|
|
7
|
+
*
|
|
8
|
+
* ```html
|
|
9
|
+
* <textarea ibmTextArea></textarea>
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/text-input/code) for more detail.
|
|
13
|
+
*/
|
|
14
|
+
export class TextArea {
|
|
15
|
+
constructor() {
|
|
16
|
+
/**
|
|
17
|
+
* `light` or `dark` input theme
|
|
18
|
+
*/
|
|
19
|
+
this.theme = 'dark';
|
|
20
|
+
this.baseClass = true;
|
|
21
|
+
this.invalid = false;
|
|
22
|
+
this.skeleton = false;
|
|
23
|
+
}
|
|
24
|
+
get isLightTheme() {
|
|
25
|
+
return this.theme === 'light';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
TextArea.decorators = [
|
|
29
|
+
{ type: Directive, args: [{
|
|
30
|
+
selector: '[ibmTextArea]'
|
|
31
|
+
},] }
|
|
32
|
+
];
|
|
33
|
+
TextArea.propDecorators = {
|
|
34
|
+
theme: [{ type: Input }],
|
|
35
|
+
baseClass: [{ type: HostBinding, args: ['class.cds--text-area',] }],
|
|
36
|
+
invalid: [{ type: HostBinding, args: ['class.cds--text-area--invalid',] }, { type: Input }],
|
|
37
|
+
skeleton: [{ type: HostBinding, args: ['class.cds--skeleton',] }, { type: Input }],
|
|
38
|
+
isLightTheme: [{ type: HostBinding, args: ['class.cds--text-area--light',] }]
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvaW5wdXQvdGV4dC1hcmVhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtR0FBbUc7QUFDbkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlEOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8sUUFBUTtJQUhyQjtRQUlFOztXQUVHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFFTCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBSWhFLENBQUM7SUFIQyxJQUFnRCxZQUFZO1FBQzFELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDaEMsQ0FBQzs7O1lBZEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2FBQzFCOzs7b0JBS0UsS0FBSzt3QkFFTCxXQUFXLFNBQUMsc0JBQXNCO3NCQUNsQyxXQUFXLFNBQUMsK0JBQStCLGNBQUcsS0FBSzt1QkFDbkQsV0FBVyxTQUFDLHFCQUFxQixjQUFHLEtBQUs7MkJBQ3pDLFdBQVcsU0FBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeCwgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgZm9yIGFwcGx5aW5nIHN0eWxpbmcgdG8gYSB0ZXh0YXJlYSBlbGVtZW50LlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgaHRtbFxuICogPHRleHRhcmVhIGlibVRleHRBcmVhPjwvdGV4dGFyZWE+XG4gKiBgYGBcbiAqXG4gKiBTZWUgdGhlIFt2YW5pbGxhIGNhcmJvbiBkb2NzXShodHRwOi8vd3d3LmNhcmJvbmRlc2lnbnN5c3RlbS5jb20vY29tcG9uZW50cy90ZXh0LWlucHV0L2NvZGUpIGZvciBtb3JlIGRldGFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2libVRleHRBcmVhXSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWEge1xuICAvKipcbiAgICogYGxpZ2h0YCBvciBgZGFya2AgaW5wdXQgdGhlbWVcbiAgICovXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2RhcmsnO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2RzLS10ZXh0LWFyZWEnKSBiYXNlQ2xhc3MgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNkcy0tdGV4dC1hcmVhLS1pbnZhbGlkJykgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNkcy0tc2tlbGV0b24nKSBASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNkcy0tdGV4dC1hcmVhLS1saWdodCcpIGdldCBpc0xpZ2h0VGhlbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09ICdsaWdodCc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
export class NgxDatetimeComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.value = '';
|
|
7
|
+
this.isDisabled = false;
|
|
8
|
+
this.id = '';
|
|
9
|
+
this.theme = 'dark';
|
|
10
|
+
this.showWeeks = false;
|
|
11
|
+
this.onChange = (_) => { };
|
|
12
|
+
this.onTouch = () => { };
|
|
13
|
+
}
|
|
14
|
+
onInput($event) {
|
|
15
|
+
this.onTouch();
|
|
16
|
+
this.onChange(moment($event.value).format());
|
|
17
|
+
}
|
|
18
|
+
writeValue(value) {
|
|
19
|
+
if (value && value !== '') {
|
|
20
|
+
this.value = moment(value).format();
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.value = '';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
registerOnChange(fn) {
|
|
27
|
+
this.onChange = fn;
|
|
28
|
+
}
|
|
29
|
+
registerOnTouched(fn) {
|
|
30
|
+
this.onTouch = fn;
|
|
31
|
+
}
|
|
32
|
+
setDisabledState(isDisabled) {
|
|
33
|
+
this.isDisabled = isDisabled;
|
|
34
|
+
}
|
|
35
|
+
onWeeksSelected(numberOfWeeks) {
|
|
36
|
+
const currentDate = new Date().toString();
|
|
37
|
+
this.onInput({ value: moment(currentDate).add(numberOfWeeks, 'weeks') });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
NgxDatetimeComponent.decorators = [
|
|
41
|
+
{ type: Component, args: [{
|
|
42
|
+
selector: 'ngx-datetimepicker',
|
|
43
|
+
template: "<div class=\"date-time-picker-container\">\n <div data-date-picker data-date-picker-type=\"single\"\n class=\"cds--date-picker cds--date-picker--single cds--date-picker--light\" [ngClass]=\"{\n 'cds--date-picker--light': theme === 'light'\n}\">\n <div class=\"cds--date-picker-container fill\">\n <div class=\"cds--date-picker-input__wrapper\">\n <input [disabled]=\"isDisabled\" (dateTimeChange)=\"onInput($event)\" type=\"text\"\n class=\"cds--date-picker__input fill\" [id]=\"id\" [value]=\"value\" [owlDateTime]=\"dt1\"\n [owlDateTimeTrigger]=\"dt1\" placeholder=\"mm/dd/yyyy\" data-date-picker-input />\n <svg [owlDateTimeTrigger]=\"dt1\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" style=\"will-change: transform;\"\n xmlns=\"http://www.w3.org/2000/svg\" data-date-picker-icon=\"true\" class=\"cds--date-picker__icon\"\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path\n d=\"M13,2h-2V1h-1v1H6V1H5v1H3C2.4,2,2,2.4,2,3v10c0,0.6,0.4,1,1,1h10c0.6,0,1-0.4,1-1V3C14,2.4,13.6,2,13,2z M13,13H3V6h10V13z M13,5H3V3h2v1h1V3h4v1h1V3h2V5z\">\n </path>\n </svg>\n </div>\n </div>\n </div>\n\n\n <div *ngIf=\"showWeeks\" class=\"cds--select some-class week-select-wrapper\" [ngClass]=\"{'cds--select--light': theme === 'light'}\">\n <div class=\"cds--select-input__wrapper\">\n <select (change)=\"onWeeksSelected($event.target.value)\" id=\"select-1\" class=\"cds--select-input\">\n <option class=\"cds--select-option\" value=\"placeholder-item\" disabled=\"\" hidden=\"\" selected=\"\">Select\n Weeks</option>\n <option class=\"cds--select-option\" [value]=\"week\" *ngFor=\"let week of weeks\">{{week}} Weeks</option>\n </select>\n <svg focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\" xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\"\n class=\"cds--select__arrow\">\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n </div>\n </div>\n\n</div>\n<owl-date-time [pickerType]=\"'calendar'\" [disabled]=\"isDisabled\" #dt1></owl-date-time>",
|
|
44
|
+
providers: [
|
|
45
|
+
{
|
|
46
|
+
provide: NG_VALUE_ACCESSOR,
|
|
47
|
+
useExisting: forwardRef(() => NgxDatetimeComponent),
|
|
48
|
+
multi: true
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
styles: [".date-time-picker-container{display:flex;justify-content:space-between}.week-select-wrapper{margin-left:1rem;width:30%}"]
|
|
52
|
+
},] }
|
|
53
|
+
];
|
|
54
|
+
NgxDatetimeComponent.propDecorators = {
|
|
55
|
+
id: [{ type: Input }],
|
|
56
|
+
theme: [{ type: Input }],
|
|
57
|
+
showWeeks: [{ type: Input }],
|
|
58
|
+
weeks: [{ type: Input }]
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1kYXRldGltZS1waWNrZXIvbmd4LWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxPQUFPLG9CQUFvQjtJQVpqQztRQWFFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ1YsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUE4QnJCLENBQUM7SUE3QkMsT0FBTyxDQUFDLE1BQVc7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsYUFBcUI7UUFDbkMsTUFBTSxXQUFXLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHk3RUFBeUM7Z0JBRXpDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O2lCQUlFLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLO29CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGF0ZXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LWRhdGV0aW1lLXBpY2tlci5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LWRhdGV0aW1lLXBpY2tlci5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hEYXRldGltZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hEYXRldGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgdmFsdWUgPSAnJztcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpZCA9ICcnO1xuICBASW5wdXQoKSB0aGVtZSA9ICdkYXJrJztcbiAgQElucHV0KCkgc2hvd1dlZWtzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdlZWtzOiBudW1iZXJbXTtcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgb25Ub3VjaCA9ICgpID0+IHt9O1xuICBvbklucHV0KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gICAgdGhpcy5vbkNoYW5nZShtb21lbnQoJGV2ZW50LnZhbHVlKS5mb3JtYXQoKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbW9tZW50KHZhbHVlKS5mb3JtYXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbldlZWtzU2VsZWN0ZWQobnVtYmVyT2ZXZWVrczogbnVtYmVyKSB7XG4gICAgY29uc3QgY3VycmVudERhdGU6IHN0cmluZyA9IG5ldyBEYXRlKCkudG9TdHJpbmcoKTtcbiAgICB0aGlzLm9uSW5wdXQoeyB2YWx1ZTogbW9tZW50KGN1cnJlbnREYXRlKS5hZGQobnVtYmVyT2ZXZWVrcywgJ3dlZWtzJykgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* date-time-picker.module
|
|
3
|
+
*/
|
|
4
|
+
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { NgxDatetimeComponent } from './ngx-datetime-picker.component';
|
|
8
|
+
import { OwlDateTimeModule } from '../ngx-pick-datetime/lib/date-time/date-time.module';
|
|
9
|
+
import { OwlNativeDateTimeModule } from '../ngx-pick-datetime/lib/date-time/adapter/native-date-time.module';
|
|
10
|
+
export class NgxDateTimePickerModule {
|
|
11
|
+
}
|
|
12
|
+
NgxDateTimePickerModule.decorators = [
|
|
13
|
+
{ type: NgModule, args: [{
|
|
14
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
15
|
+
imports: [
|
|
16
|
+
CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
OwlDateTimeModule,
|
|
19
|
+
OwlNativeDateTimeModule
|
|
20
|
+
],
|
|
21
|
+
declarations: [NgxDatetimeComponent],
|
|
22
|
+
exports: [NgxDatetimeComponent],
|
|
23
|
+
providers: []
|
|
24
|
+
},] }
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGV0aW1lLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1kYXRldGltZS1waWNrZXIvbmd4LWRhdGV0aW1lLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFjN0csTUFBTSxPQUFPLHVCQUF1Qjs7O1lBWm5DLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxpQkFBaUI7b0JBQ2pCLHVCQUF1QjtpQkFDeEI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUMvQixTQUFTLEVBQUUsRUFBRTthQUNkIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkYXRlLXRpbWUtcGlja2VyLm1vZHVsZVxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ3hEYXRldGltZUNvbXBvbmVudCB9IGZyb20gJy4vbmd4LWRhdGV0aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICcuLi9uZ3gtcGljay1kYXRldGltZS9saWIvZGF0ZS10aW1lL2RhdGUtdGltZS5tb2R1bGUnO1xuaW1wb3J0IHsgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICcuLi9uZ3gtcGljay1kYXRldGltZS9saWIvZGF0ZS10aW1lL2FkYXB0ZXIvbmF0aXZlLWRhdGUtdGltZS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgT3dsRGF0ZVRpbWVNb2R1bGUsXG4gICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4RGF0ZXRpbWVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbTmd4RGF0ZXRpbWVDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5neERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* date-time-adapter.class
|
|
3
|
+
*/
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { inject, InjectionToken, LOCALE_ID } from '@angular/core';
|
|
6
|
+
/** InjectionToken for date time picker that can be used to override default locale code. */
|
|
7
|
+
export const OWL_DATE_TIME_LOCALE = new InjectionToken('OWL_DATE_TIME_LOCALE', {
|
|
8
|
+
providedIn: 'root',
|
|
9
|
+
factory: OWL_DATE_TIME_LOCALE_FACTORY
|
|
10
|
+
});
|
|
11
|
+
/** @docs-private */
|
|
12
|
+
export function OWL_DATE_TIME_LOCALE_FACTORY() {
|
|
13
|
+
return inject(LOCALE_ID);
|
|
14
|
+
}
|
|
15
|
+
/** Provider for OWL_DATE_TIME_LOCALE injection token. */
|
|
16
|
+
export const OWL_DATE_TIME_LOCALE_PROVIDER = {
|
|
17
|
+
provide: OWL_DATE_TIME_LOCALE,
|
|
18
|
+
useExisting: LOCALE_ID
|
|
19
|
+
};
|
|
20
|
+
export class DateTimeAdapter {
|
|
21
|
+
constructor() {
|
|
22
|
+
/** A stream that emits when the locale changes. */
|
|
23
|
+
this._localeChanges = new Subject();
|
|
24
|
+
/** total milliseconds in a day. */
|
|
25
|
+
this.millisecondsInDay = 86400000;
|
|
26
|
+
/** total milliseconds in a minute. */
|
|
27
|
+
this.milliseondsInMinute = 60000;
|
|
28
|
+
}
|
|
29
|
+
get localeChanges() {
|
|
30
|
+
return this._localeChanges;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Compare two given dates
|
|
34
|
+
* 1 if the first date is after the second,
|
|
35
|
+
* -1 if the first date is before the second
|
|
36
|
+
* 0 if dates are equal.
|
|
37
|
+
* */
|
|
38
|
+
compare(first, second) {
|
|
39
|
+
if (!this.isValid(first) || !this.isValid(second)) {
|
|
40
|
+
throw Error('JSNativeDate: Cannot compare invalid dates.');
|
|
41
|
+
}
|
|
42
|
+
const dateFirst = this.clone(first);
|
|
43
|
+
const dateSecond = this.clone(second);
|
|
44
|
+
const diff = this.getTime(dateFirst) - this.getTime(dateSecond);
|
|
45
|
+
if (diff < 0) {
|
|
46
|
+
return -1;
|
|
47
|
+
}
|
|
48
|
+
else if (diff > 0) {
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Return 0 if diff is 0; return NaN if diff is NaN
|
|
53
|
+
return diff;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if two given dates are in the same year
|
|
58
|
+
* 1 if the first date's year is after the second,
|
|
59
|
+
* -1 if the first date's year is before the second
|
|
60
|
+
* 0 if two given dates are in the same year
|
|
61
|
+
* */
|
|
62
|
+
compareYear(first, second) {
|
|
63
|
+
if (!this.isValid(first) || !this.isValid(second)) {
|
|
64
|
+
throw Error('JSNativeDate: Cannot compare invalid dates.');
|
|
65
|
+
}
|
|
66
|
+
const yearLeft = this.getYear(first);
|
|
67
|
+
const yearRight = this.getYear(second);
|
|
68
|
+
const diff = yearLeft - yearRight;
|
|
69
|
+
if (diff < 0) {
|
|
70
|
+
return -1;
|
|
71
|
+
}
|
|
72
|
+
else if (diff > 0) {
|
|
73
|
+
return 1;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Attempts to deserialize a value to a valid date object. This is different from parsing in that
|
|
81
|
+
* deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
|
|
82
|
+
* string). The default implementation does not allow any deserialization, it simply checks that
|
|
83
|
+
* the given value is already a valid date object or null. The `<mat-datepicker>` will call this
|
|
84
|
+
* method on all of it's `@Input()` properties that accept dates. It is therefore possible to
|
|
85
|
+
* support passing values from your backend directly to these properties by overriding this method
|
|
86
|
+
* to also deserialize the format used by your backend.
|
|
87
|
+
*/
|
|
88
|
+
deserialize(value) {
|
|
89
|
+
if (value == null || (this.isDateInstance(value) && this.isValid(value))) {
|
|
90
|
+
return value;
|
|
91
|
+
}
|
|
92
|
+
return this.invalid();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Sets the locale used for all dates.
|
|
96
|
+
*/
|
|
97
|
+
setLocale(locale) {
|
|
98
|
+
this.locale = locale;
|
|
99
|
+
this._localeChanges.next();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clamp the given date between min and max dates.
|
|
103
|
+
*/
|
|
104
|
+
clampDate(date, min, max) {
|
|
105
|
+
if (min && this.compare(date, min) < 0) {
|
|
106
|
+
return min;
|
|
107
|
+
}
|
|
108
|
+
if (max && this.compare(date, max) > 0) {
|
|
109
|
+
return max;
|
|
110
|
+
}
|
|
111
|
+
return date;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kYXRlLXRpbWUvYWRhcHRlci9kYXRlLXRpbWUtYWRhcHRlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxFLDRGQUE0RjtBQUM1RixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FDcEQsc0JBQXNCLEVBQ3RCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLDRCQUE0QjtDQUN0QyxDQUNGLENBQUM7QUFFRixvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLDRCQUE0QjtJQUMxQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLE9BQU8sRUFBRSxvQkFBb0I7SUFDN0IsV0FBVyxFQUFFLFNBQVM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sT0FBZ0IsZUFBZTtJQUFyQztRQUlFLG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFLL0MsbUNBQW1DO1FBQ2hCLHNCQUFpQixHQUFHLFFBQVEsQ0FBQztRQUVoRCxzQ0FBc0M7UUFDbkIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO0lBbVFqRCxDQUFDO0lBM1FDLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBa0xEOzs7OztTQUtLO0lBQ0wsT0FBTyxDQUFDLEtBQVEsRUFBRSxNQUFTO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRCxNQUFNLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1g7YUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDbkIsT0FBTyxDQUFDLENBQUM7U0FDVjthQUFNO1lBQ0wsbURBQW1EO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQ7Ozs7O1NBS0s7SUFDTCxXQUFXLENBQUMsS0FBUSxFQUFFLE1BQVM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELE1BQU0sS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUVsQyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1g7YUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDbkIsT0FBTyxDQUFDLENBQUM7U0FDVjthQUFNO1lBQ0wsT0FBTyxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsTUFBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxJQUFPLEVBQUUsR0FBYyxFQUFFLEdBQWM7UUFDL0MsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkYXRlLXRpbWUtYWRhcHRlci5jbGFzc1xuICovXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuLCBMT0NBTEVfSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEluamVjdGlvblRva2VuIGZvciBkYXRlIHRpbWUgcGlja2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBsb2NhbGUgY29kZS4gKi9cbmV4cG9ydCBjb25zdCBPV0xfREFURV9USU1FX0xPQ0FMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnT1dMX0RBVEVfVElNRV9MT0NBTEUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6IE9XTF9EQVRFX1RJTUVfTE9DQUxFX0ZBQ1RPUllcbiAgfVxuKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBPV0xfREFURV9USU1FX0xPQ0FMRV9GQUNUT1JZKCk6IHN0cmluZyB7XG4gIHJldHVybiBpbmplY3QoTE9DQUxFX0lEKTtcbn1cblxuLyoqIFByb3ZpZGVyIGZvciBPV0xfREFURV9USU1FX0xPQ0FMRSBpbmplY3Rpb24gdG9rZW4uICovXG5leHBvcnQgY29uc3QgT1dMX0RBVEVfVElNRV9MT0NBTEVfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IE9XTF9EQVRFX1RJTUVfTE9DQUxFLFxuICB1c2VFeGlzdGluZzogTE9DQUxFX0lEXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVRpbWVBZGFwdGVyPFQ+IHtcbiAgLyoqIFRoZSBsb2NhbGUgdG8gdXNlIGZvciBhbGwgZGF0ZXMuICovXG4gIHByb3RlY3RlZCBsb2NhbGU6IGFueTtcblxuICAvKiogQSBzdHJlYW0gdGhhdCBlbWl0cyB3aGVuIHRoZSBsb2NhbGUgY2hhbmdlcy4gKi9cbiAgcHJvdGVjdGVkIF9sb2NhbGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgZ2V0IGxvY2FsZUNoYW5nZXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZUNoYW5nZXM7XG4gIH1cblxuICAvKiogdG90YWwgbWlsbGlzZWNvbmRzIGluIGEgZGF5LiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWlsbGlzZWNvbmRzSW5EYXkgPSA4NjQwMDAwMDtcblxuICAvKiogdG90YWwgbWlsbGlzZWNvbmRzIGluIGEgbWludXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWlsbGlzZW9uZHNJbk1pbnV0ZSA9IDYwMDAwO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXIgb2YgdGhlIGdpdmVuIGRhdGVcbiAgICovXG4gIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZVxuICAgKiAwIC0tIEphbnVhcnlcbiAgICogMTEgLS0gRGVjZW1iZXJcbiAgICogKi9cbiAgYWJzdHJhY3QgZ2V0TW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGdpdmVuIGRhdGVcbiAgICogMCAtLSBTdW5kYXlcbiAgICogNiAtLSBTYXR1cmRheVxuICAgKiAqL1xuICBhYnN0cmFjdCBnZXREYXkoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgbnVtIG9mIHRoZSBnaXZlbiBkYXRlXG4gICAqL1xuICBhYnN0cmFjdCBnZXREYXRlKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91cnMgb2YgdGhlIGdpdmVuIGRhdGVcbiAgICovXG4gIGFic3RyYWN0IGdldEhvdXJzKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlcyBvZiB0aGUgZ2l2ZW4gZGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0TWludXRlcyhkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZHMgb2YgdGhlIGdpdmVuIGRhdGVcbiAgICovXG4gIGFic3RyYWN0IGdldFNlY29uZHMoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZHMgdGltZXN0YW1wIG9mIHRoZSBnaXZlbiBkYXRlXG4gICAqL1xuICBhYnN0cmFjdCBnZXRUaW1lKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZS5cbiAgICovXG4gIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXMgYmV0d2VlbiB0aGUgZ2l2ZW4gZGF0ZXMuXG4gICAqIElmIGRhdGVMZWZ0IGlzIGJlZm9yZSBkYXRlUmlnaHQsIGl0IHdvdWxkIHJldHVybiBwb3NpdGl2ZSB2YWx1ZVxuICAgKiBJZiBkYXRlTGVmdCBpcyBhZnRlciBkYXRlUmlnaHQsIGl0IHdvdWxkIHJldHVybiBuZWdhdGl2ZSB2YWx1ZVxuICAgKi9cbiAgYWJzdHJhY3QgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKGRhdGVMZWZ0OiBULCBkYXRlUmlnaHQ6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG5hbWUgZm9yIHRoZSB5ZWFyIG9mIHRoZSBnaXZlbiBkYXRlLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0WWVhck5hbWUoZGF0ZTogVCk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBtb250aCBuYW1lc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2Ygd2VlayBuYW1lc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgbGlzdCBvZiBuYW1lcyBmb3IgdGhlIGRhdGVzIG9mIHRoZSBtb250aC5cbiAgICovXG4gIGFic3RyYWN0IGdldERhdGVOYW1lcygpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmV0dXJuIGEgRGF0ZSBvYmplY3QgYXMgYSBzdHJpbmcsIHVzaW5nIHRoZSBJU08gc3RhbmRhcmRcbiAgICovXG4gIGFic3RyYWN0IHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZ2l2ZSBkYXRlcyBhcmUgZXF1YWxcbiAgICovXG4gIGFic3RyYWN0IGlzRXF1YWwoZGF0ZUxlZnQ6IFQsIGRhdGVSaWdodDogVCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBnaXZlIGRhdGVzIGFyZSB0aGUgc2FtZSBkYXlcbiAgICovXG4gIGFic3RyYWN0IGlzU2FtZURheShkYXRlTGVmdDogVCwgZGF0ZVJpZ2h0OiBUKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGRhdGUgaXMgdmFsaWQuXG4gICAqL1xuICBhYnN0cmFjdCBpc1ZhbGlkKGRhdGU6IFQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXRzIGRhdGUgaW5zdGFuY2UgdGhhdCBpcyBub3QgdmFsaWQuXG4gICAqL1xuICBhYnN0cmFjdCBpbnZhbGlkKCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgY29uc2lkZXJlZCBhIGRhdGUgaW5zdGFuY2UgYnkgdGhpcyBEYXRlVGltZUFkYXB0ZXIuXG4gICAqL1xuICBhYnN0cmFjdCBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB5ZWFycyB0byB0aGUgZ2l2ZW4gZGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCBhbW91bnQ6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtb250aHMgdG8gdGhlIGdpdmVuIGRhdGVcbiAgICovXG4gIGFic3RyYWN0IGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFQsIGFtb3VudDogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgdG8gdGhlIGdpdmVuIGRhdGVcbiAgICovXG4gIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBhbW91bnQ6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaG91cnMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gICAqL1xuICBhYnN0cmFjdCBzZXRIb3VycyhkYXRlOiBULCBhbW91bnQ6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbWludXRlcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAgICovXG4gIGFic3RyYWN0IHNldE1pbnV0ZXMoZGF0ZTogVCwgYW1vdW50OiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gICAqL1xuICBhYnN0cmFjdCBzZXRTZWNvbmRzKGRhdGU6IFQsIGFtb3VudDogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRhdGUgd2l0aCB0aGUgZ2l2ZW4geWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSBhbmQgc2Vjb25kLiBEb2VzIG5vdCBhbGxvdyBvdmVyL3VuZGVyLWZsb3cgb2YgdGhlXG4gICAqIG1vbnRoIGFuZCBkYXRlLlxuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IFQ7XG4gIGFic3RyYWN0IGNyZWF0ZURhdGUoXG4gICAgeWVhcjogbnVtYmVyLFxuICAgIG1vbnRoOiBudW1iZXIsXG4gICAgZGF0ZTogbnVtYmVyLFxuICAgIGhvdXJzOiBudW1iZXIsXG4gICAgbWludXRlczogbnVtYmVyLFxuICAgIHNlY29uZHM6IG51bWJlclxuICApOiBUO1xuXG4gIC8qKlxuICAgKiBDbG9uZSB0aGUgZ2l2ZW4gZGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIEdldCBhIG5ldyBtb21lbnRcbiAgICogKi9cbiAgYWJzdHJhY3Qgbm93KCk6IFQ7XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBkYXRlIGFzIGEgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9ybWF0LlxuICAgKi9cbiAgYWJzdHJhY3QgZm9ybWF0KGRhdGU6IFQsIGRpc3BsYXlGb3JtYXQ6IGFueSk6IHN0cmluZztcblxuICAvKipcbiAgICogUGFyc2UgYSB1c2VyLXByb3ZpZGVkIHZhbHVlIHRvIGEgRGF0ZSBPYmplY3RcbiAgICovXG4gIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBhbnksIHBhcnNlRm9ybWF0OiBhbnkpOiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogQ29tcGFyZSB0d28gZ2l2ZW4gZGF0ZXNcbiAgICogMSBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBhZnRlciB0aGUgc2Vjb25kLFxuICAgKiAtMSBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBiZWZvcmUgdGhlIHNlY29uZFxuICAgKiAwIGlmIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogKi9cbiAgY29tcGFyZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChmaXJzdCkgfHwgIXRoaXMuaXNWYWxpZChzZWNvbmQpKSB7XG4gICAgICB0aHJvdyBFcnJvcignSlNOYXRpdmVEYXRlOiBDYW5ub3QgY29tcGFyZSBpbnZhbGlkIGRhdGVzLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGVGaXJzdCA9IHRoaXMuY2xvbmUoZmlyc3QpO1xuICAgIGNvbnN0IGRhdGVTZWNvbmQgPSB0aGlzLmNsb25lKHNlY29uZCk7XG5cbiAgICBjb25zdCBkaWZmID0gdGhpcy5nZXRUaW1lKGRhdGVGaXJzdCkgLSB0aGlzLmdldFRpbWUoZGF0ZVNlY29uZCk7XG5cbiAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGRpZmYgPiAwKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmV0dXJuIDAgaWYgZGlmZiBpcyAwOyByZXR1cm4gTmFOIGlmIGRpZmYgaXMgTmFOXG4gICAgICByZXR1cm4gZGlmZjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHdvIGdpdmVuIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSB5ZWFyXG4gICAqIDEgaWYgdGhlIGZpcnN0IGRhdGUncyB5ZWFyIGlzIGFmdGVyIHRoZSBzZWNvbmQsXG4gICAqIC0xIGlmIHRoZSBmaXJzdCBkYXRlJ3MgeWVhciBpcyBiZWZvcmUgdGhlIHNlY29uZFxuICAgKiAwIGlmIHR3byBnaXZlbiBkYXRlcyBhcmUgaW4gdGhlIHNhbWUgeWVhclxuICAgKiAqL1xuICBjb21wYXJlWWVhcihmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChmaXJzdCkgfHwgIXRoaXMuaXNWYWxpZChzZWNvbmQpKSB7XG4gICAgICB0aHJvdyBFcnJvcignSlNOYXRpdmVEYXRlOiBDYW5ub3QgY29tcGFyZSBpbnZhbGlkIGRhdGVzLicpO1xuICAgIH1cblxuICAgIGNvbnN0IHllYXJMZWZ0ID0gdGhpcy5nZXRZZWFyKGZpcnN0KTtcbiAgICBjb25zdCB5ZWFyUmlnaHQgPSB0aGlzLmdldFllYXIoc2Vjb25kKTtcblxuICAgIGNvbnN0IGRpZmYgPSB5ZWFyTGVmdCAtIHllYXJSaWdodDtcblxuICAgIGlmIChkaWZmIDwgMCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH0gZWxzZSBpZiAoZGlmZiA+IDApIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLiBUaGUgYDxtYXQtZGF0ZXBpY2tlcj5gIHdpbGwgY2FsbCB0aGlzXG4gICAqIG1ldGhvZCBvbiBhbGwgb2YgaXQncyBgQElucHV0KClgIHByb3BlcnRpZXMgdGhhdCBhY2NlcHQgZGF0ZXMuIEl0IGlzIHRoZXJlZm9yZSBwb3NzaWJsZSB0b1xuICAgKiBzdXBwb3J0IHBhc3NpbmcgdmFsdWVzIGZyb20geW91ciBiYWNrZW5kIGRpcmVjdGx5IHRvIHRoZXNlIHByb3BlcnRpZXMgYnkgb3ZlcnJpZGluZyB0aGlzIG1ldGhvZFxuICAgKiB0byBhbHNvIGRlc2VyaWFsaXplIHRoZSBmb3JtYXQgdXNlZCBieSB5b3VyIGJhY2tlbmQuXG4gICAqL1xuICBkZXNlcmlhbGl6ZSh2YWx1ZTogYW55KTogVCB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8ICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbG9jYWxlIHVzZWQgZm9yIGFsbCBkYXRlcy5cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGU6IGFueSkge1xuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgIHRoaXMuX2xvY2FsZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsYW1wIHRoZSBnaXZlbiBkYXRlIGJldHdlZW4gbWluIGFuZCBtYXggZGF0ZXMuXG4gICAqL1xuICBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlKGRhdGUsIG1heCkgPiAwKSB7XG4gICAgICByZXR1cm4gbWF4O1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* date-time-format.class
|
|
3
|
+
*/
|
|
4
|
+
import { InjectionToken } from '@angular/core';
|
|
5
|
+
/** InjectionToken for date time picker that can be used to override default format. */
|
|
6
|
+
export const OWL_DATE_TIME_FORMATS = new InjectionToken('OWL_DATE_TIME_FORMATS');
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZvcm1hdC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbmd4LXBpY2stZGF0ZXRpbWUvbGliL2RhdGUtdGltZS9hZGFwdGVyL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWS9DLHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRhdGUtdGltZS1mb3JtYXQuY2xhc3NcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE93bERhdGVUaW1lRm9ybWF0cyB7XG4gIHBhcnNlSW5wdXQ6IGFueTtcbiAgZnVsbFBpY2tlcklucHV0OiBhbnk7XG4gIGRhdGVQaWNrZXJJbnB1dDogYW55O1xuICB0aW1lUGlja2VySW5wdXQ6IGFueTtcbiAgbW9udGhZZWFyTGFiZWw6IGFueTtcbiAgZGF0ZUExMXlMYWJlbDogYW55O1xuICBtb250aFllYXJBMTF5TGFiZWw6IGFueTtcbn1cblxuLyoqIEluamVjdGlvblRva2VuIGZvciBkYXRlIHRpbWUgcGlja2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBmb3JtYXQuICovXG5leHBvcnQgY29uc3QgT1dMX0RBVEVfVElNRV9GT1JNQVRTID0gbmV3IEluamVjdGlvblRva2VuPE93bERhdGVUaW1lRm9ybWF0cz4oXG4gICdPV0xfREFURV9USU1FX0ZPUk1BVFMnXG4pO1xuIl19
|