@wavemaker/app-ng-runtime 11.14.1-rc.6310 → 11.14.2-rc.242
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/components/advanced/carousel/bundles/index.umd.js +15 -1
- package/components/advanced/carousel/carousel.directive.d.ts +1 -0
- package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
- package/components/advanced/carousel/fesm2022/index.mjs +15 -1
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/bundles/index.umd.js +24 -3
- package/components/advanced/login/esm2022/login.component.mjs +25 -4
- package/components/advanced/login/fesm2022/index.mjs +24 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/login.component.d.ts +5 -2
- package/components/base/bundles/index.umd.js +331 -36
- package/components/base/directives/show-in-device.directive.d.ts +2 -1
- package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
- package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
- package/components/base/esm2022/utils/widget-utils.mjs +3 -3
- package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
- package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
- package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
- package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
- package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
- package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
- package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
- package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
- package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
- package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
- package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
- package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
- package/components/base/fesm2022/index.mjs +327 -34
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/pipes/custom-pipes.d.ts +5 -5
- package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
- package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
- package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
- package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
- package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
- package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
- package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
- package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
- package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
- package/components/basic/anchor/bundles/index.umd.js +13 -1
- package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
- package/components/basic/anchor/fesm2022/index.mjs +13 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/bundles/index.umd.js +13 -1
- package/components/basic/html/esm2022/html.directive.mjs +14 -2
- package/components/basic/html/fesm2022/index.mjs +13 -1
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/bundles/index.umd.js +17 -1
- package/components/basic/label/esm2022/label.directive.mjs +18 -2
- package/components/basic/label/fesm2022/index.mjs +17 -1
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/label.directive.d.ts +3 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
- package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
- package/components/basic/search/bundles/index.umd.js +31 -5
- package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
- package/components/basic/search/esm2022/search.component.mjs +20 -3
- package/components/basic/search/fesm2022/index.mjs +31 -5
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +5 -3
- package/components/basic/search/search.component.d.ts +3 -2
- package/components/basic/spinner/bundles/index.umd.js +9 -1
- package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
- package/components/basic/spinner/fesm2022/index.mjs +9 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/spinner.component.d.ts +4 -2
- package/components/chart/bundles/index.umd.js +21 -3
- package/components/chart/esm2022/chart.component.mjs +22 -4
- package/components/chart/fesm2022/index.mjs +21 -3
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
- package/components/containers/accordion/accordion.directive.d.ts +5 -2
- package/components/containers/accordion/bundles/index.umd.js +49 -2
- package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
- package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
- package/components/containers/accordion/fesm2022/index.mjs +49 -2
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +13 -0
- package/components/containers/panel/esm2022/panel.component.mjs +14 -1
- package/components/containers/panel/fesm2022/index.mjs +13 -0
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/panel.component.d.ts +3 -2
- package/components/containers/tabs/bundles/index.umd.js +54 -2
- package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
- package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
- package/components/containers/tabs/fesm2022/index.mjs +54 -2
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
- package/components/containers/tabs/tabs.component.d.ts +5 -2
- package/components/containers/wizard/bundles/index.umd.js +47 -3
- package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
- package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
- package/components/containers/wizard/fesm2022/index.mjs +47 -3
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
- package/components/containers/wizard/wizard.component.d.ts +4 -2
- package/components/data/card/bundles/index.umd.js +17 -1
- package/components/data/card/card-content/card-content.component.d.ts +3 -2
- package/components/data/card/card.component.d.ts +4 -2
- package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
- package/components/data/card/esm2022/card.component.mjs +13 -2
- package/components/data/card/fesm2022/index.mjs +17 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +92 -0
- package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
- package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
- package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
- package/components/data/form/esm2022/form.component.mjs +27 -1
- package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
- package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
- package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
- package/components/data/form/fesm2022/index.mjs +92 -0
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/form-action/form-action.directive.d.ts +3 -2
- package/components/data/form/form-field/form-field.directive.d.ts +3 -2
- package/components/data/form/form-widget.directive.d.ts +3 -2
- package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
- package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
- package/components/data/form/live-form/live-form.directive.d.ts +3 -1
- package/components/data/list/bundles/index.umd.js +213 -19
- package/components/data/list/esm2022/list-item.directive.mjs +95 -11
- package/components/data/list/esm2022/list.component.mjs +120 -10
- package/components/data/list/fesm2022/index.mjs +213 -19
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list-item.directive.d.ts +7 -2
- package/components/data/list/list.component.d.ts +7 -0
- package/components/data/live-table/bundles/index.umd.js +13 -1
- package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
- package/components/data/live-table/fesm2022/index.mjs +13 -1
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/live-table.component.d.ts +4 -2
- package/components/data/pagination/bundles/index.umd.js +57 -4
- package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
- package/components/data/pagination/fesm2022/index.mjs +57 -4
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/pagination.component.d.ts +4 -2
- package/components/data/table/bundles/index.umd.js +345 -15
- package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
- package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
- package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
- package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
- package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
- package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
- package/components/data/table/esm2022/table.component.mjs +193 -12
- package/components/data/table/fesm2022/index.mjs +345 -15
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table-action/table-action.directive.d.ts +3 -2
- package/components/data/table/table-column/table-column.directive.d.ts +3 -2
- package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
- package/components/data/table/table-cud.directive.d.ts +3 -1
- package/components/data/table/table-filter.directive.d.ts +3 -1
- package/components/data/table/table-row/table-row.directive.d.ts +3 -2
- package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
- package/components/data/table/table.component.d.ts +6 -2
- package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
- package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
- package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +15 -2
- package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
- package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
- package/components/dialogs/default/fesm2022/index.mjs +15 -2
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
- package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
- package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
- package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
- package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
- package/components/input/base-form/base-form.component.d.ts +4 -2
- package/components/input/base-form/bundles/index.umd.js +16 -2
- package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
- package/components/input/base-form/fesm2022/index.mjs +16 -2
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
- package/components/input/base-form-custom/bundles/index.umd.js +13 -2
- package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
- package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +7 -0
- package/components/input/checkbox/checkbox.component.d.ts +3 -2
- package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
- package/components/input/checkbox/fesm2022/index.mjs +7 -0
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/bundles/index.umd.js +18 -2
- package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
- package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
- package/components/input/checkboxset/fesm2022/index.mjs +18 -2
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/bundles/index.umd.js +45 -5
- package/components/input/chips/chips.component.d.ts +3 -2
- package/components/input/chips/esm2022/chips.component.mjs +46 -6
- package/components/input/chips/fesm2022/index.mjs +45 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +8 -0
- package/components/input/color-picker/color-picker.component.d.ts +3 -2
- package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
- package/components/input/color-picker/fesm2022/index.mjs +8 -0
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/bundles/index.umd.js +10 -1
- package/components/input/composite/composite.directive.d.ts +3 -2
- package/components/input/composite/esm2022/composite.directive.mjs +11 -2
- package/components/input/composite/fesm2022/index.mjs +10 -1
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/bundles/index.umd.js +7 -0
- package/components/input/currency/currency.component.d.ts +3 -2
- package/components/input/currency/esm2022/currency.component.mjs +8 -1
- package/components/input/currency/fesm2022/index.mjs +7 -0
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
- package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
- package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/bundles/index.umd.js +22 -0
- package/components/input/epoch/date/date.component.d.ts +1 -0
- package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
- package/components/input/epoch/date/fesm2022/index.mjs +22 -0
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +25 -8
- package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
- package/components/input/file-upload/fesm2022/index.mjs +25 -8
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/file-upload.component.d.ts +3 -0
- package/components/input/number/bundles/index.umd.js +8 -0
- package/components/input/number/esm2022/number.component.mjs +9 -1
- package/components/input/number/fesm2022/index.mjs +8 -0
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/number.component.d.ts +3 -2
- package/components/input/radioset/bundles/index.umd.js +18 -2
- package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
- package/components/input/radioset/fesm2022/index.mjs +18 -2
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/radioset.component.d.ts +4 -2
- package/components/input/rating/bundles/index.umd.js +10 -0
- package/components/input/rating/esm2022/rating.component.mjs +11 -1
- package/components/input/rating/fesm2022/index.mjs +10 -0
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/rating.component.d.ts +3 -2
- package/components/input/select/bundles/index.umd.js +6 -0
- package/components/input/select/esm2022/select.component.mjs +7 -1
- package/components/input/select/fesm2022/index.mjs +6 -0
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/select.component.d.ts +3 -2
- package/components/input/slider/bundles/index.umd.js +10 -0
- package/components/input/slider/esm2022/slider.component.mjs +11 -1
- package/components/input/slider/fesm2022/index.mjs +10 -0
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/slider.component.d.ts +3 -2
- package/components/input/switch/bundles/index.umd.js +22 -2
- package/components/input/switch/esm2022/switch.component.mjs +23 -3
- package/components/input/switch/fesm2022/index.mjs +22 -2
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/switch.component.d.ts +3 -2
- package/components/input/text/bundles/index.umd.js +36 -0
- package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
- package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
- package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
- package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
- package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
- package/components/input/text/fesm2022/index.mjs +36 -0
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
- package/components/input/text/input-color/input-color.component.d.ts +3 -2
- package/components/input/text/input-email/input-email.component.d.ts +3 -2
- package/components/input/text/input-number/input-number.component.d.ts +3 -2
- package/components/input/text/input-text/input-text.component.d.ts +3 -2
- package/components/input/textarea/bundles/index.umd.js +7 -0
- package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
- package/components/input/textarea/fesm2022/index.mjs +7 -0
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/textarea.component.d.ts +3 -2
- package/components/navigation/menu/bundles/index.umd.js +55 -6
- package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
- package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
- package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
- package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
- package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
- package/components/navigation/menu/fesm2022/index.mjs +55 -6
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
- package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
- package/components/navigation/menu/nav/nav.component.d.ts +3 -2
- package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
- package/components/navigation/navbar/bundles/index.umd.js +5 -0
- package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
- package/components/navigation/navbar/fesm2022/index.mjs +5 -0
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/navbar.component.d.ts +3 -2
- package/components/navigation/popover/bundles/index.umd.js +65 -13
- package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
- package/components/navigation/popover/fesm2022/index.mjs +62 -10
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/popover.component.d.ts +11 -3
- package/components/page/default/bundles/index.umd.js +30 -6
- package/components/page/default/esm2022/layout.directive.mjs +9 -1
- package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
- package/components/page/default/esm2022/router-outlet.directive.mjs +13 -6
- package/components/page/default/fesm2022/index.mjs +30 -6
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/layout.directive.d.ts +3 -2
- package/components/page/default/page-content/page-content.component.d.ts +3 -2
- package/components/page/default/router-outlet.directive.d.ts +5 -2
- package/components/page/left-panel/bundles/index.umd.js +16 -0
- package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
- package/components/page/left-panel/fesm2022/index.mjs +16 -0
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/left-panel.directive.d.ts +3 -2
- package/components/page/top-nav/bundles/index.umd.js +2 -1
- package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- package/components/page/top-nav/fesm2022/index.mjs +2 -1
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/prefab/bundles/index.umd.js +4 -0
- package/components/prefab/esm2022/prefab.directive.mjs +5 -1
- package/components/prefab/fesm2022/index.mjs +4 -0
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/core/bundles/index.umd.js +391 -94
- package/core/esm2022/public_api.mjs +3 -3
- package/core/esm2022/services/viewport.service.mjs +24 -10
- package/core/esm2022/types/types.mjs +1 -1
- package/core/esm2022/utils/dom.mjs +18 -2
- package/core/esm2022/utils/event-notifier.mjs +5 -2
- package/core/esm2022/utils/lru-cache.mjs +16 -2
- package/core/esm2022/utils/utils.mjs +6 -2
- package/core/esm2022/utils/watcher.mjs +323 -81
- package/core/fesm2022/index.mjs +390 -96
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/public_api.d.ts +2 -2
- package/core/services/viewport.service.d.ts +5 -2
- package/core/types/types.d.ts +1 -0
- package/core/utils/lru-cache.d.ts +6 -0
- package/core/utils/utils.d.ts +1 -0
- package/core/utils/watcher.d.ts +26 -5
- package/http/bundles/index.umd.js +31 -1
- package/http/esm2022/http.service.mjs +32 -2
- package/http/fesm2022/index.mjs +31 -1
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/http.service.d.ts +6 -2
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +9 -0
- package/oAuth/esm2022/oAuth.service.mjs +10 -1
- package/oAuth/fesm2022/index.mjs +9 -0
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/oAuth.service.d.ts +3 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +367 -32
- package/runtime/base/components/app-component/app.component.d.ts +4 -0
- package/runtime/base/components/prefab-preview.component.d.ts +5 -2
- package/runtime/base/directives/accessroles.directive.d.ts +4 -3
- package/runtime/base/directives/prefab.directive.d.ts +3 -2
- package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
- package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
- package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
- package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
- package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
- package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
- package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
- package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
- package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
- package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
- package/runtime/base/esm2022/services/app.manager.service.mjs +40 -12
- package/runtime/base/esm2022/services/app.service.mjs +34 -2
- package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
- package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
- package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
- package/runtime/base/fesm2022/index.mjs +368 -33
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/runtime-base.module.d.ts +2 -2
- package/runtime/base/services/app.manager.service.d.ts +6 -1
- package/runtime/base/services/app.service.d.ts +12 -2
- package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
- package/runtime/base/services/spinner.service.d.ts +3 -1
- package/runtime/base/util/fragment-monitor.d.ts +6 -0
- package/runtime/dynamic/bundles/index.umd.js +5 -0
- package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
- package/runtime/dynamic/fesm2022/index.mjs +5 -0
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
- package/scripts/datatable/datatable.js +100 -14
- package/security/bundles/index.umd.js +41 -2
- package/security/esm2022/security.service.mjs +42 -3
- package/security/fesm2022/index.mjs +41 -2
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/security.service.d.ts +5 -2
- package/variables/bundles/index.umd.js +50 -6
- package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
- package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
- package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
- package/variables/esm2022/service/variables.service.mjs +8 -2
- package/variables/fesm2022/index.mjs +50 -6
- package/variables/fesm2022/index.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/text/src/base-input/base-input.ts","../../../../../projects/components/widgets/input/text/src/number-locale/number-locale.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/text/src/input-color/input-color.props.ts","../../../../../projects/components/widgets/input/text/src/input-color/input-color.component.ts","../../../../../projects/components/widgets/input/text/src/input-color/input-color.component.html","../../../../../projects/components/widgets/input/text/src/input-email/input-email.props.ts","../../../../../projects/components/widgets/input/text/src/input-email/input-email.component.ts","../../../../../projects/components/widgets/input/text/src/input-email/input-email.component.html","../../../../../projects/components/widgets/input/text/src/input-number/input-number.props.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.props.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.component.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.component.html","../../../../../projects/components/widgets/input/text/src/input-number/input-number.component.ts","../../../../../projects/components/widgets/input/text/src/input-number/input-number.component.html","../../../../../projects/components/widgets/input/text/src/index.ts"],"sourcesContent":["import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n if (key === 'updateon') {\n this.ngModelOptions.updateOn = nv === 'default' ? 'change' : 'blur';\n }\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base-input/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n public decimalplaces: number;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n // Fix for [WMS-27648]: When a decimal value is entered (e.g., \"3.\"), datavalue and prevDatavalue become null as it is an invalid number.\n // handleChange() should be called when the invalid datavalue (e.g., \"3.\") is removed, and the value becomes an empty string (\"\").\n if ((prevDataValue || prevDataValue == 0 || prevDataValue == null) && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n\n let decimalPlacesAttrVal = this.getAttr('decimalplaces');\n const decimalplaces = decimalPlacesAttrVal !== '' && decimalPlacesAttrVal !== undefined ? Number(decimalPlacesAttrVal) : NaN;\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(decimalplaces)) {\n if(decimalplaces === 0) {\n this.decimalValue = '';\n (value as any) = isLocalizedNumber ? parts[0] : this.transformNumber(parts[0]);\n }\n if(decimalplaces > 0) {\n this.decimalValue = parts[1] && parts[1].substring(0, decimalplaces) || '';\n if(isLocalizedNumber) {\n (value as any) = this.decimalValue.length ? `${parts[0]}${this.DECIMAL}${this.decimalValue}` : parts[0];\n } else {\n (value as any) = Number.parseFloat(String(value)).toFixed(decimalplaces);\n }\n }\n } else {\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n let invalidDecimalPlaces = false;\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {\n invalidDecimalPlaces = this.countDecimals(val) > this.decimalplaces;\n } else if(!Number.isInteger(this.step) && this.countDecimals(val) > this.countDecimals(this.step)) {\n invalidDecimalPlaces = true;\n }\n if (isNaN(val) || !isFinite(val) || invalidDecimalPlaces) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n if(this.inputmode === 'INPUTMODE.NATURAL' && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {\n return this.decimalplaces;\n }\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n const prevDataValue = this.getPrevDataValue();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n // Fix for [WMS-27041]: Ensure the change callback for the number widget triggers only on focus out (when updateon is set to blur),\n // not during initial input when the previous value is undefined and the current value is null.\n if (isDefined(value) && (value !== '' || this.datavalue || this.datavalue == 0)) {\n if (this.widgetType === \"wm-number\") {\n if (this.inputmode == INPUTMODE.FINANCIAL) {\n // Case 1: when there is no default value, prevDataValue is undefined && this.datavalue is null\n // Case 2: when there default value, prevDataValue is equal to this.datavalue\n if (!((prevDataValue == undefined && this.datavalue == null) || (prevDataValue == this.datavalue))) {\n this.handleChange(value);\n }\n } else {\n if (!(prevDataValue == undefined && this.datavalue == null)) {\n this.handleChange(value);\n }\n }\n } else { // currency widget\n this.handleChange(value);\n }\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n const num = Number(value);\n if (num === 0) {\n return 0;\n }\n\n // Convert to number and handle scientific notation\n if (Number.isNaN(num)) return 0;\n\n // Get the exponential form to handle scientific notation properly\n const exponentialStr = num.toExponential();\n const match = exponentialStr.match(/^-?\\d*\\.?(\\d+)?e([+-]\\d+)$/);\n\n if (match) {\n const decimals = match[1] ? match[1].length : 0;\n const exponent = parseInt(match[2]);\n return Math.max(0, decimals - exponent);\n }\n\n // Fallback to regular decimal counting\n const decimalStr = num.toString();\n const isLocalizedNumber = includes(decimalStr, this.DECIMAL);\n const parts = isLocalizedNumber ? decimalStr.split(this.DECIMAL) : decimalStr.split('.');\n return parts[1] ? parts[1].length : 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target?.value||\"\";\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n // if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n // return false;\n // }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {\n if(this.decimalplaces === 0 && this.DECIMAL === $event.key) {\n return false;\n }\n const parts = includes(inputValue, this.DECIMAL) ? (inputValue as any).split(this.DECIMAL) : inputValue.split('.');\n const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;\n if(this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {\n return false;\n }\n }\n\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n onDelete($event) {\n this.isDefaultQuery = false;\n }\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n public onPaste($event: ClipboardEvent) {\n const pastedData = $event.clipboardData.getData('text');\n\n for (const char of pastedData) {\n const mockEvent = new KeyboardEvent('keypress', { key: char });\n if (this.validateInputEntry(mockEvent)===false) {\n $event.preventDefault();\n return;\n }\n }\n }\n\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-calendar.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\n\nimport {registerProps} from './input-color.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\n\nimport {registerProps} from './input-email.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\n\nimport {inputNumberTypeProps} from '../input-number/input-number.props';\nimport {inputCalendarTypeProps} from '../input-calendar/input-calendar.props';\nimport {inputColorTypeProps} from '../input-color/input-color.props';\nimport {inputEmailTypeProps} from '../input-email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport {Component, ElementRef, Inject, Injector, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base-input/base-input';\nimport {IMaskDirective} from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, IMaskModule],\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit{\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-number.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/text/src/base-input/base-input.ts","../../../../../projects/components/widgets/input/text/src/number-locale/number-locale.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/text/src/input-calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/text/src/input-color/input-color.props.ts","../../../../../projects/components/widgets/input/text/src/input-color/input-color.component.ts","../../../../../projects/components/widgets/input/text/src/input-color/input-color.component.html","../../../../../projects/components/widgets/input/text/src/input-email/input-email.props.ts","../../../../../projects/components/widgets/input/text/src/input-email/input-email.component.ts","../../../../../projects/components/widgets/input/text/src/input-email/input-email.component.html","../../../../../projects/components/widgets/input/text/src/input-number/input-number.props.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.props.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.component.ts","../../../../../projects/components/widgets/input/text/src/input-text/input-text.component.html","../../../../../projects/components/widgets/input/text/src/input-number/input-number.component.ts","../../../../../projects/components/widgets/input/text/src/input-number/input-number.component.html","../../../../../projects/components/widgets/input/text/src/index.ts"],"sourcesContent":["import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n if (key === 'updateon') {\n this.ngModelOptions.updateOn = nv === 'default' ? 'change' : 'blur';\n }\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base-input/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n public decimalplaces: number;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n // Fix for [WMS-27648]: When a decimal value is entered (e.g., \"3.\"), datavalue and prevDatavalue become null as it is an invalid number.\n // handleChange() should be called when the invalid datavalue (e.g., \"3.\") is removed, and the value becomes an empty string (\"\").\n if ((prevDataValue || prevDataValue == 0 || prevDataValue == null) && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n\n let decimalPlacesAttrVal = this.getAttr('decimalplaces');\n const decimalplaces = decimalPlacesAttrVal !== '' && decimalPlacesAttrVal !== undefined ? Number(decimalPlacesAttrVal) : NaN;\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(decimalplaces)) {\n if(decimalplaces === 0) {\n this.decimalValue = '';\n (value as any) = isLocalizedNumber ? parts[0] : this.transformNumber(parts[0]);\n }\n if(decimalplaces > 0) {\n this.decimalValue = parts[1] && parts[1].substring(0, decimalplaces) || '';\n if(isLocalizedNumber) {\n (value as any) = this.decimalValue.length ? `${parts[0]}${this.DECIMAL}${this.decimalValue}` : parts[0];\n } else {\n (value as any) = Number.parseFloat(String(value)).toFixed(decimalplaces);\n }\n }\n } else {\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n let invalidDecimalPlaces = false;\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {\n invalidDecimalPlaces = this.countDecimals(val) > this.decimalplaces;\n } else if(!Number.isInteger(this.step) && this.countDecimals(val) > this.countDecimals(this.step)) {\n invalidDecimalPlaces = true;\n }\n if (isNaN(val) || !isFinite(val) || invalidDecimalPlaces) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n if(this.inputmode === 'INPUTMODE.NATURAL' && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {\n return this.decimalplaces;\n }\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n const prevDataValue = this.getPrevDataValue();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n // Fix for [WMS-27041]: Ensure the change callback for the number widget triggers only on focus out (when updateon is set to blur),\n // not during initial input when the previous value is undefined and the current value is null.\n if (isDefined(value) && (value !== '' || this.datavalue || this.datavalue == 0)) {\n if (this.widgetType === \"wm-number\") {\n if (this.inputmode == INPUTMODE.FINANCIAL) {\n // Case 1: when there is no default value, prevDataValue is undefined && this.datavalue is null\n // Case 2: when there default value, prevDataValue is equal to this.datavalue\n if (!((prevDataValue == undefined && this.datavalue == null) || (prevDataValue == this.datavalue))) {\n this.handleChange(value);\n }\n } else {\n if (!(prevDataValue == undefined && this.datavalue == null)) {\n this.handleChange(value);\n }\n }\n } else { // currency widget\n this.handleChange(value);\n }\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n const num = Number(value);\n if (num === 0) {\n return 0;\n }\n\n // Convert to number and handle scientific notation\n if (Number.isNaN(num)) return 0;\n\n // Get the exponential form to handle scientific notation properly\n const exponentialStr = num.toExponential();\n const match = exponentialStr.match(/^-?\\d*\\.?(\\d+)?e([+-]\\d+)$/);\n\n if (match) {\n const decimals = match[1] ? match[1].length : 0;\n const exponent = parseInt(match[2]);\n return Math.max(0, decimals - exponent);\n }\n\n // Fallback to regular decimal counting\n const decimalStr = num.toString();\n const isLocalizedNumber = includes(decimalStr, this.DECIMAL);\n const parts = isLocalizedNumber ? decimalStr.split(this.DECIMAL) : decimalStr.split('.');\n return parts[1] ? parts[1].length : 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target?.value||\"\";\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n // if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n // return false;\n // }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n\n if(this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {\n if(this.decimalplaces === 0 && this.DECIMAL === $event.key) {\n return false;\n }\n const parts = includes(inputValue, this.DECIMAL) ? (inputValue as any).split(this.DECIMAL) : inputValue.split('.');\n const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;\n if(this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {\n return false;\n }\n }\n\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n onDelete($event) {\n this.isDefaultQuery = false;\n }\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n public onPaste($event: ClipboardEvent) {\n const pastedData = $event.clipboardData.getData('text');\n\n for (const char of pastedData) {\n const mockEvent = new KeyboardEvent('keypress', { key: char });\n if (this.validateInputEntry(mockEvent)===false) {\n $event.preventDefault();\n return;\n }\n }\n }\n\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-calendar.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput implements OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.inputEl = null;\n this.ngModel = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\n\nimport {registerProps} from './input-color.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput implements OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.inputEl = null;\n this.ngModel = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\n\nimport {registerProps} from './input-email.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput implements OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.inputEl = null;\n this.ngModel = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\n\nimport {inputNumberTypeProps} from '../input-number/input-number.props';\nimport {inputCalendarTypeProps} from '../input-calendar/input-calendar.props';\nimport {inputColorTypeProps} from '../input-color/input-color.props';\nimport {inputEmailTypeProps} from '../input-email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base-input/base-input';\nimport {IMaskDirective} from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, IMaskModule],\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear all ViewChild references\n this.inputEl = null;\n this.ngModel = null;\n this.imask = null;\n\n // Call parent ngOnDestroy (BaseInput → BaseFormCustomComponent → StylableComponent → BaseComponent)\n super.ngOnDestroy();\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-number.props';\nimport {BaseInput} from '../base-input/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule],\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput implements OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.inputEl = null;\n this.ngModel = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { BaseInput } from '../base-input/base-input';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class InputCalendarComponent extends BaseInput {
|
|
5
|
+
export declare class InputCalendarComponent extends BaseInput implements OnDestroy {
|
|
6
6
|
static initializeProps: void;
|
|
7
7
|
required: boolean;
|
|
8
8
|
disabled: boolean;
|
|
@@ -24,6 +24,7 @@ export declare class InputCalendarComponent extends BaseInput {
|
|
|
24
24
|
inputEl: ElementRef;
|
|
25
25
|
ngModel: NgModel;
|
|
26
26
|
constructor(inj: Injector, explicitContext: any);
|
|
27
|
+
ngOnDestroy(): void;
|
|
27
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputCalendarComponent, [null, { optional: true; }]>;
|
|
28
29
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputCalendarComponent, "wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]", never, {}, {}, never, never, true, never>;
|
|
29
30
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { BaseInput } from '../base-input/base-input';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class InputColorComponent extends BaseInput {
|
|
5
|
+
export declare class InputColorComponent extends BaseInput implements OnDestroy {
|
|
6
6
|
static initializeProps: void;
|
|
7
7
|
required: boolean;
|
|
8
8
|
maxchars: number;
|
|
@@ -21,6 +21,7 @@ export declare class InputColorComponent extends BaseInput {
|
|
|
21
21
|
inputEl: ElementRef;
|
|
22
22
|
ngModel: NgModel;
|
|
23
23
|
constructor(inj: Injector, explicitContext: any);
|
|
24
|
+
ngOnDestroy(): void;
|
|
24
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputColorComponent, [null, { optional: true; }]>;
|
|
25
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputColorComponent, "wm-input[type=\"color\"]", never, {}, {}, never, never, true, never>;
|
|
26
27
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { BaseInput } from '../base-input/base-input';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class InputEmailComponent extends BaseInput {
|
|
5
|
+
export declare class InputEmailComponent extends BaseInput implements OnDestroy {
|
|
6
6
|
static initializeProps: void;
|
|
7
7
|
required: boolean;
|
|
8
8
|
maxchars: number;
|
|
@@ -23,6 +23,7 @@ export declare class InputEmailComponent extends BaseInput {
|
|
|
23
23
|
inputEl: ElementRef;
|
|
24
24
|
ngModel: NgModel;
|
|
25
25
|
constructor(inj: Injector, explicitContext: any);
|
|
26
|
+
ngOnDestroy(): void;
|
|
26
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputEmailComponent, [null, { optional: true; }]>;
|
|
27
28
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputEmailComponent, "wm-input[type=\"email\"]", never, {}, {}, never, never, true, never>;
|
|
28
29
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ElementRef, Injector } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { BaseInput } from '../base-input/base-input';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class InputNumberComponent extends BaseInput {
|
|
5
|
+
export declare class InputNumberComponent extends BaseInput implements OnDestroy {
|
|
6
6
|
static initializeProps: void;
|
|
7
7
|
required: boolean;
|
|
8
8
|
maxchars: number;
|
|
@@ -27,6 +27,7 @@ export declare class InputNumberComponent extends BaseInput {
|
|
|
27
27
|
constructor(inj: Injector, explicitContext: any);
|
|
28
28
|
onArrowPress($event: any): void;
|
|
29
29
|
validateInputEntry($event: any): boolean;
|
|
30
|
+
ngOnDestroy(): void;
|
|
30
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputNumberComponent, [null, { optional: true; }]>;
|
|
31
32
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputNumberComponent, "wm-input[type=\"number\"]", never, {}, {}, never, never, true, never>;
|
|
32
33
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ElementRef, Injector, OnInit } from '@angular/core';
|
|
1
|
+
import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { NgModel } from '@angular/forms';
|
|
3
3
|
import { BaseInput } from '../base-input/base-input';
|
|
4
4
|
import { IMaskDirective } from 'angular-imask';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class InputTextComponent extends BaseInput implements OnInit {
|
|
6
|
+
export declare class InputTextComponent extends BaseInput implements OnInit, OnDestroy {
|
|
7
7
|
static initializeProps: void;
|
|
8
8
|
required: boolean;
|
|
9
9
|
maxchars: number;
|
|
@@ -42,6 +42,7 @@ export declare class InputTextComponent extends BaseInput implements OnInit {
|
|
|
42
42
|
};
|
|
43
43
|
checkForDisplayFormat($event?: any): void;
|
|
44
44
|
ngOnInit(): void;
|
|
45
|
+
ngOnDestroy(): void;
|
|
45
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputTextComponent, [null, { optional: true; }]>;
|
|
46
47
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputTextComponent, "wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]", never, {}, {}, never, never, true, never>;
|
|
47
48
|
}
|
|
@@ -69,6 +69,13 @@
|
|
|
69
69
|
ngAfterViewChecked() {
|
|
70
70
|
this.charlength = this.inputEl.nativeElement.value.length;
|
|
71
71
|
}
|
|
72
|
+
ngOnDestroy() {
|
|
73
|
+
// MEMORY LEAK FIX: Clear ViewChild references
|
|
74
|
+
this.inputEl = null;
|
|
75
|
+
this.ngModel = null;
|
|
76
|
+
// Call parent ngOnDestroy
|
|
77
|
+
super.ngOnDestroy();
|
|
78
|
+
}
|
|
72
79
|
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TextareaComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
73
80
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextareaComponent, isStandalone: true, selector: "wm-textarea", providers: [
|
|
74
81
|
base.provideAs(TextareaComponent, i2.NG_VALUE_ACCESSOR, true),
|