@limetech/lime-elements 40.23.0 → 40.25.0

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 (404) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/{checkbox.template-CNJ29zDR.js → checkbox.template-DgiUCPna.js} +1 -1
  3. package/dist/cjs/dom-BWMDM6En.js +32 -0
  4. package/dist/cjs/{image.template-DlF-f23b.js → image.template-B_HZH9t-.js} +1 -1
  5. package/dist/cjs/{index-BlsqxTB1.js → index-CQn9p_mp.js} +12 -0
  6. package/dist/cjs/lime-elements.cjs.js +2 -2
  7. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +2 -2
  8. package/dist/cjs/limel-action-bar_3.cjs.entry.js +5 -6
  9. package/dist/cjs/limel-ai-avatar.cjs.entry.js +3 -4
  10. package/dist/cjs/limel-badge_7.cjs.entry.js +13 -13
  11. package/dist/cjs/limel-banner.cjs.entry.js +2 -2
  12. package/dist/cjs/limel-button-group.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-button.cjs.entry.js +3 -3
  14. package/dist/cjs/limel-callout.cjs.entry.js +3 -4
  15. package/dist/cjs/limel-card.cjs.entry.js +3 -3
  16. package/dist/cjs/limel-chart.cjs.entry.js +782 -180
  17. package/dist/cjs/limel-checkbox.cjs.entry.js +3 -3
  18. package/dist/cjs/limel-chip-set.cjs.entry.js +3 -4
  19. package/dist/cjs/limel-chip_2.cjs.entry.js +4 -5
  20. package/dist/cjs/limel-circular-progress.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-code-diff.cjs.entry.js +3 -4
  22. package/dist/cjs/limel-code-editor.cjs.entry.js +3 -4
  23. package/dist/cjs/limel-collapsible-section.cjs.entry.js +3 -4
  24. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +3 -3
  25. package/dist/cjs/limel-color-picker.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-config.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-date-picker.cjs.entry.js +439 -28
  28. package/dist/cjs/limel-dialog.cjs.entry.js +3 -3
  29. package/dist/cjs/limel-dock-button.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-dock.cjs.entry.js +4 -5
  31. package/dist/cjs/limel-drag-handle_2.cjs.entry.js +5 -6
  32. package/dist/cjs/limel-dynamic-label.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-email-viewer.cjs.entry.js +3 -4
  34. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +3 -3
  35. package/dist/cjs/limel-file-viewer.cjs.entry.js +3 -4
  36. package/dist/cjs/limel-file.cjs.entry.js +3 -4
  37. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +124 -16
  38. package/dist/cjs/limel-flex-container.cjs.entry.js +2 -2
  39. package/dist/cjs/limel-form-header.cjs.entry.js +2 -2
  40. package/dist/cjs/limel-form.cjs.entry.js +66 -6
  41. package/dist/cjs/limel-grid.cjs.entry.js +2 -2
  42. package/dist/cjs/limel-header.cjs.entry.js +2 -2
  43. package/dist/cjs/limel-help_2.cjs.entry.js +4 -4
  44. package/dist/cjs/limel-helper-line_3.cjs.entry.js +5 -5
  45. package/dist/cjs/limel-hotkey_4.cjs.entry.js +6 -6
  46. package/dist/cjs/limel-icon-button.cjs.entry.js +2 -2
  47. package/dist/cjs/limel-icon.cjs.entry.js +2 -2
  48. package/dist/cjs/limel-info-tile.cjs.entry.js +3 -3
  49. package/dist/cjs/limel-list-item.cjs.entry.js +7 -8
  50. package/dist/cjs/limel-markdown.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-masonry-layout.cjs.entry.js +2 -2
  52. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-pagination-jump.cjs.entry.js +2 -3
  54. package/dist/cjs/limel-pagination.cjs.entry.js +7 -8
  55. package/dist/cjs/limel-picker.cjs.entry.js +7 -7
  56. package/dist/cjs/limel-popover_2.cjs.entry.js +3 -3
  57. package/dist/cjs/limel-profile-picture.cjs.entry.js +3 -4
  58. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-progress-flow.cjs.entry.js +1 -1
  60. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +3 -4
  61. package/dist/cjs/limel-radio-button-group.cjs.entry.js +2 -2
  62. package/dist/cjs/limel-radio-button.cjs.entry.js +3 -3
  63. package/dist/cjs/limel-resize-handle.cjs.entry.js +3 -4
  64. package/dist/cjs/limel-select.cjs.entry.js +3 -3
  65. package/dist/cjs/limel-shortcut.cjs.entry.js +2 -2
  66. package/dist/cjs/limel-side-panel.cjs.entry.js +3 -4
  67. package/dist/cjs/limel-slider.cjs.entry.js +5 -6
  68. package/dist/cjs/limel-snackbar.cjs.entry.js +4 -5
  69. package/dist/cjs/limel-split-button.cjs.entry.js +3 -3
  70. package/dist/cjs/limel-switch.cjs.entry.js +2 -2
  71. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -2
  72. package/dist/cjs/limel-tab-panel.cjs.entry.js +2 -2
  73. package/dist/cjs/limel-table.cjs.entry.js +4 -5
  74. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +5 -6
  75. package/dist/cjs/limel-text-editor.cjs.entry.js +2 -2
  76. package/dist/cjs/{live-message-BNl3Ihcz.js → live-message-CwxlKd60.js} +0 -30
  77. package/dist/cjs/loader.cjs.js +2 -2
  78. package/dist/cjs/{render-list-component-BtAliHQp.js → render-list-component-BOYFHMFE.js} +1 -1
  79. package/dist/cjs/{translations-JLP5icQ9.js → translations-BPsptVkN.js} +73 -3
  80. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  81. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  82. package/dist/collection/components/action-bar/action-bar.js +2 -2
  83. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  84. package/dist/collection/components/badge/badge.js +2 -2
  85. package/dist/collection/components/banner/banner.js +1 -1
  86. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  87. package/dist/collection/components/button/button.js +2 -2
  88. package/dist/collection/components/button-group/button-group.js +1 -1
  89. package/dist/collection/components/callout/callout.js +1 -1
  90. package/dist/collection/components/card/card.js +1 -1
  91. package/dist/collection/components/chart/chart.css +29 -0
  92. package/dist/collection/components/chart/chart.js +352 -67
  93. package/dist/collection/components/chart/options.js +342 -109
  94. package/dist/collection/components/chart/scale.js +25 -2
  95. package/dist/collection/components/chart/series.js +110 -0
  96. package/dist/collection/components/checkbox/checkbox.js +1 -1
  97. package/dist/collection/components/chip/chip.js +1 -1
  98. package/dist/collection/components/chip-set/chip-set.js +1 -1
  99. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  100. package/dist/collection/components/code-diff/code-diff.js +1 -1
  101. package/dist/collection/components/code-editor/code-editor.js +1 -1
  102. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  103. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  104. package/dist/collection/components/color-picker/color-picker.js +1 -1
  105. package/dist/collection/components/date-picker/date-formatter.js +147 -1
  106. package/dist/collection/components/date-picker/date-picker.css +112 -0
  107. package/dist/collection/components/date-picker/date-picker.js +307 -26
  108. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +77 -30
  109. package/dist/collection/components/date-picker/pickers/month-picker.js +3 -0
  110. package/dist/collection/components/date-picker/pickers/picker.js +37 -1
  111. package/dist/collection/components/date-picker/pickers/quarter-picker.js +3 -0
  112. package/dist/collection/components/date-picker/pickers/week-picker.js +21 -0
  113. package/dist/collection/components/date-picker/pickers/year-picker.js +24 -0
  114. package/dist/collection/components/dialog/dialog.js +2 -2
  115. package/dist/collection/components/dock/dock.js +2 -2
  116. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  117. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  118. package/dist/collection/components/file/file.js +1 -1
  119. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  120. package/dist/collection/components/file-input/file-input.js +1 -1
  121. package/dist/collection/components/flex-container/flex-container.js +1 -1
  122. package/dist/collection/components/form/fields/schema-field.js +19 -1
  123. package/dist/collection/components/form/form.js +30 -3
  124. package/dist/collection/components/form/form.test-schemas.js +11 -0
  125. package/dist/collection/components/form/invalid-input.js +14 -0
  126. package/dist/collection/components/form/widgets/date-picker.js +3 -1
  127. package/dist/collection/components/form-header/form-header.js +1 -1
  128. package/dist/collection/components/grid/grid.js +1 -1
  129. package/dist/collection/components/header/header.js +1 -1
  130. package/dist/collection/components/help/help-content.js +1 -1
  131. package/dist/collection/components/help/help.js +2 -2
  132. package/dist/collection/components/helper-line/helper-line.js +2 -2
  133. package/dist/collection/components/hotkey/hotkey.js +1 -1
  134. package/dist/collection/components/icon/icon.js +1 -1
  135. package/dist/collection/components/icon-button/icon-button.js +1 -1
  136. package/dist/collection/components/info-tile/info-tile.js +2 -2
  137. package/dist/collection/components/input-field/input-field.js +1 -1
  138. package/dist/collection/components/list/list.js +1 -1
  139. package/dist/collection/components/list-item/list-item.js +2 -2
  140. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  141. package/dist/collection/components/markdown/markdown.js +1 -1
  142. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  143. package/dist/collection/components/menu/menu.js +1 -1
  144. package/dist/collection/components/menu-list/menu-list.js +1 -1
  145. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  146. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  147. package/dist/collection/components/pagination/pagination.js +1 -1
  148. package/dist/collection/components/picker/picker.js +1 -1
  149. package/dist/collection/components/popover/popover.js +1 -1
  150. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  151. package/dist/collection/components/portal/portal.js +1 -1
  152. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  153. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  154. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  155. package/dist/collection/components/scroller/scroller.js +2 -2
  156. package/dist/collection/components/select/select.js +1 -1
  157. package/dist/collection/components/shortcut/shortcut.js +1 -1
  158. package/dist/collection/components/side-panel/side-panel.js +1 -1
  159. package/dist/collection/components/slider/slider.js +3 -3
  160. package/dist/collection/components/snackbar/snackbar.js +2 -2
  161. package/dist/collection/components/spinner/spinner.js +1 -1
  162. package/dist/collection/components/split-button/split-button.js +2 -2
  163. package/dist/collection/components/switch/switch.js +1 -1
  164. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  165. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  166. package/dist/collection/components/table/table.js +2 -2
  167. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  168. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  169. package/dist/collection/components/text-editor/text-editor.js +1 -1
  170. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  171. package/dist/collection/components/tooltip/tooltip.js +2 -2
  172. package/dist/collection/translations/da.js +2 -0
  173. package/dist/collection/translations/de.js +2 -0
  174. package/dist/collection/translations/en.js +2 -0
  175. package/dist/collection/translations/fi.js +2 -0
  176. package/dist/collection/translations/fr.js +2 -0
  177. package/dist/collection/translations/nl.js +2 -0
  178. package/dist/collection/translations/no.js +2 -0
  179. package/dist/collection/translations/sv.js +2 -0
  180. package/dist/esm/{checkbox.template-CAja2LKZ.js → checkbox.template-BJJmiDJP.js} +1 -1
  181. package/dist/esm/dom-B9Ofc5RB.js +30 -0
  182. package/dist/esm/{image.template-BGjw97m_.js → image.template-Cw2q5IS7.js} +1 -1
  183. package/dist/esm/{index-BU9IJqli.js → index-D3SUrFhp.js} +12 -1
  184. package/dist/esm/{keyboard-navigation-BF7IKmnG.js → keyboard-navigation-DeMxdkNf.js} +1 -1
  185. package/dist/esm/lime-elements.js +3 -3
  186. package/dist/esm/limel-3d-hover-effect-glow.entry.js +2 -2
  187. package/dist/esm/limel-action-bar_3.entry.js +5 -6
  188. package/dist/esm/limel-ai-avatar.entry.js +3 -4
  189. package/dist/esm/limel-badge_7.entry.js +12 -12
  190. package/dist/esm/limel-banner.entry.js +2 -2
  191. package/dist/esm/limel-button-group.entry.js +2 -2
  192. package/dist/esm/limel-button.entry.js +3 -3
  193. package/dist/esm/limel-callout.entry.js +3 -4
  194. package/dist/esm/limel-card.entry.js +3 -3
  195. package/dist/esm/limel-chart.entry.js +779 -177
  196. package/dist/esm/limel-checkbox.entry.js +3 -3
  197. package/dist/esm/limel-chip-set.entry.js +3 -4
  198. package/dist/esm/limel-chip_2.entry.js +4 -5
  199. package/dist/esm/limel-circular-progress.entry.js +2 -2
  200. package/dist/esm/limel-code-diff.entry.js +3 -4
  201. package/dist/esm/limel-code-editor.entry.js +3 -4
  202. package/dist/esm/limel-collapsible-section.entry.js +3 -4
  203. package/dist/esm/limel-color-picker-palette.entry.js +3 -3
  204. package/dist/esm/limel-color-picker.entry.js +2 -2
  205. package/dist/esm/limel-config.entry.js +1 -1
  206. package/dist/esm/limel-date-picker.entry.js +436 -25
  207. package/dist/esm/limel-dialog.entry.js +3 -3
  208. package/dist/esm/limel-dock-button.entry.js +1 -1
  209. package/dist/esm/limel-dock.entry.js +4 -5
  210. package/dist/esm/limel-drag-handle_2.entry.js +5 -6
  211. package/dist/esm/limel-dynamic-label.entry.js +1 -1
  212. package/dist/esm/limel-email-viewer.entry.js +3 -4
  213. package/dist/esm/limel-file-dropzone_2.entry.js +3 -3
  214. package/dist/esm/limel-file-viewer.entry.js +3 -4
  215. package/dist/esm/limel-file.entry.js +3 -4
  216. package/dist/esm/limel-flatpickr-adapter.entry.js +118 -10
  217. package/dist/esm/limel-flex-container.entry.js +2 -2
  218. package/dist/esm/limel-form-header.entry.js +2 -2
  219. package/dist/esm/limel-form.entry.js +66 -6
  220. package/dist/esm/limel-grid.entry.js +2 -2
  221. package/dist/esm/limel-header.entry.js +2 -2
  222. package/dist/esm/limel-help_2.entry.js +4 -4
  223. package/dist/esm/limel-helper-line_3.entry.js +5 -5
  224. package/dist/esm/limel-hotkey_4.entry.js +6 -6
  225. package/dist/esm/limel-icon-button.entry.js +2 -2
  226. package/dist/esm/limel-icon.entry.js +2 -2
  227. package/dist/esm/limel-info-tile.entry.js +3 -3
  228. package/dist/esm/limel-list-item.entry.js +7 -8
  229. package/dist/esm/limel-markdown.entry.js +2 -2
  230. package/dist/esm/limel-masonry-layout.entry.js +2 -2
  231. package/dist/esm/limel-menu-item-meta.entry.js +2 -2
  232. package/dist/esm/limel-pagination-jump.entry.js +2 -3
  233. package/dist/esm/limel-pagination.entry.js +3 -4
  234. package/dist/esm/limel-picker.entry.js +5 -5
  235. package/dist/esm/limel-popover_2.entry.js +3 -3
  236. package/dist/esm/limel-profile-picture.entry.js +3 -4
  237. package/dist/esm/limel-progress-flow-item.entry.js +1 -1
  238. package/dist/esm/limel-progress-flow.entry.js +1 -1
  239. package/dist/esm/limel-prosemirror-adapter.entry.js +3 -4
  240. package/dist/esm/limel-radio-button-group.entry.js +2 -2
  241. package/dist/esm/limel-radio-button.entry.js +3 -3
  242. package/dist/esm/limel-resize-handle.entry.js +3 -4
  243. package/dist/esm/limel-select.entry.js +3 -3
  244. package/dist/esm/limel-shortcut.entry.js +2 -2
  245. package/dist/esm/limel-side-panel.entry.js +3 -4
  246. package/dist/esm/limel-slider.entry.js +5 -6
  247. package/dist/esm/limel-snackbar.entry.js +4 -5
  248. package/dist/esm/limel-split-button.entry.js +3 -3
  249. package/dist/esm/limel-switch.entry.js +2 -2
  250. package/dist/esm/limel-tab-bar.entry.js +3 -3
  251. package/dist/esm/limel-tab-panel.entry.js +2 -2
  252. package/dist/esm/limel-table.entry.js +4 -5
  253. package/dist/esm/limel-text-editor-link-menu.entry.js +5 -6
  254. package/dist/esm/limel-text-editor.entry.js +2 -2
  255. package/dist/esm/{live-message-BQAYeNiX.js → live-message-BKB4vu28.js} +1 -30
  256. package/dist/esm/loader.js +3 -3
  257. package/dist/esm/{render-list-component-J1IzNpbv.js → render-list-component-CnMNjOaj.js} +1 -1
  258. package/dist/esm/{translations-D9ZGrMhe.js → translations--i932i_D.js} +70 -2
  259. package/dist/lime-elements/lime-elements.esm.js +1 -1
  260. package/dist/lime-elements/p--i932i_D.js +1 -0
  261. package/dist/lime-elements/p-07961d4f.entry.js +1 -0
  262. package/dist/lime-elements/p-099e9e1a.entry.js +1 -0
  263. package/dist/lime-elements/p-0dd5cb25.entry.js +1 -0
  264. package/dist/lime-elements/{p-40940a6c.entry.js → p-1d57370e.entry.js} +1 -1
  265. package/dist/lime-elements/p-1ef92aa3.entry.js +1 -0
  266. package/dist/lime-elements/p-1eff9347.entry.js +56 -0
  267. package/dist/lime-elements/{p-6053608a.entry.js → p-22458db2.entry.js} +2 -2
  268. package/dist/lime-elements/{p-db9cb7ef.entry.js → p-2520a91b.entry.js} +1 -1
  269. package/dist/lime-elements/{p-85318636.entry.js → p-25473848.entry.js} +1 -1
  270. package/dist/lime-elements/p-27000dfb.entry.js +1 -0
  271. package/dist/lime-elements/p-29800b71.entry.js +1 -0
  272. package/dist/lime-elements/{p-438fe49b.entry.js → p-2e1fd8c4.entry.js} +1 -1
  273. package/dist/lime-elements/p-2f6ee1b0.entry.js +1 -0
  274. package/dist/lime-elements/{p-c61e9b83.entry.js → p-427a3da3.entry.js} +1 -1
  275. package/dist/lime-elements/p-447a2633.entry.js +1 -0
  276. package/dist/lime-elements/{p-909466b8.entry.js → p-4c54780d.entry.js} +1 -1
  277. package/dist/lime-elements/p-4f81f0b4.entry.js +1 -0
  278. package/dist/lime-elements/{p-7d0ffc60.entry.js → p-5062b51a.entry.js} +1 -1
  279. package/dist/lime-elements/p-5295b4c7.entry.js +1 -0
  280. package/dist/lime-elements/p-5a1b7f4d.entry.js +1 -0
  281. package/dist/lime-elements/{p-a6387dc7.entry.js → p-5b9c1f8f.entry.js} +1 -1
  282. package/dist/lime-elements/p-5be1e9e8.entry.js +159 -0
  283. package/dist/lime-elements/p-5c6589aa.entry.js +1 -0
  284. package/dist/lime-elements/{p-3f7fa772.entry.js → p-5e7ca1fd.entry.js} +1 -1
  285. package/dist/lime-elements/{p-95a486c8.entry.js → p-5f66e497.entry.js} +1 -1
  286. package/dist/lime-elements/p-667759da.entry.js +1 -0
  287. package/dist/lime-elements/{p-48a412ed.entry.js → p-6a340609.entry.js} +1 -1
  288. package/dist/lime-elements/{p-a891f3e8.entry.js → p-6d3cde2e.entry.js} +1 -1
  289. package/dist/lime-elements/{p-f59447bf.entry.js → p-6e529563.entry.js} +1 -1
  290. package/dist/lime-elements/{p-c2056ebc.entry.js → p-743f014f.entry.js} +1 -1
  291. package/dist/lime-elements/{p-c6b3448c.entry.js → p-7aa034e2.entry.js} +1 -1
  292. package/dist/lime-elements/p-7b2ec934.entry.js +1 -0
  293. package/dist/lime-elements/p-7b99624f.entry.js +1 -0
  294. package/dist/lime-elements/p-7ea96b80.entry.js +1 -0
  295. package/dist/lime-elements/{p-e5abe390.entry.js → p-7fe1d9ad.entry.js} +1 -1
  296. package/dist/lime-elements/p-842694af.entry.js +1 -0
  297. package/dist/lime-elements/{p-d3f13124.entry.js → p-848aeaa6.entry.js} +1 -1
  298. package/dist/lime-elements/{p-1e0ced6a.entry.js → p-868a8b12.entry.js} +1 -1
  299. package/dist/lime-elements/p-891f6a07.entry.js +1 -0
  300. package/dist/lime-elements/{p-28957b5c.entry.js → p-8dcb9ef1.entry.js} +1 -1
  301. package/dist/lime-elements/p-92f79a62.entry.js +1 -0
  302. package/dist/lime-elements/p-93907698.entry.js +16 -0
  303. package/dist/lime-elements/{p-c0ebf7cc.entry.js → p-9b3c7341.entry.js} +1 -1
  304. package/dist/lime-elements/p-B9Ofc5RB.js +1 -0
  305. package/dist/lime-elements/{p-_1yBt1pG.js → p-BJrZuSu3.js} +1 -1
  306. package/dist/lime-elements/{p-Cadm4-WZ.js → p-BzHrLZdr.js} +1 -1
  307. package/dist/lime-elements/p-CMedqTpE.js +1 -0
  308. package/dist/lime-elements/{p-BU9IJqli.js → p-D3SUrFhp.js} +2 -2
  309. package/dist/lime-elements/p-DpXrxCh5.js +1 -0
  310. package/dist/lime-elements/p-DwxRLqY6.js +1 -0
  311. package/dist/lime-elements/{p-c8a34cef.entry.js → p-a0501e84.entry.js} +1 -1
  312. package/dist/lime-elements/p-a5419b44.entry.js +1 -0
  313. package/dist/lime-elements/{p-ce71c5b9.entry.js → p-abd612b3.entry.js} +1 -1
  314. package/dist/lime-elements/{p-f3b93ce8.entry.js → p-aeac9588.entry.js} +2 -2
  315. package/dist/lime-elements/p-b01e8af9.entry.js +1 -0
  316. package/dist/lime-elements/{p-f97ec7a5.entry.js → p-b08c9b52.entry.js} +1 -1
  317. package/dist/lime-elements/{p-54537c85.entry.js → p-b1f6412e.entry.js} +1 -1
  318. package/dist/lime-elements/{p-6ae093c8.entry.js → p-b3967ab3.entry.js} +1 -1
  319. package/dist/lime-elements/{p-5dce791c.entry.js → p-b8bfec0e.entry.js} +1 -1
  320. package/dist/lime-elements/p-ba4b44ad.entry.js +1 -0
  321. package/dist/lime-elements/{p-783fd221.entry.js → p-bf726f16.entry.js} +1 -1
  322. package/dist/lime-elements/p-c2f27d2a.entry.js +1 -0
  323. package/dist/lime-elements/{p-271662d4.entry.js → p-c3bd19ea.entry.js} +1 -1
  324. package/dist/lime-elements/p-cc560bbd.entry.js +1 -0
  325. package/dist/lime-elements/{p-0319f07f.entry.js → p-d2953c11.entry.js} +1 -1
  326. package/dist/lime-elements/{p-764d2f86.entry.js → p-d3d01dd4.entry.js} +1 -1
  327. package/dist/lime-elements/{p-4b75e653.entry.js → p-d9e6175b.entry.js} +1 -1
  328. package/dist/lime-elements/p-dab5421d.entry.js +1 -0
  329. package/dist/lime-elements/p-dcaeefc9.entry.js +1 -0
  330. package/dist/lime-elements/{p-f71fbc9e.entry.js → p-df8aa135.entry.js} +4 -4
  331. package/dist/lime-elements/p-e2fb2af4.entry.js +1 -0
  332. package/dist/lime-elements/p-e929fc64.entry.js +1 -0
  333. package/dist/lime-elements/p-ea02dade.entry.js +1 -0
  334. package/dist/lime-elements/p-ecd633cb.entry.js +1 -0
  335. package/dist/lime-elements/{p-39d1e157.entry.js → p-f5cd53e8.entry.js} +1 -1
  336. package/dist/lime-elements/{p-8fe28845.entry.js → p-f7cae25a.entry.js} +1 -1
  337. package/dist/types/components/chart/chart.d.ts +59 -8
  338. package/dist/types/components/chart/chart.types.d.ts +23 -0
  339. package/dist/types/components/chart/options.d.ts +83 -8
  340. package/dist/types/components/chart/scale.d.ts +10 -0
  341. package/dist/types/components/chart/series.d.ts +71 -0
  342. package/dist/types/components/date-picker/date-formatter.d.ts +12 -0
  343. package/dist/types/components/date-picker/date-picker.d.ts +59 -3
  344. package/dist/types/components/date-picker/flatpickr-adapter/flatpickr-adapter.d.ts +13 -2
  345. package/dist/types/components/date-picker/pickers/month-picker.d.ts +1 -0
  346. package/dist/types/components/date-picker/pickers/picker.d.ts +8 -1
  347. package/dist/types/components/date-picker/pickers/quarter-picker.d.ts +1 -0
  348. package/dist/types/components/date-picker/pickers/week-picker.d.ts +4 -0
  349. package/dist/types/components/date-picker/pickers/year-picker.d.ts +7 -0
  350. package/dist/types/components/form/fields/schema-field.d.ts +2 -0
  351. package/dist/types/components/form/form.d.ts +2 -0
  352. package/dist/types/components/form/form.test-schemas.d.ts +1 -0
  353. package/dist/types/components/form/invalid-input.d.ts +14 -0
  354. package/dist/types/components/form/widgets/date-picker.d.ts +1 -0
  355. package/dist/types/components.d.ts +73 -26
  356. package/dist/types/translations/da.d.ts +2 -0
  357. package/dist/types/translations/de.d.ts +2 -0
  358. package/dist/types/translations/en.d.ts +2 -0
  359. package/dist/types/translations/fi.d.ts +2 -0
  360. package/dist/types/translations/fr.d.ts +2 -0
  361. package/dist/types/translations/nl.d.ts +2 -0
  362. package/dist/types/translations/no.d.ts +2 -0
  363. package/dist/types/translations/sv.d.ts +2 -0
  364. package/package.json +3 -3
  365. package/dist/cjs/language-s0bKUCvO.js +0 -58
  366. package/dist/esm/language-VamkUr90.js +0 -55
  367. package/dist/lime-elements/p-0a7cbdc3.entry.js +0 -1
  368. package/dist/lime-elements/p-0f96e94d.entry.js +0 -1
  369. package/dist/lime-elements/p-1a0c5e45.entry.js +0 -1
  370. package/dist/lime-elements/p-401d5c92.entry.js +0 -1
  371. package/dist/lime-elements/p-430db3b9.entry.js +0 -1
  372. package/dist/lime-elements/p-43b62587.entry.js +0 -1
  373. package/dist/lime-elements/p-48dccb83.entry.js +0 -1
  374. package/dist/lime-elements/p-5c918155.entry.js +0 -1
  375. package/dist/lime-elements/p-66101ed6.entry.js +0 -1
  376. package/dist/lime-elements/p-7ab72b52.entry.js +0 -1
  377. package/dist/lime-elements/p-8d602078.entry.js +0 -1
  378. package/dist/lime-elements/p-8d9a2a22.entry.js +0 -1
  379. package/dist/lime-elements/p-8de4f0f3.entry.js +0 -1
  380. package/dist/lime-elements/p-8e80a884.entry.js +0 -56
  381. package/dist/lime-elements/p-99984c66.entry.js +0 -1
  382. package/dist/lime-elements/p-9d46f720.entry.js +0 -1
  383. package/dist/lime-elements/p-9e2b426c.entry.js +0 -1
  384. package/dist/lime-elements/p-C9dBa_Im.js +0 -1
  385. package/dist/lime-elements/p-Cw7VQSGU.js +0 -1
  386. package/dist/lime-elements/p-N9vxZMhe.js +0 -1
  387. package/dist/lime-elements/p-VamkUr90.js +0 -1
  388. package/dist/lime-elements/p-b1c7033b.entry.js +0 -16
  389. package/dist/lime-elements/p-b5451350.entry.js +0 -1
  390. package/dist/lime-elements/p-c75f3b0d.entry.js +0 -1
  391. package/dist/lime-elements/p-ca4247c4.entry.js +0 -1
  392. package/dist/lime-elements/p-cf2d43c7.entry.js +0 -1
  393. package/dist/lime-elements/p-d53421af.entry.js +0 -1
  394. package/dist/lime-elements/p-d8901e39.entry.js +0 -1
  395. package/dist/lime-elements/p-d89553b3.entry.js +0 -1
  396. package/dist/lime-elements/p-d93b8ce0.entry.js +0 -1
  397. package/dist/lime-elements/p-e97340c4.entry.js +0 -1
  398. package/dist/lime-elements/p-eF09GxA_.js +0 -1
  399. package/dist/lime-elements/p-ec0c113d.entry.js +0 -1
  400. package/dist/lime-elements/p-f036ad27.entry.js +0 -1
  401. package/dist/lime-elements/p-f197000b.entry.js +0 -159
  402. package/dist/lime-elements/p-f5bb17eb.entry.js +0 -1
  403. package/dist/lime-elements/p-f6bc6658.entry.js +0 -1
  404. package/dist/lime-elements/p-fa1aa440.entry.js +0 -1
@@ -1,11 +1,14 @@
1
1
  import { format } from "echarts/core";
2
- import { getAxisRange, getDateRange, getDateTicks, getMaximumValue, getMinimumValue, getScatterRanges, getXValue, getYValue, getShare, getValueSpan, getWholeRange, isPartOfWhole, isRangeItem, } from "./scale";
2
+ import { canDrawSeries, canStack, getAxisRange, getDateRange, getDateTicks, getMaximumValue, getMinimumValue, getScatterRanges, getXValue, getYValue, getShare, getValueSpan, getWholeRange, isPartOfWhole, isRangeItem, } from "./scale";
3
3
  import { formatShare, formatValue, getAxisValueFormatter, } from "./format";
4
+ import { alignSeries, endsStack, getAxisItems, } from "./series";
4
5
  const DOT_SIZE = 8;
5
6
  const LINE_DOT_SIZE = 6;
6
7
  const CONNECTOR_WIDTH = 2;
7
8
  const DIMMED_OPACITY = 0.4;
8
9
  const AREA_OPACITY = 0.4;
10
+ const SERIES_AREA_OPACITY = 0.15;
11
+ const SERIES_STACK = { stack: 'series', stackStrategy: 'samesign' };
9
12
  const PADDING = 8;
10
13
  const NPS_MIN = -100;
11
14
  const NPS_MAX = 100;
@@ -16,6 +19,15 @@ const NPS_ARC_WIDTH = 16;
16
19
  const ITEM_TEXT_MIN_WIDTH = 40;
17
20
  const ITEM_TEXT_GAP = 4;
18
21
  const ITEM_TEXT_LINE_HEIGHT = 14;
22
+ const SWATCH = {
23
+ width: '0.625rem',
24
+ height: '0.625rem',
25
+ 'border-radius': '0.125rem',
26
+ };
27
+ const SWATCH_SHAPES = {
28
+ line: { height: '0.125rem' },
29
+ dot: { 'border-radius': '50%' },
30
+ };
19
31
  const emphasis = { focus: 'self' };
20
32
  const blur = { itemStyle: { opacity: DIMMED_OPACITY } };
21
33
  const hidden = { show: false };
@@ -27,34 +39,116 @@ const hidden = { show: false };
27
39
  * when it is known from an earlier drawing
28
40
  */
29
41
  export function drawChart(settings, theme, itemSpace) {
30
- const drawing = drawSeries(settings, theme, itemSpace);
31
- return Object.assign(Object.assign({}, drawing), { option: Object.assign({ animation: theme.animate, textStyle: { fontFamily: theme.fontFamily, color: theme.textColor }, tooltip: {
32
- trigger: 'item',
33
- appendTo: 'body',
34
- backgroundColor: theme.surfaceColor,
35
- borderColor: theme.axisLineColor,
36
- textStyle: { color: theme.textColor },
37
- formatter: (params) => getTooltip(settings, getItemIndex(drawing, params)),
38
- } }, drawing.option) });
42
+ const drawn = getDrawnSettings(settings);
43
+ const grid = getSeriesGrid(drawn);
44
+ const drawing = drawSeries(drawn, grid, theme, itemSpace);
45
+ return Object.assign(Object.assign({}, drawing), { option: Object.assign({ animation: theme.animate, textStyle: { fontFamily: theme.fontFamily, color: theme.textColor }, tooltip: Object.assign({ appendTo: 'body', backgroundColor: theme.surfaceColor, borderColor: theme.axisLineColor, textStyle: { color: theme.textColor } }, (drawn.series
46
+ ? getCategoryTooltipOption(drawn, grid, theme)
47
+ : {
48
+ trigger: 'item',
49
+ formatter: (params) => getTooltip(drawn, findItem(drawing, params).index),
50
+ })) }, drawing.option) });
39
51
  }
40
52
  /**
41
- * The index of the item drawn at a position, if an item is drawn there.
53
+ * The item drawn at a position, if an item is drawn there. A position in a
54
+ * series of ECharts that draws no items of its own, such as the invisible
55
+ * column of an item, belongs to the first series.
42
56
  * @param drawing - the drawing of the chart
43
57
  * @param location - a position within the drawn series
44
58
  */
45
- export function getItemIndex(drawing, location) {
46
- return drawing.itemsAreSeries ? location.seriesIndex : location.dataIndex;
59
+ export function findItem(drawing, location) {
60
+ var _a, _b;
61
+ if (drawing.itemsAreSeries) {
62
+ return { series: 0, index: location.seriesIndex };
63
+ }
64
+ return {
65
+ series: (_b = (_a = drawing.partsOfSeries) === null || _a === void 0 ? void 0 : _a[location.seriesIndex]) !== null && _b !== void 0 ? _b : 0,
66
+ index: location.dataIndex,
67
+ };
47
68
  }
48
69
  /**
49
70
  * Where an item is drawn, for highlighting it and showing its tooltip.
50
71
  * @param drawing - the drawing of the chart
51
- * @param index - the index of the item
72
+ * @param position - where the item is among the series
52
73
  */
53
- export function locateItem(drawing, index) {
74
+ export function locateItem(drawing, position) {
54
75
  if (drawing.itemsAreSeries) {
55
- return { seriesIndex: index, dataIndex: 0 };
76
+ return { seriesIndex: position.index, dataIndex: 0 };
77
+ }
78
+ return {
79
+ seriesIndex: drawing.seriesIndexes[position.series],
80
+ dataIndex: position.index,
81
+ };
82
+ }
83
+ /**
84
+ * The series that the chart draws: its series, when its type can draw them.
85
+ * @param settings - what the chart is given
86
+ */
87
+ export function getDrawnSeries(settings) {
88
+ var _a;
89
+ if (!((_a = settings.series) === null || _a === void 0 ? void 0 : _a.length) || !canDrawSeries(settings.type)) {
90
+ return;
56
91
  }
57
- return { seriesIndex: drawing.seriesIndex, dataIndex: index };
92
+ return settings.series;
93
+ }
94
+ /**
95
+ * The series whose items the chart draws as its items: its first series,
96
+ * when its type cannot draw series and it has no items.
97
+ * @param settings - what the chart is given
98
+ */
99
+ export function getSeriesOfDrawnItems(settings) {
100
+ var _a, _b;
101
+ if (getDrawnSeries(settings) || ((_a = settings.items) === null || _a === void 0 ? void 0 : _a.length)) {
102
+ return;
103
+ }
104
+ return (_b = settings.series) === null || _b === void 0 ? void 0 : _b[0];
105
+ }
106
+ /**
107
+ * The items that the chart draws when it draws no series: its items, or the
108
+ * items of its first series when it has no items.
109
+ * @param settings - what the chart is given
110
+ */
111
+ export function getDrawnItems(settings) {
112
+ var _a, _b, _c;
113
+ if (getDrawnSeries(settings)) {
114
+ return [];
115
+ }
116
+ return (_c = (_b = (_a = getSeriesOfDrawnItems(settings)) === null || _a === void 0 ? void 0 : _a.items) !== null && _b !== void 0 ? _b : settings.items) !== null && _c !== void 0 ? _c : [];
117
+ }
118
+ /**
119
+ * Whether the chart stacks its series on each other. Only the types that
120
+ * can stack series do, and never with dates, since a sum of dates means
121
+ * nothing.
122
+ * @param settings - what the chart is given
123
+ */
124
+ export function isStacked(settings) {
125
+ return Boolean(settings.stacked &&
126
+ getDrawnSeries(settings) &&
127
+ canStack(settings.type) &&
128
+ settings.valueFormat !== 'date');
129
+ }
130
+ function getDrawnSettings(settings) {
131
+ return Object.assign(Object.assign({}, settings), { items: getDrawnItems(settings), series: getDrawnSeries(settings), stacked: isStacked(settings) });
132
+ }
133
+ /**
134
+ * The series that the chart draws lined up by category, or the items it
135
+ * draws as the only series when it draws no series.
136
+ * @param settings - what the chart is given
137
+ */
138
+ export function getSeriesGrid(settings) {
139
+ var _a;
140
+ return alignSeries((_a = getDrawnSeries(settings)) !== null && _a !== void 0 ? _a : [
141
+ { text: '', items: getDrawnItems(settings) },
142
+ ]);
143
+ }
144
+ /**
145
+ * The style of the marker of a series, in the legend and in the tooltip: a
146
+ * square for bars and areas, a line for lines, and a dot for dots.
147
+ * @param type - the chart type
148
+ * @param color - the color of the series
149
+ */
150
+ export function getSwatchStyle(type, color = '') {
151
+ return Object.assign(Object.assign(Object.assign({}, SWATCH), SWATCH_SHAPES[type]), { 'background-color': color });
58
152
  }
59
153
  /**
60
154
  * Shows the text of every item on the axis, cut short to the space of the
@@ -113,7 +207,51 @@ export function getTooltip(settings, index) {
113
207
  .map((text) => format.encodeHTML(text))
114
208
  .join('<br/>');
115
209
  }
116
- function drawSeries(settings, theme, itemSpace) {
210
+ /**
211
+ * The tooltip of a category of a chart with series, as HTML: its text, and
212
+ * the name and value of each series that has an item there.
213
+ * @param grid - the series of the chart, lined up by category
214
+ * @param style - how the chart writes values
215
+ * @param index - the index of the category
216
+ */
217
+ export function getCategoryTooltip(grid, style, index) {
218
+ const category = grid.categories[index];
219
+ if (category === undefined) {
220
+ return '';
221
+ }
222
+ const lines = grid.series
223
+ .filter((series) => series.items[index] !== undefined)
224
+ .map((series) => {
225
+ var _a;
226
+ const item = series.items[index];
227
+ return getTooltipLine(getSwatch(style.type, (_a = item.color) !== null && _a !== void 0 ? _a : series.color), series.text, formatValue(item, style));
228
+ });
229
+ return [`<div>${format.encodeHTML(category)}</div>`, ...lines].join('');
230
+ }
231
+ function getTooltipLine(swatch, name, value) {
232
+ return `<div style="display:flex;justify-content:space-between;gap:1rem"><span>${swatch}${format.encodeHTML(name)}</span><span>${format.encodeHTML(value)}</span></div>`;
233
+ }
234
+ function getSwatch(type, color = '') {
235
+ const style = Object.assign({ display: 'inline-block', 'vertical-align': 'middle', 'margin-right': '0.375rem' }, getSwatchStyle(type, format.encodeHTML(color)));
236
+ const declarations = Object.entries(style).map(([property, value]) => `${property}:${value}`);
237
+ return `<span style="${declarations.join(';')}"></span>`;
238
+ }
239
+ function getCategoryTooltipOption(settings, grid, theme) {
240
+ return {
241
+ trigger: 'axis',
242
+ axisPointer: settings.type === 'bar'
243
+ ? {
244
+ type: 'shadow',
245
+ shadowStyle: { color: theme.axisLineColor, opacity: 0.2 },
246
+ }
247
+ : { type: 'line', lineStyle: { color: theme.axisLineColor } },
248
+ formatter: (params) => {
249
+ const [first] = [params].flat();
250
+ return getCategoryTooltip(grid, settings, first === null || first === void 0 ? void 0 : first.dataIndex);
251
+ },
252
+ };
253
+ }
254
+ function drawSeries(settings, grid, theme, itemSpace) {
117
255
  switch (settings.type) {
118
256
  case 'pie':
119
257
  case 'doughnut': {
@@ -132,46 +270,54 @@ function drawSeries(settings, theme, itemSpace) {
132
270
  return drawNps(settings, theme);
133
271
  }
134
272
  default: {
135
- return drawOnAxes(settings, theme, itemSpace);
273
+ return drawOnAxes(settings, grid, theme, itemSpace);
136
274
  }
137
275
  }
138
276
  }
139
- function drawOnAxes(settings, theme, itemSpace) {
140
- const { items, orientation } = settings;
141
- const range = settings.valueFormat === 'date'
142
- ? getDateRange(items.flatMap((item) => [
143
- getMinimumValue(item),
144
- getMaximumValue(item),
145
- ]), settings.maxValue)
146
- : getAxisRange(items, settings.maxValue, settings.axisIncrement);
147
- const itemTextAxis = getItemTextAxis(settings);
148
- const categoryAxis = Object.assign(Object.assign(Object.assign({}, getCategoryAxis(settings)), { axisLabel: Object.assign({ show: settings.displayItemText, color: theme.textColor }, (itemTextAxis &&
277
+ function drawOnAxes(settings, grid, theme, itemSpace) {
278
+ const { orientation } = settings;
279
+ const range = getValueRange(settings, grid);
280
+ const itemTextAxis = getItemTextAxis(settings, grid);
281
+ const categoryAxis = Object.assign(Object.assign(Object.assign({}, getCategoryAxis(settings, grid)), { axisLabel: Object.assign({ show: settings.displayItemText, color: theme.textColor }, (itemTextAxis &&
149
282
  itemSpace &&
150
283
  getItemTextLayout(itemTextAxis, itemSpace))), axisTick: hidden, axisLine: { lineStyle: { color: theme.axisLineColor } } }), getAxisName(settings, settings.itemsLabel, theme));
151
284
  const valueAxis = getValueAxis(range, getAxisName(settings, settings.valuesLabel, theme), settings, theme);
152
- const { series, seriesIndex } = getAxisSeries(settings, theme);
285
+ const { series, seriesIndexes, partsOfSeries } = getAxisSeries(settings, grid, theme);
153
286
  const option = {
154
287
  grid: getGrid(theme),
155
288
  xAxis: orientation === 'landscape' ? categoryAxis : valueAxis,
156
289
  yAxis: orientation === 'landscape' ? valueAxis : categoryAxis,
157
290
  series: series,
158
291
  };
292
+ const hasColumns = settings.type !== 'bar' && !settings.series;
159
293
  return {
160
- seriesIndex: seriesIndex,
294
+ seriesIndexes: seriesIndexes,
295
+ partsOfSeries: partsOfSeries,
161
296
  itemsAreSeries: false,
162
297
  itemTextAxis: itemTextAxis,
163
- option: settings.type === 'bar' ? option : withColumns(option, settings),
298
+ valueRange: range,
299
+ option: hasColumns ? withColumns(option, settings, grid) : option,
164
300
  };
165
301
  }
166
- function getCategoryAxis(settings) {
302
+ function getValueRange(settings, grid) {
303
+ const items = getAxisItems(grid, Boolean(settings.stacked));
304
+ if (settings.valueFormat === 'date') {
305
+ return getDateRange(items.flatMap((item) => [
306
+ getMinimumValue(item),
307
+ getMaximumValue(item),
308
+ ]), settings.maxValue);
309
+ }
310
+ return getAxisRange(items, settings.maxValue, settings.axisIncrement);
311
+ }
312
+ function getCategoryAxis(settings, grid) {
167
313
  return {
168
314
  type: 'category',
169
- data: settings.items.map((item) => item.text),
315
+ data: grid.categories,
170
316
  inverse: settings.orientation === 'portrait',
171
317
  };
172
318
  }
173
- function getItemTextAxis(settings) {
174
- if (!settings.displayItemText || settings.items.length < 2) {
319
+ function getItemTextAxis(settings, grid) {
320
+ if (!settings.displayItemText || grid.categories.length < 2) {
175
321
  return;
176
322
  }
177
323
  return settings.orientation === 'landscape' ? 'xAxis' : 'yAxis';
@@ -180,9 +326,9 @@ function getItemTextAxis(settings) {
180
326
  // column across the whole plot that shows its tooltip and takes its clicks.
181
327
  // The columns have axes of their own, so they are not laid out next to the
182
328
  // bars that draw ranges.
183
- function withColumns(option, settings) {
329
+ function withColumns(option, settings, grid) {
184
330
  const { items, orientation } = settings;
185
- const categoryAxis = Object.assign(Object.assign({}, getCategoryAxis(settings)), { show: false });
331
+ const categoryAxis = Object.assign(Object.assign({}, getCategoryAxis(settings, grid)), { show: false });
186
332
  const valueAxis = { type: 'value', min: 0, max: 1, show: false };
187
333
  const columns = {
188
334
  type: 'bar',
@@ -197,78 +343,140 @@ function withColumns(option, settings) {
197
343
  const landscape = orientation === 'landscape';
198
344
  return Object.assign(Object.assign({}, option), { xAxis: [option.xAxis, landscape ? categoryAxis : valueAxis], yAxis: [option.yAxis, landscape ? valueAxis : categoryAxis], series: [...option.series, columns] });
199
345
  }
200
- function getAxisSeries(settings, theme) {
346
+ function getAxisSeries(settings, grid, theme) {
347
+ const series = [];
348
+ const seriesIndexes = [];
349
+ const partsOfSeries = [];
350
+ for (const index of grid.series.keys()) {
351
+ const drawn = drawItemSeries(settings, grid, index, theme);
352
+ seriesIndexes.push(series.length + drawn.seriesIndex);
353
+ series.push(...drawn.series);
354
+ partsOfSeries.push(...drawn.series.map(() => index));
355
+ }
356
+ return {
357
+ series: series,
358
+ seriesIndexes: seriesIndexes,
359
+ partsOfSeries: partsOfSeries,
360
+ };
361
+ }
362
+ function drawItemSeries(settings, grid, index, theme) {
363
+ const series = grid.series[index];
201
364
  if (settings.type === 'line' || settings.type === 'area') {
202
- return getLineSeries(settings, theme);
365
+ return getLineSeries(settings, series, index, theme);
203
366
  }
204
367
  if (settings.type === 'dot') {
205
- return getDotSeries(settings, theme);
368
+ return getDotSeries(settings, series, index, theme);
369
+ }
370
+ if (settings.stacked) {
371
+ return {
372
+ series: [getStackedBars(settings, grid, index, theme)],
373
+ seriesIndex: 0,
374
+ };
206
375
  }
207
- return getBarSeries(settings, theme);
376
+ return getBarSeries(settings, series, index, theme);
208
377
  }
209
- function getBarSeries(settings, theme) {
210
- const { items } = settings;
378
+ function getStackedBars(settings, grid, index, theme) {
379
+ const series = grid.series[index];
380
+ return Object.assign(Object.assign({ type: 'bar' }, SERIES_STACK), { data: series.items.map((item, category) => item
381
+ ? {
382
+ value: getValueSpan(item),
383
+ itemStyle: {
384
+ color: item.color,
385
+ borderRadius: endsStack(grid, {
386
+ series: index,
387
+ index: category,
388
+ })
389
+ ? getOuterCorners(settings, item, theme)
390
+ : 0,
391
+ borderColor: theme.dividerColor,
392
+ borderWidth: 1,
393
+ },
394
+ }
395
+ : null), label: Object.assign(Object.assign({}, getValueLabel(settings, series, theme)), { position: 'inside', color: undefined }), cursor: getSeriesCursor(series.items), emphasis: emphasis, blur: blur });
396
+ }
397
+ function getOuterCorners(settings, item, theme) {
398
+ const [topLeft, topRight, bottomRight, bottomLeft] = theme.itemBorderRadius;
399
+ const positive = getValueSpan(item) >= 0;
400
+ if (settings.orientation === 'portrait') {
401
+ return positive
402
+ ? [0, topRight, bottomRight, 0]
403
+ : [topLeft, 0, 0, bottomLeft];
404
+ }
405
+ return positive
406
+ ? [topLeft, topRight, 0, 0]
407
+ : [0, 0, bottomRight, bottomLeft];
408
+ }
409
+ function getBarSeries(settings, series, index, theme) {
410
+ const { items } = series;
211
411
  const bars = {
212
412
  type: 'bar',
213
- data: items.map((item) => ({
214
- value: getValueSpan(item),
215
- itemStyle: {
216
- color: item.color,
217
- borderRadius: theme.itemBorderRadius,
218
- },
219
- })),
220
- label: getValueLabel(settings, theme),
413
+ data: items.map((item) => item
414
+ ? {
415
+ value: getValueSpan(item),
416
+ itemStyle: {
417
+ color: item.color,
418
+ borderRadius: theme.itemBorderRadius,
419
+ },
420
+ }
421
+ : null),
422
+ label: getValueLabel(settings, series, theme),
221
423
  cursor: getSeriesCursor(items),
222
424
  emphasis: emphasis,
223
425
  blur: blur,
224
426
  };
225
- if (items.every((item) => !isRangeItem(item))) {
427
+ if (!hasRanges(items)) {
226
428
  return { series: [bars], seriesIndex: 0 };
227
429
  }
228
430
  return {
229
431
  series: [
230
- Object.assign(Object.assign({ type: 'bar' }, rangeBase), { data: getRangeStarts(items) }),
231
- Object.assign(Object.assign({}, bars), stacked),
432
+ Object.assign(Object.assign({ type: 'bar' }, getRangeBase(index)), { data: getRangeStarts(items) }),
433
+ Object.assign(Object.assign({}, bars), getRangeStack(index)),
232
434
  ],
233
435
  seriesIndex: 1,
234
436
  };
235
437
  }
236
- function getDotSeries(settings, theme) {
237
- const { items, orientation } = settings;
238
- const point = (index, value) => orientation === 'landscape' ? [index, value] : [value, index];
438
+ function getDotSeries(settings, series, index, theme) {
439
+ const { items } = series;
440
+ const { orientation } = settings;
441
+ const point = (category, value) => orientation === 'landscape' ? [category, value] : [value, category];
239
442
  const ends = {
240
443
  type: 'scatter',
241
444
  symbolSize: DOT_SIZE,
242
- data: items.map((item, index) => ({
243
- value: point(index, getMaximumValue(item)),
244
- itemStyle: { color: item.color },
245
- })),
246
- label: getValueLabel(settings, theme),
445
+ data: items.map((item, category) => item
446
+ ? {
447
+ value: point(category, getMaximumValue(item)),
448
+ itemStyle: { color: item.color },
449
+ }
450
+ : null),
451
+ label: getValueLabel(settings, series, theme),
247
452
  cursor: getSeriesCursor(items),
248
453
  emphasis: emphasis,
249
454
  blur: blur,
250
455
  };
251
- if (items.every((item) => !isRangeItem(item))) {
456
+ if (!hasRanges(items)) {
252
457
  return { series: [ends], seriesIndex: 0 };
253
458
  }
254
- const connectors = Object.assign(Object.assign({ type: 'bar' }, stacked), { silent: true, barWidth: CONNECTOR_WIDTH, data: items.map((item) => ({
255
- value: isRangeItem(item) ? getValueSpan(item) : null,
256
- itemStyle: { color: item.color },
257
- })) });
459
+ const connectors = Object.assign(Object.assign({ type: 'bar' }, getRangeStack(index)), { cursor: getSeriesCursor(items), emphasis: { disabled: true }, barWidth: CONNECTOR_WIDTH, barGap: '-100%', data: items.map((item) => item && isRangeItem(item)
460
+ ? {
461
+ value: getValueSpan(item),
462
+ itemStyle: { color: item.color },
463
+ }
464
+ : null) });
258
465
  const starts = {
259
466
  type: 'scatter',
260
- silent: true,
467
+ cursor: getSeriesCursor(items),
468
+ emphasis: { disabled: true },
261
469
  symbolSize: DOT_SIZE,
262
- data: items.map((item, index) => ({
263
- value: isRangeItem(item)
264
- ? point(index, getMinimumValue(item))
265
- : [null, null],
266
- itemStyle: { color: item.color },
267
- })),
470
+ data: items.map((item, category) => item && isRangeItem(item)
471
+ ? {
472
+ value: point(category, getMinimumValue(item)),
473
+ itemStyle: { color: item.color },
474
+ }
475
+ : null),
268
476
  };
269
477
  return {
270
478
  series: [
271
- Object.assign(Object.assign({ type: 'bar' }, rangeBase), { data: getRangeStarts(items) }),
479
+ Object.assign(Object.assign({ type: 'bar' }, getRangeBase(index)), { barGap: '-100%', data: getRangeStarts(items) }),
272
480
  connectors,
273
481
  starts,
274
482
  ends,
@@ -276,38 +484,63 @@ function getDotSeries(settings, theme) {
276
484
  seriesIndex: 3,
277
485
  };
278
486
  }
279
- function getLineSeries(settings, theme) {
280
- const { items } = settings;
281
- const color = theme.lineColor;
487
+ function getLineSeries(settings, series, index, theme) {
488
+ var _a;
489
+ const { items } = series;
490
+ const color = (_a = series.color) !== null && _a !== void 0 ? _a : theme.lineColor;
282
491
  const area = settings.type === 'area';
283
- const line = {
284
- type: 'line',
285
- color: color,
286
- symbol: 'circle',
287
- symbolSize: LINE_DOT_SIZE,
288
- data: items.map((item) => ({
289
- value: getValueSpan(item),
290
- itemStyle: { color: item.color },
291
- })),
292
- areaStyle: area ? { color: color, opacity: AREA_OPACITY } : undefined,
293
- label: getValueLabel(settings, theme),
294
- cursor: getSeriesCursor(items),
295
- emphasis: emphasis,
296
- blur: blur,
297
- };
298
- if (items.every((item) => !isRangeItem(item))) {
492
+ const line = Object.assign(Object.assign({ type: 'line', color: color, symbol: 'circle', symbolSize: LINE_DOT_SIZE }, (settings.series &&
493
+ hasClickableItems(items) && {
494
+ showAllSymbol: true,
495
+ labelLayout: { hideOverlap: true },
496
+ })), { data: items.map((item) => item
497
+ ? {
498
+ value: getValueSpan(item),
499
+ itemStyle: { color: item.color },
500
+ }
501
+ : null), areaStyle: area
502
+ ? { color: color, opacity: getAreaOpacity(settings) }
503
+ : undefined, label: getValueLabel(settings, series, theme), cursor: getSeriesCursor(items), emphasis: emphasis, blur: blur });
504
+ if (settings.stacked) {
505
+ return { series: [Object.assign(Object.assign({}, line), SERIES_STACK)], seriesIndex: 0 };
506
+ }
507
+ if (!hasRanges(items)) {
299
508
  return { series: [line], seriesIndex: 0 };
300
509
  }
301
- const base = Object.assign(Object.assign({ type: 'line' }, rangeBase), { symbol: 'none', color: color, lineStyle: { opacity: area ? 0 : 1 }, data: getRangeStarts(items) });
302
- return { series: [base, Object.assign(Object.assign({}, line), stacked)], seriesIndex: 1 };
510
+ const base = Object.assign(Object.assign({ type: 'line' }, getRangeBase(index)), { symbol: 'none', color: color, lineStyle: { opacity: area ? 0 : 1 }, data: getRangeStarts(items) });
511
+ return {
512
+ series: [base, Object.assign(Object.assign({}, line), getRangeStack(index))],
513
+ seriesIndex: 1,
514
+ };
515
+ }
516
+ function getAreaOpacity(settings) {
517
+ var _a;
518
+ return ((_a = settings.series) === null || _a === void 0 ? void 0 : _a.length) > 1 && !settings.stacked
519
+ ? SERIES_AREA_OPACITY
520
+ : AREA_OPACITY;
521
+ }
522
+ function hasClickableItems(items) {
523
+ return items.some((item) => item === null || item === void 0 ? void 0 : item.clickable);
524
+ }
525
+ function hasRanges(items) {
526
+ return items.some((item) => item && isRangeItem(item));
303
527
  }
304
- const stacked = { stack: 'range', stackStrategy: 'all' };
305
528
  // A range is drawn as a stack of an invisible part from zero to its start,
306
529
  // and a visible part from its start to its end. Items that are not ranges
307
- // start at zero.
308
- const rangeBase = Object.assign(Object.assign({}, stacked), { silent: true, tooltip: hidden, emphasis: { disabled: true }, itemStyle: { color: 'transparent' } });
530
+ // start at zero. Each series has a stack of its own.
531
+ function getRangeStack(index) {
532
+ return { stack: `range${index}`, stackStrategy: 'all' };
533
+ }
534
+ function getRangeBase(index) {
535
+ return Object.assign(Object.assign({}, getRangeStack(index)), { silent: true, tooltip: hidden, emphasis: { disabled: true }, itemStyle: { color: 'transparent' } });
536
+ }
309
537
  function getRangeStarts(items) {
310
- return items.map((item) => (isRangeItem(item) ? getMinimumValue(item) : 0));
538
+ return items.map((item) => {
539
+ if (!item) {
540
+ return null;
541
+ }
542
+ return isRangeItem(item) ? getMinimumValue(item) : 0;
543
+ });
311
544
  }
312
545
  function drawScatter(settings, theme) {
313
546
  const { items } = settings;
@@ -337,7 +570,7 @@ function drawScatter(settings, theme) {
337
570
  blur: blur,
338
571
  };
339
572
  return {
340
- seriesIndex: 0,
573
+ seriesIndexes: [0],
341
574
  itemsAreSeries: false,
342
575
  option: {
343
576
  grid: getGrid(theme),
@@ -366,7 +599,7 @@ function drawPie(settings, theme) {
366
599
  }
367
600
  const innerRadius = settings.type === 'doughnut' ? '50%' : 0;
368
601
  return {
369
- seriesIndex: 0,
602
+ seriesIndexes: [0],
370
603
  itemsAreSeries: false,
371
604
  option: {
372
605
  series: [
@@ -401,7 +634,7 @@ function drawProportionBar(settings, theme) {
401
634
  const categoryAxis = { type: 'category', data: [''], show: false };
402
635
  const landscape = settings.orientation === 'landscape';
403
636
  return {
404
- seriesIndex: 0,
637
+ seriesIndexes: [0],
405
638
  itemsAreSeries: true,
406
639
  option: {
407
640
  backgroundColor: theme.backgroundColor,
@@ -430,7 +663,7 @@ function drawRing(settings, theme) {
430
663
  const { items } = settings;
431
664
  const whole = getWholeRange(items, settings.maxValue).totalRange;
432
665
  return {
433
- seriesIndex: 0,
666
+ seriesIndexes: [0],
434
667
  itemsAreSeries: false,
435
668
  option: {
436
669
  polar: { radius: ['20%', '90%'] },
@@ -467,7 +700,7 @@ function drawRing(settings, theme) {
467
700
  function drawNps(settings, theme) {
468
701
  const { items } = settings;
469
702
  return {
470
- seriesIndex: 0,
703
+ seriesIndexes: [0],
471
704
  itemsAreSeries: false,
472
705
  option: {
473
706
  series: [
@@ -556,8 +789,8 @@ function getAxisName(settings, name, theme) {
556
789
  nameTextStyle: { color: theme.textColor },
557
790
  };
558
791
  }
559
- function getValueLabel(settings, theme) {
560
- return Object.assign(Object.assign({ show: settings.displayItemValue, position: settings.orientation === 'landscape' ? 'top' : 'right' }, getLabelStyle(theme)), { formatter: ({ dataIndex }) => formatValue(settings.items[dataIndex], settings) });
792
+ function getValueLabel(settings, series, theme) {
793
+ return Object.assign(Object.assign({ show: settings.displayItemValue, position: settings.orientation === 'landscape' ? 'top' : 'right' }, getLabelStyle(theme)), { formatter: ({ dataIndex }) => formatValue(series.items[dataIndex], settings) });
561
794
  }
562
795
  function getLabelStyle(theme) {
563
796
  return { color: theme.textColor, textBorderWidth: 0 };
@@ -573,7 +806,7 @@ function getPointLabel(settings, item) {
573
806
  return parts.join(' ');
574
807
  }
575
808
  function getSeriesCursor(items) {
576
- return getCursor(items.some((item) => item.clickable));
809
+ return getCursor(hasClickableItems(items));
577
810
  }
578
811
  function getCursor(clickable) {
579
812
  return clickable ? 'pointer' : 'default';