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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) 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 +8 -7
  40. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  41. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  42. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  43. app-ng-runtime/components/base/fesm2022/index.mjs +8 -7
  44. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  46. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  47. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  48. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  49. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  50. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  51. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  52. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  53. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  54. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  55. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  56. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  57. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  58. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  59. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  60. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  61. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  62. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  63. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  64. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  65. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  67. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  68. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  69. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  70. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  71. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  72. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  73. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  74. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  75. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  76. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  78. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  79. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  80. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  81. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  82. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  83. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/basic/search/bundles/index.umd.js +16 -9
  85. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +19 -13
  86. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  87. app-ng-runtime/components/basic/search/fesm2022/index.mjs +16 -9
  88. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  89. app-ng-runtime/components/basic/search/search.component.d.ts +4 -2
  90. app-ng-runtime/components/chart/bundles/index.umd.js +1 -0
  91. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -1
  92. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -0
  93. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  95. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  97. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  99. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  101. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  103. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  104. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  105. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  107. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  108. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  109. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  111. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  113. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -1
  114. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -0
  115. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  117. app-ng-runtime/components/data/list/bundles/index.umd.js +19 -11
  118. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  119. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  120. app-ng-runtime/components/data/list/fesm2022/index.mjs +20 -12
  121. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  123. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  124. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  125. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  126. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  127. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  128. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  129. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  130. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  131. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  132. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  133. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  134. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  135. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  136. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  137. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  138. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  139. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  140. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  142. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  143. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  144. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
  146. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  147. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
  148. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  149. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
  150. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  151. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  152. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  153. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  154. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  155. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  156. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  157. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  158. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  159. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  160. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  161. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  162. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  164. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  165. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  166. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/input/chips/bundles/index.umd.js +25 -7
  168. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  169. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  170. app-ng-runtime/components/input/chips/fesm2022/index.mjs +25 -7
  171. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  173. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  174. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  175. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  176. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  177. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  179. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  180. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  181. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  182. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  183. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  184. app-ng-runtime/components/input/default/bundles/index.umd.js +184 -105
  185. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  186. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  187. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  188. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  189. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  190. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  191. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  192. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  193. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  194. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  195. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  196. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  197. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +20 -18
  198. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  200. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  202. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  203. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  204. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  205. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  206. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  207. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +66 -13
  208. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  209. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  210. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  211. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  212. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
  213. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  214. app-ng-runtime/components/input/default/fesm2022/index.mjs +184 -105
  215. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  216. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  217. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
  218. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  219. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  220. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  221. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  222. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  223. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  224. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
  225. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  226. app-ng-runtime/components/input/epoch/bundles/index.umd.js +28 -21
  227. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  228. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  229. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  230. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  231. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  232. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +9 -9
  233. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  234. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  235. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  236. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +25 -18
  237. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  238. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  239. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +224 -121
  240. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +220 -123
  241. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  242. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +225 -122
  243. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  244. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +18 -11
  245. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  246. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  247. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  248. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  249. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  250. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  251. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  252. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  253. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  254. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  255. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  256. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  257. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  258. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  259. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
  260. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  261. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
  263. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  265. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  266. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  267. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  268. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  269. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  270. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  271. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  272. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  273. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  274. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  275. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  276. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  277. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  278. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  279. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  280. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  281. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  282. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  283. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  284. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  285. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  286. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  287. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  288. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  289. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  290. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  291. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  292. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  293. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  294. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  295. app-ng-runtime/core/bundles/index.umd.js +15 -13
  296. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  297. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  298. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
  299. app-ng-runtime/core/fesm2022/index.mjs +11 -11
  300. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  301. app-ng-runtime/core/public_api.d.ts +1 -1
  302. app-ng-runtime/core/utils/utils.d.ts +1 -1
  303. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  304. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  305. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  306. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  307. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  308. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  309. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  310. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  311. app-ng-runtime/package.json +1 -1
  312. app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
  313. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  314. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  315. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  316. app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
  317. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  318. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  319. app-ng-runtime/scripts/datatable/datatable.js +33 -32
  320. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  321. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  322. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  323. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  324. 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, 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,24 +2253,26 @@ 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 (this.datavalue) {
2189
- const selectedItem = this.datasetItems.find(item => item.selected);
2190
- if (!selectedItem) {
2256
+ if (isIos() || isSafari()) {
2257
+ if (this.datavalue) {
2258
+ const selectedItem = this.datasetItems.find(item => item.selected);
2259
+ if (!selectedItem) {
2260
+ setTimeout(() => {
2261
+ if (!this.placeholder) {
2262
+ this.selectEl.nativeElement.value = '';
2263
+ }
2264
+ this.modelByKey = undefined;
2265
+ }, 100);
2266
+ }
2267
+ }
2268
+ else {
2191
2269
  setTimeout(() => {
2192
2270
  if (!this.placeholder) {
2193
2271
  this.selectEl.nativeElement.value = '';
2194
2272
  }
2195
- this.modelByKey = undefined;
2196
2273
  }, 100);
2197
2274
  }
2198
2275
  }
2199
- else {
2200
- setTimeout(() => {
2201
- if (!this.placeholder) {
2202
- this.selectEl.nativeElement.value = '';
2203
- }
2204
- }, 100);
2205
- }
2206
2276
  });
2207
2277
  this.registerDestroyListener(() => datasetSubscription.unsubscribe());
2208
2278
  }
@@ -2263,7 +2333,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2263
2333
  */
2264
2334
  checkForFloatingLabel($event) {
2265
2335
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
2266
- if (!this.placeholder) {
2336
+ if (!this.placeholder && (isIos() || isSafari())) {
2267
2337
  this.removePlaceholderOption();
2268
2338
  }
2269
2339
  if (captionEl.length > 0) {
@@ -2306,7 +2376,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2306
2376
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2307
2377
  provideAs(SelectComponent, NG_VALIDATORS, true),
2308
2378
  provideAsWidgetRef(SelectComponent)
2309
- ]), 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) {
2310
2380
  const _r1 = i0.ɵɵgetCurrentView();
2311
2381
  i0.ɵɵelementStart(0, "select", 1, 0);
2312
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); });
@@ -2318,7 +2388,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2318
2388
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
2319
2389
  i0.ɵɵtwoWayProperty("ngModel", ctx.modelByKey);
2320
2390
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(17, _c2$4))("multiple", ctx.multiple)("autofocus", ctx.autofocus);
2321
- 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);
2322
2392
  i0.ɵɵadvance(2);
2323
2393
  i0.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
2324
2394
  i0.ɵɵadvance();
@@ -2333,7 +2403,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2333
2403
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2334
2404
  provideAs(SelectComponent, NG_VALIDATORS, true),
2335
2405
  provideAsWidgetRef(SelectComponent)
2336
- ], 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" }]
2337
2407
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2338
2408
  type: Inject,
2339
2409
  args: ['EXPLICIT_CONTEXT']
@@ -2343,7 +2413,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2343
2413
  type: ViewChild,
2344
2414
  args: ['select', { static: true, read: ElementRef }]
2345
2415
  }] }); })();
2346
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 21 }); })();
2416
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 20 }); })();
2347
2417
 
2348
2418
  const switchProps = new Map([
2349
2419
  ['class', PROP_STRING],
@@ -2356,6 +2426,7 @@ const switchProps = new Map([
2356
2426
  ['displayexpression', PROP_STRING],
2357
2427
  ['displayfield', PROP_STRING],
2358
2428
  ['hint', PROP_STRING],
2429
+ ['arialabel', PROP_STRING],
2359
2430
  ['iconclass', PROP_STRING],
2360
2431
  ['name', PROP_STRING],
2361
2432
  ['orderby', PROP_STRING],
@@ -2389,7 +2460,8 @@ function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2389
2460
  } if (rf & 2) {
2390
2461
  const opt_r3 = ctx.$implicit;
2391
2462
  const ctx_r4 = i0.ɵɵnextContext();
2392
- 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);
2393
2465
  i0.ɵɵadvance();
2394
2466
  i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass]);
2395
2467
  i0.ɵɵadvance();
@@ -2513,9 +2585,9 @@ class SwitchComponent extends DatasetAwareFormComponent {
2513
2585
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0.ɵɵProvidersFeature([
2514
2586
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2515
2587
  provideAsWidgetRef(SwitchComponent)
2516
- ]), 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) {
2517
2589
  i0.ɵɵelementStart(0, "div", 0);
2518
- i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 7, "a", 1);
2590
+ i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 8, "a", 1);
2519
2591
  i0.ɵɵelementEnd();
2520
2592
  i0.ɵɵelementStart(2, "span", 2);
2521
2593
  i0.ɵɵtemplate(3, SwitchComponent_i_3_Template, 1, 3, "i", 3);
@@ -2540,7 +2612,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2540
2612
  args: [{ selector: '[wmSwitch]', providers: [
2541
2613
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2542
2614
  provideAsWidgetRef(SwitchComponent)
2543
- ], 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" }]
2544
2616
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2545
2617
  type: Inject,
2546
2618
  args: ['EXPLICIT_CONTEXT']
@@ -2558,6 +2630,7 @@ const inputCalendarTypeProps = new Map([
2558
2630
  ['datavalue', PROP_STRING],
2559
2631
  ['disabled', PROP_BOOLEAN],
2560
2632
  ['hint', PROP_STRING],
2633
+ ['arialabel', PROP_STRING],
2561
2634
  ['maxvalue', PROP_NUMBER],
2562
2635
  ['minvalue', PROP_NUMBER],
2563
2636
  ['name', PROP_STRING],
@@ -2601,7 +2674,7 @@ class InputCalendarComponent extends BaseInput {
2601
2674
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2602
2675
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2603
2676
  provideAsWidgetRef(InputCalendarComponent)
2604
- ]), 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) {
2605
2678
  const _r1 = i0.ɵɵgetCurrentView();
2606
2679
  i0.ɵɵelementStart(0, "input", 1, 0);
2607
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); });
@@ -2611,7 +2684,7 @@ class InputCalendarComponent extends BaseInput {
2611
2684
  i0.ɵɵproperty("type", ctx.type);
2612
2685
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2613
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);
2614
- 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");
2615
2688
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.NgModel], encapsulation: 2 }); }
2616
2689
  }
2617
2690
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputCalendarComponent, [{
@@ -2620,7 +2693,7 @@ class InputCalendarComponent extends BaseInput {
2620
2693
  provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),
2621
2694
  provideAs(InputCalendarComponent, NG_VALIDATORS, true),
2622
2695
  provideAsWidgetRef(InputCalendarComponent)
2623
- ], 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" }]
2624
2697
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2625
2698
  type: Inject,
2626
2699
  args: ['EXPLICIT_CONTEXT']
@@ -2644,6 +2717,7 @@ const inputColorTypeProps = new Map([
2644
2717
  ['datavalue', PROP_STRING],
2645
2718
  ['disabled', PROP_BOOLEAN],
2646
2719
  ['hint', PROP_STRING],
2720
+ ['arialabel', PROP_STRING],
2647
2721
  ['name', PROP_STRING],
2648
2722
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
2649
2723
  ['readonly', PROP_BOOLEAN],
@@ -2684,7 +2758,7 @@ class InputColorComponent extends BaseInput {
2684
2758
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2685
2759
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2686
2760
  provideAsWidgetRef(InputColorComponent)
2687
- ]), 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) {
2688
2762
  const _r1 = i0.ɵɵgetCurrentView();
2689
2763
  i0.ɵɵelementStart(0, "input", 1, 0);
2690
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); });
@@ -2694,7 +2768,7 @@ class InputColorComponent extends BaseInput {
2694
2768
  i0.ɵɵproperty("type", ctx.type);
2695
2769
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2696
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);
2697
- 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);
2698
2772
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2699
2773
  }
2700
2774
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputColorComponent, [{
@@ -2703,7 +2777,7 @@ class InputColorComponent extends BaseInput {
2703
2777
  provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),
2704
2778
  provideAs(InputColorComponent, NG_VALIDATORS, true),
2705
2779
  provideAsWidgetRef(InputColorComponent)
2706
- ], 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" }]
2707
2781
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2708
2782
  type: Inject,
2709
2783
  args: ['EXPLICIT_CONTEXT']
@@ -2727,6 +2801,7 @@ const inputEmailTypeProps = new Map([
2727
2801
  ['datavalue', PROP_STRING],
2728
2802
  ['disabled', PROP_BOOLEAN],
2729
2803
  ['hint', PROP_STRING],
2804
+ ['arialabel', PROP_STRING],
2730
2805
  ['maxchars', PROP_NUMBER],
2731
2806
  ['name', PROP_STRING],
2732
2807
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -2768,7 +2843,7 @@ class InputEmailComponent extends BaseInput {
2768
2843
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2769
2844
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2770
2845
  provideAsWidgetRef(InputEmailComponent)
2771
- ]), 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) {
2772
2847
  const _r1 = i0.ɵɵgetCurrentView();
2773
2848
  i0.ɵɵelementStart(0, "input", 1, 0);
2774
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); });
@@ -2778,7 +2853,7 @@ class InputEmailComponent extends BaseInput {
2778
2853
  i0.ɵɵproperty("type", ctx.type);
2779
2854
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2780
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");
2781
- 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);
2782
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 }); }
2783
2858
  }
2784
2859
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputEmailComponent, [{
@@ -2787,7 +2862,7 @@ class InputEmailComponent extends BaseInput {
2787
2862
  provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),
2788
2863
  provideAs(InputEmailComponent, NG_VALIDATORS, true),
2789
2864
  provideAsWidgetRef(InputEmailComponent)
2790
- ], 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" }]
2791
2866
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2792
2867
  type: Inject,
2793
2868
  args: ['EXPLICIT_CONTEXT']
@@ -2811,6 +2886,7 @@ const inputNumberTypeProps = new Map([
2811
2886
  ['datavalue', PROP_STRING],
2812
2887
  ['disabled', PROP_BOOLEAN],
2813
2888
  ['hint', PROP_STRING],
2889
+ ['arialabel', PROP_STRING],
2814
2890
  ['maxchars', PROP_NUMBER],
2815
2891
  ['maxvalue', PROP_NUMBER],
2816
2892
  ['minvalue', PROP_NUMBER],
@@ -2866,7 +2942,7 @@ class InputNumberComponent extends BaseInput {
2866
2942
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2867
2943
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2868
2944
  provideAsWidgetRef(InputNumberComponent)
2869
- ]), 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) {
2870
2946
  const _r1 = i0.ɵɵgetCurrentView();
2871
2947
  i0.ɵɵelementStart(0, "input", 1, 0);
2872
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); });
@@ -2876,7 +2952,7 @@ class InputNumberComponent extends BaseInput {
2876
2952
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type);
2877
2953
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
2878
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");
2879
- 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);
2880
2956
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.RequiredValidator, i2$1.MaxLengthValidator, i2$1.NgModel], encapsulation: 2 }); }
2881
2957
  }
2882
2958
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberComponent, [{
@@ -2885,7 +2961,7 @@ class InputNumberComponent extends BaseInput {
2885
2961
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
2886
2962
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
2887
2963
  provideAsWidgetRef(InputNumberComponent)
2888
- ], 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" }]
2889
2965
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2890
2966
  type: Inject,
2891
2967
  args: ['EXPLICIT_CONTEXT']
@@ -2910,6 +2986,7 @@ const inputTextTypeProps = new Map([
2910
2986
  ['disabled', PROP_BOOLEAN],
2911
2987
  ['displayformat', PROP_STRING],
2912
2988
  ['hint', PROP_STRING],
2989
+ ['arialabel', PROP_STRING],
2913
2990
  ['maxchars', PROP_NUMBER],
2914
2991
  ['name', PROP_STRING],
2915
2992
  ['placeholder', { value: 'Enter text', ...PROP_STRING }],
@@ -3033,7 +3110,7 @@ class InputTextComponent extends BaseInput {
3033
3110
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3034
3111
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3035
3112
  provideAsWidgetRef(InputTextComponent)
3036
- ]), 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) {
3037
3114
  const _r1 = i0.ɵɵgetCurrentView();
3038
3115
  i0.ɵɵelementStart(0, "input", 1, 0);
3039
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); });
@@ -3043,7 +3120,7 @@ class InputTextComponent extends BaseInput {
3043
3120
  i0.ɵɵproperty("type", ctx.type);
3044
3121
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3045
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");
3046
- 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);
3047
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 }); }
3048
3125
  }
3049
3126
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputTextComponent, [{
@@ -3052,7 +3129,7 @@ class InputTextComponent extends BaseInput {
3052
3129
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
3053
3130
  provideAs(InputTextComponent, NG_VALIDATORS, true),
3054
3131
  provideAsWidgetRef(InputTextComponent)
3055
- ], 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" }]
3056
3133
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3057
3134
  type: Inject,
3058
3135
  args: ['EXPLICIT_CONTEXT']
@@ -3078,6 +3155,7 @@ const textareaProps = new Map([
3078
3155
  ['datavalue', PROP_STRING],
3079
3156
  ['disabled', PROP_BOOLEAN],
3080
3157
  ['hint', PROP_STRING],
3158
+ ['arialabel', PROP_STRING],
3081
3159
  ['maxchars', PROP_NUMBER],
3082
3160
  ['name', PROP_STRING],
3083
3161
  ['placeholder', { value: 'Place your text', ...PROP_STRING }],
@@ -3135,7 +3213,7 @@ class TextareaComponent extends BaseInput {
3135
3213
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3136
3214
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3137
3215
  provideAsWidgetRef(TextareaComponent)
3138
- ]), 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) {
3139
3217
  const _r1 = i0.ɵɵgetCurrentView();
3140
3218
  i0.ɵɵelementStart(0, "textarea", 1, 0);
3141
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); });
@@ -3145,7 +3223,7 @@ class TextareaComponent extends BaseInput {
3145
3223
  } if (rf & 2) {
3146
3224
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
3147
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);
3148
- 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);
3149
3227
  i0.ɵɵadvance(2);
3150
3228
  i0.ɵɵproperty("ngIf", ctx.maxchars);
3151
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 }); }
@@ -3156,7 +3234,7 @@ class TextareaComponent extends BaseInput {
3156
3234
  provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),
3157
3235
  provideAs(TextareaComponent, NG_VALIDATORS, true),
3158
3236
  provideAsWidgetRef(TextareaComponent)
3159
- ], 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" }]
3160
3238
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
3161
3239
  type: Inject,
3162
3240
  args: ['EXPLICIT_CONTEXT']
@@ -3169,7 +3247,7 @@ class TextareaComponent extends BaseInput {
3169
3247
  type: ViewChild,
3170
3248
  args: [NgModel]
3171
3249
  }] }); })();
3172
- (() => { (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 }); })();
3173
3251
 
3174
3252
  class CaptionPositionDirective {
3175
3253
  constructor(inj, app) {
@@ -3200,9 +3278,10 @@ class CaptionPositionDirective {
3200
3278
  }
3201
3279
  // For select widget, display placeholder only on focus else remove the text of the option selected.
3202
3280
  checkForSelectPlaceholder() {
3203
- 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') &&
3204
3283
  !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {
3205
- $(this.nativeEl).find('select option:selected').text('');
3284
+ selectElPlaceholderOption.textContent = '';
3206
3285
  }
3207
3286
  }
3208
3287
  setDefaultValueAnimation() {
@@ -3304,10 +3383,10 @@ class CaptionPositionDirective {
3304
3383
  // before placeholder is removed assign it to the placeholder variable
3305
3384
  // check for placeholder in inputel and selectel
3306
3385
  if (this.inputEl) {
3307
- const selectEl = this.inputEl.find('option:first');
3308
- if (this.inputEl.attr('placeholder') || selectEl.text()) {
3309
- if (selectEl.length) {
3310
- selectEl.text('');
3386
+ const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
3387
+ if (this.inputEl.attr('placeholder') || selectElPlaceholderOption) {
3388
+ if (selectElPlaceholderOption) {
3389
+ selectElPlaceholderOption.textContent = '';
3311
3390
  }
3312
3391
  else {
3313
3392
  this.placeholder = this.inputEl.attr('placeholder');