@wavemaker/app-ng-runtime 12.0.0-next.141131 → 12.0.0-next.141134

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.
Files changed (326) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +54 -39
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +10 -3
  12. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  15. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  17. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  18. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  21. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +5 -1
  22. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  26. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  29. app-ng-runtime/build-task/fesm2022/index.mjs +54 -39
  30. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  31. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  33. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  34. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +53 -13
  36. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +11 -4
  37. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +55 -12
  38. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +2 -2
  39. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +55 -12
  40. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/base/bundles/index.umd.js +22 -6
  42. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  43. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  44. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -5
  45. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -2
  46. app-ng-runtime/components/base/fesm2022/index.mjs +23 -7
  47. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  48. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  49. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  50. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +1 -0
  51. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  52. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  53. app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
  54. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  55. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  56. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
  57. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  58. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  59. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  60. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  61. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  62. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  63. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  64. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  65. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  66. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  67. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
  68. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  69. app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
  70. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  71. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  72. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  73. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  74. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  75. app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
  76. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  77. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  78. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  79. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  80. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
  81. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  83. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  84. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  85. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  86. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  87. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  88. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  89. app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
  90. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
  91. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  92. app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
  93. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
  95. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  97. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  100. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  101. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  104. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  105. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  108. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  109. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  112. app-ng-runtime/components/data/form/bundles/index.umd.js +27 -11
  113. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -14
  114. app-ng-runtime/components/data/form/fesm2022/index.mjs +27 -13
  115. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -0
  117. app-ng-runtime/components/data/list/bundles/index.umd.js +2 -2
  118. app-ng-runtime/components/data/list/esm2022/list.component.mjs +3 -3
  119. app-ng-runtime/components/data/list/fesm2022/index.mjs +2 -2
  120. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  121. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  122. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  123. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  124. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  125. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  126. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  127. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  128. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  129. app-ng-runtime/components/data/table/bundles/index.umd.js +45 -11
  130. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  131. app-ng-runtime/components/data/table/esm2022/table-row/table-row.props.mjs +2 -2
  132. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  133. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  134. app-ng-runtime/components/data/table/fesm2022/index.mjs +46 -12
  135. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  136. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  137. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  138. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  139. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  140. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  142. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  143. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  144. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +20 -3
  146. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  147. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  148. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  149. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +20 -3
  150. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  151. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  152. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  153. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  154. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  155. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  156. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  157. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  158. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  159. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  160. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  161. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  162. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  164. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  165. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  166. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
  168. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
  169. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  170. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
  171. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  173. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  174. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  175. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  176. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  177. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  179. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  180. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  181. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  182. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  183. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  184. app-ng-runtime/components/input/default/base-form-custom.component.d.ts +2 -1
  185. app-ng-runtime/components/input/default/bundles/index.umd.js +219 -114
  186. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  187. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  188. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -2
  189. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +6 -1
  190. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  191. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  192. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  193. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  194. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +23 -16
  196. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +5 -5
  197. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  198. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  199. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +30 -23
  200. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  201. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  202. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  203. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  204. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  205. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  206. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  207. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  208. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  209. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  210. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  211. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  212. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  213. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  214. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  215. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  216. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  217. app-ng-runtime/components/input/default/fesm2022/index.mjs +219 -114
  218. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  219. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  220. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  221. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  222. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  223. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  224. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  225. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  226. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  227. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  228. app-ng-runtime/components/input/epoch/bundles/index.umd.js +15 -9
  229. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  230. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  231. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
  232. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  233. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +10 -7
  234. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  235. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  236. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  237. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -9
  238. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  239. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  240. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +208 -95
  241. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +206 -98
  242. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
  243. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +209 -96
  244. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  245. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +17 -11
  246. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  247. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  248. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  249. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  250. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  251. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  252. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  253. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  254. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  255. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  256. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  257. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  258. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  259. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  260. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  261. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  263. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  265. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  266. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  267. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  268. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  269. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  270. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  271. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  272. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  273. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  274. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  275. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  276. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  278. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  279. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  280. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  281. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  282. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  283. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  284. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  287. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/core/bundles/index.umd.js +18 -15
  290. app-ng-runtime/core/enums/enums.d.ts +2 -2
  291. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -2
  292. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  293. app-ng-runtime/core/esm2022/utils/build-utils.mjs +12 -12
  294. app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
  295. app-ng-runtime/core/fesm2022/index.mjs +18 -16
  296. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  297. app-ng-runtime/core/public_api.d.ts +1 -1
  298. app-ng-runtime/core/utils/utils.d.ts +1 -0
  299. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  300. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  301. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  302. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  303. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  304. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  305. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  306. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  307. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  308. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  309. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  310. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  311. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  312. app-ng-runtime/package.json +1 -1
  313. app-ng-runtime/runtime/base/bundles/index.umd.js +16 -5
  314. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  315. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +2 -0
  316. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  317. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +10 -1
  318. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  319. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  320. app-ng-runtime/runtime/base/fesm2022/index.mjs +16 -5
  321. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  322. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  323. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  324. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  325. app-ng-runtime/scripts/datatable/datatable.js +54 -43
  326. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
@@ -38,6 +38,7 @@
38
38
  ['conditionalstyle', i2.PROP_ANY],
39
39
  ['disabled', i2.PROP_BOOLEAN],
40
40
  ['hint', i2.PROP_STRING],
41
+ ['arialabel', i2.PROP_STRING],
41
42
  ['iconclass', i2.PROP_STRING],
42
43
  ['iconheight', i2.PROP_STRING],
43
44
  ['iconmargin', i2.PROP_STRING],
@@ -331,6 +332,8 @@
331
332
  return;
332
333
  }
333
334
  if (this._formControl) {
335
+ if (this._formControl.valueAccessor["widgetSubType"].startsWith('wm-custom-'))
336
+ return;
334
337
  this.datavalue = value;
335
338
  this.onPropertyChange('datavalue', value);
336
339
  this.updatePrevDatavalue(value);
@@ -342,6 +345,9 @@
342
345
  */
343
346
  (value !== this.datavalue) && this._onChange(this.datavalue);
344
347
  }
348
+ get formControl() {
349
+ return this._formControl;
350
+ }
345
351
  invokeOnChange(value, $event, valid) {
346
352
  // let the angular know about the change
347
353
  this._onChange(value);
@@ -383,6 +389,7 @@
383
389
  ['datavalue', i2.PROP_STRING],
384
390
  ['disabled', i2.PROP_BOOLEAN],
385
391
  ['hint', i2.PROP_STRING],
392
+ ['arialabel', i2.PROP_STRING],
386
393
  ['name', i2.PROP_STRING],
387
394
  ['readonly', i2.PROP_BOOLEAN],
388
395
  ['required', i2.PROP_BOOLEAN],
@@ -510,7 +517,7 @@
510
517
  i2.provideAs(CheckboxComponent, i2$1.NG_VALUE_ACCESSOR, true),
511
518
  i2.provideAs(CheckboxComponent, i2$1.NG_VALIDATORS, true),
512
519
  i2.provideAsWidgetRef(CheckboxComponent)
513
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$a, decls: 6, vars: 19, consts: [["checkbox", ""], [3, "ngClass"], ["type", "checkbox", "role", "checkbox", "focus-target", "", 3, "ngModelChange", "blur", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "tabindex"], [1, "caption", 3, "innerHtml"], ["alt", "Checkbox Image", "aria-hidden", "true", "src", "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", 1, "switch"], ["type", "hidden", "aria-hidden", "true", "tabindex", "-1", 1, "ng-hide", "model-holder", 3, "disabled", "value"]], template: function CheckboxComponent_Template(rf, ctx) { if (rf & 1) {
520
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$a, decls: 6, vars: 18, consts: [["checkbox", ""], [3, "ngClass"], ["type", "checkbox", "focus-target", "", 3, "ngModelChange", "blur", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "tabindex"], [1, "caption", 3, "innerHtml"], ["alt", "Checkbox Image", "aria-hidden", "true", "src", "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", 1, "switch"], ["type", "hidden", "aria-hidden", "true", "tabindex", "-1", 1, "ng-hide", "model-holder", 3, "disabled", "value"]], template: function CheckboxComponent_Template(rf, ctx) { if (rf & 1) {
514
521
  const _r1 = i0__namespace.ɵɵgetCurrentView();
515
522
  i0__namespace.ɵɵelementStart(0, "label", 1)(1, "input", 2, 0);
516
523
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function CheckboxComponent_Template_input_ngModelChange_1_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.proxyModel, $event) || (ctx.proxyModel = $event); return i0__namespace.ɵɵresetView($event); });
@@ -520,11 +527,11 @@
520
527
  i0__namespace.ɵɵelementEnd();
521
528
  i0__namespace.ɵɵelement(5, "input", 5);
522
529
  } if (rf & 2) {
523
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction3(14, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
530
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction3(13, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
524
531
  i0__namespace.ɵɵadvance();
525
532
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.proxyModel);
526
- i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(18, _c3$3))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
527
- i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-checked", !!ctx.proxyModel)("accesskey", ctx.shortcutkey);
533
+ i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(17, _c3$3))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
534
+ i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("accesskey", ctx.shortcutkey);
528
535
  i0__namespace.ɵɵadvance(2);
529
536
  i0__namespace.ɵɵproperty("innerHtml", ctx._caption, i0__namespace.ɵɵsanitizeHtml);
530
537
  i0__namespace.ɵɵadvance(2);
@@ -537,7 +544,7 @@
537
544
  i2.provideAs(CheckboxComponent, i2$1.NG_VALUE_ACCESSOR, true),
538
545
  i2.provideAs(CheckboxComponent, i2$1.NG_VALIDATORS, true),
539
546
  i2.provideAsWidgetRef(CheckboxComponent)
540
- ], template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n role=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-checked]=\"!!proxyModel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\"></span>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n" }]
547
+ ], template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\"></span>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n" }]
541
548
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
542
549
  type: i0.Attribute,
543
550
  args: ['checkedvalue']
@@ -591,8 +598,8 @@
591
598
  // invoke on datavalue change.
592
599
  this.invokeOnChange(val, undefined, true);
593
600
  }
594
- constructor(inj, config, explicitContext, groupby) {
595
- super(inj, config, explicitContext);
601
+ constructor(inj, config, explicitContext, groupby, initPromise) {
602
+ super(inj, config, explicitContext, initPromise);
596
603
  this.groupby = groupby;
597
604
  this.datasetItems = [];
598
605
  this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
@@ -844,7 +851,7 @@
844
851
  this.cancelLocaleChangeSubscription();
845
852
  }
846
853
  }
847
- static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('groupby')); }; }
854
+ static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('groupby'), i0__namespace.ɵɵinject(Promise)); }; }
848
855
  static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: DatasetAwareFormComponent, factory: DatasetAwareFormComponent.ɵfac }); }
849
856
  }
850
857
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(DatasetAwareFormComponent, [{
@@ -860,7 +867,7 @@
860
867
  }] }, { type: undefined, decorators: [{
861
868
  type: i0.Attribute,
862
869
  args: ['groupby']
863
- }] }], null); })();
870
+ }] }, { type: Promise }], null); })();
864
871
 
865
872
  const checkboxsetProps = new Map([
866
873
  ['class', i2.PROP_STRING],
@@ -909,10 +916,10 @@
909
916
  const item_r2 = ctx_r3.$implicit;
910
917
  const i_r5 = ctx_r3.index;
911
918
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
912
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(12, _c2$6, ctx_r2.disabled || ctx_r2.readonly))("title", item_r2.label);
919
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c2$6, ctx_r2.disabled || ctx_r2.readonly))("title", item_r2.label);
913
920
  i0__namespace.ɵɵadvance();
914
921
  i0__namespace.ɵɵproperty("name", "checkboxset_" + ctx_r2.widgetId)("tabindex", ctx_r2.tabindex)("disabled", ctx_r2.disabled || ctx_r2.readonly)("value", item_r2.key)("tabindex", ctx_r2.tabindex)("checked", item_r2.selected);
915
- i0__namespace.ɵɵattribute("aria-label", item_r2.key)("aria-checked", item_r2.selected)("data-attr-index", i_r5);
922
+ i0__namespace.ɵɵattribute("data-attr-index", i_r5);
916
923
  i0__namespace.ɵɵadvance();
917
924
  i0__namespace.ɵɵproperty("textContent", item_r2.label);
918
925
  } }
@@ -925,16 +932,16 @@
925
932
  const item_r2 = ctx_r3.$implicit;
926
933
  const i_r5 = ctx_r3.index;
927
934
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
928
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c2$6, ctx_r2.disabled || ctx_r2.readonly));
935
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$6, ctx_r2.disabled || ctx_r2.readonly));
929
936
  i0__namespace.ɵɵadvance();
930
937
  i0__namespace.ɵɵproperty("name", "checkboxset_" + ctx_r2.widgetId)("tabindex", ctx_r2.tabindex)("disabled", ctx_r2.disabled || ctx_r2.readonly)("value", item_r2.key)("tabindex", ctx_r2.tabindex)("checked", item_r2.selected);
931
- i0__namespace.ɵɵattribute("aria-label", item_r2.key)("aria-checked", item_r2.selected)("data-attr-index", i_r5);
938
+ i0__namespace.ɵɵattribute("data-attr-index", i_r5);
932
939
  } }
933
940
  function CheckboxsetComponent_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {
934
941
  const _r1 = i0__namespace.ɵɵgetCurrentView();
935
942
  i0__namespace.ɵɵelementStart(0, "li", 5);
936
943
  i0__namespace.ɵɵlistener("click", function CheckboxsetComponent_ng_template_0_li_0_Template_li_click_0_listener($event) { const item_r2 = i0__namespace.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r2.onCheckboxLabelClick($event, item_r2.key)); });
937
- i0__namespace.ɵɵtemplate(1, CheckboxsetComponent_ng_template_0_li_0_label_1_Template, 3, 14, "label", 6)(2, CheckboxsetComponent_ng_template_0_li_0_label_2_Template, 3, 12, "label", 7);
944
+ i0__namespace.ɵɵtemplate(1, CheckboxsetComponent_ng_template_0_li_0_label_1_Template, 3, 12, "label", 6)(2, CheckboxsetComponent_ng_template_0_li_0_label_2_Template, 3, 10, "label", 7);
938
945
  i0__namespace.ɵɵelementEnd();
939
946
  } if (rf & 2) {
940
947
  const item_r2 = ctx.$implicit;
@@ -969,7 +976,7 @@
969
976
  } }
970
977
  function CheckboxsetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx) { if (rf & 1) {
971
978
  i0__namespace.ɵɵelementStart(0, "label", 8);
972
- i0__namespace.ɵɵelement(1, "input", 26)(2, "span", 10);
979
+ i0__namespace.ɵɵelement(1, "input", 9)(2, "span", 10);
973
980
  i0__namespace.ɵɵelementEnd();
974
981
  } if (rf & 2) {
975
982
  const ctx_r9 = i0__namespace.ɵɵnextContext();
@@ -985,7 +992,7 @@
985
992
  } }
986
993
  function CheckboxsetComponent_ng_template_3_li_0_li_8_label_2_Template(rf, ctx) { if (rf & 1) {
987
994
  i0__namespace.ɵɵelementStart(0, "label", 11);
988
- i0__namespace.ɵɵelement(1, "input", 26)(2, "span", 27);
995
+ i0__namespace.ɵɵelement(1, "input", 9)(2, "span", 26);
989
996
  i0__namespace.ɵɵelementEnd();
990
997
  } if (rf & 2) {
991
998
  const ctx_r9 = i0__namespace.ɵɵnextContext();
@@ -1026,10 +1033,15 @@
1026
1033
  i0__namespace.ɵɵelementEnd()();
1027
1034
  } if (rf & 2) {
1028
1035
  const groupObj_r7 = ctx.$implicit;
1036
+ const groupindex_r12 = ctx.index;
1029
1037
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
1030
- i0__namespace.ɵɵadvance(2);
1031
- i0__namespace.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(6, _c3$2, ctx_r2.collapsible));
1032
- i0__namespace.ɵɵadvance(2);
1038
+ i0__namespace.ɵɵadvance();
1039
+ i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
1040
+ i0__namespace.ɵɵadvance();
1041
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$2, ctx_r2.collapsible));
1042
+ i0__namespace.ɵɵadvance();
1043
+ i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
1044
+ i0__namespace.ɵɵadvance();
1033
1045
  i0__namespace.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
1034
1046
  i0__namespace.ɵɵadvance(2);
1035
1047
  i0__namespace.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -1039,7 +1051,7 @@
1039
1051
  i0__namespace.ɵɵproperty("ngForOf", groupObj_r7.data);
1040
1052
  } }
1041
1053
  function CheckboxsetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1042
- i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 8, "li", 14);
1054
+ i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 11, "li", 14);
1043
1055
  } if (rf & 2) {
1044
1056
  const ctx_r2 = i0__namespace.ɵɵnextContext();
1045
1057
  i0__namespace.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -1056,6 +1068,8 @@
1056
1068
  }
1057
1069
  triggerInvokeOnChange(keys, $event) {
1058
1070
  this.modelByKey = keys;
1071
+ if (this.viewParent.containerWidget)
1072
+ this.viewParent.containerWidget.updateDataValue(this.datavalue);
1059
1073
  this.invokeOnTouched();
1060
1074
  // invoke on datavalue change.
1061
1075
  this.invokeOnChange(this.datavalue, $event || {}, true);
@@ -1114,13 +1128,13 @@
1114
1128
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALUE_ACCESSOR, true),
1115
1129
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALIDATORS, true),
1116
1130
  i2.provideAsWidgetRef(CheckboxsetComponent)
1117
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$a, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], [1, "list-group-header", 3, "click", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["type", "checkbox", "aria-label", "checkbox group", 3, "name", "tabindex", "disabled", "value", "checked"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
1131
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$a, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-checkboxset-label", 3, "ngClass", "title", 4, "ngIf"], ["class", "app-checkboxset-label", 3, "ngClass", 4, "ngIf"], [1, "app-checkboxset-label", 3, "ngClass", "title"], ["type", "checkbox", 3, "name", "tabindex", "disabled", "value", "checked"], [1, "caption", 3, "textContent"], [1, "app-checkboxset-label", 3, "ngClass"], ["partial-container-target", "", 1, "caption", "customTemplate"], [1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], ["aria-hidden", "true", 1, "list-group-header", 3, "click", "id", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", "", 1, "caption"]], template: function CheckboxsetComponent_Template(rf, ctx) { if (rf & 1) {
1118
1132
  i0__namespace.ɵɵtemplate(0, CheckboxsetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
1119
1133
  i0__namespace.ɵɵelement(1, "input", 2);
1120
1134
  i0__namespace.ɵɵtemplate(2, CheckboxsetComponent_div_2_Template, 1, 0, "div", 3)(3, CheckboxsetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor);
1121
1135
  } if (rf & 2) {
1122
- const groupedListTemplate_r12 = i0__namespace.ɵɵreference(4);
1123
- i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
1136
+ const groupedListTemplate_r13 = i0__namespace.ɵɵreference(4);
1137
+ i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
1124
1138
  i0__namespace.ɵɵadvance();
1125
1139
  i0__namespace.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
1126
1140
  i0__namespace.ɵɵadvance();
@@ -1133,7 +1147,7 @@
1133
1147
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALUE_ACCESSOR, true),
1134
1148
  i2.provideAs(CheckboxsetComponent, i2$1.NG_VALIDATORS, true),
1135
1149
  i2.provideAsWidgetRef(CheckboxsetComponent)
1136
- ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
1150
+ ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" [tabindex]=\"tabindex\"\n type=\"checkbox\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupindex = index;\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupindex\">\n <li [id]=\"'group_' + widgetId + '_' + groupindex\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
1137
1151
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
1138
1152
  type: i0.Inject,
1139
1153
  args: ['EXPLICIT_CONTEXT']
@@ -1239,6 +1253,7 @@
1239
1253
  ['datavalue', i2.PROP_STRING],
1240
1254
  ['disabled', i2.PROP_BOOLEAN],
1241
1255
  ['hint', i2.PROP_STRING],
1256
+ ['arialabel', i2.PROP_STRING],
1242
1257
  ['localefilter', i2.PROP_STRING],
1243
1258
  ['minvalue', i2.PROP_NUMBER],
1244
1259
  ['maxvalue', i2.PROP_NUMBER],
@@ -1255,6 +1270,7 @@
1255
1270
  ['trailingzero', { value: false, ...i2.PROP_BOOLEAN }],
1256
1271
  ['updateon', i2.PROP_STRING],
1257
1272
  ['inputmode', { value: 'natural', ...i2.PROP_STRING }],
1273
+ ['decimalplaces', i2.PROP_NUMBER],
1258
1274
  ['conditionalclass', i2.PROP_ANY],
1259
1275
  ['conditionalstyle', i2.PROP_ANY]
1260
1276
  ]);
@@ -1374,7 +1390,7 @@
1374
1390
  const prevDataValue = this.prevDatavalue;
1375
1391
  this.displayValue = input.value = this.proxyModel = null;
1376
1392
  this.resetValidations();
1377
- if (prevDataValue && !this.isDefaultQuery) {
1393
+ if ((prevDataValue || prevDataValue == 0) && !this.isDefaultQuery) {
1378
1394
  this.handleChange(value);
1379
1395
  this._onChange();
1380
1396
  }
@@ -1384,8 +1400,27 @@
1384
1400
  if (this.isDefaultQuery) {
1385
1401
  const isLocalizedNumber = lodashEs.isString(value) && lodashEs.includes(value, this.DECIMAL);
1386
1402
  const parts = isLocalizedNumber ? value.split(this.DECIMAL) : lodashEs.isString(value) && value.split('.');
1387
- this.decimalValue = parts[1] || '';
1388
- value = isLocalizedNumber ? value : this.transformNumber(value);
1403
+ let decimalPlacesAttrVal = this.getAttr('decimalplaces');
1404
+ const decimalplaces = decimalPlacesAttrVal !== '' && decimalPlacesAttrVal !== undefined ? Number(decimalPlacesAttrVal) : NaN;
1405
+ if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(decimalplaces)) {
1406
+ if (decimalplaces === 0) {
1407
+ this.decimalValue = '';
1408
+ value = isLocalizedNumber ? parts[0] : this.transformNumber(parts[0]);
1409
+ }
1410
+ if (decimalplaces > 0) {
1411
+ this.decimalValue = parts[1] && parts[1].substring(0, decimalplaces) || '';
1412
+ if (isLocalizedNumber) {
1413
+ value = this.decimalValue.length ? `${parts[0]}${this.DECIMAL}${this.decimalValue}` : parts[0];
1414
+ }
1415
+ else {
1416
+ value = Number.parseFloat(String(value)).toFixed(decimalplaces);
1417
+ }
1418
+ }
1419
+ }
1420
+ else {
1421
+ this.decimalValue = parts[1] || '';
1422
+ value = isLocalizedNumber ? value : this.transformNumber(value);
1423
+ }
1389
1424
  }
1390
1425
  const numberReg = /\d/;
1391
1426
  const strVal = value.toString();
@@ -1434,8 +1469,14 @@
1434
1469
  */
1435
1470
  isValid(val) {
1436
1471
  // id number is infinite then consider it as invalid value
1437
- if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&
1438
- this.countDecimals(val) > this.countDecimals(this.step))) {
1472
+ let invalidDecimalPlaces = false;
1473
+ if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
1474
+ invalidDecimalPlaces = this.countDecimals(val) > this.decimalplaces;
1475
+ }
1476
+ else if (!Number.isInteger(this.step) && this.countDecimals(val) > this.countDecimals(this.step)) {
1477
+ invalidDecimalPlaces = true;
1478
+ }
1479
+ if (isNaN(val) || !isFinite(val) || invalidDecimalPlaces) {
1439
1480
  this.isInvalidNumber = true;
1440
1481
  return false;
1441
1482
  }
@@ -1544,6 +1585,9 @@
1544
1585
  }
1545
1586
  // This function returns the step length set in the studio
1546
1587
  stepLength() {
1588
+ if (this.inputmode === 'INPUTMODE.NATURAL' && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
1589
+ return this.decimalplaces;
1590
+ }
1547
1591
  const stepLen = this.step.toString().split('.');
1548
1592
  if (stepLen.length === 1) {
1549
1593
  return;
@@ -1626,11 +1670,10 @@
1626
1670
  * @returns {number}
1627
1671
  */
1628
1672
  countDecimals(value) {
1629
- if ((value % 1) !== 0) {
1630
- const decimalValue = value.toString().split('.')[1];
1631
- return decimalValue && decimalValue.length;
1632
- }
1633
- return 0;
1673
+ const valueStr = value.toString();
1674
+ const isLocalizedNumber = lodashEs.includes(valueStr, this.DECIMAL);
1675
+ const parts = isLocalizedNumber ? valueStr.split(this.DECIMAL) : valueStr.split('.');
1676
+ return parts[1] ? parts[1].length : 0;
1634
1677
  }
1635
1678
  /**
1636
1679
  * handles the arrow press event. Increases or decreases the number. triggered fom the template
@@ -1715,7 +1758,7 @@
1715
1758
  const validity = new RegExp(`^[\\d\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');
1716
1759
  const inputValue = $event.target.value;
1717
1760
  // when input mode is financial, do not restrict user on entering the value when step value limit is reached.
1718
- const skipStepValidation = this.inputmode === i2.INPUTMODE.FINANCIAL;
1761
+ this.inputmode === i2.INPUTMODE.FINANCIAL;
1719
1762
  // Validates if user eneters more than 16 digits
1720
1763
  if (inputValue) {
1721
1764
  const parsedVal = parseInt(inputValue.toString().replace(/\D/g, ''));
@@ -1732,13 +1775,23 @@
1732
1775
  }
1733
1776
  // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).
1734
1777
  // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place
1735
- if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
1736
- return false;
1737
- }
1778
+ // if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
1779
+ // return false;
1780
+ // }
1738
1781
  // validates if user entered an invalid character.
1739
1782
  if (!validity.test($event.key)) {
1740
1783
  return false;
1741
1784
  }
1785
+ if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {
1786
+ if (this.decimalplaces === 0 && this.DECIMAL === $event.key) {
1787
+ return false;
1788
+ }
1789
+ const parts = lodashEs.includes(inputValue, this.DECIMAL) ? inputValue.split(this.DECIMAL) : inputValue.split('.');
1790
+ const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;
1791
+ if (this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {
1792
+ return false;
1793
+ }
1794
+ }
1742
1795
  // comma cannot be entered consecutively
1743
1796
  if (lodashEs.includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
1744
1797
  return false;
@@ -1817,14 +1870,14 @@
1817
1870
  i2.provideAs(NumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
1818
1871
  i2.provideAs(NumberComponent, i2$1.NG_VALIDATORS, true),
1819
1872
  i2.provideAsWidgetRef(NumberComponent)
1820
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "role", "textbox", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
1873
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
1821
1874
  const _r1 = i0__namespace.ɵɵgetCurrentView();
1822
1875
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
1823
1876
  i0__namespace.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onBackspace($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
1824
1877
  i0__namespace.ɵɵelementEnd();
1825
1878
  } if (rf & 2) {
1826
1879
  i0__namespace.ɵɵproperty("ngModel", ctx.displayValue)("readonly", ctx.readonly)("disabled", ctx.disabled)("pattern", ctx.regexp)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("ngModelOptions", ctx.ngModelOptions)("required", ctx.required);
1827
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
1880
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
1828
1881
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.PatternValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
1829
1882
  }
1830
1883
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(NumberComponent, [{
@@ -1833,7 +1886,7 @@
1833
1886
  i2.provideAs(NumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
1834
1887
  i2.provideAs(NumberComponent, i2$1.NG_VALIDATORS, true),
1835
1888
  i2.provideAsWidgetRef(NumberComponent)
1836
- ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n role=\"textbox\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
1889
+ ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\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 (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
1837
1890
  }], () => [{ type: i0__namespace.Injector }, { type: i1$1__namespace.AbstractI18nService }, { type: i2__namespace.TrailingZeroDecimalPipe }, { type: undefined, decorators: [{
1838
1891
  type: i0.Inject,
1839
1892
  args: ['EXPLICIT_CONTEXT']
@@ -1895,10 +1948,10 @@
1895
1948
  const item_r2 = ctx_r3.$implicit;
1896
1949
  const i_r5 = ctx_r3.index;
1897
1950
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
1898
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(10, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1951
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1899
1952
  i0__namespace.ɵɵadvance();
1900
- i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r2.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r2.selected);
1901
- i0__namespace.ɵɵattribute("aria-checked", item_r2.selected)("data-attr-index", i_r5)("aria-label", item_r2.key);
1953
+ i0__namespace.ɵɵproperty("checked", item_r2.selected)("disabled", ctx_r2.disabled || ctx_r2.readonly)("name", "radioset_" + ctx_r2.widgetId)("tabindex", ctx_r2.tabindex)("value", item_r2.key);
1954
+ i0__namespace.ɵɵattribute("data-attr-index", i_r5);
1902
1955
  i0__namespace.ɵɵadvance();
1903
1956
  i0__namespace.ɵɵproperty("textContent", item_r2.label);
1904
1957
  } }
@@ -1911,16 +1964,16 @@
1911
1964
  const item_r2 = ctx_r3.$implicit;
1912
1965
  const i_r5 = ctx_r3.index;
1913
1966
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
1914
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1967
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1915
1968
  i0__namespace.ɵɵadvance();
1916
- i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r2.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r2.selected);
1917
- i0__namespace.ɵɵattribute("aria-checked", item_r2.selected)("data-attr-index", i_r5)("aria-label", item_r2.key);
1969
+ i0__namespace.ɵɵproperty("checked", item_r2.selected)("disabled", ctx_r2.disabled || ctx_r2.readonly)("name", "radioset_" + ctx_r2.widgetId)("tabindex", ctx_r2.tabindex)("value", item_r2.key);
1970
+ i0__namespace.ɵɵattribute("data-attr-index", i_r5);
1918
1971
  } }
1919
1972
  function RadiosetComponent_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {
1920
1973
  const _r1 = i0__namespace.ɵɵgetCurrentView();
1921
1974
  i0__namespace.ɵɵelementStart(0, "li", 5);
1922
1975
  i0__namespace.ɵɵlistener("click", function RadiosetComponent_ng_template_0_li_0_Template_li_click_0_listener($event) { const item_r2 = i0__namespace.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r2.onRadioLabelClick($event, item_r2.key)); });
1923
- i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_0_li_0_label_1_Template, 3, 12, "label", 6)(2, RadiosetComponent_ng_template_0_li_0_label_2_Template, 3, 11, "label", 6);
1976
+ i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_0_li_0_label_1_Template, 3, 10, "label", 6)(2, RadiosetComponent_ng_template_0_li_0_label_2_Template, 3, 9, "label", 6);
1924
1977
  i0__namespace.ɵɵelementEnd();
1925
1978
  } if (rf & 2) {
1926
1979
  const item_r2 = ctx.$implicit;
@@ -1955,39 +2008,39 @@
1955
2008
  } }
1956
2009
  function RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx) { if (rf & 1) {
1957
2010
  i0__namespace.ɵɵelementStart(0, "label", 7);
1958
- i0__namespace.ɵɵelement(1, "input", 8)(2, "span", 9);
2011
+ i0__namespace.ɵɵelement(1, "input", 24)(2, "span", 9);
1959
2012
  i0__namespace.ɵɵelementEnd();
1960
2013
  } if (rf & 2) {
1961
2014
  const ctx_r9 = i0__namespace.ɵɵnextContext();
1962
2015
  const item_r9 = ctx_r9.$implicit;
1963
2016
  const i_r11 = ctx_r9.index;
1964
2017
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
1965
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2018
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1966
2019
  i0__namespace.ɵɵadvance();
1967
2020
  i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r9.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r9.selected);
1968
- i0__namespace.ɵɵattribute("aria-checked", item_r9.selected)("data-attr-index", i_r11);
2021
+ i0__namespace.ɵɵattribute("data-attr-index", i_r11);
1969
2022
  i0__namespace.ɵɵadvance();
1970
2023
  i0__namespace.ɵɵproperty("textContent", item_r9.label);
1971
2024
  } }
1972
2025
  function RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template(rf, ctx) { if (rf & 1) {
1973
2026
  i0__namespace.ɵɵelementStart(0, "label", 7);
1974
- i0__namespace.ɵɵelement(1, "input", 8)(2, "span", 10);
2027
+ i0__namespace.ɵɵelement(1, "input", 24)(2, "span", 10);
1975
2028
  i0__namespace.ɵɵelementEnd();
1976
2029
  } if (rf & 2) {
1977
2030
  const ctx_r9 = i0__namespace.ɵɵnextContext();
1978
2031
  const item_r9 = ctx_r9.$implicit;
1979
2032
  const i_r11 = ctx_r9.index;
1980
2033
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
1981
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2034
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1982
2035
  i0__namespace.ɵɵadvance();
1983
2036
  i0__namespace.ɵɵproperty("name", "radioset_" + ctx_r2.widgetId)("value", item_r9.key)("disabled", ctx_r2.disabled || ctx_r2.readonly)("tabindex", ctx_r2.tabindex)("checked", item_r9.selected);
1984
- i0__namespace.ɵɵattribute("aria-checked", item_r9.selected)("data-attr-index", i_r11);
2037
+ i0__namespace.ɵɵattribute("data-attr-index", i_r11);
1985
2038
  } }
1986
2039
  function RadiosetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf & 1) {
1987
2040
  const _r8 = i0__namespace.ɵɵgetCurrentView();
1988
2041
  i0__namespace.ɵɵelementStart(0, "li", 23);
1989
2042
  i0__namespace.ɵɵlistener("click", function RadiosetComponent_ng_template_3_li_0_li_8_Template_li_click_0_listener($event) { const item_r9 = i0__namespace.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0__namespace.ɵɵnextContext(3); return i0__namespace.ɵɵresetView(ctx_r2.onRadioLabelClick($event, item_r9)); });
1990
- i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template, 3, 11, "label", 6)(2, RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template, 3, 10, "label", 6);
2043
+ i0__namespace.ɵɵtemplate(1, RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template, 3, 10, "label", 6)(2, RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template, 3, 9, "label", 6);
1991
2044
  i0__namespace.ɵɵelementEnd();
1992
2045
  } if (rf & 2) {
1993
2046
  const item_r9 = ctx.$implicit;
@@ -2012,10 +2065,15 @@
2012
2065
  i0__namespace.ɵɵelementEnd()();
2013
2066
  } if (rf & 2) {
2014
2067
  const groupObj_r7 = ctx.$implicit;
2068
+ const groupindex_r12 = ctx.index;
2015
2069
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
2016
- i0__namespace.ɵɵadvance(2);
2017
- i0__namespace.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(6, _c3$1, ctx_r2.collapsible));
2018
- i0__namespace.ɵɵadvance(2);
2070
+ i0__namespace.ɵɵadvance();
2071
+ i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
2072
+ i0__namespace.ɵɵadvance();
2073
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$1, ctx_r2.collapsible));
2074
+ i0__namespace.ɵɵadvance();
2075
+ i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
2076
+ i0__namespace.ɵɵadvance();
2019
2077
  i0__namespace.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
2020
2078
  i0__namespace.ɵɵadvance(2);
2021
2079
  i0__namespace.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -2025,7 +2083,7 @@
2025
2083
  i0__namespace.ɵɵproperty("ngForOf", groupObj_r7.data);
2026
2084
  } }
2027
2085
  function RadiosetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
2028
- i0__namespace.ɵɵtemplate(0, RadiosetComponent_ng_template_3_li_0_Template, 9, 8, "li", 12);
2086
+ i0__namespace.ɵɵtemplate(0, RadiosetComponent_ng_template_3_li_0_Template, 9, 11, "li", 12);
2029
2087
  } if (rf & 2) {
2030
2088
  const ctx_r2 = i0__namespace.ɵɵnextContext();
2031
2089
  i0__namespace.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -2042,6 +2100,8 @@
2042
2100
  }
2043
2101
  triggerInvokeOnChange(key, $event) {
2044
2102
  this.modelByKey = key;
2103
+ if (this.viewParent.containerWidget)
2104
+ this.viewParent.containerWidget.updateDataValue(this.datavalue);
2045
2105
  this.invokeOnTouched();
2046
2106
  // invoke on datavalue change.
2047
2107
  this.invokeOnChange(this.datavalue, $event || {}, true);
@@ -2086,13 +2146,13 @@
2086
2146
  i2.provideAs(RadiosetComponent, i2$1.NG_VALUE_ACCESSOR, true),
2087
2147
  i2.provideAs(RadiosetComponent, i2$1.NG_VALIDATORS, true),
2088
2148
  i2.provideAsWidgetRef(RadiosetComponent)
2089
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$8, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["aria-readonly", "true", "class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-radioset-label", 3, "ngClass", 4, "ngIf"], [1, "app-radioset-label", 3, "ngClass"], ["type", "radio", 3, "name", "value", "disabled", "tabindex", "checked"], [1, "caption", 3, "textContent"], ["partial-container-target", "", 1, "caption", "customTemplate"], ["aria-readonly", "true", 1, "readonly-wrapper"], ["class", "app-list-item-group", 4, "ngFor", "ngForOf"], [1, "app-list-item-group"], [1, "item-group"], [1, "list-group-header", 3, "click", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"]], template: function RadiosetComponent_Template(rf, ctx) { if (rf & 1) {
2149
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$8, decls: 5, vars: 4, consts: [["groupedListTemplate", ""], [3, "ngIf", "ngIfElse"], ["hidden", "", 1, "model-holder", 3, "disabled"], ["aria-readonly", "true", "class", "readonly-wrapper", 4, "ngIf"], ["partialContainer", "", "role", "presentation", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], ["partialContainer", "", "role", "presentation", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["class", "app-radioset-label", 3, "ngClass", 4, "ngIf"], [1, "app-radioset-label", 3, "ngClass"], ["type", "radio", 3, "checked", "disabled", "name", "tabindex", "value"], [1, "caption", 3, "textContent"], ["partial-container-target", "", 1, "caption", "customTemplate"], ["aria-readonly", "true", 1, "readonly-wrapper"], ["class", "app-list-item-group", "role", "presentation", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "app-list-item-group"], [1, "item-group"], ["aria-hidden", "true", 1, "list-group-header", 3, "click", "id", "title", "ngClass"], [1, "group-title"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 3, "title", 4, "ngIf"], ["class", "label label-default", 3, "textContent", 4, "ngIf"], ["partialContainer", "", 3, "ngClass", "active", "wmItemTemplate", "userComponentParams", "click", 4, "ngFor", "ngForOf"], [1, "app-icon", "wi", "action", "wi-chevron-up", 3, "title"], [1, "label", "label-default", 3, "textContent"], ["partialContainer", "", 3, "click", "ngClass", "wmItemTemplate", "userComponentParams"], ["type", "radio", 3, "name", "value", "disabled", "tabindex", "checked"]], template: function RadiosetComponent_Template(rf, ctx) { if (rf & 1) {
2090
2150
  i0__namespace.ɵɵtemplate(0, RadiosetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
2091
2151
  i0__namespace.ɵɵelement(1, "input", 2);
2092
2152
  i0__namespace.ɵɵtemplate(2, RadiosetComponent_div_2_Template, 1, 0, "div", 3)(3, RadiosetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor);
2093
2153
  } if (rf & 2) {
2094
- const groupedListTemplate_r12 = i0__namespace.ɵɵreference(4);
2095
- i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
2154
+ const groupedListTemplate_r13 = i0__namespace.ɵɵreference(4);
2155
+ i0__namespace.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
2096
2156
  i0__namespace.ɵɵadvance();
2097
2157
  i0__namespace.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
2098
2158
  i0__namespace.ɵɵadvance();
@@ -2105,7 +2165,7 @@
2105
2165
  i2.provideAs(RadiosetComponent, i2$1.NG_VALUE_ACCESSOR, true),
2106
2166
  i2.provideAs(RadiosetComponent, i2$1.NG_VALIDATORS, true),
2107
2167
  i2.provideAsWidgetRef(RadiosetComponent)
2108
- ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
2168
+ ], template: "<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [checked]=\"item.selected\" [disabled]=\"disabled || readonly\"\n [name]=\"'radioset_' + widgetId\" [tabindex]=\"tabindex\" [value]=\"item.key\"\n type=\"radio\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupindex = index;\" class=\"app-list-item-group\" role=\"presentation\" >\n <ul class=\"item-group\" [attr.aria-labelledby]=\"'group_' + widgetId + '_' + groupindex\">\n <li [id]=\"'group_' + widgetId + '_' + groupindex\" aria-hidden=\"true\" class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\" [attr.aria-label]=\"'Group '+groupObj.key\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [attr.data-attr-index]=\"i\" [name]=\"'radioset_' + widgetId\" type=\"radio\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
2109
2169
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2110
2170
  type: i0.Inject,
2111
2171
  args: ['EXPLICIT_CONTEXT']
@@ -2129,6 +2189,7 @@
2129
2189
  ['displayValue', i2.PROP_STRING],
2130
2190
  ['groupby', i2.PROP_STRING],
2131
2191
  ['hint', i2.PROP_STRING],
2192
+ ['arialabel', i2.PROP_STRING],
2132
2193
  ['match', i2.PROP_STRING],
2133
2194
  ['multiple', { value: false, ...i2.PROP_BOOLEAN }],
2134
2195
  ['name', i2.PROP_STRING],
@@ -2198,10 +2259,38 @@
2198
2259
  this.datavalue = ds.execute(i1$1.DataSource.Operation.GET_DEFAULT_LOCALE);
2199
2260
  }
2200
2261
  }
2201
- constructor(inj, app, explicitContext) {
2262
+ constructor(inj, explicitContext) {
2202
2263
  super(inj, WIDGET_CONFIG$7, explicitContext);
2203
- this.app = app;
2204
2264
  this.acceptsArray = true;
2265
+ /*
2266
+ * When the dataset for a select element is updated and no longer includes the previously selected value:
2267
+ * The select element becomes empty, and the ngModel value is updated to reflect this change.
2268
+ * However, the change event is not triggered, preventing the form control from recognizing the update and applying necessary validations.
2269
+ * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
2270
+ * */
2271
+ const datasetSubscription = this.dataset$.subscribe(() => {
2272
+ if (i1$1.isIos() || i1$1.isSafari()) {
2273
+ if (this.datavalue) {
2274
+ const selectedItem = this.datasetItems.find(item => item.selected);
2275
+ if (!selectedItem) {
2276
+ setTimeout(() => {
2277
+ if (!this.placeholder) {
2278
+ this.selectEl.nativeElement.value = '';
2279
+ }
2280
+ this.modelByKey = undefined;
2281
+ }, 100);
2282
+ }
2283
+ }
2284
+ else {
2285
+ setTimeout(() => {
2286
+ if (!this.placeholder) {
2287
+ this.selectEl.nativeElement.value = '';
2288
+ }
2289
+ }, 100);
2290
+ }
2291
+ }
2292
+ });
2293
+ this.registerDestroyListener(() => datasetSubscription.unsubscribe());
2205
2294
  }
2206
2295
  ngAfterViewInit() {
2207
2296
  super.ngAfterViewInit();
@@ -2209,7 +2298,7 @@
2209
2298
  }
2210
2299
  // Change event is registered from the template, Prevent the framework from registering one more event
2211
2300
  handleEvent(node, eventName, eventCallback, locals) {
2212
- if (!lodashEs.includes(['blur', 'change'], eventName)) {
2301
+ if (!['blur', 'change'].includes(eventName)) {
2213
2302
  super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);
2214
2303
  }
2215
2304
  }
@@ -2260,36 +2349,40 @@
2260
2349
  */
2261
2350
  checkForFloatingLabel($event) {
2262
2351
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
2352
+ if (!this.placeholder && (i1$1.isIos() || i1$1.isSafari())) {
2353
+ this.removePlaceholderOption();
2354
+ }
2263
2355
  if (captionEl.length > 0) {
2264
- if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
2265
- if (!(this.datavalue || this.placeholder)) {
2266
- this.removePlaceholderOption();
2267
- }
2268
- else {
2269
- $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);
2356
+ const placeholderOption = this.selectEl.nativeElement.querySelector('#placeholderOption');
2357
+ if ($event.type === 'mousedown' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
2358
+ if (this.placeholder) {
2359
+ placeholderOption.textContent = this.placeholder;
2270
2360
  }
2271
2361
  }
2272
2362
  else if (!this.datavalue) {
2273
- $(this.selectEl.nativeElement).find('option:selected').text('');
2363
+ if (this.placeholder) {
2364
+ placeholderOption.textContent = '';
2365
+ }
2274
2366
  captionEl.removeClass('float-active');
2275
2367
  }
2276
2368
  }
2277
- else if (!(this.datavalue || this.placeholder)) {
2278
- this.removePlaceholderOption();
2279
- }
2280
2369
  }
2281
2370
  /*
2282
2371
  * Removing the placeholder option if no placeholder is provided.
2283
- * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.
2372
+ * In html we are hiding the placeholder option using css but in Apple devices and safari option is showing.
2373
+ * Styles are not allowed on option tag in ios safari
2374
+ * After removing the option, if no datavalue is present and native select element sets value to the first option by default, so we are setting it to empty
2284
2375
  * */
2285
2376
  removePlaceholderOption() {
2286
2377
  const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');
2287
2378
  if (hiddenEle.length) {
2288
2379
  hiddenEle.remove();
2289
- this.selectEl.nativeElement.value = '';
2380
+ if (!this.datavalue) {
2381
+ this.selectEl.nativeElement.value = '';
2382
+ }
2290
2383
  }
2291
2384
  }
2292
- static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1$1__namespace.App), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
2385
+ static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
2293
2386
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: SelectComponent, selectors: [["wm-select"]], viewQuery: function SelectComponent_Query(rf, ctx) { if (rf & 1) {
2294
2387
  i0__namespace.ɵɵviewQuery(_c0$7, 7, i0.ElementRef);
2295
2388
  } if (rf & 2) {
@@ -2299,11 +2392,11 @@
2299
2392
  i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
2300
2393
  i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
2301
2394
  i2.provideAsWidgetRef(SelectComponent)
2302
- ]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "focus", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
2395
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["focus-target", "", 3, "ngModelChange", "change", "mousedown", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], [3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], [3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
2303
2396
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2304
2397
  i0__namespace.ɵɵelementStart(0, "select", 1, 0);
2305
2398
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0__namespace.ɵɵresetView($event); });
2306
- i0__namespace.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onSelectValueChange($event)); })("focus", function SelectComponent_Template_select_focus_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
2399
+ i0__namespace.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onSelectValueChange($event)); })("mousedown", function SelectComponent_Template_select_mousedown_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0__namespace.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
2307
2400
  i0__namespace.ɵɵelement(2, "option", 2);
2308
2401
  i0__namespace.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3)(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
2309
2402
  i0__namespace.ɵɵelementEnd();
@@ -2311,7 +2404,7 @@
2311
2404
  i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(15, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
2312
2405
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.modelByKey);
2313
2406
  i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(17, _c2$4))("multiple", ctx.multiple)("autofocus", ctx.autofocus);
2314
- i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-multiselectable", ctx.multiple);
2407
+ i0__namespace.ɵɵattribute("accesskey", ctx.shortcutkey)("name", ctx.name)("aria-label", ctx.arialabel);
2315
2408
  i0__namespace.ɵɵadvance(2);
2316
2409
  i0__namespace.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
2317
2410
  i0__namespace.ɵɵadvance();
@@ -2326,8 +2419,8 @@
2326
2419
  i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
2327
2420
  i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
2328
2421
  i2.provideAsWidgetRef(SelectComponent)
2329
- ], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
2330
- }], () => [{ type: i0__namespace.Injector }, { type: i1$1__namespace.App }, { type: undefined, decorators: [{
2422
+ ], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [attr.accesskey]=\"shortcutkey\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </ng-container>\n</select>\n" }]
2423
+ }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2331
2424
  type: i0.Inject,
2332
2425
  args: ['EXPLICIT_CONTEXT']
2333
2426
  }, {
@@ -2336,7 +2429,7 @@
2336
2429
  type: i0.ViewChild,
2337
2430
  args: ['select', { static: true, read: i0.ElementRef }]
2338
2431
  }] }); })();
2339
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 22 }); })();
2432
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 20 }); })();
2340
2433
 
2341
2434
  const switchProps = new Map([
2342
2435
  ['class', i2.PROP_STRING],
@@ -2349,6 +2442,7 @@
2349
2442
  ['displayexpression', i2.PROP_STRING],
2350
2443
  ['displayfield', i2.PROP_STRING],
2351
2444
  ['hint', i2.PROP_STRING],
2445
+ ['arialabel', i2.PROP_STRING],
2352
2446
  ['iconclass', i2.PROP_STRING],
2353
2447
  ['checkediconclass', { value: 'wm-sl-l sl-check', ...i2.PROP_STRING }],
2354
2448
  ['name', i2.PROP_STRING],
@@ -2391,7 +2485,8 @@
2391
2485
  } if (rf & 2) {
2392
2486
  const opt_r3 = ctx.$implicit;
2393
2487
  const ctx_r4 = i0__namespace.ɵɵnextContext();
2394
- i0__namespace.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0__namespace.ɵɵpureFunction2(5, _c2$3, opt_r3.selected, ctx_r4.disabled));
2488
+ i0__namespace.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0__namespace.ɵɵpureFunction2(6, _c2$3, opt_r3.selected, ctx_r4.disabled));
2489
+ i0__namespace.ɵɵattribute("aria-pressed", opt_r3.selected ? true : false);
2395
2490
  i0__namespace.ɵɵadvance();
2396
2491
  i0__namespace.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
2397
2492
  i0__namespace.ɵɵadvance();
@@ -2539,9 +2634,9 @@
2539
2634
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0__namespace.ɵɵProvidersFeature([
2540
2635
  i2.provideAs(SwitchComponent, i2$1.NG_VALUE_ACCESSOR, true),
2541
2636
  i2.provideAsWidgetRef(SwitchComponent)
2542
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 4, vars: 9, consts: [["role", "group", 1, "btn-group", "btn-group-justified", 3, "ngClass"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "btn btn-primary app-switch-overlay switch-handle", 3, "title", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"], [1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "ngClass"], [1, "caption"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2637
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 4, vars: 9, consts: [["role", "group", 1, "btn-group", "btn-group-justified", 3, "ngClass"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", "role", "button", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["aria-hidden", "true", "class", "btn btn-primary app-switch-overlay switch-handle", 3, "title", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", "role", "button", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"], ["aria-hidden", "true", 1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "ngClass"], [1, "caption"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2543
2638
  i0__namespace.ɵɵelementStart(0, "div", 0);
2544
- i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_Template, 4, 8, "a", 1);
2639
+ i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_Template, 4, 9, "a", 1);
2545
2640
  i0__namespace.ɵɵelementEnd();
2546
2641
  i0__namespace.ɵɵtemplate(2, SwitchComponent_span_2_Template, 4, 5, "span", 2);
2547
2642
  i0__namespace.ɵɵelement(3, "input", 3);
@@ -2560,7 +2655,7 @@
2560
2655
  args: [{ selector: '[wmSwitch]', providers: [
2561
2656
  i2.provideAs(SwitchComponent, i2$1.NG_VALUE_ACCESSOR, true),
2562
2657
  i2.provideAsWidgetRef(SwitchComponent)
2563
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2658
+ ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2564
2659
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2565
2660
  type: i0.Inject,
2566
2661
  args: ['EXPLICIT_CONTEXT']
@@ -2578,6 +2673,7 @@
2578
2673
  ['datavalue', i2.PROP_STRING],
2579
2674
  ['disabled', i2.PROP_BOOLEAN],
2580
2675
  ['hint', i2.PROP_STRING],
2676
+ ['arialabel', i2.PROP_STRING],
2581
2677
  ['maxvalue', i2.PROP_NUMBER],
2582
2678
  ['minvalue', i2.PROP_NUMBER],
2583
2679
  ['name', i2.PROP_STRING],
@@ -2621,7 +2717,7 @@
2621
2717
  i2.provideAs(InputCalendarComponent, i2$1.NG_VALUE_ACCESSOR, true),
2622
2718
  i2.provideAs(InputCalendarComponent, i2$1.NG_VALIDATORS, true),
2623
2719
  i2.provideAsWidgetRef(InputCalendarComponent)
2624
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$4, decls: 2, vars: 19, consts: [["input", ""], ["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "min", "max", "step", "autofocus", "autocomplete", "ngClass", "ngStyle"]], template: function InputCalendarComponent_Template(rf, ctx) { if (rf & 1) {
2720
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$4, decls: 2, vars: 19, consts: [["input", ""], ["focus-target", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "min", "max", "step", "autofocus", "autocomplete", "ngClass", "ngStyle"]], template: function InputCalendarComponent_Template(rf, ctx) { if (rf & 1) {
2625
2721
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2626
2722
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
2627
2723
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function InputCalendarComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -2631,7 +2727,7 @@
2631
2727
  i0__namespace.ɵɵproperty("type", ctx.type);
2632
2728
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2633
2729
  i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(18, _c2$2))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("min", ctx.minvalue)("max", ctx.maxvalue)("step", ctx.step)("autofocus", ctx.autofocus)("autocomplete", ctx.autocomplete ? "on" : "off")("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle);
2634
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint || ctx.type + " field");
2730
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel || ctx.type + " field");
2635
2731
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
2636
2732
  }
2637
2733
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(InputCalendarComponent, [{
@@ -2640,7 +2736,7 @@
2640
2736
  i2.provideAs(InputCalendarComponent, i2$1.NG_VALUE_ACCESSOR, true),
2641
2737
  i2.provideAs(InputCalendarComponent, i2$1.NG_VALIDATORS, true),
2642
2738
  i2.provideAsWidgetRef(InputCalendarComponent)
2643
- ], template: "<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\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]=\"hint || 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" }]
2739
+ ], template: "<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" }]
2644
2740
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2645
2741
  type: i0.Inject,
2646
2742
  args: ['EXPLICIT_CONTEXT']
@@ -2664,6 +2760,7 @@
2664
2760
  ['datavalue', i2.PROP_STRING],
2665
2761
  ['disabled', i2.PROP_BOOLEAN],
2666
2762
  ['hint', i2.PROP_STRING],
2763
+ ['arialabel', i2.PROP_STRING],
2667
2764
  ['name', i2.PROP_STRING],
2668
2765
  ['placeholder', { value: 'Enter text', ...i2.PROP_STRING }],
2669
2766
  ['readonly', i2.PROP_BOOLEAN],
@@ -2704,7 +2801,7 @@
2704
2801
  i2.provideAs(InputColorComponent, i2$1.NG_VALUE_ACCESSOR, true),
2705
2802
  i2.provideAs(InputColorComponent, i2$1.NG_VALIDATORS, true),
2706
2803
  i2.provideAsWidgetRef(InputColorComponent)
2707
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$3, decls: 2, vars: 16, consts: [["input", ""], ["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "autofocus", "ngClass", "ngStyle"]], template: function InputColorComponent_Template(rf, ctx) { if (rf & 1) {
2804
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$3, decls: 2, vars: 16, consts: [["input", ""], ["focus-target", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "autofocus", "ngClass", "ngStyle"]], template: function InputColorComponent_Template(rf, ctx) { if (rf & 1) {
2708
2805
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2709
2806
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
2710
2807
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function InputColorComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -2714,7 +2811,7 @@
2714
2811
  i0__namespace.ɵɵproperty("type", ctx.type);
2715
2812
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2716
2813
  i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(15, _c2$1))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle);
2717
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2814
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2718
2815
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.MaxLengthValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
2719
2816
  }
2720
2817
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(InputColorComponent, [{
@@ -2723,7 +2820,7 @@
2723
2820
  i2.provideAs(InputColorComponent, i2$1.NG_VALUE_ACCESSOR, true),
2724
2821
  i2.provideAs(InputColorComponent, i2$1.NG_VALIDATORS, true),
2725
2822
  i2.provideAsWidgetRef(InputColorComponent)
2726
- ], template: "<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n role=\"textbox\"\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]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n" }]
2823
+ ], template: "<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" }]
2727
2824
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2728
2825
  type: i0.Inject,
2729
2826
  args: ['EXPLICIT_CONTEXT']
@@ -2747,6 +2844,7 @@
2747
2844
  ['datavalue', i2.PROP_STRING],
2748
2845
  ['disabled', i2.PROP_BOOLEAN],
2749
2846
  ['hint', i2.PROP_STRING],
2847
+ ['arialabel', i2.PROP_STRING],
2750
2848
  ['maxchars', i2.PROP_NUMBER],
2751
2849
  ['name', i2.PROP_STRING],
2752
2850
  ['placeholder', { value: 'Enter text', ...i2.PROP_STRING }],
@@ -2788,7 +2886,7 @@
2788
2886
  i2.provideAs(InputEmailComponent, i2$1.NG_VALUE_ACCESSOR, true),
2789
2887
  i2.provideAs(InputEmailComponent, i2$1.NG_VALIDATORS, true),
2790
2888
  i2.provideAsWidgetRef(InputEmailComponent)
2791
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$2, decls: 2, vars: 17, consts: [["input", ""], ["focus-target", "", "role", "textbox", "email", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "keyup.enter", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "pattern", "autofocus", "ngClass", "ngStyle", "autocomplete"]], template: function InputEmailComponent_Template(rf, ctx) { if (rf & 1) {
2889
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$2, decls: 2, vars: 17, consts: [["input", ""], ["focus-target", "", "email", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "keyup.enter", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "pattern", "autofocus", "ngClass", "ngStyle", "autocomplete"]], template: function InputEmailComponent_Template(rf, ctx) { if (rf & 1) {
2792
2890
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2793
2891
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
2794
2892
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function InputEmailComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -2798,7 +2896,7 @@
2798
2896
  i0__namespace.ɵɵproperty("type", ctx.type);
2799
2897
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2800
2898
  i0__namespace.ɵɵproperty("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("pattern", ctx.regexp)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("autocomplete", ctx.autocomplete ? "on" : "off");
2801
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2899
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2802
2900
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.MaxLengthValidator, i2$1__namespace.PatternValidator, i2$1__namespace.EmailValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
2803
2901
  }
2804
2902
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(InputEmailComponent, [{
@@ -2807,7 +2905,7 @@
2807
2905
  i2.provideAs(InputEmailComponent, i2$1.NG_VALUE_ACCESSOR, true),
2808
2906
  i2.provideAs(InputEmailComponent, i2$1.NG_VALIDATORS, true),
2809
2907
  i2.provideAsWidgetRef(InputEmailComponent)
2810
- ], template: "<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\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]=\"hint\"\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" }]
2908
+ ], template: "<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" }]
2811
2909
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2812
2910
  type: i0.Inject,
2813
2911
  args: ['EXPLICIT_CONTEXT']
@@ -2831,6 +2929,7 @@
2831
2929
  ['datavalue', i2.PROP_STRING],
2832
2930
  ['disabled', i2.PROP_BOOLEAN],
2833
2931
  ['hint', i2.PROP_STRING],
2932
+ ['arialabel', i2.PROP_STRING],
2834
2933
  ['maxchars', i2.PROP_NUMBER],
2835
2934
  ['maxvalue', i2.PROP_NUMBER],
2836
2935
  ['minvalue', i2.PROP_NUMBER],
@@ -2886,7 +2985,7 @@
2886
2985
  i2.provideAs(InputNumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
2887
2986
  i2.provideAs(InputNumberComponent, i2$1.NG_VALIDATORS, true),
2888
2987
  i2.provideAsWidgetRef(InputNumberComponent)
2889
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$1, decls: 2, vars: 22, consts: [["input", ""], ["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "keyup.enter", "keydown.ArrowUp", "keydown.ArrowDown", "keypress", "ngClass", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "min", "max", "step", "autofocus", "ngStyle", "autocomplete"]], template: function InputNumberComponent_Template(rf, ctx) { if (rf & 1) {
2988
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$1, decls: 2, vars: 22, consts: [["input", ""], ["focus-target", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "keyup.enter", "keydown.ArrowUp", "keydown.ArrowDown", "keypress", "ngClass", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "min", "max", "step", "autofocus", "ngStyle", "autocomplete"]], template: function InputNumberComponent_Template(rf, ctx) { if (rf & 1) {
2890
2989
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2891
2990
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
2892
2991
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -2896,7 +2995,7 @@
2896
2995
  i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type);
2897
2996
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2898
2997
  i0__namespace.ɵɵproperty("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("min", ctx.minvalue)("max", ctx.maxvalue)("step", ctx.step)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("autocomplete", ctx.autocomplete ? "on" : "off");
2899
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2998
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2900
2999
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.MaxLengthValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
2901
3000
  }
2902
3001
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(InputNumberComponent, [{
@@ -2905,7 +3004,7 @@
2905
3004
  i2.provideAs(InputNumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
2906
3005
  i2.provideAs(InputNumberComponent, i2$1.NG_VALIDATORS, true),
2907
3006
  i2.provideAsWidgetRef(InputNumberComponent)
2908
- ], template: "<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\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]=\"hint\"\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" }]
3007
+ ], template: "<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" }]
2909
3008
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2910
3009
  type: i0.Inject,
2911
3010
  args: ['EXPLICIT_CONTEXT']
@@ -2930,6 +3029,7 @@
2930
3029
  ['disabled', i2.PROP_BOOLEAN],
2931
3030
  ['displayformat', i2.PROP_STRING],
2932
3031
  ['hint', i2.PROP_STRING],
3032
+ ['arialabel', i2.PROP_STRING],
2933
3033
  ['maxchars', i2.PROP_NUMBER],
2934
3034
  ['name', i2.PROP_STRING],
2935
3035
  ['placeholder', { value: 'Enter text', ...i2.PROP_STRING }],
@@ -3053,7 +3153,7 @@
3053
3153
  i2.provideAs(InputTextComponent, i2$1.NG_VALUE_ACCESSOR, true),
3054
3154
  i2.provideAs(InputTextComponent, i2$1.NG_VALIDATORS, true),
3055
3155
  i2.provideAsWidgetRef(InputTextComponent)
3056
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 19, consts: [["input", ""], ["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "focus", "keyup.enter", "type", "ngModel", "imask", "unmask", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "pattern", "autofocus", "ngClass", "ngStyle", "autocomplete"]], template: function InputTextComponent_Template(rf, ctx) { if (rf & 1) {
3156
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 19, consts: [["input", ""], ["focus-target", "", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "focus", "keyup.enter", "type", "ngModel", "imask", "unmask", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "pattern", "autofocus", "ngClass", "ngStyle", "autocomplete"]], template: function InputTextComponent_Template(rf, ctx) { if (rf & 1) {
3057
3157
  const _r1 = i0__namespace.ɵɵgetCurrentView();
3058
3158
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
3059
3159
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function InputTextComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -3063,7 +3163,7 @@
3063
3163
  i0__namespace.ɵɵproperty("type", ctx.type);
3064
3164
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3065
3165
  i0__namespace.ɵɵproperty("imask", ctx.mask)("unmask", true)("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("pattern", ctx.regexp)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("autocomplete", ctx.autocomplete ? "on" : "off");
3066
- i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
3166
+ i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
3067
3167
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.MaxLengthValidator, i2$1__namespace.PatternValidator, i2$1__namespace.NgModel, i3__namespace.IMaskDirective], encapsulation: 2 }); }
3068
3168
  }
3069
3169
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(InputTextComponent, [{
@@ -3072,7 +3172,7 @@
3072
3172
  i2.provideAs(InputTextComponent, i2$1.NG_VALUE_ACCESSOR, true),
3073
3173
  i2.provideAs(InputTextComponent, i2$1.NG_VALIDATORS, true),
3074
3174
  i2.provideAsWidgetRef(InputTextComponent)
3075
- ], template: "<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\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" }]
3175
+ ], template: "<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" }]
3076
3176
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
3077
3177
  type: i0.Inject,
3078
3178
  args: ['EXPLICIT_CONTEXT']
@@ -3098,6 +3198,7 @@
3098
3198
  ['datavalue', i2.PROP_STRING],
3099
3199
  ['disabled', i2.PROP_BOOLEAN],
3100
3200
  ['hint', i2.PROP_STRING],
3201
+ ['arialabel', i2.PROP_STRING],
3101
3202
  ['maxchars', i2.PROP_NUMBER],
3102
3203
  ['name', i2.PROP_STRING],
3103
3204
  ['placeholder', { value: 'Place your text', ...i2.PROP_STRING }],
@@ -3140,6 +3241,9 @@
3140
3241
  onInputChange() {
3141
3242
  this.charlength = this.inputEl.nativeElement.value.length;
3142
3243
  }
3244
+ ngAfterViewChecked() {
3245
+ this.charlength = this.inputEl.nativeElement.value.length;
3246
+ }
3143
3247
  static { this.ɵfac = function TextareaComponent_Factory(t) { return new (t || TextareaComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
3144
3248
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: TextareaComponent, selectors: [["wm-textarea"]], viewQuery: function TextareaComponent_Query(rf, ctx) { if (rf & 1) {
3145
3249
  i0__namespace.ɵɵviewQuery(_c0, 7);
@@ -3152,7 +3256,7 @@
3152
3256
  i2.provideAs(TextareaComponent, i2$1.NG_VALUE_ACCESSOR, true),
3153
3257
  i2.provideAs(TextareaComponent, i2$1.NG_VALIDATORS, true),
3154
3258
  i2.provideAsWidgetRef(TextareaComponent)
3155
- ]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 3, vars: 15, consts: [["textarea", ""], ["focus-target", "", "role", "textbox", "aria-multiline", "true", 1, "form-control", "app-textarea", 3, "ngModelChange", "blur", "input", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "autofocus", "ngClass", "ngStyle"], ["class", "textarea-count", 4, "ngIf"], [1, "textarea-count"]], template: function TextareaComponent_Template(rf, ctx) { if (rf & 1) {
3259
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 3, vars: 15, consts: [["textarea", ""], ["focus-target", "", "aria-multiline", "true", 1, "form-control", "app-textarea", 3, "ngModelChange", "blur", "input", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "autofocus", "ngClass", "ngStyle"], ["class", "textarea-count", 4, "ngIf"], [1, "textarea-count"]], template: function TextareaComponent_Template(rf, ctx) { if (rf & 1) {
3156
3260
  const _r1 = i0__namespace.ɵɵgetCurrentView();
3157
3261
  i0__namespace.ɵɵelementStart(0, "textarea", 1, 0);
3158
3262
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function TextareaComponent_Template_textarea_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -3162,7 +3266,7 @@
3162
3266
  } if (rf & 2) {
3163
3267
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3164
3268
  i0__namespace.ɵɵproperty("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle);
3165
- i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
3269
+ i0__namespace.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
3166
3270
  i0__namespace.ɵɵadvance(2);
3167
3271
  i0__namespace.ɵɵproperty("ngIf", ctx.maxchars);
3168
3272
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgIf, i1__namespace.NgStyle, i2$1__namespace.DefaultValueAccessor, i2$1__namespace.NgControlStatus, i2$1__namespace.RequiredValidator, i2$1__namespace.MaxLengthValidator, i2$1__namespace.NgModel], encapsulation: 2 }); }
@@ -3173,7 +3277,7 @@
3173
3277
  i2.provideAs(TextareaComponent, i2$1.NG_VALUE_ACCESSOR, true),
3174
3278
  i2.provideAs(TextareaComponent, i2$1.NG_VALIDATORS, true),
3175
3279
  i2.provideAsWidgetRef(TextareaComponent)
3176
- ], template: "<textarea class=\"form-control app-textarea\"\n focus-target\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\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]=\"hint\"\n aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n" }]
3280
+ ], template: "<textarea class=\"form-control app-textarea\"\n focus-target\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\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 aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n" }]
3177
3281
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
3178
3282
  type: i0.Inject,
3179
3283
  args: ['EXPLICIT_CONTEXT']
@@ -3186,7 +3290,7 @@
3186
3290
  type: i0.ViewChild,
3187
3291
  args: [i2$1.NgModel]
3188
3292
  }] }); })();
3189
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 22 }); })();
3293
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 23 }); })();
3190
3294
 
3191
3295
  class CaptionPositionDirective {
3192
3296
  constructor(inj, app) {
@@ -3217,9 +3321,10 @@
3217
3321
  }
3218
3322
  // For select widget, display placeholder only on focus else remove the text of the option selected.
3219
3323
  checkForSelectPlaceholder() {
3220
- if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&
3324
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3325
+ if (selectElPlaceholderOption && selectElPlaceholderOption.textContent && !$(this.nativeEl).find('select').is(':focus') &&
3221
3326
  !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {
3222
- $(this.nativeEl).find('select option:selected').text('');
3327
+ selectElPlaceholderOption.textContent = '';
3223
3328
  }
3224
3329
  }
3225
3330
  setDefaultValueAnimation() {
@@ -3321,10 +3426,10 @@
3321
3426
  // before placeholder is removed assign it to the placeholder variable
3322
3427
  // check for placeholder in inputel and selectel
3323
3428
  if (this.inputEl) {
3324
- const selectEl = this.inputEl.find('option:first');
3325
- if (this.inputEl.attr('placeholder') || selectEl.text()) {
3326
- if (selectEl.length) {
3327
- selectEl.text('');
3429
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3430
+ if (this.inputEl.attr('placeholder') || selectElPlaceholderOption) {
3431
+ if (selectElPlaceholderOption) {
3432
+ selectElPlaceholderOption.textContent = '';
3328
3433
  }
3329
3434
  else {
3330
3435
  this.placeholder = this.inputEl.attr('placeholder');