@wavemaker/app-ng-runtime 12.0.0-next.45752 → 12.0.0-next.46502

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 (318) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +53 -45
  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/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  12. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +4 -4
  15. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  17. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  18. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  21. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  22. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
  26. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  29. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  30. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  31. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  32. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  33. app-ng-runtime/build-task/fesm2022/index.mjs +53 -45
  34. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  36. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  37. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  38. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/base/bundles/index.umd.js +1 -6
  40. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  41. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  42. app-ng-runtime/components/base/fesm2022/index.mjs +1 -6
  43. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  44. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  45. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  46. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  47. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  48. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  49. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  50. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  51. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  52. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  53. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  54. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  55. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  56. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  57. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  58. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  59. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  60. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  61. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  62. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  63. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  64. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  65. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  66. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  67. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  68. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  69. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  70. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  71. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  72. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  73. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  74. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  75. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  76. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  77. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  78. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  79. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  80. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  81. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  82. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  83. app-ng-runtime/components/basic/search/bundles/index.umd.js +16 -9
  84. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +19 -13
  85. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  86. app-ng-runtime/components/basic/search/fesm2022/index.mjs +16 -9
  87. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  88. app-ng-runtime/components/basic/search/search.component.d.ts +4 -2
  89. app-ng-runtime/components/chart/bundles/index.umd.js +1 -0
  90. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -1
  91. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -0
  92. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  94. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  95. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  97. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  100. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  101. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  104. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  105. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  108. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  109. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/data/list/bundles/index.umd.js +19 -11
  112. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  113. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  114. app-ng-runtime/components/data/list/fesm2022/index.mjs +20 -12
  115. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  117. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  118. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  119. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  120. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  121. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  122. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  123. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  124. app-ng-runtime/components/data/table/bundles/index.umd.js +42 -8
  125. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  126. app-ng-runtime/components/data/table/esm2022/table.component.mjs +28 -5
  127. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  128. app-ng-runtime/components/data/table/fesm2022/index.mjs +43 -9
  129. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  130. app-ng-runtime/components/data/table/table.component.d.ts +7 -0
  131. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  132. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  133. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  134. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  136. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  137. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  138. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  139. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
  140. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  141. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
  142. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  143. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
  144. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  146. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  147. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  148. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  149. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  150. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  151. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  152. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  154. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  155. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  156. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  157. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  158. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  159. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  160. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  161. app-ng-runtime/components/input/chips/bundles/index.umd.js +25 -7
  162. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  163. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  164. app-ng-runtime/components/input/chips/fesm2022/index.mjs +25 -7
  165. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  166. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  167. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  168. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  169. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  170. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  171. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  173. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  174. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  175. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  176. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  177. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/default/bundles/index.umd.js +171 -94
  179. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  180. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  181. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  182. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  183. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  184. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  185. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  186. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  187. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  188. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  189. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  190. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  191. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +7 -7
  192. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  193. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  194. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  196. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  197. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  198. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  200. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +66 -13
  202. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  203. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  204. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  205. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  206. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
  207. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  208. app-ng-runtime/components/input/default/fesm2022/index.mjs +171 -94
  209. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  210. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  211. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
  212. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  213. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  214. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  215. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  216. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  217. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  218. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
  219. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  220. app-ng-runtime/components/input/epoch/bundles/index.umd.js +28 -21
  221. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  222. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  223. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  224. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  225. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  226. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +9 -9
  227. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  228. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  229. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  230. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +25 -18
  231. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  232. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  233. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +224 -121
  234. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +220 -123
  235. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  236. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +225 -122
  237. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  238. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +18 -11
  239. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  240. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  241. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  242. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  243. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  244. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  245. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  246. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  247. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  248. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  249. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  250. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  251. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  252. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  253. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
  254. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  255. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  256. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
  257. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  258. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  259. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  260. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  261. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  263. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  265. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  266. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  267. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  268. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  269. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  270. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  271. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  272. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  273. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  274. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  275. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  276. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  278. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  279. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  280. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  281. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  282. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  283. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  284. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  287. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/core/bundles/index.umd.js +15 -13
  290. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  291. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  292. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
  293. app-ng-runtime/core/fesm2022/index.mjs +11 -11
  294. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  295. app-ng-runtime/core/public_api.d.ts +1 -1
  296. app-ng-runtime/core/utils/utils.d.ts +1 -1
  297. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  298. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  299. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  300. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  301. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  302. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  303. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  304. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  305. app-ng-runtime/package.json +1 -1
  306. app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
  307. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  308. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  309. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  310. app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
  311. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  312. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  313. app-ng-runtime/scripts/datatable/datatable.js +32 -31
  314. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  315. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  316. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  317. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  318. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -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],
@@ -222,10 +223,10 @@ class BaseFormComponent extends StylableComponent {
222
223
  }
223
224
  binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
224
225
  // In case of list widget context will be the listItem.
225
- if (has(this.context, binddatavalue.split('.')[0])) {
226
+ if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {
226
227
  set(this.context, binddatavalue, value);
227
228
  }
228
- else {
229
+ else if (has(this.viewParent, binddatavalue)) {
229
230
  set(this.viewParent, binddatavalue, value);
230
231
  }
231
232
  }
@@ -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,26 @@ 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 num = Number(value);
1647
+ if (num === 0) {
1648
+ return 0;
1649
+ }
1650
+ // Convert to number and handle scientific notation
1651
+ if (Number.isNaN(num))
1652
+ return 0;
1653
+ // Get the exponential form to handle scientific notation properly
1654
+ const exponentialStr = num.toExponential();
1655
+ const match = exponentialStr.match(/^-?\d*\.?(\d+)?e([+-]\d+)$/);
1656
+ if (match) {
1657
+ const decimals = match[1] ? match[1].length : 0;
1658
+ const exponent = parseInt(match[2]);
1659
+ return Math.max(0, decimals - exponent);
1660
+ }
1661
+ // Fallback to regular decimal counting
1662
+ const decimalStr = num.toString();
1663
+ const isLocalizedNumber = includes(decimalStr, this.DECIMAL);
1664
+ const parts = isLocalizedNumber ? decimalStr.split(this.DECIMAL) : decimalStr.split('.');
1665
+ return parts[1] ? parts[1].length : 0;
1614
1666
  }
1615
1667
  /**
1616
1668
  * handles the arrow press event. Increases or decreases the number. triggered fom the template
@@ -1712,13 +1764,23 @@ let NumberLocale = class NumberLocale extends BaseInput {
1712
1764
  }
1713
1765
  // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).
1714
1766
  // 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
- }
1767
+ // if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
1768
+ // return false;
1769
+ // }
1718
1770
  // validates if user entered an invalid character.
1719
1771
  if (!validity.test($event.key)) {
1720
1772
  return false;
1721
1773
  }
1774
+ if (this.inputmode === INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {
1775
+ if (this.decimalplaces === 0 && this.DECIMAL === $event.key) {
1776
+ return false;
1777
+ }
1778
+ const parts = includes(inputValue, this.DECIMAL) ? inputValue.split(this.DECIMAL) : inputValue.split('.');
1779
+ const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;
1780
+ if (this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {
1781
+ return false;
1782
+ }
1783
+ }
1722
1784
  // comma cannot be entered consecutively
1723
1785
  if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
1724
1786
  return false;
@@ -1797,14 +1859,14 @@ class NumberComponent extends NumberLocale {
1797
1859
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
1798
1860
  provideAs(NumberComponent, NG_VALIDATORS, true),
1799
1861
  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) {
1862
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
1801
1863
  const _r1 = i0.ɵɵgetCurrentView();
1802
1864
  i0.ɵɵelementStart(0, "input", 1, 0);
1803
1865
  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
1866
  i0.ɵɵelementEnd();
1805
1867
  } if (rf & 2) {
1806
1868
  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);
1869
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
1808
1870
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.PatternValidator, i2$1.NgModel], encapsulation: 2 }); }
1809
1871
  }
1810
1872
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NumberComponent, [{
@@ -1813,7 +1875,7 @@ class NumberComponent extends NumberLocale {
1813
1875
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
1814
1876
  provideAs(NumberComponent, NG_VALIDATORS, true),
1815
1877
  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" }]
1878
+ ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
1817
1879
  }], () => [{ type: i0.Injector }, { type: i1$1.AbstractI18nService }, { type: i2.TrailingZeroDecimalPipe }, { type: undefined, decorators: [{
1818
1880
  type: Inject,
1819
1881
  args: ['EXPLICIT_CONTEXT']
@@ -1875,10 +1937,10 @@ function RadiosetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf
1875
1937
  const item_r2 = ctx_r3.$implicit;
1876
1938
  const i_r5 = ctx_r3.index;
1877
1939
  const ctx_r2 = i0.ɵɵnextContext(2);
1878
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1940
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1879
1941
  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);
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);
1882
1944
  i0.ɵɵadvance();
1883
1945
  i0.ɵɵproperty("textContent", item_r2.label);
1884
1946
  } }
@@ -1891,16 +1953,16 @@ function RadiosetComponent_ng_template_0_li_0_label_2_Template(rf, ctx) { if (rf
1891
1953
  const item_r2 = ctx_r3.$implicit;
1892
1954
  const i_r5 = ctx_r3.index;
1893
1955
  const ctx_r2 = i0.ɵɵnextContext(2);
1894
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1956
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1895
1957
  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);
1958
+ 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);
1959
+ i0.ɵɵattribute("data-attr-index", i_r5);
1898
1960
  } }
1899
1961
  function RadiosetComponent_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {
1900
1962
  const _r1 = i0.ɵɵgetCurrentView();
1901
1963
  i0.ɵɵelementStart(0, "li", 5);
1902
1964
  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);
1965
+ 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
1966
  i0.ɵɵelementEnd();
1905
1967
  } if (rf & 2) {
1906
1968
  const item_r2 = ctx.$implicit;
@@ -1935,39 +1997,39 @@ function RadiosetComponent_ng_template_3_li_0_span_7_Template(rf, ctx) { if (rf
1935
1997
  } }
1936
1998
  function RadiosetComponent_ng_template_3_li_0_li_8_label_1_Template(rf, ctx) { if (rf & 1) {
1937
1999
  i0.ɵɵelementStart(0, "label", 7);
1938
- i0.ɵɵelement(1, "input", 8)(2, "span", 9);
2000
+ i0.ɵɵelement(1, "input", 24)(2, "span", 9);
1939
2001
  i0.ɵɵelementEnd();
1940
2002
  } if (rf & 2) {
1941
2003
  const ctx_r9 = i0.ɵɵnextContext();
1942
2004
  const item_r9 = ctx_r9.$implicit;
1943
2005
  const i_r11 = ctx_r9.index;
1944
2006
  const ctx_r2 = i0.ɵɵnextContext(3);
1945
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(9, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2007
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1946
2008
  i0.ɵɵadvance();
1947
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);
1948
- i0.ɵɵattribute("aria-checked", item_r9.selected)("data-attr-index", i_r11);
2010
+ i0.ɵɵattribute("data-attr-index", i_r11);
1949
2011
  i0.ɵɵadvance();
1950
2012
  i0.ɵɵproperty("textContent", item_r9.label);
1951
2013
  } }
1952
2014
  function RadiosetComponent_ng_template_3_li_0_li_8_label_2_Template(rf, ctx) { if (rf & 1) {
1953
2015
  i0.ɵɵelementStart(0, "label", 7);
1954
- i0.ɵɵelement(1, "input", 8)(2, "span", 10);
2016
+ i0.ɵɵelement(1, "input", 24)(2, "span", 10);
1955
2017
  i0.ɵɵelementEnd();
1956
2018
  } if (rf & 2) {
1957
2019
  const ctx_r9 = i0.ɵɵnextContext();
1958
2020
  const item_r9 = ctx_r9.$implicit;
1959
2021
  const i_r11 = ctx_r9.index;
1960
2022
  const ctx_r2 = i0.ɵɵnextContext(3);
1961
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
2023
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2$5, ctx_r2.disabled || ctx_r2.readonly));
1962
2024
  i0.ɵɵadvance();
1963
2025
  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);
2026
+ i0.ɵɵattribute("data-attr-index", i_r11);
1965
2027
  } }
1966
2028
  function RadiosetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf & 1) {
1967
2029
  const _r8 = i0.ɵɵgetCurrentView();
1968
2030
  i0.ɵɵelementStart(0, "li", 23);
1969
2031
  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);
2032
+ 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
2033
  i0.ɵɵelementEnd();
1972
2034
  } if (rf & 2) {
1973
2035
  const item_r9 = ctx.$implicit;
@@ -1992,10 +2054,15 @@ function RadiosetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
1992
2054
  i0.ɵɵelementEnd()();
1993
2055
  } if (rf & 2) {
1994
2056
  const groupObj_r7 = ctx.$implicit;
2057
+ const groupindex_r12 = ctx.index;
1995
2058
  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);
2059
+ i0.ɵɵadvance();
2060
+ i0.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
2061
+ i0.ɵɵadvance();
2062
+ i0.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
2063
+ i0.ɵɵadvance();
2064
+ i0.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
2065
+ i0.ɵɵadvance();
1999
2066
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
2000
2067
  i0.ɵɵadvance(2);
2001
2068
  i0.ɵɵproperty("ngIf", ctx_r2.collapsible);
@@ -2005,7 +2072,7 @@ function RadiosetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
2005
2072
  i0.ɵɵproperty("ngForOf", groupObj_r7.data);
2006
2073
  } }
2007
2074
  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);
2075
+ i0.ɵɵtemplate(0, RadiosetComponent_ng_template_3_li_0_Template, 9, 11, "li", 12);
2009
2076
  } if (rf & 2) {
2010
2077
  const ctx_r2 = i0.ɵɵnextContext();
2011
2078
  i0.ɵɵproperty("ngForOf", ctx_r2.groupedData);
@@ -2063,13 +2130,13 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2063
2130
  provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),
2064
2131
  provideAs(RadiosetComponent, NG_VALIDATORS, true),
2065
2132
  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) {
2133
+ ]), 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
2134
  i0.ɵɵtemplate(0, RadiosetComponent_ng_template_0_Template, 1, 1, "ng-template", 1);
2068
2135
  i0.ɵɵelement(1, "input", 2);
2069
2136
  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
2137
  } if (rf & 2) {
2071
- const groupedListTemplate_r12 = i0.ɵɵreference(4);
2072
- i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r12);
2138
+ const groupedListTemplate_r13 = i0.ɵɵreference(4);
2139
+ i0.ɵɵproperty("ngIf", !ctx.groupby)("ngIfElse", groupedListTemplate_r13);
2073
2140
  i0.ɵɵadvance();
2074
2141
  i0.ɵɵproperty("disabled", ctx.disabled || ctx.readonly);
2075
2142
  i0.ɵɵadvance();
@@ -2082,7 +2149,7 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2082
2149
  provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),
2083
2150
  provideAs(RadiosetComponent, NG_VALIDATORS, true),
2084
2151
  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" }]
2152
+ ], 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
2153
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2087
2154
  type: Inject,
2088
2155
  args: ['EXPLICIT_CONTEXT']
@@ -2106,6 +2173,7 @@ const selectProps = new Map([
2106
2173
  ['displayValue', PROP_STRING],
2107
2174
  ['groupby', PROP_STRING],
2108
2175
  ['hint', PROP_STRING],
2176
+ ['arialabel', PROP_STRING],
2109
2177
  ['match', PROP_STRING],
2110
2178
  ['multiple', { value: false, ...PROP_BOOLEAN }],
2111
2179
  ['name', PROP_STRING],
@@ -2185,7 +2253,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2185
2253
  * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
2186
2254
  * */
2187
2255
  const datasetSubscription = this.dataset$.subscribe(() => {
2188
- if (isIos()) {
2256
+ if (isIos() || isSafari()) {
2189
2257
  if (this.datavalue) {
2190
2258
  const selectedItem = this.datasetItems.find(item => item.selected);
2191
2259
  if (!selectedItem) {
@@ -2265,7 +2333,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2265
2333
  */
2266
2334
  checkForFloatingLabel($event) {
2267
2335
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
2268
- if (!this.placeholder && isIos()) {
2336
+ if (!this.placeholder && (isIos() || isSafari())) {
2269
2337
  this.removePlaceholderOption();
2270
2338
  }
2271
2339
  if (captionEl.length > 0) {
@@ -2308,7 +2376,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2308
2376
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2309
2377
  provideAs(SelectComponent, NG_VALIDATORS, true),
2310
2378
  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) {
2379
+ ]), 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
2380
  const _r1 = i0.ɵɵgetCurrentView();
2313
2381
  i0.ɵɵelementStart(0, "select", 1, 0);
2314
2382
  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 +2388,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2320
2388
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
2321
2389
  i0.ɵɵtwoWayProperty("ngModel", ctx.modelByKey);
2322
2390
  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);
2391
+ i0.ɵɵattribute("accesskey", ctx.shortcutkey)("name", ctx.name)("aria-label", ctx.arialabel);
2324
2392
  i0.ɵɵadvance(2);
2325
2393
  i0.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
2326
2394
  i0.ɵɵadvance();
@@ -2335,7 +2403,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2335
2403
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2336
2404
  provideAs(SelectComponent, NG_VALIDATORS, true),
2337
2405
  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" }]
2406
+ ], 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
2407
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2340
2408
  type: Inject,
2341
2409
  args: ['EXPLICIT_CONTEXT']
@@ -2358,6 +2426,7 @@ const switchProps = new Map([
2358
2426
  ['displayexpression', PROP_STRING],
2359
2427
  ['displayfield', PROP_STRING],
2360
2428
  ['hint', PROP_STRING],
2429
+ ['arialabel', PROP_STRING],
2361
2430
  ['iconclass', PROP_STRING],
2362
2431
  ['name', PROP_STRING],
2363
2432
  ['orderby', PROP_STRING],
@@ -2391,7 +2460,8 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2391
2460
  } if (rf & 2) {
2392
2461
  const opt_r3 = ctx.$implicit;
2393
2462
  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));
2463
+ i0.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0.ɵɵpureFunction2(5, _c1$5, opt_r3.selected, ctx_r4.disabled));
2464
+ i0.ɵɵattribute("aria-pressed", opt_r3.selected ? true : false);
2395
2465
  i0.ɵɵadvance();
2396
2466
  i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass]);
2397
2467
  i0.ɵɵadvance();
@@ -2515,9 +2585,9 @@ class SwitchComponent extends DatasetAwareFormComponent {
2515
2585
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0.ɵɵProvidersFeature([
2516
2586
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2517
2587
  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) {
2588
+ ]), 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
2589
  i0.ɵɵelementStart(0, "div", 0);
2520
- i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 7, "a", 1);
2590
+ i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 8, "a", 1);
2521
2591
  i0.ɵɵelementEnd();
2522
2592
  i0.ɵɵelementStart(2, "span", 2);
2523
2593
  i0.ɵɵtemplate(3, SwitchComponent_i_3_Template, 1, 3, "i", 3);
@@ -2542,7 +2612,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2542
2612
  args: [{ selector: '[wmSwitch]', providers: [
2543
2613
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2544
2614
  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" }]
2615
+ ], 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
2616
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2547
2617
  type: Inject,
2548
2618
  args: ['EXPLICIT_CONTEXT']
@@ -2560,6 +2630,7 @@ const inputCalendarTypeProps = new Map([
2560
2630
  ['datavalue', PROP_STRING],
2561
2631
  ['disabled', PROP_BOOLEAN],
2562
2632
  ['hint', PROP_STRING],
2633
+ ['arialabel', PROP_STRING],
2563
2634
  ['maxvalue', PROP_NUMBER],
2564
2635
  ['minvalue', PROP_NUMBER],
2565
2636
  ['name', PROP_STRING],
@@ -2603,7 +2674,7 @@ class InputCalendarComponent extends BaseInput {
2603
2674
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2604
2675
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2605
2676
  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) {
2677
+ ]), 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
2678
  const _r1 = i0.ɵɵgetCurrentView();
2608
2679
  i0.ɵɵelementStart(0, "input", 1, 0);
2609
2680
  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 +2684,7 @@ class InputCalendarComponent extends BaseInput {
2613
2684
  i0.ɵɵproperty("type", ctx.type);
2614
2685
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2615
2686
  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");
2687
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel || ctx.type + " field");
2617
2688
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.NgModel], encapsulation: 2 }); }
2618
2689
  }
2619
2690
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputCalendarComponent, [{
@@ -2622,7 +2693,7 @@ class InputCalendarComponent extends BaseInput {
2622
2693
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2623
2694
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2624
2695
  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" }]
2696
+ ], 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
2697
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2627
2698
  type: Inject,
2628
2699
  args: ['EXPLICIT_CONTEXT']
@@ -2646,6 +2717,7 @@ const inputColorTypeProps = new Map([
2646
2717
  ['datavalue', PROP_STRING],
2647
2718
  ['disabled', PROP_BOOLEAN],
2648
2719
  ['hint', PROP_STRING],
2720
+ ['arialabel', PROP_STRING],
2649
2721
  ['name', PROP_STRING],
2650
2722
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
2651
2723
  ['readonly', PROP_BOOLEAN],
@@ -2686,7 +2758,7 @@ class InputColorComponent extends BaseInput {
2686
2758
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2687
2759
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2688
2760
  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) {
2761
+ ]), 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
2762
  const _r1 = i0.ɵɵgetCurrentView();
2691
2763
  i0.ɵɵelementStart(0, "input", 1, 0);
2692
2764
  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 +2768,7 @@ class InputColorComponent extends BaseInput {
2696
2768
  i0.ɵɵproperty("type", ctx.type);
2697
2769
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2698
2770
  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);
2771
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2700
2772
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2701
2773
  }
2702
2774
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputColorComponent, [{
@@ -2705,7 +2777,7 @@ class InputColorComponent extends BaseInput {
2705
2777
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2706
2778
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2707
2779
  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" }]
2780
+ ], 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
2781
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2710
2782
  type: Inject,
2711
2783
  args: ['EXPLICIT_CONTEXT']
@@ -2729,6 +2801,7 @@ const inputEmailTypeProps = new Map([
2729
2801
  ['datavalue', PROP_STRING],
2730
2802
  ['disabled', PROP_BOOLEAN],
2731
2803
  ['hint', PROP_STRING],
2804
+ ['arialabel', PROP_STRING],
2732
2805
  ['maxchars', PROP_NUMBER],
2733
2806
  ['name', PROP_STRING],
2734
2807
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -2770,7 +2843,7 @@ class InputEmailComponent extends BaseInput {
2770
2843
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2771
2844
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2772
2845
  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) {
2846
+ ]), 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
2847
  const _r1 = i0.ɵɵgetCurrentView();
2775
2848
  i0.ɵɵelementStart(0, "input", 1, 0);
2776
2849
  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 +2853,7 @@ class InputEmailComponent extends BaseInput {
2780
2853
  i0.ɵɵproperty("type", ctx.type);
2781
2854
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2782
2855
  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);
2856
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2784
2857
  } }, 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
2858
  }
2786
2859
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputEmailComponent, [{
@@ -2789,7 +2862,7 @@ class InputEmailComponent extends BaseInput {
2789
2862
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2790
2863
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2791
2864
  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" }]
2865
+ ], 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
2866
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2794
2867
  type: Inject,
2795
2868
  args: ['EXPLICIT_CONTEXT']
@@ -2813,6 +2886,7 @@ const inputNumberTypeProps = new Map([
2813
2886
  ['datavalue', PROP_STRING],
2814
2887
  ['disabled', PROP_BOOLEAN],
2815
2888
  ['hint', PROP_STRING],
2889
+ ['arialabel', PROP_STRING],
2816
2890
  ['maxchars', PROP_NUMBER],
2817
2891
  ['maxvalue', PROP_NUMBER],
2818
2892
  ['minvalue', PROP_NUMBER],
@@ -2868,7 +2942,7 @@ class InputNumberComponent extends BaseInput {
2868
2942
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2869
2943
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2870
2944
  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) {
2945
+ ]), 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
2946
  const _r1 = i0.ɵɵgetCurrentView();
2873
2947
  i0.ɵɵelementStart(0, "input", 1, 0);
2874
2948
  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 +2952,7 @@ class InputNumberComponent extends BaseInput {
2878
2952
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type);
2879
2953
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2880
2954
  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);
2955
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
2882
2956
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2883
2957
  }
2884
2958
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberComponent, [{
@@ -2887,7 +2961,7 @@ class InputNumberComponent extends BaseInput {
2887
2961
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2888
2962
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2889
2963
  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" }]
2964
+ ], 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
2965
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2892
2966
  type: Inject,
2893
2967
  args: ['EXPLICIT_CONTEXT']
@@ -2912,6 +2986,7 @@ const inputTextTypeProps = new Map([
2912
2986
  ['disabled', PROP_BOOLEAN],
2913
2987
  ['displayformat', PROP_STRING],
2914
2988
  ['hint', PROP_STRING],
2989
+ ['arialabel', PROP_STRING],
2915
2990
  ['maxchars', PROP_NUMBER],
2916
2991
  ['name', PROP_STRING],
2917
2992
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -3035,7 +3110,7 @@ class InputTextComponent extends BaseInput {
3035
3110
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3036
3111
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3037
3112
  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) {
3113
+ ]), 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
3114
  const _r1 = i0.ɵɵgetCurrentView();
3040
3115
  i0.ɵɵelementStart(0, "input", 1, 0);
3041
3116
  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 +3120,7 @@ class InputTextComponent extends BaseInput {
3045
3120
  i0.ɵɵproperty("type", ctx.type);
3046
3121
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3047
3122
  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);
3123
+ i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
3049
3124
  } }, 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
3125
  }
3051
3126
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputTextComponent, [{
@@ -3054,7 +3129,7 @@ class InputTextComponent extends BaseInput {
3054
3129
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3055
3130
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3056
3131
  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" }]
3132
+ ], 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
3133
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3059
3134
  type: Inject,
3060
3135
  args: ['EXPLICIT_CONTEXT']
@@ -3080,6 +3155,7 @@ const textareaProps = new Map([
3080
3155
  ['datavalue', PROP_STRING],
3081
3156
  ['disabled', PROP_BOOLEAN],
3082
3157
  ['hint', PROP_STRING],
3158
+ ['arialabel', PROP_STRING],
3083
3159
  ['maxchars', PROP_NUMBER],
3084
3160
  ['name', PROP_STRING],
3085
3161
  ['placeholder', { value: 'Place your text', ...PROP_STRING }],
@@ -3137,7 +3213,7 @@ class TextareaComponent extends BaseInput {
3137
3213
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3138
3214
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3139
3215
  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) {
3216
+ ]), 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
3217
  const _r1 = i0.ɵɵgetCurrentView();
3142
3218
  i0.ɵɵelementStart(0, "textarea", 1, 0);
3143
3219
  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 +3223,7 @@ class TextareaComponent extends BaseInput {
3147
3223
  } if (rf & 2) {
3148
3224
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3149
3225
  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);
3226
+ i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.arialabel);
3151
3227
  i0.ɵɵadvance(2);
3152
3228
  i0.ɵɵproperty("ngIf", ctx.maxchars);
3153
3229
  } }, 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 +3234,7 @@ class TextareaComponent extends BaseInput {
3158
3234
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3159
3235
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3160
3236
  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" }]
3237
+ ], 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
3238
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3163
3239
  type: Inject,
3164
3240
  args: ['EXPLICIT_CONTEXT']
@@ -3171,7 +3247,7 @@ class TextareaComponent extends BaseInput {
3171
3247
  type: ViewChild,
3172
3248
  args: [NgModel]
3173
3249
  }] }); })();
3174
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 22 }); })();
3250
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 23 }); })();
3175
3251
 
3176
3252
  class CaptionPositionDirective {
3177
3253
  constructor(inj, app) {
@@ -3202,9 +3278,10 @@ class CaptionPositionDirective {
3202
3278
  }
3203
3279
  // For select widget, display placeholder only on focus else remove the text of the option selected.
3204
3280
  checkForSelectPlaceholder() {
3205
- if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&
3281
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3282
+ if (selectElPlaceholderOption && selectElPlaceholderOption.textContent && !$(this.nativeEl).find('select').is(':focus') &&
3206
3283
  !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {
3207
- $(this.nativeEl).find('select option:selected').text('');
3284
+ selectElPlaceholderOption.textContent = '';
3208
3285
  }
3209
3286
  }
3210
3287
  setDefaultValueAnimation() {
@@ -3306,10 +3383,10 @@ class CaptionPositionDirective {
3306
3383
  // before placeholder is removed assign it to the placeholder variable
3307
3384
  // check for placeholder in inputel and selectel
3308
3385
  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('');
3386
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3387
+ if (this.inputEl.attr('placeholder') || selectElPlaceholderOption) {
3388
+ if (selectElPlaceholderOption) {
3389
+ selectElPlaceholderOption.textContent = '';
3313
3390
  }
3314
3391
  else {
3315
3392
  this.placeholder = this.inputEl.attr('placeholder');