@wavemaker/app-ng-runtime 11.13.0-rc.6255 → 11.14.0-rc.232

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 (1026) hide show
  1. package/build-task/bundles/index.umd.js +34 -5
  2. package/build-task/esm2022/basic/anchor/anchor.build.mjs +15 -0
  3. package/build-task/esm2022/basic/audio/audio.build.mjs +10 -0
  4. package/build-task/esm2022/basic/html/html.build.mjs +15 -0
  5. package/build-task/esm2022/basic/icon/icon.build.mjs +10 -0
  6. package/build-task/esm2022/basic/iframe/iframe.build.mjs +10 -0
  7. package/build-task/esm2022/basic/label/label.build.mjs +25 -0
  8. package/build-task/esm2022/basic/picture/picture.build.mjs +14 -0
  9. package/build-task/esm2022/basic/spinner/spinner.build.mjs +15 -0
  10. package/build-task/esm2022/basic/video/video.build.mjs +10 -0
  11. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +8 -3
  12. package/build-task/esm2022/data/form/form.build.mjs +8 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +14 -3
  14. package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +2 -2
  15. package/build-task/esm2022/page/page-content/page-content.build.mjs +8 -2
  16. package/build-task/esm2022/public_api.mjs +10 -10
  17. package/build-task/fesm2022/index.mjs +36 -7
  18. package/build-task/fesm2022/index.mjs.map +1 -1
  19. package/build-task/package.json +3 -6
  20. package/build-task/public_api.d.ts +9 -9
  21. package/components/advanced/carousel/bundles/index.umd.js +33 -38
  22. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +16 -16
  23. package/components/advanced/carousel/esm2022/carousel.directive.mjs +19 -24
  24. package/components/advanced/carousel/fesm2022/index.mjs +34 -39
  25. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  26. package/components/advanced/carousel/package.json +0 -3
  27. package/components/advanced/custom/bundles/index.umd.js +48 -48
  28. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -1
  29. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +31 -31
  30. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +15 -15
  31. package/components/advanced/custom/fesm2022/index.mjs +45 -45
  32. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/custom/package.json +0 -3
  34. package/components/advanced/login/bundles/index.umd.js +33 -53
  35. package/components/advanced/login/esm2022/login.component.mjs +26 -47
  36. package/components/advanced/login/fesm2022/index.mjs +27 -47
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +1 -1
  39. package/components/advanced/login/package.json +0 -3
  40. package/components/advanced/marquee/bundles/index.umd.js +19 -19
  41. package/components/advanced/marquee/esm2022/marquee.directive.mjs +20 -20
  42. package/components/advanced/marquee/fesm2022/index.mjs +20 -20
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/package.json +0 -3
  45. package/components/base/bundles/index.umd.js +4275 -4244
  46. package/components/base/esm2022/pipes/custom-pipes.mjs +14 -12
  47. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -3
  48. package/components/base/esm2022/public_api.mjs +1 -2
  49. package/components/base/esm2022/utils/widget-utils.mjs +4 -2
  50. package/components/base/esm2022/widgets/common/container/container.directive.mjs +154 -1
  51. package/components/base/esm2022/widgets/common/container/container.props.mjs +7 -2
  52. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +1 -1
  53. package/components/base/fesm2022/index.mjs +4279 -4248
  54. package/components/base/fesm2022/index.mjs.map +1 -1
  55. package/components/base/package.json +2 -2
  56. package/components/base/pipes/custom-pipes.d.ts +4 -2
  57. package/components/base/pipes/wm-pipe.d.ts +1 -1
  58. package/components/base/public_api.d.ts +0 -1
  59. package/components/base/widgets/common/container/container.directive.d.ts +9 -0
  60. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +0 -2
  61. package/components/basic/anchor/bundles/index.umd.js +192 -0
  62. package/components/basic/anchor/esm2022/anchor.component.mjs +143 -0
  63. package/components/basic/anchor/esm2022/anchor.props.mjs +27 -0
  64. package/components/basic/anchor/esm2022/index.mjs +5 -0
  65. package/components/basic/anchor/esm2022/public_api.mjs +2 -0
  66. package/components/basic/anchor/fesm2022/index.mjs +175 -0
  67. package/components/basic/anchor/fesm2022/index.mjs.map +1 -0
  68. package/components/basic/{progress → anchor}/index.d.ts +1 -1
  69. package/components/basic/{default → anchor}/package.json +1 -4
  70. package/components/basic/anchor/public_api.d.ts +1 -0
  71. package/components/basic/audio/bundles/index.umd.js +83 -0
  72. package/components/basic/audio/esm2022/audio.component.mjs +41 -0
  73. package/components/basic/audio/esm2022/audio.props.mjs +19 -0
  74. package/components/{input/epoch → basic/audio}/esm2022/index.mjs +1 -1
  75. package/components/basic/audio/esm2022/public_api.mjs +2 -0
  76. package/components/basic/audio/fesm2022/index.mjs +65 -0
  77. package/components/basic/audio/fesm2022/index.mjs.map +1 -0
  78. package/components/{input/epoch → basic/audio}/index.d.ts +1 -1
  79. package/components/{input/default → basic/audio}/package.json +2 -5
  80. package/components/basic/audio/public_api.d.ts +1 -0
  81. package/components/basic/html/bundles/index.umd.js +110 -0
  82. package/components/basic/html/esm2022/html.directive.mjs +76 -0
  83. package/components/basic/html/esm2022/html.props.mjs +12 -0
  84. package/components/basic/html/esm2022/index.mjs +5 -0
  85. package/components/basic/html/esm2022/public_api.mjs +2 -0
  86. package/components/basic/html/fesm2022/index.mjs +93 -0
  87. package/components/basic/html/fesm2022/index.mjs.map +1 -0
  88. package/components/basic/{default → html}/index.d.ts +1 -1
  89. package/components/{input/epoch → basic/html}/package.json +1 -4
  90. package/components/basic/html/public_api.d.ts +1 -0
  91. package/components/basic/icon/bundles/index.umd.js +80 -0
  92. package/components/basic/icon/esm2022/icon.component.mjs +38 -0
  93. package/components/basic/icon/esm2022/icon.props.mjs +19 -0
  94. package/components/basic/icon/esm2022/index.mjs +5 -0
  95. package/components/basic/icon/esm2022/public_api.mjs +2 -0
  96. package/components/basic/icon/fesm2022/index.mjs +62 -0
  97. package/components/basic/icon/fesm2022/index.mjs.map +1 -0
  98. package/components/{input/default → basic/icon}/index.d.ts +1 -1
  99. package/components/basic/{progress → icon}/package.json +1 -4
  100. package/components/basic/icon/public_api.d.ts +1 -0
  101. package/components/basic/iframe/.npmignore +2 -0
  102. package/components/basic/iframe/bundles/index.umd.js +101 -0
  103. package/components/basic/iframe/esm2022/iframe.component.mjs +65 -0
  104. package/components/basic/iframe/esm2022/iframe.props.mjs +15 -0
  105. package/components/basic/iframe/esm2022/index.mjs +5 -0
  106. package/components/basic/iframe/esm2022/public_api.mjs +2 -0
  107. package/components/basic/iframe/fesm2022/index.mjs +84 -0
  108. package/components/basic/iframe/fesm2022/index.mjs.map +1 -0
  109. package/components/basic/iframe/index.d.ts +5 -0
  110. package/components/basic/iframe/package.json +20 -0
  111. package/components/basic/iframe/public_api.d.ts +1 -0
  112. package/components/basic/label/.npmignore +2 -0
  113. package/components/basic/label/bundles/index.umd.js +109 -0
  114. package/components/basic/label/esm2022/index.mjs +5 -0
  115. package/components/basic/label/esm2022/label.directive.mjs +71 -0
  116. package/components/basic/label/esm2022/label.props.mjs +17 -0
  117. package/components/basic/label/esm2022/public_api.mjs +2 -0
  118. package/components/basic/label/fesm2022/index.mjs +93 -0
  119. package/components/basic/label/fesm2022/index.mjs.map +1 -0
  120. package/components/basic/label/index.d.ts +5 -0
  121. package/components/basic/{default/label → label}/label.directive.d.ts +1 -1
  122. package/components/basic/label/package.json +20 -0
  123. package/components/basic/label/public_api.d.ts +1 -0
  124. package/components/basic/picture/.npmignore +2 -0
  125. package/components/basic/picture/bundles/index.umd.js +138 -0
  126. package/components/basic/{default → picture}/esm2022/index.mjs +1 -1
  127. package/components/basic/picture/esm2022/picture.directive.mjs +93 -0
  128. package/components/basic/picture/esm2022/picture.props.mjs +23 -0
  129. package/components/basic/picture/esm2022/public_api.mjs +2 -0
  130. package/components/basic/picture/fesm2022/index.mjs +121 -0
  131. package/components/basic/picture/fesm2022/index.mjs.map +1 -0
  132. package/components/basic/picture/index.d.ts +5 -0
  133. package/components/basic/picture/package.json +20 -0
  134. package/components/basic/picture/public_api.d.ts +1 -0
  135. package/components/basic/progress/progress-bar/.npmignore +2 -0
  136. package/components/basic/progress/progress-bar/bundles/index.umd.js +170 -0
  137. package/components/basic/progress/progress-bar/esm2022/index.mjs +5 -0
  138. package/components/basic/progress/progress-bar/esm2022/progress-bar.component.mjs +130 -0
  139. package/components/basic/progress/{esm2022/progress-bar → progress-bar/esm2022}/progress-bar.props.mjs +1 -1
  140. package/components/basic/progress/progress-bar/esm2022/public_api.mjs +2 -0
  141. package/components/basic/progress/progress-bar/fesm2022/index.mjs +154 -0
  142. package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -0
  143. package/components/basic/progress/progress-bar/index.d.ts +5 -0
  144. package/components/basic/progress/progress-bar/package.json +20 -0
  145. package/components/basic/progress/progress-bar/public_api.d.ts +1 -0
  146. package/components/basic/progress/progress-circle/.npmignore +2 -0
  147. package/components/basic/progress/progress-circle/bundles/index.umd.js +161 -0
  148. package/components/basic/progress/progress-circle/esm2022/index.mjs +5 -0
  149. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +120 -0
  150. package/components/basic/progress/{esm2022/progress-circle → progress-circle/esm2022}/progress-circle.props.mjs +1 -1
  151. package/components/basic/progress/progress-circle/esm2022/public_api.mjs +2 -0
  152. package/components/basic/progress/progress-circle/fesm2022/index.mjs +145 -0
  153. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -0
  154. package/components/basic/progress/progress-circle/index.d.ts +5 -0
  155. package/components/basic/progress/progress-circle/package.json +20 -0
  156. package/components/basic/progress/progress-circle/public_api.d.ts +1 -0
  157. package/components/basic/progress/progress-utils/.npmignore +2 -0
  158. package/components/basic/progress/progress-utils/bundles/index.umd.js +35 -0
  159. package/components/basic/progress/progress-utils/esm2022/index.mjs +5 -0
  160. package/components/basic/progress/progress-utils/esm2022/progress-utils.mjs +25 -0
  161. package/components/basic/progress/progress-utils/esm2022/public_api.mjs +2 -0
  162. package/components/basic/progress/progress-utils/fesm2022/index.mjs +32 -0
  163. package/components/basic/progress/progress-utils/fesm2022/index.mjs.map +1 -0
  164. package/components/basic/progress/progress-utils/index.d.ts +5 -0
  165. package/components/basic/progress/progress-utils/package.json +20 -0
  166. package/components/basic/progress/progress-utils/public_api.d.ts +1 -0
  167. package/components/basic/rich-text-editor/bundles/index.umd.js +23 -40
  168. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +19 -38
  169. package/components/basic/rich-text-editor/fesm2022/index.mjs +21 -39
  170. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  171. package/components/basic/rich-text-editor/package.json +0 -3
  172. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  173. package/components/basic/search/bundles/index.umd.js +109 -313
  174. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -14
  175. package/components/basic/search/esm2022/search.component.mjs +40 -246
  176. package/components/basic/search/fesm2022/index.mjs +52 -256
  177. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  178. package/components/basic/search/package.json +0 -3
  179. package/components/basic/search/scrollable.directive.d.ts +2 -3
  180. package/components/basic/search/search.component.d.ts +1 -1
  181. package/components/basic/spinner/.npmignore +2 -0
  182. package/components/basic/spinner/bundles/index.umd.js +118 -0
  183. package/components/{input/default → basic/spinner}/esm2022/index.mjs +1 -1
  184. package/components/basic/spinner/esm2022/public_api.mjs +2 -0
  185. package/components/basic/spinner/esm2022/spinner.component.mjs +79 -0
  186. package/components/basic/spinner/esm2022/spinner.props.mjs +20 -0
  187. package/components/basic/spinner/fesm2022/index.mjs +103 -0
  188. package/components/basic/spinner/fesm2022/index.mjs.map +1 -0
  189. package/components/basic/spinner/index.d.ts +5 -0
  190. package/components/basic/spinner/package.json +20 -0
  191. package/components/basic/spinner/public_api.d.ts +1 -0
  192. package/components/basic/tree/bundles/index.umd.js +34 -38
  193. package/components/basic/tree/esm2022/tree.component.mjs +31 -36
  194. package/components/basic/tree/fesm2022/index.mjs +32 -36
  195. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  196. package/components/basic/tree/package.json +0 -3
  197. package/components/basic/video/.npmignore +2 -0
  198. package/components/basic/video/bundles/index.umd.js +116 -0
  199. package/components/basic/video/esm2022/index.mjs +5 -0
  200. package/components/basic/video/esm2022/public_api.mjs +2 -0
  201. package/components/basic/video/esm2022/video.component.mjs +70 -0
  202. package/components/basic/video/esm2022/video.props.mjs +24 -0
  203. package/components/basic/video/fesm2022/index.mjs +99 -0
  204. package/components/basic/video/fesm2022/index.mjs.map +1 -0
  205. package/components/basic/video/index.d.ts +5 -0
  206. package/components/basic/video/package.json +20 -0
  207. package/components/basic/video/public_api.d.ts +1 -0
  208. package/components/chart/bundles/index.umd.js +22 -75
  209. package/components/chart/esm2022/chart.component.mjs +20 -74
  210. package/components/chart/fesm2022/index.mjs +21 -74
  211. package/components/chart/fesm2022/index.mjs.map +1 -1
  212. package/components/chart/package.json +0 -3
  213. package/components/containers/accordion/bundles/index.umd.js +45 -100
  214. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +19 -70
  215. package/components/containers/accordion/esm2022/accordion.directive.mjs +24 -29
  216. package/components/containers/accordion/fesm2022/index.mjs +43 -98
  217. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  218. package/components/containers/accordion/package.json +0 -3
  219. package/components/containers/layout-grid/bundles/index.umd.js +60 -60
  220. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +23 -23
  221. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +20 -20
  222. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +20 -20
  223. package/components/containers/layout-grid/fesm2022/index.mjs +61 -61
  224. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  225. package/components/containers/layout-grid/package.json +0 -3
  226. package/components/containers/linear-layout/bundles/index.umd.js +38 -38
  227. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +20 -20
  228. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +20 -20
  229. package/components/containers/linear-layout/fesm2022/index.mjs +39 -39
  230. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  231. package/components/containers/linear-layout/package.json +0 -3
  232. package/components/containers/panel/bundles/index.umd.js +62 -223
  233. package/components/containers/panel/esm2022/panel.component.mjs +29 -190
  234. package/components/containers/panel/fesm2022/index.mjs +29 -190
  235. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  236. package/components/containers/panel/package.json +0 -3
  237. package/components/containers/tabs/bundles/index.umd.js +95 -204
  238. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +34 -51
  239. package/components/containers/tabs/esm2022/tabs.component.mjs +29 -123
  240. package/components/containers/tabs/fesm2022/index.mjs +61 -170
  241. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  242. package/components/containers/tabs/package.json +0 -3
  243. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -4
  244. package/components/containers/tile/bundles/index.umd.js +19 -19
  245. package/components/containers/tile/esm2022/tile.directive.mjs +20 -20
  246. package/components/containers/tile/fesm2022/index.mjs +20 -20
  247. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  248. package/components/containers/tile/package.json +0 -3
  249. package/components/containers/wizard/bundles/index.umd.js +119 -302
  250. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +21 -21
  251. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +32 -45
  252. package/components/containers/wizard/esm2022/wizard.component.mjs +30 -201
  253. package/components/containers/wizard/fesm2022/index.mjs +81 -264
  254. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  255. package/components/containers/wizard/package.json +0 -3
  256. package/components/containers/wizard/wizard.component.d.ts +1 -1
  257. package/components/data/card/bundles/index.umd.js +108 -208
  258. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +15 -15
  259. package/components/data/card/esm2022/card-content/card-content.component.mjs +19 -34
  260. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +15 -15
  261. package/components/data/card/esm2022/card.component.mjs +21 -107
  262. package/components/data/card/fesm2022/index.mjs +67 -167
  263. package/components/data/card/fesm2022/index.mjs.map +1 -1
  264. package/components/data/card/package.json +0 -3
  265. package/components/data/form/bundles/index.umd.js +287 -467
  266. package/components/data/form/esm2022/form-action/form-action.directive.mjs +22 -22
  267. package/components/data/form/esm2022/form-field/form-field.directive.mjs +80 -91
  268. package/components/data/form/esm2022/form-widget.directive.mjs +31 -31
  269. package/components/data/form/esm2022/form.component.mjs +88 -251
  270. package/components/data/form/esm2022/form.props.mjs +1 -1
  271. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +19 -24
  272. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +15 -15
  273. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +15 -15
  274. package/components/data/form/esm2022/live-form/live-form.directive.mjs +23 -25
  275. package/components/data/form/fesm2022/index.mjs +288 -468
  276. package/components/data/form/fesm2022/index.mjs.map +1 -1
  277. package/components/data/form/package.json +0 -3
  278. package/components/data/list/bundles/index.umd.js +80 -360
  279. package/components/data/list/esm2022/list-item.directive.mjs +27 -34
  280. package/components/data/list/esm2022/list.animator.mjs +1 -1
  281. package/components/data/list/esm2022/list.component.mjs +55 -330
  282. package/components/data/list/esm2022/list.props.mjs +1 -1
  283. package/components/data/list/fesm2022/index.mjs +79 -358
  284. package/components/data/list/fesm2022/index.mjs.map +1 -1
  285. package/components/data/list/list-item.directive.d.ts +3 -3
  286. package/components/data/list/list.component.d.ts +2 -4
  287. package/components/data/list/package.json +0 -3
  288. package/components/data/live-table/bundles/index.umd.js +28 -39
  289. package/components/data/live-table/esm2022/live-table.component.mjs +25 -37
  290. package/components/data/live-table/fesm2022/index.mjs +26 -37
  291. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  292. package/components/data/live-table/package.json +0 -3
  293. package/components/data/pagination/bundles/index.umd.js +33 -505
  294. package/components/data/pagination/esm2022/pagination.component.mjs +33 -507
  295. package/components/data/pagination/esm2022/pagination.props.mjs +1 -1
  296. package/components/data/pagination/fesm2022/index.mjs +32 -505
  297. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  298. package/components/data/pagination/package.json +0 -3
  299. package/components/data/pagination/pagination.component.d.ts +1 -1
  300. package/components/data/table/bundles/index.umd.js +310 -457
  301. package/components/data/table/esm2022/table-action/table-action.directive.mjs +22 -22
  302. package/components/data/table/esm2022/table-column/table-column.directive.mjs +50 -71
  303. package/components/data/table/esm2022/table-column/table-column.props.mjs +1 -1
  304. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +26 -26
  305. package/components/data/table/esm2022/table-cud.directive.mjs +15 -15
  306. package/components/data/table/esm2022/table-filter.directive.mjs +16 -16
  307. package/components/data/table/esm2022/table-row/table-row.directive.mjs +24 -24
  308. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +29 -29
  309. package/components/data/table/esm2022/table.component.mjs +135 -263
  310. package/components/data/table/esm2022/table.props.mjs +2 -1
  311. package/components/data/table/fesm2022/index.mjs +312 -459
  312. package/components/data/table/fesm2022/index.mjs.map +1 -1
  313. package/components/data/table/package.json +0 -3
  314. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  315. package/components/data/table/table.component.d.ts +3 -0
  316. package/components/dialogs/alert-dialog/bundles/index.umd.js +50 -79
  317. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +32 -62
  318. package/components/dialogs/alert-dialog/fesm2022/index.mjs +32 -61
  319. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  320. package/components/dialogs/alert-dialog/package.json +0 -3
  321. package/components/dialogs/confirm-dialog/bundles/index.umd.js +36 -72
  322. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +34 -71
  323. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +35 -71
  324. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  325. package/components/dialogs/confirm-dialog/package.json +0 -3
  326. package/components/dialogs/default/bundles/index.umd.js +101 -245
  327. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +4 -1
  328. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -14
  329. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -18
  330. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +20 -20
  331. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +39 -181
  332. package/components/dialogs/default/fesm2022/index.mjs +85 -229
  333. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  334. package/components/dialogs/default/package.json +0 -3
  335. package/components/dialogs/design-dialog/bundles/index.umd.js +52 -108
  336. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +50 -107
  337. package/components/dialogs/design-dialog/fesm2022/index.mjs +51 -107
  338. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  339. package/components/dialogs/design-dialog/package.json +0 -3
  340. package/components/dialogs/iframe-dialog/bundles/index.umd.js +33 -81
  341. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +32 -82
  342. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +33 -82
  343. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  344. package/components/dialogs/iframe-dialog/package.json +0 -3
  345. package/components/dialogs/login-dialog/bundles/index.umd.js +22 -29
  346. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +23 -30
  347. package/components/dialogs/login-dialog/fesm2022/index.mjs +23 -30
  348. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  349. package/components/dialogs/login-dialog/package.json +0 -3
  350. package/components/dialogs/partial-dialog/bundles/index.umd.js +39 -85
  351. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +38 -85
  352. package/components/dialogs/partial-dialog/fesm2022/index.mjs +39 -85
  353. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  354. package/components/dialogs/partial-dialog/package.json +0 -3
  355. package/components/input/base-form/.npmignore +2 -0
  356. package/components/input/base-form/bundles/index.umd.js +133 -0
  357. package/components/input/base-form/esm2022/base-form.component.mjs +110 -0
  358. package/components/input/base-form/esm2022/index.mjs +5 -0
  359. package/components/input/base-form/esm2022/public_api.mjs +2 -0
  360. package/components/input/base-form/fesm2022/index.mjs +117 -0
  361. package/components/input/base-form/fesm2022/index.mjs.map +1 -0
  362. package/components/input/base-form/index.d.ts +5 -0
  363. package/components/input/base-form/package.json +20 -0
  364. package/components/input/base-form/public_api.d.ts +1 -0
  365. package/components/input/base-form-custom/.npmignore +2 -0
  366. package/components/input/{default → base-form-custom}/base-form-custom.component.d.ts +1 -1
  367. package/components/input/base-form-custom/bundles/index.umd.js +118 -0
  368. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +94 -0
  369. package/components/input/base-form-custom/esm2022/index.mjs +5 -0
  370. package/components/input/base-form-custom/esm2022/public_api.mjs +2 -0
  371. package/components/input/base-form-custom/fesm2022/index.mjs +101 -0
  372. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -0
  373. package/components/input/base-form-custom/index.d.ts +5 -0
  374. package/components/input/base-form-custom/package.json +20 -0
  375. package/components/input/base-form-custom/public_api.d.ts +1 -0
  376. package/components/input/button/.npmignore +2 -0
  377. package/components/input/button/bundles/index.umd.js +98 -0
  378. package/components/input/button/esm2022/button.component.mjs +50 -0
  379. package/components/input/button/esm2022/button.props.mjs +26 -0
  380. package/components/input/button/esm2022/index.mjs +5 -0
  381. package/components/input/button/esm2022/public_api.mjs +2 -0
  382. package/components/input/button/fesm2022/index.mjs +81 -0
  383. package/components/input/button/fesm2022/index.mjs.map +1 -0
  384. package/components/input/button/index.d.ts +5 -0
  385. package/components/input/button/package.json +20 -0
  386. package/components/input/button/public_api.d.ts +1 -0
  387. package/components/input/button-group/.npmignore +2 -0
  388. package/components/input/button-group/bundles/index.umd.js +80 -0
  389. package/components/input/button-group/esm2022/button-group.directive.mjs +47 -0
  390. package/components/input/button-group/esm2022/button-group.props.mjs +10 -0
  391. package/components/input/button-group/esm2022/index.mjs +5 -0
  392. package/components/input/button-group/esm2022/public_api.mjs +2 -0
  393. package/components/input/button-group/fesm2022/index.mjs +62 -0
  394. package/components/input/button-group/fesm2022/index.mjs.map +1 -0
  395. package/components/input/button-group/index.d.ts +5 -0
  396. package/components/input/button-group/package.json +20 -0
  397. package/components/input/button-group/public_api.d.ts +1 -0
  398. package/components/input/calendar/bundles/index.umd.js +25 -38
  399. package/components/input/calendar/esm2022/calendar.component.mjs +22 -36
  400. package/components/input/calendar/fesm2022/index.mjs +23 -36
  401. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  402. package/components/input/calendar/package.json +0 -3
  403. package/components/input/caption-position/.npmignore +2 -0
  404. package/components/input/caption-position/bundles/index.umd.js +196 -0
  405. package/components/input/caption-position/esm2022/caption-position.directive.mjs +172 -0
  406. package/components/input/caption-position/esm2022/index.mjs +5 -0
  407. package/components/input/caption-position/esm2022/public_api.mjs +2 -0
  408. package/components/input/caption-position/fesm2022/index.mjs +178 -0
  409. package/components/input/caption-position/fesm2022/index.mjs.map +1 -0
  410. package/components/input/caption-position/index.d.ts +5 -0
  411. package/components/input/caption-position/package.json +20 -0
  412. package/components/input/caption-position/public_api.d.ts +1 -0
  413. package/components/input/checkbox/.npmignore +2 -0
  414. package/components/input/checkbox/bundles/index.umd.js +190 -0
  415. package/components/input/{default/checkbox → checkbox}/checkbox.component.d.ts +1 -1
  416. package/components/input/checkbox/esm2022/checkbox.component.mjs +145 -0
  417. package/components/input/checkbox/esm2022/checkbox.props.mjs +27 -0
  418. package/components/{basic/progress → input/checkbox}/esm2022/index.mjs +1 -1
  419. package/components/input/checkbox/esm2022/public_api.mjs +2 -0
  420. package/components/input/checkbox/fesm2022/index.mjs +175 -0
  421. package/components/input/checkbox/fesm2022/index.mjs.map +1 -0
  422. package/components/input/checkbox/index.d.ts +5 -0
  423. package/components/input/checkbox/package.json +20 -0
  424. package/components/input/checkbox/public_api.d.ts +1 -0
  425. package/components/input/checkboxset/.npmignore +2 -0
  426. package/components/input/checkboxset/bundles/index.umd.js +151 -0
  427. package/components/input/{default/checkboxset → checkboxset}/checkboxset.component.d.ts +1 -1
  428. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +99 -0
  429. package/components/input/checkboxset/esm2022/checkboxset.props.mjs +35 -0
  430. package/components/input/checkboxset/esm2022/index.mjs +5 -0
  431. package/components/input/checkboxset/esm2022/public_api.mjs +2 -0
  432. package/components/input/checkboxset/fesm2022/index.mjs +138 -0
  433. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -0
  434. package/components/input/checkboxset/index.d.ts +5 -0
  435. package/components/input/checkboxset/package.json +20 -0
  436. package/components/input/checkboxset/public_api.d.ts +1 -0
  437. package/components/input/chips/bundles/index.umd.js +94 -153
  438. package/components/input/chips/chips.component.d.ts +1 -1
  439. package/components/input/chips/esm2022/chips.component.mjs +41 -101
  440. package/components/input/chips/fesm2022/index.mjs +42 -101
  441. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  442. package/components/input/chips/package.json +0 -3
  443. package/components/input/color-picker/bundles/index.umd.js +35 -74
  444. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  445. package/components/input/color-picker/esm2022/color-picker.component.mjs +34 -75
  446. package/components/input/color-picker/fesm2022/index.mjs +36 -75
  447. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  448. package/components/input/color-picker/package.json +0 -3
  449. package/components/input/composite/.npmignore +2 -0
  450. package/components/input/composite/bundles/index.umd.js +111 -0
  451. package/components/input/composite/esm2022/composite.directive.mjs +79 -0
  452. package/components/input/composite/esm2022/composite.props.mjs +10 -0
  453. package/components/input/composite/esm2022/index.mjs +5 -0
  454. package/components/input/composite/esm2022/public_api.mjs +2 -0
  455. package/components/input/composite/fesm2022/index.mjs +94 -0
  456. package/components/input/composite/fesm2022/index.mjs.map +1 -0
  457. package/components/input/composite/index.d.ts +5 -0
  458. package/components/input/composite/package.json +20 -0
  459. package/components/input/composite/public_api.d.ts +1 -0
  460. package/components/input/currency/bundles/index.umd.js +31 -52
  461. package/components/input/currency/currency.component.d.ts +1 -1
  462. package/components/input/currency/esm2022/currency.component.mjs +28 -50
  463. package/components/input/currency/fesm2022/index.mjs +30 -51
  464. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  465. package/components/input/currency/package.json +0 -3
  466. package/components/input/dataset-aware-form/.npmignore +2 -0
  467. package/components/input/dataset-aware-form/bundles/index.umd.js +328 -0
  468. package/components/input/{default → dataset-aware-form}/dataset-aware-form.component.d.ts +1 -1
  469. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +307 -0
  470. package/components/input/dataset-aware-form/esm2022/index.mjs +5 -0
  471. package/components/input/dataset-aware-form/esm2022/public_api.mjs +2 -0
  472. package/components/input/dataset-aware-form/fesm2022/index.mjs +314 -0
  473. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -0
  474. package/components/input/dataset-aware-form/index.d.ts +5 -0
  475. package/components/input/dataset-aware-form/package.json +20 -0
  476. package/components/input/dataset-aware-form/public_api.d.ts +1 -0
  477. package/components/input/epoch/base-date-time/.npmignore +2 -0
  478. package/components/input/epoch/{base-date-time.component.d.ts → base-date-time/base-date-time.component.d.ts} +1 -1
  479. package/components/input/epoch/base-date-time/bundles/index.umd.js +1086 -0
  480. package/components/input/epoch/{esm2022 → base-date-time/esm2022}/base-date-time.component.mjs +22 -31
  481. package/components/input/epoch/base-date-time/esm2022/index.mjs +5 -0
  482. package/components/input/epoch/base-date-time/esm2022/public_api.mjs +2 -0
  483. package/components/input/epoch/base-date-time/fesm2022/index.mjs +1077 -0
  484. package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -0
  485. package/components/input/epoch/base-date-time/index.d.ts +5 -0
  486. package/components/input/epoch/base-date-time/package.json +20 -0
  487. package/components/input/epoch/base-date-time/public_api.d.ts +1 -0
  488. package/components/input/epoch/date/.npmignore +2 -0
  489. package/components/input/epoch/date/bundles/index.umd.js +492 -0
  490. package/components/input/epoch/date/date.component.d.ts +2 -2
  491. package/components/input/epoch/date/esm2022/date.component.mjs +322 -0
  492. package/components/input/epoch/{esm2022/date → date/esm2022}/date.props.mjs +1 -1
  493. package/components/input/epoch/{esm2022/date → date/esm2022}/imaskUtil.mjs +1 -1
  494. package/components/input/epoch/date/esm2022/index.mjs +5 -0
  495. package/components/input/epoch/date/esm2022/public_api.mjs +2 -0
  496. package/components/input/epoch/date/fesm2022/index.mjs +482 -0
  497. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -0
  498. package/components/input/epoch/date/index.d.ts +5 -0
  499. package/components/input/epoch/date/package.json +20 -0
  500. package/components/input/epoch/date/public_api.d.ts +1 -0
  501. package/components/input/epoch/date-time/.npmignore +2 -0
  502. package/components/input/epoch/date-time/bundles/index.umd.js +518 -0
  503. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  504. package/components/input/epoch/date-time/esm2022/date-time.component.mjs +458 -0
  505. package/components/input/epoch/{esm2022/date-time → date-time/esm2022}/date-time.props.mjs +1 -1
  506. package/components/input/epoch/date-time/esm2022/index.mjs +5 -0
  507. package/components/input/epoch/date-time/esm2022/public_api.mjs +2 -0
  508. package/components/input/epoch/date-time/fesm2022/index.mjs +509 -0
  509. package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -0
  510. package/components/input/epoch/date-time/index.d.ts +5 -0
  511. package/components/input/epoch/date-time/package.json +20 -0
  512. package/components/input/epoch/date-time/public_api.d.ts +1 -0
  513. package/components/input/epoch/date-time-picker/.npmignore +2 -0
  514. package/components/input/epoch/date-time-picker/bundles/index.umd.js +453 -0
  515. package/components/input/epoch/date-time-picker/esm2022/date-time-picker.component.mjs +433 -0
  516. package/components/input/epoch/date-time-picker/esm2022/index.mjs +5 -0
  517. package/components/input/epoch/date-time-picker/esm2022/public_api.mjs +2 -0
  518. package/components/input/epoch/date-time-picker/fesm2022/index.mjs +439 -0
  519. package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -0
  520. package/components/input/epoch/date-time-picker/index.d.ts +5 -0
  521. package/components/input/epoch/date-time-picker/package.json +20 -0
  522. package/components/input/epoch/date-time-picker/public_api.d.ts +1 -0
  523. package/components/input/epoch/picker/.npmignore +2 -0
  524. package/components/input/epoch/picker/bundles/index.umd.js +192 -0
  525. package/components/input/epoch/picker/esm2022/index.mjs +5 -0
  526. package/components/input/epoch/picker/esm2022/picker.component.mjs +165 -0
  527. package/components/input/epoch/picker/esm2022/public_api.mjs +3 -0
  528. package/components/input/epoch/picker/fesm2022/index.mjs +172 -0
  529. package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -0
  530. package/components/input/epoch/picker/index.d.ts +5 -0
  531. package/components/input/epoch/picker/package.json +20 -0
  532. package/components/input/epoch/picker/public_api.d.ts +2 -0
  533. package/components/input/epoch/time/.npmignore +2 -0
  534. package/components/input/epoch/time/bundles/index.umd.js +397 -0
  535. package/components/input/epoch/time/esm2022/index.mjs +5 -0
  536. package/components/input/epoch/time/esm2022/public_api.mjs +2 -0
  537. package/components/input/epoch/time/esm2022/time.component.mjs +348 -0
  538. package/components/input/epoch/{esm2022/time → time/esm2022}/time.props.mjs +1 -1
  539. package/components/input/epoch/time/fesm2022/index.mjs +387 -0
  540. package/components/input/epoch/time/fesm2022/index.mjs.map +1 -0
  541. package/components/input/epoch/time/index.d.ts +5 -0
  542. package/components/input/epoch/time/package.json +20 -0
  543. package/components/input/epoch/time/public_api.d.ts +1 -0
  544. package/components/input/epoch/time/time.component.d.ts +1 -1
  545. package/components/input/file-upload/bundles/index.umd.js +56 -348
  546. package/components/input/file-upload/esm2022/file-upload.component.mjs +20 -313
  547. package/components/input/file-upload/fesm2022/index.mjs +20 -312
  548. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  549. package/components/input/file-upload/package.json +0 -3
  550. package/components/input/number/.npmignore +2 -0
  551. package/components/input/number/bundles/index.umd.js +101 -0
  552. package/components/input/number/esm2022/index.mjs +5 -0
  553. package/components/input/number/esm2022/number.component.mjs +49 -0
  554. package/components/input/number/esm2022/number.props.mjs +35 -0
  555. package/components/input/number/esm2022/public_api.mjs +2 -0
  556. package/components/input/number/fesm2022/index.mjs +87 -0
  557. package/components/input/number/fesm2022/index.mjs.map +1 -0
  558. package/components/input/number/index.d.ts +5 -0
  559. package/components/input/{default/number → number}/number.component.d.ts +1 -1
  560. package/components/input/number/package.json +20 -0
  561. package/components/input/number/public_api.d.ts +1 -0
  562. package/components/input/radioset/.npmignore +2 -0
  563. package/components/input/radioset/bundles/index.umd.js +136 -0
  564. package/components/input/radioset/esm2022/index.mjs +5 -0
  565. package/components/input/radioset/esm2022/public_api.mjs +2 -0
  566. package/components/input/radioset/esm2022/radioset.component.mjs +84 -0
  567. package/components/input/radioset/esm2022/radioset.props.mjs +35 -0
  568. package/components/input/radioset/fesm2022/index.mjs +123 -0
  569. package/components/input/radioset/fesm2022/index.mjs.map +1 -0
  570. package/components/input/radioset/index.d.ts +5 -0
  571. package/components/input/radioset/package.json +20 -0
  572. package/components/input/radioset/public_api.d.ts +1 -0
  573. package/components/input/{default/radioset → radioset}/radioset.component.d.ts +1 -1
  574. package/components/input/rating/bundles/index.umd.js +49 -103
  575. package/components/input/rating/esm2022/rating.component.mjs +24 -79
  576. package/components/input/rating/fesm2022/index.mjs +25 -79
  577. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  578. package/components/input/rating/package.json +0 -3
  579. package/components/input/rating/rating.component.d.ts +1 -1
  580. package/components/input/select/.npmignore +2 -0
  581. package/components/input/select/bundles/index.umd.js +219 -0
  582. package/components/input/select/esm2022/index.mjs +5 -0
  583. package/components/input/select/esm2022/public_api.mjs +2 -0
  584. package/components/input/select/esm2022/select.component.mjs +166 -0
  585. package/components/input/select/esm2022/select.props.mjs +36 -0
  586. package/components/input/select/fesm2022/index.mjs +205 -0
  587. package/components/input/select/fesm2022/index.mjs.map +1 -0
  588. package/components/input/select/index.d.ts +5 -0
  589. package/components/input/select/package.json +20 -0
  590. package/components/input/select/public_api.d.ts +1 -0
  591. package/components/input/{default/select → select}/select.component.d.ts +1 -1
  592. package/components/input/slider/bundles/index.umd.js +44 -111
  593. package/components/input/slider/esm2022/slider.component.mjs +25 -95
  594. package/components/input/slider/esm2022/slider.props.mjs +1 -1
  595. package/components/input/slider/fesm2022/index.mjs +25 -93
  596. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  597. package/components/input/slider/package.json +0 -3
  598. package/components/input/slider/slider.component.d.ts +2 -2
  599. package/components/input/switch/.npmignore +2 -0
  600. package/components/input/switch/bundles/index.umd.js +204 -0
  601. package/components/input/switch/esm2022/index.mjs +5 -0
  602. package/components/input/switch/esm2022/public_api.mjs +2 -0
  603. package/components/input/switch/esm2022/switch.component.mjs +159 -0
  604. package/components/input/switch/esm2022/switch.props.mjs +28 -0
  605. package/components/input/switch/fesm2022/index.mjs +191 -0
  606. package/components/input/switch/fesm2022/index.mjs.map +1 -0
  607. package/components/input/switch/index.d.ts +5 -0
  608. package/components/input/switch/package.json +20 -0
  609. package/components/input/switch/public_api.d.ts +1 -0
  610. package/components/input/{default/switch → switch}/switch.component.d.ts +1 -1
  611. package/components/input/text/.npmignore +2 -0
  612. package/components/input/{default/text/base → text/base-input}/base-input.d.ts +1 -1
  613. package/components/input/text/bundles/index.umd.js +1070 -0
  614. package/components/input/text/esm2022/base-input/base-input.mjs +93 -0
  615. package/components/input/text/esm2022/index.mjs +5 -0
  616. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +46 -0
  617. package/components/input/text/esm2022/input-calendar/input-calendar.props.mjs +30 -0
  618. package/components/input/text/esm2022/input-color/input-color.component.mjs +46 -0
  619. package/components/input/text/esm2022/input-color/input-color.props.mjs +27 -0
  620. package/components/input/text/esm2022/input-email/input-email.component.mjs +46 -0
  621. package/components/input/text/esm2022/input-email/input-email.props.mjs +29 -0
  622. package/components/input/text/esm2022/input-number/input-number.component.mjs +56 -0
  623. package/components/input/text/esm2022/input-number/input-number.props.mjs +32 -0
  624. package/components/input/text/esm2022/input-text/input-text.component.mjs +121 -0
  625. package/components/input/text/esm2022/input-text/input-text.props.mjs +46 -0
  626. package/components/input/text/esm2022/number-locale/number-locale.mjs +539 -0
  627. package/components/input/text/esm2022/public_api.mjs +8 -0
  628. package/components/input/text/fesm2022/index.mjs +1054 -0
  629. package/components/input/text/fesm2022/index.mjs.map +1 -0
  630. package/components/input/text/index.d.ts +5 -0
  631. package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.component.d.ts +1 -1
  632. package/components/input/{default/text/color → text/input-color}/input-color.component.d.ts +1 -1
  633. package/components/input/{default/text/email → text/input-email}/input-email.component.d.ts +1 -1
  634. package/components/input/{default/text/number → text/input-number}/input-number.component.d.ts +1 -1
  635. package/components/input/{default/text/text → text/input-text}/input-text.component.d.ts +1 -1
  636. package/components/input/{default/text/locale → text/number-locale}/number-locale.d.ts +1 -1
  637. package/components/input/text/package.json +20 -0
  638. package/components/input/text/public_api.d.ts +7 -0
  639. package/components/input/textarea/.npmignore +2 -0
  640. package/components/input/textarea/bundles/index.umd.js +101 -0
  641. package/components/input/textarea/esm2022/index.mjs +5 -0
  642. package/components/input/textarea/esm2022/public_api.mjs +2 -0
  643. package/components/input/textarea/esm2022/textarea.component.mjs +53 -0
  644. package/components/input/textarea/esm2022/textarea.props.mjs +30 -0
  645. package/components/input/textarea/fesm2022/index.mjs +87 -0
  646. package/components/input/textarea/fesm2022/index.mjs.map +1 -0
  647. package/components/input/textarea/index.d.ts +5 -0
  648. package/components/input/textarea/package.json +20 -0
  649. package/components/input/textarea/public_api.d.ts +1 -0
  650. package/components/input/{default/textarea → textarea}/textarea.component.d.ts +1 -1
  651. package/components/navigation/breadcrumb/bundles/index.umd.js +37 -79
  652. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +20 -64
  653. package/components/navigation/breadcrumb/fesm2022/index.mjs +21 -64
  654. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  655. package/components/navigation/breadcrumb/package.json +0 -3
  656. package/components/navigation/menu/bundles/index.umd.js +247 -442
  657. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -19
  658. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +13 -29
  659. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +43 -100
  660. package/components/navigation/menu/esm2022/menu.component.mjs +53 -104
  661. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +30 -37
  662. package/components/navigation/menu/esm2022/nav/nav.component.mjs +20 -88
  663. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +14 -14
  664. package/components/navigation/menu/fesm2022/index.mjs +174 -369
  665. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  666. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +2 -3
  667. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +3 -3
  668. package/components/navigation/menu/package.json +0 -3
  669. package/components/navigation/navbar/bundles/index.umd.js +32 -83
  670. package/components/navigation/navbar/esm2022/navbar.component.mjs +20 -72
  671. package/components/navigation/navbar/fesm2022/index.mjs +20 -71
  672. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  673. package/components/navigation/navbar/package.json +0 -3
  674. package/components/navigation/popover/bundles/index.umd.js +31 -59
  675. package/components/navigation/popover/esm2022/popover.component.mjs +29 -58
  676. package/components/navigation/popover/fesm2022/index.mjs +31 -59
  677. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  678. package/components/navigation/popover/package.json +0 -3
  679. package/components/page/default/bundles/index.umd.js +109 -123
  680. package/components/page/default/esm2022/content/content.component.mjs +16 -25
  681. package/components/page/default/esm2022/layout.directive.mjs +21 -21
  682. package/components/page/default/esm2022/page-content/page-content.component.mjs +16 -23
  683. package/components/page/default/esm2022/page.directive.mjs +21 -21
  684. package/components/page/default/esm2022/router-outlet.directive.mjs +20 -20
  685. package/components/page/default/esm2022/spa-page.directive.mjs +21 -21
  686. package/components/page/default/fesm2022/index.mjs +111 -125
  687. package/components/page/default/fesm2022/index.mjs.map +1 -1
  688. package/components/page/default/package.json +0 -3
  689. package/components/page/footer/bundles/index.umd.js +20 -20
  690. package/components/page/footer/esm2022/footer.directive.mjs +21 -21
  691. package/components/page/footer/fesm2022/index.mjs +21 -21
  692. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  693. package/components/page/footer/package.json +0 -3
  694. package/components/page/header/bundles/index.umd.js +19 -26
  695. package/components/page/header/esm2022/header.component.mjs +16 -24
  696. package/components/page/header/fesm2022/index.mjs +17 -24
  697. package/components/page/header/fesm2022/index.mjs.map +1 -1
  698. package/components/page/header/package.json +0 -3
  699. package/components/page/left-panel/bundles/index.umd.js +30 -30
  700. package/components/page/left-panel/esm2022/left-panel.directive.mjs +31 -31
  701. package/components/page/left-panel/fesm2022/index.mjs +31 -31
  702. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  703. package/components/page/left-panel/package.json +0 -3
  704. package/components/page/right-panel/bundles/index.umd.js +23 -23
  705. package/components/page/right-panel/esm2022/right-panel.directive.mjs +24 -24
  706. package/components/page/right-panel/fesm2022/index.mjs +24 -24
  707. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  708. package/components/page/right-panel/package.json +0 -3
  709. package/components/page/top-nav/bundles/index.umd.js +20 -20
  710. package/components/page/top-nav/esm2022/top-nav.directive.mjs +21 -21
  711. package/components/page/top-nav/fesm2022/index.mjs +21 -21
  712. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  713. package/components/page/top-nav/package.json +0 -3
  714. package/components/prefab/bundles/index.umd.js +41 -41
  715. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +20 -20
  716. package/components/prefab/esm2022/prefab.directive.mjs +23 -23
  717. package/components/prefab/fesm2022/index.mjs +42 -42
  718. package/components/prefab/fesm2022/index.mjs.map +1 -1
  719. package/components/prefab/package.json +0 -3
  720. package/core/bundles/index.umd.js +80 -61
  721. package/core/esm2022/services/constant.service.mjs +7 -7
  722. package/core/esm2022/services/custom-icons-loader.service.mjs +7 -7
  723. package/core/esm2022/services/field-type.service.mjs +7 -7
  724. package/core/esm2022/services/field-widget.service.mjs +7 -7
  725. package/core/esm2022/services/pagination.service.mjs +7 -7
  726. package/core/esm2022/services/script-loader.service.mjs +7 -7
  727. package/core/esm2022/services/state-persistence.service.mjs +7 -7
  728. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +7 -7
  729. package/core/esm2022/services/utils.service.mjs +7 -7
  730. package/core/esm2022/services/viewport.service.mjs +7 -7
  731. package/core/esm2022/types/types.mjs +1 -1
  732. package/core/esm2022/utils/build-utils.mjs +21 -2
  733. package/core/fesm2022/index.mjs +80 -61
  734. package/core/fesm2022/index.mjs.map +1 -1
  735. package/core/package.json +3 -6
  736. package/core/types/types.d.ts +3 -1
  737. package/http/bundles/index.umd.js +8 -8
  738. package/http/esm2022/http.service.mjs +9 -9
  739. package/http/fesm2022/index.mjs +8 -8
  740. package/http/fesm2022/index.mjs.map +1 -1
  741. package/http/package.json +2 -5
  742. package/locales/moment/ar-dz.js +8 -8
  743. package/locales/moment/ar-ly.js +8 -8
  744. package/locales/moment/ar-ps.js +123 -0
  745. package/locales/moment/ar.js +8 -8
  746. package/locales/moment/be.js +2 -2
  747. package/locales/moment/bs.js +14 -4
  748. package/locales/moment/ca.js +6 -6
  749. package/locales/moment/cs.js +5 -4
  750. package/locales/moment/cv.js +2 -2
  751. package/locales/moment/en-au.js +6 -6
  752. package/locales/moment/en-ca.js +6 -6
  753. package/locales/moment/en-gb.js +6 -6
  754. package/locales/moment/en-ie.js +6 -6
  755. package/locales/moment/en-il.js +6 -6
  756. package/locales/moment/en-in.js +6 -6
  757. package/locales/moment/en-nz.js +6 -6
  758. package/locales/moment/en-sg.js +6 -6
  759. package/locales/moment/it.js +4 -4
  760. package/locales/moment/ku-kmr.js +125 -0
  761. package/locales/moment/lt.js +2 -2
  762. package/locales/moment/me.js +2 -2
  763. package/locales/moment/nb.js +4 -4
  764. package/locales/moment/nl-be.js +1 -1
  765. package/locales/moment/nl.js +1 -1
  766. package/locales/moment/oc-lnc.js +6 -6
  767. package/locales/moment/ru.js +2 -2
  768. package/locales/moment/sv.js +6 -6
  769. package/locales/moment/tet.js +6 -6
  770. package/locales/moment/tlh.js +8 -8
  771. package/locales/moment/tzl.js +2 -2
  772. package/locales/moment/uk.js +4 -4
  773. package/locales/moment/x-pseudo.js +6 -6
  774. package/locales/moment-timezone/moment-timezone-with-data.js +2 -2
  775. package/npm-shrinkwrap.json +2 -2
  776. package/oAuth/bundles/index.umd.js +5 -5
  777. package/oAuth/esm2022/oAuth.service.mjs +6 -6
  778. package/oAuth/fesm2022/index.mjs +5 -5
  779. package/oAuth/fesm2022/index.mjs.map +1 -1
  780. package/oAuth/package.json +2 -5
  781. package/package-lock.json +2 -2
  782. package/package.json +1 -1
  783. package/runtime/base/bundles/index.umd.js +3163 -3100
  784. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -0
  785. package/runtime/base/esm2022/components/app-component/app.component.mjs +14 -95
  786. package/runtime/base/esm2022/components/app-spinner.component.mjs +34 -45
  787. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +8 -7
  788. package/runtime/base/esm2022/components/base-layout.component.mjs +14 -21
  789. package/runtime/base/esm2022/components/base-page.component.mjs +12 -19
  790. package/runtime/base/esm2022/components/base-partial.component.mjs +9 -14
  791. package/runtime/base/esm2022/components/base-prefab.component.mjs +9 -14
  792. package/runtime/base/esm2022/components/base-spa-page.component.mjs +12 -19
  793. package/runtime/base/esm2022/components/custom-toaster.component.mjs +30 -52
  794. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +33 -15
  795. package/runtime/base/esm2022/components/prefab-preview.component.mjs +19 -26
  796. package/runtime/base/esm2022/directives/accessroles.directive.mjs +17 -17
  797. package/runtime/base/esm2022/directives/prefab.directive.mjs +15 -15
  798. package/runtime/base/esm2022/guards/auth.guard.mjs +6 -6
  799. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +11 -11
  800. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +6 -6
  801. package/runtime/base/esm2022/guards/role.guard.mjs +6 -6
  802. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +12 -12
  803. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +14 -14
  804. package/runtime/base/esm2022/public_api.mjs +5 -2
  805. package/runtime/base/esm2022/resolves/app-before-load.resolve.mjs +22 -0
  806. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +6 -6
  807. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +6 -6
  808. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +9 -9
  809. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +6 -6
  810. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +9 -9
  811. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +9 -9
  812. package/runtime/base/esm2022/runtime-base.module.mjs +457 -316
  813. package/runtime/base/esm2022/services/app-defaults.service.mjs +6 -6
  814. package/runtime/base/esm2022/services/app.manager.service.mjs +25 -9
  815. package/runtime/base/esm2022/services/app.service.mjs +40 -18
  816. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +6 -6
  817. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -6
  818. package/runtime/base/esm2022/services/i18n.service.mjs +37 -34
  819. package/runtime/base/esm2022/services/navigation.service.mjs +6 -6
  820. package/runtime/base/esm2022/services/pipe-provider.service.mjs +13 -13
  821. package/runtime/base/esm2022/services/pipe.service.mjs +10 -8
  822. package/runtime/base/esm2022/services/prefab-manager.service.mjs +6 -6
  823. package/runtime/base/esm2022/services/spinner.service.mjs +6 -6
  824. package/runtime/base/esm2022/services/toaster.service.mjs +6 -6
  825. package/runtime/base/esm2022/util/fragment-monitor.mjs +6 -6
  826. package/runtime/base/esm2022/util/utils.mjs +15 -1
  827. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +1 -1
  828. package/runtime/base/fesm2022/index.mjs +3146 -3071
  829. package/runtime/base/fesm2022/index.mjs.map +1 -1
  830. package/runtime/base/package.json +2 -5
  831. package/runtime/base/public_api.d.ts +4 -1
  832. package/runtime/base/resolves/app-before-load.resolve.d.ts +11 -0
  833. package/runtime/base/runtime-base.module.d.ts +96 -59
  834. package/runtime/base/services/app.manager.service.d.ts +2 -1
  835. package/runtime/base/services/app.service.d.ts +4 -2
  836. package/runtime/base/services/i18n.service.d.ts +2 -1
  837. package/runtime/base/util/utils.d.ts +2 -1
  838. package/runtime/dynamic/app/app.config.d.ts +1 -1
  839. package/runtime/dynamic/app/services/app-variables-provider.service.d.ts +3 -1
  840. package/runtime/dynamic/bundles/index.umd.js +145 -114
  841. package/runtime/dynamic/esm2022/app/app.config.mjs +11 -10
  842. package/runtime/dynamic/esm2022/app/app.module.mjs +35 -5
  843. package/runtime/dynamic/esm2022/app/app.routes.mjs +2 -11
  844. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +11 -16
  845. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +9 -9
  846. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +9 -9
  847. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +6 -6
  848. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +15 -11
  849. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +57 -8
  850. package/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +6 -6
  851. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +6 -6
  852. package/runtime/dynamic/fesm2022/index.mjs +143 -88
  853. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  854. package/runtime/dynamic/package.json +2 -5
  855. package/scripts/datatable/datatable.js +26 -5
  856. package/scripts/jquery-ui/ui/widgets/droppable.js +3 -3
  857. package/scripts/jquery-ui/ui/widgets/resizable.js +72 -19
  858. package/scripts/jquery-ui/ui/widgets/sortable.js +9 -16
  859. package/security/bundles/index.umd.js +5 -5
  860. package/security/esm2022/security.service.mjs +6 -6
  861. package/security/fesm2022/index.mjs +5 -5
  862. package/security/fesm2022/index.mjs.map +1 -1
  863. package/security/package.json +2 -5
  864. package/swipey/fesm2022/index.mjs.map +1 -1
  865. package/swipey/package.json +2 -5
  866. package/transpiler/build.d.ts +1 -1
  867. package/transpiler/bundles/index.umd.js +94 -56
  868. package/transpiler/esm2022/build.mjs +5 -2
  869. package/transpiler/esm2022/imports.mjs +92 -57
  870. package/transpiler/fesm2022/index.mjs +94 -56
  871. package/transpiler/fesm2022/index.mjs.map +1 -1
  872. package/transpiler/package.json +3 -6
  873. package/variables/bundles/index.umd.js +20 -10
  874. package/variables/constants/variables.constants.d.ts +9 -0
  875. package/variables/esm2022/constants/variables.constants.mjs +10 -1
  876. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -6
  877. package/variables/esm2022/service/variables.service.mjs +6 -6
  878. package/variables/fesm2022/index.mjs +20 -11
  879. package/variables/fesm2022/index.mjs.map +1 -1
  880. package/variables/package.json +2 -5
  881. package/variables/service/variables.service.d.ts +1 -1
  882. package/build-task/esm2022/basic/default/anchor/anchor.build.mjs +0 -15
  883. package/build-task/esm2022/basic/default/audio/audio.build.mjs +0 -10
  884. package/build-task/esm2022/basic/default/html/html.build.mjs +0 -15
  885. package/build-task/esm2022/basic/default/icon/icon.build.mjs +0 -10
  886. package/build-task/esm2022/basic/default/iframe/iframe.build.mjs +0 -10
  887. package/build-task/esm2022/basic/default/label/label.build.mjs +0 -25
  888. package/build-task/esm2022/basic/default/picture/picture.build.mjs +0 -14
  889. package/build-task/esm2022/basic/default/spinner/spinner.build.mjs +0 -15
  890. package/build-task/esm2022/basic/default/video/video.build.mjs +0 -10
  891. package/components/base/components.module.d.ts +0 -25
  892. package/components/base/esm2022/components.module.mjs +0 -152
  893. package/components/basic/default/bundles/index.umd.js +0 -1036
  894. package/components/basic/default/esm2022/anchor/anchor.component.mjs +0 -198
  895. package/components/basic/default/esm2022/anchor/anchor.props.mjs +0 -27
  896. package/components/basic/default/esm2022/audio/audio.component.mjs +0 -59
  897. package/components/basic/default/esm2022/audio/audio.props.mjs +0 -19
  898. package/components/basic/default/esm2022/html/html.directive.mjs +0 -76
  899. package/components/basic/default/esm2022/html/html.props.mjs +0 -12
  900. package/components/basic/default/esm2022/icon/icon.component.mjs +0 -70
  901. package/components/basic/default/esm2022/icon/icon.props.mjs +0 -19
  902. package/components/basic/default/esm2022/iframe/iframe.component.mjs +0 -85
  903. package/components/basic/default/esm2022/iframe/iframe.props.mjs +0 -15
  904. package/components/basic/default/esm2022/label/label.directive.mjs +0 -71
  905. package/components/basic/default/esm2022/label/label.props.mjs +0 -17
  906. package/components/basic/default/esm2022/picture/picture.directive.mjs +0 -95
  907. package/components/basic/default/esm2022/picture/picture.props.mjs +0 -23
  908. package/components/basic/default/esm2022/public_api.mjs +0 -10
  909. package/components/basic/default/esm2022/spinner/spinner.component.mjs +0 -130
  910. package/components/basic/default/esm2022/spinner/spinner.props.mjs +0 -20
  911. package/components/basic/default/esm2022/video/video.component.mjs +0 -113
  912. package/components/basic/default/esm2022/video/video.props.mjs +0 -24
  913. package/components/basic/default/fesm2022/index.mjs +0 -1012
  914. package/components/basic/default/fesm2022/index.mjs.map +0 -1
  915. package/components/basic/default/public_api.d.ts +0 -9
  916. package/components/basic/progress/bundles/index.umd.js +0 -361
  917. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +0 -154
  918. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +0 -132
  919. package/components/basic/progress/esm2022/public_api.mjs +0 -3
  920. package/components/basic/progress/esm2022/utils.mjs +0 -25
  921. package/components/basic/progress/fesm2022/index.mjs +0 -344
  922. package/components/basic/progress/fesm2022/index.mjs.map +0 -1
  923. package/components/basic/progress/public_api.d.ts +0 -2
  924. package/components/input/default/bundles/index.umd.js +0 -3559
  925. package/components/input/default/esm2022/base-form-custom.component.mjs +0 -94
  926. package/components/input/default/esm2022/base-form.component.mjs +0 -110
  927. package/components/input/default/esm2022/button/button.component.mjs +0 -106
  928. package/components/input/default/esm2022/button/button.props.mjs +0 -26
  929. package/components/input/default/esm2022/button-group/button-group.directive.mjs +0 -51
  930. package/components/input/default/esm2022/button-group/button-group.props.mjs +0 -10
  931. package/components/input/default/esm2022/caption-position.directive.mjs +0 -172
  932. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +0 -179
  933. package/components/input/default/esm2022/checkbox/checkbox.props.mjs +0 -27
  934. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +0 -268
  935. package/components/input/default/esm2022/checkboxset/checkboxset.props.mjs +0 -35
  936. package/components/input/default/esm2022/composite/composite.directive.mjs +0 -84
  937. package/components/input/default/esm2022/composite/composite.props.mjs +0 -10
  938. package/components/input/default/esm2022/dataset-aware-form.component.mjs +0 -307
  939. package/components/input/default/esm2022/number/number.component.mjs +0 -68
  940. package/components/input/default/esm2022/number/number.props.mjs +0 -35
  941. package/components/input/default/esm2022/public_api.mjs +0 -21
  942. package/components/input/default/esm2022/radioset/radioset.component.mjs +0 -251
  943. package/components/input/default/esm2022/radioset/radioset.props.mjs +0 -35
  944. package/components/input/default/esm2022/select/select.component.mjs +0 -230
  945. package/components/input/default/esm2022/select/select.props.mjs +0 -36
  946. package/components/input/default/esm2022/switch/switch.component.mjs +0 -227
  947. package/components/input/default/esm2022/switch/switch.props.mjs +0 -28
  948. package/components/input/default/esm2022/text/base/base-input.mjs +0 -93
  949. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +0 -69
  950. package/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +0 -30
  951. package/components/input/default/esm2022/text/color/input-color.component.mjs +0 -69
  952. package/components/input/default/esm2022/text/color/input-color.props.mjs +0 -27
  953. package/components/input/default/esm2022/text/email/input-email.component.mjs +0 -68
  954. package/components/input/default/esm2022/text/email/input-email.props.mjs +0 -29
  955. package/components/input/default/esm2022/text/locale/number-locale.mjs +0 -539
  956. package/components/input/default/esm2022/text/number/input-number.component.mjs +0 -79
  957. package/components/input/default/esm2022/text/number/input-number.props.mjs +0 -32
  958. package/components/input/default/esm2022/text/text/input-text.component.mjs +0 -145
  959. package/components/input/default/esm2022/text/text/input-text.props.mjs +0 -46
  960. package/components/input/default/esm2022/textarea/textarea.component.mjs +0 -85
  961. package/components/input/default/esm2022/textarea/textarea.props.mjs +0 -30
  962. package/components/input/default/fesm2022/index.mjs +0 -3529
  963. package/components/input/default/fesm2022/index.mjs.map +0 -1
  964. package/components/input/default/public_api.d.ts +0 -20
  965. package/components/input/epoch/bundles/index.umd.js +0 -3292
  966. package/components/input/epoch/esm2022/date/date.component.mjs +0 -376
  967. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +0 -473
  968. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +0 -563
  969. package/components/input/epoch/esm2022/picker/picker.component.mjs +0 -184
  970. package/components/input/epoch/esm2022/public_api.mjs +0 -6
  971. package/components/input/epoch/esm2022/time/time.component.mjs +0 -432
  972. package/components/input/epoch/fesm2022/index.mjs +0 -3280
  973. package/components/input/epoch/fesm2022/index.mjs.map +0 -1
  974. package/components/input/epoch/public_api.d.ts +0 -5
  975. /package/build-task/basic/{default/anchor → anchor}/anchor.build.d.ts +0 -0
  976. /package/build-task/basic/{default/audio → audio}/audio.build.d.ts +0 -0
  977. /package/build-task/basic/{default/html → html}/html.build.d.ts +0 -0
  978. /package/build-task/basic/{default/icon → icon}/icon.build.d.ts +0 -0
  979. /package/build-task/basic/{default/iframe → iframe}/iframe.build.d.ts +0 -0
  980. /package/build-task/basic/{default/label → label}/label.build.d.ts +0 -0
  981. /package/build-task/basic/{default/picture → picture}/picture.build.d.ts +0 -0
  982. /package/build-task/basic/{default/spinner → spinner}/spinner.build.d.ts +0 -0
  983. /package/build-task/basic/{default/video → video}/video.build.d.ts +0 -0
  984. /package/components/basic/{default → anchor}/.npmignore +0 -0
  985. /package/components/basic/{default/anchor → anchor}/anchor.component.d.ts +0 -0
  986. /package/components/basic/{default/anchor → anchor}/anchor.props.d.ts +0 -0
  987. /package/components/basic/{progress → audio}/.npmignore +0 -0
  988. /package/components/basic/{default/audio → audio}/audio.component.d.ts +0 -0
  989. /package/components/basic/{default/audio → audio}/audio.props.d.ts +0 -0
  990. /package/components/{input/default → basic/html}/.npmignore +0 -0
  991. /package/components/basic/{default/html → html}/html.directive.d.ts +0 -0
  992. /package/components/basic/{default/html → html}/html.props.d.ts +0 -0
  993. /package/components/{input/epoch → basic/icon}/.npmignore +0 -0
  994. /package/components/basic/{default/icon → icon}/icon.component.d.ts +0 -0
  995. /package/components/basic/{default/icon → icon}/icon.props.d.ts +0 -0
  996. /package/components/basic/{default/iframe → iframe}/iframe.component.d.ts +0 -0
  997. /package/components/basic/{default/iframe → iframe}/iframe.props.d.ts +0 -0
  998. /package/components/basic/{default/label → label}/label.props.d.ts +0 -0
  999. /package/components/basic/{default/picture → picture}/picture.directive.d.ts +0 -0
  1000. /package/components/basic/{default/picture → picture}/picture.props.d.ts +0 -0
  1001. /package/components/basic/progress/{utils.d.ts → progress-utils/progress-utils.d.ts} +0 -0
  1002. /package/components/basic/{default/spinner → spinner}/spinner.component.d.ts +0 -0
  1003. /package/components/basic/{default/spinner → spinner}/spinner.props.d.ts +0 -0
  1004. /package/components/basic/{default/video → video}/video.component.d.ts +0 -0
  1005. /package/components/basic/{default/video → video}/video.props.d.ts +0 -0
  1006. /package/components/input/{default → base-form}/base-form.component.d.ts +0 -0
  1007. /package/components/input/{default/button → button}/button.component.d.ts +0 -0
  1008. /package/components/input/{default/button → button}/button.props.d.ts +0 -0
  1009. /package/components/input/{default/button-group → button-group}/button-group.directive.d.ts +0 -0
  1010. /package/components/input/{default/button-group → button-group}/button-group.props.d.ts +0 -0
  1011. /package/components/input/{default → caption-position}/caption-position.directive.d.ts +0 -0
  1012. /package/components/input/{default/checkbox → checkbox}/checkbox.props.d.ts +0 -0
  1013. /package/components/input/{default/checkboxset → checkboxset}/checkboxset.props.d.ts +0 -0
  1014. /package/components/input/{default/composite → composite}/composite.directive.d.ts +0 -0
  1015. /package/components/input/{default/composite → composite}/composite.props.d.ts +0 -0
  1016. /package/components/input/epoch/{date-time → date-time-picker}/date-time-picker.component.d.ts +0 -0
  1017. /package/components/input/{default/number → number}/number.props.d.ts +0 -0
  1018. /package/components/input/{default/radioset → radioset}/radioset.props.d.ts +0 -0
  1019. /package/components/input/{default/select → select}/select.props.d.ts +0 -0
  1020. /package/components/input/{default/switch → switch}/switch.props.d.ts +0 -0
  1021. /package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.props.d.ts +0 -0
  1022. /package/components/input/{default/text/color → text/input-color}/input-color.props.d.ts +0 -0
  1023. /package/components/input/{default/text/email → text/input-email}/input-email.props.d.ts +0 -0
  1024. /package/components/input/{default/text/number → text/input-number}/input-number.props.d.ts +0 -0
  1025. /package/components/input/{default/text/text → text/input-text}/input-text.props.d.ts +0 -0
  1026. /package/components/input/{default/textarea → textarea}/textarea.props.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../projects/components/widgets/chart/src/chart.props.ts","../../../../projects/components/widgets/chart/src/chart.utils.ts","../../../../projects/components/widgets/chart/src/chart.component.html","../../../../projects/components/widgets/chart/src/chart.component.ts","../../../../projects/components/widgets/chart/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-chart',\n new Map(\n [\n ['aggregation', {value: 'none', ...PROP_STRING}],\n ['aggregationcolumn', PROP_STRING],\n ['areaviewtype', {value: 'stack', ...PROP_STRING}],\n ['barspacing', {value: 'medium', ...PROP_STRING}],\n ['bubblesize', PROP_STRING],\n ['centerlabel', PROP_STRING],\n ['class', PROP_STRING],\n ['customcolors', PROP_ANY],\n ['dataset', PROP_ANY],\n ['datasource', PROP_STRING],\n ['donutratio', {value: 'medium', ...PROP_STRING}],\n ['formattype', {value: '', PROP_STRING}],\n ['groupby', PROP_STRING],\n ['height', {value: '210px', PROP_STRING}],\n ['highlightpoints', PROP_BOOLEAN],\n ['iconclass', PROP_STRING],\n ['interpolation', {value: 'linear', ...PROP_STRING}],\n ['labelthreshold', {value: 0.01, ...PROP_NUMBER}],\n ['labeltype', {value: 'percent', ...PROP_STRING}],\n ['legendtype', {value: 'furious', ...PROP_STRING}],\n ['linethickness', PROP_STRING],\n ['loadingdatamsg', {value: 'Loading...', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Available.', ...PROP_STRING}],\n ['offset', PROP_STRING],\n ['offsetbottom', {value: 55, ...PROP_NUMBER}],\n ['offsetleft', {value: 75, ...PROP_NUMBER}],\n ['offsetright', {value: 25, ...PROP_NUMBER}],\n ['offsettop', {value: 25, ...PROP_NUMBER}],\n ['orderby', PROP_STRING],\n ['reducexticks', {value: true, ...PROP_BOOLEAN}],\n ['shape', {value: 'circle', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showlabels', {value: 'outside', ...PROP_STRING}],\n ['showlabelsoutside', {value: true, ...PROP_BOOLEAN}],\n ['showlegend', {value: 'top', ...PROP_STRING}],\n ['showvalues', {value: false, ...PROP_BOOLEAN}],\n ['showxaxis', {value: true, ...PROP_BOOLEAN}],\n ['showxdistance', {value: false, ...PROP_BOOLEAN}],\n ['showyaxis', {value: true, ...PROP_BOOLEAN}],\n ['showydistance', {value: false, ...PROP_BOOLEAN}],\n ['staggerlabels', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['theme', PROP_STRING],\n ['title', PROP_STRING],\n ['tooltips', {value: true, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['viewtype', {value: 'Grouped', ...PROP_STRING}],\n ['xaxisdatakey', PROP_STRING],\n ['xaxislabel', PROP_STRING],\n ['xaxislabeldistance', {value: 12, ...PROP_NUMBER}],\n ['xdateformat', PROP_STRING],\n ['xdomain', {value: 'Default', ...PROP_STRING}],\n ['xnumberformat', PROP_STRING],\n ['xunits', PROP_STRING],\n ['yaxisdatakey', PROP_STRING],\n ['yaxislabel', PROP_STRING],\n ['yaxislabeldistance', {value: 12, ...PROP_NUMBER}],\n ['ydomain', {value: 'Default', ...PROP_STRING}],\n ['ynumberformat', PROP_STRING],\n ['yunits', PROP_STRING]\n ]\n )\n );\n};\n","import {isEmptyObject, prettifyLabels} from '@wm/core';\nimport {forEach, includes, invert, isArray, isFinite, isString, isUndefined, split} from \"lodash-es\";\n\ndeclare const $;\n\nimport * as momentLib from 'moment';\nconst moment = momentLib.default || window['moment'];\ndeclare const d3, nv;\n\nexport const chartTypes = ['Column', 'Line', 'Area', 'Cumulative Line', 'Bar', 'Pie', 'Donut', 'Bubble'],\n allShapes = ['circle', 'square', 'diamond', 'cross', 'triangle-up', 'triangle-down'];\n\nconst dateList = ['01/01/2001', '01/01/2002', '01/01/2003'],\n themes = {\n 'Terrestrial': {\n colors: ['#1f77b4', '#aec7e8', '#ff7f0e', '#ffbb78', '#2ca02c', '#98df8a', '#d62728', '#ff9896', '#9467bd', '#c5b0d5', '#8c564b', '#c49c94', '#e377c2', '#f7b6d2', '#7f7f7f', '#c7c7c7', '#bcbd22', '#dbdb8d', '#17becf', '#9edae5'],\n tooltip: {\n 'backgroundColor': '#de7d28',\n 'textColor': '#FFFFFF'\n }\n },\n 'Annabelle': {\n colors: ['#393b79', '#5254a3', '#6b6ecf', '#9c9ede', '#637939', '#8ca252', '#b5cf6b', '#cedb9c', '#8c6d31', '#bd9e39', '#e7ba52', '#e7cb94', '#843c39', '#ad494a', '#d6616b', '#e7969c', '#7b4173', '#a55194', '#ce6dbd', '#de9ed6'],\n tooltip: {\n 'backgroundColor': '#2e306f',\n 'textColor': '#FFFFFF'\n }\n },\n 'Azure': {\n colors: ['#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#e6550d', '#fd8d3c', '#fdae6b', '#fdd0a2', '#31a354', '#74c476', '#a1d99b', '#c7e9c0', '#756bb1', '#9e9ac8', '#bcbddc', '#dadaeb', '#636363', '#969696', '#bdbdbd', '#d9d9d9'],\n tooltip: {\n 'backgroundColor': '#3182bd',\n 'textColor': '#FFFFFF'\n }\n },\n 'Retro': {\n colors: ['#0ca7a1', '#ffa615', '#334957', '#acc5c2', '#988f90', '#8accc9', '#515151', '#f27861', '#36c9fd', '#794668', '#0f709d', '#0d2738', '#44be78', '#4a1839', '#6a393f', '#557d8b', '#6c331c', '#1c1c1c', '#861500', '#09562a'],\n tooltip: {\n 'backgroundColor': '#80513a',\n 'textColor': '#FFFFFF'\n }\n },\n 'Mellow': {\n colors: ['#f0dcbf', '#88c877', '#aeb918', '#2e2c23', '#ddddd2', '#dfe956', '#4c963b', '#5d3801', '#e1eec3', '#cd8472', '#fcfab3', '#9a4635', '#9295ad', '#2e3f12', '#565677', '#557d8b', '#4f4d02', '#0c0c1b', '#833324', '#24120e'],\n tooltip: {\n 'backgroundColor': '#7c9e73',\n 'textColor': '#FFFFFF'\n }\n },\n 'Orient': {\n colors: ['#a80000', '#cc6c3c', '#f0e400', '#000084', '#fccc6c', '#009c6c', '#cc309c', '#78cc00', '#fc84e4', '#48e4fc', '#4878d8', '#186c0c', '#606060', '#a8a8a8', '#000000', '#d7d7d7', '#75a06e', '#190d0b', '#888888', '#694b84'],\n tooltip: {\n 'backgroundColor': '#c14242',\n 'textColor': '#FFFFFF'\n }\n },\n 'GrayScale': {\n colors: ['#141414', '#353535', '#5b5b5b', '#848484', '#a8a8a8', '#c3c3c3', '#e0e0e0', '#c8c8c8', '#a5a5a5', '#878787', '#656565', '#4e4e4e', '#303030', '#1c1c1c', '#4f4f4f', '#3b3b3b', '#757575', '#606060', '#868686', '#c1c1c1'],\n tooltip: {\n 'backgroundColor': '#575757',\n 'textColor': '#FFFFFF'\n }\n },\n 'Flyer': {\n colors: ['#3f454c', '#5a646e', '#848778', '#cededf', '#74c4dd', '#0946ed', '#380bb1', '#000ff0', '#f54a23', '#1db262', '#bca3aa', '#ffa500', '#a86b32', '#63a18c', '#56795e', '#934343', '#b75f5f', '#752d2d', '#4e1111', '#920606'],\n tooltip: {\n 'backgroundColor': '#47637c',\n 'textColor': '#FFFFFF'\n }\n },\n 'Luminosity': {\n colors: ['#FFFFFF', '#e4e4e4', '#00bcd4', '#f0dd2f', '#00aabf', '#018376', '#e91e63', '#39e5d4', '#ff6d6d', '#00ff76', '#ff9800', '#969696', '#ff4200', '#e00000', '#95cbe5', '#5331ff', '#fff4a7', '#e7a800', '#0061e4', '#d5e7ff'],\n tooltip: {\n 'backgroundColor': '#47637c',\n 'textColor': '#FFFFFF'\n }\n }\n },\n basicProperties = ['xaxislabel', 'yaxislabel', 'xunits', 'yunits', 'xnumberformat', 'xdateformat', 'ynumberformat',\n 'showvalues', 'showlabels', 'viewtype', 'areaviewtype', 'staggerlabels', 'reducexticks', 'offsettop', 'offsetbottom', 'offsetright', 'offsetleft',\n 'barspacing', 'xaxislabeldistance', 'yaxislabeldistance', 'theme', 'labeltype', 'donutratio', 'showlabelsoutside', 'showxdistance', 'showydistance', 'shape', 'nodatamessage', 'captions', 'showxaxis', 'showyaxis',\n 'centerlabel', 'customcolors', 'showlegend', 'legendtype', 'xdomain', 'ydomain', 'tooltips', 'linethickness', 'highlightpoints', 'interpolation', 'labelthreshold'],\n barSpacingMap = {\n 'small' : 0.3,\n 'medium' : 0.5,\n 'large' : 0.8\n },\n donutRatioMap = {\n 'small' : 0.3,\n 'medium' : 0.6,\n 'large' : 0.7\n },\n barSpacingMapInvert = invert(barSpacingMap),\n donutRatioMapInvert = invert(donutRatioMap),\n tickformats = {\n 'Thousand': {\n 'prefix': 'K',\n 'divider': 1000\n },\n 'Million' : {\n 'prefix': 'M',\n 'divider': 1000000\n },\n 'Billion' : {\n 'prefix': 'B',\n 'divider': 1000000000\n }\n },\n chartId = '#preview-chart',\n dataTypeJSON = ['Column', 'Line', 'Pie', 'Bar', 'Donut', 'Bubble'], // Charts that supports the data to be JSON;\n lineTypeCharts = ['Line', 'Area', 'Cumulative Line'], // Charts that does not supports the string type of data in the xaxis in the nvd3;\n dataTypeArray = ['Cumulative Line', 'Area'], // Charts that supports the data to be Array\n SAMPLE_DATA = {\n 'group1' : 'Europe',\n 'group2' : 'Asia',\n 'group3' : 'America',\n 'group4' : 'Australia'\n };\n\n// returns true if chart type is pie\nexport const isPieChart = type => type === 'Pie';\n\n// returns true if chart type is line\nexport const isLineChart = type => type === 'Line';\n\n// returns true if chart type is bar\nexport const isBarChart = type => type === 'Bar';\n\n// returns true if chart type is donut\nexport const isDonutChart = type => type === 'Donut';\n\n// returns true if chart type is bubble\nexport const isBubbleChart = type => type === 'Bubble';\n\n// returns true if chart type is column\nexport const isColumnChart = type => type === 'Column';\n\n// returns true if chart type is area\nexport const isAreaChart = type => type === 'Area';\n\n// returns true if chart type is area\nexport const isPieType = type => isPieChart(type) || isDonutChart(type);\n\n// The format of chart data is array of json objects in case of the following types of chart\nexport const isChartDataJSON = type => includes(dataTypeJSON, type) || !includes(chartTypes, type);\n\n// The format of chart data is array of objects in case of the following types of chart\nexport const isChartDataArray = type => includes(dataTypeArray, type);\n\n// returns true is the chart type is 'line', 'area' or 'cumulative line' else false\nexport const isLineTypeChart = type => includes(lineTypeCharts, type);\n\n// X/Y Domain properties are supported only for Column and Area charts\nexport const isAxisDomainSupported = type => isColumnChart(type) || isAreaChart(type);\n\n// Returns bar spacing value\nexport const getBarSpacingValue = (value, prop) => {\n if (prop === 'value') {\n return barSpacingMap[value];\n }\n if (prop === 'key') {\n return barSpacingMapInvert[value];\n }\n};\n\n// Returns radius value\nexport const getRadiusValue = (value, prop) => {\n if (prop === 'value') {\n return donutRatioMap[value];\n }\n if (prop === 'key') {\n return donutRatioMapInvert[value];\n }\n};\n\n// Returns labels config\nexport const getLabelValues = (showlabels, showlabelsoutside, prop) => {\n const labelsConfig: any = {};\n switch (showlabels) {\n case 'hide':\n labelsConfig.showlabels = false;\n break;\n case 'inside':\n labelsConfig.showlabels = true;\n labelsConfig.showlabelsoutside = false;\n break;\n case 'outside':\n labelsConfig.showlabels = true;\n labelsConfig.showlabelsoutside = true;\n break;\n }\n return labelsConfig;\n};\n\n// Construct the sample data\nexport const constructSampleData = (dataType, yaxisLength, shape) => {\n let first_series = [],\n second_series = [],\n third_series = [],\n first_series_array = [],\n second_series_array = [],\n third_series_array = [],\n first_series_bubble = [],\n second_series_bubble = [],\n third_series_bubble = [],\n data = [];\n switch (dataType) {\n case 'jsonFormat':\n first_series = [\n {'x': '01/01/2001', 'y': 4000000},\n {'x': '01/01/2002', 'y': 1000000},\n {'x': '01/01/2003', 'y': 5000000}\n ];\n second_series = [\n {'x': '01/01/2001', 'y': 3000000},\n {'x': '01/01/2002', 'y': 4000000},\n {'x': '01/01/2003', 'y': 7000000}\n ];\n third_series = [\n {'x': '01/01/2001', 'y': 2000000},\n {'x': '01/01/2002', 'y': 8000000},\n {'x': '01/01/2003', 'y': 6000000}\n ];\n data[0] = {\n values: first_series,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'lineChartFormat':\n first_series = [\n {'x': 1, 'y': 4000000},\n {'x': 2, 'y': 1000000},\n {'x': 3, 'y': 5000000}\n ];\n second_series = [\n {'x': 1, 'y': 3000000},\n {'x': 2, 'y': 4000000},\n {'x': 3, 'y': 7000000}\n ];\n third_series = [\n {'x': 1, 'y': 2000000},\n {'x': 2, 'y': 8000000},\n {'x': 3, 'y': 6000000}\n ];\n data[0] = {\n values: first_series,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'arrayFormat':\n first_series_array = [\n [1, 4000000],\n [2, 1000000],\n [3, 5000000]\n ];\n second_series_array = [\n [1, 3000000],\n [2, 4000000],\n [3, 7000000]\n ];\n third_series_array = [\n [1, 2000000],\n [2, 8000000],\n [3, 6000000]\n ];\n data[0] = {\n values: first_series_array,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series_array,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series_array,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'bubbleFormat':\n shape = shape === 'random' ? allShapes[Math.floor(Math.random() * allShapes.length)] : shape;\n first_series_bubble = [\n {'x': 80.66, 'y': 33739900, 'size': 78, 'shape': shape},\n {'x': 79.84, 'y': 81902300, 'size': 90, 'shape': shape},\n {'x': 78.6, 'y': 5523100, 'size': 45, 'shape': shape}\n ];\n second_series_bubble = [\n {'x': 72.73, 'y': 79716200, 'size': 98, 'shape': shape},\n {'x': 80.05, 'y': 61801600, 'size': 20, 'shape': shape},\n {'x': 72.49, 'y': 73137200, 'size': 34, 'shape': shape}\n ];\n third_series_bubble = [\n {'x': 68.09, 'y': 33739900, 'size': 45, 'shape': shape},\n {'x': 81.55, 'y': 7485600, 'size': 78, 'shape': shape},\n {'x': 68.60, 'y': 141850000, 'size': 56, 'shape': shape}\n ];\n data[0] = {\n values: first_series_bubble,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series_bubble,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series_bubble,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'pieChartFormat':\n data = [\n {'x': SAMPLE_DATA.group1, 'y': 1000000},\n {'x': SAMPLE_DATA.group2, 'y': 2000000},\n {'x': SAMPLE_DATA.group3, 'y': 3000000},\n {'x': SAMPLE_DATA.group4, 'y': 4000000}\n ];\n break;\n }\n return data;\n};\n\nexport const getDataType = widgetContext => {\n const type = widgetContext.type;\n if (isLineChart(type)) {\n return 'lineChartFormat';\n }\n if (isPieType(type)) {\n return 'pieChartFormat';\n }\n if (isBubbleChart(type)) {\n return 'bubbleFormat';\n }\n return isChartDataJSON(type) ? 'jsonFormat' : 'arrayFormat';\n};\n\n// Sample data to populate when no data is bound\nexport const getSampleData = widgetContext => constructSampleData(getDataType(widgetContext), split(widgetContext.yaxisdatakey, ',').length, widgetContext.shape);\n\n// Check whether X/Y Domain was set to Min and is supported for the present chart\nexport const isAxisDomainValid = (widgetContext, axis) => {\n if (widgetContext[axis + 'domain'] === 'Min' && (isAxisDomainSupported(widgetContext.type))) {\n return true;\n }\n return false;\n};\n\n// Check whether min and max values are finite or not\nexport const areMinMaxValuesValid = values => {\n if (isFinite(values.min) && isFinite(values.max)) {\n return true;\n }\n return false;\n};\n\nexport const getYScaleMinValue = value => {\n const _min = Math.floor(value);\n /* If the number has a) decimal part returning floor value - 0.1\n b) no decimal part returning floor value - 1 */\n return Math.abs(value) - _min > 0 ? value - 0.1 : _min - 1;\n};\n\n// Chooses the data points of line/cumulative line/area chart and highlights them\nexport const highlightPoints = (id, highlightpoints) => {\n const chartSvg = id ? d3.select('#wmChart' + id + ' svg') : d3.select(chartId + ' svg');\n if (highlightpoints) {\n chartSvg.selectAll('.nv-point')\n .style('stroke-width', '6px')\n .style('fill-opacity', '0.95')\n .style('stroke-opacity', '0.95');\n } else {\n chartSvg.selectAll('.nv-point')\n .style('stroke-width', '0px')\n .style('fill-opacity', '0');\n }\n};\n\n// Chooses the line of line/cumulative line and increases the thickness of it\nexport const setLineThickness = (id, thickness) => {\n const chartSvg = id ? d3.select('#wmChart' + id + ' svg') : d3.select(chartId + ' svg');\n thickness = thickness || 1.5;\n\n const lines = chartSvg.selectAll('.nv-line');\n\n if (lines.size() !== 0) {\n lines.style('stroke-width', thickness);\n }\n};\n\n// Constructing a common key value map for preview and canvas mode\nexport const initProperties = (widgetContext, propertyValueMap) => {\n if (!propertyValueMap || isEmptyObject(propertyValueMap)) {\n propertyValueMap = {};\n }\n forEach(basicProperties, prop => {\n if (isUndefined(propertyValueMap[prop])) {\n propertyValueMap[prop] = widgetContext[prop];\n }\n });\n\n return propertyValueMap;\n};\n\nexport const getNumberValue = (value, callback) => {\n return isNaN(parseInt(value, 10)) ? callback(value, 'value') : value;\n};\n\n// Formats the given value according to date format\nexport const getDateFormatedData = (dateFormat, d) => {\n dateFormat = dateFormat || '%x';\n /**\n * if date value is string \"20-05-2019\" then new Date(value) return 20May2019 with current time in India,\n * whereas this will return 19May2019 with time lagging for few hours.\n * This is because it returns UTC time i.e. Coordinated Universal Time (UTC).\n * To create date in local time use moment\n */\n if(dateFormat == '%c') {\n dateFormat = '%a %b %e %X %Y';\n }\n return d3.timeFormat(dateFormat)(new Date(moment(moment(d).format()).valueOf()));\n};\nconst removeTrailingZeros = value => {\n if(!value) {\n return value;\n }\n // Convert value to a string if it's a number\n const stringValue = typeof value === 'number' ? value.toString() : value;\n\n // Remove trailing zeros\n return stringValue.replace(/\\.0+([A-Za-z]*)$/, '$1').replace(/\\.([1-9]+)0+([A-Za-z]*)$/, '.$1$2');\n};\n\n// Formats the given value according to number format\nexport const getNumberFormatedData = (numberFormat, d) => {\n let formattedData,\n divider,\n prefix;\n // formatting the data based on number format selected\n if (numberFormat) {\n let numberFormatter;\n if(numberFormat == 'Thousand' || numberFormat == 'Million' || numberFormat == 'Billion') {\n numberFormatter = d3.format(',.2s');\n } else if(numberFormat == '%') {\n numberFormatter = d3.format('.2%');\n }else if(numberFormat == '.f') {\n numberFormatter = d3.format('.2f');\n } else {\n numberFormatter = d3.format(numberFormat);\n }\n formattedData = numberFormatter(d);\n\n\n // Getting the respective divider[1000,1000000,1000000000] based on the number format choosen\n divider = (tickformats[numberFormat] && tickformats[numberFormat].divider) || 0;\n prefix = tickformats[numberFormat] && tickformats[numberFormat].prefix;\n if (prefix && divider !== 0) {\n formattedData = d3.format('.2f')(d / divider) + prefix;\n }\n } else {\n // Auto formatting the data when no formating option is chosen\n formattedData = d >= 1000 ? d3.format('.1s')(d) : d;\n }\n formattedData = removeTrailingZeros(formattedData);\n return formattedData;\n};\n\n// Set the visibility property of the chart x,y axis due to a bug in the nvd3\nexport const toggleAxisShow = (property, value) => {\n const $xAxis = d3.select(chartId + ' g.nv-axis.nv-x'),\n $yAxis = d3.select(chartId + ' g.nv-axis.nv-y');\n if (property === 'showxaxis') {\n $xAxis.style('visibility', value ? 'visible' : 'hidden');\n } else {\n $yAxis.style('visibility', value ? 'visible' : 'hidden');\n }\n};\n\nexport const modifyLegendPosition = (widgetContext, position, id) => {\n const showLegend = isShowLegend(widgetContext.showlegend),\n chart_Id = id ? '#wmChart' + id : chartId,\n legendWrap = d3.select(chart_Id + ' .nv-legendWrap'),\n legendPadding = 5;\n // Return when showlegend is false\n if (!showLegend || !legendWrap['_groups'][0][0]) {\n return;\n }\n if (position === 'bottom') {\n const legendWrapHeight = legendWrap['_groups'][0][0].getBoundingClientRect().height,\n wrap = d3.select(chart_Id + ' .nv-wrap'),\n wrapTransform = (wrap && wrap.attr('transform')) ? wrap.attr('transform').replace(/, /g, ',') : '',\n coordinates = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(wrapTransform),\n getChartHeight = () => {\n let chartHeight = $(chart_Id + ' svg>.nvd3.nv-wrap')[0].getBoundingClientRect().height;\n if (chartHeight === 0) { // fix for IE\n chartHeight = ($(chart_Id + ' svg')[0].getBoundingClientRect().height - (legendWrapHeight + 15));\n }\n return chartHeight;\n };\n legendWrap.attr('transform', 'translate(0 , ' + (getChartHeight() - legendWrapHeight - legendPadding) + ')');\n if (coordinates) {\n wrap.attr('transform', 'translate(' + coordinates[1] + ',' + legendPadding + ')');\n }\n }\n};\n\n// Returns value if legend need to shown or not\nexport const isShowLegend = value => {\n // Old projects will have either true or false\n if (value === 'false' || value === false) {\n return false;\n }\n if (value === 'true' || value === true) {\n return true;\n }\n // New projects will have either 'Hide Legend', 'Show Top', 'Show Bottom'\n return value === 'hide' ? false : true;\n};\n\n/**\n * Customise the tooltip for donut & pie charts and also for charts having only one value attached to yaxis\n * @param key\n * @param label\n */\nexport const customiseTooltip = (chart, propertyValueMap, widgetContext, label?) => {\n d3.selectAll('.nvtooltip').style('opacity', 0);\n chart.tooltip.contentGenerator((key, propertyValueMap) => {\n let xValue = key.data.x, yValue;\n yValue = getNumberFormatedData(propertyValueMap.ynumberformat, key.data.y);\n if (isPieType(widgetContext.type)) {\n label = key.data.x;\n xValue = '';\n }\n return '<table>' +\n '<tbody>' +\n '<tr class=\"value\"><b>' + xValue +\n '</b></tr>' +\n '<tr>' +\n '<td class=\"legend-color-guide\"><div style=\"background-color:' + key.color + ';\"></div></td>' +\n '<td class=\"key\">' + label + '</td>' +\n '<td class=\"value\">' + yValue + '</td>' +\n '</tr>' +\n '</tbody>' +\n '</table>';\n });\n};\n\n// intializes the chart obejct\nexport const initChart = (widgetContext, xDomainValues, yDomainValues, propertyValueMap, isPreview) => {\n propertyValueMap = initProperties(widgetContext, propertyValueMap);\n let chart, colors = [], xaxislabel, yaxislabel, labelConfig, radius, barSpacing,\n showLegend, xAxisValue, hasMultipleYValues;\n const xValue: any = {}, yValue: any = {};\n switch (widgetContext.type) {\n case 'Column':\n barSpacing = getNumberValue(propertyValueMap.barspacing, getBarSpacingValue) || barSpacingMap.medium;\n chart = nv.models.multiBarChart()\n .x(d => d.x)\n .y(d => d.y)\n .reduceXTicks(propertyValueMap.reducexticks)\n .rotateLabels(0)\n .showControls(false)\n .stacked(propertyValueMap.viewtype === 'Stacked' ? true : false)\n .groupSpacing(barSpacing);\n break;\n case 'Cumulative Line':\n chart = nv.models.cumulativeLineChart()\n .x(d => d[0])\n .y(d => d[1])\n .showControls(false)\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Line':\n chart = nv.models.lineChart()\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Area':\n chart = nv.models.stackedAreaChart()\n .x(d => d.x)\n .y(d => d.y)\n .clipEdge(true)\n .showControls(false)\n .style(propertyValueMap.areaviewtype)\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Bar':\n barSpacing = getNumberValue(propertyValueMap.barspacing, getBarSpacingValue) || barSpacingMap.medium;\n chart = nv.models.multiBarHorizontalChart()\n .x(d => d.x)\n .y(d => d.y)\n .showControls(false)\n .stacked(propertyValueMap.viewtype === 'Stacked' ? true : false)\n .showValues(propertyValueMap.showvalues)\n .groupSpacing(barSpacing);\n break;\n case 'Pie':\n case 'Donut':\n labelConfig = getLabelValues(propertyValueMap.showlabels, propertyValueMap.showlabelsoutside, 'value');\n radius = getNumberValue(propertyValueMap.donutratio, getRadiusValue) || donutRatioMap.medium;\n chart = nv.models.pieChart()\n .x(d => d.x)\n .y(d => d.y)\n .showLabels(labelConfig.showlabels)\n .labelType(propertyValueMap.labeltype)\n .valueFormat(d3.format('%'))\n .title(propertyValueMap.centerlabel)\n .labelThreshold(propertyValueMap.labelthreshold || 0.01)\n .labelsOutside(labelConfig.showlabelsoutside);\n if (isDonutChart(widgetContext.type)) {\n chart.donut(true)\n .donutRatio(radius);\n }\n if (propertyValueMap.labeltype === 'key-value') {\n chart.labelType(d => d.data.x + ' ' + d.data.y);\n }\n break;\n case 'Bubble':\n chart = nv.models.scatterChart()\n .x(d => d.x)\n .y(d => d.y)\n .showDistX(propertyValueMap.showxdistance)\n .showDistY(propertyValueMap.showydistance);\n break;\n }\n\n if (xDomainValues) {\n xValue.min = xDomainValues.min.x || xDomainValues.min[0];\n xValue.max = xDomainValues.max.x || xDomainValues.max[0];\n // If the values on the x axis are string then min max values gives Infinity\n if (areMinMaxValuesValid(xValue)) {\n // Reducing the min value to 0.1 so the min value is not missed out\n xValue.min = getYScaleMinValue(xValue.min);\n chart.xDomain([xValue.min, xValue.max]);\n }\n }\n\n if (yDomainValues) {\n // Reducing the min value to 1 so the min value is not missed out\n yValue.min = yDomainValues.min.y || yDomainValues.min[1];\n yValue.max = yDomainValues.max.y || yDomainValues.max[1];\n // If the values on the y axis are string or invalid then min max values gives Infinity\n if (areMinMaxValuesValid(yValue)) {\n // Reducing the min value to 1 so the min value is not missed out\n yValue.min = getYScaleMinValue(yValue.min);\n chart.yDomain([yValue.min, yValue.max]);\n }\n }\n\n // Setting the legend type choosen by user or default it will be furious\n chart.legend.vers((propertyValueMap.legendtype && propertyValueMap.legendtype.toLowerCase()) || 'furious');\n\n if (!includes(chartTypes, widgetContext.type)) {\n chart = nv.models.multiBarChart()\n .x(d => d.x)\n .y(d => d.y);\n }\n\n\n if (isPieType(widgetContext.type)) {\n // In case of pie/donut chart formatting the values of it\n if (propertyValueMap.labeltype === 'percent') {\n chart.valueFormat(d3.format('%'));\n } else {\n chart.valueFormat(d => getNumberFormatedData(propertyValueMap.ynumberformat, d));\n }\n // Customizing the tooltips in case of the pie and donut when labelType is value\n customiseTooltip(chart, propertyValueMap, widgetContext);\n }\n else {\n chart.showXAxis(propertyValueMap.showxaxis)\n .showYAxis(propertyValueMap.showyaxis);\n chart.legendPosition(propertyValueMap.showlegend);\n\n // Setting the labels if they are specified explicitly or taking the axiskeys chosen\n xaxislabel = propertyValueMap.xaxislabel || prettifyLabels(widgetContext.xaxisdatakey) || 'x caption';\n yaxislabel = propertyValueMap.yaxislabel || prettifyLabels(widgetContext.yaxisdatakey) || 'y caption';\n\n // Checking if y axis has multiple values\n if (widgetContext.yaxisdatakey && widgetContext.yaxisdatakey.split(',').length > 1) {\n hasMultipleYValues = true;\n }\n // Customizing the tooltip to show yaxislabel, only if the y axis contains one value\n if (!hasMultipleYValues && !isBubbleChart(widgetContext.type)) {\n customiseTooltip(chart, propertyValueMap, widgetContext, yaxislabel);\n }\n\n // Adding the units to the captions if they are specified\n xaxislabel += propertyValueMap.xunits ? '(' + propertyValueMap.xunits + ')' : '';\n yaxislabel += propertyValueMap.yunits ? '(' + propertyValueMap.yunits + ')' : '';\n\n chart.xAxis\n .axisLabel(xaxislabel)\n .axisLabelDistance(propertyValueMap.xaxislabeldistance)\n .staggerLabels(propertyValueMap.staggerlabels);\n\n // If date format set format based date format\n if (propertyValueMap.xdateformat || (isPreview && !isBubbleChart(widgetContext.type))) {\n if (isLineTypeChart(widgetContext.type)) {\n chart.xAxis.tickFormat(d => {\n // get the actual value\n xAxisValue = isPreview ? dateList[d - 1] : widgetContext.xDataKeyArr[d];\n return getDateFormatedData(propertyValueMap.xdateformat, xAxisValue);\n });\n } else {\n chart.xAxis.tickFormat(d => getDateFormatedData(propertyValueMap.xdateformat, d));\n }\n } else if (propertyValueMap.xnumberformat) {\n chart.xAxis.tickFormat(d => getNumberFormatedData(propertyValueMap.xnumberformat, d));\n } else {\n if (isLineTypeChart(widgetContext.type)) {\n // get the actual value\n chart.xAxis.tickFormat(d => widgetContext.xDataKeyArr[d]);\n }\n }\n chart.yAxis\n .axisLabel(yaxislabel)\n .axisLabelDistance(propertyValueMap.yaxislabeldistance)\n .staggerLabels(propertyValueMap.staggerlabels)\n .tickFormat(d => getNumberFormatedData(propertyValueMap?.ynumberformat, d));\n if (isBarChart(widgetContext.type)) {\n chart.valueFormat(d => getNumberFormatedData(propertyValueMap?.ynumberformat, d));\n }\n }\n\n // Support for custom colors if user gives direct string of colors in text box\n if (isString(propertyValueMap.customcolors) && propertyValueMap.customcolors) {\n colors = split(propertyValueMap.customcolors, ',');\n }\n if (isArray(propertyValueMap.customcolors)) {\n colors = propertyValueMap.customcolors;\n }\n\n showLegend = isShowLegend(propertyValueMap.showlegend);\n chart.showLegend(showLegend)\n .margin({top: propertyValueMap.offsettop, right: propertyValueMap.offsetright, bottom: propertyValueMap.offsetbottom, left: propertyValueMap.offsetleft})\n .color(colors.length ? colors : themes[propertyValueMap.theme].colors);\n\n chart.tooltip.enabled(propertyValueMap.tooltips);\n widgetContext.message = propertyValueMap.nodatamessage || 'No data found';\n // setting the no data message\n chart.noData(widgetContext.message);\n\n if (isLineTypeChart(widgetContext.type) && widgetContext.highlightpoints) {\n chart.dispatch.on('stateChange', () => {\n setTimeout(() => postPlotChartProcess(widgetContext), 100);\n });\n }\n\n if (widgetContext.showlegend && (widgetContext.type === 'Donut' || widgetContext.type === 'Pie')) {\n if(widgetContext.showlegend === 'right') {\n chart.legendPosition('right');\n }\n }\n return chart;\n};\n\n// @ts-ignore\nexport const postPlotChartProcess = (widgetContext, isPreview?) => {\n const id = isPreview ? null : widgetContext.$id;\n // If user sets to highlight the data points and increase the thickness of the line\n if (isLineTypeChart(widgetContext.type)) {\n setLineThickness(id, widgetContext.linethickness);\n highlightPoints(id, widgetContext.highlightpoints);\n }\n // Modifying the legend position only when legend is shown\n // if (widgetContext.showlegend) {\n // modifyLegendPosition(widgetContext, widgetContext.showlegend, id);\n // }\n};\n\n// @ts-ignore\nexport const getDateList = () => dateList;\n\n","@if (title) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\"><i class=\"app-icon panel-icon {{iconclass}}\" [class.ng-hide]=\"!iconclass\"></i></div>\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n @if (subheading) {\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n }\n </h3>\n </div>\n}\n<div class=\"app-chart-inner\" [ngClass]=\"{'loading':isLoadInProgress, 'panel-body': title}\">\n <svg></svg>\n @if (showContentLoadError && showNoDataMsg) {\n <div class=\"wm-content-info readonly-wrapper\">\n <p class=\"wm-message\" [title]=\"hintMsg\" [ngClass]=\"{'error': invalidConfig}\" [innerText]=\"errMsg\"></p>\n </div>\n }\n <div wmSpinner show.bind=\"isLoadInProgress\" caption.bind=\"loadingdatamsg\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport { SpinnerComponent } from '@wm/components/basic';\nimport {\n AfterViewInit,\n OnDestroy,\n Component,\n HostBinding,\n Injector,\n ViewEncapsulation,\n Optional,\n Inject\n} from '@angular/core';\n\nimport {\n App,\n DataSource,\n getClonedObject,\n isDataSourceEqual,\n isEmptyObject,\n isNumberType,\n prettifyLabels,\n removeAttr,\n triggerFn,\n} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IRedrawableComponent, provideAsWidgetRef, StylableComponent, styler, } from '@wm/components/base';\n\nimport { registerProps } from './chart.props';\nimport { allShapes, getDateList, getSampleData, initChart, isAreaChart, isAxisDomainValid, isBarChart, isBubbleChart, isChartDataArray, isChartDataJSON, isLineTypeChart, isPieType, postPlotChartProcess } from './chart.utils';\nimport {\n concat, debounce, fill,\n first,\n forEach, forEachRight,\n get, groupBy, includes,\n intersection,\n isArray, isEmpty, isObject, keys,\n map, max,\n maxBy,\n minBy,\n orderBy,\n replace,\n split,\n uniq\n} from \"lodash-es\";\n\ndeclare const $;\n\ndeclare const d3, nv;\n\nconst WIDGET_CONFIG = {widgetType: 'wm-chart', hostClass: 'app-chart'};\n\nconst options = {\n 'Bubble' : ['bubblesize', 'shape']\n },\n NONE = 'none',\n advanceDataProps = ['aggregation', 'aggregationcolumn', 'groupby', 'orderby'],\n // XPaths to get actual data of data points in charts\n chartDataPointXpath = {\n 'Column' : 'rect.nv-bar',\n 'Bar' : 'g.nv-bar',\n 'Area' : '.nv-stackedarea .nv-point',\n 'Cumulative Line': '.nv-cumulativeLine .nv-scatterWrap path.nv-point',\n 'Line' : '.nv-lineChart .nv-scatterWrap path.nv-point',\n 'Pie' : '.nv-pieChart .nv-slice path',\n 'Donut' : '.nv-pieChart .nv-slice path',\n 'Bubble' : '.nv-scatterChart .nv-point-paths path'\n },\n // all properties of the chart\n allOptions = ['bubblesize', 'shape'],\n styleProps = {\n 'fontunit' : 'font-size',\n 'fontsize' : 'font-size',\n 'color' : 'fill',\n 'fontfamily' : 'font-family',\n 'fontweight' : 'font-weight',\n 'fontstyle' : 'font-style',\n 'textdecoration': 'text-decoration'\n },\n // Getting the relevant aggregation function based on the selected option\n aggregationFnMap = {\n 'average' : 'AVG',\n 'count' : 'COUNT',\n 'maximum' : 'MAX',\n 'minimum' : 'MIN',\n 'sum' : 'SUM'\n };\n\nconst getBooleanValue = val => {\n if (val === true || val === 'true') {\n return true;\n }\n if (val === false || val === 'false') {\n return false;\n }\n return val;\n};\n\n// returns orderby columns and their orders in two separate arrays\nconst getLodashOrderByFormat = orderby => {\n let columns;\n const orderByColumns = [],\n orders = [];\n\n forEach(split(orderby, ','), function (col) {\n columns = split(col, ':');\n orderByColumns.push(columns[0]);\n orders.push(columns[1]);\n });\n return {\n 'columns' : orderByColumns,\n 'orders' : orders\n };\n};\n\n// Replacing the '.' by the '$' because '.' is not supported in the alias names\nconst getValidAliasName = aliasName => aliasName ? aliasName.replace(/\\./g, '$') : null;\n\n// Applying the font related styles for the chart\nconst setTextStyle = (properties, id) => {\n const charttext = d3.select('#wmChart' + id + ' svg').selectAll('text');\n if (!charttext.empty()) {\n charttext.style(properties);\n }\n};\n\nconst angle = d => {\n const a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;\n return a > 90 ? a - 180 : a;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, SpinnerComponent],\n selector: 'div[wmChart]',\n templateUrl: './chart.component.html',\n styleUrls: ['../../../../../node_modules/@wavemaker/nvd3/build/nv.d3.min.css'],\n providers: [\n provideAsWidgetRef(ChartComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChartComponent extends StylableComponent implements AfterViewInit, OnDestroy, IRedrawableComponent {\n static initializeProps = registerProps();\n\n xaxisdatakey;\n yaxisdatakey;\n groupby;\n aggregation;\n aggregationcolumn;\n isVisuallyGrouped;\n orderby;\n iconclass = '';\n type: string;\n showContentLoadError;\n invalidConfig;\n errMsg;\n shape: string;\n datasource: any;\n fontsize: string;\n selecteditem: any;\n fontunit: string;\n offsettop: number;\n offsetleft: number;\n offsetright: number;\n offsetbottom: number;\n showlabels: any;\n theme: string;\n\n private $id;\n private scopedataset: any;\n private binddataset: any;\n private showlabelsoutside: any;\n private _resizeFn: any;\n private chart: any;\n private clearCanvas: boolean;\n public isLoadInProgress: boolean;\n private filterFields: boolean | any;\n private dataset: any;\n private axisoptions: any;\n private numericColumns: any;\n private nonPrimaryColumns: any = [];\n private variableInflight: any;\n private chartReady: boolean;\n private xDataKeyArr: any = [];\n private xAxisDataType: string;\n private bubblesize: any;\n public showNoDataMsg: any;\n private sampleData: any[];\n private chartData: any[] = [];\n private _processedData: any[] = [];\n private _subsciptions: any = [];\n\n @HostBinding('class.panel') title;\n\n isGroupByEnabled() {\n return !!(this.groupby && this.groupby !== NONE);\n }\n\n // Check if x and y axis that are chosen are valid to plot chart\n isValidAxis() {\n // Check if x axis and y axis are chosen and are not equal\n return this.binddataset ? (this.xaxisdatakey && this.yaxisdatakey) : true;\n }\n\n // Check if aggregation is chosen\n isAggregationEnabled() {\n return !!((this.isGroupByEnabled() && this.aggregation !== NONE && this.aggregationcolumn));\n }\n\n // Check if either groupby, aggregation or orderby is chosen\n isDataFilteringEnabled() {\n /*Query need to be triggered if any of the following cases satisfy\n * 1. Group By and aggregation both chosen\n * 2. Only Order By is chosen\n * */\n\n return this.isAggregationEnabled() || (!this.isVisuallyGrouped && this.orderby);\n }\n\n /*Charts like Line,Area,Cumulative Line does not support any other datatype\n other than integer unlike the column and bar.It is a nvd3 issue. Inorder to\n support that this is a fix*/\n getxAxisVal(dataObj, xKey, index) {\n const value = get(dataObj, xKey);\n // If x axis is other than number type then add indexes\n if (isLineTypeChart(this.type) && !isNumberType(this.xAxisDataType)) {\n // Verification to get the unique data keys\n this.xDataKeyArr.push(value);\n // Check if it is of type Date\n if (value instanceof Date) {\n return value;\n } else {\n return index;\n }\n }\n return value;\n }\n\n // Getting the min and max values among all the x values\n getXMinMaxValues(datum) {\n if (!datum) {\n return;\n }\n const xValues: any = {};\n /*\n compute the min x value\n eg: When data has objects\n input: [{x:1, y:2}, {x:2, y:3}, {x:3, y:4}]\n min x: 1\n eg: When data has arrays\n input: [[10, 20], [20, 30], [30, 40]];\n min x: 10\n */\n xValues.min = minBy(datum.values, dataObject => dataObject.x || dataObject[0]);\n /*\n compute the max x value\n eg: When data has objects\n input: [{x:1, y:2}, {x:2, y:3}, {x:3, y:4}]\n max x: 3\n eg: When data has arrays\n input: [[10, 20], [20, 30], [30, 40]];\n max x: 30\n */\n xValues.max = maxBy(datum.values, dataObject => dataObject.x || dataObject[0]);\n return xValues;\n }\n\n // Getting the min and max values among all the y values\n getYMinMaxValues(datum) {\n const yValues: any = {},\n minValues = [],\n maxValues = [];\n if (!datum) {\n return;\n }\n\n /*\n Getting the min and max y values among all the series of data\n compute the min y value\n eg: When data has objects\n input: [[{x:1, y:2}, {x:2, y:3}, {x:3, y:4}], [{x:2, y:3}, {x:3, y:4}, {x:4, y:5}]]\n min y values : '2'(among first set) & '3'(among second set)\n max y values : '4'(among first set) & '5'(among second set)\n\n eg: When data has arrays\n input: [[[10, 20], [20, 30], [30, 40]], [[20, 30], [30, 40], [40, 50]]]\n min y values : '20'(among first set) & '30'(among second set)\n max y values : '40'(among first set) & '50'(among second set)\n */\n\n forEach(datum, data => {\n minValues.push(minBy(data.values, function (dataObject) {\n return dataObject.y || dataObject[1];\n }));\n maxValues.push(maxBy(data.values, function (dataObject) {\n return dataObject.y || dataObject[1];\n }));\n });\n // Gets the least and highest values among all the min and max values of respective series of data\n yValues.min = minBy(minValues, dataObject => dataObject.y || dataObject[1]);\n yValues.max = maxBy(maxValues, dataObject => dataObject.y || dataObject[1]);\n return yValues;\n }\n\n // If the x-axis values are undefined, we return empty array else we return the values\n getValidData(values) {\n return (values.length === 1 && values[0] === undefined) ? [] : values;\n }\n\n // Returns the single data point based on the type of the data chart accepts\n valueFinder(dataObj, xKey, yKey, index?, shape?) {\n const xVal = this.getxAxisVal(dataObj, xKey, index),\n value = get(dataObj, yKey),\n yVal = parseFloat(value) || value,\n size = parseFloat(dataObj[this.bubblesize]) || 2;\n let dataPoint: any = {};\n\n if (isChartDataJSON(this.type)) {\n dataPoint.x = xVal;\n dataPoint.y = yVal;\n // only Bubble chart has the third dimension\n if (isBubbleChart(this.type)) {\n dataPoint.size = size;\n dataPoint.shape = shape || 'circle';\n }\n } else if (isChartDataArray(this.type)) {\n dataPoint = [xVal, yVal];\n }\n // Adding actual unwrapped data to chart data to use at the time of selected data point of chart event\n dataPoint._dataObj = dataObj;\n return dataPoint;\n }\n\n // Setting appropriate error messages\n setErrMsg(message) {\n if (this.showNoDataMsg) {\n this.showContentLoadError = true;\n this.invalidConfig = true;\n // TODO: Set the locale from the message\n this.errMsg = ''; // $rootScope.locale[message];\n }\n }\n\n processChartData() {\n this.sampleData = getSampleData(this);\n // scope variables used to keep the actual key values for x-axis\n this.xDataKeyArr = [];\n // Plotting the chart with sample data when the chart dataset is not bound\n if (!this.binddataset) {\n this.xDataKeyArr = getDateList();\n return this.sampleData;\n }\n\n if (!this.chartData || !this.chartData.length) {\n return [];\n }\n\n let datum = [],\n yAxisKey,\n shapes: any = [],\n values: any = [];\n const xAxisKey = this.xaxisdatakey,\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [],\n dataSet = this.chartData;\n\n if (isArray(dataSet)) {\n if (isPieType(this.type)) {\n yAxisKey = yAxisKeys[0];\n datum = map(dataSet, (dataObj, index) => {\n if (!isEmptyObject(dataSet[index])) {\n return this.valueFinder(dataSet[index], xAxisKey, yAxisKey);\n }\n });\n datum = this.getValidData(datum);\n } else {\n if (isBubbleChart(this.type)) {\n shapes = this.shape === 'random' ? allShapes : this.shape;\n }\n yAxisKeys.forEach((yAxisKey, series) => {\n values = map(dataSet, (dataObj, index) => {\n if (!isEmptyObject(dataSet[index])) {\n return this.valueFinder(dataSet[index], xAxisKey, yAxisKey, index, (isArray(shapes) && shapes[series]) || this.shape);\n }\n });\n values = this.getValidData(values);\n datum.push({\n values: values,\n key: prettifyLabels(yAxisKey)\n });\n });\n }\n }\n return datum;\n }\n\n setChartData(data) {\n if (data) {\n this._processedData = data;\n }\n }\n\n getChartData() {\n return this._processedData;\n }\n\n // constructing the grouped data based on the selection of orderby, x & y axis\n getVisuallyGroupedData(queryResponse, groupingColumn) {\n let groupData: any = {},\n groupValues: any = [],\n orderByDetails,\n maxLength;\n const chartData: any = [],\n _isAreaChart = isAreaChart(this.type),\n yAxisKey = first(split(this.yaxisdatakey, ','));\n this.xDataKeyArr = [];\n queryResponse = orderBy(queryResponse, split(this.groupby, ','));\n if (this.orderby) {\n orderByDetails = getLodashOrderByFormat(this.orderby);\n queryResponse = orderBy(queryResponse, orderByDetails.columns, orderByDetails.orders);\n }\n queryResponse = groupBy(queryResponse, groupingColumn);\n // In case of area chart all the series data should be of same length\n if (_isAreaChart) {\n maxLength = max(map(queryResponse, obj => obj.length));\n }\n forEach(queryResponse, (values, groupKey) => {\n groupValues = isAreaChart ? fill(new Array(maxLength), [0, 0]) : [];\n forEachRight(values, (value, index) => {\n groupValues[index] = this.valueFinder(value, this.xaxisdatakey, yAxisKey, index);\n });\n groupData = {\n key : groupKey,\n values : groupValues\n };\n chartData.push(groupData);\n });\n return chartData;\n }\n\n /*Decides whether the data should be visually grouped or not\n Visually grouped when a different column is choosen in the group by other than x and y axis and aggregation is not chosen*/\n getGroupingDetails() {\n if (this.isGroupByEnabled() && !this.isAggregationEnabled()) {\n let isVisuallyGrouped = false,\n visualGroupingColumn,\n groupingExpression,\n columns: any = [],\n groupingColumnIndex;\n const groupbyColumns = this.groupby && this.groupby !== NONE ? this.groupby.split(',') : [],\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [];\n\n if (groupbyColumns.length > 1) {\n /*Getting the group by column which is not selected either in x or y axis*/\n groupbyColumns.every((column, index) => {\n if (this.xaxisdatakey !== column && $.inArray(column, yAxisKeys) === -1) {\n isVisuallyGrouped = true;\n visualGroupingColumn = column;\n groupingColumnIndex = index;\n groupbyColumns.splice(groupingColumnIndex, 1);\n return false;\n }\n return true;\n });\n // Constructing the groupby expression\n if (visualGroupingColumn) {\n columns.push(visualGroupingColumn);\n }\n\n if (groupbyColumns.length) {\n columns = concat(columns, groupbyColumns);\n }\n }\n // If x and y axis are not included in aggregation need to be included in groupby\n if (this.xaxisdatakey !== this.aggregationcolumn) {\n columns.push(this.xaxisdatakey);\n }\n forEach(yAxisKeys, key => {\n if (key !== this.aggregationcolumn) {\n columns.push(key);\n }\n });\n groupingExpression = columns.join(',');\n // set isVisuallyGrouped flag in scope for later use\n this.isVisuallyGrouped = isVisuallyGrouped;\n\n return {\n expression: groupingExpression,\n isVisuallyGrouped: isVisuallyGrouped,\n visualGroupingColumn: visualGroupingColumn\n };\n }\n return {\n expression: '',\n isVisuallyGrouped: false,\n visualGroupingColumn: ''\n };\n }\n\n // Function to get the aggregated data after applying the aggregation & group by or order by operations.\n getAggregatedData(callback) {\n const variable: any = this.datasource,\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [],\n data: any = {};\n let sortExpr,\n columns: any = [],\n colAlias,\n orderByColumns,\n groupByFields: any = [];\n\n if (!variable) {\n return;\n }\n if (this.isGroupByEnabled()) {\n groupByFields = split(this.groupby, ',');\n }\n if (this.orderby) {\n sortExpr = replace(this.orderby, /:/g, ' ');\n columns = uniq(concat(columns, groupByFields, [this.aggregationcolumn]));\n orderByColumns = getLodashOrderByFormat(this.orderby).columns;\n // If the orderby column is chosen either in groupby or orderby then replace . with $ for that column\n forEach(intersection(columns, orderByColumns), col => {\n colAlias = getValidAliasName(col);\n // @ts-ignore\n sortExpr = replace(sortExpr, col, colAlias);\n });\n }\n if (this.isAggregationEnabled()) {\n // Send the group by in the aggregations api only if aggregation is also chosen\n data.groupByFields = groupByFields;\n data.aggregations = [\n {\n 'field': this.aggregationcolumn,\n 'type': aggregationFnMap[this.aggregation],\n 'alias': getValidAliasName(this.aggregationcolumn)\n }\n ];\n }\n // Execute the query.\n variable.execute('getAggregatedData', {\n 'aggregations' : data,\n 'sort' : sortExpr\n }).then(response => {\n // Transform the result into a format supported by the chart.\n const chartData: any = [],\n aggregationAlias: any = getValidAliasName(this.aggregationcolumn),\n xAxisAliasKey = getValidAliasName(this.xaxisdatakey),\n yAxisAliasKeys = [];\n\n yAxisKeys.forEach(yAxisKey => yAxisAliasKeys.push(getValidAliasName(yAxisKey)));\n\n forEach(response.body.content, (responseContent) => {\n const obj = {};\n // Set the response in the chartData based on 'aggregationColumn', 'xAxisDataKey' & 'yAxisDataKey'.\n if (this.isAggregationEnabled()) {\n obj[this.aggregationcolumn] = responseContent[aggregationAlias];\n obj[this.aggregationcolumn] = get(responseContent, aggregationAlias) || get(responseContent, this.aggregationcolumn);\n }\n\n obj[this.xaxisdatakey] = get(responseContent, xAxisAliasKey) || get(responseContent, this.xaxisdatakey);\n\n yAxisKeys.forEach((yAxisKey, index) => {\n obj[yAxisKey] = responseContent[yAxisAliasKeys[index]];\n obj[yAxisKey] = get(responseContent, yAxisAliasKeys[index]) || get(responseContent, yAxisKey);\n });\n\n chartData.push(obj);\n });\n\n this.chartData = chartData;\n\n triggerFn(callback);\n }, () => {\n this.chartData = [];\n this.setErrMsg('MESSAGE_ERROR_FETCH_DATA');\n triggerFn(callback);\n });\n }\n\n // This function sets maximum width for the labels that can be displayed.This will helpful when they are overlapping\n setLabelsMaxWidth() {\n let xTicks,\n tickWidth,\n maxLength,\n xDist,\n yDist,\n totalHeight,\n maxNoLabels,\n nthElement,\n labelsAvailableWidth,\n barWrapper,\n yAxisWrapper,\n svgWrapper;\n const fontsize = parseInt(this.fontsize, 10) || 12,\n isBarchart = isBarChart(this.type);\n // getting the x ticks in the chart\n xTicks = $('#wmChart' + this.$id + ' svg').find('g.nv-x').find('g.tick').find('text');\n\n // getting the distance between the two visible ticks associated with visible text\n xTicks.each(function () {\n const xTick = $(this);\n let xTransform,\n tickDist;\n if (xTick.text() && xTick.css('opacity') === '1') {\n xTransform = xTick.parent().attr('transform').split(',');\n xDist = parseFloat(xTransform[0].substr(10));\n yDist = parseFloat(xTransform[1] || '0');\n if (!isBarchart && xDist > 0) {\n tickDist = xDist;\n } else if (yDist > 0) {\n tickDist = yDist;\n }\n if (tickWidth) {\n tickWidth = tickDist - tickWidth;\n return false;\n }\n tickWidth = tickDist;\n return true;\n }\n });\n\n // In case of bar chart getting the available space for the labels to be displayed\n if (isBarchart) {\n barWrapper = $('#wmChart' + this.$id + ' svg>g.nv-wrap>g>g.nv-barsWrap')[0];\n yAxisWrapper = $('#wmChart' + this.$id + ' svg>g.nv-wrap>g>g.nv-y')[0];\n svgWrapper = $('#wmChart' + this.$id + ' svg')[0];\n // getting the total height of the chart\n totalHeight = barWrapper ? barWrapper.getBoundingClientRect().height : 0;\n // getting the labels available space\n labelsAvailableWidth = yAxisWrapper ? svgWrapper.getBoundingClientRect().width - yAxisWrapper.getBoundingClientRect().width : svgWrapper.getBoundingClientRect().width;\n // Setting the max length for the label\n maxLength = Math.round(labelsAvailableWidth / fontsize);\n // if available space for each label is less than the font-size\n // then limiting the labels to be displayed\n if (tickWidth < fontsize) {\n // calculate the maximum no of labels to be fitted\n maxNoLabels = totalHeight / fontsize;\n // showing only the nth element\n nthElement = Math.ceil(this.chartData.length / maxNoLabels);\n // showing up only some labels\n d3.select('#wmChart' + this.$id + ' svg').select('g.nv-x').selectAll('g.tick').select('text').each(function (text, i) {\n // hiding every non nth element\n if (i % nthElement !== 0) {\n d3.select(this).attr('opacity', 0);\n }\n });\n }\n } else {\n // Setting the max length for the label\n maxLength = Math.round(tickWidth / fontsize);\n }\n\n // maxLength should always be a positive number\n maxLength = Math.abs(maxLength);\n // Validating if every label exceeds the max length and if so limiting the length and adding ellipsis\n xTicks.each(function () {\n if (this.textContent.length > maxLength) {\n this.textContent = this.textContent.substr(0, maxLength) + '...';\n }\n });\n }\n\n // Returns the columns of that can be choosen in the x and y axis\n getDefaultColumns() {\n let type,\n stringColumn,\n i,\n temp;\n const defaultColumns = [],\n columns = this.datasource.execute(DataSource.Operation.GET_PROPERTIES_MAP) || [];\n\n for (i = 0; i < columns.length && defaultColumns.length <= 2; i += 1) {\n type = columns[i].type;\n if (!columns[i].isRelated && (isNumberType(type))) {\n defaultColumns.push(columns[i].fieldName);\n } else if (type === 'string' && !stringColumn) {\n stringColumn = columns[i].fieldName;\n }\n }\n // Other than bubble chart x: string type y: number type\n // Bubble chart x: number type y: number type\n if (stringColumn && defaultColumns.length > 0 && !isBubbleChart(this.type)) {\n temp = defaultColumns[0];\n defaultColumns[0] = stringColumn;\n defaultColumns[1] = temp;\n }\n\n return defaultColumns;\n }\n\n // Call user defined javascript function when user links it to click event of the widget.\n attachClickEvent() {\n let dataObj;\n d3.select('#wmChart' + this.$id + ' svg').selectAll(chartDataPointXpath[this.type]).style('pointer-events', 'all')\n .on('click', (event, data, index) => {\n switch (this.type) {\n case 'Column':\n case 'Bar':\n dataObj = data._dataObj;\n break;\n case 'Pie':\n case 'Donut':\n dataObj = data.data._dataObj;\n break;\n case 'Area':\n case 'Cumulative Line':\n case 'Line':\n dataObj = data[0]._dataObj;\n break;\n case 'Bubble':\n dataObj = data;\n break;\n }\n this.selecteditem = dataObj;\n this.invokeEventCallback('select', {\n $event: event,\n selectedChartItem: data,\n selectedItem: this.selecteditem\n });\n });\n\n }\n\n /* Returns Y Scale min value\n Ex: Input : 8.97\n Output : 8.87\n\n Input : 8\n Output : 7\n */\n\n postPlotProcess(chart) {\n let chartSvg,\n pieLabels,\n pieGroups,\n angleArray;\n const styleObj = {};\n const element = this.$element;\n\n postPlotChartProcess(this);\n\n if (!isPieType(this.type)) {\n this.setLabelsMaxWidth();\n } else if (!this.showlabelsoutside) {\n /** Nvd3 has a issue in rotating text. So we will use this as a temp fix.\n * If the issue is resolved there, we can remove this.*/\n /* If it is a donut chart, then rotate the text and position them*/\n chartSvg = d3.select('#wmChart' + this.$id + ' svg');\n pieLabels = chartSvg.select('.nv-pieLabels').selectAll('.nv-label');\n pieGroups = chartSvg.select('.nv-pie').selectAll('.nv-slice');\n angleArray = [];\n if (pieGroups && pieGroups.length) {\n pieGroups.each(function () {\n d3.select(this).attr('transform', function (d) {\n angleArray.push(angle(d));\n });\n });\n pieLabels.each(function (d, i) {\n const group = d3.select(this);\n $(group[0][0]).find('text').attr('transform', 'rotate(' + angleArray[i] + ')');\n });\n }\n }\n\n // prepare text style props object and set\n forEach(styleProps, (value, key) => {\n if (key === 'fontsize' || key === 'fontunit') {\n styleObj[value] = this.fontsize + this.fontunit;\n } else {\n styleObj[value] = this[key];\n }\n });\n setTextStyle(styleObj, this.$id);\n\n /*\n * allow window-resize functionality, for only-run mode as\n * updating chart is being handled by watchers of height & width in studio-mode\n * */\n triggerFn(this._resizeFn && this._resizeFn.clear);\n this._resizeFn = nv.utils.windowResize(() => {\n if (element[0].getBoundingClientRect().height) {\n chart.update();\n postPlotChartProcess(this);\n if (!isPieType(this.type)) {\n this.setLabelsMaxWidth();\n }\n } else {\n // TODO: get parents of accordion type\n /*let parent = element.closest('.app-accordion-panel, .tab-pane').isolateScope();\n if (parent) {\n parent.initialized = false;\n }*/\n }\n });\n }\n\n // prepares and configures the chart properties\n configureChart() {\n // Copy the data only in case of pie chart with default data\n // Reason : when multiple pie charts are bound to same data, first chart theme will be applied to all charts\n let xDomainValues;\n let yDomainValues;\n let chart;\n let beforeRenderVal;\n const yformatOptions: any = {};\n\n if (this._processedData.length > 0) {\n if (isAxisDomainValid(this, 'x')) {\n xDomainValues = this.binddataset ? this.getXMinMaxValues(this._processedData[0]) : { 'min' : {'x': 1}, 'max' : {'x' : 5}};\n }\n if (isAxisDomainValid(this, 'y')) {\n yDomainValues = this.binddataset ? this.getYMinMaxValues(this._processedData) : { 'min' : {'y' : 1}, 'max' : {'y' : 5}};\n }\n }\n\n if (isPieType(this.type) && (!this.binddataset || !this.scopedataset)) {\n this._processedData = getClonedObject(this.scopedataset || this._processedData);\n }\n\n // get the chart object\n chart = initChart(this, xDomainValues, yDomainValues, null, !this.binddataset);\n\n if (isArray(this._processedData)) {\n // WMS-19499: To remove chart X-axis old ticks when chart data loaded dynamically.\n const oldgTicks = $('#wmChart' + this.$id + ' svg').find('g.nv-x').find('g.tick');\n if (oldgTicks && oldgTicks.length) {\n oldgTicks.remove();\n }\n beforeRenderVal = this.invokeEventCallback('beforerender', { 'chartInstance' : chart});\n if (beforeRenderVal) {\n chart = beforeRenderVal;\n }\n this.chart = chart;\n // changing the default no data message\n d3.select('#wmChart' + this.$id + ' svg')\n .datum(this._processedData)\n .call(this.chart);\n this.postPlotProcess(chart);\n return chart;\n }\n }\n\n // Plotting the chart with set of the properties set to it\n plotChart() {\n const element = this.$element;\n // call user-transformed function\n this.chartData = (this.invokeEventCallback('transform')) || this.chartData;\n\n // Getting the order by data only in run mode. The order by applies for all the charts other than pie and donut charts\n if (this.isVisuallyGrouped && !isPieType(this.type)) {\n this._processedData = this.chartData;\n } else {\n this._processedData = this.processChartData();\n }\n // checking the parent container before plotting the chart\n if (!element[0].getBoundingClientRect().height) {\n return;\n }\n if (this.clearCanvas) {\n // empty svg to add-new chart\n element.find('svg').replaceWith('<svg></svg>');\n this.clearCanvas = false;\n }\n\n // In case of invalid axis show no data available message\n if (!this.isValidAxis()) {\n this._processedData = [];\n }\n nv.addGraph(() => this.configureChart(), () => {\n /*Bubble chart has an time out delay of 300ms in their implementation due to which we\n * won't be getting required data points on attaching events\n * hence delaying it 600ms*/\n setTimeout( () => {\n this.attachClickEvent();\n }, 600);\n });\n this.isLoadInProgress = false;\n }\n // TODO: Need way to figure out if the datasource is a live source\n get isLiveVariable() {\n // setting the flag for the live variable in the scope for the checks\n const variableObj = this.datasource;\n return variableObj && variableObj.category === 'wm.LiveVariable';\n }\n\n plotChartProxy() {\n this.showContentLoadError = false;\n this.invalidConfig = false;\n // Checking if x and y axis are chosen\n this.isLoadInProgress = true;\n const groupingDetails = this.getGroupingDetails();\n // If aggregation/group by/order by properties have been set, then get the aggregated data and plot the result in the chart.\n // TODO: datasource for live variable detection\n if (this.binddataset && this.isLiveVariable && (this.filterFields || this.isDataFilteringEnabled())) {\n this.getAggregatedData(() => this.plotChart());\n } else { // Else, simply plot the chart.\n // In case of live variable resetting the aggregated data to the normal dataset when the aggregation has been removed\n if (this.dataset && this.isLiveVariable) {\n this.chartData = this.dataset;\n if (this.isGroupByEnabled() && groupingDetails.isVisuallyGrouped) {\n this.chartData = this.getVisuallyGroupedData(this.chartData, groupingDetails.visualGroupingColumn);\n }\n\n }\n this.plotChart();\n }\n }\n\n // sets the default x and y axis options\n setDefaultAxisOptions() {\n const defaultColumns = this.getDefaultColumns();\n // If we get the valid default columns then assign them as the x and y axis\n // In case of service variable we may not get the valid columns because we cannot know the datatypes\n this.xaxisdatakey = defaultColumns[0] || null;\n this.yaxisdatakey = defaultColumns[1] || null;\n }\n\n getCutomizedOptions(prop, fields) {\n const groupByColumns = split(this.groupby, ','),\n aggColumns = split(this.aggregationcolumn, ',');\n if (!this.binddataset) {\n return fields;\n }\n if (!this.axisoptions) {\n this.axisoptions = fields;\n }\n let newOptions;\n switch (prop) {\n case 'xaxisdatakey':\n // If group by enabled, columns chosen in groupby will be populated in x axis options\n if (this.isGroupByEnabled()) {\n newOptions = groupByColumns;\n }\n break;\n case 'yaxisdatakey':\n // If aggregation by enabled, columns chosen in aggregation will be populated in y axis options\n if (this.isAggregationEnabled()) {\n newOptions = aggColumns;\n } else if (this.isLiveVariable) {\n // In case of live variable populating only numeric columns\n newOptions = this.numericColumns;\n }\n break;\n case 'groupby':\n // Filtering only non primary key columns\n if (this.isLiveVariable && this.nonPrimaryColumns && this.nonPrimaryColumns.length) {\n newOptions = this.nonPrimaryColumns;\n }\n break;\n case 'aggregationcolumn':\n // Set the 'aggregationColumn' to show all keys in case of aggregation function is count or to numeric keys in all other cases.\n if (this.isLiveVariable && this.isAggregationEnabled() && this.aggregation !== 'count') {\n newOptions = this.numericColumns;\n }\n break;\n case 'orderby':\n // Set the 'aggregationColumn' to show all keys in case of aggregation function is count or to numeric keys in all other cases.\n if (this.isLiveVariable && this.isAggregationEnabled()) {\n newOptions = uniq(concat(groupByColumns, aggColumns));\n }\n break;\n case 'bubblesize':\n if (this.numericColumns && this.numericColumns.length) {\n newOptions = this.numericColumns;\n }\n break;\n }\n\n return newOptions || fields || this.axisoptions;\n }\n\n // Function that iterates through all the columns and then fetching the numeric and non primary columns among them\n setNumericandNonPrimaryColumns() {\n let columns,\n type;\n const propertiesMap = this.datasource.execute(DataSource.Operation.GET_PROPERTIES_MAP);\n this.numericColumns = [];\n this.nonPrimaryColumns = [];\n // Fetching all the columns\n if (this.dataset && !isEmpty(propertiesMap)) {\n columns = []; // TODO: fetchPropertiesMapColumns(propertiesMap);\n }\n\n if (columns) {\n // Iterating through all the columns and fetching the numeric and non primary key columns\n forEach(Object.keys(columns), (key) => {\n type = columns[key].type;\n if (isNumberType(type)) {\n this.numericColumns.push(key);\n }\n // Hiding only table's primary key\n if (columns[key].isRelatedPk === 'true' || !columns[key].isPrimaryKey) {\n this.nonPrimaryColumns.push(key);\n }\n });\n this.numericColumns = this.numericColumns.sort();\n this.nonPrimaryColumns = this.nonPrimaryColumns.sort();\n }\n }\n\n // plot the chart\n handleDataSet(newVal) {\n this.errMsg = '';\n // Resetting the flag to false when the binding was removed\n if (!newVal && !this.binddataset) {\n this.isVisuallyGrouped = false;\n this.axisoptions = null;\n }\n\n // liveVariables contain data in 'data' property' of the variable\n this.chartData = this.isLiveVariable ? newVal || '' : (newVal && newVal.dataValue === '' && keys(newVal).length === 1) ? '' : newVal;\n\n // if the data returned is an object make it an array of object\n if (!isArray(this.chartData) && isObject(this.chartData)) {\n this.chartData = [this.chartData];\n }\n\n if (newVal && newVal.filterFields) {\n this.filterFields = newVal.filterFields;\n }\n\n // plotchart for only valid data and only after bound variable returns data\n if (this.chartData) {\n this._plotChartProxy();\n }\n }\n\n _plotChartProxy = debounce(this.plotChartProxy.bind(this), 100);\n\n // sets the center label for donut chart type\n setDonutCenterLabel(labelValue) {\n let chartSvg, pieGroups;\n chartSvg = d3.select('#wmChart' + this.$id + ' svg');\n\n pieGroups = chartSvg.select('.nv-wrap.nv-pie').select('.nv-pie');\n pieGroups.text('');\n pieGroups.append('text')\n .attr('dy', '.35em')\n .attr('text-anchor', 'middle')\n .attr('class', 'nv-pie-title')\n .text(labelValue)\n .each(function (d) {\n var d3text = d3.select(this),\n circ = d3.select(this.parentElement),\n totalWidth = Number(circ.node().getBoundingClientRect().width),\n // minus the ring width from total width\n availWidth = totalWidth - 30,\n textWidth = this.getComputedTextLength();\n d3text.attr(\"data-scale\", availWidth / textWidth);\n }).style(\"font-size\", function() {\n // 16 is the default font size to multiply with the scaled value and 24 is the maximum font size that can be applied\n var fontSize = 16 * d3.select(this).attr(\"data-scale\");\n return fontSize > 24 ? 24 : fontSize + \"px\";\n });\n }\n\n onPropertyChange(key, newVal, oldVal?) {\n super.onPropertyChange(key, newVal, oldVal);\n switch (key) {\n case 'dataset':\n this.handleDataSet(newVal);\n break;\n case 'centerlabel':\n if (this.chart) {\n this.chart.title(newVal);\n this.setDonutCenterLabel(newVal);\n }\n break;\n case 'type':\n // Based on the change in type deciding the default margins\n if (isPieType(this.type)) {\n this.offsettop = 20;\n this.offsetright = 0;\n this.offsetbottom = 0;\n this.offsetleft = 0;\n } else if (oldVal === 'Pie' || oldVal === 'Donut') {\n this.offsettop = 25;\n this.offsetright = 25;\n this.offsetbottom = 55;\n this.offsetleft = 75;\n }\n\n if (oldVal !== newVal) {\n this.clearCanvas = true;\n }\n // In studio mode, configure properties dependent on chart type\n this._plotChartProxy();\n break;\n default:\n // In RunMode, the plotchart method will not be called for all property change\n this._plotChartProxy();\n break;\n }\n if (includes(advanceDataProps, key)) {\n this._plotChartProxy();\n }\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.variableInflight = data.active;\n this.isLoadInProgress = data.active;\n }\n }\n\n hideTooltip() {\n d3.selectAll('.nvtooltip').style('opacity', 0);\n }\n\n onStyleChange(key, newVal, oldVal) {\n const styleObj = {};\n super.onStyleChange(key, newVal, oldVal);\n switch (key) {\n case 'fontsize':\n case 'fontunit':\n case 'color':\n case 'fontfamily':\n case 'fontweight':\n case 'fontstyle':\n case 'textdecoration':\n styleObj[styleProps[key]] = (key === 'fontsize' || key === 'fontunit') ? this.fontsize + this.fontunit : newVal;\n setTextStyle(styleObj, this.$id);\n break;\n }\n }\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER, ['fontsize', 'fontunit', 'color', 'fontfamily', 'fontweight', 'fontstyle', 'textdecoration']);\n\n // generate unique id for the component\n this.$id = this.widgetId || Math.random();\n // remove title attribute as the element on hover shows you the hint through-out the element\n removeAttr(this.nativeElement, 'title');\n this.chartReady = false;\n this.binddataset = this.nativeElement.getAttribute('dataset.bind');\n // Show loading status based on the variable life cycle\n this._subsciptions.push(this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)));\n // Will hide tolltip of a chart in mobile when the user scrolls.\n this._subsciptions.push(this.app.subscribe('iscroll-start', () => {this.hideTooltip();}));\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n // For old projects\n if (!includes(['outside', 'inside', 'hide'], this.showlabels)) {\n this.showlabels = getBooleanValue(this.showlabels);\n this.showlabelsoutside = getBooleanValue(this.showlabelsoutside);\n this.showlabels = this.showlabels ? (this.showlabelsoutside ? 'outside' : 'inside') : 'hide';\n }\n\n if (!this.theme) {\n // Default theme for pie/donut is Azure and for other it is Terrestrial\n this.theme = isPieType(this.type) ? 'Azure' : 'Terrestrial';\n }\n\n this.nativeElement.setAttribute('id', 'wmChart' + this.$id);\n // When there is not value binding, then plot the chart with sample data\n if (!this.binddataset && !this.nativeElement.getAttribute('scopedataset')) {\n this._plotChartProxy();\n }\n }\n\n ngOnDestroy() {\n // destroy all subscriptions to prevent memory leak.\n this.hideTooltip();\n this._subsciptions.forEach((subscription)=>{\n subscription();\n });\n super.ngOnDestroy();\n }\n redraw = this._plotChartProxy.bind(this);\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/chart/src/chart.props.ts","../../../../projects/components/widgets/chart/src/chart.utils.ts","../../../../projects/components/widgets/chart/src/chart.component.ts","../../../../projects/components/widgets/chart/src/chart.component.html","../../../../projects/components/widgets/chart/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-chart',\n new Map(\n [\n ['aggregation', {value: 'none', ...PROP_STRING}],\n ['aggregationcolumn', PROP_STRING],\n ['areaviewtype', {value: 'stack', ...PROP_STRING}],\n ['barspacing', {value: 'medium', ...PROP_STRING}],\n ['bubblesize', PROP_STRING],\n ['centerlabel', PROP_STRING],\n ['class', PROP_STRING],\n ['customcolors', PROP_ANY],\n ['dataset', PROP_ANY],\n ['datasource', PROP_STRING],\n ['donutratio', {value: 'medium', ...PROP_STRING}],\n ['formattype', {value: '', PROP_STRING}],\n ['groupby', PROP_STRING],\n ['height', {value: '210px', PROP_STRING}],\n ['highlightpoints', PROP_BOOLEAN],\n ['iconclass', PROP_STRING],\n ['interpolation', {value: 'linear', ...PROP_STRING}],\n ['labelthreshold', {value: 0.01, ...PROP_NUMBER}],\n ['labeltype', {value: 'percent', ...PROP_STRING}],\n ['legendtype', {value: 'furious', ...PROP_STRING}],\n ['linethickness', PROP_STRING],\n ['loadingdatamsg', {value: 'Loading...', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Available.', ...PROP_STRING}],\n ['offset', PROP_STRING],\n ['offsetbottom', {value: 55, ...PROP_NUMBER}],\n ['offsetleft', {value: 75, ...PROP_NUMBER}],\n ['offsetright', {value: 25, ...PROP_NUMBER}],\n ['offsettop', {value: 25, ...PROP_NUMBER}],\n ['orderby', PROP_STRING],\n ['reducexticks', {value: true, ...PROP_BOOLEAN}],\n ['shape', {value: 'circle', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showlabels', {value: 'outside', ...PROP_STRING}],\n ['showlabelsoutside', {value: true, ...PROP_BOOLEAN}],\n ['showlegend', {value: 'top', ...PROP_STRING}],\n ['showvalues', {value: false, ...PROP_BOOLEAN}],\n ['showxaxis', {value: true, ...PROP_BOOLEAN}],\n ['showxdistance', {value: false, ...PROP_BOOLEAN}],\n ['showyaxis', {value: true, ...PROP_BOOLEAN}],\n ['showydistance', {value: false, ...PROP_BOOLEAN}],\n ['staggerlabels', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['theme', PROP_STRING],\n ['title', PROP_STRING],\n ['tooltips', {value: true, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['viewtype', {value: 'Grouped', ...PROP_STRING}],\n ['xaxisdatakey', PROP_STRING],\n ['xaxislabel', PROP_STRING],\n ['xaxislabeldistance', {value: 12, ...PROP_NUMBER}],\n ['xdateformat', PROP_STRING],\n ['xdomain', {value: 'Default', ...PROP_STRING}],\n ['xnumberformat', PROP_STRING],\n ['xunits', PROP_STRING],\n ['yaxisdatakey', PROP_STRING],\n ['yaxislabel', PROP_STRING],\n ['yaxislabeldistance', {value: 12, ...PROP_NUMBER}],\n ['ydomain', {value: 'Default', ...PROP_STRING}],\n ['ynumberformat', PROP_STRING],\n ['yunits', PROP_STRING]\n ]\n )\n );\n};\n","import {isEmptyObject, prettifyLabels} from '@wm/core';\nimport {forEach, includes, invert, isArray, isFinite, isString, isUndefined, split} from \"lodash-es\";\n\ndeclare const $;\n\nimport * as momentLib from 'moment';\nconst moment = momentLib.default || window['moment'];\ndeclare const d3, nv;\n\nexport const chartTypes = ['Column', 'Line', 'Area', 'Cumulative Line', 'Bar', 'Pie', 'Donut', 'Bubble'],\n allShapes = ['circle', 'square', 'diamond', 'cross', 'triangle-up', 'triangle-down'];\n\nconst dateList = ['01/01/2001', '01/01/2002', '01/01/2003'],\n themes = {\n 'Terrestrial': {\n colors: ['#1f77b4', '#aec7e8', '#ff7f0e', '#ffbb78', '#2ca02c', '#98df8a', '#d62728', '#ff9896', '#9467bd', '#c5b0d5', '#8c564b', '#c49c94', '#e377c2', '#f7b6d2', '#7f7f7f', '#c7c7c7', '#bcbd22', '#dbdb8d', '#17becf', '#9edae5'],\n tooltip: {\n 'backgroundColor': '#de7d28',\n 'textColor': '#FFFFFF'\n }\n },\n 'Annabelle': {\n colors: ['#393b79', '#5254a3', '#6b6ecf', '#9c9ede', '#637939', '#8ca252', '#b5cf6b', '#cedb9c', '#8c6d31', '#bd9e39', '#e7ba52', '#e7cb94', '#843c39', '#ad494a', '#d6616b', '#e7969c', '#7b4173', '#a55194', '#ce6dbd', '#de9ed6'],\n tooltip: {\n 'backgroundColor': '#2e306f',\n 'textColor': '#FFFFFF'\n }\n },\n 'Azure': {\n colors: ['#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#e6550d', '#fd8d3c', '#fdae6b', '#fdd0a2', '#31a354', '#74c476', '#a1d99b', '#c7e9c0', '#756bb1', '#9e9ac8', '#bcbddc', '#dadaeb', '#636363', '#969696', '#bdbdbd', '#d9d9d9'],\n tooltip: {\n 'backgroundColor': '#3182bd',\n 'textColor': '#FFFFFF'\n }\n },\n 'Retro': {\n colors: ['#0ca7a1', '#ffa615', '#334957', '#acc5c2', '#988f90', '#8accc9', '#515151', '#f27861', '#36c9fd', '#794668', '#0f709d', '#0d2738', '#44be78', '#4a1839', '#6a393f', '#557d8b', '#6c331c', '#1c1c1c', '#861500', '#09562a'],\n tooltip: {\n 'backgroundColor': '#80513a',\n 'textColor': '#FFFFFF'\n }\n },\n 'Mellow': {\n colors: ['#f0dcbf', '#88c877', '#aeb918', '#2e2c23', '#ddddd2', '#dfe956', '#4c963b', '#5d3801', '#e1eec3', '#cd8472', '#fcfab3', '#9a4635', '#9295ad', '#2e3f12', '#565677', '#557d8b', '#4f4d02', '#0c0c1b', '#833324', '#24120e'],\n tooltip: {\n 'backgroundColor': '#7c9e73',\n 'textColor': '#FFFFFF'\n }\n },\n 'Orient': {\n colors: ['#a80000', '#cc6c3c', '#f0e400', '#000084', '#fccc6c', '#009c6c', '#cc309c', '#78cc00', '#fc84e4', '#48e4fc', '#4878d8', '#186c0c', '#606060', '#a8a8a8', '#000000', '#d7d7d7', '#75a06e', '#190d0b', '#888888', '#694b84'],\n tooltip: {\n 'backgroundColor': '#c14242',\n 'textColor': '#FFFFFF'\n }\n },\n 'GrayScale': {\n colors: ['#141414', '#353535', '#5b5b5b', '#848484', '#a8a8a8', '#c3c3c3', '#e0e0e0', '#c8c8c8', '#a5a5a5', '#878787', '#656565', '#4e4e4e', '#303030', '#1c1c1c', '#4f4f4f', '#3b3b3b', '#757575', '#606060', '#868686', '#c1c1c1'],\n tooltip: {\n 'backgroundColor': '#575757',\n 'textColor': '#FFFFFF'\n }\n },\n 'Flyer': {\n colors: ['#3f454c', '#5a646e', '#848778', '#cededf', '#74c4dd', '#0946ed', '#380bb1', '#000ff0', '#f54a23', '#1db262', '#bca3aa', '#ffa500', '#a86b32', '#63a18c', '#56795e', '#934343', '#b75f5f', '#752d2d', '#4e1111', '#920606'],\n tooltip: {\n 'backgroundColor': '#47637c',\n 'textColor': '#FFFFFF'\n }\n },\n 'Luminosity': {\n colors: ['#FFFFFF', '#e4e4e4', '#00bcd4', '#f0dd2f', '#00aabf', '#018376', '#e91e63', '#39e5d4', '#ff6d6d', '#00ff76', '#ff9800', '#969696', '#ff4200', '#e00000', '#95cbe5', '#5331ff', '#fff4a7', '#e7a800', '#0061e4', '#d5e7ff'],\n tooltip: {\n 'backgroundColor': '#47637c',\n 'textColor': '#FFFFFF'\n }\n }\n },\n basicProperties = ['xaxislabel', 'yaxislabel', 'xunits', 'yunits', 'xnumberformat', 'xdateformat', 'ynumberformat',\n 'showvalues', 'showlabels', 'viewtype', 'areaviewtype', 'staggerlabels', 'reducexticks', 'offsettop', 'offsetbottom', 'offsetright', 'offsetleft',\n 'barspacing', 'xaxislabeldistance', 'yaxislabeldistance', 'theme', 'labeltype', 'donutratio', 'showlabelsoutside', 'showxdistance', 'showydistance', 'shape', 'nodatamessage', 'captions', 'showxaxis', 'showyaxis',\n 'centerlabel', 'customcolors', 'showlegend', 'legendtype', 'xdomain', 'ydomain', 'tooltips', 'linethickness', 'highlightpoints', 'interpolation', 'labelthreshold'],\n barSpacingMap = {\n 'small' : 0.3,\n 'medium' : 0.5,\n 'large' : 0.8\n },\n donutRatioMap = {\n 'small' : 0.3,\n 'medium' : 0.6,\n 'large' : 0.7\n },\n barSpacingMapInvert = invert(barSpacingMap),\n donutRatioMapInvert = invert(donutRatioMap),\n tickformats = {\n 'Thousand': {\n 'prefix': 'K',\n 'divider': 1000\n },\n 'Million' : {\n 'prefix': 'M',\n 'divider': 1000000\n },\n 'Billion' : {\n 'prefix': 'B',\n 'divider': 1000000000\n }\n },\n chartId = '#preview-chart',\n dataTypeJSON = ['Column', 'Line', 'Pie', 'Bar', 'Donut', 'Bubble'], // Charts that supports the data to be JSON;\n lineTypeCharts = ['Line', 'Area', 'Cumulative Line'], // Charts that does not supports the string type of data in the xaxis in the nvd3;\n dataTypeArray = ['Cumulative Line', 'Area'], // Charts that supports the data to be Array\n SAMPLE_DATA = {\n 'group1' : 'Europe',\n 'group2' : 'Asia',\n 'group3' : 'America',\n 'group4' : 'Australia'\n };\n\n// returns true if chart type is pie\nexport const isPieChart = type => type === 'Pie';\n\n// returns true if chart type is line\nexport const isLineChart = type => type === 'Line';\n\n// returns true if chart type is bar\nexport const isBarChart = type => type === 'Bar';\n\n// returns true if chart type is donut\nexport const isDonutChart = type => type === 'Donut';\n\n// returns true if chart type is bubble\nexport const isBubbleChart = type => type === 'Bubble';\n\n// returns true if chart type is column\nexport const isColumnChart = type => type === 'Column';\n\n// returns true if chart type is area\nexport const isAreaChart = type => type === 'Area';\n\n// returns true if chart type is area\nexport const isPieType = type => isPieChart(type) || isDonutChart(type);\n\n// The format of chart data is array of json objects in case of the following types of chart\nexport const isChartDataJSON = type => includes(dataTypeJSON, type) || !includes(chartTypes, type);\n\n// The format of chart data is array of objects in case of the following types of chart\nexport const isChartDataArray = type => includes(dataTypeArray, type);\n\n// returns true is the chart type is 'line', 'area' or 'cumulative line' else false\nexport const isLineTypeChart = type => includes(lineTypeCharts, type);\n\n// X/Y Domain properties are supported only for Column and Area charts\nexport const isAxisDomainSupported = type => isColumnChart(type) || isAreaChart(type);\n\n// Returns bar spacing value\nexport const getBarSpacingValue = (value, prop) => {\n if (prop === 'value') {\n return barSpacingMap[value];\n }\n if (prop === 'key') {\n return barSpacingMapInvert[value];\n }\n};\n\n// Returns radius value\nexport const getRadiusValue = (value, prop) => {\n if (prop === 'value') {\n return donutRatioMap[value];\n }\n if (prop === 'key') {\n return donutRatioMapInvert[value];\n }\n};\n\n// Returns labels config\nexport const getLabelValues = (showlabels, showlabelsoutside, prop) => {\n const labelsConfig: any = {};\n switch (showlabels) {\n case 'hide':\n labelsConfig.showlabels = false;\n break;\n case 'inside':\n labelsConfig.showlabels = true;\n labelsConfig.showlabelsoutside = false;\n break;\n case 'outside':\n labelsConfig.showlabels = true;\n labelsConfig.showlabelsoutside = true;\n break;\n }\n return labelsConfig;\n};\n\n// Construct the sample data\nexport const constructSampleData = (dataType, yaxisLength, shape) => {\n let first_series = [],\n second_series = [],\n third_series = [],\n first_series_array = [],\n second_series_array = [],\n third_series_array = [],\n first_series_bubble = [],\n second_series_bubble = [],\n third_series_bubble = [],\n data = [];\n switch (dataType) {\n case 'jsonFormat':\n first_series = [\n {'x': '01/01/2001', 'y': 4000000},\n {'x': '01/01/2002', 'y': 1000000},\n {'x': '01/01/2003', 'y': 5000000}\n ];\n second_series = [\n {'x': '01/01/2001', 'y': 3000000},\n {'x': '01/01/2002', 'y': 4000000},\n {'x': '01/01/2003', 'y': 7000000}\n ];\n third_series = [\n {'x': '01/01/2001', 'y': 2000000},\n {'x': '01/01/2002', 'y': 8000000},\n {'x': '01/01/2003', 'y': 6000000}\n ];\n data[0] = {\n values: first_series,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'lineChartFormat':\n first_series = [\n {'x': 1, 'y': 4000000},\n {'x': 2, 'y': 1000000},\n {'x': 3, 'y': 5000000}\n ];\n second_series = [\n {'x': 1, 'y': 3000000},\n {'x': 2, 'y': 4000000},\n {'x': 3, 'y': 7000000}\n ];\n third_series = [\n {'x': 1, 'y': 2000000},\n {'x': 2, 'y': 8000000},\n {'x': 3, 'y': 6000000}\n ];\n data[0] = {\n values: first_series,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'arrayFormat':\n first_series_array = [\n [1, 4000000],\n [2, 1000000],\n [3, 5000000]\n ];\n second_series_array = [\n [1, 3000000],\n [2, 4000000],\n [3, 7000000]\n ];\n third_series_array = [\n [1, 2000000],\n [2, 8000000],\n [3, 6000000]\n ];\n data[0] = {\n values: first_series_array,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series_array,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series_array,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'bubbleFormat':\n shape = shape === 'random' ? allShapes[Math.floor(Math.random() * allShapes.length)] : shape;\n first_series_bubble = [\n {'x': 80.66, 'y': 33739900, 'size': 78, 'shape': shape},\n {'x': 79.84, 'y': 81902300, 'size': 90, 'shape': shape},\n {'x': 78.6, 'y': 5523100, 'size': 45, 'shape': shape}\n ];\n second_series_bubble = [\n {'x': 72.73, 'y': 79716200, 'size': 98, 'shape': shape},\n {'x': 80.05, 'y': 61801600, 'size': 20, 'shape': shape},\n {'x': 72.49, 'y': 73137200, 'size': 34, 'shape': shape}\n ];\n third_series_bubble = [\n {'x': 68.09, 'y': 33739900, 'size': 45, 'shape': shape},\n {'x': 81.55, 'y': 7485600, 'size': 78, 'shape': shape},\n {'x': 68.60, 'y': 141850000, 'size': 56, 'shape': shape}\n ];\n data[0] = {\n values: first_series_bubble,\n key: SAMPLE_DATA.group1\n };\n if (yaxisLength >= 2) {\n data[1] = {\n values: second_series_bubble,\n key: SAMPLE_DATA.group2\n };\n }\n if (yaxisLength >= 3) {\n data[2] = {\n values: third_series_bubble,\n key: SAMPLE_DATA.group3\n };\n }\n break;\n case 'pieChartFormat':\n data = [\n {'x': SAMPLE_DATA.group1, 'y': 1000000},\n {'x': SAMPLE_DATA.group2, 'y': 2000000},\n {'x': SAMPLE_DATA.group3, 'y': 3000000},\n {'x': SAMPLE_DATA.group4, 'y': 4000000}\n ];\n break;\n }\n return data;\n};\n\nexport const getDataType = widgetContext => {\n const type = widgetContext.type;\n if (isLineChart(type)) {\n return 'lineChartFormat';\n }\n if (isPieType(type)) {\n return 'pieChartFormat';\n }\n if (isBubbleChart(type)) {\n return 'bubbleFormat';\n }\n return isChartDataJSON(type) ? 'jsonFormat' : 'arrayFormat';\n};\n\n// Sample data to populate when no data is bound\nexport const getSampleData = widgetContext => constructSampleData(getDataType(widgetContext), split(widgetContext.yaxisdatakey, ',').length, widgetContext.shape);\n\n// Check whether X/Y Domain was set to Min and is supported for the present chart\nexport const isAxisDomainValid = (widgetContext, axis) => {\n if (widgetContext[axis + 'domain'] === 'Min' && (isAxisDomainSupported(widgetContext.type))) {\n return true;\n }\n return false;\n};\n\n// Check whether min and max values are finite or not\nexport const areMinMaxValuesValid = values => {\n if (isFinite(values.min) && isFinite(values.max)) {\n return true;\n }\n return false;\n};\n\nexport const getYScaleMinValue = value => {\n const _min = Math.floor(value);\n /* If the number has a) decimal part returning floor value - 0.1\n b) no decimal part returning floor value - 1 */\n return Math.abs(value) - _min > 0 ? value - 0.1 : _min - 1;\n};\n\n// Chooses the data points of line/cumulative line/area chart and highlights them\nexport const highlightPoints = (id, highlightpoints) => {\n const chartSvg = id ? d3.select('#wmChart' + id + ' svg') : d3.select(chartId + ' svg');\n if (highlightpoints) {\n chartSvg.selectAll('.nv-point')\n .style('stroke-width', '6px')\n .style('fill-opacity', '0.95')\n .style('stroke-opacity', '0.95');\n } else {\n chartSvg.selectAll('.nv-point')\n .style('stroke-width', '0px')\n .style('fill-opacity', '0');\n }\n};\n\n// Chooses the line of line/cumulative line and increases the thickness of it\nexport const setLineThickness = (id, thickness) => {\n const chartSvg = id ? d3.select('#wmChart' + id + ' svg') : d3.select(chartId + ' svg');\n thickness = thickness || 1.5;\n\n const lines = chartSvg.selectAll('.nv-line');\n\n if (lines.size() !== 0) {\n lines.style('stroke-width', thickness);\n }\n};\n\n// Constructing a common key value map for preview and canvas mode\nexport const initProperties = (widgetContext, propertyValueMap) => {\n if (!propertyValueMap || isEmptyObject(propertyValueMap)) {\n propertyValueMap = {};\n }\n forEach(basicProperties, prop => {\n if (isUndefined(propertyValueMap[prop])) {\n propertyValueMap[prop] = widgetContext[prop];\n }\n });\n\n return propertyValueMap;\n};\n\nexport const getNumberValue = (value, callback) => {\n return isNaN(parseInt(value, 10)) ? callback(value, 'value') : value;\n};\n\n// Formats the given value according to date format\nexport const getDateFormatedData = (dateFormat, d) => {\n dateFormat = dateFormat || '%x';\n /**\n * if date value is string \"20-05-2019\" then new Date(value) return 20May2019 with current time in India,\n * whereas this will return 19May2019 with time lagging for few hours.\n * This is because it returns UTC time i.e. Coordinated Universal Time (UTC).\n * To create date in local time use moment\n */\n if(dateFormat == '%c') {\n dateFormat = '%a %b %e %X %Y';\n }\n return d3.timeFormat(dateFormat)(new Date(moment(moment(d).format()).valueOf()));\n};\nconst removeTrailingZeros = value => {\n if(!value) {\n return value;\n }\n // Convert value to a string if it's a number\n const stringValue = typeof value === 'number' ? value.toString() : value;\n\n // Remove trailing zeros\n return stringValue.replace(/\\.0+([A-Za-z]*)$/, '$1').replace(/\\.([1-9]+)0+([A-Za-z]*)$/, '.$1$2');\n};\n\n// Formats the given value according to number format\nexport const getNumberFormatedData = (numberFormat, d) => {\n let formattedData,\n divider,\n prefix;\n // formatting the data based on number format selected\n if (numberFormat) {\n let numberFormatter;\n if(numberFormat == 'Thousand' || numberFormat == 'Million' || numberFormat == 'Billion') {\n numberFormatter = d3.format(',.2s');\n } else if(numberFormat == '%') {\n numberFormatter = d3.format('.2%');\n }else if(numberFormat == '.f') {\n numberFormatter = d3.format('.2f');\n } else {\n numberFormatter = d3.format(numberFormat);\n }\n formattedData = numberFormatter(d);\n\n\n // Getting the respective divider[1000,1000000,1000000000] based on the number format choosen\n divider = (tickformats[numberFormat] && tickformats[numberFormat].divider) || 0;\n prefix = tickformats[numberFormat] && tickformats[numberFormat].prefix;\n if (prefix && divider !== 0) {\n formattedData = d3.format('.2f')(d / divider) + prefix;\n }\n } else {\n // Auto formatting the data when no formating option is chosen\n formattedData = d >= 1000 ? d3.format('.1s')(d) : d;\n }\n formattedData = removeTrailingZeros(formattedData);\n return formattedData;\n};\n\n// Set the visibility property of the chart x,y axis due to a bug in the nvd3\nexport const toggleAxisShow = (property, value) => {\n const $xAxis = d3.select(chartId + ' g.nv-axis.nv-x'),\n $yAxis = d3.select(chartId + ' g.nv-axis.nv-y');\n if (property === 'showxaxis') {\n $xAxis.style('visibility', value ? 'visible' : 'hidden');\n } else {\n $yAxis.style('visibility', value ? 'visible' : 'hidden');\n }\n};\n\nexport const modifyLegendPosition = (widgetContext, position, id) => {\n const showLegend = isShowLegend(widgetContext.showlegend),\n chart_Id = id ? '#wmChart' + id : chartId,\n legendWrap = d3.select(chart_Id + ' .nv-legendWrap'),\n legendPadding = 5;\n // Return when showlegend is false\n if (!showLegend || !legendWrap['_groups'][0][0]) {\n return;\n }\n if (position === 'bottom') {\n const legendWrapHeight = legendWrap['_groups'][0][0].getBoundingClientRect().height,\n wrap = d3.select(chart_Id + ' .nv-wrap'),\n wrapTransform = (wrap && wrap.attr('transform')) ? wrap.attr('transform').replace(/, /g, ',') : '',\n coordinates = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(wrapTransform),\n getChartHeight = () => {\n let chartHeight = $(chart_Id + ' svg>.nvd3.nv-wrap')[0].getBoundingClientRect().height;\n if (chartHeight === 0) { // fix for IE\n chartHeight = ($(chart_Id + ' svg')[0].getBoundingClientRect().height - (legendWrapHeight + 15));\n }\n return chartHeight;\n };\n legendWrap.attr('transform', 'translate(0 , ' + (getChartHeight() - legendWrapHeight - legendPadding) + ')');\n if (coordinates) {\n wrap.attr('transform', 'translate(' + coordinates[1] + ',' + legendPadding + ')');\n }\n }\n};\n\n// Returns value if legend need to shown or not\nexport const isShowLegend = value => {\n // Old projects will have either true or false\n if (value === 'false' || value === false) {\n return false;\n }\n if (value === 'true' || value === true) {\n return true;\n }\n // New projects will have either 'Hide Legend', 'Show Top', 'Show Bottom'\n return value === 'hide' ? false : true;\n};\n\n/**\n * Customise the tooltip for donut & pie charts and also for charts having only one value attached to yaxis\n * @param key\n * @param label\n */\nexport const customiseTooltip = (chart, propertyValueMap, widgetContext, label?) => {\n d3.selectAll('.nvtooltip').style('opacity', 0);\n chart.tooltip.contentGenerator((key, propertyValueMap) => {\n let xValue = key.data.x, yValue;\n yValue = getNumberFormatedData(propertyValueMap.ynumberformat, key.data.y);\n if (isPieType(widgetContext.type)) {\n label = key.data.x;\n xValue = '';\n }\n return '<table>' +\n '<tbody>' +\n '<tr class=\"value\"><b>' + xValue +\n '</b></tr>' +\n '<tr>' +\n '<td class=\"legend-color-guide\"><div style=\"background-color:' + key.color + ';\"></div></td>' +\n '<td class=\"key\">' + label + '</td>' +\n '<td class=\"value\">' + yValue + '</td>' +\n '</tr>' +\n '</tbody>' +\n '</table>';\n });\n};\n\n// intializes the chart obejct\nexport const initChart = (widgetContext, xDomainValues, yDomainValues, propertyValueMap, isPreview) => {\n propertyValueMap = initProperties(widgetContext, propertyValueMap);\n let chart, colors = [], xaxislabel, yaxislabel, labelConfig, radius, barSpacing,\n showLegend, xAxisValue, hasMultipleYValues;\n const xValue: any = {}, yValue: any = {};\n switch (widgetContext.type) {\n case 'Column':\n barSpacing = getNumberValue(propertyValueMap.barspacing, getBarSpacingValue) || barSpacingMap.medium;\n chart = nv.models.multiBarChart()\n .x(d => d.x)\n .y(d => d.y)\n .reduceXTicks(propertyValueMap.reducexticks)\n .rotateLabels(0)\n .showControls(false)\n .stacked(propertyValueMap.viewtype === 'Stacked' ? true : false)\n .groupSpacing(barSpacing);\n break;\n case 'Cumulative Line':\n chart = nv.models.cumulativeLineChart()\n .x(d => d[0])\n .y(d => d[1])\n .showControls(false)\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Line':\n chart = nv.models.lineChart()\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Area':\n chart = nv.models.stackedAreaChart()\n .x(d => d.x)\n .y(d => d.y)\n .clipEdge(true)\n .showControls(false)\n .style(propertyValueMap.areaviewtype)\n .useInteractiveGuideline(propertyValueMap.tooltips)\n .interpolate(propertyValueMap.interpolation);\n break;\n case 'Bar':\n barSpacing = getNumberValue(propertyValueMap.barspacing, getBarSpacingValue) || barSpacingMap.medium;\n chart = nv.models.multiBarHorizontalChart()\n .x(d => d.x)\n .y(d => d.y)\n .showControls(false)\n .stacked(propertyValueMap.viewtype === 'Stacked' ? true : false)\n .showValues(propertyValueMap.showvalues)\n .groupSpacing(barSpacing);\n break;\n case 'Pie':\n case 'Donut':\n labelConfig = getLabelValues(propertyValueMap.showlabels, propertyValueMap.showlabelsoutside, 'value');\n radius = getNumberValue(propertyValueMap.donutratio, getRadiusValue) || donutRatioMap.medium;\n chart = nv.models.pieChart()\n .x(d => d.x)\n .y(d => d.y)\n .showLabels(labelConfig.showlabels)\n .labelType(propertyValueMap.labeltype)\n .valueFormat(d3.format('%'))\n .title(propertyValueMap.centerlabel)\n .labelThreshold(propertyValueMap.labelthreshold || 0.01)\n .labelsOutside(labelConfig.showlabelsoutside);\n if (isDonutChart(widgetContext.type)) {\n chart.donut(true)\n .donutRatio(radius);\n }\n if (propertyValueMap.labeltype === 'key-value') {\n chart.labelType(d => d.data.x + ' ' + d.data.y);\n }\n break;\n case 'Bubble':\n chart = nv.models.scatterChart()\n .x(d => d.x)\n .y(d => d.y)\n .showDistX(propertyValueMap.showxdistance)\n .showDistY(propertyValueMap.showydistance);\n break;\n }\n\n if (xDomainValues) {\n xValue.min = xDomainValues.min.x || xDomainValues.min[0];\n xValue.max = xDomainValues.max.x || xDomainValues.max[0];\n // If the values on the x axis are string then min max values gives Infinity\n if (areMinMaxValuesValid(xValue)) {\n // Reducing the min value to 0.1 so the min value is not missed out\n xValue.min = getYScaleMinValue(xValue.min);\n chart.xDomain([xValue.min, xValue.max]);\n }\n }\n\n if (yDomainValues) {\n // Reducing the min value to 1 so the min value is not missed out\n yValue.min = yDomainValues.min.y || yDomainValues.min[1];\n yValue.max = yDomainValues.max.y || yDomainValues.max[1];\n // If the values on the y axis are string or invalid then min max values gives Infinity\n if (areMinMaxValuesValid(yValue)) {\n // Reducing the min value to 1 so the min value is not missed out\n yValue.min = getYScaleMinValue(yValue.min);\n chart.yDomain([yValue.min, yValue.max]);\n }\n }\n\n // Setting the legend type choosen by user or default it will be furious\n chart.legend.vers((propertyValueMap.legendtype && propertyValueMap.legendtype.toLowerCase()) || 'furious');\n\n if (!includes(chartTypes, widgetContext.type)) {\n chart = nv.models.multiBarChart()\n .x(d => d.x)\n .y(d => d.y);\n }\n\n\n if (isPieType(widgetContext.type)) {\n // In case of pie/donut chart formatting the values of it\n if (propertyValueMap.labeltype === 'percent') {\n chart.valueFormat(d3.format('%'));\n } else {\n chart.valueFormat(d => getNumberFormatedData(propertyValueMap.ynumberformat, d));\n }\n // Customizing the tooltips in case of the pie and donut when labelType is value\n customiseTooltip(chart, propertyValueMap, widgetContext);\n }\n else {\n chart.showXAxis(propertyValueMap.showxaxis)\n .showYAxis(propertyValueMap.showyaxis);\n chart.legendPosition(propertyValueMap.showlegend);\n\n // Setting the labels if they are specified explicitly or taking the axiskeys chosen\n xaxislabel = propertyValueMap.xaxislabel || prettifyLabels(widgetContext.xaxisdatakey) || 'x caption';\n yaxislabel = propertyValueMap.yaxislabel || prettifyLabels(widgetContext.yaxisdatakey) || 'y caption';\n\n // Checking if y axis has multiple values\n if (widgetContext.yaxisdatakey && widgetContext.yaxisdatakey.split(',').length > 1) {\n hasMultipleYValues = true;\n }\n // Customizing the tooltip to show yaxislabel, only if the y axis contains one value\n if (!hasMultipleYValues && !isBubbleChart(widgetContext.type)) {\n customiseTooltip(chart, propertyValueMap, widgetContext, yaxislabel);\n }\n\n // Adding the units to the captions if they are specified\n xaxislabel += propertyValueMap.xunits ? '(' + propertyValueMap.xunits + ')' : '';\n yaxislabel += propertyValueMap.yunits ? '(' + propertyValueMap.yunits + ')' : '';\n\n chart.xAxis\n .axisLabel(xaxislabel)\n .axisLabelDistance(propertyValueMap.xaxislabeldistance)\n .staggerLabels(propertyValueMap.staggerlabels);\n\n // If date format set format based date format\n if (propertyValueMap.xdateformat || (isPreview && !isBubbleChart(widgetContext.type))) {\n if (isLineTypeChart(widgetContext.type)) {\n chart.xAxis.tickFormat(d => {\n // get the actual value\n xAxisValue = isPreview ? dateList[d - 1] : widgetContext.xDataKeyArr[d];\n return getDateFormatedData(propertyValueMap.xdateformat, xAxisValue);\n });\n } else {\n chart.xAxis.tickFormat(d => getDateFormatedData(propertyValueMap.xdateformat, d));\n }\n } else if (propertyValueMap.xnumberformat) {\n chart.xAxis.tickFormat(d => getNumberFormatedData(propertyValueMap.xnumberformat, d));\n } else {\n if (isLineTypeChart(widgetContext.type)) {\n // get the actual value\n chart.xAxis.tickFormat(d => widgetContext.xDataKeyArr[d]);\n }\n }\n chart.yAxis\n .axisLabel(yaxislabel)\n .axisLabelDistance(propertyValueMap.yaxislabeldistance)\n .staggerLabels(propertyValueMap.staggerlabels)\n .tickFormat(d => getNumberFormatedData(propertyValueMap?.ynumberformat, d));\n if (isBarChart(widgetContext.type)) {\n chart.valueFormat(d => getNumberFormatedData(propertyValueMap?.ynumberformat, d));\n }\n }\n\n // Support for custom colors if user gives direct string of colors in text box\n if (isString(propertyValueMap.customcolors) && propertyValueMap.customcolors) {\n colors = split(propertyValueMap.customcolors, ',');\n }\n if (isArray(propertyValueMap.customcolors)) {\n colors = propertyValueMap.customcolors;\n }\n\n showLegend = isShowLegend(propertyValueMap.showlegend);\n chart.showLegend(showLegend)\n .margin({top: propertyValueMap.offsettop, right: propertyValueMap.offsetright, bottom: propertyValueMap.offsetbottom, left: propertyValueMap.offsetleft})\n .color(colors.length ? colors : themes[propertyValueMap.theme].colors);\n\n chart.tooltip.enabled(propertyValueMap.tooltips);\n widgetContext.message = propertyValueMap.nodatamessage || 'No data found';\n // setting the no data message\n chart.noData(widgetContext.message);\n\n if (isLineTypeChart(widgetContext.type) && widgetContext.highlightpoints) {\n chart.dispatch.on('stateChange', () => {\n setTimeout(() => postPlotChartProcess(widgetContext), 100);\n });\n }\n\n if (widgetContext.showlegend && (widgetContext.type === 'Donut' || widgetContext.type === 'Pie')) {\n if(widgetContext.showlegend === 'right') {\n chart.legendPosition('right');\n }\n }\n return chart;\n};\n\n// @ts-ignore\nexport const postPlotChartProcess = (widgetContext, isPreview?) => {\n const id = isPreview ? null : widgetContext.$id;\n // If user sets to highlight the data points and increase the thickness of the line\n if (isLineTypeChart(widgetContext.type)) {\n setLineThickness(id, widgetContext.linethickness);\n highlightPoints(id, widgetContext.highlightpoints);\n }\n // Modifying the legend position only when legend is shown\n // if (widgetContext.showlegend) {\n // modifyLegendPosition(widgetContext, widgetContext.showlegend, id);\n // }\n};\n\n// @ts-ignore\nexport const getDateList = () => dateList;\n\n","import { CommonModule } from '@angular/common';\nimport { SpinnerComponent } from '@wm/components/basic/spinner';\nimport {\n AfterViewInit,\n OnDestroy,\n Component,\n HostBinding,\n Injector,\n ViewEncapsulation,\n Optional,\n Inject\n} from '@angular/core';\n\nimport {\n App,\n DataSource,\n getClonedObject,\n isDataSourceEqual,\n isEmptyObject,\n isNumberType,\n prettifyLabels,\n removeAttr,\n triggerFn,\n} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IRedrawableComponent, provideAsWidgetRef, StylableComponent, styler, } from '@wm/components/base';\n\nimport { registerProps } from './chart.props';\nimport { allShapes, getDateList, getSampleData, initChart, isAreaChart, isAxisDomainValid, isBarChart, isBubbleChart, isChartDataArray, isChartDataJSON, isLineTypeChart, isPieType, postPlotChartProcess } from './chart.utils';\nimport {\n concat, debounce, fill,\n first,\n forEach, forEachRight,\n get, groupBy, includes,\n intersection,\n isArray, isEmpty, isObject, keys,\n map, max,\n maxBy,\n minBy,\n orderBy,\n replace,\n split,\n uniq\n} from \"lodash-es\";\n\ndeclare const $;\n\ndeclare const d3, nv;\n\nconst WIDGET_CONFIG = {widgetType: 'wm-chart', hostClass: 'app-chart'};\n\nconst options = {\n 'Bubble' : ['bubblesize', 'shape']\n },\n NONE = 'none',\n advanceDataProps = ['aggregation', 'aggregationcolumn', 'groupby', 'orderby'],\n // XPaths to get actual data of data points in charts\n chartDataPointXpath = {\n 'Column' : 'rect.nv-bar',\n 'Bar' : 'g.nv-bar',\n 'Area' : '.nv-stackedarea .nv-point',\n 'Cumulative Line': '.nv-cumulativeLine .nv-scatterWrap path.nv-point',\n 'Line' : '.nv-lineChart .nv-scatterWrap path.nv-point',\n 'Pie' : '.nv-pieChart .nv-slice path',\n 'Donut' : '.nv-pieChart .nv-slice path',\n 'Bubble' : '.nv-scatterChart .nv-point-paths path'\n },\n // all properties of the chart\n allOptions = ['bubblesize', 'shape'],\n styleProps = {\n 'fontunit' : 'font-size',\n 'fontsize' : 'font-size',\n 'color' : 'fill',\n 'fontfamily' : 'font-family',\n 'fontweight' : 'font-weight',\n 'fontstyle' : 'font-style',\n 'textdecoration': 'text-decoration'\n },\n // Getting the relevant aggregation function based on the selected option\n aggregationFnMap = {\n 'average' : 'AVG',\n 'count' : 'COUNT',\n 'maximum' : 'MAX',\n 'minimum' : 'MIN',\n 'sum' : 'SUM'\n };\n\nconst getBooleanValue = val => {\n if (val === true || val === 'true') {\n return true;\n }\n if (val === false || val === 'false') {\n return false;\n }\n return val;\n};\n\n// returns orderby columns and their orders in two separate arrays\nconst getLodashOrderByFormat = orderby => {\n let columns;\n const orderByColumns = [],\n orders = [];\n\n forEach(split(orderby, ','), function (col) {\n columns = split(col, ':');\n orderByColumns.push(columns[0]);\n orders.push(columns[1]);\n });\n return {\n 'columns' : orderByColumns,\n 'orders' : orders\n };\n};\n\n// Replacing the '.' by the '$' because '.' is not supported in the alias names\nconst getValidAliasName = aliasName => aliasName ? aliasName.replace(/\\./g, '$') : null;\n\n// Applying the font related styles for the chart\nconst setTextStyle = (properties, id) => {\n const charttext = d3.select('#wmChart' + id + ' svg').selectAll('text');\n if (!charttext.empty()) {\n charttext.style(properties);\n }\n};\n\nconst angle = d => {\n const a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;\n return a > 90 ? a - 180 : a;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, SpinnerComponent],\n selector: 'div[wmChart]',\n templateUrl: './chart.component.html',\n styleUrls: ['../../../../../node_modules/@wavemaker/nvd3/build/nv.d3.min.css'],\n providers: [\n provideAsWidgetRef(ChartComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChartComponent extends StylableComponent implements AfterViewInit, OnDestroy, IRedrawableComponent {\n static initializeProps = registerProps();\n\n xaxisdatakey;\n yaxisdatakey;\n groupby;\n aggregation;\n aggregationcolumn;\n isVisuallyGrouped;\n orderby;\n iconclass = '';\n type: string;\n showContentLoadError;\n invalidConfig;\n errMsg;\n shape: string;\n datasource: any;\n fontsize: string;\n selecteditem: any;\n fontunit: string;\n offsettop: number;\n offsetleft: number;\n offsetright: number;\n offsetbottom: number;\n showlabels: any;\n theme: string;\n\n private $id;\n private scopedataset: any;\n private binddataset: any;\n private showlabelsoutside: any;\n private _resizeFn: any;\n private chart: any;\n private clearCanvas: boolean;\n public isLoadInProgress: boolean;\n private filterFields: boolean | any;\n private dataset: any;\n private axisoptions: any;\n private numericColumns: any;\n private nonPrimaryColumns: any = [];\n private variableInflight: any;\n private chartReady: boolean;\n private xDataKeyArr: any = [];\n private xAxisDataType: string;\n private bubblesize: any;\n public showNoDataMsg: any;\n private sampleData: any[];\n private chartData: any[] = [];\n private _processedData: any[] = [];\n private _subsciptions: any = [];\n\n @HostBinding('class.panel') title;\n\n isGroupByEnabled() {\n return !!(this.groupby && this.groupby !== NONE);\n }\n\n // Check if x and y axis that are chosen are valid to plot chart\n isValidAxis() {\n // Check if x axis and y axis are chosen and are not equal\n return this.binddataset ? (this.xaxisdatakey && this.yaxisdatakey) : true;\n }\n\n // Check if aggregation is chosen\n isAggregationEnabled() {\n return !!((this.isGroupByEnabled() && this.aggregation !== NONE && this.aggregationcolumn));\n }\n\n // Check if either groupby, aggregation or orderby is chosen\n isDataFilteringEnabled() {\n /*Query need to be triggered if any of the following cases satisfy\n * 1. Group By and aggregation both chosen\n * 2. Only Order By is chosen\n * */\n\n return this.isAggregationEnabled() || (!this.isVisuallyGrouped && this.orderby);\n }\n\n /*Charts like Line,Area,Cumulative Line does not support any other datatype\n other than integer unlike the column and bar.It is a nvd3 issue. Inorder to\n support that this is a fix*/\n getxAxisVal(dataObj, xKey, index) {\n const value = get(dataObj, xKey);\n // If x axis is other than number type then add indexes\n if (isLineTypeChart(this.type) && !isNumberType(this.xAxisDataType)) {\n // Verification to get the unique data keys\n this.xDataKeyArr.push(value);\n // Check if it is of type Date\n if (value instanceof Date) {\n return value;\n } else {\n return index;\n }\n }\n return value;\n }\n\n // Getting the min and max values among all the x values\n getXMinMaxValues(datum) {\n if (!datum) {\n return;\n }\n const xValues: any = {};\n /*\n compute the min x value\n eg: When data has objects\n input: [{x:1, y:2}, {x:2, y:3}, {x:3, y:4}]\n min x: 1\n eg: When data has arrays\n input: [[10, 20], [20, 30], [30, 40]];\n min x: 10\n */\n xValues.min = minBy(datum.values, dataObject => dataObject.x || dataObject[0]);\n /*\n compute the max x value\n eg: When data has objects\n input: [{x:1, y:2}, {x:2, y:3}, {x:3, y:4}]\n max x: 3\n eg: When data has arrays\n input: [[10, 20], [20, 30], [30, 40]];\n max x: 30\n */\n xValues.max = maxBy(datum.values, dataObject => dataObject.x || dataObject[0]);\n return xValues;\n }\n\n // Getting the min and max values among all the y values\n getYMinMaxValues(datum) {\n const yValues: any = {},\n minValues = [],\n maxValues = [];\n if (!datum) {\n return;\n }\n\n /*\n Getting the min and max y values among all the series of data\n compute the min y value\n eg: When data has objects\n input: [[{x:1, y:2}, {x:2, y:3}, {x:3, y:4}], [{x:2, y:3}, {x:3, y:4}, {x:4, y:5}]]\n min y values : '2'(among first set) & '3'(among second set)\n max y values : '4'(among first set) & '5'(among second set)\n\n eg: When data has arrays\n input: [[[10, 20], [20, 30], [30, 40]], [[20, 30], [30, 40], [40, 50]]]\n min y values : '20'(among first set) & '30'(among second set)\n max y values : '40'(among first set) & '50'(among second set)\n */\n\n forEach(datum, data => {\n minValues.push(minBy(data.values, function (dataObject) {\n return dataObject.y || dataObject[1];\n }));\n maxValues.push(maxBy(data.values, function (dataObject) {\n return dataObject.y || dataObject[1];\n }));\n });\n // Gets the least and highest values among all the min and max values of respective series of data\n yValues.min = minBy(minValues, dataObject => dataObject.y || dataObject[1]);\n yValues.max = maxBy(maxValues, dataObject => dataObject.y || dataObject[1]);\n return yValues;\n }\n\n // If the x-axis values are undefined, we return empty array else we return the values\n getValidData(values) {\n return (values.length === 1 && values[0] === undefined) ? [] : values;\n }\n\n // Returns the single data point based on the type of the data chart accepts\n valueFinder(dataObj, xKey, yKey, index?, shape?) {\n const xVal = this.getxAxisVal(dataObj, xKey, index),\n value = get(dataObj, yKey),\n yVal = parseFloat(value) || value,\n size = parseFloat(dataObj[this.bubblesize]) || 2;\n let dataPoint: any = {};\n\n if (isChartDataJSON(this.type)) {\n dataPoint.x = xVal;\n dataPoint.y = yVal;\n // only Bubble chart has the third dimension\n if (isBubbleChart(this.type)) {\n dataPoint.size = size;\n dataPoint.shape = shape || 'circle';\n }\n } else if (isChartDataArray(this.type)) {\n dataPoint = [xVal, yVal];\n }\n // Adding actual unwrapped data to chart data to use at the time of selected data point of chart event\n dataPoint._dataObj = dataObj;\n return dataPoint;\n }\n\n // Setting appropriate error messages\n setErrMsg(message) {\n if (this.showNoDataMsg) {\n this.showContentLoadError = true;\n this.invalidConfig = true;\n // TODO: Set the locale from the message\n this.errMsg = ''; // $rootScope.locale[message];\n }\n }\n\n processChartData() {\n this.sampleData = getSampleData(this);\n // scope variables used to keep the actual key values for x-axis\n this.xDataKeyArr = [];\n // Plotting the chart with sample data when the chart dataset is not bound\n if (!this.binddataset) {\n this.xDataKeyArr = getDateList();\n return this.sampleData;\n }\n\n if (!this.chartData || !this.chartData.length) {\n return [];\n }\n\n let datum = [],\n yAxisKey,\n shapes: any = [],\n values: any = [];\n const xAxisKey = this.xaxisdatakey,\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [],\n dataSet = this.chartData;\n\n if (isArray(dataSet)) {\n if (isPieType(this.type)) {\n yAxisKey = yAxisKeys[0];\n datum = map(dataSet, (dataObj, index) => {\n if (!isEmptyObject(dataSet[index])) {\n return this.valueFinder(dataSet[index], xAxisKey, yAxisKey);\n }\n });\n datum = this.getValidData(datum);\n } else {\n if (isBubbleChart(this.type)) {\n shapes = this.shape === 'random' ? allShapes : this.shape;\n }\n yAxisKeys.forEach((yAxisKey, series) => {\n values = map(dataSet, (dataObj, index) => {\n if (!isEmptyObject(dataSet[index])) {\n return this.valueFinder(dataSet[index], xAxisKey, yAxisKey, index, (isArray(shapes) && shapes[series]) || this.shape);\n }\n });\n values = this.getValidData(values);\n datum.push({\n values: values,\n key: prettifyLabels(yAxisKey)\n });\n });\n }\n }\n return datum;\n }\n\n setChartData(data) {\n if (data) {\n this._processedData = data;\n }\n }\n\n getChartData() {\n return this._processedData;\n }\n\n // constructing the grouped data based on the selection of orderby, x & y axis\n getVisuallyGroupedData(queryResponse, groupingColumn) {\n let groupData: any = {},\n groupValues: any = [],\n orderByDetails,\n maxLength;\n const chartData: any = [],\n _isAreaChart = isAreaChart(this.type),\n yAxisKey = first(split(this.yaxisdatakey, ','));\n this.xDataKeyArr = [];\n queryResponse = orderBy(queryResponse, split(this.groupby, ','));\n if (this.orderby) {\n orderByDetails = getLodashOrderByFormat(this.orderby);\n queryResponse = orderBy(queryResponse, orderByDetails.columns, orderByDetails.orders);\n }\n queryResponse = groupBy(queryResponse, groupingColumn);\n // In case of area chart all the series data should be of same length\n if (_isAreaChart) {\n maxLength = max(map(queryResponse, obj => obj.length));\n }\n forEach(queryResponse, (values, groupKey) => {\n groupValues = isAreaChart ? fill(new Array(maxLength), [0, 0]) : [];\n forEachRight(values, (value, index) => {\n groupValues[index] = this.valueFinder(value, this.xaxisdatakey, yAxisKey, index);\n });\n groupData = {\n key : groupKey,\n values : groupValues\n };\n chartData.push(groupData);\n });\n return chartData;\n }\n\n /*Decides whether the data should be visually grouped or not\n Visually grouped when a different column is choosen in the group by other than x and y axis and aggregation is not chosen*/\n getGroupingDetails() {\n if (this.isGroupByEnabled() && !this.isAggregationEnabled()) {\n let isVisuallyGrouped = false,\n visualGroupingColumn,\n groupingExpression,\n columns: any = [],\n groupingColumnIndex;\n const groupbyColumns = this.groupby && this.groupby !== NONE ? this.groupby.split(',') : [],\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [];\n\n if (groupbyColumns.length > 1) {\n /*Getting the group by column which is not selected either in x or y axis*/\n groupbyColumns.every((column, index) => {\n if (this.xaxisdatakey !== column && $.inArray(column, yAxisKeys) === -1) {\n isVisuallyGrouped = true;\n visualGroupingColumn = column;\n groupingColumnIndex = index;\n groupbyColumns.splice(groupingColumnIndex, 1);\n return false;\n }\n return true;\n });\n // Constructing the groupby expression\n if (visualGroupingColumn) {\n columns.push(visualGroupingColumn);\n }\n\n if (groupbyColumns.length) {\n columns = concat(columns, groupbyColumns);\n }\n }\n // If x and y axis are not included in aggregation need to be included in groupby\n if (this.xaxisdatakey !== this.aggregationcolumn) {\n columns.push(this.xaxisdatakey);\n }\n forEach(yAxisKeys, key => {\n if (key !== this.aggregationcolumn) {\n columns.push(key);\n }\n });\n groupingExpression = columns.join(',');\n // set isVisuallyGrouped flag in scope for later use\n this.isVisuallyGrouped = isVisuallyGrouped;\n\n return {\n expression: groupingExpression,\n isVisuallyGrouped: isVisuallyGrouped,\n visualGroupingColumn: visualGroupingColumn\n };\n }\n return {\n expression: '',\n isVisuallyGrouped: false,\n visualGroupingColumn: ''\n };\n }\n\n // Function to get the aggregated data after applying the aggregation & group by or order by operations.\n getAggregatedData(callback) {\n const variable: any = this.datasource,\n yAxisKeys = this.yaxisdatakey ? this.yaxisdatakey.split(',') : [],\n data: any = {};\n let sortExpr,\n columns: any = [],\n colAlias,\n orderByColumns,\n groupByFields: any = [];\n\n if (!variable) {\n return;\n }\n if (this.isGroupByEnabled()) {\n groupByFields = split(this.groupby, ',');\n }\n if (this.orderby) {\n sortExpr = replace(this.orderby, /:/g, ' ');\n columns = uniq(concat(columns, groupByFields, [this.aggregationcolumn]));\n orderByColumns = getLodashOrderByFormat(this.orderby).columns;\n // If the orderby column is chosen either in groupby or orderby then replace . with $ for that column\n forEach(intersection(columns, orderByColumns), col => {\n colAlias = getValidAliasName(col);\n // @ts-ignore\n sortExpr = replace(sortExpr, col, colAlias);\n });\n }\n if (this.isAggregationEnabled()) {\n // Send the group by in the aggregations api only if aggregation is also chosen\n data.groupByFields = groupByFields;\n data.aggregations = [\n {\n 'field': this.aggregationcolumn,\n 'type': aggregationFnMap[this.aggregation],\n 'alias': getValidAliasName(this.aggregationcolumn)\n }\n ];\n }\n // Execute the query.\n variable.execute('getAggregatedData', {\n 'aggregations' : data,\n 'sort' : sortExpr\n }).then(response => {\n // Transform the result into a format supported by the chart.\n const chartData: any = [],\n aggregationAlias: any = getValidAliasName(this.aggregationcolumn),\n xAxisAliasKey = getValidAliasName(this.xaxisdatakey),\n yAxisAliasKeys = [];\n\n yAxisKeys.forEach(yAxisKey => yAxisAliasKeys.push(getValidAliasName(yAxisKey)));\n\n forEach(response.body.content, (responseContent) => {\n const obj = {};\n // Set the response in the chartData based on 'aggregationColumn', 'xAxisDataKey' & 'yAxisDataKey'.\n if (this.isAggregationEnabled()) {\n obj[this.aggregationcolumn] = responseContent[aggregationAlias];\n obj[this.aggregationcolumn] = get(responseContent, aggregationAlias) || get(responseContent, this.aggregationcolumn);\n }\n\n obj[this.xaxisdatakey] = get(responseContent, xAxisAliasKey) || get(responseContent, this.xaxisdatakey);\n\n yAxisKeys.forEach((yAxisKey, index) => {\n obj[yAxisKey] = responseContent[yAxisAliasKeys[index]];\n obj[yAxisKey] = get(responseContent, yAxisAliasKeys[index]) || get(responseContent, yAxisKey);\n });\n\n chartData.push(obj);\n });\n\n this.chartData = chartData;\n\n triggerFn(callback);\n }, () => {\n this.chartData = [];\n this.setErrMsg('MESSAGE_ERROR_FETCH_DATA');\n triggerFn(callback);\n });\n }\n\n // This function sets maximum width for the labels that can be displayed.This will helpful when they are overlapping\n setLabelsMaxWidth() {\n let xTicks,\n tickWidth,\n maxLength,\n xDist,\n yDist,\n totalHeight,\n maxNoLabels,\n nthElement,\n labelsAvailableWidth,\n barWrapper,\n yAxisWrapper,\n svgWrapper;\n const fontsize = parseInt(this.fontsize, 10) || 12,\n isBarchart = isBarChart(this.type);\n // getting the x ticks in the chart\n xTicks = $('#wmChart' + this.$id + ' svg').find('g.nv-x').find('g.tick').find('text');\n\n // getting the distance between the two visible ticks associated with visible text\n xTicks.each(function () {\n const xTick = $(this);\n let xTransform,\n tickDist;\n if (xTick.text() && xTick.css('opacity') === '1') {\n xTransform = xTick.parent().attr('transform').split(',');\n xDist = parseFloat(xTransform[0].substr(10));\n yDist = parseFloat(xTransform[1] || '0');\n if (!isBarchart && xDist > 0) {\n tickDist = xDist;\n } else if (yDist > 0) {\n tickDist = yDist;\n }\n if (tickWidth) {\n tickWidth = tickDist - tickWidth;\n return false;\n }\n tickWidth = tickDist;\n return true;\n }\n });\n\n // In case of bar chart getting the available space for the labels to be displayed\n if (isBarchart) {\n barWrapper = $('#wmChart' + this.$id + ' svg>g.nv-wrap>g>g.nv-barsWrap')[0];\n yAxisWrapper = $('#wmChart' + this.$id + ' svg>g.nv-wrap>g>g.nv-y')[0];\n svgWrapper = $('#wmChart' + this.$id + ' svg')[0];\n // getting the total height of the chart\n totalHeight = barWrapper ? barWrapper.getBoundingClientRect().height : 0;\n // getting the labels available space\n labelsAvailableWidth = yAxisWrapper ? svgWrapper.getBoundingClientRect().width - yAxisWrapper.getBoundingClientRect().width : svgWrapper.getBoundingClientRect().width;\n // Setting the max length for the label\n maxLength = Math.round(labelsAvailableWidth / fontsize);\n // if available space for each label is less than the font-size\n // then limiting the labels to be displayed\n if (tickWidth < fontsize) {\n // calculate the maximum no of labels to be fitted\n maxNoLabels = totalHeight / fontsize;\n // showing only the nth element\n nthElement = Math.ceil(this.chartData.length / maxNoLabels);\n // showing up only some labels\n d3.select('#wmChart' + this.$id + ' svg').select('g.nv-x').selectAll('g.tick').select('text').each(function (text, i) {\n // hiding every non nth element\n if (i % nthElement !== 0) {\n d3.select(this).attr('opacity', 0);\n }\n });\n }\n } else {\n // Setting the max length for the label\n maxLength = Math.round(tickWidth / fontsize);\n }\n\n // maxLength should always be a positive number\n maxLength = Math.abs(maxLength);\n // Validating if every label exceeds the max length and if so limiting the length and adding ellipsis\n xTicks.each(function () {\n if (this.textContent.length > maxLength) {\n this.textContent = this.textContent.substr(0, maxLength) + '...';\n }\n });\n }\n\n // Returns the columns of that can be choosen in the x and y axis\n getDefaultColumns() {\n let type,\n stringColumn,\n i,\n temp;\n const defaultColumns = [],\n columns = this.datasource.execute(DataSource.Operation.GET_PROPERTIES_MAP) || [];\n\n for (i = 0; i < columns.length && defaultColumns.length <= 2; i += 1) {\n type = columns[i].type;\n if (!columns[i].isRelated && (isNumberType(type))) {\n defaultColumns.push(columns[i].fieldName);\n } else if (type === 'string' && !stringColumn) {\n stringColumn = columns[i].fieldName;\n }\n }\n // Other than bubble chart x: string type y: number type\n // Bubble chart x: number type y: number type\n if (stringColumn && defaultColumns.length > 0 && !isBubbleChart(this.type)) {\n temp = defaultColumns[0];\n defaultColumns[0] = stringColumn;\n defaultColumns[1] = temp;\n }\n\n return defaultColumns;\n }\n\n // Call user defined javascript function when user links it to click event of the widget.\n attachClickEvent() {\n let dataObj;\n d3.select('#wmChart' + this.$id + ' svg').selectAll(chartDataPointXpath[this.type]).style('pointer-events', 'all')\n .on('click', (event, data, index) => {\n switch (this.type) {\n case 'Column':\n case 'Bar':\n dataObj = data._dataObj;\n break;\n case 'Pie':\n case 'Donut':\n dataObj = data.data._dataObj;\n break;\n case 'Area':\n case 'Cumulative Line':\n case 'Line':\n dataObj = data[0]._dataObj;\n break;\n case 'Bubble':\n dataObj = data;\n break;\n }\n this.selecteditem = dataObj;\n this.invokeEventCallback('select', {\n $event: event,\n selectedChartItem: data,\n selectedItem: this.selecteditem\n });\n });\n\n }\n\n /* Returns Y Scale min value\n Ex: Input : 8.97\n Output : 8.87\n\n Input : 8\n Output : 7\n */\n\n postPlotProcess(chart) {\n let chartSvg,\n pieLabels,\n pieGroups,\n angleArray;\n const styleObj = {};\n const element = this.$element;\n\n postPlotChartProcess(this);\n\n if (!isPieType(this.type)) {\n this.setLabelsMaxWidth();\n } else if (!this.showlabelsoutside) {\n /** Nvd3 has a issue in rotating text. So we will use this as a temp fix.\n * If the issue is resolved there, we can remove this.*/\n /* If it is a donut chart, then rotate the text and position them*/\n chartSvg = d3.select('#wmChart' + this.$id + ' svg');\n pieLabels = chartSvg.select('.nv-pieLabels').selectAll('.nv-label');\n pieGroups = chartSvg.select('.nv-pie').selectAll('.nv-slice');\n angleArray = [];\n if (pieGroups && pieGroups.length) {\n pieGroups.each(function () {\n d3.select(this).attr('transform', function (d) {\n angleArray.push(angle(d));\n });\n });\n pieLabels.each(function (d, i) {\n const group = d3.select(this);\n $(group[0][0]).find('text').attr('transform', 'rotate(' + angleArray[i] + ')');\n });\n }\n }\n\n // prepare text style props object and set\n forEach(styleProps, (value, key) => {\n if (key === 'fontsize' || key === 'fontunit') {\n styleObj[value] = this.fontsize + this.fontunit;\n } else {\n styleObj[value] = this[key];\n }\n });\n setTextStyle(styleObj, this.$id);\n\n /*\n * allow window-resize functionality, for only-run mode as\n * updating chart is being handled by watchers of height & width in studio-mode\n * */\n triggerFn(this._resizeFn && this._resizeFn.clear);\n this._resizeFn = nv.utils.windowResize(() => {\n if (element[0].getBoundingClientRect().height) {\n chart.update();\n postPlotChartProcess(this);\n if (!isPieType(this.type)) {\n this.setLabelsMaxWidth();\n }\n } else {\n // TODO: get parents of accordion type\n /*let parent = element.closest('.app-accordion-panel, .tab-pane').isolateScope();\n if (parent) {\n parent.initialized = false;\n }*/\n }\n });\n }\n\n // prepares and configures the chart properties\n configureChart() {\n // Copy the data only in case of pie chart with default data\n // Reason : when multiple pie charts are bound to same data, first chart theme will be applied to all charts\n let xDomainValues;\n let yDomainValues;\n let chart;\n let beforeRenderVal;\n const yformatOptions: any = {};\n\n if (this._processedData.length > 0) {\n if (isAxisDomainValid(this, 'x')) {\n xDomainValues = this.binddataset ? this.getXMinMaxValues(this._processedData[0]) : { 'min' : {'x': 1}, 'max' : {'x' : 5}};\n }\n if (isAxisDomainValid(this, 'y')) {\n yDomainValues = this.binddataset ? this.getYMinMaxValues(this._processedData) : { 'min' : {'y' : 1}, 'max' : {'y' : 5}};\n }\n }\n\n if (isPieType(this.type) && (!this.binddataset || !this.scopedataset)) {\n this._processedData = getClonedObject(this.scopedataset || this._processedData);\n }\n\n // get the chart object\n chart = initChart(this, xDomainValues, yDomainValues, null, !this.binddataset);\n\n if (isArray(this._processedData)) {\n // WMS-19499: To remove chart X-axis old ticks when chart data loaded dynamically.\n const oldgTicks = $('#wmChart' + this.$id + ' svg').find('g.nv-x').find('g.tick');\n if (oldgTicks && oldgTicks.length) {\n oldgTicks.remove();\n }\n beforeRenderVal = this.invokeEventCallback('beforerender', { 'chartInstance' : chart});\n if (beforeRenderVal) {\n chart = beforeRenderVal;\n }\n this.chart = chart;\n // changing the default no data message\n d3.select('#wmChart' + this.$id + ' svg')\n .datum(this._processedData)\n .call(this.chart);\n this.postPlotProcess(chart);\n return chart;\n }\n }\n\n // Plotting the chart with set of the properties set to it\n plotChart() {\n const element = this.$element;\n // call user-transformed function\n this.chartData = (this.invokeEventCallback('transform')) || this.chartData;\n\n // Getting the order by data only in run mode. The order by applies for all the charts other than pie and donut charts\n if (this.isVisuallyGrouped && !isPieType(this.type)) {\n this._processedData = this.chartData;\n } else {\n this._processedData = this.processChartData();\n }\n // checking the parent container before plotting the chart\n if (!element[0].getBoundingClientRect().height) {\n return;\n }\n if (this.clearCanvas) {\n // empty svg to add-new chart\n element.find('svg').replaceWith('<svg></svg>');\n this.clearCanvas = false;\n }\n\n // In case of invalid axis show no data available message\n if (!this.isValidAxis()) {\n this._processedData = [];\n }\n nv.addGraph(() => this.configureChart(), () => {\n /*Bubble chart has an time out delay of 300ms in their implementation due to which we\n * won't be getting required data points on attaching events\n * hence delaying it 600ms*/\n setTimeout( () => {\n this.attachClickEvent();\n }, 600);\n });\n this.isLoadInProgress = false;\n }\n // TODO: Need way to figure out if the datasource is a live source\n get isLiveVariable() {\n // setting the flag for the live variable in the scope for the checks\n const variableObj = this.datasource;\n return variableObj && variableObj.category === 'wm.LiveVariable';\n }\n\n plotChartProxy() {\n this.showContentLoadError = false;\n this.invalidConfig = false;\n // Checking if x and y axis are chosen\n this.isLoadInProgress = true;\n const groupingDetails = this.getGroupingDetails();\n // If aggregation/group by/order by properties have been set, then get the aggregated data and plot the result in the chart.\n // TODO: datasource for live variable detection\n if (this.binddataset && this.isLiveVariable && (this.filterFields || this.isDataFilteringEnabled())) {\n this.getAggregatedData(() => this.plotChart());\n } else { // Else, simply plot the chart.\n // In case of live variable resetting the aggregated data to the normal dataset when the aggregation has been removed\n if (this.dataset && this.isLiveVariable) {\n this.chartData = this.dataset;\n if (this.isGroupByEnabled() && groupingDetails.isVisuallyGrouped) {\n this.chartData = this.getVisuallyGroupedData(this.chartData, groupingDetails.visualGroupingColumn);\n }\n\n }\n this.plotChart();\n }\n }\n\n // sets the default x and y axis options\n setDefaultAxisOptions() {\n const defaultColumns = this.getDefaultColumns();\n // If we get the valid default columns then assign them as the x and y axis\n // In case of service variable we may not get the valid columns because we cannot know the datatypes\n this.xaxisdatakey = defaultColumns[0] || null;\n this.yaxisdatakey = defaultColumns[1] || null;\n }\n\n getCutomizedOptions(prop, fields) {\n const groupByColumns = split(this.groupby, ','),\n aggColumns = split(this.aggregationcolumn, ',');\n if (!this.binddataset) {\n return fields;\n }\n if (!this.axisoptions) {\n this.axisoptions = fields;\n }\n let newOptions;\n switch (prop) {\n case 'xaxisdatakey':\n // If group by enabled, columns chosen in groupby will be populated in x axis options\n if (this.isGroupByEnabled()) {\n newOptions = groupByColumns;\n }\n break;\n case 'yaxisdatakey':\n // If aggregation by enabled, columns chosen in aggregation will be populated in y axis options\n if (this.isAggregationEnabled()) {\n newOptions = aggColumns;\n } else if (this.isLiveVariable) {\n // In case of live variable populating only numeric columns\n newOptions = this.numericColumns;\n }\n break;\n case 'groupby':\n // Filtering only non primary key columns\n if (this.isLiveVariable && this.nonPrimaryColumns && this.nonPrimaryColumns.length) {\n newOptions = this.nonPrimaryColumns;\n }\n break;\n case 'aggregationcolumn':\n // Set the 'aggregationColumn' to show all keys in case of aggregation function is count or to numeric keys in all other cases.\n if (this.isLiveVariable && this.isAggregationEnabled() && this.aggregation !== 'count') {\n newOptions = this.numericColumns;\n }\n break;\n case 'orderby':\n // Set the 'aggregationColumn' to show all keys in case of aggregation function is count or to numeric keys in all other cases.\n if (this.isLiveVariable && this.isAggregationEnabled()) {\n newOptions = uniq(concat(groupByColumns, aggColumns));\n }\n break;\n case 'bubblesize':\n if (this.numericColumns && this.numericColumns.length) {\n newOptions = this.numericColumns;\n }\n break;\n }\n\n return newOptions || fields || this.axisoptions;\n }\n\n // Function that iterates through all the columns and then fetching the numeric and non primary columns among them\n setNumericandNonPrimaryColumns() {\n let columns,\n type;\n const propertiesMap = this.datasource.execute(DataSource.Operation.GET_PROPERTIES_MAP);\n this.numericColumns = [];\n this.nonPrimaryColumns = [];\n // Fetching all the columns\n if (this.dataset && !isEmpty(propertiesMap)) {\n columns = []; // TODO: fetchPropertiesMapColumns(propertiesMap);\n }\n\n if (columns) {\n // Iterating through all the columns and fetching the numeric and non primary key columns\n forEach(Object.keys(columns), (key) => {\n type = columns[key].type;\n if (isNumberType(type)) {\n this.numericColumns.push(key);\n }\n // Hiding only table's primary key\n if (columns[key].isRelatedPk === 'true' || !columns[key].isPrimaryKey) {\n this.nonPrimaryColumns.push(key);\n }\n });\n this.numericColumns = this.numericColumns.sort();\n this.nonPrimaryColumns = this.nonPrimaryColumns.sort();\n }\n }\n\n // plot the chart\n handleDataSet(newVal) {\n this.errMsg = '';\n // Resetting the flag to false when the binding was removed\n if (!newVal && !this.binddataset) {\n this.isVisuallyGrouped = false;\n this.axisoptions = null;\n }\n\n // liveVariables contain data in 'data' property' of the variable\n this.chartData = this.isLiveVariable ? newVal || '' : (newVal && newVal.dataValue === '' && keys(newVal).length === 1) ? '' : newVal;\n\n // if the data returned is an object make it an array of object\n if (!isArray(this.chartData) && isObject(this.chartData)) {\n this.chartData = [this.chartData];\n }\n\n if (newVal && newVal.filterFields) {\n this.filterFields = newVal.filterFields;\n }\n\n // plotchart for only valid data and only after bound variable returns data\n if (this.chartData) {\n this._plotChartProxy();\n }\n }\n\n _plotChartProxy = debounce(this.plotChartProxy.bind(this), 100);\n\n // sets the center label for donut chart type\n setDonutCenterLabel(labelValue) {\n let chartSvg, pieGroups;\n chartSvg = d3.select('#wmChart' + this.$id + ' svg');\n\n pieGroups = chartSvg.select('.nv-wrap.nv-pie').select('.nv-pie');\n pieGroups.text('');\n pieGroups.append('text')\n .attr('dy', '.35em')\n .attr('text-anchor', 'middle')\n .attr('class', 'nv-pie-title')\n .text(labelValue)\n .each(function (d) {\n var d3text = d3.select(this),\n circ = d3.select(this.parentElement),\n totalWidth = Number(circ.node().getBoundingClientRect().width),\n // minus the ring width from total width\n availWidth = totalWidth - 30,\n textWidth = this.getComputedTextLength();\n d3text.attr(\"data-scale\", availWidth / textWidth);\n }).style(\"font-size\", function() {\n // 16 is the default font size to multiply with the scaled value and 24 is the maximum font size that can be applied\n var fontSize = 16 * d3.select(this).attr(\"data-scale\");\n return fontSize > 24 ? 24 : fontSize + \"px\";\n });\n }\n\n onPropertyChange(key, newVal, oldVal?) {\n super.onPropertyChange(key, newVal, oldVal);\n switch (key) {\n case 'dataset':\n this.handleDataSet(newVal);\n break;\n case 'centerlabel':\n if (this.chart) {\n this.chart.title(newVal);\n this.setDonutCenterLabel(newVal);\n }\n break;\n case 'type':\n // Based on the change in type deciding the default margins\n if (isPieType(this.type)) {\n this.offsettop = 20;\n this.offsetright = 0;\n this.offsetbottom = 0;\n this.offsetleft = 0;\n } else if (oldVal === 'Pie' || oldVal === 'Donut') {\n this.offsettop = 25;\n this.offsetright = 25;\n this.offsetbottom = 55;\n this.offsetleft = 75;\n }\n\n if (oldVal !== newVal) {\n this.clearCanvas = true;\n }\n // In studio mode, configure properties dependent on chart type\n this._plotChartProxy();\n break;\n default:\n // In RunMode, the plotchart method will not be called for all property change\n this._plotChartProxy();\n break;\n }\n if (includes(advanceDataProps, key)) {\n this._plotChartProxy();\n }\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.variableInflight = data.active;\n this.isLoadInProgress = data.active;\n }\n }\n\n hideTooltip() {\n d3.selectAll('.nvtooltip').style('opacity', 0);\n }\n\n onStyleChange(key, newVal, oldVal) {\n const styleObj = {};\n super.onStyleChange(key, newVal, oldVal);\n switch (key) {\n case 'fontsize':\n case 'fontunit':\n case 'color':\n case 'fontfamily':\n case 'fontweight':\n case 'fontstyle':\n case 'textdecoration':\n styleObj[styleProps[key]] = (key === 'fontsize' || key === 'fontunit') ? this.fontsize + this.fontunit : newVal;\n setTextStyle(styleObj, this.$id);\n break;\n }\n }\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER, ['fontsize', 'fontunit', 'color', 'fontfamily', 'fontweight', 'fontstyle', 'textdecoration']);\n\n // generate unique id for the component\n this.$id = this.widgetId || Math.random();\n // remove title attribute as the element on hover shows you the hint through-out the element\n removeAttr(this.nativeElement, 'title');\n this.chartReady = false;\n this.binddataset = this.nativeElement.getAttribute('dataset.bind');\n // Show loading status based on the variable life cycle\n this._subsciptions.push(this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)));\n // Will hide tolltip of a chart in mobile when the user scrolls.\n this._subsciptions.push(this.app.subscribe('iscroll-start', () => {this.hideTooltip();}));\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n // For old projects\n if (!includes(['outside', 'inside', 'hide'], this.showlabels)) {\n this.showlabels = getBooleanValue(this.showlabels);\n this.showlabelsoutside = getBooleanValue(this.showlabelsoutside);\n this.showlabels = this.showlabels ? (this.showlabelsoutside ? 'outside' : 'inside') : 'hide';\n }\n\n if (!this.theme) {\n // Default theme for pie/donut is Azure and for other it is Terrestrial\n this.theme = isPieType(this.type) ? 'Azure' : 'Terrestrial';\n }\n\n this.nativeElement.setAttribute('id', 'wmChart' + this.$id);\n // When there is not value binding, then plot the chart with sample data\n if (!this.binddataset && !this.nativeElement.getAttribute('scopedataset')) {\n this._plotChartProxy();\n }\n }\n\n ngOnDestroy() {\n // destroy all subscriptions to prevent memory leak.\n this.hideTooltip();\n this._subsciptions.forEach((subscription)=>{\n subscription();\n });\n super.ngOnDestroy();\n }\n redraw = this._plotChartProxy.bind(this);\n}\n","@if (title) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\"><i class=\"app-icon panel-icon {{iconclass}}\" [class.ng-hide]=\"!iconclass\"></i></div>\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n @if (subheading) {\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n }\n </h3>\n </div>\n}\n<div class=\"app-chart-inner\" [ngClass]=\"{'loading':isLoadInProgress, 'panel-body': title}\">\n <svg></svg>\n @if (showContentLoadError && showNoDataMsg) {\n <div class=\"wm-content-info readonly-wrapper\">\n <p class=\"wm-message\" [title]=\"hintMsg\" [ngClass]=\"{'error': invalidConfig}\" [innerText]=\"errMsg\"></p>\n </div>\n }\n <div wmSpinner show.bind=\"isLoadInProgress\" caption.bind=\"loadingdatamsg\"></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}