@wavemaker/app-ng-runtime 12.0.0-next.141167 → 12.0.0-next.141177

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 (281) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +46 -38
  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 +2 -2
  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 +46 -38
  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/base/bundles/index.umd.js +1 -1
  36. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  37. app-ng-runtime/components/base/fesm2022/index.mjs +1 -1
  38. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  40. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  41. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  42. app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
  43. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  44. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  45. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
  46. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  47. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  48. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  49. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  50. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  51. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  52. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  53. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  54. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  55. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  56. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
  57. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  58. app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
  59. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  60. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  61. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  62. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  63. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  64. app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
  65. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  66. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  67. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  68. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  69. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
  70. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  71. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  72. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  73. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  74. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  75. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  76. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  77. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  78. app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
  79. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
  80. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  81. app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
  82. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  83. app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
  84. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  85. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  86. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  87. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  88. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  89. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  90. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  91. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  92. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  93. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  94. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  95. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  96. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  97. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  98. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  99. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  101. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  102. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  103. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  104. app-ng-runtime/components/data/table/bundles/index.umd.js +37 -7
  105. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  106. app-ng-runtime/components/data/table/esm2022/table.component.mjs +24 -4
  107. app-ng-runtime/components/data/table/esm2022/table.props.mjs +2 -1
  108. app-ng-runtime/components/data/table/fesm2022/index.mjs +38 -8
  109. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  110. app-ng-runtime/components/data/table/table.component.d.ts +5 -0
  111. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  112. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  113. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  114. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  115. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  116. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  117. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  118. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  119. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
  120. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  121. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
  122. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  123. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
  124. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  125. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  126. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  127. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  128. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  129. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  130. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  131. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  132. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  133. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  134. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  135. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  136. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  137. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  138. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  139. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  140. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
  142. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
  143. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  144. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
  145. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  146. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  147. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  148. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  149. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  150. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  151. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  152. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  153. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  154. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  155. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  156. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  157. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  158. app-ng-runtime/components/input/default/bundles/index.umd.js +154 -93
  159. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  160. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  161. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  162. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  163. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  164. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  165. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  166. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  167. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +6 -6
  168. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  169. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  170. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +7 -7
  171. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  172. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  173. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  174. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  175. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  176. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  177. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  178. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  179. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  180. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +50 -13
  181. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  182. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  183. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  184. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  185. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
  186. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  187. app-ng-runtime/components/input/default/fesm2022/index.mjs +154 -93
  188. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  189. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  190. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
  191. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  192. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  193. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  194. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  195. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  196. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  197. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
  198. app-ng-runtime/components/input/epoch/bundles/index.umd.js +12 -9
  199. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  200. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  201. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
  202. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  203. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -7
  204. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  205. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  206. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  207. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +12 -9
  208. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  209. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  210. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +187 -100
  211. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +184 -102
  212. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
  213. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +187 -100
  214. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  215. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +12 -10
  216. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  217. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  218. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  219. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  220. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  221. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  222. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
  223. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  224. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  225. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
  226. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  227. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  228. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +102 -10
  229. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +102 -11
  230. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  231. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +102 -10
  232. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  233. app-ng-runtime/components/navigation/popover/popover.component.d.ts +11 -0
  234. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  235. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  236. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  237. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  238. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  239. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  240. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  241. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  242. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  243. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  244. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  245. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  246. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  247. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  248. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  249. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  250. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  251. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  252. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  253. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  254. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  255. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  256. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  257. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  258. app-ng-runtime/core/bundles/index.umd.js +15 -13
  259. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  260. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  261. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
  262. app-ng-runtime/core/fesm2022/index.mjs +11 -11
  263. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/core/public_api.d.ts +1 -1
  265. app-ng-runtime/core/utils/utils.d.ts +1 -1
  266. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  267. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  268. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  269. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  270. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  271. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  272. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  273. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  274. app-ng-runtime/package.json +1 -1
  275. app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
  276. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  277. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  278. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  279. app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
  280. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  281. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
@@ -9,7 +9,7 @@ import { IMaskDirective, IMaskModule } from 'angular-imask';
9
9
  import * as i2 from '@wm/components/base';
10
10
  import { PROP_STRING, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, register, DISPLAY_TYPE, StylableComponent, styler, provideAsWidgetRef, APPLY_STYLES_TYPE, WidgetConfig, registerFormWidget, provideAs, extractDataAsArray, ToDatePipe, ALLFIELDS, convertDataToObject, getOrderedDataset, transformDataWithKeys, transformFormData, getUniqObjsByDataField, groupData, handleHeaderClick, toggleAllHeaders, WidgetRef, INPUTMODE, TrailingZeroDecimalPipe, WmComponentsModule } from '@wm/components/base';
11
11
  import * as i1$1 from '@wm/core';
12
- import { DataSource, FormWidgetType, isDefined, toggleClass, AppDefaults, $appDigest, debounce as debounce$1, noop, isEqualWithFields, toBoolean, setListClass, switchClass, addForIdAttributes, addClass, AbstractI18nService, isIos, setAttr, removeAttr, setCSS } from '@wm/core';
12
+ import { DataSource, FormWidgetType, isDefined, toggleClass, AppDefaults, $appDigest, debounce as debounce$1, noop, isEqualWithFields, toBoolean, setListClass, switchClass, addForIdAttributes, addClass, AbstractI18nService, isIos, isSafari, setAttr, removeAttr, setCSS } from '@wm/core';
13
13
  import { has, set, isArray, debounce, toString, find, isNull, isObject, isEqual, isEmpty, forEach, includes, isString, get, isUndefined, round, toArray, intersection, findIndex } from 'lodash-es';
14
14
  import { Subject } from 'rxjs';
15
15
  import { __param, __metadata, __decorate } from 'tslib';
@@ -24,6 +24,7 @@ const registerProps$e = () => {
24
24
  ['conditionalstyle', PROP_ANY],
25
25
  ['disabled', PROP_BOOLEAN],
26
26
  ['hint', PROP_STRING],
27
+ ['arialabel', PROP_STRING],
27
28
  ['iconclass', PROP_STRING],
28
29
  ['iconheight', PROP_STRING],
29
30
  ['iconmargin', PROP_STRING],
@@ -369,6 +370,7 @@ const checkboxProps = new Map([
369
370
  ['datavalue', PROP_STRING],
370
371
  ['disabled', PROP_BOOLEAN],
371
372
  ['hint', PROP_STRING],
373
+ ['arialabel', PROP_STRING],
372
374
  ['name', PROP_STRING],
373
375
  ['readonly', PROP_BOOLEAN],
374
376
  ['required', PROP_BOOLEAN],
@@ -496,7 +498,7 @@ class CheckboxComponent extends BaseFormCustomComponent {
496
498
  provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),
497
499
  provideAs(CheckboxComponent, NG_VALIDATORS, true),
498
500
  provideAsWidgetRef(CheckboxComponent)
499
- ]), i0.ɵɵ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) {
501
+ ]), i0.ɵɵ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) {
500
502
  const _r1 = i0.ɵɵgetCurrentView();
501
503
  i0.ɵɵelementStart(0, "label", 1)(1, "input", 2, 0);
502
504
  i0.ɵɵtwoWayListener("ngModelChange", function CheckboxComponent_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.proxyModel, $event) || (ctx.proxyModel = $event); return i0.ɵɵresetView($event); });
@@ -506,11 +508,11 @@ class CheckboxComponent extends BaseFormCustomComponent {
506
508
  i0.ɵɵelementEnd();
507
509
  i0.ɵɵelement(5, "input", 5);
508
510
  } if (rf & 2) {
509
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(14, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
511
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(13, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
510
512
  i0.ɵɵadvance();
511
513
  i0.ɵɵtwoWayProperty("ngModel", ctx.proxyModel);
512
- i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(18, _c3$2))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
513
- i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-checked", !!ctx.proxyModel)("accesskey", ctx.shortcutkey);
514
+ i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(17, _c3$2))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
515
+ i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("accesskey", ctx.shortcutkey);
514
516
  i0.ɵɵadvance(2);
515
517
  i0.ɵɵproperty("innerHtml", ctx._caption, i0.ɵɵsanitizeHtml);
516
518
  i0.ɵɵadvance(2);
@@ -523,7 +525,7 @@ class CheckboxComponent extends BaseFormCustomComponent {
523
525
  provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),
524
526
  provideAs(CheckboxComponent, NG_VALIDATORS, true),
525
527
  provideAsWidgetRef(CheckboxComponent)
526
- ], 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" }]
528
+ ], 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" }]
527
529
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
528
530
  type: Attribute,
529
531
  args: ['checkedvalue']
@@ -895,10 +897,10 @@ function CheckboxsetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if
895
897
  const item_r2 = ctx_r3.$implicit;
896
898
  const i_r5 = ctx_r3.index;
897
899
  const ctx_r2 = i0.ɵɵnextContext(2);
898
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c2$6, ctx_r2.disabled || ctx_r2.readonly))("title", item_r2.label);
900
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2$6, ctx_r2.disabled || ctx_r2.readonly))("title", item_r2.label);
899
901
  i0.ɵɵadvance();
900
902
  i0.ɵɵ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);
901
- i0.ɵɵattribute("aria-label", item_r2.key)("aria-checked", item_r2.selected)("data-attr-index", i_r5);
903
+ i0.ɵɵattribute("data-attr-index", i_r5);
902
904
  i0.ɵɵadvance();
903
905
  i0.ɵɵproperty("textContent", item_r2.label);
904
906
  } }
@@ -911,16 +913,16 @@ function CheckboxsetComponent_ng_template_0_li_0_label_2_Template(rf, ctx) { if
911
913
  const item_r2 = ctx_r3.$implicit;
912
914
  const i_r5 = ctx_r3.index;
913
915
  const ctx_r2 = i0.ɵɵnextContext(2);
914
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2$6, ctx_r2.disabled || ctx_r2.readonly));
916
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$6, ctx_r2.disabled || ctx_r2.readonly));
915
917
  i0.ɵɵadvance();
916
918
  i0.ɵɵ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);
917
- i0.ɵɵattribute("aria-label", item_r2.key)("aria-checked", item_r2.selected)("data-attr-index", i_r5);
919
+ i0.ɵɵattribute("data-attr-index", i_r5);
918
920
  } }
919
921
  function CheckboxsetComponent_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {
920
922
  const _r1 = i0.ɵɵgetCurrentView();
921
923
  i0.ɵɵelementStart(0, "li", 5);
922
924
  i0.ɵɵlistener("click", function CheckboxsetComponent_ng_template_0_li_0_Template_li_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCheckboxLabelClick($event, item_r2.key)); });
923
- i0.ɵɵ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);
925
+ i0.ɵɵ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);
924
926
  i0.ɵɵelementEnd();
925
927
  } if (rf & 2) {
926
928
  const item_r2 = ctx.$implicit;
@@ -955,7 +957,7 @@ function CheckboxsetComponent_ng_template_3_li_0_span_7_Template(rf, ctx) { if (
955
957
  } }
956
958
  function CheckboxsetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx) { if (rf & 1) {
957
959
  i0.ɵɵelementStart(0, "label", 8);
958
- i0.ɵɵelement(1, "input", 26)(2, "span", 10);
960
+ i0.ɵɵelement(1, "input", 9)(2, "span", 10);
959
961
  i0.ɵɵelementEnd();
960
962
  } if (rf & 2) {
961
963
  const ctx_r9 = i0.ɵɵnextContext();
@@ -971,7 +973,7 @@ function CheckboxsetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx)
971
973
  } }
972
974
  function CheckboxsetComponent_ng_template_3_li_0_li_8_label_2_Template(rf, ctx) { if (rf & 1) {
973
975
  i0.ɵɵelementStart(0, "label", 11);
974
- i0.ɵɵelement(1, "input", 26)(2, "span", 27);
976
+ i0.ɵɵelement(1, "input", 9)(2, "span", 26);
975
977
  i0.ɵɵelementEnd();
976
978
  } if (rf & 2) {
977
979
  const ctx_r9 = i0.ɵɵnextContext();
@@ -1012,10 +1014,15 @@ function CheckboxsetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1)
1012
1014
  i0.ɵɵelementEnd()();
1013
1015
  } if (rf & 2) {
1014
1016
  const groupObj_r7 = ctx.$implicit;
1017
+ const groupindex_r12 = ctx.index;
1015
1018
  const ctx_r2 = i0.ɵɵnextContext(2);
1016
- i0.ɵɵadvance(2);
1017
- i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3$1, ctx_r2.collapsible));
1018
- i0.ɵɵadvance(2);
1019
+ i0.ɵɵadvance();
1020
+ i0.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
1021
+ i0.ɵɵadvance();
1022
+ i0.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(9, _c3$1, ctx_r2.collapsible));
1023
+ i0.ɵɵadvance();
1024
+ i0.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
1025
+ i0.ɵɵadvance();
1019
1026
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
1020
1027
  i0.ɵɵadvance(2);
1021
1028
  i0.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -1025,7 +1032,7 @@ function CheckboxsetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1)
1025
1032
  i0.ɵɵproperty("ngForOf", groupObj_r7.data);
1026
1033
  } }
1027
1034
  function CheckboxsetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1028
- i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 8, "li", 14);
1035
+ i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_3_li_0_Template, 9, 11, "li", 14);
1029
1036
  } if (rf & 2) {
1030
1037
  const ctx_r2 = i0.ɵɵnextContext();
1031
1038
  i0.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -1097,13 +1104,13 @@ class CheckboxsetComponent extends DatasetAwareFormComponent {
1097
1104
  provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),
1098
1105
  provideAs(CheckboxsetComponent, NG_VALIDATORS, true),
1099
1106
  provideAsWidgetRef(CheckboxsetComponent)
1100
- ]), i0.ɵɵ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) {
1107
+ ]), i0.ɵɵ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) {
1101
1108
  i0.ɵɵtemplate(0, CheckboxsetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
1102
1109
  i0.ɵɵelement(1, "input", 2);
1103
1110
  i0.ɵɵtemplate(2, CheckboxsetComponent_div_2_Template, 1, 0, "div", 3)(3, CheckboxsetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1104
1111
  } if (rf & 2) {
1105
- const groupedListTemplate_r12 = i0.ɵɵreference(4);
1106
- i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
1112
+ const groupedListTemplate_r13 = i0.ɵɵreference(4);
1113
+ i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
1107
1114
  i0.ɵɵadvance();
1108
1115
  i0.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
1109
1116
  i0.ɵɵadvance();
@@ -1116,7 +1123,7 @@ class CheckboxsetComponent extends DatasetAwareFormComponent {
1116
1123
  provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),
1117
1124
  provideAs(CheckboxsetComponent, NG_VALIDATORS, true),
1118
1125
  provideAsWidgetRef(CheckboxsetComponent)
1119
- ], 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" }]
1126
+ ], 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" }]
1120
1127
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
1121
1128
  type: Inject,
1122
1129
  args: ['EXPLICIT_CONTEXT']
@@ -1222,6 +1229,7 @@ const numberProps = new Map([
1222
1229
  ['datavalue', PROP_STRING],
1223
1230
  ['disabled', PROP_BOOLEAN],
1224
1231
  ['hint', PROP_STRING],
1232
+ ['arialabel', PROP_STRING],
1225
1233
  ['localefilter', PROP_STRING],
1226
1234
  ['minvalue', PROP_NUMBER],
1227
1235
  ['maxvalue', PROP_NUMBER],
@@ -1238,6 +1246,7 @@ const numberProps = new Map([
1238
1246
  ['trailingzero', { value: false, ...PROP_BOOLEAN }],
1239
1247
  ['updateon', PROP_STRING],
1240
1248
  ['inputmode', { value: 'natural', ...PROP_STRING }],
1249
+ ['decimalplaces', PROP_NUMBER],
1241
1250
  ['conditionalclass', PROP_ANY],
1242
1251
  ['conditionalstyle', PROP_ANY]
1243
1252
  ]);
@@ -1364,8 +1373,27 @@ let NumberLocale = class NumberLocale extends BaseInput {
1364
1373
  if (this.isDefaultQuery) {
1365
1374
  const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);
1366
1375
  const parts = isLocalizedNumber ? value.split(this.DECIMAL) : isString(value) && value.split('.');
1367
- this.decimalValue = parts[1] || '';
1368
- value = isLocalizedNumber ? value : this.transformNumber(value);
1376
+ let decimalPlacesAttrVal = this.getAttr('decimalplaces');
1377
+ const decimalplaces = decimalPlacesAttrVal !== '' && decimalPlacesAttrVal !== undefined ? Number(decimalPlacesAttrVal) : NaN;
1378
+ if (this.inputmode === INPUTMODE.NATURAL && !isNaN(decimalplaces)) {
1379
+ if (decimalplaces === 0) {
1380
+ this.decimalValue = '';
1381
+ value = isLocalizedNumber ? parts[0] : this.transformNumber(parts[0]);
1382
+ }
1383
+ if (decimalplaces > 0) {
1384
+ this.decimalValue = parts[1] && parts[1].substring(0, decimalplaces) || '';
1385
+ if (isLocalizedNumber) {
1386
+ value = this.decimalValue.length ? `${parts[0]}${this.DECIMAL}${this.decimalValue}` : parts[0];
1387
+ }
1388
+ else {
1389
+ value = Number.parseFloat(String(value)).toFixed(decimalplaces);
1390
+ }
1391
+ }
1392
+ }
1393
+ else {
1394
+ this.decimalValue = parts[1] || '';
1395
+ value = isLocalizedNumber ? value : this.transformNumber(value);
1396
+ }
1369
1397
  }
1370
1398
  const numberReg = /\d/;
1371
1399
  const strVal = value.toString();
@@ -1414,8 +1442,14 @@ let NumberLocale = class NumberLocale extends BaseInput {
1414
1442
  */
1415
1443
  isValid(val) {
1416
1444
  // id number is infinite then consider it as invalid value
1417
- if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&
1418
- this.countDecimals(val) > this.countDecimals(this.step))) {
1445
+ let invalidDecimalPlaces = false;
1446
+ if (this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
1447
+ invalidDecimalPlaces = this.countDecimals(val) > this.decimalplaces;
1448
+ }
1449
+ else if (!Number.isInteger(this.step) && this.countDecimals(val) > this.countDecimals(this.step)) {
1450
+ invalidDecimalPlaces = true;
1451
+ }
1452
+ if (isNaN(val) || !isFinite(val) || invalidDecimalPlaces) {
1419
1453
  this.isInvalidNumber = true;
1420
1454
  return false;
1421
1455
  }
@@ -1524,6 +1558,9 @@ let NumberLocale = class NumberLocale extends BaseInput {
1524
1558
  }
1525
1559
  // This function returns the step length set in the studio
1526
1560
  stepLength() {
1561
+ if (this.inputmode === 'INPUTMODE.NATURAL' && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
1562
+ return this.decimalplaces;
1563
+ }
1527
1564
  const stepLen = this.step.toString().split('.');
1528
1565
  if (stepLen.length === 1) {
1529
1566
  return;
@@ -1606,11 +1643,10 @@ let NumberLocale = class NumberLocale extends BaseInput {
1606
1643
  * @returns {number}
1607
1644
  */
1608
1645
  countDecimals(value) {
1609
- if ((value % 1) !== 0) {
1610
- const decimalValue = value.toString().split('.')[1];
1611
- return decimalValue && decimalValue.length;
1612
- }
1613
- return 0;
1646
+ const valueStr = value.toString();
1647
+ const isLocalizedNumber = includes(valueStr, this.DECIMAL);
1648
+ const parts = isLocalizedNumber ? valueStr.split(this.DECIMAL) : valueStr.split('.');
1649
+ return parts[1] ? parts[1].length : 0;
1614
1650
  }
1615
1651
  /**
1616
1652
  * handles the arrow press event. Increases or decreases the number. triggered fom the template
@@ -1712,13 +1748,23 @@ let NumberLocale = class NumberLocale extends BaseInput {
1712
1748
  }
1713
1749
  // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).
1714
1750
  // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place
1715
- if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
1716
- return false;
1717
- }
1751
+ // if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
1752
+ // return false;
1753
+ // }
1718
1754
  // validates if user entered an invalid character.
1719
1755
  if (!validity.test($event.key)) {
1720
1756
  return false;
1721
1757
  }
1758
+ if (this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {
1759
+ if (this.decimalplaces === 0 && this.DECIMAL === $event.key) {
1760
+ return false;
1761
+ }
1762
+ const parts = includes(inputValue, this.DECIMAL) ? inputValue.split(this.DECIMAL) : inputValue.split('.');
1763
+ const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;
1764
+ if (this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {
1765
+ return false;
1766
+ }
1767
+ }
1722
1768
  // comma cannot be entered consecutively
1723
1769
  if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
1724
1770
  return false;
@@ -1797,15 +1843,15 @@ class NumberComponent extends NumberLocale {
1797
1843
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
1798
1844
  provideAs(NumberComponent, NG_VALIDATORS, true),
1799
1845
  provideAsWidgetRef(NumberComponent)
1800
- ]), i0.ɵɵ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) {
1846
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "number", 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) {
1801
1847
  const _r1 = i0.ɵɵgetCurrentView();
1802
1848
  i0.ɵɵelementStart(0, "input", 1, 0);
1803
1849
  i0.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBackspace($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
1804
1850
  i0.ɵɵelementEnd();
1805
1851
  } if (rf & 2) {
1806
1852
  i0.ɵɵ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);
1807
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
1808
- } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.PatternValidator, i2$1.NgModel], encapsulation: 2 }); }
1853
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
1854
+ } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NumberValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.PatternValidator, i2$1.NgModel], encapsulation: 2 }); }
1809
1855
  }
1810
1856
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NumberComponent, [{
1811
1857
  type: Component,
@@ -1813,7 +1859,7 @@ class NumberComponent extends NumberLocale {
1813
1859
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
1814
1860
  provideAs(NumberComponent, NG_VALIDATORS, true),
1815
1861
  provideAsWidgetRef(NumberComponent)
1816
- ], 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" }]
1862
+ ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"number\"\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" }]
1817
1863
  }], () => [{ type: i0.Injector }, { type: i1$1.AbstractI18nService }, { type: i2.TrailingZeroDecimalPipe }, { type: undefined, decorators: [{
1818
1864
  type: Inject,
1819
1865
  args: ['EXPLICIT_CONTEXT']
@@ -1875,10 +1921,10 @@ function RadiosetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf
1875
1921
  const item_r2 = ctx_r3.$implicit;
1876
1922
  const i_r5 = ctx_r3.index;
1877
1923
  const ctx_r2 = i0.ɵɵnextContext(2);
1878
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1924
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1879
1925
  i0.ɵɵadvance();
1880
- i0.ɵɵ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);
1881
- i0.ɵɵattribute("aria-checked", item_r2.selected)("data-attr-index", i_r5)("aria-label", item_r2.key);
1926
+ i0.ɵɵ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);
1927
+ i0.ɵɵattribute("data-attr-index", i_r5);
1882
1928
  i0.ɵɵadvance();
1883
1929
  i0.ɵɵproperty("textContent", item_r2.label);
1884
1930
  } }
@@ -1891,16 +1937,16 @@ function RadiosetComponent_ng_template_0_li_0_label_2_Template(rf, ctx) { if (rf
1891
1937
  const item_r2 = ctx_r3.$implicit;
1892
1938
  const i_r5 = ctx_r3.index;
1893
1939
  const ctx_r2 = i0.ɵɵnextContext(2);
1894
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1940
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1895
1941
  i0.ɵɵadvance();
1896
- i0.ɵɵ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);
1897
- i0.ɵɵattribute("aria-checked", item_r2.selected)("data-attr-index", i_r5)("aria-label", item_r2.key);
1942
+ i0.ɵɵ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);
1943
+ i0.ɵɵattribute("data-attr-index", i_r5);
1898
1944
  } }
1899
1945
  function RadiosetComponent_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {
1900
1946
  const _r1 = i0.ɵɵgetCurrentView();
1901
1947
  i0.ɵɵelementStart(0, "li", 5);
1902
1948
  i0.ɵɵlistener("click", function RadiosetComponent_ng_template_0_li_0_Template_li_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onRadioLabelClick($event, item_r2.key)); });
1903
- i0.ɵɵ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);
1949
+ i0.ɵɵ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);
1904
1950
  i0.ɵɵelementEnd();
1905
1951
  } if (rf & 2) {
1906
1952
  const item_r2 = ctx.$implicit;
@@ -1935,39 +1981,39 @@ function RadiosetComponent_ng_template_3_li_0_span_7_Template(rf, ctx) { if (rf
1935
1981
  } }
1936
1982
  function RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx) { if (rf & 1) {
1937
1983
  i0.ɵɵelementStart(0, "label", 7);
1938
- i0.ɵɵelement(1, "input", 8)(2, "span", 9);
1984
+ i0.ɵɵelement(1, "input", 24)(2, "span", 9);
1939
1985
  i0.ɵɵelementEnd();
1940
1986
  } if (rf & 2) {
1941
1987
  const ctx_r9 = i0.ɵɵnextContext();
1942
1988
  const item_r9 = ctx_r9.$implicit;
1943
1989
  const i_r11 = ctx_r9.index;
1944
1990
  const ctx_r2 = i0.ɵɵnextContext(3);
1945
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1991
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1946
1992
  i0.ɵɵadvance();
1947
1993
  i0.ɵɵ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);
1948
- i0.ɵɵattribute("aria-checked", item_r9.selected)("data-attr-index", i_r11);
1994
+ i0.ɵɵattribute("data-attr-index", i_r11);
1949
1995
  i0.ɵɵadvance();
1950
1996
  i0.ɵɵproperty("textContent", item_r9.label);
1951
1997
  } }
1952
1998
  function RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template(rf, ctx) { if (rf & 1) {
1953
1999
  i0.ɵɵelementStart(0, "label", 7);
1954
- i0.ɵɵelement(1, "input", 8)(2, "span", 10);
2000
+ i0.ɵɵelement(1, "input", 24)(2, "span", 10);
1955
2001
  i0.ɵɵelementEnd();
1956
2002
  } if (rf & 2) {
1957
2003
  const ctx_r9 = i0.ɵɵnextContext();
1958
2004
  const item_r9 = ctx_r9.$implicit;
1959
2005
  const i_r11 = ctx_r9.index;
1960
2006
  const ctx_r2 = i0.ɵɵnextContext(3);
1961
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2007
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1962
2008
  i0.ɵɵadvance();
1963
2009
  i0.ɵɵ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);
1964
- i0.ɵɵattribute("aria-checked", item_r9.selected)("data-attr-index", i_r11);
2010
+ i0.ɵɵattribute("data-attr-index", i_r11);
1965
2011
  } }
1966
2012
  function RadiosetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf & 1) {
1967
2013
  const _r8 = i0.ɵɵgetCurrentView();
1968
2014
  i0.ɵɵelementStart(0, "li", 23);
1969
2015
  i0.ɵɵlistener("click", function RadiosetComponent_ng_template_3_li_0_li_8_Template_li_click_0_listener($event) { const item_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onRadioLabelClick($event, item_r9)); });
1970
- i0.ɵɵ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);
2016
+ i0.ɵɵ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);
1971
2017
  i0.ɵɵelementEnd();
1972
2018
  } if (rf & 2) {
1973
2019
  const item_r9 = ctx.$implicit;
@@ -1992,10 +2038,15 @@ function RadiosetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
1992
2038
  i0.ɵɵelementEnd()();
1993
2039
  } if (rf & 2) {
1994
2040
  const groupObj_r7 = ctx.$implicit;
2041
+ const groupindex_r12 = ctx.index;
1995
2042
  const ctx_r2 = i0.ɵɵnextContext(2);
1996
- i0.ɵɵadvance(2);
1997
- i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3, ctx_r2.collapsible));
1998
- i0.ɵɵadvance(2);
2043
+ i0.ɵɵadvance();
2044
+ i0.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
2045
+ i0.ɵɵadvance();
2046
+ i0.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
2047
+ i0.ɵɵadvance();
2048
+ i0.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
2049
+ i0.ɵɵadvance();
1999
2050
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
2000
2051
  i0.ɵɵadvance(2);
2001
2052
  i0.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -2005,7 +2056,7 @@ function RadiosetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
2005
2056
  i0.ɵɵproperty("ngForOf", groupObj_r7.data);
2006
2057
  } }
2007
2058
  function RadiosetComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
2008
- i0.ɵɵtemplate(0, RadiosetComponent_ng_template_3_li_0_Template, 9, 8, "li", 12);
2059
+ i0.ɵɵtemplate(0, RadiosetComponent_ng_template_3_li_0_Template, 9, 11, "li", 12);
2009
2060
  } if (rf & 2) {
2010
2061
  const ctx_r2 = i0.ɵɵnextContext();
2011
2062
  i0.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -2063,13 +2114,13 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2063
2114
  provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),
2064
2115
  provideAs(RadiosetComponent, NG_VALIDATORS, true),
2065
2116
  provideAsWidgetRef(RadiosetComponent)
2066
- ]), i0.ɵɵ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) {
2117
+ ]), i0.ɵɵ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) {
2067
2118
  i0.ɵɵtemplate(0, RadiosetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
2068
2119
  i0.ɵɵelement(1, "input", 2);
2069
2120
  i0.ɵɵtemplate(2, RadiosetComponent_div_2_Template, 1, 0, "div", 3)(3, RadiosetComponent_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
2070
2121
  } if (rf & 2) {
2071
- const groupedListTemplate_r12 = i0.ɵɵreference(4);
2072
- i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
2122
+ const groupedListTemplate_r13 = i0.ɵɵreference(4);
2123
+ i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
2073
2124
  i0.ɵɵadvance();
2074
2125
  i0.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
2075
2126
  i0.ɵɵadvance();
@@ -2082,7 +2133,7 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2082
2133
  provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),
2083
2134
  provideAs(RadiosetComponent, NG_VALIDATORS, true),
2084
2135
  provideAsWidgetRef(RadiosetComponent)
2085
- ], 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" }]
2136
+ ], 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" }]
2086
2137
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2087
2138
  type: Inject,
2088
2139
  args: ['EXPLICIT_CONTEXT']
@@ -2106,6 +2157,7 @@ const selectProps = new Map([
2106
2157
  ['displayValue', PROP_STRING],
2107
2158
  ['groupby', PROP_STRING],
2108
2159
  ['hint', PROP_STRING],
2160
+ ['arialabel', PROP_STRING],
2109
2161
  ['match', PROP_STRING],
2110
2162
  ['multiple', { value: false, ...PROP_BOOLEAN }],
2111
2163
  ['name', PROP_STRING],
@@ -2185,7 +2237,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2185
2237
  * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
2186
2238
  * */
2187
2239
  const datasetSubscription = this.dataset$.subscribe(() => {
2188
- if (isIos()) {
2240
+ if (isIos() || isSafari()) {
2189
2241
  if (this.datavalue) {
2190
2242
  const selectedItem = this.datasetItems.find(item => item.selected);
2191
2243
  if (!selectedItem) {
@@ -2265,7 +2317,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2265
2317
  */
2266
2318
  checkForFloatingLabel($event) {
2267
2319
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
2268
- if (!this.placeholder && isIos()) {
2320
+ if (!this.placeholder && (isIos() || isSafari())) {
2269
2321
  this.removePlaceholderOption();
2270
2322
  }
2271
2323
  if (captionEl.length > 0) {
@@ -2308,7 +2360,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2308
2360
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2309
2361
  provideAs(SelectComponent, NG_VALIDATORS, true),
2310
2362
  provideAsWidgetRef(SelectComponent)
2311
- ]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "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"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
2363
+ ]), i0.ɵɵ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) {
2312
2364
  const _r1 = i0.ɵɵgetCurrentView();
2313
2365
  i0.ɵɵelementStart(0, "select", 1, 0);
2314
2366
  i0.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0.ɵɵresetView($event); });
@@ -2320,7 +2372,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2320
2372
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
2321
2373
  i0.ɵɵtwoWayProperty("ngModel", ctx.modelByKey);
2322
2374
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(17, _c2$4))("multiple", ctx.multiple)("autofocus", ctx.autofocus);
2323
- i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-multiselectable", ctx.multiple);
2375
+ i0.ɵɵattribute("accesskey", ctx.shortcutkey)("name", ctx.name)("aria-label", ctx.arialabel);
2324
2376
  i0.ɵɵadvance(2);
2325
2377
  i0.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
2326
2378
  i0.ɵɵadvance();
@@ -2335,7 +2387,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2335
2387
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2336
2388
  provideAs(SelectComponent, NG_VALIDATORS, true),
2337
2389
  provideAsWidgetRef(SelectComponent)
2338
- ], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<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 (mousedown)=\"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" }]
2390
+ ], 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" }]
2339
2391
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2340
2392
  type: Inject,
2341
2393
  args: ['EXPLICIT_CONTEXT']
@@ -2358,6 +2410,7 @@ const switchProps = new Map([
2358
2410
  ['displayexpression', PROP_STRING],
2359
2411
  ['displayfield', PROP_STRING],
2360
2412
  ['hint', PROP_STRING],
2413
+ ['arialabel', PROP_STRING],
2361
2414
  ['iconclass', PROP_STRING],
2362
2415
  ['name', PROP_STRING],
2363
2416
  ['orderby', PROP_STRING],
@@ -2391,7 +2444,8 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2391
2444
  } if (rf & 2) {
2392
2445
  const opt_r3 = ctx.$implicit;
2393
2446
  const ctx_r4 = i0.ɵɵnextContext();
2394
- i0.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0.ɵɵpureFunction2(4, _c1$5, opt_r3.selected, ctx_r4.disabled));
2447
+ i0.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0.ɵɵpureFunction2(5, _c1$5, opt_r3.selected, ctx_r4.disabled));
2448
+ i0.ɵɵattribute("aria-pressed", opt_r3.selected ? true : false);
2395
2449
  i0.ɵɵadvance();
2396
2450
  i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass]);
2397
2451
  i0.ɵɵadvance();
@@ -2515,9 +2569,9 @@ class SwitchComponent extends DatasetAwareFormComponent {
2515
2569
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0.ɵɵProvidersFeature([
2516
2570
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2517
2571
  provideAsWidgetRef(SwitchComponent)
2518
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 6, vars: 8, consts: [["role", "group", 1, "btn-group", "btn-group-justified"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "class", 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"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2572
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 6, vars: 8, consts: [[1, "btn-group", "btn-group-justified"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", "role", "button", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["aria-hidden", "true", 1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "class", 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"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2519
2573
  i0.ɵɵelementStart(0, "div", 0);
2520
- i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 7, "a", 1);
2574
+ i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 8, "a", 1);
2521
2575
  i0.ɵɵelementEnd();
2522
2576
  i0.ɵɵelementStart(2, "span", 2);
2523
2577
  i0.ɵɵtemplate(3, SwitchComponent_i_3_Template, 1, 3, "i", 3);
@@ -2542,7 +2596,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2542
2596
  args: [{ selector: '[wmSwitch]', providers: [
2543
2597
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2544
2598
  provideAsWidgetRef(SwitchComponent)
2545
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\">\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]\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></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\">\n <i *ngIf=\"iconclass\"\n class=\"app-icon {{(selectedItem && selectedItem.dataObject) && selectedItem.dataObject[iconclass]}}\"></i>\n {{selectedItem ? selectedItem.label : modelByKey}}\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2599
+ ], exportAs: 'wmSwitch', template: "<div class=\"btn-group btn-group-justified\">\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]\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span aria-hidden=\"true\" [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i *ngIf=\"iconclass\"\n class=\"app-icon {{(selectedItem && selectedItem.dataObject) && selectedItem.dataObject[iconclass]}}\"></i>\n {{selectedItem ? selectedItem.label : modelByKey}}\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2546
2600
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2547
2601
  type: Inject,
2548
2602
  args: ['EXPLICIT_CONTEXT']
@@ -2560,6 +2614,7 @@ const inputCalendarTypeProps = new Map([
2560
2614
  ['datavalue', PROP_STRING],
2561
2615
  ['disabled', PROP_BOOLEAN],
2562
2616
  ['hint', PROP_STRING],
2617
+ ['arialabel', PROP_STRING],
2563
2618
  ['maxvalue', PROP_NUMBER],
2564
2619
  ['minvalue', PROP_NUMBER],
2565
2620
  ['name', PROP_STRING],
@@ -2603,7 +2658,7 @@ class InputCalendarComponent extends BaseInput {
2603
2658
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2604
2659
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2605
2660
  provideAsWidgetRef(InputCalendarComponent)
2606
- ]), i0.ɵɵ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) {
2661
+ ]), i0.ɵɵ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) {
2607
2662
  const _r1 = i0.ɵɵgetCurrentView();
2608
2663
  i0.ɵɵelementStart(0, "input", 1, 0);
2609
2664
  i0.ɵɵtwoWayListener("ngModelChange", function InputCalendarComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -2613,7 +2668,7 @@ class InputCalendarComponent extends BaseInput {
2613
2668
  i0.ɵɵproperty("type", ctx.type);
2614
2669
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2615
2670
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵ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);
2616
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint || ctx.type + " field");
2671
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel || ctx.type + " field");
2617
2672
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.NgModel], encapsulation: 2 }); }
2618
2673
  }
2619
2674
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputCalendarComponent, [{
@@ -2622,7 +2677,7 @@ class InputCalendarComponent extends BaseInput {
2622
2677
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2623
2678
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2624
2679
  provideAsWidgetRef(InputCalendarComponent)
2625
- ], 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" }]
2680
+ ], 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" }]
2626
2681
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2627
2682
  type: Inject,
2628
2683
  args: ['EXPLICIT_CONTEXT']
@@ -2646,6 +2701,7 @@ const inputColorTypeProps = new Map([
2646
2701
  ['datavalue', PROP_STRING],
2647
2702
  ['disabled', PROP_BOOLEAN],
2648
2703
  ['hint', PROP_STRING],
2704
+ ['arialabel', PROP_STRING],
2649
2705
  ['name', PROP_STRING],
2650
2706
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
2651
2707
  ['readonly', PROP_BOOLEAN],
@@ -2686,7 +2742,7 @@ class InputColorComponent extends BaseInput {
2686
2742
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2687
2743
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2688
2744
  provideAsWidgetRef(InputColorComponent)
2689
- ]), i0.ɵɵ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) {
2745
+ ]), i0.ɵɵ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) {
2690
2746
  const _r1 = i0.ɵɵgetCurrentView();
2691
2747
  i0.ɵɵelementStart(0, "input", 1, 0);
2692
2748
  i0.ɵɵtwoWayListener("ngModelChange", function InputColorComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -2696,7 +2752,7 @@ class InputColorComponent extends BaseInput {
2696
2752
  i0.ɵɵproperty("type", ctx.type);
2697
2753
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2698
2754
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵ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);
2699
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2755
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2700
2756
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2701
2757
  }
2702
2758
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputColorComponent, [{
@@ -2705,7 +2761,7 @@ class InputColorComponent extends BaseInput {
2705
2761
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2706
2762
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2707
2763
  provideAsWidgetRef(InputColorComponent)
2708
- ], 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" }]
2764
+ ], 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" }]
2709
2765
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2710
2766
  type: Inject,
2711
2767
  args: ['EXPLICIT_CONTEXT']
@@ -2729,6 +2785,7 @@ const inputEmailTypeProps = new Map([
2729
2785
  ['datavalue', PROP_STRING],
2730
2786
  ['disabled', PROP_BOOLEAN],
2731
2787
  ['hint', PROP_STRING],
2788
+ ['arialabel', PROP_STRING],
2732
2789
  ['maxchars', PROP_NUMBER],
2733
2790
  ['name', PROP_STRING],
2734
2791
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -2770,7 +2827,7 @@ class InputEmailComponent extends BaseInput {
2770
2827
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2771
2828
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2772
2829
  provideAsWidgetRef(InputEmailComponent)
2773
- ]), i0.ɵɵ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) {
2830
+ ]), i0.ɵɵ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) {
2774
2831
  const _r1 = i0.ɵɵgetCurrentView();
2775
2832
  i0.ɵɵelementStart(0, "input", 1, 0);
2776
2833
  i0.ɵɵtwoWayListener("ngModelChange", function InputEmailComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -2780,7 +2837,7 @@ class InputEmailComponent extends BaseInput {
2780
2837
  i0.ɵɵproperty("type", ctx.type);
2781
2838
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2782
2839
  i0.ɵɵ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");
2783
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2840
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2784
2841
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.PatternValidator, i2$1.EmailValidator, i2$1.NgModel], encapsulation: 2 }); }
2785
2842
  }
2786
2843
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputEmailComponent, [{
@@ -2789,7 +2846,7 @@ class InputEmailComponent extends BaseInput {
2789
2846
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2790
2847
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2791
2848
  provideAsWidgetRef(InputEmailComponent)
2792
- ], 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" }]
2849
+ ], 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" }]
2793
2850
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2794
2851
  type: Inject,
2795
2852
  args: ['EXPLICIT_CONTEXT']
@@ -2813,6 +2870,7 @@ const inputNumberTypeProps = new Map([
2813
2870
  ['datavalue', PROP_STRING],
2814
2871
  ['disabled', PROP_BOOLEAN],
2815
2872
  ['hint', PROP_STRING],
2873
+ ['arialabel', PROP_STRING],
2816
2874
  ['maxchars', PROP_NUMBER],
2817
2875
  ['maxvalue', PROP_NUMBER],
2818
2876
  ['minvalue', PROP_NUMBER],
@@ -2868,7 +2926,7 @@ class InputNumberComponent extends BaseInput {
2868
2926
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2869
2927
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2870
2928
  provideAsWidgetRef(InputNumberComponent)
2871
- ]), i0.ɵɵ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) {
2929
+ ]), i0.ɵɵ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) {
2872
2930
  const _r1 = i0.ɵɵgetCurrentView();
2873
2931
  i0.ɵɵelementStart(0, "input", 1, 0);
2874
2932
  i0.ɵɵtwoWayListener("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -2878,7 +2936,7 @@ class InputNumberComponent extends BaseInput {
2878
2936
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type);
2879
2937
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2880
2938
  i0.ɵɵ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");
2881
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
2939
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2882
2940
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2883
2941
  }
2884
2942
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberComponent, [{
@@ -2887,7 +2945,7 @@ class InputNumberComponent extends BaseInput {
2887
2945
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2888
2946
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2889
2947
  provideAsWidgetRef(InputNumberComponent)
2890
- ], 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" }]
2948
+ ], 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" }]
2891
2949
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2892
2950
  type: Inject,
2893
2951
  args: ['EXPLICIT_CONTEXT']
@@ -2912,6 +2970,7 @@ const inputTextTypeProps = new Map([
2912
2970
  ['disabled', PROP_BOOLEAN],
2913
2971
  ['displayformat', PROP_STRING],
2914
2972
  ['hint', PROP_STRING],
2973
+ ['arialabel', PROP_STRING],
2915
2974
  ['maxchars', PROP_NUMBER],
2916
2975
  ['name', PROP_STRING],
2917
2976
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -3035,7 +3094,7 @@ class InputTextComponent extends BaseInput {
3035
3094
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3036
3095
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3037
3096
  provideAsWidgetRef(InputTextComponent)
3038
- ]), i0.ɵɵ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) {
3097
+ ]), i0.ɵɵ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) {
3039
3098
  const _r1 = i0.ɵɵgetCurrentView();
3040
3099
  i0.ɵɵelementStart(0, "input", 1, 0);
3041
3100
  i0.ɵɵtwoWayListener("ngModelChange", function InputTextComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -3045,7 +3104,7 @@ class InputTextComponent extends BaseInput {
3045
3104
  i0.ɵɵproperty("type", ctx.type);
3046
3105
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3047
3106
  i0.ɵɵ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");
3048
- i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
3107
+ i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
3049
3108
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.PatternValidator, i2$1.NgModel, i3.IMaskDirective], encapsulation: 2 }); }
3050
3109
  }
3051
3110
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputTextComponent, [{
@@ -3054,7 +3113,7 @@ class InputTextComponent extends BaseInput {
3054
3113
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3055
3114
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3056
3115
  provideAsWidgetRef(InputTextComponent)
3057
- ], 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" }]
3116
+ ], 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" }]
3058
3117
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3059
3118
  type: Inject,
3060
3119
  args: ['EXPLICIT_CONTEXT']
@@ -3080,6 +3139,7 @@ const textareaProps = new Map([
3080
3139
  ['datavalue', PROP_STRING],
3081
3140
  ['disabled', PROP_BOOLEAN],
3082
3141
  ['hint', PROP_STRING],
3142
+ ['arialabel', PROP_STRING],
3083
3143
  ['maxchars', PROP_NUMBER],
3084
3144
  ['name', PROP_STRING],
3085
3145
  ['placeholder', { value: 'Place your text', ...PROP_STRING }],
@@ -3137,7 +3197,7 @@ class TextareaComponent extends BaseInput {
3137
3197
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3138
3198
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3139
3199
  provideAsWidgetRef(TextareaComponent)
3140
- ]), i0.ɵɵ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) {
3200
+ ]), i0.ɵɵ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) {
3141
3201
  const _r1 = i0.ɵɵgetCurrentView();
3142
3202
  i0.ɵɵelementStart(0, "textarea", 1, 0);
3143
3203
  i0.ɵɵtwoWayListener("ngModelChange", function TextareaComponent_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -3147,7 +3207,7 @@ class TextareaComponent extends BaseInput {
3147
3207
  } if (rf & 2) {
3148
3208
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3149
3209
  i0.ɵɵ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);
3150
- i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
3210
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
3151
3211
  i0.ɵɵadvance(2);
3152
3212
  i0.ɵɵproperty("ngIf", ctx.maxchars);
3153
3213
  } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
@@ -3158,7 +3218,7 @@ class TextareaComponent extends BaseInput {
3158
3218
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3159
3219
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3160
3220
  provideAsWidgetRef(TextareaComponent)
3161
- ], 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" }]
3221
+ ], 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" }]
3162
3222
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3163
3223
  type: Inject,
3164
3224
  args: ['EXPLICIT_CONTEXT']
@@ -3171,7 +3231,7 @@ class TextareaComponent extends BaseInput {
3171
3231
  type: ViewChild,
3172
3232
  args: [NgModel]
3173
3233
  }] }); })();
3174
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 22 }); })();
3234
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 23 }); })();
3175
3235
 
3176
3236
  class CaptionPositionDirective {
3177
3237
  constructor(inj, app) {
@@ -3202,9 +3262,10 @@ class CaptionPositionDirective {
3202
3262
  }
3203
3263
  // For select widget, display placeholder only on focus else remove the text of the option selected.
3204
3264
  checkForSelectPlaceholder() {
3205
- if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&
3265
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3266
+ if (selectElPlaceholderOption && selectElPlaceholderOption.textContent && !$(this.nativeEl).find('select').is(':focus') &&
3206
3267
  !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {
3207
- $(this.nativeEl).find('select option:selected').text('');
3268
+ selectElPlaceholderOption.textContent = '';
3208
3269
  }
3209
3270
  }
3210
3271
  setDefaultValueAnimation() {
@@ -3306,10 +3367,10 @@ class CaptionPositionDirective {
3306
3367
  // before placeholder is removed assign it to the placeholder variable
3307
3368
  // check for placeholder in inputel and selectel
3308
3369
  if (this.inputEl) {
3309
- const selectEl = this.inputEl.find('option:first');
3310
- if (this.inputEl.attr('placeholder') || selectEl.text()) {
3311
- if (selectEl.length) {
3312
- selectEl.text('');
3370
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3371
+ if (this.inputEl.attr('placeholder') || selectElPlaceholderOption) {
3372
+ if (selectElPlaceholderOption) {
3373
+ selectElPlaceholderOption.textContent = '';
3313
3374
  }
3314
3375
  else {
3315
3376
  this.placeholder = this.inputEl.attr('placeholder');