ecabs-components 1.0.19 → 1.0.21
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/esm2022/ecabs-components.mjs +5 -0
- package/esm2022/lib/base/consts/date-mask.consts.mjs +57 -0
- package/esm2022/lib/base/directives/date-mask.directive.mjs +67 -0
- package/esm2022/lib/base/directives/date-mask.directive.module.mjs +22 -0
- package/esm2022/lib/base/directives/digits-only.directive.mjs +133 -0
- package/esm2022/lib/base/directives/digits-only.directive.module.mjs +22 -0
- package/esm2022/lib/base/directives/number-border.directive.mjs +58 -0
- package/esm2022/lib/base/directives/number-border.directive.module.mjs +22 -0
- package/esm2022/lib/base/element-base.mjs +105 -0
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +56 -0
- package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +52 -0
- package/esm2022/lib/base/hint/hint.component.mjs +21 -0
- package/esm2022/lib/base/hint/hint.module.mjs +20 -0
- package/esm2022/lib/base/validation/validation.component.mjs +75 -0
- package/esm2022/lib/base/validation/validation.module.mjs +20 -0
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +17 -0
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +20 -0
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +64 -0
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +21 -0
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +94 -0
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +36 -0
- package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +15 -0
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +89 -0
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +48 -0
- package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +15 -0
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +186 -0
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +64 -0
- package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +15 -0
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +199 -0
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +65 -0
- package/esm2022/lib/ecabs-date-time-range-picker/time-range.directive.mjs +48 -0
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +50 -0
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +20 -0
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +47 -0
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +20 -0
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +22 -0
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +19 -0
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +85 -0
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +24 -0
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +83 -0
- package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +23 -0
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +90 -0
- package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +22 -0
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +64 -0
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +39 -0
- package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +22 -0
- package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +19 -0
- package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +14 -0
- package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +28 -0
- package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +19 -0
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +111 -0
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +22 -0
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +53 -0
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +22 -0
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +68 -0
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +32 -0
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +316 -0
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +60 -0
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +19 -0
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +24 -0
- package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +48 -0
- package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +33 -0
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +65 -0
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +20 -0
- package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +144 -0
- package/esm2022/lib/ecabs-timepicker/config.model.mjs +2 -0
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +322 -0
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +20 -0
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +29 -0
- package/esm2022/lib/models/bread-crumb.mjs +2 -0
- package/esm2022/lib/models/timepicker.models.mjs +2 -0
- package/esm2022/lib/services/ecabs-components.service.mjs +31 -0
- package/esm2022/public-api.mjs +55 -0
- package/fesm2022/ecabs-components.mjs +3478 -0
- package/fesm2022/ecabs-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/base/consts/date-mask.consts.d.ts +7 -0
- package/lib/base/directives/date-mask.directive.d.ts +16 -0
- package/lib/base/directives/date-mask.directive.module.d.ts +8 -0
- package/lib/base/directives/digits-only.directive.d.ts +26 -0
- package/lib/base/directives/digits-only.directive.module.d.ts +8 -0
- package/lib/base/directives/number-border.directive.d.ts +13 -0
- package/lib/base/directives/number-border.directive.module.d.ts +8 -0
- package/lib/base/element-base.d.ts +28 -0
- package/lib/base/element-wrapper/element-wrapper.component.d.ts +19 -0
- package/lib/base/element-wrapper/element-wrapper.module.d.ts +16 -0
- package/lib/base/hint/hint.component.d.ts +8 -0
- package/lib/base/hint/hint.module.d.ts +10 -0
- package/lib/base/validation/validation.component.d.ts +24 -0
- package/lib/base/validation/validation.module.d.ts +10 -0
- package/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.d.ts +7 -0
- package/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.d.ts +10 -0
- package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +20 -0
- package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +11 -0
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +29 -0
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +12 -0
- package/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.d.ts +6 -0
- package/lib/ecabs-date-picker/ecabs-date-picker.component.d.ts +29 -0
- package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +15 -0
- package/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.d.ts +6 -0
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +51 -0
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +19 -0
- package/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.d.ts +6 -0
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.d.ts +58 -0
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +20 -0
- package/lib/ecabs-date-time-range-picker/time-range.directive.d.ts +15 -0
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.d.ts +31 -0
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +11 -0
- package/lib/ecabs-dialog-message/ecabs-dialog-message.component.d.ts +28 -0
- package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +11 -0
- package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.d.ts +12 -0
- package/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.d.ts +9 -0
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.d.ts +28 -0
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +14 -0
- package/lib/ecabs-increment/ecabs-increment.component.d.ts +26 -0
- package/lib/ecabs-increment/ecabs-increment.module.d.ts +13 -0
- package/lib/ecabs-input/ecabs-input.component.d.ts +27 -0
- package/lib/ecabs-input/ecabs-input.module.d.ts +12 -0
- package/lib/ecabs-language-selector/ecabs-language-selector.component.d.ts +20 -0
- package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +12 -0
- package/lib/ecabs-loading/ecabs-loading.component.d.ts +8 -0
- package/lib/ecabs-loading/ecabs-loading.module.d.ts +9 -0
- package/lib/ecabs-loading/spinner/spinner.component.d.ts +6 -0
- package/lib/ecabs-note/ecabs-note.component.d.ts +7 -0
- package/lib/ecabs-note/ecabs-note.module.d.ts +9 -0
- package/lib/ecabs-phone/ecabs-phone.component.d.ts +33 -0
- package/lib/ecabs-phone/ecabs-phone.module.d.ts +12 -0
- package/lib/ecabs-picker-header/ecabs-picker-header.component.d.ts +19 -0
- package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +12 -0
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.d.ts +24 -0
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +11 -0
- package/lib/ecabs-select/ecabs-select.component.d.ts +71 -0
- package/lib/ecabs-select/ecabs-select.module.d.ts +15 -0
- package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.d.ts +8 -0
- package/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.d.ts +9 -0
- package/lib/ecabs-table/ecabs-table.component.d.ts +18 -0
- package/lib/ecabs-table/ecabs-table.module.d.ts +12 -0
- package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +20 -0
- package/lib/ecabs-textarea/ecabs-textarea.module.d.ts +10 -0
- package/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.d.ts +40 -0
- package/lib/ecabs-timepicker/config.model.d.ts +5 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.component.d.ts +53 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.module.d.ts +10 -0
- package/lib/ecabs-timepicker/ecabs-timepicker.service.d.ts +12 -0
- package/lib/models/bread-crumb.d.ts +5 -0
- package/{src/lib/models/timepicker.models.ts → lib/models/timepicker.models.d.ts} +3 -4
- package/lib/services/ecabs-components.service.d.ts +16 -0
- package/package.json +33 -25
- package/{src/styles → styles}/material/overrides/_button.scss +1 -0
- package/styles/material/overrides/_icon.scss +3 -0
- package/{src/styles → styles}/material/overrides/_phone.scss +24 -2
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/assets/images/nothing-here.svg +0 -22
- package/src/lib/base/consts/date-mask.consts.ts +0 -70
- package/src/lib/base/directives/date-mask.directive.module.ts +0 -14
- package/src/lib/base/directives/date-mask.directive.ts +0 -58
- package/src/lib/base/directives/digits-only.directive.module.ts +0 -15
- package/src/lib/base/directives/digits-only.directive.ts +0 -129
- package/src/lib/base/directives/number-border.directive.module.ts +0 -14
- package/src/lib/base/directives/number-border.directive.ts +0 -57
- package/src/lib/base/element-base.ts +0 -72
- package/src/lib/base/element-wrapper/element-wrapper.component.html +0 -30
- package/src/lib/base/element-wrapper/element-wrapper.component.ts +0 -33
- package/src/lib/base/element-wrapper/element-wrapper.module.ts +0 -30
- package/src/lib/base/hint/hint.component.html +0 -1
- package/src/lib/base/hint/hint.component.scss +0 -0
- package/src/lib/base/hint/hint.component.ts +0 -12
- package/src/lib/base/hint/hint.module.ts +0 -13
- package/src/lib/base/validation/validation.component.html +0 -8
- package/src/lib/base/validation/validation.component.scss +0 -0
- package/src/lib/base/validation/validation.component.ts +0 -84
- package/src/lib/base/validation/validation.module.ts +0 -13
- package/src/lib/consts/tenant.consts.ts +0 -8
- package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.html +0 -11
- package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.scss +0 -0
- package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.spec.ts +0 -24
- package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.ts +0 -12
- package/src/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.ts +0 -12
- package/src/lib/ecabs-buttons/ecabs-buttons.component.html +0 -18
- package/src/lib/ecabs-buttons/ecabs-buttons.component.scss +0 -3
- package/src/lib/ecabs-buttons/ecabs-buttons.component.ts +0 -55
- package/src/lib/ecabs-buttons/ecabs-buttons.module.ts +0 -14
- package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.html +0 -27
- package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.scss +0 -15
- package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.ts +0 -81
- package/src/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.ts +0 -21
- package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.html +0 -4
- package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.scss +0 -0
- package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.spec.ts +0 -23
- package/src/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.ts +0 -11
- package/src/lib/ecabs-date-picker/ecabs-date-picker.component.html +0 -31
- package/src/lib/ecabs-date-picker/ecabs-date-picker.component.scss +0 -23
- package/src/lib/ecabs-date-picker/ecabs-date-picker.component.spec.ts +0 -24
- package/src/lib/ecabs-date-picker/ecabs-date-picker.component.ts +0 -72
- package/src/lib/ecabs-date-picker/ecabs-date-picker.module.ts +0 -29
- package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.html +0 -4
- package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.scss +0 -0
- package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.spec.ts +0 -23
- package/src/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.ts +0 -11
- package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.html +0 -31
- package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.scss +0 -36
- package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.spec.ts +0 -23
- package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.ts +0 -113
- package/src/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.ts +0 -50
- package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.html +0 -4
- package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.scss +0 -14
- package/src/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.ts +0 -11
- package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.html +0 -87
- package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.scss +0 -82
- package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.spec.ts +0 -23
- package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.ts +0 -185
- package/src/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.ts +0 -38
- package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.html +0 -4
- package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.scss +0 -5
- package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.spec.ts +0 -23
- package/src/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.ts +0 -10
- package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.html +0 -116
- package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.scss +0 -43
- package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.spec.ts +0 -24
- package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.ts +0 -206
- package/src/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.ts +0 -39
- package/src/lib/ecabs-date-time-range-picker/time-range.directive.ts +0 -38
- package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.html +0 -32
- package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.scss +0 -24
- package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.ts +0 -57
- package/src/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.ts +0 -13
- package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.html +0 -27
- package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.scss +0 -25
- package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.spec.ts +0 -38
- package/src/lib/ecabs-dialog-message/ecabs-dialog-message.component.ts +0 -49
- package/src/lib/ecabs-dialog-message/ecabs-dialog-message.module.ts +0 -13
- package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.html +0 -9
- package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.scss +0 -0
- package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.spec.ts +0 -34
- package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.ts +0 -22
- package/src/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.ts +0 -11
- package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.html +0 -33
- package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.scss +0 -79
- package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.spec.ts +0 -26
- package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.ts +0 -77
- package/src/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.ts +0 -17
- package/src/lib/ecabs-increment/ecabs-increment.component.html +0 -18
- package/src/lib/ecabs-increment/ecabs-increment.component.scss +0 -33
- package/src/lib/ecabs-increment/ecabs-increment.component.ts +0 -74
- package/src/lib/ecabs-increment/ecabs-increment.module.ts +0 -15
- package/src/lib/ecabs-input/ecabs-input.component.html +0 -26
- package/src/lib/ecabs-input/ecabs-input.component.ts +0 -85
- package/src/lib/ecabs-input/ecabs-input.module.ts +0 -14
- package/src/lib/ecabs-language-selector/ecabs-language-selector.component.html +0 -17
- package/src/lib/ecabs-language-selector/ecabs-language-selector.component.scss +0 -26
- package/src/lib/ecabs-language-selector/ecabs-language-selector.component.ts +0 -63
- package/src/lib/ecabs-language-selector/ecabs-language-selector.module.ts +0 -22
- package/src/lib/ecabs-loading/ecabs-loading.component.html +0 -7
- package/src/lib/ecabs-loading/ecabs-loading.component.spec.ts +0 -24
- package/src/lib/ecabs-loading/ecabs-loading.component.ts +0 -11
- package/src/lib/ecabs-loading/ecabs-loading.module.ts +0 -11
- package/src/lib/ecabs-loading/spinner/spinner.component.html +0 -5
- package/src/lib/ecabs-loading/spinner/spinner.component.scss +0 -61
- package/src/lib/ecabs-loading/spinner/spinner.component.spec.ts +0 -24
- package/src/lib/ecabs-loading/spinner/spinner.component.ts +0 -11
- package/src/lib/ecabs-note/ecabs-note.component.html +0 -10
- package/src/lib/ecabs-note/ecabs-note.component.scss +0 -29
- package/src/lib/ecabs-note/ecabs-note.component.ts +0 -27
- package/src/lib/ecabs-note/ecabs-note.module.ts +0 -11
- package/src/lib/ecabs-phone/ecabs-phone.component.html +0 -17
- package/src/lib/ecabs-phone/ecabs-phone.component.ts +0 -108
- package/src/lib/ecabs-phone/ecabs-phone.module.ts +0 -15
- package/src/lib/ecabs-picker-header/ecabs-picker-header.component.html +0 -12
- package/src/lib/ecabs-picker-header/ecabs-picker-header.component.scss +0 -16
- package/src/lib/ecabs-picker-header/ecabs-picker-header.component.ts +0 -61
- package/src/lib/ecabs-picker-header/ecabs-picker-header.module.ts +0 -15
- package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.html +0 -13
- package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.scss +0 -16
- package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.ts +0 -60
- package/src/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.ts +0 -18
- package/src/lib/ecabs-select/ecabs-select.component.html +0 -45
- package/src/lib/ecabs-select/ecabs-select.component.ts +0 -346
- package/src/lib/ecabs-select/ecabs-select.module.ts +0 -37
- package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.html +0 -7
- package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.scss +0 -11
- package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.spec.ts +0 -34
- package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.ts +0 -14
- package/src/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.ts +0 -14
- package/src/lib/ecabs-table/ecabs-table.component.html +0 -26
- package/src/lib/ecabs-table/ecabs-table.component.scss +0 -6
- package/src/lib/ecabs-table/ecabs-table.component.spec.ts +0 -24
- package/src/lib/ecabs-table/ecabs-table.component.ts +0 -42
- package/src/lib/ecabs-table/ecabs-table.module.ts +0 -19
- package/src/lib/ecabs-textarea/ecabs-textarea.component.html +0 -13
- package/src/lib/ecabs-textarea/ecabs-textarea.component.ts +0 -61
- package/src/lib/ecabs-textarea/ecabs-textarea.module.ts +0 -12
- package/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.html +0 -16
- package/src/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.ts +0 -126
- package/src/lib/ecabs-timepicker/config.model.ts +0 -5
- package/src/lib/ecabs-timepicker/ecabs-timepicker.component.html +0 -36
- package/src/lib/ecabs-timepicker/ecabs-timepicker.component.scss +0 -5
- package/src/lib/ecabs-timepicker/ecabs-timepicker.component.ts +0 -330
- package/src/lib/ecabs-timepicker/ecabs-timepicker.module.ts +0 -12
- package/src/lib/ecabs-timepicker/ecabs-timepicker.service.ts +0 -28
- package/src/lib/models/bread-crumb.ts +0 -5
- package/src/lib/services/ecabs-components.service.ts +0 -33
- package/src/styles/material/overrides/_icon.scss +0 -3
- package/src/test.ts +0 -27
- package/tailwind.config.js +0 -31
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
- /package/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/{src/styles → styles}/material/_theme.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_autocomplete.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_card.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_chip.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_datepicker.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_dialog.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_divider.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_expansion.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_form.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_menu.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_paginator.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_select.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_tab.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_table.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_toaster.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_toggle.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_toolbar.scss +0 -0
- /package/{src/styles → styles}/material/overrides/_tooltip.scss +0 -0
- /package/{src/styles → styles}/material/overrides/index.scss +0 -0
- /package/{src/styles → styles}/scss/base/_heading.scss +0 -0
- /package/{src/styles → styles}/scss/base/_normalize.scss +0 -0
- /package/{src/styles → styles}/scss/base/index.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_autocomplete.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_button.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_card.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_chip.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_datepicker.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_dialog.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_divider.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_form.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_icon.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_img.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_legend.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_list.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_map.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_percentage.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_phone.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_select.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_statuses.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_tab.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_table.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_timepicker.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_toaster.scss +0 -0
- /package/{src/styles → styles}/scss/modules/_tooltip.scss +0 -0
- /package/{src/styles → styles}/scss/modules/drag-drop.scss +0 -0
- /package/{src/styles → styles}/scss/modules/index.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_colors.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_fonts.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_functions.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_helpers.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_mixins.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_palettes.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/_variables.scss +0 -0
- /package/{src/styles → styles}/scss/utilities/index.scss +0 -0
- /package/{src/styles → styles}/styles.scss +0 -0
- /package/{src/styles → styles}/tailwind/index.scss +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2VjYWJzLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const maxValueMonth = [31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
2
|
+
const formatOrder = ['yyyy', 'yy', 'mm', 'dd', 'HH', 'MM', 'SS'];
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
4
|
+
export function createAutoCorrectedDatePipe(dateFormat = 'dd mm yyyy', { minYear = 1, maxYear = 9999 } = {}) {
|
|
5
|
+
const dateFormatArray = dateFormat
|
|
6
|
+
.split(/[^dmyHMS]+/)
|
|
7
|
+
.sort((a, b) => formatOrder.indexOf(a) - formatOrder.indexOf(b));
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
9
|
+
return function (conformedValue) {
|
|
10
|
+
const indexesOfPipedChars = [];
|
|
11
|
+
const maxValue = { dd: 31, mm: 12, yy: 99, yyyy: maxYear, HH: 23, MM: 59, SS: 59 };
|
|
12
|
+
const minValue = { dd: 1, mm: 1, yy: 0, yyyy: minYear, HH: 0, MM: 0, SS: 0 };
|
|
13
|
+
const conformedValueArr = conformedValue.split('');
|
|
14
|
+
// Check first digit
|
|
15
|
+
dateFormatArray.forEach((format) => {
|
|
16
|
+
const position = dateFormat.indexOf(format);
|
|
17
|
+
const maxFirstDigit = parseInt(maxValue[format].toString().substr(0, 1), 10);
|
|
18
|
+
if (parseInt(conformedValueArr[position], 10) > maxFirstDigit) {
|
|
19
|
+
conformedValueArr[position + 1] = conformedValueArr[position];
|
|
20
|
+
conformedValueArr[position] = 0;
|
|
21
|
+
indexesOfPipedChars.push(position);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
// Check for invalid date
|
|
25
|
+
let month = 0;
|
|
26
|
+
const isInvalid = dateFormatArray.some((format) => {
|
|
27
|
+
const position = dateFormat.indexOf(format);
|
|
28
|
+
const length = format.length;
|
|
29
|
+
const textValue = conformedValue.substr(position, length).replace(/\D/g, '');
|
|
30
|
+
const value = parseInt(textValue, 10);
|
|
31
|
+
if (format === 'mm') {
|
|
32
|
+
// tslint:disable-next-line: strict-boolean-expressions
|
|
33
|
+
month = value || 0;
|
|
34
|
+
}
|
|
35
|
+
const maxValueForFormat = format === 'dd' ? maxValueMonth[month] : maxValue[format];
|
|
36
|
+
if (format === 'yyyy' && (minYear !== 1 || maxYear !== 9999)) {
|
|
37
|
+
const scopedMaxValue = parseInt(maxValue[format].toString().substring(0, textValue.length), 10);
|
|
38
|
+
const scopedMinValue = parseInt(minValue[format].toString().substring(0, textValue.length), 10);
|
|
39
|
+
return value < scopedMinValue || value > scopedMaxValue;
|
|
40
|
+
}
|
|
41
|
+
if (format === 'HH' || format === 'MM') {
|
|
42
|
+
const scopedMaxValue = parseInt(maxValue[format].toString().substring(0, textValue.length), 10);
|
|
43
|
+
const scopedMinValue = parseInt(minValue[format].toString().substring(0, textValue.length), 10);
|
|
44
|
+
return value < scopedMinValue || value > scopedMaxValue;
|
|
45
|
+
}
|
|
46
|
+
return value > maxValueForFormat || (textValue.length === length && value < minValue[format]);
|
|
47
|
+
});
|
|
48
|
+
if (isInvalid) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
value: conformedValueArr.join(''),
|
|
53
|
+
indexesOfPipedChars,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmNvbnN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2NvbnN0cy9kYXRlLW1hc2suY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0UsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRSw0RUFBNEU7QUFDNUUsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFVBQVUsR0FBRyxZQUFZLEVBQUUsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFO0lBQ3pHLE1BQU0sZUFBZSxHQUFHLFVBQVU7U0FDL0IsS0FBSyxDQUFDLFlBQVksQ0FBQztTQUNuQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVuRSw0RUFBNEU7SUFDNUUsT0FBTyxVQUFVLGNBQWM7UUFDN0IsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FB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RUFBRTtnQkFDdEMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEcsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFaEcsT0FBTyxLQUFLLEdBQUcsY0FBYyxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUM7YUFDekQ7WUFFRCxPQUFPLEtBQUssR0FBRyxpQkFBaUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxtQkFBbUI7U0FDcEIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtYXhWYWx1ZU1vbnRoID0gWzMxLCAzMSwgMjksIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTtcclxuY29uc3QgZm9ybWF0T3JkZXIgPSBbJ3l5eXknLCAneXknLCAnbW0nLCAnZGQnLCAnSEgnLCAnTU0nLCAnU1MnXTtcclxuXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGVcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZShkYXRlRm9ybWF0ID0gJ2RkIG1tIHl5eXknLCB7IG1pblllYXIgPSAxLCBtYXhZZWFyID0gOTk5OSB9ID0ge30pIHtcclxuICBjb25zdCBkYXRlRm9ybWF0QXJyYXkgPSBkYXRlRm9ybWF0XHJcbiAgICAuc3BsaXQoL1teZG15SE1TXSsvKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IGZvcm1hdE9yZGVyLmluZGV4T2YoYSkgLSBmb3JtYXRPcmRlci5pbmRleE9mKGIpKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZVxyXG4gIHJldHVybiBmdW5jdGlvbiAoY29uZm9ybWVkVmFsdWUpIHtcclxuICAgIGNvbnN0IGluZGV4ZXNPZlBpcGVkQ2hhcnMgPSBbXTtcclxuICAgIGNvbnN0IG1heFZhbHVlID0geyBkZDogMzEsIG1tOiAxMiwgeXk6IDk5LCB5eXl5OiBtYXhZZWFyLCBISDogMjMsIE1NOiA1OSwgU1M6IDU5IH07XHJcbiAgICBjb25zdCBtaW5WYWx1ZSA9IHsgZGQ6IDEsIG1tOiAxLCB5eTogMCwgeXl5eTogbWluWWVhciwgSEg6IDAsIE1NOiAwLCBTUzogMCB9O1xyXG4gICAgY29uc3QgY29uZm9ybWVkVmFsdWVBcnIgPSBjb25mb3JtZWRWYWx1ZS5zcGxpdCgnJyk7XHJcblxyXG4gICAgLy8gQ2hlY2sgZmlyc3QgZGlnaXRcclxuICAgIGRhdGVGb3JtYXRBcnJheS5mb3JFYWNoKChmb3JtYXQpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBkYXRlRm9ybWF0LmluZGV4T2YoZm9ybWF0KTtcclxuICAgICAgY29uc3QgbWF4Rmlyc3REaWdpdCA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHIoMCwgMSksIDEwKTtcclxuXHJcbiAgICAgIGlmIChwYXJzZUludChjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbl0sIDEwKSA+IG1heEZpcnN0RGlnaXQpIHtcclxuICAgICAgICBjb25mb3JtZWRWYWx1ZUFycltwb3NpdGlvbiArIDFdID0gY29uZm9ybWVkVmFsdWVBcnJbcG9zaXRpb25dO1xyXG4gICAgICAgIGNvbmZvcm1lZFZhbHVlQXJyW3Bvc2l0aW9uXSA9IDA7XHJcbiAgICAgICAgaW5kZXhlc09mUGlwZWRDaGFycy5wdXNoKHBvc2l0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgZGF0ZVxyXG4gICAgbGV0IG1vbnRoID0gMDtcclxuICAgIGNvbnN0IGlzSW52YWxpZCA9IGRhdGVGb3JtYXRBcnJheS5zb21lKChmb3JtYXQpID0+IHtcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBkYXRlRm9ybWF0LmluZGV4T2YoZm9ybWF0KTtcclxuICAgICAgY29uc3QgbGVuZ3RoID0gZm9ybWF0Lmxlbmd0aDtcclxuICAgICAgY29uc3QgdGV4dFZhbHVlID0gY29uZm9ybWVkVmFsdWUuc3Vic3RyKHBvc2l0aW9uLCBsZW5ndGgpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQodGV4dFZhbHVlLCAxMCk7XHJcblxyXG4gICAgICBpZiAoZm9ybWF0ID09PSAnbW0nKSB7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBzdHJpY3QtYm9vbGVhbi1leHByZXNzaW9uc1xyXG4gICAgICAgIG1vbnRoID0gdmFsdWUgfHwgMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbWF4VmFsdWVGb3JGb3JtYXQgPSBmb3JtYXQgPT09ICdkZCcgPyBtYXhWYWx1ZU1vbnRoW21vbnRoXSA6IG1heFZhbHVlW2Zvcm1hdF07XHJcblxyXG4gICAgICBpZiAoZm9ybWF0ID09PSAneXl5eScgJiYgKG1pblllYXIgIT09IDEgfHwgbWF4WWVhciAhPT0gOTk5OSkpIHtcclxuICAgICAgICBjb25zdCBzY29wZWRNYXhWYWx1ZSA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuICAgICAgICBjb25zdCBzY29wZWRNaW5WYWx1ZSA9IHBhcnNlSW50KG1pblZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgc2NvcGVkTWluVmFsdWUgfHwgdmFsdWUgPiBzY29wZWRNYXhWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1hdCA9PT0gJ0hIJyB8fCBmb3JtYXQgPT09ICdNTScpIHtcclxuICAgICAgICBjb25zdCBzY29wZWRNYXhWYWx1ZSA9IHBhcnNlSW50KG1heFZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuICAgICAgICBjb25zdCBzY29wZWRNaW5WYWx1ZSA9IHBhcnNlSW50KG1pblZhbHVlW2Zvcm1hdF0udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdGV4dFZhbHVlLmxlbmd0aCksIDEwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIDwgc2NvcGVkTWluVmFsdWUgfHwgdmFsdWUgPiBzY29wZWRNYXhWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlID4gbWF4VmFsdWVGb3JGb3JtYXQgfHwgKHRleHRWYWx1ZS5sZW5ndGggPT09IGxlbmd0aCAmJiB2YWx1ZSA8IG1pblZhbHVlW2Zvcm1hdF0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGlzSW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IGNvbmZvcm1lZFZhbHVlQXJyLmpvaW4oJycpLFxyXG4gICAgICBpbmRleGVzT2ZQaXBlZENoYXJzLFxyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as textMask from 'vanilla-text-mask/dist/vanillaTextMask';
|
|
3
|
+
import { createAutoCorrectedDatePipe } from '../consts/date-mask.consts';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class MaskDateDirective {
|
|
6
|
+
element;
|
|
7
|
+
isDateTimeMask = false;
|
|
8
|
+
considerSeconds = false;
|
|
9
|
+
maskedInputController;
|
|
10
|
+
mask = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/]; // dd/mm/yyyy
|
|
11
|
+
maskDateTime = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/, ',', ' ', /\d/, /\d/, ':', /\d/, /\d/]; // dd/mm/yyyy, hh:mm
|
|
12
|
+
maskDateTimeWithSeconds = [
|
|
13
|
+
/\d/,
|
|
14
|
+
/\d/,
|
|
15
|
+
'/',
|
|
16
|
+
/\d/,
|
|
17
|
+
/\d/,
|
|
18
|
+
'/',
|
|
19
|
+
/\d/,
|
|
20
|
+
/\d/,
|
|
21
|
+
/\d/,
|
|
22
|
+
/\d/,
|
|
23
|
+
',',
|
|
24
|
+
' ',
|
|
25
|
+
/\d/,
|
|
26
|
+
/\d/,
|
|
27
|
+
':',
|
|
28
|
+
/\d/,
|
|
29
|
+
/\d/,
|
|
30
|
+
':',
|
|
31
|
+
/\d/,
|
|
32
|
+
/\d/,
|
|
33
|
+
]; // dd/mm/yyyy, hh:mm:ss
|
|
34
|
+
constructor(element) {
|
|
35
|
+
this.element = element;
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.maskedInputController = textMask.maskInput({
|
|
39
|
+
inputElement: this.element.nativeElement,
|
|
40
|
+
guide: true,
|
|
41
|
+
showMask: false,
|
|
42
|
+
pipe: this.isDateTimeMask
|
|
43
|
+
? this.considerSeconds
|
|
44
|
+
? createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM:SS')
|
|
45
|
+
: createAutoCorrectedDatePipe('dd/mm/yyyy, HH:MM')
|
|
46
|
+
: createAutoCorrectedDatePipe('dd/mm/yyyy'),
|
|
47
|
+
keepCharPositions: true,
|
|
48
|
+
mask: this.isDateTimeMask ? (this.considerSeconds ? this.maskDateTimeWithSeconds : this.maskDateTime) : this.mask,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
ngOnDestroy() {
|
|
52
|
+
this.maskedInputController.destroy();
|
|
53
|
+
}
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: MaskDateDirective, selector: "[appMaskDate]", inputs: { isDateTimeMask: "isDateTimeMask", considerSeconds: "considerSeconds" }, ngImport: i0 });
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirective, decorators: [{
|
|
58
|
+
type: Directive,
|
|
59
|
+
args: [{
|
|
60
|
+
selector: '[appMaskDate]',
|
|
61
|
+
}]
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isDateTimeMask: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], considerSeconds: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxLQUFLLFFBQVEsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLGlCQUFpQjtJQThCQztJQTdCcEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWpDLHFCQUFxQixDQUFDO0lBQ3RCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUNoRixZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDdEksdUJBQXVCLEdBQUc7UUFDeEIsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLEdBQUc7UUFDSCxHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsSUFBSTtRQUNKLElBQUk7S0FDTCxDQUFDLENBQUMsdUJBQXVCO0lBRTFCLFlBQTZCLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBRyxDQUFDO0lBRXBELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZTtvQkFDcEIsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixDQUFDO29CQUNyRCxDQUFDLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BELENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUM7WUFDN0MsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7U0FDbEgsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0FqRFUsaUJBQWlCOzRGQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lHQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHRleHRNYXNrIGZyb20gJ3ZhbmlsbGEtdGV4dC1tYXNrL2Rpc3QvdmFuaWxsYVRleHRNYXNrJztcclxuaW1wb3J0IHsgY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlIH0gZnJvbSAnLi4vY29uc3RzL2RhdGUtbWFzay5jb25zdHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwTWFza0RhdGVdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hc2tEYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGlzRGF0ZVRpbWVNYXNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29uc2lkZXJTZWNvbmRzID0gZmFsc2U7XHJcblxyXG4gIG1hc2tlZElucHV0Q29udHJvbGxlcjtcclxuICBtYXNrID0gWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dOyAvLyBkZC9tbS95eXl5XHJcbiAgbWFza0RhdGVUaW1lID0gWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC8sICcsJywgJyAnLCAvXFxkLywgL1xcZC8sICc6JywgL1xcZC8sIC9cXGQvXTsgLy8gZGQvbW0veXl5eSwgaGg6bW1cclxuICBtYXNrRGF0ZVRpbWVXaXRoU2Vjb25kcyA9IFtcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnLycsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgJy8nLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgICAnLCcsXHJcbiAgICAnICcsXHJcbiAgICAvXFxkLyxcclxuICAgIC9cXGQvLFxyXG4gICAgJzonLFxyXG4gICAgL1xcZC8sXHJcbiAgICAvXFxkLyxcclxuICAgICc6JyxcclxuICAgIC9cXGQvLFxyXG4gICAgL1xcZC8sXHJcbiAgXTsgLy8gZGQvbW0veXl5eSwgaGg6bW06c3NcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFza2VkSW5wdXRDb250cm9sbGVyID0gdGV4dE1hc2subWFza0lucHV0KHtcclxuICAgICAgaW5wdXRFbGVtZW50OiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgIHNob3dNYXNrOiBmYWxzZSxcclxuICAgICAgcGlwZTogdGhpcy5pc0RhdGVUaW1lTWFza1xyXG4gICAgICAgID8gdGhpcy5jb25zaWRlclNlY29uZHNcclxuICAgICAgICAgID8gY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdkZC9tbS95eXl5LCBISDpNTTpTUycpXHJcbiAgICAgICAgICA6IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSgnZGQvbW0veXl5eSwgSEg6TU0nKVxyXG4gICAgICAgIDogY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKCdkZC9tbS95eXl5JyksXHJcbiAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICBtYXNrOiB0aGlzLmlzRGF0ZVRpbWVNYXNrID8gKHRoaXMuY29uc2lkZXJTZWNvbmRzID8gdGhpcy5tYXNrRGF0ZVRpbWVXaXRoU2Vjb25kcyA6IHRoaXMubWFza0RhdGVUaW1lKSA6IHRoaXMubWFzayxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hc2tlZElucHV0Q29udHJvbGxlci5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { MaskDateDirective } from './date-mask.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class MaskDateDirectiveModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, declarations: [MaskDateDirective], imports: [CommonModule], exports: [MaskDateDirective] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, imports: [CommonModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaskDateDirectiveModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
declarations: [
|
|
15
|
+
MaskDateDirective,
|
|
16
|
+
],
|
|
17
|
+
exports: [
|
|
18
|
+
MaskDateDirective,
|
|
19
|
+
],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQVd4RCxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7eUdBQXZCLHVCQUF1QixpQkFOaEMsaUJBQWlCLGFBRlIsWUFBWSxhQUtyQixpQkFBaUI7eUdBR1IsdUJBQXVCLFlBUnZCLFlBQVk7OzRGQVFaLHVCQUF1QjtrQkFUbkMsUUFBUTttQkFBRTtvQkFDVCxPQUFPLEVBQUUsQ0FBRSxZQUFZLENBQUU7b0JBQ3pCLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hc2tEYXRlRGlyZWN0aXZlfSBmcm9tICcuL2RhdGUtbWFzay5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKCB7XHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE1hc2tEYXRlRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWFza0RhdGVEaXJlY3RpdmUsXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBNYXNrRGF0ZURpcmVjdGl2ZU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DigitsOnlyDirective {
|
|
4
|
+
el;
|
|
5
|
+
digitsOnly = false;
|
|
6
|
+
allowHyphen = false;
|
|
7
|
+
decimal = false;
|
|
8
|
+
decimalSeparator = '.';
|
|
9
|
+
unit = 0;
|
|
10
|
+
inputElement;
|
|
11
|
+
minus = '-';
|
|
12
|
+
minusCounter = 0;
|
|
13
|
+
regex;
|
|
14
|
+
decimalCounter = 0;
|
|
15
|
+
navigationKeys = [
|
|
16
|
+
'Backspace',
|
|
17
|
+
'Delete',
|
|
18
|
+
'Tab',
|
|
19
|
+
'Escape',
|
|
20
|
+
'Enter',
|
|
21
|
+
'Home',
|
|
22
|
+
'End',
|
|
23
|
+
'ArrowLeft',
|
|
24
|
+
'ArrowRight',
|
|
25
|
+
'Clear',
|
|
26
|
+
'Copy',
|
|
27
|
+
'Paste',
|
|
28
|
+
];
|
|
29
|
+
constructor(el) {
|
|
30
|
+
this.el = el;
|
|
31
|
+
this.inputElement = el.nativeElement;
|
|
32
|
+
}
|
|
33
|
+
onKeyDown(e) {
|
|
34
|
+
if (this.digitsOnly) {
|
|
35
|
+
if (this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.
|
|
36
|
+
(e.key === 'a' && e.ctrlKey) || // Allow: Ctrl+A
|
|
37
|
+
(e.key === 'c' && e.ctrlKey) || // Allow: Ctrl+C
|
|
38
|
+
(e.key === 'v' && e.ctrlKey) || // Allow: Ctrl+V
|
|
39
|
+
(e.key === 'x' && e.ctrlKey) || // Allow: Ctrl+X
|
|
40
|
+
(e.key === 'a' && e.metaKey) || // Allow: Cmd+A (Mac)
|
|
41
|
+
(e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)
|
|
42
|
+
(e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)
|
|
43
|
+
(e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)
|
|
44
|
+
(this.decimal && e.key === this.decimalSeparator && this.decimalCounter < 1) || // Allow: only one decimal point
|
|
45
|
+
(this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus
|
|
46
|
+
) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Ensure that it is a number and stop the keypress
|
|
50
|
+
if (e.key === ' ' || !this.regex.test(e.key)) {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
onKeyUp() {
|
|
56
|
+
if (this.digitsOnly) {
|
|
57
|
+
if (!this.decimal) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.decimalCounter = this.el.nativeElement.value.split(this.decimalSeparator).length - 1;
|
|
61
|
+
this.minusCounter = this.el.nativeElement.value.split(this.minus).length - 1;
|
|
62
|
+
if (isNaN(+this.inputElement.value)) {
|
|
63
|
+
this.inputElement.value = this.sanitizeInput(this.inputElement.value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
onPaste(event) {
|
|
68
|
+
if (this.digitsOnly) {
|
|
69
|
+
const pastedInput = event.clipboardData?.getData('text/plain');
|
|
70
|
+
this.pasteData(pastedInput);
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ngOnInit() {
|
|
75
|
+
this.regex = new RegExp(this.allowHyphen ? '^[\\d -]+$' : '\\d');
|
|
76
|
+
}
|
|
77
|
+
pasteData(pastedContent) {
|
|
78
|
+
const sanitizedContent = isNaN(+pastedContent) ? this.sanitizeInput(pastedContent) : pastedContent;
|
|
79
|
+
const pasted = document.execCommand('insertText', false, sanitizedContent);
|
|
80
|
+
if (!pasted) {
|
|
81
|
+
const { selectionStart: start, selectionEnd: end } = this.inputElement;
|
|
82
|
+
this.inputElement.setRangeText(sanitizedContent, start, end, 'end');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
sanitizeInput(input) {
|
|
86
|
+
let result = '';
|
|
87
|
+
if (this.decimal && this.isValidDecimal(input)) {
|
|
88
|
+
const regex = new RegExp(`^[\d -${this.decimalSeparator}]+$`, 'g');
|
|
89
|
+
result = input.replace(regex, '');
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
result = input.replace(`/${this.regex}/g`, '');
|
|
93
|
+
}
|
|
94
|
+
const maxLength = this.inputElement.maxLength;
|
|
95
|
+
if (maxLength > 0) {
|
|
96
|
+
// the input element has maxLength limit
|
|
97
|
+
const allowedLength = maxLength - this.inputElement.value.length;
|
|
98
|
+
result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
isValidDecimal(inputString) {
|
|
103
|
+
return inputString.split(this.decimalSeparator).length <= 2;
|
|
104
|
+
}
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
106
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DigitsOnlyDirective, selector: "[appDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirective, decorators: [{
|
|
109
|
+
type: Directive,
|
|
110
|
+
args: [{
|
|
111
|
+
selector: '[appDigitsOnly]',
|
|
112
|
+
}]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { digitsOnly: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], allowHyphen: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], decimal: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], decimalSeparator: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], unit: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], onKeyDown: [{
|
|
124
|
+
type: HostListener,
|
|
125
|
+
args: ['keydown', ['$event']]
|
|
126
|
+
}], onKeyUp: [{
|
|
127
|
+
type: HostListener,
|
|
128
|
+
args: ['keyup', ['$event']]
|
|
129
|
+
}], onPaste: [{
|
|
130
|
+
type: HostListener,
|
|
131
|
+
args: ['paste', ['$event']]
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUtuRixNQUFNLE9BQU8sbUJBQW1CO0lBZ0NYO0lBOUJuQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxPQUFPLEdBQUksS0FBSyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFJLEdBQUcsQ0FBQztJQUN4QixJQUFJLEdBQUksQ0FBQyxDQUFDO0lBRW5CLFlBQVksQ0FBbUI7SUFDL0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBRVAsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGNBQWMsR0FBRztRQUNoQyxXQUFXO1FBQ1gsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87S0FDUixDQUFDO0lBRUYsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJ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LFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsd0NBQXdDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakUsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7d0dBMUhVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO2lHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNEJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBEaWdpdHNPbmx5XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/ID0gJy4nO1xyXG4gIEBJbnB1dCgpIHVuaXQ/ID0gMDtcclxuXHJcbiAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIG1pbnVzID0gJy0nO1xyXG4gIG1pbnVzQ291bnRlciA9IDA7XHJcbiAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbENvdW50ZXIgPCAxKSB8fCAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMubWludXMgJiYgdGhpcy5taW51c0NvdW50ZXIgPCAxKSAvLyBBbGxvdzogb25seSBvbmUgbWludXNcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgIXRoaXMucmVnZXgudGVzdChlLmtleSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBvbktleVVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCAtIDE7XHJcbiAgICAgIHRoaXMubWludXNDb3VudGVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMubWludXMpLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICBpZiAoaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpIGFzIHN0cmluZztcclxuICAgICAgdGhpcy5wYXN0ZURhdGEocGFzdGVkSW5wdXQpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmFsbG93SHlwaGVuID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzdGVEYXRhKHBhc3RlZENvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IGlzTmFOKCtwYXN0ZWRDb250ZW50KSA/IHRoaXMuc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KSA6IHBhc3RlZENvbnRlbnQ7XHJcbiAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgIGlmICghcGFzdGVkKSB7XHJcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQ6IHN0YXJ0LCBzZWxlY3Rpb25FbmQ6IGVuZCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCBhcyBudW1iZXIsIGVuZCBhcyBudW1iZXIsICdlbmQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeW1xcZCAtJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9XSskYCwgJ2cnKTtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShgLyR7dGhpcy5yZWdleH0vZ2AsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC5tYXhMZW5ndGg7XHJcblxyXG4gICAgaWYgKG1heExlbmd0aCA+IDApIHtcclxuICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxyXG4gICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID0gbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjaW1hbChpbnB1dFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXRTdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZykubGVuZ3RoIDw9IDI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { DigitsOnlyDirective } from './digits-only.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DigitsOnlyDirectivesModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, declarations: [DigitsOnlyDirective], imports: [CommonModule], exports: [DigitsOnlyDirective] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, imports: [CommonModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DigitsOnlyDirectivesModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
declarations: [
|
|
15
|
+
DigitsOnlyDirective,
|
|
16
|
+
],
|
|
17
|
+
exports: [
|
|
18
|
+
DigitsOnlyDirective,
|
|
19
|
+
],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZGlnaXRzLW9ubHkuZGlyZWN0aXZlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXOUQsTUFBTSxPQUFPLDBCQUEwQjt3R0FBMUIsMEJBQTBCO3lHQUExQiwwQkFBMEIsaUJBTm5DLG1CQUFtQixhQUZWLFlBQVksYUFLckIsbUJBQW1CO3lHQUdWLDBCQUEwQixZQVIxQixZQUFZOzs0RkFRWiwwQkFBMEI7a0JBVHRDLFFBQVE7bUJBQUU7b0JBQ1QsT0FBTyxFQUFFLENBQUUsWUFBWSxDQUFFO29CQUN6QixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWdpdHNPbmx5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaWdpdHMtb25seS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKCB7XHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERpZ2l0c09ubHlEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEaWdpdHNPbmx5RGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRGlnaXRzT25seURpcmVjdGl2ZXNNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NumberBorderDirective {
|
|
4
|
+
el;
|
|
5
|
+
maxValue;
|
|
6
|
+
minValue;
|
|
7
|
+
inputElement;
|
|
8
|
+
constructor(el) {
|
|
9
|
+
this.el = el;
|
|
10
|
+
this.inputElement = el.nativeElement;
|
|
11
|
+
}
|
|
12
|
+
onKeyUp(e) {
|
|
13
|
+
const value = +e.target.value;
|
|
14
|
+
if (isNaN(value)) {
|
|
15
|
+
this.inputElement.value = this.sanitizeInput(e.target.value);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (this.maxValue) {
|
|
19
|
+
if (value > this.maxValue) {
|
|
20
|
+
this.inputElement.value = this.sanitizeInput(this.maxValue.toString());
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (this.minValue && this.minValue !== value) {
|
|
25
|
+
if (value < this.minValue) {
|
|
26
|
+
this.inputElement.value = this.sanitizeInput(this.minValue.toString());
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
sanitizeInput(input) {
|
|
32
|
+
let result = '';
|
|
33
|
+
const regex = new RegExp(`/\d+/g`);
|
|
34
|
+
result = input.replace(regex, '');
|
|
35
|
+
const maxLength = this.inputElement.maxLength;
|
|
36
|
+
if (maxLength > 0) {
|
|
37
|
+
const allowedLength = maxLength - this.inputElement.value.length;
|
|
38
|
+
result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NumberBorderDirective, selector: "[appNumberBorder]", inputs: { maxValue: "maxValue", minValue: "minValue" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirective, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: '[appNumberBorder]',
|
|
49
|
+
}]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { maxValue: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], minValue: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], onKeyUp: [{
|
|
55
|
+
type: HostListener,
|
|
56
|
+
args: ['keyup', ['$event']]
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJvcmRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL251bWJlci1ib3JkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0UsTUFBTSxPQUFPLHFCQUFxQjtJQU1iO0lBTFYsUUFBUSxDQUFTO0lBQ2pCLFFBQVEsQ0FBUztJQUUxQixZQUFZLENBQW1CO0lBRS9CLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBR0QsT0FBTyxDQUFDLENBQUM7UUFDUCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRXZFLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQzVDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUV2RSxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBRTlDLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtZQUNqQixNQUFNLGFBQWEsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pFLE1BQU0sR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3RFO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0FsRFUscUJBQXFCOzRGQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7aUdBRVUsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcE51bWJlckJvcmRlcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyQm9yZGVyRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBtYXhWYWx1ZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG1pblZhbHVlOiBudW1iZXI7XHJcblxyXG4gIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcChlKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9ICtlLnRhcmdldC52YWx1ZTtcclxuXHJcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KGUudGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhWYWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUgPiB0aGlzLm1heFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLnNhbml0aXplSW5wdXQodGhpcy5tYXhWYWx1ZS50b1N0cmluZygpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWluVmFsdWUgJiYgdGhpcy5taW5WYWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlIDwgdGhpcy5taW5WYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMubWluVmFsdWUudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYW5pdGl6ZUlucHV0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAvXFxkKy9nYCk7XHJcbiAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcblxyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xyXG5cclxuICAgIGlmIChtYXhMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPSBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgIHJlc3VsdCA9IGFsbG93ZWRMZW5ndGggPiAwID8gcmVzdWx0LnN1YnN0cmluZygwLCBhbGxvd2VkTGVuZ3RoKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { NumberBorderDirective } from './number-border.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NumberBorderDirectiveModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, declarations: [NumberBorderDirective], imports: [CommonModule], exports: [NumberBorderDirective] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, imports: [CommonModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberBorderDirectiveModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
declarations: [
|
|
15
|
+
NumberBorderDirective,
|
|
16
|
+
],
|
|
17
|
+
exports: [
|
|
18
|
+
NumberBorderDirective,
|
|
19
|
+
],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJvcmRlci5kaXJlY3RpdmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9udW1iZXItYm9yZGVyLmRpcmVjdGl2ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBV2xFLE1BQU0sT0FBTywyQkFBMkI7d0dBQTNCLDJCQUEyQjt5R0FBM0IsMkJBQTJCLGlCQU5wQyxxQkFBcUIsYUFGWixZQUFZLGFBS3JCLHFCQUFxQjt5R0FHWiwyQkFBMkIsWUFSM0IsWUFBWTs7NEZBUVosMkJBQTJCO2tCQVR2QyxRQUFRO21CQUFFO29CQUNULE9BQU8sRUFBRSxDQUFFLFlBQVksQ0FBRTtvQkFDekIsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOdW1iZXJCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci1ib3JkZXIuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBOdW1iZXJCb3JkZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOdW1iZXJCb3JkZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJCb3JkZXJEaXJlY3RpdmVNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Input, Output, EventEmitter, Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export default class ElementBaseComponent {
|
|
4
|
+
type;
|
|
5
|
+
name;
|
|
6
|
+
label;
|
|
7
|
+
placeholder = '';
|
|
8
|
+
validationLabel;
|
|
9
|
+
disabled = false;
|
|
10
|
+
showValidation = true;
|
|
11
|
+
showValidationOnNotTouched = false;
|
|
12
|
+
hideValidationMessage = false;
|
|
13
|
+
iconClass = '';
|
|
14
|
+
loading = false;
|
|
15
|
+
showHint = false;
|
|
16
|
+
maxLength;
|
|
17
|
+
tooltip;
|
|
18
|
+
showAsterisk = true;
|
|
19
|
+
focused = new EventEmitter();
|
|
20
|
+
focusOuted = new EventEmitter();
|
|
21
|
+
control;
|
|
22
|
+
required = false;
|
|
23
|
+
getData() {
|
|
24
|
+
return {
|
|
25
|
+
type: this.type || 'text',
|
|
26
|
+
label: this.label,
|
|
27
|
+
placeholder: this.placeholder,
|
|
28
|
+
validationLabel: this.validationLabel,
|
|
29
|
+
disabled: this.disabled,
|
|
30
|
+
showValidation: this.showValidation,
|
|
31
|
+
showValidationOnNotTouched: this.showValidationOnNotTouched,
|
|
32
|
+
hideValidationMessage: this.hideValidationMessage,
|
|
33
|
+
iconClass: this.iconClass,
|
|
34
|
+
control: this.control,
|
|
35
|
+
loading: this.loading,
|
|
36
|
+
showHint: this.showHint,
|
|
37
|
+
maxLength: this.maxLength,
|
|
38
|
+
tooltip: this.tooltip,
|
|
39
|
+
name: this.name,
|
|
40
|
+
required: this.isRequired(this.control),
|
|
41
|
+
showAsterisk: this.showAsterisk,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
isRequired = (ctrl) => {
|
|
45
|
+
if (ctrl?.validator) {
|
|
46
|
+
const validator = ctrl.validator({});
|
|
47
|
+
if (validator && validator['required']) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (ctrl?.['controls']) {
|
|
52
|
+
for (const name in ctrl['controls']) {
|
|
53
|
+
if (ctrl['controls'][name]) {
|
|
54
|
+
if (this.isRequired(ctrl['controls'][name])) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
};
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ElementBaseComponent, selector: "ng-component", inputs: { type: "type", name: "name", label: "label", placeholder: "placeholder", validationLabel: "validationLabel", disabled: "disabled", showValidation: "showValidation", showValidationOnNotTouched: "showValidationOnNotTouched", hideValidationMessage: "hideValidationMessage", iconClass: "iconClass", loading: "loading", showHint: "showHint", maxLength: "maxLength", tooltip: "tooltip", showAsterisk: "showAsterisk" }, outputs: { focused: "focused", focusOuted: "focusOuted" }, ngImport: i0, template: '', isInline: true });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementBaseComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{
|
|
68
|
+
template: '',
|
|
69
|
+
}]
|
|
70
|
+
}], propDecorators: { type: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], name: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], label: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], placeholder: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], validationLabel: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], disabled: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], showValidation: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], showValidationOnNotTouched: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], hideValidationMessage: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], iconClass: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], loading: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], showHint: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], maxLength: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], tooltip: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], showAsterisk: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], focused: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], focusOuted: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}] } });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZWxlbWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQW9CO0lBQzlCLElBQUksQ0FBUztJQUNiLElBQUksQ0FBUztJQUNiLEtBQUssQ0FBUztJQUNkLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsZUFBZSxDQUFTO0lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QiwwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFDbkMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsU0FBUyxDQUFVO0lBQ25CLE9BQU8sQ0FBVTtJQUNqQixZQUFZLEdBQVksSUFBSSxDQUFDO0lBRTVCLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRS9DLE9BQU8sQ0FBc0I7SUFDN0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUUxQixPQUFPO1FBQ0wsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU07WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzNELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDakQsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTyxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQVcsRUFBRTtRQUMxQyxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFxQixDQUFDLENBQUM7WUFDeEQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO3dCQUMzQyxPQUFPLElBQUksQ0FBQztxQkFDYjtpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQzt3R0FoRWlCLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHFoQkFGN0IsRUFBRTs7NEZBRU8sb0JBQW9CO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbn0pXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVsZW1lbnRCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0eXBlITpzdHJpbmc7XHJcbiAgQElucHV0KCkgbmFtZSE6c3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsITpzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSB2YWxpZGF0aW9uTGFiZWwhOnN0cmluZztcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbk9uTm90VG91Y2hlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVWYWxpZGF0aW9uTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGljb25DbGFzcyA9ICcnO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93SGludDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBc3RlcmlzazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXREYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0aGlzLnR5cGUgfHwgJ3RleHQnLFxyXG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICAgIHZhbGlkYXRpb25MYWJlbDogdGhpcy52YWxpZGF0aW9uTGFiZWwsXHJcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxyXG4gICAgICBzaG93VmFsaWRhdGlvbjogdGhpcy5zaG93VmFsaWRhdGlvbixcclxuICAgICAgc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQ6IHRoaXMuc2hvd1ZhbGlkYXRpb25Pbk5vdFRvdWNoZWQsXHJcbiAgICAgIGhpZGVWYWxpZGF0aW9uTWVzc2FnZTogdGhpcy5oaWRlVmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIGljb25DbGFzczogdGhpcy5pY29uQ2xhc3MsXHJcbiAgICAgIGNvbnRyb2w6IHRoaXMuY29udHJvbCxcclxuICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxyXG4gICAgICBzaG93SGludDogdGhpcy5zaG93SGludCxcclxuICAgICAgbWF4TGVuZ3RoOiB0aGlzLm1heExlbmd0aCxcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgIHJlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQodGhpcy5jb250cm9sKSxcclxuICAgICAgc2hvd0FzdGVyaXNrOiB0aGlzLnNob3dBc3RlcmlzayxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUmVxdWlyZWQgPSAoY3RybDogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgICBpZiAoY3RybD8udmFsaWRhdG9yKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGN0cmwudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICAgIGlmICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3RybD8uWydjb250cm9scyddKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBjdHJsWydjb250cm9scyddKSB7XHJcbiAgICAgICAgaWYgKGN0cmxbJ2NvbnRyb2xzJ11bbmFtZV0pIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQoY3RybFsnY29udHJvbHMnXVtuYW1lXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH07XHJcbn1cclxuIl19
|