@wavemaker/app-ng-runtime 12.0.0-next.45104 → 12.0.0-next.45128

Sign up to get free protection for your applications and to get access to all the features.
Files changed (304) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +46 -38
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -2
  12. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  15. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  17. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  18. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  21. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +5 -1
  22. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  26. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  29. app-ng-runtime/build-task/fesm2022/index.mjs +46 -38
  30. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  31. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  33. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  34. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/base/bundles/index.umd.js +8 -2
  36. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  37. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  38. app-ng-runtime/components/base/fesm2022/index.mjs +8 -2
  39. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  40. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  41. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  42. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  43. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  44. app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
  45. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  46. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  47. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
  48. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  49. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  50. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  51. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  52. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  53. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  54. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  55. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  56. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  57. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  58. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
  59. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  60. app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
  61. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  62. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  63. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  64. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  65. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  66. app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
  67. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  68. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  69. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  70. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  71. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
  72. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  73. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  74. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  75. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  76. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  77. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  78. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  79. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  80. app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
  81. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
  82. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  83. app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
  84. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
  86. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  87. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  88. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  89. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  91. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  92. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  93. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  95. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  96. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  97. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  98. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  99. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  100. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  101. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  102. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  103. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  104. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -3
  105. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -2
  106. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  108. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  109. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  110. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  111. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  113. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  114. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  115. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  117. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  118. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  119. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  120. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  121. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  123. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  124. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  125. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  126. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  127. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  128. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  129. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  130. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  131. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +20 -3
  132. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  133. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  134. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  135. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +20 -3
  136. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  137. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  138. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  139. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  140. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  142. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  143. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  144. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  146. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  147. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  148. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  149. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  150. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  151. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  152. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
  154. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
  155. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  156. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
  157. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  158. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  159. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  160. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  161. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  162. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  163. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  164. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  165. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  166. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  167. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  168. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  169. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  170. app-ng-runtime/components/input/default/bundles/index.umd.js +206 -110
  171. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  172. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  173. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  174. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  175. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  176. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  177. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  178. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  179. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  180. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  181. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  182. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  183. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  184. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  185. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  186. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  187. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  188. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  189. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  190. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  191. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  192. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  193. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  194. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  196. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  197. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  198. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/fesm2022/index.mjs +206 -110
  200. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  201. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  202. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  203. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  204. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  205. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  206. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  207. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  208. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  209. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  210. app-ng-runtime/components/input/epoch/bundles/index.umd.js +15 -9
  211. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  212. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  213. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
  214. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  215. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +10 -7
  216. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  217. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  218. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  219. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -9
  220. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  221. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  222. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +208 -95
  223. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +206 -98
  224. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
  225. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +209 -96
  226. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  227. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +17 -11
  228. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  229. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  230. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  231. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  232. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  233. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  234. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  235. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  236. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  237. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  238. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  239. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  240. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  241. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  242. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  243. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  244. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  245. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  246. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  247. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  248. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  249. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  250. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  251. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  252. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  253. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  254. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  255. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  256. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  257. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  258. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  259. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  260. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  261. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  262. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  263. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  264. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  265. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  266. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  267. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  268. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  269. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  270. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  271. app-ng-runtime/core/bundles/index.umd.js +12 -9
  272. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  273. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  274. app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
  275. app-ng-runtime/core/fesm2022/index.mjs +12 -10
  276. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/core/public_api.d.ts +1 -1
  278. app-ng-runtime/core/utils/utils.d.ts +1 -0
  279. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  280. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  281. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  282. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  283. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  284. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  285. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  286. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  287. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  288. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  289. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  290. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  291. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  292. app-ng-runtime/package.json +1 -1
  293. app-ng-runtime/runtime/base/bundles/index.umd.js +7 -5
  294. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  295. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  296. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  297. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  298. app-ng-runtime/runtime/base/fesm2022/index.mjs +7 -5
  299. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  300. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  301. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  302. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  303. app-ng-runtime/scripts/datatable/datatable.js +29 -29
  304. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/chips.module.ts","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","<li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\" role=\"option\" *ngFor=\"let item of chipsList; let $index = index;\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a class=\"app-chip\" href=\"javascript:void(0);\" tabindex=\"-1\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\" *ngIf=\"item.imgSrc\"/>\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n <button type=\"button\" tabindex=\"-1\" aria-label=\"Clear Button\" class=\"btn btn-transparent\" (click)=\"removeItem($event, item, $index);\" *ngIf=\"!readonly\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n </a>\n</li>\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","import {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n $appDigest,\n $unwatch,\n $watch,\n debounce,\n isAppleProduct,\n isDefined,\n toBoolean\n} from '@wm/core';\nimport { ALLFIELDS, configureDnD, DataSetItem, getConditionalClasses, getUniqObjsByDataField, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\nimport { SearchComponent } from '@wm/components/basic/search';\n\nimport { registerProps } from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach, isArray,\n isEqual,\n isObject, max, pullAt, reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private inputposition: string;\n private showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private searchkey: string;\n private _debounceUpdateQueryModel: any;\n private limit: number;\n private _classExpr: any;\n private minchars: number;\n private matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private bindDisplayField,\n @Attribute('displayexpression.bind') private bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private bindDisplayImgSrc,\n @Attribute('datafield.bind') private bindDataField,\n @Attribute('dataset.bind') private bindDataSet,\n @Attribute('chipclass.bind') private bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n this._debounceUpdateQueryModel(val);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItem = this.nativeElement.querySelectorAll('.chip-item').item(index);\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList || !this.chipsList.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv );\n } else if (nv) {\n this.configureDnD();\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList && $chipsList.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { SearchModule } from '@wm/components/basic/search';\n\nimport { ChipsComponent } from './chips.component';\n\nconst components = [\n ChipsComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n SearchModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ChipsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/chips.module.ts","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ['datacompletemsg', { value: 'No more data to load', ...PROP_STRING }],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","<li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\" role=\"option\" *ngFor=\"let item of chipsList; let $index = index;\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a class=\"app-chip\" tabindex=\"-1\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\" *ngIf=\"item.imgSrc\"/>\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n <button type=\"button\" tabindex=\"-1\" aria-label=\"Clear Button\" class=\"btn btn-transparent\" (click)=\"removeItem($event, item, $index);\" *ngIf=\"!readonly\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n </a>\n</li>\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n datacompletemsg.bind = \"datacompletemsg\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","import {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n $appDigest,\n $unwatch,\n $watch,\n debounce,\n isAppleProduct,\n isDefined,\n toBoolean\n} from '@wm/core';\nimport { ALLFIELDS, configureDnD, DataSetItem, getConditionalClasses, getUniqObjsByDataField, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\nimport { SearchComponent } from '@wm/components/basic/search';\n\nimport { registerProps } from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach, isArray,\n isEqual,\n isObject, max, pullAt, reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private inputposition: string;\n private showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private searchkey: string;\n private _debounceUpdateQueryModel: any;\n private limit: number;\n private _classExpr: any;\n private minchars: number;\n private matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private bindDisplayField,\n @Attribute('displayexpression.bind') private bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private bindDisplayImgSrc,\n @Attribute('datafield.bind') private bindDataField,\n @Attribute('dataset.bind') private bindDataSet,\n @Attribute('chipclass.bind') private bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n this._debounceUpdateQueryModel(val);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItem = this.nativeElement.querySelectorAll('.chip-item').item(index);\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList || !this.chipsList.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv );\n } else if (nv) {\n this.configureDnD();\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList && $chipsList.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { SearchModule } from '@wm/components/basic/search';\n\nimport { ChipsComponent } from './chips.component';\n\nconst components = [\n ChipsComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n SearchModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ChipsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@
31
31
  ['datavalue', base.PROP_STRING],
32
32
  ['disabled', base.PROP_BOOLEAN],
33
33
  ['hint', base.PROP_STRING],
34
+ ['arialabel', base.PROP_STRING],
34
35
  ['name', base.PROP_STRING],
35
36
  ['placeholder', { value: 'Select Color', ...base.PROP_STRING }],
36
37
  ['readonly', base.PROP_BOOLEAN],
@@ -67,6 +68,7 @@
67
68
  }
68
69
  }
69
70
  colorPickerOpen(value) {
71
+ $('.hex-text input').attr('placeholder', 'Enter hex color code');
70
72
  // Whenever autoclose property is set to 'always', adding the onclick listener to the colorPicker container to close the picker.
71
73
  if (this.autoclose === base.AUTOCLOSE_TYPE.ALWAYS) {
72
74
  const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`);
@@ -122,7 +124,7 @@
122
124
  base.provideAs(ColorPickerComponent, i2.NG_VALUE_ACCESSOR, true),
123
125
  base.provideAs(ColorPickerComponent, i2.NG_VALIDATORS, true),
124
126
  base.provideAsWidgetRef(ColorPickerComponent)
125
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
127
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
126
128
  const _r1 = i0__namespace.ɵɵgetCurrentView();
127
129
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
128
130
  i0__namespace.ɵɵtwoWayListener("colorPickerChange", function ColorPickerComponent_Template_input_colorPickerChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0__namespace.ɵɵresetView($event); });
@@ -138,7 +140,7 @@
138
140
  i0__namespace.ɵɵproperty("cpPosition", "bottom")("cpCloseClickOutside", ctx.outsideclick)("disabled", ctx.readonly || ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
139
141
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
140
142
  i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(14, _c2));
141
- i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
143
+ i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
142
144
  i0__namespace.ɵɵadvance(3);
143
145
  i0__namespace.ɵɵstyleProp("background-color", ctx.datavalue);
144
146
  } }, dependencies: [i1__namespace.ColorPickerDirective, i2__namespace.DefaultValueAccessor, i2__namespace.NgControlStatus, i2__namespace.RequiredValidator, i2__namespace.NgModel], encapsulation: 2 }); }
@@ -149,7 +151,7 @@
149
151
  base.provideAs(ColorPickerComponent, i2.NG_VALUE_ACCESSOR, true),
150
152
  base.provideAs(ColorPickerComponent, i2.NG_VALIDATORS, true),
151
153
  base.provideAsWidgetRef(ColorPickerComponent)
152
- ], template: "<input class=\"form-control app-textbox\" aria-haspopup=\"true\" aria-expanded=\"false\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
154
+ ], template: "<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
153
155
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
154
156
  type: i0.Inject,
155
157
  args: ['EXPLICIT_CONTEXT']
@@ -15,6 +15,7 @@ export declare class ColorPickerComponent extends BaseFormCustomComponent {
15
15
  outsideclick: boolean;
16
16
  autoclose: string;
17
17
  hint: string;
18
+ arialabel: string;
18
19
  ngModel: NgModel;
19
20
  inputEl: ElementRef;
20
21
  cpDirective: ColorPickerDirective;
@@ -1,5 +1,5 @@
1
1
  import { Component, ElementRef, Inject, Injector, Optional, ViewChild } from '@angular/core';
2
- import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';
3
3
  import { ColorPickerDirective } from 'ngx-color-picker';
4
4
  import { addClass, removeClass } from '@wm/core';
5
5
  import { AUTOCLOSE_TYPE, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';
@@ -31,6 +31,7 @@ export class ColorPickerComponent extends BaseFormCustomComponent {
31
31
  }
32
32
  }
33
33
  colorPickerOpen(value) {
34
+ $('.hex-text input').attr('placeholder', 'Enter hex color code');
34
35
  // Whenever autoclose property is set to 'always', adding the onclick listener to the colorPicker container to close the picker.
35
36
  if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {
36
37
  const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`);
@@ -86,7 +87,7 @@ export class ColorPickerComponent extends BaseFormCustomComponent {
86
87
  provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
87
88
  provideAs(ColorPickerComponent, NG_VALIDATORS, true),
88
89
  provideAsWidgetRef(ColorPickerComponent)
89
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
90
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
90
91
  const _r1 = i0.ɵɵgetCurrentView();
91
92
  i0.ɵɵelementStart(0, "input", 1, 0);
92
93
  i0.ɵɵtwoWayListener("colorPickerChange", function ColorPickerComponent_Template_input_colorPickerChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -102,7 +103,7 @@ export class ColorPickerComponent extends BaseFormCustomComponent {
102
103
  i0.ɵɵproperty("cpPosition", "bottom")("cpCloseClickOutside", ctx.outsideclick)("disabled", ctx.readonly || ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
103
104
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
104
105
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(14, _c2));
105
- i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
106
+ i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
106
107
  i0.ɵɵadvance(3);
107
108
  i0.ɵɵstyleProp("background-color", ctx.datavalue);
108
109
  } }, dependencies: [i1.ColorPickerDirective, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.NgModel], encapsulation: 2 }); }
@@ -113,7 +114,7 @@ export class ColorPickerComponent extends BaseFormCustomComponent {
113
114
  provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
114
115
  provideAs(ColorPickerComponent, NG_VALIDATORS, true),
115
116
  provideAsWidgetRef(ColorPickerComponent)
116
- ], template: "<input class=\"form-control app-textbox\" aria-haspopup=\"true\" aria-expanded=\"false\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
117
+ ], template: "<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
117
118
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
118
119
  type: Inject,
119
120
  args: ['EXPLICIT_CONTEXT']
@@ -130,4 +131,4 @@ export class ColorPickerComponent extends BaseFormCustomComponent {
130
131
  args: [ColorPickerDirective]
131
132
  }] }); })();
132
133
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ColorPickerComponent, { className: "ColorPickerComponent", filePath: "color-picker.component.ts", lineNumber: 27 }); })();
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9jb2xvci1waWNrZXIvc3JjL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY29sb3ItcGlja2VyL3NyYy9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBaUIsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQUdyRCxNQUFNLFdBQVcsR0FBRyw2QkFBNkIsQ0FBQztBQUNsRCxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixTQUFTLEVBQUUsV0FBVztJQUN0QixXQUFXLEVBQUUsY0FBYztDQUM5QixDQUFDO0FBV0YsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHVCQUF1QjthQUN0RCxvQkFBZSxHQUFHLGFBQWEsRUFB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QTNDLFNBQVM7bUJBQUMsb0JBQW9COztrRkFqQnRCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kZWwsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29sb3JQaWNrZXJEaXJlY3RpdmV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuXG5pbXBvcnQge2FkZENsYXNzLCByZW1vdmVDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVVUT0NMT1NFX1RZUEUsIElXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vY29sb3ItcGlja2VyLnByb3BzJztcblxuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdpbnB1dC1ncm91cCBhcHAtY29sb3JwaWNrZXInO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tY29sb3JwaWNrZXInLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFMsXG4gICAgZGlzcGxheVR5cGU6ICdpbmxpbmUtYmxvY2snXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bUNvbG9yUGlja2VyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhDb2xvclBpY2tlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoQ29sb3JQaWNrZXJDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQ29sb3JQaWNrZXJDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IGFueTtcbiAgICBwdWJsaWMgdGFiaW5kZXg6IGFueTtcbiAgICBwdWJsaWMgc2hvcnRjdXRrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgb3V0c2lkZWNsaWNrOiBib29sZWFuO1xuICAgIHB1YmxpYyBhdXRvY2xvc2U6IHN0cmluZztcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuXG5cbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpIG5nTW9kZWw6IE5nTW9kZWw7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoQ29sb3JQaWNrZXJEaXJlY3RpdmUpIGNwRGlyZWN0aXZlOiBDb2xvclBpY2tlckRpcmVjdGl2ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIFRvIHJlbW92ZSBzcGFjZSBvY2N1cGllZCBieSBjb2xvcnBpY2tlciB3aGVuIGl0IGlzIGNsb3NlZFxuICAgIHB1YmxpYyBjb2xvclBpY2tlclRvZ2dsZUNoYW5nZShpc09wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgY29sb3JQaWNrZXJDb250YWluZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLmNvbG9yLXBpY2tlcmApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoY29sb3JQaWNrZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgICghaXNPcGVuKSA/IGFkZENsYXNzKGNvbG9yUGlja2VyQ29udGFpbmVyLCAnaGlkZGVuJykgOiByZW1vdmVDbGFzcyhjb2xvclBpY2tlckNvbnRhaW5lciwgJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29sb3JQaWNrZXJPcGVuKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gV2hlbmV2ZXIgYXV0b2Nsb3NlIHByb3BlcnR5IGlzIHNldCB0byAnYWx3YXlzJywgYWRkaW5nIHRoZSBvbmNsaWNrIGxpc3RlbmVyIHRvIHRoZSBjb2xvclBpY2tlciBjb250YWluZXIgdG8gY2xvc2UgdGhlIHBpY2tlci5cbiAgICAgICAgaWYgKHRoaXMuYXV0b2Nsb3NlID09PSBBVVRPQ0xPU0VfVFlQRS5BTFdBWVMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yUGlja2VyQ29udGFpbmVyID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5jb2xvci1waWNrZXJgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGNvbG9yUGlja2VyQ29udGFpbmVyLm9uY2xpY2sgPSAoKSA9PiB0aGlzLmNwRGlyZWN0aXZlLmNsb3NlRGlhbG9nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIG1laHRvZCBpcyB1c2VkIHRvIHNob3cvb3BlbiB0aGUgY29sb3JwaWNrZXIgcG9wdXAuXG4gICAgb3BlbigpIHtcbiAgICAgICAgdGhpcy5jcERpcmVjdGl2ZS5vcGVuRGlhbG9nKCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBtZWh0b2QgaXMgdXNlZCB0byBoaWRlL2Nsb3NlIHRoZSBjb2xvcnBpY2tlciBwb3B1cC5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5jcERpcmVjdGl2ZS5jbG9zZURpYWxvZygpO1xuICAgIH1cblxuXG4gICAgLy8gY2hhbmdlIGFuZCBibHVyIGV2ZW50cyBhcmUgYWRkZWQgZnJvbSB0aGUgdGVtcGxhdGVcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24sIGxvY2FsczogYW55KSB7XG4gICAgICAgIGlmIChldmVudE5hbWUgIT09ICdjaGFuZ2UnICYmIGV2ZW50TmFtZSAhPT0gJ2JsdXInKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudCh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCBjYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2UobmV3VmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsIHt0eXBlOiAnY2hhbmdlJ30sIHRoaXMubmdNb2RlbC52YWxpZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgIC8qIFdNUy0xODI2OSB8IFVwZGF0ZSBBbmd1bGFyIGFib3V0IHRoZSByZXF1aXJlZCBhdHRyIHZhbHVlIGNoYW5nZSAqL1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdkYXRhdmFsdWUnKSB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZShudik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2F1dG9jbG9zZScpIHtcbiAgICAgICAgICAgIHRoaXMub3V0c2lkZWNsaWNrID0gKG52ID09PSBBVVRPQ0xPU0VfVFlQRS5PVVRTSURFQ0xJQ0sgfHwgbnYgPT09IEFVVE9DTE9TRV9UWVBFLkFMV0FZUykgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxufVxuIiwiPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGFwcC10ZXh0Ym94XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICNpbnB1dFxuICAgICAgIGZvY3VzLXRhcmdldFxuICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50XCJcbiAgICAgICBbKGNvbG9yUGlja2VyKV09XCJkYXRhdmFsdWVcIlxuICAgICAgIChjb2xvclBpY2tlckNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KTtcIlxuICAgICAgIChjcFRvZ2dsZUNoYW5nZSk9XCJjb2xvclBpY2tlclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICBbY3BQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgW2NwQ2xvc2VDbGlja091dHNpZGVdPVwib3V0c2lkZWNsaWNrXCJcbiAgICAgICAoY29sb3JQaWNrZXJPcGVuKT1cImNvbG9yUGlja2VyT3BlbigkZXZlbnQpXCJcbiAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCJcbiAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgWyhuZ01vZGVsKV09XCJkYXRhdmFsdWVcIlxuICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpO1wiXG4gICAgICAgW25nTW9kZWxPcHRpb25zXT1cInt1cGRhdGVPbjogJ2NoYW5nZScsIHN0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAoYmx1cik9XCJpbnZva2VPblRvdWNoZWQoJGV2ZW50KVwiXG4gICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInNob3J0Y3V0a2V5XCI+XG48c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGNvbG9ycGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDxpIGNsYXNzPVwiY29sb3JlZC1ib3hcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGF2YWx1ZVwiPiZuYnNwOzwvaT5cbjwvc3Bhbj5cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9jb2xvci1waWNrZXIvc3JjL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY29sb3ItcGlja2VyL3NyYy9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFdEQsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBaUIsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQUduRCxNQUFNLFdBQVcsR0FBRyw2QkFBNkIsQ0FBQztBQUNsRCxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixTQUFTLEVBQUUsV0FBVztJQUN0QixXQUFXLEVBQUUsY0FBYztDQUM5QixDQUFDO0FBV0YsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHVCQUF1QjthQUN0RCxvQkFBZSxHQUFHLGFBQWEsRUFB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QyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDckIsV0FBVztrQkFBM0MsU0FBUzttQkFBQyxvQkFBb0I7O2tGQWxCdEIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdNb2RlbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb2xvclBpY2tlckRpcmVjdGl2ZX0gZnJvbSAnbmd4LWNvbG9yLXBpY2tlcic7XG5cbmltcG9ydCB7YWRkQ2xhc3MsIHJlbW92ZUNsYXNzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0FVVE9DTE9TRV9UWVBFLCBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7QmFzZUZvcm1DdXN0b21Db21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9jb2xvci1waWNrZXIucHJvcHMnO1xuXG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2lucHV0LWdyb3VwIGFwcC1jb2xvcnBpY2tlcic7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1jb2xvcnBpY2tlcicsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMUyxcbiAgICBkaXNwbGF5VHlwZTogJ2lubGluZS1ibG9jaydcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ29sb3JQaWNrZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKENvbG9yUGlja2VyQ29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhDb2xvclBpY2tlckNvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDb2xvclBpY2tlckNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1DdXN0b21Db21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYW55O1xuICAgIHB1YmxpYyB0YWJpbmRleDogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBvdXRzaWRlY2xpY2s6IGJvb2xlYW47XG4gICAgcHVibGljIGF1dG9jbG9zZTogc3RyaW5nO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuXG5cbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpIG5nTW9kZWw6IE5nTW9kZWw7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoQ29sb3JQaWNrZXJEaXJlY3RpdmUpIGNwRGlyZWN0aXZlOiBDb2xvclBpY2tlckRpcmVjdGl2ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIFRvIHJlbW92ZSBzcGFjZSBvY2N1cGllZCBieSBjb2xvcnBpY2tlciB3aGVuIGl0IGlzIGNsb3NlZFxuICAgIHB1YmxpYyBjb2xvclBpY2tlclRvZ2dsZUNoYW5nZShpc09wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgY29sb3JQaWNrZXJDb250YWluZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLmNvbG9yLXBpY2tlcmApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoY29sb3JQaWNrZXJDb250YWluZXIpIHtcbiAgICAgICAgICAgICghaXNPcGVuKSA/IGFkZENsYXNzKGNvbG9yUGlja2VyQ29udGFpbmVyLCAnaGlkZGVuJykgOiByZW1vdmVDbGFzcyhjb2xvclBpY2tlckNvbnRhaW5lciwgJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29sb3JQaWNrZXJPcGVuKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgJCgnLmhleC10ZXh0IGlucHV0JykuYXR0cigncGxhY2Vob2xkZXInLCAnRW50ZXIgaGV4IGNvbG9yIGNvZGUnKVxuICAgICAgICAvLyBXaGVuZXZlciBhdXRvY2xvc2UgcHJvcGVydHkgaXMgc2V0IHRvICdhbHdheXMnLCBhZGRpbmcgdGhlIG9uY2xpY2sgbGlzdGVuZXIgdG8gdGhlIGNvbG9yUGlja2VyIGNvbnRhaW5lciB0byBjbG9zZSB0aGUgcGlja2VyLlxuICAgICAgICBpZiAodGhpcy5hdXRvY2xvc2UgPT09IEFVVE9DTE9TRV9UWVBFLkFMV0FZUykge1xuICAgICAgICAgICAgY29uc3QgY29sb3JQaWNrZXJDb250YWluZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLmNvbG9yLXBpY2tlcmApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgY29sb3JQaWNrZXJDb250YWluZXIub25jbGljayA9ICgpID0+IHRoaXMuY3BEaXJlY3RpdmUuY2xvc2VEaWFsb2coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgbWVodG9kIGlzIHVzZWQgdG8gc2hvdy9vcGVuIHRoZSBjb2xvcnBpY2tlciBwb3B1cC5cbiAgICBvcGVuKCkge1xuICAgICAgICB0aGlzLmNwRGlyZWN0aXZlLm9wZW5EaWFsb2coKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG1laHRvZCBpcyB1c2VkIHRvIGhpZGUvY2xvc2UgdGhlIGNvbG9ycGlja2VyIHBvcHVwLlxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmNwRGlyZWN0aXZlLmNsb3NlRGlhbG9nKCk7XG4gICAgfVxuXG5cbiAgICAvLyBjaGFuZ2UgYW5kIGJsdXIgZXZlbnRzIGFyZSBhZGRlZCBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0gJ2NoYW5nZScgJiYgZXZlbnROYW1lICE9PSAnYmx1cicpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCBldmVudE5hbWUsIGNhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNoYW5nZShuZXdWYWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwge3R5cGU6ICdjaGFuZ2UnfSwgdGhpcy5uZ01vZGVsLnZhbGlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y6IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgLyogV01TLTE4MjY5IHwgVXBkYXRlIEFuZ3VsYXIgYWJvdXQgdGhlIHJlcXVpcmVkIGF0dHIgdmFsdWUgY2hhbmdlICovXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2RhdGF2YWx1ZScpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKG52KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnYXV0b2Nsb3NlJykge1xuICAgICAgICAgICAgdGhpcy5vdXRzaWRlY2xpY2sgPSAobnYgPT09IEFVVE9DTE9TRV9UWVBFLk9VVFNJREVDTElDSyB8fCBudiA9PT0gQVVUT0NMT1NFX1RZUEUuQUxXQVlTKSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG59XG4iLCI8aW5wdXQgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveFwiXG4gICAgICAgI2lucHV0XG4gICAgICAgZm9jdXMtdGFyZ2V0XG4gICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbFwiXG4gICAgICAgWyhjb2xvclBpY2tlcildPVwiZGF0YXZhbHVlXCJcbiAgICAgICAoY29sb3JQaWNrZXJDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudCk7XCJcbiAgICAgICAoY3BUb2dnbGVDaGFuZ2UpPVwiY29sb3JQaWNrZXJUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgW2NwUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgIFtjcENsb3NlQ2xpY2tPdXRzaWRlXT1cIm91dHNpZGVjbGlja1wiXG4gICAgICAgKGNvbG9yUGlja2VyT3Blbik9XCJjb2xvclBpY2tlck9wZW4oJGV2ZW50KVwiXG4gICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCBkaXNhYmxlZFwiXG4gICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgIFsobmdNb2RlbCldPVwiZGF0YXZhbHVlXCJcbiAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KTtcIlxuICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7dXBkYXRlT246ICdjaGFuZ2UnLCBzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudClcIlxuICAgICAgIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiPlxuPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBjb2xvcnBpY2tlci1jb250YWluZXJcIj5cbiAgICA8aSBjbGFzcz1cImNvbG9yZWQtYm94XCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhdmFsdWVcIj4mbmJzcDs8L2k+XG48L3NwYW4+XG4iXX0=
@@ -6,6 +6,7 @@ export const colorPickerProps = new Map([
6
6
  ['datavalue', PROP_STRING],
7
7
  ['disabled', PROP_BOOLEAN],
8
8
  ['hint', PROP_STRING],
9
+ ['arialabel', PROP_STRING],
9
10
  ['name', PROP_STRING],
10
11
  ['placeholder', { value: 'Select Color', ...PROP_STRING }],
11
12
  ['readonly', PROP_BOOLEAN],
@@ -18,4 +19,4 @@ export const registerProps = () => {
18
19
  register('wm-colorpicker', colorPickerProps);
19
20
  registerFormWidget(FormWidgetType.COLORPICKER, new Map(colorPickerProps));
20
21
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NvbG9yLXBpY2tlci9zcmMvY29sb3ItcGlja2VyLnByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUNuQztJQUNJLENBQUMsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0lBQ3RELENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUN0QixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDMUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFDckIsQ0FBQyxhQUFhLEVBQUUsRUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7SUFDeEQsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO0lBQzFCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztJQUMxQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7SUFDNUIsQ0FBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7SUFDeEMsQ0FBQyxVQUFVLEVBQUUsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7Q0FDM0MsQ0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtJQUM5QixRQUFRLENBQ0osZ0JBQWdCLEVBQ2hCLGdCQUFnQixDQUNuQixDQUFDO0lBQ0Ysa0JBQWtCLENBQ2QsY0FBYyxDQUFDLFdBQVcsRUFDMUIsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FDNUIsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciwgcmVnaXN0ZXJGb3JtV2lkZ2V0IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJ0B3bS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGNvbG9yUGlja2VyUHJvcHMgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydhdXRvY2xvc2UnLCB7dmFsdWU6ICdvdXRzaWRlQ2xpY2snLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICBbJ2NsYXNzJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2RhdGF2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydkaXNhYmxlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgIFsnaGludCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ3BsYWNlaG9sZGVyJywge3ZhbHVlOiAnU2VsZWN0IENvbG9yJywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgWydyZWFkb25seScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgIFsncmVxdWlyZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICBbJ3Nob3J0Y3V0a2V5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ3Nob3cnLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICBbJ3RhYmluZGV4Jywge3ZhbHVlOiAwLCAuLi5QUk9QX05VTUJFUn1dXG4gICAgXVxuKTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgcmVnaXN0ZXIoXG4gICAgICAgICd3bS1jb2xvcnBpY2tlcicsXG4gICAgICAgIGNvbG9yUGlja2VyUHJvcHNcbiAgICApO1xuICAgIHJlZ2lzdGVyRm9ybVdpZGdldChcbiAgICAgICAgRm9ybVdpZGdldFR5cGUuQ09MT1JQSUNLRVIsXG4gICAgICAgIG5ldyBNYXAoY29sb3JQaWNrZXJQcm9wcylcbiAgICApO1xufTtcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLnByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NvbG9yLXBpY2tlci9zcmMvY29sb3ItcGlja2VyLnByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUNuQztJQUNJLENBQUMsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0lBQ3RELENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUN0QixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDMUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNyQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDMUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3JCLENBQUMsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0lBQ3hELENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztJQUMxQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7SUFDMUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO0lBQzVCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO0lBQ3hDLENBQUMsVUFBVSxFQUFFLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO0NBQzNDLENBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDOUIsUUFBUSxDQUNKLGdCQUFnQixFQUNoQixnQkFBZ0IsQ0FDbkIsQ0FBQztJQUNGLGtCQUFrQixDQUNkLGNBQWMsQ0FBQyxXQUFXLEVBQzFCLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQzVCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BST1BfQk9PTEVBTiwgUFJPUF9OVU1CRVIsIFBST1BfU1RSSU5HLCByZWdpc3RlciwgcmVnaXN0ZXJGb3JtV2lkZ2V0fSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7Rm9ybVdpZGdldFR5cGV9IGZyb20gJ0B3bS9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGNvbG9yUGlja2VyUHJvcHMgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydhdXRvY2xvc2UnLCB7dmFsdWU6ICdvdXRzaWRlQ2xpY2snLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICBbJ2NsYXNzJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBbJ2RhdGF2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydkaXNhYmxlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgIFsnaGludCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydhcmlhbGFiZWwnLCBQUk9QX1NUUklOR10sXG4gICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydwbGFjZWhvbGRlcicsIHt2YWx1ZTogJ1NlbGVjdCBDb2xvcicsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgIFsncmVhZG9ubHknLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICBbJ3JlcXVpcmVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgWydzaG9ydGN1dGtleScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgWyd0YWJpbmRleCcsIHt2YWx1ZTogMCwgLi4uUFJPUF9OVU1CRVJ9XVxuICAgIF1cbik7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlclByb3BzID0gKCkgPT4ge1xuICAgIHJlZ2lzdGVyKFxuICAgICAgICAnd20tY29sb3JwaWNrZXInLFxuICAgICAgICBjb2xvclBpY2tlclByb3BzXG4gICAgKTtcbiAgICByZWdpc3RlckZvcm1XaWRnZXQoXG4gICAgICAgIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSLFxuICAgICAgICBuZXcgTWFwKGNvbG9yUGlja2VyUHJvcHMpXG4gICAgKTtcbn07XG4iXX0=
@@ -15,6 +15,7 @@ const colorPickerProps = new Map([
15
15
  ['datavalue', PROP_STRING],
16
16
  ['disabled', PROP_BOOLEAN],
17
17
  ['hint', PROP_STRING],
18
+ ['arialabel', PROP_STRING],
18
19
  ['name', PROP_STRING],
19
20
  ['placeholder', { value: 'Select Color', ...PROP_STRING }],
20
21
  ['readonly', PROP_BOOLEAN],
@@ -51,6 +52,7 @@ class ColorPickerComponent extends BaseFormCustomComponent {
51
52
  }
52
53
  }
53
54
  colorPickerOpen(value) {
55
+ $('.hex-text input').attr('placeholder', 'Enter hex color code');
54
56
  // Whenever autoclose property is set to 'always', adding the onclick listener to the colorPicker container to close the picker.
55
57
  if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {
56
58
  const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`);
@@ -106,7 +108,7 @@ class ColorPickerComponent extends BaseFormCustomComponent {
106
108
  provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
107
109
  provideAs(ColorPickerComponent, NG_VALIDATORS, true),
108
110
  provideAsWidgetRef(ColorPickerComponent)
109
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
111
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 15, consts: [["input", ""], ["aria-haspopup", "true", "focus-target", "", 1, "form-control", "app-textbox", 3, "colorPickerChange", "cpToggleChange", "colorPickerOpen", "ngModelChange", "blur", "colorPicker", "cpPosition", "cpCloseClickOutside", "disabled", "required", "tabindex", "ngModel", "ngModelOptions"], [1, "input-group-addon", "colorpicker-container"], [1, "colored-box"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {
110
112
  const _r1 = i0.ɵɵgetCurrentView();
111
113
  i0.ɵɵelementStart(0, "input", 1, 0);
112
114
  i0.ɵɵtwoWayListener("colorPickerChange", function ColorPickerComponent_Template_input_colorPickerChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
@@ -122,7 +124,7 @@ class ColorPickerComponent extends BaseFormCustomComponent {
122
124
  i0.ɵɵproperty("cpPosition", "bottom")("cpCloseClickOutside", ctx.outsideclick)("disabled", ctx.readonly || ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
123
125
  i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
124
126
  i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(14, _c2));
125
- i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
127
+ i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey);
126
128
  i0.ɵɵadvance(3);
127
129
  i0.ɵɵstyleProp("background-color", ctx.datavalue);
128
130
  } }, dependencies: [i1.ColorPickerDirective, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.NgModel], encapsulation: 2 }); }
@@ -133,7 +135,7 @@ class ColorPickerComponent extends BaseFormCustomComponent {
133
135
  provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
134
136
  provideAs(ColorPickerComponent, NG_VALIDATORS, true),
135
137
  provideAsWidgetRef(ColorPickerComponent)
136
- ], template: "<input class=\"form-control app-textbox\" aria-haspopup=\"true\" aria-expanded=\"false\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
138
+ ], template: "<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\">&nbsp;</i>\n</span>\n" }]
137
139
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
138
140
  type: Inject,
139
141
  args: ['EXPLICIT_CONTEXT']