@wavemaker/app-ng-runtime 11.4.1-next.141653 → 11.4.1-next.141654

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +12 -23
  2. app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -4
  3. app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -4
  4. app-ng-runtime/components/advanced/carousel/esm2020/carousel-template/carousel-template.directive.mjs +6 -11
  5. app-ng-runtime/components/advanced/carousel/esm2020/carousel.directive.mjs +6 -11
  6. app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs +9 -20
  7. app-ng-runtime/components/advanced/carousel/fesm2015/index.mjs.map +1 -1
  8. app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs +9 -16
  9. app-ng-runtime/components/advanced/carousel/fesm2020/index.mjs.map +1 -1
  10. app-ng-runtime/components/advanced/login/bundles/index.umd.js +21 -27
  11. app-ng-runtime/components/advanced/login/esm2020/login.component.mjs +8 -13
  12. app-ng-runtime/components/advanced/login/fesm2015/index.mjs +7 -13
  13. app-ng-runtime/components/advanced/login/fesm2015/index.mjs.map +1 -1
  14. app-ng-runtime/components/advanced/login/fesm2020/index.mjs +7 -11
  15. app-ng-runtime/components/advanced/login/fesm2020/index.mjs.map +1 -1
  16. app-ng-runtime/components/advanced/login/login.component.d.ts +2 -4
  17. app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +8 -14
  18. app-ng-runtime/components/advanced/marquee/esm2020/marquee.directive.mjs +6 -11
  19. app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs +5 -11
  20. app-ng-runtime/components/advanced/marquee/fesm2015/index.mjs.map +1 -1
  21. app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs +5 -9
  22. app-ng-runtime/components/advanced/marquee/fesm2020/index.mjs.map +1 -1
  23. app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -4
  24. app-ng-runtime/components/base/bundles/index.umd.js +31 -61
  25. app-ng-runtime/components/base/esm2020/widgets/common/base/base-container.component.mjs +4 -6
  26. app-ng-runtime/components/base/esm2020/widgets/common/base/base.component.mjs +5 -6
  27. app-ng-runtime/components/base/esm2020/widgets/common/base/dataset-aware-nav.component.mjs +3 -3
  28. app-ng-runtime/components/base/esm2020/widgets/common/container/container.directive.mjs +7 -11
  29. app-ng-runtime/components/base/esm2020/widgets/common/item-template/item-template.directive.mjs +7 -10
  30. app-ng-runtime/components/base/esm2020/widgets/common/lazy-load/lazy-load.directive.mjs +6 -10
  31. app-ng-runtime/components/base/esm2020/widgets/common/message/message.component.mjs +7 -11
  32. app-ng-runtime/components/base/esm2020/widgets/common/partial/partial.directive.mjs +7 -10
  33. app-ng-runtime/components/base/esm2020/widgets/common/repeat-template/repeat-template.directive.mjs +6 -11
  34. app-ng-runtime/components/base/fesm2015/index.mjs +32 -62
  35. app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
  36. app-ng-runtime/components/base/fesm2020/index.mjs +32 -50
  37. app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
  38. app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -2
  39. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +2 -3
  40. app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -2
  41. app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -4
  42. app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -4
  43. app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -4
  44. app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -4
  45. app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +3 -4
  46. app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -4
  47. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +3 -4
  48. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -4
  49. app-ng-runtime/components/basic/default/bundles/index.umd.js +247 -290
  50. app-ng-runtime/components/basic/default/esm2020/anchor/anchor.component.mjs +7 -10
  51. app-ng-runtime/components/basic/default/esm2020/audio/audio.component.mjs +8 -13
  52. app-ng-runtime/components/basic/default/esm2020/html/html.directive.mjs +7 -11
  53. app-ng-runtime/components/basic/default/esm2020/icon/icon.component.mjs +9 -14
  54. app-ng-runtime/components/basic/default/esm2020/iframe/iframe.component.mjs +9 -13
  55. app-ng-runtime/components/basic/default/esm2020/label/label.directive.mjs +7 -11
  56. app-ng-runtime/components/basic/default/esm2020/picture/picture.directive.mjs +7 -11
  57. app-ng-runtime/components/basic/default/esm2020/spinner/spinner.component.mjs +9 -13
  58. app-ng-runtime/components/basic/default/esm2020/video/video.component.mjs +9 -13
  59. app-ng-runtime/components/basic/default/fesm2015/index.mjs +46 -89
  60. app-ng-runtime/components/basic/default/fesm2015/index.mjs.map +1 -1
  61. app-ng-runtime/components/basic/default/fesm2020/index.mjs +46 -73
  62. app-ng-runtime/components/basic/default/fesm2020/index.mjs.map +1 -1
  63. app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -4
  64. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -4
  65. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -4
  66. app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -4
  67. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -4
  68. app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -4
  69. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -4
  70. app-ng-runtime/components/basic/progress/bundles/index.umd.js +23 -32
  71. app-ng-runtime/components/basic/progress/esm2020/progress-bar/progress-bar.component.mjs +8 -12
  72. app-ng-runtime/components/basic/progress/esm2020/progress-circle/progress-circle.component.mjs +8 -13
  73. app-ng-runtime/components/basic/progress/fesm2015/index.mjs +12 -21
  74. app-ng-runtime/components/basic/progress/fesm2015/index.mjs.map +1 -1
  75. app-ng-runtime/components/basic/progress/fesm2020/index.mjs +12 -19
  76. app-ng-runtime/components/basic/progress/fesm2020/index.mjs.map +1 -1
  77. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -4
  78. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -4
  79. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +14 -20
  80. app-ng-runtime/components/basic/rich-text-editor/esm2020/rich-text-editor.component.mjs +9 -13
  81. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs +7 -13
  82. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.mjs.map +1 -1
  83. app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs +7 -11
  84. app-ng-runtime/components/basic/rich-text-editor/fesm2020/index.mjs.map +1 -1
  85. app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -4
  86. app-ng-runtime/components/basic/search/bundles/index.umd.js +3 -6
  87. app-ng-runtime/components/basic/search/esm2020/search.component.mjs +6 -9
  88. app-ng-runtime/components/basic/search/fesm2015/index.mjs +4 -7
  89. app-ng-runtime/components/basic/search/fesm2015/index.mjs.map +1 -1
  90. app-ng-runtime/components/basic/search/fesm2020/index.mjs +4 -7
  91. app-ng-runtime/components/basic/search/fesm2020/index.mjs.map +1 -1
  92. app-ng-runtime/components/basic/search/search.component.d.ts +3 -4
  93. app-ng-runtime/components/chart/bundles/index.umd.js +4 -9
  94. app-ng-runtime/components/chart/chart.component.d.ts +3 -4
  95. app-ng-runtime/components/chart/esm2020/chart.component.mjs +7 -10
  96. app-ng-runtime/components/chart/fesm2015/index.mjs +5 -10
  97. app-ng-runtime/components/chart/fesm2015/index.mjs.map +1 -1
  98. app-ng-runtime/components/chart/fesm2020/index.mjs +5 -8
  99. app-ng-runtime/components/chart/fesm2020/index.mjs.map +1 -1
  100. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -4
  101. app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +3 -4
  102. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +56 -66
  103. app-ng-runtime/components/containers/accordion/esm2020/accordion-pane/accordion-pane.component.mjs +10 -14
  104. app-ng-runtime/components/containers/accordion/esm2020/accordion.directive.mjs +7 -10
  105. app-ng-runtime/components/containers/accordion/fesm2015/index.mjs +12 -22
  106. app-ng-runtime/components/containers/accordion/fesm2015/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/accordion/fesm2020/index.mjs +12 -18
  108. app-ng-runtime/components/containers/accordion/fesm2020/index.mjs.map +1 -1
  109. app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +12 -25
  110. app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-column/layout-grid-column.directive.mjs +7 -10
  111. app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid-row/layout-grid-row.directive.mjs +6 -11
  112. app-ng-runtime/components/containers/layout-grid/esm2020/layout-grid.directive.mjs +6 -11
  113. app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs +13 -26
  114. app-ng-runtime/components/containers/layout-grid/fesm2015/index.mjs.map +1 -1
  115. app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs +13 -22
  116. app-ng-runtime/components/containers/layout-grid/fesm2020/index.mjs.map +1 -1
  117. app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +3 -4
  118. app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -4
  119. app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -4
  120. app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +12 -23
  121. app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout-item/linear-layout-item.directive.mjs +6 -11
  122. app-ng-runtime/components/containers/linear-layout/esm2020/linear-layout.directive.mjs +6 -11
  123. app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs +9 -20
  124. app-ng-runtime/components/containers/linear-layout/fesm2015/index.mjs.map +1 -1
  125. app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs +9 -16
  126. app-ng-runtime/components/containers/linear-layout/fesm2020/index.mjs.map +1 -1
  127. app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -4
  128. app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -4
  129. app-ng-runtime/components/containers/panel/bundles/index.umd.js +65 -71
  130. app-ng-runtime/components/containers/panel/esm2020/panel.component.mjs +12 -16
  131. app-ng-runtime/components/containers/panel/fesm2015/index.mjs +10 -16
  132. app-ng-runtime/components/containers/panel/fesm2015/index.mjs.map +1 -1
  133. app-ng-runtime/components/containers/panel/fesm2020/index.mjs +10 -14
  134. app-ng-runtime/components/containers/panel/fesm2020/index.mjs.map +1 -1
  135. app-ng-runtime/components/containers/panel/panel.component.d.ts +2 -4
  136. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +57 -63
  137. app-ng-runtime/components/containers/tabs/esm2020/tab-pane/tab-pane.component.mjs +8 -12
  138. app-ng-runtime/components/containers/tabs/esm2020/tabs.component.mjs +7 -10
  139. app-ng-runtime/components/containers/tabs/fesm2015/index.mjs +12 -18
  140. app-ng-runtime/components/containers/tabs/fesm2015/index.mjs.map +1 -1
  141. app-ng-runtime/components/containers/tabs/fesm2020/index.mjs +12 -18
  142. app-ng-runtime/components/containers/tabs/fesm2020/index.mjs.map +1 -1
  143. app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -4
  144. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +3 -4
  145. app-ng-runtime/components/containers/tile/bundles/index.umd.js +8 -14
  146. app-ng-runtime/components/containers/tile/esm2020/tile.directive.mjs +6 -11
  147. app-ng-runtime/components/containers/tile/fesm2015/index.mjs +5 -11
  148. app-ng-runtime/components/containers/tile/fesm2015/index.mjs.map +1 -1
  149. app-ng-runtime/components/containers/tile/fesm2020/index.mjs +5 -9
  150. app-ng-runtime/components/containers/tile/fesm2020/index.mjs.map +1 -1
  151. app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -4
  152. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +48 -57
  153. app-ng-runtime/components/containers/wizard/esm2020/wizard-step/wizard-step.directive.mjs +5 -10
  154. app-ng-runtime/components/containers/wizard/esm2020/wizard.component.mjs +10 -14
  155. app-ng-runtime/components/containers/wizard/fesm2015/index.mjs +11 -20
  156. app-ng-runtime/components/containers/wizard/fesm2015/index.mjs.map +1 -1
  157. app-ng-runtime/components/containers/wizard/fesm2020/index.mjs +11 -18
  158. app-ng-runtime/components/containers/wizard/fesm2020/index.mjs.map +1 -1
  159. app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -4
  160. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -4
  161. app-ng-runtime/components/data/card/bundles/index.umd.js +83 -106
  162. app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -4
  163. app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -4
  164. app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -4
  165. app-ng-runtime/components/data/card/card.component.d.ts +2 -4
  166. app-ng-runtime/components/data/card/esm2020/card-actions/card-actions.directive.mjs +6 -11
  167. app-ng-runtime/components/data/card/esm2020/card-content/card-content.component.mjs +6 -11
  168. app-ng-runtime/components/data/card/esm2020/card-footer/card-footer.directive.mjs +6 -11
  169. app-ng-runtime/components/data/card/esm2020/card.component.mjs +12 -18
  170. app-ng-runtime/components/data/card/fesm2015/index.mjs +23 -46
  171. app-ng-runtime/components/data/card/fesm2015/index.mjs.map +1 -1
  172. app-ng-runtime/components/data/card/fesm2020/index.mjs +23 -38
  173. app-ng-runtime/components/data/card/fesm2020/index.mjs.map +1 -1
  174. app-ng-runtime/components/data/form/bundles/index.umd.js +128 -137
  175. app-ng-runtime/components/data/form/esm2020/form-action/form-action.directive.mjs +4 -9
  176. app-ng-runtime/components/data/form/esm2020/form-field/form-field.directive.mjs +5 -8
  177. app-ng-runtime/components/data/form/esm2020/form.component.mjs +5 -8
  178. app-ng-runtime/components/data/form/fesm2015/index.mjs +20 -29
  179. app-ng-runtime/components/data/form/fesm2015/index.mjs.map +1 -1
  180. app-ng-runtime/components/data/form/fesm2020/index.mjs +20 -29
  181. app-ng-runtime/components/data/form/fesm2020/index.mjs.map +1 -1
  182. app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -4
  183. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +3 -4
  184. app-ng-runtime/components/data/form/form.component.d.ts +3 -4
  185. app-ng-runtime/components/data/list/bundles/index.umd.js +4 -7
  186. app-ng-runtime/components/data/list/esm2020/list.component.mjs +7 -10
  187. app-ng-runtime/components/data/list/fesm2015/index.mjs +4 -7
  188. app-ng-runtime/components/data/list/fesm2015/index.mjs.map +1 -1
  189. app-ng-runtime/components/data/list/fesm2020/index.mjs +4 -7
  190. app-ng-runtime/components/data/list/fesm2020/index.mjs.map +1 -1
  191. app-ng-runtime/components/data/list/list.component.d.ts +3 -4
  192. app-ng-runtime/components/data/live-table/bundles/index.umd.js +3 -6
  193. app-ng-runtime/components/data/live-table/esm2020/live-table.component.mjs +6 -9
  194. app-ng-runtime/components/data/live-table/fesm2015/index.mjs +4 -7
  195. app-ng-runtime/components/data/live-table/fesm2015/index.mjs.map +1 -1
  196. app-ng-runtime/components/data/live-table/fesm2020/index.mjs +4 -7
  197. app-ng-runtime/components/data/live-table/fesm2020/index.mjs.map +1 -1
  198. app-ng-runtime/components/data/live-table/live-table.component.d.ts +3 -4
  199. app-ng-runtime/components/data/pagination/bundles/index.umd.js +30 -34
  200. app-ng-runtime/components/data/pagination/esm2020/pagination.component.mjs +10 -14
  201. app-ng-runtime/components/data/pagination/fesm2015/index.mjs +8 -12
  202. app-ng-runtime/components/data/pagination/fesm2015/index.mjs.map +1 -1
  203. app-ng-runtime/components/data/pagination/fesm2020/index.mjs +8 -12
  204. app-ng-runtime/components/data/pagination/fesm2020/index.mjs.map +1 -1
  205. app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -4
  206. app-ng-runtime/components/data/table/bundles/index.umd.js +19 -37
  207. app-ng-runtime/components/data/table/esm2020/table-action/table-action.directive.mjs +4 -9
  208. app-ng-runtime/components/data/table/esm2020/table-column/table-column.directive.mjs +5 -8
  209. app-ng-runtime/components/data/table/esm2020/table-column-group/table-column-group.directive.mjs +4 -9
  210. app-ng-runtime/components/data/table/esm2020/table-row/table-row.directive.mjs +4 -9
  211. app-ng-runtime/components/data/table/esm2020/table-row-action/table-row-action.directive.mjs +4 -9
  212. app-ng-runtime/components/data/table/esm2020/table.component.mjs +6 -9
  213. app-ng-runtime/components/data/table/fesm2015/index.mjs +19 -37
  214. app-ng-runtime/components/data/table/fesm2015/index.mjs.map +1 -1
  215. app-ng-runtime/components/data/table/fesm2020/index.mjs +19 -37
  216. app-ng-runtime/components/data/table/fesm2020/index.mjs.map +1 -1
  217. app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -4
  218. app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +3 -4
  219. app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -4
  220. app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -4
  221. app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -4
  222. app-ng-runtime/components/data/table/table.component.d.ts +3 -4
  223. app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -4
  224. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +40 -46
  225. app-ng-runtime/components/dialogs/alert-dialog/esm2020/alert-dialog.component.mjs +9 -15
  226. app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs +8 -14
  227. app-ng-runtime/components/dialogs/alert-dialog/fesm2015/index.mjs.map +1 -1
  228. app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs +8 -14
  229. app-ng-runtime/components/dialogs/alert-dialog/fesm2020/index.mjs.map +1 -1
  230. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +16 -22
  231. app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -4
  232. app-ng-runtime/components/dialogs/confirm-dialog/esm2020/confirm-dialog.component.mjs +8 -14
  233. app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs +7 -13
  234. app-ng-runtime/components/dialogs/confirm-dialog/fesm2015/index.mjs.map +1 -1
  235. app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs +7 -13
  236. app-ng-runtime/components/dialogs/confirm-dialog/fesm2020/index.mjs.map +1 -1
  237. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -2
  238. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +25 -31
  239. app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -4
  240. app-ng-runtime/components/dialogs/default/esm2020/base-dialog.mjs +7 -8
  241. app-ng-runtime/components/dialogs/default/esm2020/dialog-footer/dialog-footer.directive.mjs +6 -11
  242. app-ng-runtime/components/dialogs/default/fesm2015/index.mjs +11 -17
  243. app-ng-runtime/components/dialogs/default/fesm2015/index.mjs.map +1 -1
  244. app-ng-runtime/components/dialogs/default/fesm2020/index.mjs +11 -15
  245. app-ng-runtime/components/dialogs/default/fesm2020/index.mjs.map +1 -1
  246. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +17 -23
  247. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -4
  248. app-ng-runtime/components/dialogs/design-dialog/esm2020/dialog.component.mjs +8 -14
  249. app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs +7 -13
  250. app-ng-runtime/components/dialogs/design-dialog/fesm2015/index.mjs.map +1 -1
  251. app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs +7 -13
  252. app-ng-runtime/components/dialogs/design-dialog/fesm2020/index.mjs.map +1 -1
  253. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +24 -30
  254. app-ng-runtime/components/dialogs/iframe-dialog/esm2020/iframe-dialog.component.mjs +10 -16
  255. app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs +9 -15
  256. app-ng-runtime/components/dialogs/iframe-dialog/fesm2015/index.mjs.map +1 -1
  257. app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs +9 -15
  258. app-ng-runtime/components/dialogs/iframe-dialog/fesm2020/index.mjs.map +1 -1
  259. app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -4
  260. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +3 -8
  261. app-ng-runtime/components/dialogs/partial-dialog/esm2020/partial-dialog.component.mjs +5 -10
  262. app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs +4 -9
  263. app-ng-runtime/components/dialogs/partial-dialog/fesm2015/index.mjs.map +1 -1
  264. app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs +4 -9
  265. app-ng-runtime/components/dialogs/partial-dialog/fesm2020/index.mjs.map +1 -1
  266. app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +3 -4
  267. app-ng-runtime/components/input/calendar/bundles/index.umd.js +5 -10
  268. app-ng-runtime/components/input/calendar/calendar.component.d.ts +3 -4
  269. app-ng-runtime/components/input/calendar/esm2020/calendar.component.mjs +8 -11
  270. app-ng-runtime/components/input/calendar/fesm2015/index.mjs +6 -11
  271. app-ng-runtime/components/input/calendar/fesm2015/index.mjs.map +1 -1
  272. app-ng-runtime/components/input/calendar/fesm2020/index.mjs +6 -9
  273. app-ng-runtime/components/input/calendar/fesm2020/index.mjs.map +1 -1
  274. app-ng-runtime/components/input/chips/bundles/index.umd.js +87 -93
  275. app-ng-runtime/components/input/chips/chips.component.d.ts +2 -4
  276. app-ng-runtime/components/input/chips/esm2020/chips.component.mjs +9 -15
  277. app-ng-runtime/components/input/chips/fesm2015/index.mjs +8 -14
  278. app-ng-runtime/components/input/chips/fesm2015/index.mjs.map +1 -1
  279. app-ng-runtime/components/input/chips/fesm2020/index.mjs +8 -14
  280. app-ng-runtime/components/input/chips/fesm2020/index.mjs.map +1 -1
  281. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +22 -28
  282. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -4
  283. app-ng-runtime/components/input/color-picker/esm2020/color-picker.component.mjs +10 -14
  284. app-ng-runtime/components/input/color-picker/fesm2015/index.mjs +8 -14
  285. app-ng-runtime/components/input/color-picker/fesm2015/index.mjs.map +1 -1
  286. app-ng-runtime/components/input/color-picker/fesm2020/index.mjs +8 -12
  287. app-ng-runtime/components/input/color-picker/fesm2020/index.mjs.map +1 -1
  288. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -9
  289. app-ng-runtime/components/input/currency/currency.component.d.ts +3 -4
  290. app-ng-runtime/components/input/currency/esm2020/currency.component.mjs +7 -10
  291. app-ng-runtime/components/input/currency/fesm2015/index.mjs +5 -10
  292. app-ng-runtime/components/input/currency/fesm2015/index.mjs.map +1 -1
  293. app-ng-runtime/components/input/currency/fesm2020/index.mjs +5 -8
  294. app-ng-runtime/components/input/currency/fesm2020/index.mjs.map +1 -1
  295. app-ng-runtime/components/input/default/base-form.component.d.ts +1 -2
  296. app-ng-runtime/components/input/default/bundles/index.umd.js +575 -648
  297. app-ng-runtime/components/input/default/button/button.component.d.ts +2 -4
  298. app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -4
  299. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +2 -4
  300. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -4
  301. app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -4
  302. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -3
  303. app-ng-runtime/components/input/default/esm2020/base-form.component.mjs +6 -7
  304. app-ng-runtime/components/input/default/esm2020/button/button.component.mjs +9 -14
  305. app-ng-runtime/components/input/default/esm2020/button-group/button-group.directive.mjs +6 -11
  306. app-ng-runtime/components/input/default/esm2020/checkbox/checkbox.component.mjs +9 -13
  307. app-ng-runtime/components/input/default/esm2020/checkboxset/checkboxset.component.mjs +10 -14
  308. app-ng-runtime/components/input/default/esm2020/composite/composite.directive.mjs +7 -11
  309. app-ng-runtime/components/input/default/esm2020/dataset-aware-form.component.mjs +6 -7
  310. app-ng-runtime/components/input/default/esm2020/number/number.component.mjs +7 -10
  311. app-ng-runtime/components/input/default/esm2020/radioset/radioset.component.mjs +10 -14
  312. app-ng-runtime/components/input/default/esm2020/select/select.component.mjs +11 -15
  313. app-ng-runtime/components/input/default/esm2020/switch/switch.component.mjs +10 -14
  314. app-ng-runtime/components/input/default/esm2020/text/base/base-input.mjs +6 -7
  315. app-ng-runtime/components/input/default/esm2020/text/calendar/input-calendar.component.mjs +8 -13
  316. app-ng-runtime/components/input/default/esm2020/text/color/input-color.component.mjs +8 -13
  317. app-ng-runtime/components/input/default/esm2020/text/email/input-email.component.mjs +8 -13
  318. app-ng-runtime/components/input/default/esm2020/text/locale/number-locale.mjs +3 -3
  319. app-ng-runtime/components/input/default/esm2020/text/number/input-number.component.mjs +9 -14
  320. app-ng-runtime/components/input/default/esm2020/text/text/input-text.component.mjs +9 -14
  321. app-ng-runtime/components/input/default/esm2020/textarea/textarea.component.mjs +9 -14
  322. app-ng-runtime/components/input/default/fesm2015/index.mjs +94 -167
  323. app-ng-runtime/components/input/default/fesm2015/index.mjs.map +1 -1
  324. app-ng-runtime/components/input/default/fesm2020/index.mjs +94 -139
  325. app-ng-runtime/components/input/default/fesm2020/index.mjs.map +1 -1
  326. app-ng-runtime/components/input/default/number/number.component.d.ts +3 -4
  327. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -4
  328. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
  329. app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -4
  330. app-ng-runtime/components/input/default/text/base/base-input.d.ts +1 -2
  331. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -4
  332. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -4
  333. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -4
  334. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +2 -2
  335. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -4
  336. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -4
  337. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -4
  338. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -2
  339. app-ng-runtime/components/input/epoch/bundles/index.umd.js +12 -21
  340. app-ng-runtime/components/input/epoch/date/date.component.d.ts +3 -4
  341. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +3 -4
  342. app-ng-runtime/components/input/epoch/esm2020/base-date-time.component.mjs +5 -6
  343. app-ng-runtime/components/input/epoch/esm2020/date/date.component.mjs +6 -9
  344. app-ng-runtime/components/input/epoch/esm2020/date-time/date-time.component.mjs +6 -9
  345. app-ng-runtime/components/input/epoch/esm2020/time/time.component.mjs +6 -9
  346. app-ng-runtime/components/input/epoch/fesm2015/index.mjs +13 -22
  347. app-ng-runtime/components/input/epoch/fesm2015/index.mjs.map +1 -1
  348. app-ng-runtime/components/input/epoch/fesm2020/index.mjs +13 -22
  349. app-ng-runtime/components/input/epoch/fesm2020/index.mjs.map +1 -1
  350. app-ng-runtime/components/input/epoch/time/time.component.d.ts +3 -4
  351. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +3 -6
  352. app-ng-runtime/components/input/file-upload/esm2020/file-upload.component.mjs +6 -9
  353. app-ng-runtime/components/input/file-upload/fesm2015/index.mjs +4 -7
  354. app-ng-runtime/components/input/file-upload/fesm2015/index.mjs.map +1 -1
  355. app-ng-runtime/components/input/file-upload/fesm2020/index.mjs +4 -7
  356. app-ng-runtime/components/input/file-upload/fesm2020/index.mjs.map +1 -1
  357. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +3 -4
  358. app-ng-runtime/components/input/rating/bundles/index.umd.js +45 -51
  359. app-ng-runtime/components/input/rating/esm2020/rating.component.mjs +11 -15
  360. app-ng-runtime/components/input/rating/fesm2015/index.mjs +9 -15
  361. app-ng-runtime/components/input/rating/fesm2015/index.mjs.map +1 -1
  362. app-ng-runtime/components/input/rating/fesm2020/index.mjs +9 -13
  363. app-ng-runtime/components/input/rating/fesm2020/index.mjs.map +1 -1
  364. app-ng-runtime/components/input/rating/rating.component.d.ts +2 -4
  365. app-ng-runtime/components/input/slider/bundles/index.umd.js +37 -43
  366. app-ng-runtime/components/input/slider/esm2020/slider.component.mjs +10 -15
  367. app-ng-runtime/components/input/slider/fesm2015/index.mjs +9 -15
  368. app-ng-runtime/components/input/slider/fesm2015/index.mjs.map +1 -1
  369. app-ng-runtime/components/input/slider/fesm2020/index.mjs +9 -13
  370. app-ng-runtime/components/input/slider/fesm2020/index.mjs.map +1 -1
  371. app-ng-runtime/components/input/slider/slider.component.d.ts +2 -4
  372. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +13 -25
  373. app-ng-runtime/components/navigation/menu/esm2020/menu-adapator.component.mjs +4 -6
  374. app-ng-runtime/components/navigation/menu/esm2020/menu.component.mjs +4 -7
  375. app-ng-runtime/components/navigation/menu/esm2020/nav/nav-item/nav-item.directive.mjs +7 -11
  376. app-ng-runtime/components/navigation/menu/esm2020/nav/nav.component.mjs +5 -9
  377. app-ng-runtime/components/navigation/menu/fesm2015/index.mjs +14 -26
  378. app-ng-runtime/components/navigation/menu/fesm2015/index.mjs.map +1 -1
  379. app-ng-runtime/components/navigation/menu/fesm2020/index.mjs +14 -24
  380. app-ng-runtime/components/navigation/menu/fesm2020/index.mjs.map +1 -1
  381. app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -2
  382. app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -3
  383. app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -4
  384. app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -3
  385. app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +28 -34
  386. app-ng-runtime/components/navigation/navbar/esm2020/navbar.component.mjs +9 -14
  387. app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs +8 -14
  388. app-ng-runtime/components/navigation/navbar/fesm2015/index.mjs.map +1 -1
  389. app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs +8 -12
  390. app-ng-runtime/components/navigation/navbar/fesm2020/index.mjs.map +1 -1
  391. app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -4
  392. app-ng-runtime/components/page/default/bundles/index.umd.js +32 -66
  393. app-ng-runtime/components/page/default/content/content.component.d.ts +2 -4
  394. app-ng-runtime/components/page/default/esm2020/content/content.component.mjs +6 -11
  395. app-ng-runtime/components/page/default/esm2020/layout.directive.mjs +7 -11
  396. app-ng-runtime/components/page/default/esm2020/page-content/page-content.component.mjs +7 -10
  397. app-ng-runtime/components/page/default/esm2020/page.directive.mjs +7 -12
  398. app-ng-runtime/components/page/default/esm2020/router-outlet.directive.mjs +7 -11
  399. app-ng-runtime/components/page/default/esm2020/spa-page.directive.mjs +7 -12
  400. app-ng-runtime/components/page/default/fesm2015/index.mjs +26 -60
  401. app-ng-runtime/components/page/default/fesm2015/index.mjs.map +1 -1
  402. app-ng-runtime/components/page/default/fesm2020/index.mjs +26 -48
  403. app-ng-runtime/components/page/default/fesm2020/index.mjs.map +1 -1
  404. app-ng-runtime/components/page/default/layout.directive.d.ts +2 -4
  405. app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +3 -4
  406. app-ng-runtime/components/page/default/page.directive.d.ts +3 -4
  407. app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -4
  408. app-ng-runtime/components/page/default/spa-page.directive.d.ts +3 -4
  409. app-ng-runtime/components/page/footer/bundles/index.umd.js +8 -14
  410. app-ng-runtime/components/page/footer/esm2020/footer.directive.mjs +6 -11
  411. app-ng-runtime/components/page/footer/fesm2015/index.mjs +5 -11
  412. app-ng-runtime/components/page/footer/fesm2015/index.mjs.map +1 -1
  413. app-ng-runtime/components/page/footer/fesm2020/index.mjs +5 -9
  414. app-ng-runtime/components/page/footer/fesm2020/index.mjs.map +1 -1
  415. app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -4
  416. app-ng-runtime/components/page/header/bundles/index.umd.js +8 -14
  417. app-ng-runtime/components/page/header/esm2020/header.component.mjs +6 -11
  418. app-ng-runtime/components/page/header/fesm2015/index.mjs +5 -11
  419. app-ng-runtime/components/page/header/fesm2015/index.mjs.map +1 -1
  420. app-ng-runtime/components/page/header/fesm2020/index.mjs +5 -9
  421. app-ng-runtime/components/page/header/fesm2020/index.mjs.map +1 -1
  422. app-ng-runtime/components/page/header/header.component.d.ts +2 -4
  423. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +4 -7
  424. app-ng-runtime/components/page/left-panel/esm2020/left-panel.directive.mjs +6 -9
  425. app-ng-runtime/components/page/left-panel/fesm2015/index.mjs +4 -7
  426. app-ng-runtime/components/page/left-panel/fesm2015/index.mjs.map +1 -1
  427. app-ng-runtime/components/page/left-panel/fesm2020/index.mjs +4 -7
  428. app-ng-runtime/components/page/left-panel/fesm2020/index.mjs.map +1 -1
  429. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +3 -4
  430. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -12
  431. app-ng-runtime/components/page/right-panel/esm2020/right-panel.directive.mjs +7 -11
  432. app-ng-runtime/components/page/right-panel/fesm2015/index.mjs +5 -11
  433. app-ng-runtime/components/page/right-panel/fesm2015/index.mjs.map +1 -1
  434. app-ng-runtime/components/page/right-panel/fesm2020/index.mjs +5 -9
  435. app-ng-runtime/components/page/right-panel/fesm2020/index.mjs.map +1 -1
  436. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -4
  437. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +8 -14
  438. app-ng-runtime/components/page/top-nav/esm2020/top-nav.directive.mjs +6 -11
  439. app-ng-runtime/components/page/top-nav/fesm2015/index.mjs +5 -11
  440. app-ng-runtime/components/page/top-nav/fesm2015/index.mjs.map +1 -1
  441. app-ng-runtime/components/page/top-nav/fesm2020/index.mjs +5 -9
  442. app-ng-runtime/components/page/top-nav/fesm2020/index.mjs.map +1 -1
  443. app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -4
  444. app-ng-runtime/components/prefab/bundles/index.umd.js +7 -15
  445. app-ng-runtime/components/prefab/esm2020/prefab-container/prefab-container.directive.mjs +7 -10
  446. app-ng-runtime/components/prefab/esm2020/prefab.directive.mjs +6 -10
  447. app-ng-runtime/components/prefab/fesm2015/index.mjs +8 -16
  448. app-ng-runtime/components/prefab/fesm2015/index.mjs.map +1 -1
  449. app-ng-runtime/components/prefab/fesm2020/index.mjs +8 -14
  450. app-ng-runtime/components/prefab/fesm2020/index.mjs.map +1 -1
  451. app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +3 -4
  452. app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -4
  453. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +32 -37
  454. app-ng-runtime/mobile/components/basic/default/esm2020/network-info-toaster/network-info-toaster.component.mjs +7 -10
  455. app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs +10 -15
  456. app-ng-runtime/mobile/components/basic/default/fesm2015/index.mjs.map +1 -1
  457. app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs +10 -13
  458. app-ng-runtime/mobile/components/basic/default/fesm2020/index.mjs.map +1 -1
  459. app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +3 -4
  460. app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +18 -29
  461. app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segment-content/segment-content.component.mjs +8 -13
  462. app-ng-runtime/mobile/components/containers/segmented-control/esm2020/segmented-control.component.mjs +9 -13
  463. app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs +12 -23
  464. app-ng-runtime/mobile/components/containers/segmented-control/fesm2015/index.mjs.map +1 -1
  465. app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs +12 -19
  466. app-ng-runtime/mobile/components/containers/segmented-control/fesm2020/index.mjs.map +1 -1
  467. app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -4
  468. app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -4
  469. app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +30 -36
  470. app-ng-runtime/mobile/components/data/media-list/esm2020/media-list.component.mjs +14 -18
  471. app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs +11 -17
  472. app-ng-runtime/mobile/components/data/media-list/fesm2015/index.mjs.map +1 -1
  473. app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs +11 -15
  474. app-ng-runtime/mobile/components/data/media-list/fesm2020/index.mjs.map +1 -1
  475. app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -4
  476. app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -4
  477. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +28 -34
  478. app-ng-runtime/mobile/components/device/barcode-scanner/esm2020/barcode-scanner.component.mjs +10 -14
  479. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs +8 -14
  480. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2015/index.mjs.map +1 -1
  481. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs +8 -12
  482. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2020/index.mjs.map +1 -1
  483. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +12 -18
  484. app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -4
  485. app-ng-runtime/mobile/components/device/camera/esm2020/camera.component.mjs +9 -13
  486. app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs +7 -13
  487. app-ng-runtime/mobile/components/device/camera/fesm2015/index.mjs.map +1 -1
  488. app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs +7 -11
  489. app-ng-runtime/mobile/components/device/camera/fesm2020/index.mjs.map +1 -1
  490. app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +3 -6
  491. app-ng-runtime/mobile/components/page/mobile-navbar/esm2020/mobile-navbar.component.mjs +6 -9
  492. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs +4 -7
  493. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2015/index.mjs.map +1 -1
  494. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs +4 -7
  495. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2020/index.mjs.map +1 -1
  496. app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +3 -4
  497. app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +32 -36
  498. app-ng-runtime/mobile/components/page/tab-bar/esm2020/tabbar.component.mjs +8 -13
  499. app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs +7 -11
  500. app-ng-runtime/mobile/components/page/tab-bar/fesm2015/index.mjs.map +1 -1
  501. app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs +7 -11
  502. app-ng-runtime/mobile/components/page/tab-bar/fesm2020/index.mjs.map +1 -1
  503. app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -4
  504. app-ng-runtime/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@wm/components/base'), require('@wm/core'), require('@wm/components/input')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@angular/forms', '@wm/components/base', '@wm/core', '@wm/components/input'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.input = global.wm.components.input || {}, global.wm.components.input.rating = {}), global.ng.core, global.ng.common, global.ng.forms, global.wm.components.base, global.wm.core, global.wm.components.input));
5
- })(this, (function (exports, i0, i2, i3, i4, i1, input) { 'use strict';
5
+ })(this, (function (exports, i0, i1, i2, i3, core, input) { 'use strict';
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -22,34 +22,33 @@
22
22
  }
23
23
 
24
24
  var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
25
+ var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
25
26
  var i2__namespace = /*#__PURE__*/_interopNamespaceDefault(i2);
26
27
  var i3__namespace = /*#__PURE__*/_interopNamespaceDefault(i3);
27
- var i4__namespace = /*#__PURE__*/_interopNamespaceDefault(i4);
28
- var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
29
28
 
30
29
  const ratingProps = new Map([
31
- ['caption', i4.PROP_STRING],
32
- ['class', i4.PROP_STRING],
33
- ['datafield', i4.PROP_STRING],
34
- ['dataset', i4.PROP_ANY],
35
- ['datavaluesource', i4.PROP_ANY],
36
- ['datavalue', i4.PROP_STRING],
37
- ['displayexpression', i4.PROP_STRING],
38
- ['displayfield', i4.PROP_STRING],
39
- ['iconcolor', i4.PROP_STRING],
40
- ['iconsize', i4.PROP_STRING],
41
- ['maxvalue', Object.assign({ value: 5 }, i4.PROP_NUMBER)],
42
- ['name', i4.PROP_STRING],
43
- ['orderby', i4.PROP_STRING],
44
- ['readonly', i4.PROP_BOOLEAN],
45
- ['show', Object.assign({ value: true }, i4.PROP_BOOLEAN)],
46
- ['showcaptions', Object.assign({ value: true }, i4.PROP_BOOLEAN)],
47
- ['tabindex', Object.assign({ value: 0 }, i4.PROP_NUMBER)],
48
- ['usekeys', i4.PROP_BOOLEAN]
30
+ ['caption', i3.PROP_STRING],
31
+ ['class', i3.PROP_STRING],
32
+ ['datafield', i3.PROP_STRING],
33
+ ['dataset', i3.PROP_ANY],
34
+ ['datavaluesource', i3.PROP_ANY],
35
+ ['datavalue', i3.PROP_STRING],
36
+ ['displayexpression', i3.PROP_STRING],
37
+ ['displayfield', i3.PROP_STRING],
38
+ ['iconcolor', i3.PROP_STRING],
39
+ ['iconsize', i3.PROP_STRING],
40
+ ['maxvalue', Object.assign({ value: 5 }, i3.PROP_NUMBER)],
41
+ ['name', i3.PROP_STRING],
42
+ ['orderby', i3.PROP_STRING],
43
+ ['readonly', i3.PROP_BOOLEAN],
44
+ ['show', Object.assign({ value: true }, i3.PROP_BOOLEAN)],
45
+ ['showcaptions', Object.assign({ value: true }, i3.PROP_BOOLEAN)],
46
+ ['tabindex', Object.assign({ value: 0 }, i3.PROP_NUMBER)],
47
+ ['usekeys', i3.PROP_BOOLEAN]
49
48
  ]);
50
49
  const registerProps = () => {
51
- i4.register('wm-rating', ratingProps);
52
- i4.registerFormWidget(i1.FormWidgetType.RATING, new Map(ratingProps));
50
+ i3.register('wm-rating', ratingProps);
51
+ i3.registerFormWidget(core.FormWidgetType.RATING, new Map(ratingProps));
53
52
  };
54
53
 
55
54
  const _c0 = ["ratingInput"];
@@ -109,11 +108,10 @@
109
108
  this._selectedRatingValue = val;
110
109
  this.calculateRatingsWidth();
111
110
  }
112
- constructor(inj, _viewParent) {
113
- super(inj, WIDGET_CONFIG, _viewParent);
114
- this._viewParent = _viewParent;
115
- this._id = i1.generateGUId();
116
- i4.styler(this.nativeElement, this);
111
+ constructor(inj) {
112
+ super(inj, WIDGET_CONFIG);
113
+ this._id = core.generateGUId();
114
+ i3.styler(this.nativeElement, this);
117
115
  // prepare the rating options on dataset ready.
118
116
  const datasetSubscription = this.dataset$.subscribe(() => {
119
117
  this.prepareRatingDataset();
@@ -156,7 +154,7 @@
156
154
  ratingItems.push({ key: i, value: i, index: i, label: i });
157
155
  }
158
156
  else {
159
- data = i4.getOrderedDataset(data, 'index:desc');
157
+ data = i3.getOrderedDataset(data, 'index:desc');
160
158
  ratingItems = ratingItems.concat(data);
161
159
  break;
162
160
  }
@@ -221,7 +219,7 @@
221
219
  }
222
220
  calculateRatingsWidth(dataVal) {
223
221
  const selectedRating = parseFloat(this.selectedRatingValue), starWidth = 0.925, maxValue = parseInt(this.maxvalue || this.datasetItems.length, 10) || DEFAULT_RATING;
224
- i1.setCSS(this.nativeElement.querySelector('.ratings-container'), 'width', (starWidth * maxValue) + 'em');
222
+ core.setCSS(this.nativeElement.querySelector('.ratings-container'), 'width', (starWidth * maxValue) + 'em');
225
223
  dataVal = dataVal || this.datavalue;
226
224
  if (dataVal === undefined || dataVal === '' || dataVal === null) {
227
225
  this.caption = '';
@@ -261,7 +259,7 @@
261
259
  /* Detect touch enabled devices & update hover styles*/
262
260
  onTouchStart($event) {
263
261
  this.touchEnabled = true;
264
- this.onTouchStart = i1.noop;
262
+ this.onTouchStart = core.noop;
265
263
  }
266
264
  onMouseleave() {
267
265
  this.caption = this.displayValue;
@@ -272,7 +270,7 @@
272
270
  }
273
271
  }
274
272
  RatingComponent.initializeProps = registerProps();
275
- RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.UserDefinedExecutionContext, 8)); };
273
+ RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector)); };
276
274
  RatingComponent.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: RatingComponent, selectors: [["", "wmRating", ""]], viewQuery: function RatingComponent_Query(rf, ctx) {
277
275
  if (rf & 1) {
278
276
  i0__namespace.ɵɵviewQuery(_c0, 5, i0.ElementRef);
@@ -282,8 +280,8 @@
282
280
  i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.ratingEl = _t.first);
283
281
  }
284
282
  }, features: [i0__namespace.ɵɵProvidersFeature([
285
- i4.provideAs(RatingComponent, i3.NG_VALUE_ACCESSOR, true),
286
- i4.provideAsWidgetRef(RatingComponent)
283
+ i3.provideAs(RatingComponent, i2.NG_VALUE_ACCESSOR, true),
284
+ i3.provideAsWidgetRef(RatingComponent)
287
285
  ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 5, vars: 12, consts: [["ngDefaultControl", "", "aria-multiselectable", "true", 1, "ratings-wrapper", 3, "ngModel", "ngModelChange", "focus"], ["class", "rating-style", 4, "ngIf"], [1, "ratings-container", "disabled", 3, "ngStyle"], [1, "ratings", "active", 3, "ngStyle"], ["class", "caption", 3, "textContent", 4, "ngIf"], [1, "rating-style"], [3, "ngClass", "ngStyle", "title", "for", "touchstart", "mouseleave", "mouseover", 4, "ngFor", "ngForOf"], [3, "ngClass", "ngStyle", "title", "for", "touchstart", "mouseleave", "mouseover"], ["type", "radio", "role", "radio", "name", "ratings-id", 3, "id", "value", "click"], ["ratingInput", ""], [1, "caption", 3, "textContent"]], template: function RatingComponent_Template(rf, ctx) {
288
286
  if (rf & 1) {
289
287
  i0__namespace.ɵɵelementStart(0, "div", 0);
@@ -307,19 +305,15 @@
307
305
  i0__namespace.ɵɵadvance(1);
308
306
  i0__namespace.ɵɵproperty("ngIf", ctx.showcaptions);
309
307
  }
310
- }, dependencies: [i2__namespace.NgClass, i2__namespace.NgForOf, i2__namespace.NgIf, i2__namespace.NgStyle, i3__namespace.DefaultValueAccessor, i3__namespace.NgControlStatus, i3__namespace.NgModel, i4__namespace.TextContentDirective], encapsulation: 2 });
308
+ }, dependencies: [i1__namespace.NgClass, i1__namespace.NgForOf, i1__namespace.NgIf, i1__namespace.NgStyle, i2__namespace.DefaultValueAccessor, i2__namespace.NgControlStatus, i2__namespace.NgModel, i3__namespace.TextContentDirective], encapsulation: 2 });
311
309
  (function () {
312
310
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RatingComponent, [{
313
311
  type: i0.Component,
314
312
  args: [{ selector: '[wmRating]', providers: [
315
- i4.provideAs(RatingComponent, i3.NG_VALUE_ACCESSOR, true),
316
- i4.provideAsWidgetRef(RatingComponent)
313
+ i3.provideAs(RatingComponent, i2.NG_VALUE_ACCESSOR, true),
314
+ i3.provideAsWidgetRef(RatingComponent)
317
315
  ], template: "<div [(ngModel)]=\"modelByKey\" (focus)=\"onFocus($event)\" ngDefaultControl class=\"ratings-wrapper\" aria-multiselectable=\"true\">\n <div *ngIf=\"!readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <div [class.hidden]=\"!readonly\" [ngStyle]=\"{'font-size' :iconsize}\" class=\"ratings-container disabled\" >\n <div class=\"ratings active\" [ngStyle]=\"{width: ratingsWidth, color: iconcolor}\"></div>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n" }]
318
- }], function () {
319
- return [{ type: i0__namespace.Injector }, { type: i1__namespace.UserDefinedExecutionContext, decorators: [{
320
- type: i0.Optional
321
- }] }];
322
- }, { ratingEl: [{
316
+ }], function () { return [{ type: i0__namespace.Injector }]; }, { ratingEl: [{
323
317
  type: i0.ViewChild,
324
318
  args: ['ratingInput', /* TODO: add static flag */ { read: i0.ElementRef }]
325
319
  }] });
@@ -332,17 +326,17 @@
332
326
  }
333
327
  RatingModule.ɵfac = function RatingModule_Factory(t) { return new (t || RatingModule)(); };
334
328
  RatingModule.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: RatingModule });
335
- RatingModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [i2.CommonModule,
336
- i3.FormsModule,
337
- i4.WmComponentsModule] });
329
+ RatingModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [i1.CommonModule,
330
+ i2.FormsModule,
331
+ i3.WmComponentsModule] });
338
332
  (function () {
339
333
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RatingModule, [{
340
334
  type: i0.NgModule,
341
335
  args: [{
342
336
  imports: [
343
- i2.CommonModule,
344
- i3.FormsModule,
345
- i4.WmComponentsModule
337
+ i1.CommonModule,
338
+ i2.FormsModule,
339
+ i3.WmComponentsModule
346
340
  ],
347
341
  declarations: [...components],
348
342
  exports: [...components]
@@ -350,9 +344,9 @@
350
344
  }], null, null);
351
345
  })();
352
346
  (function () {
353
- (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RatingModule, { declarations: [RatingComponent], imports: [i2.CommonModule,
354
- i3.FormsModule,
355
- i4.WmComponentsModule], exports: [RatingComponent] });
347
+ (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RatingModule, { declarations: [RatingComponent], imports: [i1.CommonModule,
348
+ i2.FormsModule,
349
+ i3.WmComponentsModule], exports: [RatingComponent] });
356
350
  })();
357
351
 
358
352
  exports.RatingComponent = RatingComponent;
@@ -1,14 +1,13 @@
1
- import { Component, ElementRef, Injector, Optional, ViewChild } from '@angular/core';
1
+ import { Component, ElementRef, Injector, ViewChild } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { generateGUId, setCSS, noop, UserDefinedExecutionContext } from '@wm/core';
3
+ import { generateGUId, setCSS, noop } from '@wm/core';
4
4
  import { getOrderedDataset, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';
5
5
  import { DatasetAwareFormComponent } from '@wm/components/input';
6
6
  import { registerProps } from './rating.props';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "@wm/core";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@angular/forms";
11
- import * as i4 from "@wm/components/base";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@wm/components/base";
12
11
  const _c0 = ["ratingInput"];
13
12
  const _c1 = ["wmRating", ""];
14
13
  const _c2 = function (a0) { return { active: a0 }; };
@@ -57,9 +56,8 @@ export class RatingComponent extends DatasetAwareFormComponent {
57
56
  this._selectedRatingValue = val;
58
57
  this.calculateRatingsWidth();
59
58
  }
60
- constructor(inj, _viewParent) {
61
- super(inj, WIDGET_CONFIG, _viewParent);
62
- this._viewParent = _viewParent;
59
+ constructor(inj) {
60
+ super(inj, WIDGET_CONFIG);
63
61
  this._id = generateGUId();
64
62
  styler(this.nativeElement, this);
65
63
  // prepare the rating options on dataset ready.
@@ -220,7 +218,7 @@ export class RatingComponent extends DatasetAwareFormComponent {
220
218
  }
221
219
  }
222
220
  RatingComponent.initializeProps = registerProps();
223
- RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.UserDefinedExecutionContext, 8)); };
221
+ RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
224
222
  RatingComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RatingComponent, selectors: [["", "wmRating", ""]], viewQuery: function RatingComponent_Query(rf, ctx) { if (rf & 1) {
225
223
  i0.ɵɵviewQuery(_c0, 5, ElementRef);
226
224
  } if (rf & 2) {
@@ -249,17 +247,15 @@ RatingComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RatingCompo
249
247
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c5, ctx.ratingsWidth, ctx.iconcolor));
250
248
  i0.ɵɵadvance(1);
251
249
  i0.ɵɵproperty("ngIf", ctx.showcaptions);
252
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.TextContentDirective], encapsulation: 2 });
250
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.TextContentDirective], encapsulation: 2 });
253
251
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RatingComponent, [{
254
252
  type: Component,
255
253
  args: [{ selector: '[wmRating]', providers: [
256
254
  provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),
257
255
  provideAsWidgetRef(RatingComponent)
258
256
  ], template: "<div [(ngModel)]=\"modelByKey\" (focus)=\"onFocus($event)\" ngDefaultControl class=\"ratings-wrapper\" aria-multiselectable=\"true\">\n <div *ngIf=\"!readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <div [class.hidden]=\"!readonly\" [ngStyle]=\"{'font-size' :iconsize}\" class=\"ratings-container disabled\" >\n <div class=\"ratings active\" [ngStyle]=\"{width: ratingsWidth, color: iconcolor}\"></div>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n" }]
259
- }], function () { return [{ type: i0.Injector }, { type: i1.UserDefinedExecutionContext, decorators: [{
260
- type: Optional
261
- }] }]; }, { ratingEl: [{
257
+ }], function () { return [{ type: i0.Injector }]; }, { ratingEl: [{
262
258
  type: ViewChild,
263
259
  args: ['ratingInput', /* TODO: add static flag */ { read: ElementRef }]
264
260
  }] }); })();
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9yYXRpbmcvc3JjL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvcmF0aW5nL3NyYy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLDJCQUEyQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7SUNMdkMsZ0NBT3NDO0lBSC9CLG9MQUFjLGVBQUEsMkJBQW9CLENBQUEsSUFBQyxrT0FDckIsZUFBQSxvQ0FBMEIsQ0FBQSxJQURMLGdPQUV0QixlQUFBLG1DQUF5QixDQUFBLElBRkg7SUFJdEMsbUNBQytIO0lBQTFGLHFPQUFTLGVBQUEscUNBQTJCLENBQUEsSUFBQztJQUQxRSxpQkFDK0gsRUFBQTs7OztJQVI1SCxpR0FBd0QsMEhBQUEseUNBQUEseUNBQUE7SUFRcEQsZUFBNkI7SUFBN0IscURBQTZCLHVDQUFBO0lBRFUsb0hBQTZGLHVFQUFBOzs7SUFUbkosOEJBQTRD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QUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVHVUlkLCBzZXRDU1MsIG5vb3AsIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgZ2V0T3JkZXJlZERhdGFzZXQsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3JhdGluZy5wcm9wcyc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXJhdGluZ3MnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcmF0aW5nJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbmNvbnN0IE1BWF9SQVRJTkcgPSAxMDtcbmNvbnN0IERFRkFVTFRfUkFUSU5HID0gNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21SYXRpbmddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFJhdGluZ0NvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUmF0aW5nQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBjYXB0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHNob3djYXB0aW9uczogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4dmFsdWU7XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZFJhdGluZ1ZhbHVlO1xuICAgIHB1YmxpYyByYXRpbmdzV2lkdGg7XG4gICAgcHJpdmF0ZSByYXRpbmdJdGVtcztcbiAgICBwcml2YXRlIF9pZDtcblxuICAgIHB1YmxpYyBpY29uc2l6ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uY29sb3I6IHN0cmluZztcbiAgICBwdWJsaWMgb25Gb2N1czogYW55O1xuICAgIHByaXZhdGUgdG91Y2hFbmFibGVkOmJvb2xlYW47XG4gICAgQFZpZXdDaGlsZCgncmF0aW5nSW5wdXQnLCAvKiBUT0RPOiBhZGQgc3RhdGljIGZsYWcgKi8geyByZWFkOiBFbGVtZW50UmVmIH0pIHJhdGluZ0VsOiBFbGVtZW50UmVmO1xuXG4gICAgZ2V0IHNlbGVjdGVkUmF0aW5nVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFJhdGluZ1ZhbHVlO1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RlZFJhdGluZ1ZhbHVlKHZhbCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFJhdGluZ1ZhbHVlID0gdmFsO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVJhdGluZ3NXaWR0aCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBPcHRpb25hbCgpIHB1YmxpYyBfdmlld1BhcmVudDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgX3ZpZXdQYXJlbnQpO1xuICAgICAgICB0aGlzLl9pZCA9IGdlbmVyYXRlR1VJZCgpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcblxuICAgICAgICAvLyBwcmVwYXJlIHRoZSByYXRpbmcgb3B0aW9ucyBvbiBkYXRhc2V0IHJlYWR5LlxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUmF0aW5nRGF0YXNldCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICAgIC8vIGxpc3RlbiB0byBjaGFuZ2VzIGluIGRhdGF2YWx1ZS5cbiAgICAgICAgY29uc3QgZGF0YXZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhdmFsdWUkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRGF0YXZhbHVlQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIC8vIENoYW5nZSBldmVudCBpcyByZWdpc3RlcmVkIGZyb20gdGhlIHRlbXBsYXRlLCBQcmV2ZW50IHRoZSBmcmFtZXdvcmsgZnJvbSByZWdpc3RlcmluZyBvbmUgbW9yZSBldmVudFxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGV2ZW50Q2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lICE9PSAnY2hhbmdlJyAmJiBldmVudE5hbWUgIT09ICdibHVyJykge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQodGhpcy5yYXRpbmdFbC5uYXRpdmVFbGVtZW50LCBldmVudE5hbWUsIGV2ZW50Q2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJhdGluZyB3aWRnZXQgZGF0YXNldCBjb250YWluaW5nIHRoZSBpbmRleCwgdmFsdWUgYW5kIGxhYmVsXG4gICAgcHJpdmF0ZSBwcmVwYXJlUmF0aW5nRGF0YXNldCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmF0aW5nSXRlbXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJhdGluZ0l0ZW1zID0gW107XG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5kYXRhc2V0SXRlbXM7XG4gICAgICAgIGNvbnN0IG1heHZhbHVlID0gcGFyc2VJbnQodGhpcy5tYXh2YWx1ZSB8fCB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgsIDEwKTtcbiAgICAgICAgY29uc3QgbWF4VmFsdWUgPSAobWF4dmFsdWUgPiBNQVhfUkFUSU5HID8gTUFYX1JBVElORyA6IG1heHZhbHVlKSB8fCBERUZBVUxUX1JBVElORztcblxuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgZGF0YXNldEl0ZW1zLmxlbmd0aCBpcyBtb3JlIHRoYW4gbWF4VmFsdWUgKGkuZS4gMTAgcmF0aW5ncykgdGhlbiBqdXN0IGV4dHJhY3QgbWF4VmFsdWUgb2YgaXRlbXMgZnJvbSBkYXRhc2V0SXRlbXMuXG4gICAgICAgICAqIDIuIElmIGRhdGFzZXRJdGVtcyBhcmUgbm90IGF2YWlsYWJsZSB0aGVuIHByZXBhcmUgcmF0aW5ncyB2YWx1ZSBkZXBlbmRpbmcgb24gbWF4dmFsdWUuIGVnOiAxLDIsMyAuLiB1cHRvIG1heHZhbHVlXG4gICAgICAgICAqIDMuIElmIG1heHZhbHVlIC8gaSB2YWx1ZSBpcyBtb3JlIHRoYW4gZGF0YXNldEl0ZW1zIGxlbmd0aCwgcHJlcGFyZSBkZWZhdWx0IHJhdGluZyBpdGVtcyBmb3IgaSB2YWx1ZXMgbW9yZSB0aGFuIGRhdGFzZXRJdGVtcy5sZW5ndGhcbiAgICAgICAgICovXG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCAmJiBkYXRhLmxlbmd0aCA+IG1heFZhbHVlKSB7XG4gICAgICAgICAgICBkYXRhID0gXy5zbGljZShkYXRhLCAwLCBtYXhWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gbWF4VmFsdWU7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmICghZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByYXRpbmdJdGVtcy5wdXNoKHtrZXk6IGksIHZhbHVlOiBpLCBpbmRleDogaSwgbGFiZWw6IGl9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPiBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByYXRpbmdJdGVtcy5wdXNoKHtrZXk6IGksIHZhbHVlOiBpLCBpbmRleDogaSwgbGFiZWw6IGl9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0T3JkZXJlZERhdGFzZXQoZGF0YSwgJ2luZGV4OmRlc2MnKTtcbiAgICAgICAgICAgICAgICAgICAgcmF0aW5nSXRlbXMgPSByYXRpbmdJdGVtcy5jb25jYXQoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmF0aW5nSXRlbXMgPSByYXRpbmdJdGVtcztcbiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkgeyAvLyBjb25zdHJ1Y3RzIGRlZmF1bHQgZGF0YXNldEl0ZW1zIHdoZW4gdGhlcmUgaXMgbm8gZGF0YXNldCBiaW5kaW5nLlxuICAgICAgICAgICAgdGhpcy5kYXRhc2V0SXRlbXMgPSByYXRpbmdJdGVtcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uRGF0YXZhbHVlQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICB9XG5cbiAgICBvblJhdGluZ0NsaWNrKCRldmVudCwgcmF0ZSkge1xuICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSByYXRlLmtleTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJhdGluZ1ZhbHVlID0gcmF0ZS5pbmRleDtcblxuICAgICAgICAvLyBzdXBwb3J0IGlmIHRoZSBjYXB0aW9uIGlzIGJpbmRlZCBpbiB0aGUgb2xkIHByb2plY3RzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgIGlmICghdGhpcy5zaG93Y2FwdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9IHJhdGUubGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgJGV2ZW50IHx8IHt9LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGVkIGZsYWcgb24gZGF0YXNldEl0ZW1zIGFuZCBhc3NpZ24gdGhlIHJhdGluZ1ZhbHVlLlxuICAgIC8qKlxuICAgICAqIE9uIGRhdGF2YWx1ZSBjaGFuZ2UsIHVwZGF0ZSB0aGUgY2FwdGlvbiwgc2VsZWN0ZWRSYXRpbmdWYWx1ZS5cbiAgICAgKiAxLiBpZiBkYXRhc2V0SXRlbXMgY29udGFpbiB0aGUgc2VsZWN0ZWQgaXRlbSAoY2hlY2sgdGhlIHNlbGVjdGVkIGZsYWcgb24gaXRlbSksIGZpbmQgdGhlIGluZGV4IG9mIHNlbGVjdGVkIGl0ZW0uXG4gICAgICogMi4gaWYgbm90LCBqdXN0IGNoZWNrIGlmIHRoZSBkYXRhdmFsdWUgaXMgcHJvdmlkZWQgYXMgdGhlIGluZGV4IG9uIHRoZSBpdGVtLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGFWYWwgZGF0YXZhbHVlXG4gICAgICovXG4gICAgb25EYXRhdmFsdWVDaGFuZ2UoZGF0YVZhbCkge1xuICAgICAgICBpZiAoIV8uaXNFbXB0eSh0aGlzLmRhdGFzZXRJdGVtcykpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBfLmZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIHsnc2VsZWN0ZWQnOiB0cnVlfSk7XG5cbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRJdGVtICYmICFfLmlzVW5kZWZpbmVkKGRhdGFWYWwpKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gXy5maW5kKHRoaXMuZGF0YXNldEl0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXy50b1N0cmluZyhpdGVtLmluZGV4KSA9PT0gZGF0YVZhbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSAgbW9kZWwgaWYgdGhlcmUgaXMgbm8gaXRlbSBmb3VuZC5cbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXB0aW9uID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSA9IHNlbGVjdGVkSXRlbSA/IHNlbGVjdGVkSXRlbS5pbmRleCA6IDA7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXB0aW9uID0gc2VsZWN0ZWRJdGVtLmxhYmVsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhdGluZ1ZhbHVlID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgLy8gd2hlbiBkYXRhc2V0IGlzIG5vdCBnaXZlbiBidXQgZGF0YXZhbHVlIGlzIHByb3ZpZGVkIHdoaWNoIGlzIGludGVnZXJcbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFJhdGluZ1ZhbHVlICYmICFpc05hTihkYXRhVmFsKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSA9IChwYXJzZUZsb2F0KGRhdGFWYWwpIDw9IHRoaXMubWF4dmFsdWUpID8gZGF0YVZhbCA6IHRoaXMubWF4dmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJhdGluZ3NXaWR0aCA9IHRoaXMuY2FsY3VsYXRlUmF0aW5nc1dpZHRoKGRhdGFWYWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUmF0aW5nc1dpZHRoKGRhdGFWYWw/OiBhbnkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYXRpbmcgPSBwYXJzZUZsb2F0KHRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSksXG4gICAgICAgICAgICBzdGFyV2lkdGggPSAwLjkyNSxcbiAgICAgICAgICAgIG1heFZhbHVlID0gcGFyc2VJbnQodGhpcy5tYXh2YWx1ZSB8fCB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGgsIDEwKSB8fCBERUZBVUxUX1JBVElORztcblxuICAgICAgICBzZXRDU1MoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnJhdGluZ3MtY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICAnd2lkdGgnLFxuICAgICAgICAgICAgKHN0YXJXaWR0aCAqIG1heFZhbHVlKSArICdlbSdcbiAgICAgICAgKTtcbiAgICAgICAgZGF0YVZhbCA9IGRhdGFWYWwgfHwgdGhpcy5kYXRhdmFsdWU7XG4gICAgICAgIGlmIChkYXRhVmFsID09PSB1bmRlZmluZWQgfHwgZGF0YVZhbCA9PT0gJycgfHwgZGF0YVZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5jYXB0aW9uID0gJyc7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRSYXRpbmcgPD0gbWF4VmFsdWUgJiYgc2VsZWN0ZWRSYXRpbmcgPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkUmF0aW5nICogc3RhcldpZHRoICsgJ2VtJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRSYXRpbmcgPiBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG1heFZhbHVlICogc3RhcldpZHRoICsgJ2VtJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgIGlmIChudikge1xuICAgICAgICAgICAgICAgIHRoaXMucmF0aW5nc1dpZHRoID0gdGhpcy5jYWxjdWxhdGVSYXRpbmdzV2lkdGgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdtYXh2YWx1ZScpIHtcbiAgICAgICAgICAgIC8qKiBTdG9yaW5nIHRoZSBkYXRhdmFsdWUgaW4gdGVtcCB2YXJpYWJsZSBhbmQgYXNzaWdpbmcgYmFjayB0byBkYXRhdmFsdWVcbiAgICAgICAgICAgICAqIGFmdGVyIGRlZmF1bHQgZGF0YWxpc3QgaXMgcHJlcGFyZWQgdG8gdHJpZ2dlciBEYXRhc2V0IEF3YXJlIGNsYXNzIHNlbGVjdCBjeWNsZVxuICAgICAgICAgICAgICogYXMgdGhlIGRhdGF2YWx1ZSBwcm9wZXJ0eSBjaGFuZ2UgaXMgdHJpZ2dlcmluZyBmaXJzdCByYXRoZXIgdGhhbiBtYXh2YWx1ZVxuICAgICAgICAgICAgICogaW4gdGhlIHJhdGluZyB3aWRnZXQgaXMgdXNlZCBpbnNpZGUgYSBkYXRhdGFibGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IHRlbXBEYXRhVmFsdWUgPSB0aGlzLmRhdGF2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVJhdGluZ0RhdGFzZXQoKTtcbiAgICAgICAgICAgIC8vIHJlc2V0IGFsbCB0aGUgaXRlbXMuXG4gICAgICAgICAgICB0aGlzLnJlc2V0RGF0YXNldEl0ZW1zKCk7XG4gICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQodGVtcERhdGFWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHRlbXBEYXRhVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIERldGVjdCB0b3VjaCBlbmFibGVkIGRldmljZXMgJiB1cGRhdGUgaG92ZXIgc3R5bGVzKi9cbiAgICBvblRvdWNoU3RhcnQoJGV2ZW50KSB7XG4gICAgICAgIHRoaXMudG91Y2hFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vblRvdWNoU3RhcnQgPSBub29wO1xuICAgIH1cbiAgICBvbk1vdXNlbGVhdmUoKSB7XG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IHRoaXMuZGlzcGxheVZhbHVlIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBvbk1vdXNlT3ZlcigkZXZlbnQsIHJhdGUpIHtcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gcmF0ZS5sYWJlbDtcbiAgICAgICAgIXRoaXMudG91Y2hFbmFibGVkICYmICEkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygncmF0aW5nLWxhYmVsLWhvdmVyJykgJiYgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdyYXRpbmctbGFiZWwtaG92ZXInKTtcbiAgICB9XG59XG4iLCI8ZGl2IFsobmdNb2RlbCldPVwibW9kZWxCeUtleVwiIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIiBuZ0RlZmF1bHRDb250cm9sIGNsYXNzPVwicmF0aW5ncy13cmFwcGVyXCIgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFyZWFkb25seVwiIGNsYXNzPVwicmF0aW5nLXN0eWxlXCI+XG4gICAgICAgIDxsYWJlbCAqbmdGb3I9XCJsZXQgcmF0ZSBvZiByYXRpbmdJdGVtcztcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZSA6IHJhdGUuaW5kZXggPD0gc2VsZWN0ZWRSYXRpbmdWYWx1ZX1cIlxuICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydmb250LXNpemUnIDppY29uc2l6ZSwgY29sb3I6IHJhdGUuaW5kZXggPD0gc2VsZWN0ZWRSYXRpbmdWYWx1ZSAmJiBpY29uY29sb3J9XCJcbiAgICAgICAgICAgICAgIFt0aXRsZV09XCJyYXRlLmxhYmVsIHx8IHJhdGUuaW5kZXhcIlxuICAgICAgICAgICAgICAgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIlxuICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZWxlYXZlKCRldmVudCwgcmF0ZSlcIlxuICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbk1vdXNlT3ZlcigkZXZlbnQsIHJhdGUpXCJcbiAgICAgICAgICAgICAgIFtmb3JdPVwiX2lkICsgJy0nICsgcmF0ZS5pbmRleFwiPlxuICAgICAgICAgICAgPGlucHV0ICNyYXRpbmdJbnB1dCB0eXBlPVwicmFkaW9cIiByb2xlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIihyYXRlLmxhYmVsIHx8IHJhdGUuaW5kZXgpICsgJyBvdXQgb2YgJyArIHJhdGluZ0l0ZW1zLmxlbmd0aCArICcgcmF0aW5ncydcIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwicmF0ZS5sYWJlbCA9PT0gZGF0YXZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgICAgICAgICAgICAgW2lkXT1cIl9pZCArICctJyArIHJhdGUuaW5kZXhcIiAoY2xpY2spPVwib25SYXRpbmdDbGljaygkZXZlbnQsIHJhdGUpXCIgbmFtZT1cInJhdGluZ3MtaWRcIiBbdmFsdWVdPVwicmF0ZS5rZXkgfHwgcmF0ZS5pbmRleFwiLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtjbGFzcy5oaWRkZW5dPVwiIXJlYWRvbmx5XCIgW25nU3R5bGVdPVwieydmb250LXNpemUnIDppY29uc2l6ZX1cIiBjbGFzcz1cInJhdGluZ3MtY29udGFpbmVyIGRpc2FibGVkXCIgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmF0aW5ncyBhY3RpdmVcIiBbbmdTdHlsZV09XCJ7d2lkdGg6IHJhdGluZ3NXaWR0aCwgY29sb3I6IGljb25jb2xvcn1cIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bGFiZWwgKm5nSWY9XCJzaG93Y2FwdGlvbnNcIiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2FwdGlvblwiPjwvbGFiZWw+XG48L2Rpdj5cbiJdfQ==
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9yYXRpbmcvc3JjL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvcmF0aW5nL3NyYy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFZLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQThCLE1BQU0sVUFBVSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztJQ0x2QyxnQ0FPc0M7SUFIL0Isb0xBQWMsZUFBQSwyQkFBb0IsQ0FBQSxJQUFDLGtPQUNyQixlQUFBLG9DQUEwQixDQUFBLElBREwsZ09BRXRCLGVBQUEsbUNBQXlCLENBQUEsSUFGSDtJQUl0QyxtQ0FDK0g7SUFBMUYscU9BQVMsZUFBQSxxQ0FBMkIsQ0FBQSxJQUFDO0lBRDFFLGlCQUMrSCxFQUFBOzs7O0lBUjVILGlHQUF3RCwwSEFBQSx5Q0FBQSx5Q0FBQTtJQVFwRCxlQUE2QjtJQUE3QixxREFBNkIsdUNBQUE7SUFEVSxvSEFBNkYsdUVBQUE7OztJQVRuSiw4QkFBNEM7SUFDeEMsMkVBVVE7SUFDWixpQkFB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bmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVHVUlkLCBzZXRDU1MsIG5vb3AsIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgZ2V0T3JkZXJlZERhdGFzZXQsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3JhdGluZy5wcm9wcyc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXJhdGluZ3MnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcmF0aW5nJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbmNvbnN0IE1BWF9SQVRJTkcgPSAxMDtcbmNvbnN0IERFRkFVTFRfUkFUSU5HID0gNTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21SYXRpbmddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFJhdGluZ0NvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUmF0aW5nQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBjYXB0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHNob3djYXB0aW9uczogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4dmFsdWU7XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZFJhdGluZ1ZhbHVlO1xuICAgIHB1YmxpYyByYXRpbmdzV2lkdGg7XG4gICAgcHJpdmF0ZSByYXRpbmdJdGVtcztcbiAgICBwcml2YXRlIF9pZDtcblxuICAgIHB1YmxpYyBpY29uc2l6ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uY29sb3I6IHN0cmluZztcbiAgICBwdWJsaWMgb25Gb2N1czogYW55O1xuICAgIHByaXZhdGUgdG91Y2hFbmFibGVkOmJvb2xlYW47XG4gICAgQFZpZXdDaGlsZCgncmF0aW5nSW5wdXQnLCAvKiBUT0RPOiBhZGQgc3RhdGljIGZsYWcgKi8geyByZWFkOiBFbGVtZW50UmVmIH0pIHJhdGluZ0VsOiBFbGVtZW50UmVmO1xuXG4gICAgZ2V0IHNlbGVjdGVkUmF0aW5nVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFJhdGluZ1ZhbHVlO1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RlZFJhdGluZ1ZhbHVlKHZhbCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFJhdGluZ1ZhbHVlID0gdmFsO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVJhdGluZ3NXaWR0aCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHKTtcbiAgICAgICAgdGhpcy5faWQgPSBnZW5lcmF0ZUdVSWQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG5cbiAgICAgICAgLy8gcHJlcGFyZSB0aGUgcmF0aW5nIG9wdGlvbnMgb24gZGF0YXNldCByZWFkeS5cbiAgICAgICAgY29uc3QgZGF0YXNldFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXNldCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVJhdGluZ0RhdGFzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICAvLyBsaXN0ZW4gdG8gY2hhbmdlcyBpbiBkYXRhdmFsdWUuXG4gICAgICAgIGNvbnN0IGRhdGF2YWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXZhbHVlJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkRhdGF2YWx1ZUNoYW5nZSh0aGlzLmRhdGF2YWx1ZSkpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGF2YWx1ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICAvLyBDaGFuZ2UgZXZlbnQgaXMgcmVnaXN0ZXJlZCBmcm9tIHRoZSB0ZW1wbGF0ZSwgUHJldmVudCB0aGUgZnJhbWV3b3JrIGZyb20gcmVnaXN0ZXJpbmcgb25lIG1vcmUgZXZlbnRcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0gJ2NoYW5nZScgJiYgZXZlbnROYW1lICE9PSAnYmx1cicpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KHRoaXMucmF0aW5nRWwubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCBldmVudENhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByYXRpbmcgd2lkZ2V0IGRhdGFzZXQgY29udGFpbmluZyB0aGUgaW5kZXgsIHZhbHVlIGFuZCBsYWJlbFxuICAgIHByaXZhdGUgcHJlcGFyZVJhdGluZ0RhdGFzZXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJhdGluZ0l0ZW1zID0gW107XG4gICAgICAgICAgICB0aGlzLmNhcHRpb24gPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByYXRpbmdJdGVtcyA9IFtdO1xuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZGF0YXNldEl0ZW1zO1xuICAgICAgICBjb25zdCBtYXh2YWx1ZSA9IHBhcnNlSW50KHRoaXMubWF4dmFsdWUgfHwgdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoLCAxMCk7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlID0gKG1heHZhbHVlID4gTUFYX1JBVElORyA/IE1BWF9SQVRJTkcgOiBtYXh2YWx1ZSkgfHwgREVGQVVMVF9SQVRJTkc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGRhdGFzZXRJdGVtcy5sZW5ndGggaXMgbW9yZSB0aGFuIG1heFZhbHVlIChpLmUuIDEwIHJhdGluZ3MpIHRoZW4ganVzdCBleHRyYWN0IG1heFZhbHVlIG9mIGl0ZW1zIGZyb20gZGF0YXNldEl0ZW1zLlxuICAgICAgICAgKiAyLiBJZiBkYXRhc2V0SXRlbXMgYXJlIG5vdCBhdmFpbGFibGUgdGhlbiBwcmVwYXJlIHJhdGluZ3MgdmFsdWUgZGVwZW5kaW5nIG9uIG1heHZhbHVlLiBlZzogMSwyLDMgLi4gdXB0byBtYXh2YWx1ZVxuICAgICAgICAgKiAzLiBJZiBtYXh2YWx1ZSAvIGkgdmFsdWUgaXMgbW9yZSB0aGFuIGRhdGFzZXRJdGVtcyBsZW5ndGgsIHByZXBhcmUgZGVmYXVsdCByYXRpbmcgaXRlbXMgZm9yIGkgdmFsdWVzIG1vcmUgdGhhbiBkYXRhc2V0SXRlbXMubGVuZ3RoXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZGF0YS5sZW5ndGggJiYgZGF0YS5sZW5ndGggPiBtYXhWYWx1ZSkge1xuICAgICAgICAgICAgZGF0YSA9IF8uc2xpY2UoZGF0YSwgMCwgbWF4VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IG1heFZhbHVlOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmF0aW5nSXRlbXMucHVzaCh7a2V5OiBpLCB2YWx1ZTogaSwgaW5kZXg6IGksIGxhYmVsOiBpfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpID4gZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmF0aW5nSXRlbXMucHVzaCh7a2V5OiBpLCB2YWx1ZTogaSwgaW5kZXg6IGksIGxhYmVsOiBpfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldE9yZGVyZWREYXRhc2V0KGRhdGEsICdpbmRleDpkZXNjJyk7XG4gICAgICAgICAgICAgICAgICAgIHJhdGluZ0l0ZW1zID0gcmF0aW5nSXRlbXMuY29uY2F0KGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJhdGluZ0l0ZW1zID0gcmF0aW5nSXRlbXM7XG4gICAgICAgIGlmICghZGF0YS5sZW5ndGgpIHsgLy8gY29uc3RydWN0cyBkZWZhdWx0IGRhdGFzZXRJdGVtcyB3aGVuIHRoZXJlIGlzIG5vIGRhdGFzZXQgYmluZGluZy5cbiAgICAgICAgICAgIHRoaXMuZGF0YXNldEl0ZW1zID0gcmF0aW5nSXRlbXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkRhdGF2YWx1ZUNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25SYXRpbmdDbGljaygkZXZlbnQsIHJhdGUpIHtcbiAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0gcmF0ZS5rZXk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSA9IHJhdGUuaW5kZXg7XG5cbiAgICAgICAgLy8gc3VwcG9ydCBpZiB0aGUgY2FwdGlvbiBpcyBiaW5kZWQgaW4gdGhlIG9sZCBwcm9qZWN0cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICBpZiAoIXRoaXMuc2hvd2NhcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmNhcHRpb24gPSByYXRlLmxhYmVsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHRoZSBzZWxlY3RlZCBmbGFnIG9uIGRhdGFzZXRJdGVtcyBhbmQgYXNzaWduIHRoZSByYXRpbmdWYWx1ZS5cbiAgICAvKipcbiAgICAgKiBPbiBkYXRhdmFsdWUgY2hhbmdlLCB1cGRhdGUgdGhlIGNhcHRpb24sIHNlbGVjdGVkUmF0aW5nVmFsdWUuXG4gICAgICogMS4gaWYgZGF0YXNldEl0ZW1zIGNvbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW0gKGNoZWNrIHRoZSBzZWxlY3RlZCBmbGFnIG9uIGl0ZW0pLCBmaW5kIHRoZSBpbmRleCBvZiBzZWxlY3RlZCBpdGVtLlxuICAgICAqIDIuIGlmIG5vdCwganVzdCBjaGVjayBpZiB0aGUgZGF0YXZhbHVlIGlzIHByb3ZpZGVkIGFzIHRoZSBpbmRleCBvbiB0aGUgaXRlbS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhVmFsIGRhdGF2YWx1ZVxuICAgICAqL1xuICAgIG9uRGF0YXZhbHVlQ2hhbmdlKGRhdGFWYWwpIHtcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5kYXRhc2V0SXRlbXMpKSB7XG4gICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtID0gXy5maW5kKHRoaXMuZGF0YXNldEl0ZW1zLCB7J3NlbGVjdGVkJzogdHJ1ZX0pO1xuXG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbSAmJiAhXy5pc1VuZGVmaW5lZChkYXRhVmFsKSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IF8uZmluZCh0aGlzLmRhdGFzZXRJdGVtcywgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF8udG9TdHJpbmcoaXRlbS5pbmRleCkgPT09IGRhdGFWYWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAvLyByZXNldCB0aGUgIG1vZGVsIGlmIHRoZXJlIGlzIG5vIGl0ZW0gZm91bmQuXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmF0aW5nVmFsdWUgPSBzZWxlY3RlZEl0ZW0gPyBzZWxlY3RlZEl0ZW0uaW5kZXggOiAwO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9IHNlbGVjdGVkSXRlbS5sYWJlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gZGF0YXNldCBpcyBub3QgZ2l2ZW4gYnV0IGRhdGF2YWx1ZSBpcyBwcm92aWRlZCB3aGljaCBpcyBpbnRlZ2VyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRSYXRpbmdWYWx1ZSAmJiAhaXNOYU4oZGF0YVZhbCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmF0aW5nVmFsdWUgPSAocGFyc2VGbG9hdChkYXRhVmFsKSA8PSB0aGlzLm1heHZhbHVlKSA/IGRhdGFWYWwgOiB0aGlzLm1heHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yYXRpbmdzV2lkdGggPSB0aGlzLmNhbGN1bGF0ZVJhdGluZ3NXaWR0aChkYXRhVmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbGN1bGF0ZVJhdGluZ3NXaWR0aChkYXRhVmFsPzogYW55KSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmF0aW5nID0gcGFyc2VGbG9hdCh0aGlzLnNlbGVjdGVkUmF0aW5nVmFsdWUpLFxuICAgICAgICAgICAgc3RhcldpZHRoID0gMC45MjUsXG4gICAgICAgICAgICBtYXhWYWx1ZSA9IHBhcnNlSW50KHRoaXMubWF4dmFsdWUgfHwgdGhpcy5kYXRhc2V0SXRlbXMubGVuZ3RoLCAxMCkgfHwgREVGQVVMVF9SQVRJTkc7XG5cbiAgICAgICAgc2V0Q1NTKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5yYXRpbmdzLWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgICAgIChzdGFyV2lkdGggKiBtYXhWYWx1ZSkgKyAnZW0nXG4gICAgICAgICk7XG4gICAgICAgIGRhdGFWYWwgPSBkYXRhVmFsIHx8IHRoaXMuZGF0YXZhbHVlO1xuICAgICAgICBpZiAoZGF0YVZhbCA9PT0gdW5kZWZpbmVkIHx8IGRhdGFWYWwgPT09ICcnIHx8IGRhdGFWYWwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmF0aW5nIDw9IG1heFZhbHVlICYmIHNlbGVjdGVkUmF0aW5nID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZFJhdGluZyAqIHN0YXJXaWR0aCArICdlbSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmF0aW5nID4gbWF4VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXhWYWx1ZSAqIHN0YXJXaWR0aCArICdlbSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAncmVhZG9ubHknKSB7XG4gICAgICAgICAgICBpZiAobnYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJhdGluZ3NXaWR0aCA9IHRoaXMuY2FsY3VsYXRlUmF0aW5nc1dpZHRoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbWF4dmFsdWUnKSB7XG4gICAgICAgICAgICAvKiogU3RvcmluZyB0aGUgZGF0YXZhbHVlIGluIHRlbXAgdmFyaWFibGUgYW5kIGFzc2lnaW5nIGJhY2sgdG8gZGF0YXZhbHVlXG4gICAgICAgICAgICAgKiBhZnRlciBkZWZhdWx0IGRhdGFsaXN0IGlzIHByZXBhcmVkIHRvIHRyaWdnZXIgRGF0YXNldCBBd2FyZSBjbGFzcyBzZWxlY3QgY3ljbGVcbiAgICAgICAgICAgICAqIGFzIHRoZSBkYXRhdmFsdWUgcHJvcGVydHkgY2hhbmdlIGlzIHRyaWdnZXJpbmcgZmlyc3QgcmF0aGVyIHRoYW4gbWF4dmFsdWVcbiAgICAgICAgICAgICAqIGluIHRoZSByYXRpbmcgd2lkZ2V0IGlzIHVzZWQgaW5zaWRlIGEgZGF0YXRhYmxlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCB0ZW1wRGF0YVZhbHVlID0gdGhpcy5kYXRhdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnByZXBhcmVSYXRpbmdEYXRhc2V0KCk7XG4gICAgICAgICAgICAvLyByZXNldCBhbGwgdGhlIGl0ZW1zLlxuICAgICAgICAgICAgdGhpcy5yZXNldERhdGFzZXRJdGVtcygpO1xuICAgICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRlbXBEYXRhVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSB0ZW1wRGF0YVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZXRlY3QgdG91Y2ggZW5hYmxlZCBkZXZpY2VzICYgdXBkYXRlIGhvdmVyIHN0eWxlcyovXG4gICAgb25Ub3VjaFN0YXJ0KCRldmVudCkge1xuICAgICAgICB0aGlzLnRvdWNoRW5hYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25Ub3VjaFN0YXJ0ID0gbm9vcDtcbiAgICB9XG4gICAgb25Nb3VzZWxlYXZlKCkge1xuICAgICAgICB0aGlzLmNhcHRpb24gPSB0aGlzLmRpc3BsYXlWYWx1ZSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgb25Nb3VzZU92ZXIoJGV2ZW50LCByYXRlKSB7XG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IHJhdGUubGFiZWw7XG4gICAgICAgICF0aGlzLnRvdWNoRW5hYmxlZCAmJiAhJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3JhdGluZy1sYWJlbC1ob3ZlcicpICYmICRldmVudC50YXJnZXQuY2xhc3NMaXN0LmFkZCgncmF0aW5nLWxhYmVsLWhvdmVyJyk7XG4gICAgfVxufVxuIiwiPGRpdiBbKG5nTW9kZWwpXT1cIm1vZGVsQnlLZXlcIiAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCIgbmdEZWZhdWx0Q29udHJvbCBjbGFzcz1cInJhdGluZ3Mtd3JhcHBlclwiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPVwidHJ1ZVwiPlxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZG9ubHlcIiBjbGFzcz1cInJhdGluZy1zdHlsZVwiPlxuICAgICAgICA8bGFiZWwgKm5nRm9yPVwibGV0IHJhdGUgb2YgcmF0aW5nSXRlbXM7XCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInthY3RpdmUgOiByYXRlLmluZGV4IDw9IHNlbGVjdGVkUmF0aW5nVmFsdWV9XCJcbiAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnZm9udC1zaXplJyA6aWNvbnNpemUsIGNvbG9yOiByYXRlLmluZGV4IDw9IHNlbGVjdGVkUmF0aW5nVmFsdWUgJiYgaWNvbmNvbG9yfVwiXG4gICAgICAgICAgICAgICBbdGl0bGVdPVwicmF0ZS5sYWJlbCB8fCByYXRlLmluZGV4XCJcbiAgICAgICAgICAgICAgICh0b3VjaHN0YXJ0KT1cIm9uVG91Y2hTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgkZXZlbnQsIHJhdGUpXCJcbiAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwib25Nb3VzZU92ZXIoJGV2ZW50LCByYXRlKVwiXG4gICAgICAgICAgICAgICBbZm9yXT1cIl9pZCArICctJyArIHJhdGUuaW5kZXhcIj5cbiAgICAgICAgICAgIDxpbnB1dCAjcmF0aW5nSW5wdXQgdHlwZT1cInJhZGlvXCIgcm9sZT1cInJhZGlvXCIgW2F0dHIuYXJpYS1sYWJlbF09XCIocmF0ZS5sYWJlbCB8fCByYXRlLmluZGV4KSArICcgb3V0IG9mICcgKyByYXRpbmdJdGVtcy5sZW5ndGggKyAnIHJhdGluZ3MnXCIgW2F0dHIuYXJpYS1jaGVja2VkXT1cInJhdGUubGFiZWwgPT09IGRhdGF2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJfaWQgKyAnLScgKyByYXRlLmluZGV4XCIgKGNsaWNrKT1cIm9uUmF0aW5nQ2xpY2soJGV2ZW50LCByYXRlKVwiIG5hbWU9XCJyYXRpbmdzLWlkXCIgW3ZhbHVlXT1cInJhdGUua2V5IHx8IHJhdGUuaW5kZXhcIi8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3MuaGlkZGVuXT1cIiFyZWFkb25seVwiIFtuZ1N0eWxlXT1cInsnZm9udC1zaXplJyA6aWNvbnNpemV9XCIgY2xhc3M9XCJyYXRpbmdzLWNvbnRhaW5lciBkaXNhYmxlZFwiID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhdGluZ3MgYWN0aXZlXCIgW25nU3R5bGVdPVwie3dpZHRoOiByYXRpbmdzV2lkdGgsIGNvbG9yOiBpY29uY29sb3J9XCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGxhYmVsICpuZ0lmPVwic2hvd2NhcHRpb25zXCIgY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNhcHRpb25cIj48L2xhYmVsPlxuPC9kaXY+XG4iXX0=
@@ -1,12 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, Component, Optional, ViewChild, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
2
+ import { ElementRef, Component, ViewChild, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i3 from '@angular/forms';
5
+ import * as i2 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
7
- import * as i4 from '@wm/components/base';
7
+ import * as i3 from '@wm/components/base';
8
8
  import { PROP_STRING, PROP_ANY, PROP_NUMBER, PROP_BOOLEAN, register, registerFormWidget, styler, getOrderedDataset, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
9
- import * as i1 from '@wm/core';
10
9
  import { FormWidgetType, generateGUId, setCSS, noop } from '@wm/core';
11
10
  import { DatasetAwareFormComponent } from '@wm/components/input';
12
11
 
@@ -92,9 +91,8 @@ class RatingComponent extends DatasetAwareFormComponent {
92
91
  this._selectedRatingValue = val;
93
92
  this.calculateRatingsWidth();
94
93
  }
95
- constructor(inj, _viewParent) {
96
- super(inj, WIDGET_CONFIG, _viewParent);
97
- this._viewParent = _viewParent;
94
+ constructor(inj) {
95
+ super(inj, WIDGET_CONFIG);
98
96
  this._id = generateGUId();
99
97
  styler(this.nativeElement, this);
100
98
  // prepare the rating options on dataset ready.
@@ -255,7 +253,7 @@ class RatingComponent extends DatasetAwareFormComponent {
255
253
  }
256
254
  }
257
255
  RatingComponent.initializeProps = registerProps();
258
- RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.UserDefinedExecutionContext, 8)); };
256
+ RatingComponent.ɵfac = function RatingComponent_Factory(t) { return new (t || RatingComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
259
257
  RatingComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RatingComponent, selectors: [["", "wmRating", ""]], viewQuery: function RatingComponent_Query(rf, ctx) {
260
258
  if (rf & 1) {
261
259
  i0.ɵɵviewQuery(_c0, 5, ElementRef);
@@ -290,7 +288,7 @@ RatingComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RatingCompo
290
288
  i0.ɵɵadvance(1);
291
289
  i0.ɵɵproperty("ngIf", ctx.showcaptions);
292
290
  }
293
- }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.TextContentDirective], encapsulation: 2 });
291
+ }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.TextContentDirective], encapsulation: 2 });
294
292
  (function () {
295
293
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RatingComponent, [{
296
294
  type: Component,
@@ -298,11 +296,7 @@ RatingComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RatingCompo
298
296
  provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),
299
297
  provideAsWidgetRef(RatingComponent)
300
298
  ], template: "<div [(ngModel)]=\"modelByKey\" (focus)=\"onFocus($event)\" ngDefaultControl class=\"ratings-wrapper\" aria-multiselectable=\"true\">\n <div *ngIf=\"!readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <div [class.hidden]=\"!readonly\" [ngStyle]=\"{'font-size' :iconsize}\" class=\"ratings-container disabled\" >\n <div class=\"ratings active\" [ngStyle]=\"{width: ratingsWidth, color: iconcolor}\"></div>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n" }]
301
- }], function () {
302
- return [{ type: i0.Injector }, { type: i1.UserDefinedExecutionContext, decorators: [{
303
- type: Optional
304
- }] }];
305
- }, { ratingEl: [{
299
+ }], function () { return [{ type: i0.Injector }]; }, { ratingEl: [{
306
300
  type: ViewChild,
307
301
  args: ['ratingInput', /* TODO: add static flag */ { read: ElementRef }]
308
302
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/rating/src/rating.props.ts","../../../../../projects/components/widgets/input/rating/src/rating.component.html","../../../../../projects/components/widgets/input/rating/src/rating.component.ts","../../../../../projects/components/widgets/input/rating/src/rating.module.ts","../../../../../projects/components/widgets/input/rating/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 ratingProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['iconcolor', PROP_STRING],\n ['iconsize', PROP_STRING],\n ['maxvalue', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcaptions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-rating',\n ratingProps\n );\n registerFormWidget(\n FormWidgetType.RATING,\n new Map(ratingProps)\n );\n};\n","<div [(ngModel)]=\"modelByKey\" (focus)=\"onFocus($event)\" ngDefaultControl class=\"ratings-wrapper\" aria-multiselectable=\"true\">\n <div *ngIf=\"!readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <div [class.hidden]=\"!readonly\" [ngStyle]=\"{'font-size' :iconsize}\" class=\"ratings-container disabled\" >\n <div class=\"ratings active\" [ngStyle]=\"{width: ratingsWidth, color: iconcolor}\"></div>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n","import {Component, ElementRef, Injector, Optional, ViewChild} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {generateGUId, setCSS, noop, UserDefinedExecutionContext} from '@wm/core';\nimport { getOrderedDataset, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\n\nimport { registerProps } from './rating.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'app-ratings';\nconst WIDGET_CONFIG = {widgetType: 'wm-rating', hostClass: DEFAULT_CLS};\n\nconst MAX_RATING = 10;\nconst DEFAULT_RATING = 5;\n\n@Component({\n selector: '[wmRating]',\n templateUrl: './rating.component.html',\n providers: [\n provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RatingComponent)\n ]\n})\nexport class RatingComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public caption: string;\n public showcaptions: boolean;\n public maxvalue;\n\n private _selectedRatingValue;\n public ratingsWidth;\n private ratingItems;\n private _id;\n\n public iconsize: string;\n public iconcolor: string;\n public onFocus: any;\n private touchEnabled:boolean;\n @ViewChild('ratingInput', /* TODO: add static flag */ { read: ElementRef }) ratingEl: ElementRef;\n\n get selectedRatingValue() {\n return this._selectedRatingValue;\n }\n\n set selectedRatingValue(val) {\n this._selectedRatingValue = val;\n this.calculateRatingsWidth();\n }\n\n constructor(inj: Injector, @Optional() public _viewParent: UserDefinedExecutionContext) {\n super(inj, WIDGET_CONFIG, _viewParent);\n this._id = generateGUId();\n styler(this.nativeElement, this);\n\n // prepare the rating options on dataset ready.\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.prepareRatingDataset();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n // listen to changes in datavalue.\n const datavalueSubscription = this.datavalue$.subscribe(() => this.onDatavalueChange(this.datavalue));\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.ratingEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // This function returns the rating widget dataset containing the index, value and label\n private prepareRatingDataset() {\n if (!this.datasetItems.length) {\n this.ratingItems = [];\n this.caption = '';\n }\n\n let ratingItems = [];\n let data = this.datasetItems;\n const maxvalue = parseInt(this.maxvalue || this.datasetItems.length, 10);\n const maxValue = (maxvalue > MAX_RATING ? MAX_RATING : maxvalue) || DEFAULT_RATING;\n\n /**\n * 1. If datasetItems.length is more than maxValue (i.e. 10 ratings) then just extract maxValue of items from datasetItems.\n * 2. If datasetItems are not available then prepare ratings value depending on maxvalue. eg: 1,2,3 .. upto maxvalue\n * 3. If maxvalue / i value is more than datasetItems length, prepare default rating items for i values more than datasetItems.length\n */\n if (data.length && data.length > maxValue) {\n data = _.slice(data, 0, maxValue);\n }\n\n for (let i = maxValue; i > 0; i--) {\n if (!data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n if (i > data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n data = getOrderedDataset(data, 'index:desc');\n ratingItems = ratingItems.concat(data);\n break;\n }\n }\n }\n\n this.ratingItems = ratingItems;\n if (!data.length) { // constructs default datasetItems when there is no dataset binding.\n this.datasetItems = ratingItems;\n }\n this.onDatavalueChange(this.datavalue);\n }\n\n onRatingClick($event, rate) {\n this.modelByKey = rate.key;\n this.selectedRatingValue = rate.index;\n\n // support if the caption is binded in the old projects for backward compatibility\n if (!this.showcaptions) {\n this.caption = rate.label;\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // Update the selected flag on datasetItems and assign the ratingValue.\n /**\n * On datavalue change, update the caption, selectedRatingValue.\n * 1. if datasetItems contain the selected item (check the selected flag on item), find the index of selected item.\n * 2. if not, just check if the datavalue is provided as the index on the item.\n *\n * @param dataVal datavalue\n */\n onDatavalueChange(dataVal) {\n if (!_.isEmpty(this.datasetItems)) {\n let selectedItem = _.find(this.datasetItems, {'selected': true});\n\n if (!selectedItem && !_.isUndefined(dataVal)) {\n selectedItem = _.find(this.datasetItems, function (item) {\n return _.toString(item.index) === dataVal;\n });\n if (selectedItem) {\n selectedItem.selected = true;\n }\n }\n\n if (!selectedItem) {\n // reset the model if there is no item found.\n this.modelByKey = undefined;\n this.caption = '';\n }\n\n this.selectedRatingValue = selectedItem ? selectedItem.index : 0;\n if (selectedItem) {\n this.caption = selectedItem.label;\n }\n } else {\n this.selectedRatingValue = 0;\n }\n if (this.readonly) {\n // when dataset is not given but datavalue is provided which is integer\n if (!this.selectedRatingValue && !isNaN(dataVal)) {\n this.selectedRatingValue = (parseFloat(dataVal) <= this.maxvalue) ? dataVal : this.maxvalue;\n }\n this.ratingsWidth = this.calculateRatingsWidth(dataVal);\n }\n }\n\n calculateRatingsWidth(dataVal?: any) {\n const selectedRating = parseFloat(this.selectedRatingValue),\n starWidth = 0.925,\n maxValue = parseInt(this.maxvalue || this.datasetItems.length, 10) || DEFAULT_RATING;\n\n setCSS(\n this.nativeElement.querySelector('.ratings-container') as HTMLElement,\n 'width',\n (starWidth * maxValue) + 'em'\n );\n dataVal = dataVal || this.datavalue;\n if (dataVal === undefined || dataVal === '' || dataVal === null) {\n this.caption = '';\n return 0;\n }\n if (selectedRating <= maxValue && selectedRating >= 0) {\n return selectedRating * starWidth + 'em';\n }\n if (selectedRating > maxValue) {\n return maxValue * starWidth + 'em';\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'readonly') {\n if (nv) {\n this.ratingsWidth = this.calculateRatingsWidth();\n }\n } else if (key === 'maxvalue') {\n /** Storing the datavalue in temp variable and assiging back to datavalue\n * after default datalist is prepared to trigger Dataset Aware class select cycle\n * as the datavalue property change is triggering first rather than maxvalue\n * in the rating widget is used inside a datatable\n */\n let tempDataValue = this.datavalue;\n this.prepareRatingDataset();\n // reset all the items.\n this.resetDatasetItems();\n if (!_.isUndefined(tempDataValue)) {\n this.datavalue = tempDataValue;\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /* Detect touch enabled devices & update hover styles*/\n onTouchStart($event) {\n this.touchEnabled = true;\n this.onTouchStart = noop;\n }\n onMouseleave() {\n this.caption = this.displayValue as string;\n }\n\n onMouseOver($event, rate) {\n this.caption = rate.label;\n !this.touchEnabled && !$event.target.classList.contains('rating-label-hover') && $event.target.classList.add('rating-label-hover');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RatingComponent } from './rating.component';\n\nconst components = [\n RatingComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RatingModule {\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/rating/src/rating.props.ts","../../../../../projects/components/widgets/input/rating/src/rating.component.html","../../../../../projects/components/widgets/input/rating/src/rating.component.ts","../../../../../projects/components/widgets/input/rating/src/rating.module.ts","../../../../../projects/components/widgets/input/rating/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 ratingProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['iconcolor', PROP_STRING],\n ['iconsize', PROP_STRING],\n ['maxvalue', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcaptions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-rating',\n ratingProps\n );\n registerFormWidget(\n FormWidgetType.RATING,\n new Map(ratingProps)\n );\n};\n","<div [(ngModel)]=\"modelByKey\" (focus)=\"onFocus($event)\" ngDefaultControl class=\"ratings-wrapper\" aria-multiselectable=\"true\">\n <div *ngIf=\"!readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <div [class.hidden]=\"!readonly\" [ngStyle]=\"{'font-size' :iconsize}\" class=\"ratings-container disabled\" >\n <div class=\"ratings active\" [ngStyle]=\"{width: ratingsWidth, color: iconcolor}\"></div>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n","import {Component, ElementRef, Injector, Optional, ViewChild} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {generateGUId, setCSS, noop, UserDefinedExecutionContext} from '@wm/core';\nimport { getOrderedDataset, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\n\nimport { registerProps } from './rating.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'app-ratings';\nconst WIDGET_CONFIG = {widgetType: 'wm-rating', hostClass: DEFAULT_CLS};\n\nconst MAX_RATING = 10;\nconst DEFAULT_RATING = 5;\n\n@Component({\n selector: '[wmRating]',\n templateUrl: './rating.component.html',\n providers: [\n provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RatingComponent)\n ]\n})\nexport class RatingComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public caption: string;\n public showcaptions: boolean;\n public maxvalue;\n\n private _selectedRatingValue;\n public ratingsWidth;\n private ratingItems;\n private _id;\n\n public iconsize: string;\n public iconcolor: string;\n public onFocus: any;\n private touchEnabled:boolean;\n @ViewChild('ratingInput', /* TODO: add static flag */ { read: ElementRef }) ratingEl: ElementRef;\n\n get selectedRatingValue() {\n return this._selectedRatingValue;\n }\n\n set selectedRatingValue(val) {\n this._selectedRatingValue = val;\n this.calculateRatingsWidth();\n }\n\n constructor(inj: Injector) {\n super(inj, WIDGET_CONFIG);\n this._id = generateGUId();\n styler(this.nativeElement, this);\n\n // prepare the rating options on dataset ready.\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.prepareRatingDataset();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n // listen to changes in datavalue.\n const datavalueSubscription = this.datavalue$.subscribe(() => this.onDatavalueChange(this.datavalue));\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.ratingEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // This function returns the rating widget dataset containing the index, value and label\n private prepareRatingDataset() {\n if (!this.datasetItems.length) {\n this.ratingItems = [];\n this.caption = '';\n }\n\n let ratingItems = [];\n let data = this.datasetItems;\n const maxvalue = parseInt(this.maxvalue || this.datasetItems.length, 10);\n const maxValue = (maxvalue > MAX_RATING ? MAX_RATING : maxvalue) || DEFAULT_RATING;\n\n /**\n * 1. If datasetItems.length is more than maxValue (i.e. 10 ratings) then just extract maxValue of items from datasetItems.\n * 2. If datasetItems are not available then prepare ratings value depending on maxvalue. eg: 1,2,3 .. upto maxvalue\n * 3. If maxvalue / i value is more than datasetItems length, prepare default rating items for i values more than datasetItems.length\n */\n if (data.length && data.length > maxValue) {\n data = _.slice(data, 0, maxValue);\n }\n\n for (let i = maxValue; i > 0; i--) {\n if (!data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n if (i > data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n data = getOrderedDataset(data, 'index:desc');\n ratingItems = ratingItems.concat(data);\n break;\n }\n }\n }\n\n this.ratingItems = ratingItems;\n if (!data.length) { // constructs default datasetItems when there is no dataset binding.\n this.datasetItems = ratingItems;\n }\n this.onDatavalueChange(this.datavalue);\n }\n\n onRatingClick($event, rate) {\n this.modelByKey = rate.key;\n this.selectedRatingValue = rate.index;\n\n // support if the caption is binded in the old projects for backward compatibility\n if (!this.showcaptions) {\n this.caption = rate.label;\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // Update the selected flag on datasetItems and assign the ratingValue.\n /**\n * On datavalue change, update the caption, selectedRatingValue.\n * 1. if datasetItems contain the selected item (check the selected flag on item), find the index of selected item.\n * 2. if not, just check if the datavalue is provided as the index on the item.\n *\n * @param dataVal datavalue\n */\n onDatavalueChange(dataVal) {\n if (!_.isEmpty(this.datasetItems)) {\n let selectedItem = _.find(this.datasetItems, {'selected': true});\n\n if (!selectedItem && !_.isUndefined(dataVal)) {\n selectedItem = _.find(this.datasetItems, function (item) {\n return _.toString(item.index) === dataVal;\n });\n if (selectedItem) {\n selectedItem.selected = true;\n }\n }\n\n if (!selectedItem) {\n // reset the model if there is no item found.\n this.modelByKey = undefined;\n this.caption = '';\n }\n\n this.selectedRatingValue = selectedItem ? selectedItem.index : 0;\n if (selectedItem) {\n this.caption = selectedItem.label;\n }\n } else {\n this.selectedRatingValue = 0;\n }\n if (this.readonly) {\n // when dataset is not given but datavalue is provided which is integer\n if (!this.selectedRatingValue && !isNaN(dataVal)) {\n this.selectedRatingValue = (parseFloat(dataVal) <= this.maxvalue) ? dataVal : this.maxvalue;\n }\n this.ratingsWidth = this.calculateRatingsWidth(dataVal);\n }\n }\n\n calculateRatingsWidth(dataVal?: any) {\n const selectedRating = parseFloat(this.selectedRatingValue),\n starWidth = 0.925,\n maxValue = parseInt(this.maxvalue || this.datasetItems.length, 10) || DEFAULT_RATING;\n\n setCSS(\n this.nativeElement.querySelector('.ratings-container') as HTMLElement,\n 'width',\n (starWidth * maxValue) + 'em'\n );\n dataVal = dataVal || this.datavalue;\n if (dataVal === undefined || dataVal === '' || dataVal === null) {\n this.caption = '';\n return 0;\n }\n if (selectedRating <= maxValue && selectedRating >= 0) {\n return selectedRating * starWidth + 'em';\n }\n if (selectedRating > maxValue) {\n return maxValue * starWidth + 'em';\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'readonly') {\n if (nv) {\n this.ratingsWidth = this.calculateRatingsWidth();\n }\n } else if (key === 'maxvalue') {\n /** Storing the datavalue in temp variable and assiging back to datavalue\n * after default datalist is prepared to trigger Dataset Aware class select cycle\n * as the datavalue property change is triggering first rather than maxvalue\n * in the rating widget is used inside a datatable\n */\n let tempDataValue = this.datavalue;\n this.prepareRatingDataset();\n // reset all the items.\n this.resetDatasetItems();\n if (!_.isUndefined(tempDataValue)) {\n this.datavalue = tempDataValue;\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /* Detect touch enabled devices & update hover styles*/\n onTouchStart($event) {\n this.touchEnabled = true;\n this.onTouchStart = noop;\n }\n onMouseleave() {\n this.caption = this.displayValue as string;\n }\n\n onMouseOver($event, rate) {\n this.caption = rate.label;\n !this.touchEnabled && !$event.target.classList.contains('rating-label-hover') && $event.target.classList.add('rating-label-hover');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RatingComponent } from './rating.component';\n\nconst components = [\n RatingComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}