@limetech/lime-elements 40.18.3 → 40.20.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 (352) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/controlled-element-Ajn5eA-q.js +26 -0
  3. package/dist/cjs/{index-zZvs6xK-.js → index-DIiA99Er.js} +271 -71
  4. package/dist/cjs/keyboard-navigation-VyqkMDKy.js +152 -0
  5. package/dist/cjs/lime-elements.cjs.js +1 -1
  6. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-action-bar_3.cjs.entry.js +4 -4
  8. package/dist/cjs/limel-ai-avatar.cjs.entry.js +2 -2
  9. package/dist/cjs/{limel-breadcrumbs_6.cjs.entry.js → limel-badge_7.cjs.entry.js} +98 -12
  10. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  13. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  14. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-chart.cjs.entry.js +51362 -270
  16. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-chip-set.cjs.entry.js +23 -4
  18. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  22. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  27. package/dist/cjs/limel-drag-handle_2.cjs.entry.js +4 -4
  28. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  30. package/dist/cjs/limel-file-viewer.cjs.entry.js +2 -2
  31. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  32. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  33. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-form-header.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  36. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  37. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  38. package/dist/cjs/limel-help_2.cjs.entry.js +3 -3
  39. package/dist/cjs/limel-helper-line_3.cjs.entry.js +6 -5
  40. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  41. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  42. package/dist/cjs/limel-icon.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  44. package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
  45. package/dist/cjs/limel-markdown.cjs.entry.js +4 -4
  46. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  47. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-pagination-jump.cjs.entry.js +1 -1
  49. package/dist/cjs/limel-pagination.cjs.entry.js +2 -2
  50. package/dist/cjs/limel-picker.cjs.entry.js +51 -24
  51. package/dist/cjs/limel-popover_2.cjs.entry.js +4 -11
  52. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  53. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +4 -4
  54. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  55. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  56. package/dist/cjs/limel-resize-handle.cjs.entry.js +2 -2
  57. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  58. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-side-panel.cjs.entry.js +2 -2
  60. package/dist/cjs/limel-slider.cjs.entry.js +4 -4
  61. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  62. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  63. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/limel-tab-bar.cjs.entry.js +7 -150
  65. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  66. package/dist/cjs/limel-table.cjs.entry.js +3 -3
  67. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  68. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  69. package/dist/cjs/live-message-BNl3Ihcz.js +65 -0
  70. package/dist/cjs/loader.cjs.js +1 -1
  71. package/dist/cjs/{markdown-exporter-VtX_2D1d.js → markdown-exporter-BWS2EBxq.js} +2 -2
  72. package/dist/cjs/{markdown-parser-BYtTHL4W.js → markdown-parser-toAp9-Eq.js} +1 -1
  73. package/dist/cjs/{translations-CLSqfR3x.js → translations-CqJEWcfw.js} +8 -0
  74. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  75. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  76. package/dist/collection/components/action-bar/action-bar.js +2 -2
  77. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  78. package/dist/collection/components/badge/badge.js +2 -2
  79. package/dist/collection/components/banner/banner.js +1 -1
  80. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  81. package/dist/collection/components/button/button.js +2 -2
  82. package/dist/collection/components/button-group/button-group.js +1 -1
  83. package/dist/collection/components/callout/callout.js +1 -1
  84. package/dist/collection/components/card/card.js +1 -1
  85. package/dist/collection/components/chart/chart.css +63 -927
  86. package/dist/collection/components/chart/chart.js +330 -288
  87. package/dist/collection/components/chart/options.js +572 -0
  88. package/dist/collection/components/chart/scale.js +193 -0
  89. package/dist/collection/components/chart/theme.js +133 -0
  90. package/dist/collection/components/checkbox/checkbox.js +1 -1
  91. package/dist/collection/components/chip/chip.js +1 -1
  92. package/dist/collection/components/chip-set/chip-set.js +66 -3
  93. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  94. package/dist/collection/components/code-diff/code-diff.js +1 -1
  95. package/dist/collection/components/code-editor/code-editor.js +1 -1
  96. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  97. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  98. package/dist/collection/components/color-picker/color-picker.js +1 -1
  99. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  100. package/dist/collection/components/dialog/dialog.js +2 -2
  101. package/dist/collection/components/dock/dock.js +2 -2
  102. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  103. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  104. package/dist/collection/components/file/file.js +1 -1
  105. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  106. package/dist/collection/components/file-input/file-input.js +1 -1
  107. package/dist/collection/components/flex-container/flex-container.js +1 -1
  108. package/dist/collection/components/form/form.js +1 -1
  109. package/dist/collection/components/form-header/form-header.js +1 -1
  110. package/dist/collection/components/grid/grid.js +1 -1
  111. package/dist/collection/components/header/header.js +1 -1
  112. package/dist/collection/components/help/help-content.js +1 -1
  113. package/dist/collection/components/help/help.js +2 -2
  114. package/dist/collection/components/helper-line/helper-line.js +2 -2
  115. package/dist/collection/components/hotkey/hotkey.js +1 -1
  116. package/dist/collection/components/icon/icon.js +1 -1
  117. package/dist/collection/components/icon-button/icon-button.js +1 -1
  118. package/dist/collection/components/info-tile/info-tile.js +2 -2
  119. package/dist/collection/components/input-field/input-field.css +13 -0
  120. package/dist/collection/components/input-field/input-field.js +86 -5
  121. package/dist/collection/components/list/list-renderer.js +1 -1
  122. package/dist/collection/components/list/list.js +22 -1
  123. package/dist/collection/components/list-item/list-item.js +2 -2
  124. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  125. package/dist/collection/components/markdown/markdown.js +1 -1
  126. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  127. package/dist/collection/components/menu/menu.js +1 -1
  128. package/dist/collection/components/menu-list/menu-list.js +1 -1
  129. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  130. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  131. package/dist/collection/components/pagination/pagination.js +1 -1
  132. package/dist/collection/components/picker/picker.css +112 -0
  133. package/dist/collection/components/picker/picker.js +49 -20
  134. package/dist/collection/components/popover/popover.js +3 -10
  135. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  136. package/dist/collection/components/portal/portal.js +1 -1
  137. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  138. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  139. package/dist/collection/components/resize-handle/resize-handle.js +1 -1
  140. package/dist/collection/components/scroller/scroller.js +3 -3
  141. package/dist/collection/components/select/select.js +1 -1
  142. package/dist/collection/components/shortcut/shortcut.js +1 -1
  143. package/dist/collection/components/side-panel/side-panel.js +1 -1
  144. package/dist/collection/components/slider/slider.js +3 -3
  145. package/dist/collection/components/snackbar/snackbar.js +2 -2
  146. package/dist/collection/components/spinner/spinner.js +1 -1
  147. package/dist/collection/components/split-button/split-button.js +2 -2
  148. package/dist/collection/components/switch/switch.js +1 -1
  149. package/dist/collection/components/tab-bar/tab-bar.js +1 -1
  150. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  151. package/dist/collection/components/table/table.js +2 -2
  152. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  153. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  154. package/dist/collection/components/text-editor/text-editor.js +1 -1
  155. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  156. package/dist/collection/components/tooltip/tooltip.js +2 -2
  157. package/dist/collection/translations/da.js +1 -0
  158. package/dist/collection/translations/de.js +1 -0
  159. package/dist/collection/translations/en.js +1 -0
  160. package/dist/collection/translations/fi.js +1 -0
  161. package/dist/collection/translations/fr.js +1 -0
  162. package/dist/collection/translations/nl.js +1 -0
  163. package/dist/collection/translations/no.js +1 -0
  164. package/dist/collection/translations/sv.js +1 -0
  165. package/dist/collection/util/controlled-element.js +22 -0
  166. package/dist/collection/util/live-message.js +30 -0
  167. package/dist/esm/controlled-element-ByOXsysp.js +24 -0
  168. package/dist/esm/{index-BN64nlbO.js → index-CofmbCdQ.js} +271 -71
  169. package/dist/esm/keyboard-navigation-BF7IKmnG.js +147 -0
  170. package/dist/esm/{keycodes-Bu6-QXrA.js → keycodes-DQ5DmW_Y.js} +1 -1
  171. package/dist/esm/lime-elements.js +1 -1
  172. package/dist/esm/limel-3d-hover-effect-glow.entry.js +1 -1
  173. package/dist/esm/limel-action-bar_3.entry.js +4 -4
  174. package/dist/esm/limel-ai-avatar.entry.js +2 -2
  175. package/dist/esm/{limel-breadcrumbs_6.entry.js → limel-badge_7.entry.js} +100 -15
  176. package/dist/esm/limel-banner.entry.js +1 -1
  177. package/dist/esm/limel-button-group.entry.js +1 -1
  178. package/dist/esm/limel-button.entry.js +2 -2
  179. package/dist/esm/limel-callout.entry.js +2 -2
  180. package/dist/esm/limel-card.entry.js +1 -1
  181. package/dist/esm/limel-chart.entry.js +51363 -271
  182. package/dist/esm/limel-checkbox.entry.js +1 -1
  183. package/dist/esm/limel-chip-set.entry.js +24 -5
  184. package/dist/esm/limel-chip_2.entry.js +3 -3
  185. package/dist/esm/limel-circular-progress.entry.js +1 -1
  186. package/dist/esm/limel-code-diff.entry.js +2 -2
  187. package/dist/esm/limel-code-editor.entry.js +2 -2
  188. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  189. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  190. package/dist/esm/limel-color-picker.entry.js +1 -1
  191. package/dist/esm/limel-dialog.entry.js +2 -2
  192. package/dist/esm/limel-dock.entry.js +3 -3
  193. package/dist/esm/limel-drag-handle_2.entry.js +4 -4
  194. package/dist/esm/limel-email-viewer.entry.js +2 -2
  195. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  196. package/dist/esm/limel-file-viewer.entry.js +2 -2
  197. package/dist/esm/limel-file.entry.js +2 -2
  198. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  199. package/dist/esm/limel-flex-container.entry.js +1 -1
  200. package/dist/esm/limel-form-header.entry.js +1 -1
  201. package/dist/esm/limel-form.entry.js +1 -1
  202. package/dist/esm/limel-grid.entry.js +1 -1
  203. package/dist/esm/limel-header.entry.js +1 -1
  204. package/dist/esm/limel-help_2.entry.js +3 -3
  205. package/dist/esm/limel-helper-line_3.entry.js +6 -5
  206. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  207. package/dist/esm/limel-icon-button.entry.js +1 -1
  208. package/dist/esm/limel-icon.entry.js +1 -1
  209. package/dist/esm/limel-info-tile.entry.js +2 -2
  210. package/dist/esm/limel-list-item.entry.js +3 -3
  211. package/dist/esm/limel-markdown.entry.js +4 -4
  212. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  213. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  214. package/dist/esm/limel-pagination-jump.entry.js +2 -2
  215. package/dist/esm/limel-pagination.entry.js +2 -2
  216. package/dist/esm/limel-picker.entry.js +52 -25
  217. package/dist/esm/limel-popover_2.entry.js +5 -12
  218. package/dist/esm/limel-profile-picture.entry.js +1 -1
  219. package/dist/esm/limel-prosemirror-adapter.entry.js +4 -4
  220. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  221. package/dist/esm/limel-radio-button.entry.js +2 -2
  222. package/dist/esm/limel-resize-handle.entry.js +3 -3
  223. package/dist/esm/limel-select.entry.js +3 -3
  224. package/dist/esm/limel-shortcut.entry.js +1 -1
  225. package/dist/esm/limel-side-panel.entry.js +3 -3
  226. package/dist/esm/limel-slider.entry.js +4 -4
  227. package/dist/esm/limel-snackbar.entry.js +3 -3
  228. package/dist/esm/limel-split-button.entry.js +2 -2
  229. package/dist/esm/limel-switch.entry.js +1 -1
  230. package/dist/esm/limel-tab-bar.entry.js +3 -146
  231. package/dist/esm/limel-tab-panel.entry.js +1 -1
  232. package/dist/esm/limel-table.entry.js +3 -3
  233. package/dist/esm/limel-text-editor-link-menu.entry.js +5 -5
  234. package/dist/esm/limel-text-editor.entry.js +1 -1
  235. package/dist/esm/live-message-BQAYeNiX.js +62 -0
  236. package/dist/esm/loader.js +1 -1
  237. package/dist/esm/{markdown-exporter-tb8ft8Gq.js → markdown-exporter-B2vFxSLw.js} +2 -2
  238. package/dist/esm/{markdown-parser-DFP65EFu.js → markdown-parser-Cw8iW5R9.js} +1 -1
  239. package/dist/esm/{translations-Drl5LNAD.js → translations-kct5Kybu.js} +8 -0
  240. package/dist/esm/{typeahead-DOlnT3wh.js → typeahead-B4PwrlM3.js} +1 -1
  241. package/dist/lime-elements/lime-elements.esm.js +1 -1
  242. package/dist/lime-elements/{p-a608ebe3.entry.js → p-0319f07f.entry.js} +1 -1
  243. package/dist/lime-elements/{p-300f80e7.entry.js → p-07f3565b.entry.js} +1 -1
  244. package/dist/lime-elements/{p-a7a84633.entry.js → p-1a7d1d2b.entry.js} +1 -1
  245. package/dist/lime-elements/{p-f8566c5b.entry.js → p-1d9bc526.entry.js} +1 -1
  246. package/dist/lime-elements/{p-e0ab0046.entry.js → p-1e0ced6a.entry.js} +1 -1
  247. package/dist/lime-elements/{p-dd383c12.entry.js → p-22e9e327.entry.js} +1 -1
  248. package/dist/lime-elements/{p-65eafc85.entry.js → p-23067836.entry.js} +1 -1
  249. package/dist/lime-elements/{p-5f2a34ed.entry.js → p-28957b5c.entry.js} +1 -1
  250. package/dist/lime-elements/{p-3ae5fb67.entry.js → p-39d1e157.entry.js} +1 -1
  251. package/dist/lime-elements/{p-d0908a85.entry.js → p-3ac39bd5.entry.js} +2 -2
  252. package/dist/lime-elements/{p-7f1a1ed5.entry.js → p-3f7fa772.entry.js} +1 -1
  253. package/dist/lime-elements/{p-b80433be.entry.js → p-40940a6c.entry.js} +1 -1
  254. package/dist/lime-elements/{p-7235d147.entry.js → p-438fe49b.entry.js} +1 -1
  255. package/dist/lime-elements/{p-0c314c3c.entry.js → p-47fe76a8.entry.js} +1 -1
  256. package/dist/lime-elements/{p-22c44279.entry.js → p-48a412ed.entry.js} +1 -1
  257. package/dist/lime-elements/{p-eb5a18ff.entry.js → p-496b2437.entry.js} +1 -1
  258. package/dist/lime-elements/{p-5d9a2877.entry.js → p-4c080cd9.entry.js} +1 -1
  259. package/dist/lime-elements/{p-be0a8125.entry.js → p-54537c85.entry.js} +1 -1
  260. package/dist/lime-elements/{p-2c29c27f.entry.js → p-55fa19ae.entry.js} +1 -1
  261. package/dist/lime-elements/{p-fad7a3fa.entry.js → p-56e2fa48.entry.js} +1 -1
  262. package/dist/lime-elements/{p-da4b4a81.entry.js → p-5dce791c.entry.js} +1 -1
  263. package/dist/lime-elements/{p-67acf39d.entry.js → p-5e408c27.entry.js} +1 -1
  264. package/dist/lime-elements/{p-b983531f.entry.js → p-6053608a.entry.js} +1 -1
  265. package/dist/lime-elements/{p-164e1ad0.entry.js → p-6ae093c8.entry.js} +1 -1
  266. package/dist/lime-elements/{p-29815107.entry.js → p-6d2d25b9.entry.js} +1 -1
  267. package/dist/lime-elements/{p-9e30d206.entry.js → p-6d9b89db.entry.js} +1 -1
  268. package/dist/lime-elements/{p-be2b8c1e.entry.js → p-6e9eeb0a.entry.js} +1 -1
  269. package/dist/lime-elements/{p-68129487.entry.js → p-764d2f86.entry.js} +1 -1
  270. package/dist/lime-elements/{p-49a53f0b.entry.js → p-7ab726c2.entry.js} +1 -1
  271. package/dist/lime-elements/{p-cced022b.entry.js → p-7b87e547.entry.js} +1 -1
  272. package/dist/lime-elements/{p-586ee40c.entry.js → p-7d0ffc60.entry.js} +1 -1
  273. package/dist/lime-elements/p-7fcd48c6.entry.js +1 -0
  274. package/dist/lime-elements/{p-7d27d572.entry.js → p-814b4934.entry.js} +1 -1
  275. package/dist/lime-elements/p-8514480b.entry.js +56 -0
  276. package/dist/lime-elements/p-8d602078.entry.js +1 -0
  277. package/dist/lime-elements/p-8fe28845.entry.js +1 -0
  278. package/dist/lime-elements/{p-f35880ef.entry.js → p-909466b8.entry.js} +1 -1
  279. package/dist/lime-elements/{p-545c087b.entry.js → p-933ffaa8.entry.js} +1 -1
  280. package/dist/lime-elements/{p-cc8d6198.entry.js → p-95a486c8.entry.js} +1 -1
  281. package/dist/lime-elements/{p-565c85ac.entry.js → p-9b2623fe.entry.js} +1 -1
  282. package/dist/lime-elements/{p-C0wwdPYT.js → p-Bd37Vplf.js} +2 -2
  283. package/dist/lime-elements/p-ByOXsysp.js +1 -0
  284. package/dist/lime-elements/{p-_UXAljNc.js → p-CbPYnlF-.js} +1 -1
  285. package/dist/lime-elements/{p-Bgn2bikC.js → p-CvHpvp0f.js} +1 -1
  286. package/dist/lime-elements/p-Cw7VQSGU.js +1 -0
  287. package/dist/lime-elements/{p-fYs7n6yY.js → p-DNYOwOWu.js} +1 -1
  288. package/dist/lime-elements/{p-Bu6-QXrA.js → p-DQ5DmW_Y.js} +1 -1
  289. package/dist/lime-elements/p-Dzp8dXTo.js +1 -0
  290. package/dist/lime-elements/p-_1yBt1pG.js +1 -0
  291. package/dist/lime-elements/{p-565e5ea7.entry.js → p-a6387dc7.entry.js} +1 -1
  292. package/dist/lime-elements/{p-40a48f70.entry.js → p-a6c6a31b.entry.js} +1 -1
  293. package/dist/lime-elements/{p-e8255f0b.entry.js → p-a7be03e1.entry.js} +1 -1
  294. package/dist/lime-elements/p-a807a45f.entry.js +159 -0
  295. package/dist/lime-elements/{p-707d4b28.entry.js → p-bffb5ed2.entry.js} +1 -1
  296. package/dist/lime-elements/{p-7035d93d.entry.js → p-c0ebf7cc.entry.js} +1 -1
  297. package/dist/lime-elements/{p-7aae3d13.entry.js → p-c2056ebc.entry.js} +1 -1
  298. package/dist/lime-elements/{p-19681a98.entry.js → p-c2f993cc.entry.js} +1 -1
  299. package/dist/lime-elements/{p-c73f4160.entry.js → p-c61e9b83.entry.js} +1 -1
  300. package/dist/lime-elements/{p-519603f5.entry.js → p-c6b3448c.entry.js} +1 -1
  301. package/dist/lime-elements/p-c8a34cef.entry.js +1 -0
  302. package/dist/lime-elements/p-cd479c23.entry.js +1 -0
  303. package/dist/lime-elements/{p-153e91e1.entry.js → p-ce71c5b9.entry.js} +1 -1
  304. package/dist/lime-elements/p-cf2d43c7.entry.js +1 -0
  305. package/dist/lime-elements/{p-2a375a65.entry.js → p-d35d2859.entry.js} +1 -1
  306. package/dist/lime-elements/{p-26347009.entry.js → p-d3f13124.entry.js} +1 -1
  307. package/dist/lime-elements/{p-a2dc6645.entry.js → p-d8559847.entry.js} +1 -1
  308. package/dist/lime-elements/{p-c8f09dd5.entry.js → p-db9cb7ef.entry.js} +1 -1
  309. package/dist/lime-elements/{p-05c1f5a0.entry.js → p-e5abe390.entry.js} +1 -1
  310. package/dist/lime-elements/p-f036ad27.entry.js +1 -0
  311. package/dist/lime-elements/{p-c1678d3a.entry.js → p-f3b93ce8.entry.js} +2 -2
  312. package/dist/lime-elements/{p-2f5face5.entry.js → p-f59447bf.entry.js} +1 -1
  313. package/dist/lime-elements/{p-a81f6962.entry.js → p-f5bb17eb.entry.js} +1 -1
  314. package/dist/types/components/chart/chart.d.ts +51 -52
  315. package/dist/types/components/chart/chart.types.d.ts +5 -0
  316. package/dist/types/components/chart/options.d.ts +88 -0
  317. package/dist/types/components/chart/scale.d.ts +101 -0
  318. package/dist/types/components/chart/theme.d.ts +52 -0
  319. package/dist/types/components/chip-set/chip-set.d.ts +15 -0
  320. package/dist/types/components/input-field/input-field.d.ts +13 -0
  321. package/dist/types/components/list/list-renderer-config.d.ts +1 -0
  322. package/dist/types/components/list/list.d.ts +6 -0
  323. package/dist/types/components/picker/picker.d.ts +12 -5
  324. package/dist/types/components/popover/popover.d.ts +0 -1
  325. package/dist/types/components.d.ts +53 -38
  326. package/dist/types/translations/da.d.ts +1 -0
  327. package/dist/types/translations/de.d.ts +1 -0
  328. package/dist/types/translations/en.d.ts +1 -0
  329. package/dist/types/translations/fi.d.ts +1 -0
  330. package/dist/types/translations/fr.d.ts +1 -0
  331. package/dist/types/translations/nl.d.ts +1 -0
  332. package/dist/types/translations/no.d.ts +1 -0
  333. package/dist/types/translations/sv.d.ts +1 -0
  334. package/dist/types/util/controlled-element.d.ts +11 -0
  335. package/dist/types/util/live-message.d.ts +17 -0
  336. package/package.json +3 -2
  337. package/dist/cjs/dom-BWMDM6En.js +0 -32
  338. package/dist/cjs/limel-badge.cjs.entry.js +0 -37
  339. package/dist/esm/dom-B9Ofc5RB.js +0 -30
  340. package/dist/esm/limel-badge.entry.js +0 -35
  341. package/dist/lime-elements/p-513d2a5e.entry.js +0 -1
  342. package/dist/lime-elements/p-55abec82.entry.js +0 -1
  343. package/dist/lime-elements/p-55f7c9f5.entry.js +0 -1
  344. package/dist/lime-elements/p-70272ea2.entry.js +0 -1
  345. package/dist/lime-elements/p-813cb15c.entry.js +0 -1
  346. package/dist/lime-elements/p-895a68c5.entry.js +0 -1
  347. package/dist/lime-elements/p-93a2d3b3.entry.js +0 -159
  348. package/dist/lime-elements/p-9bbf2612.entry.js +0 -1
  349. package/dist/lime-elements/p-B26k4gw8.js +0 -1
  350. package/dist/lime-elements/p-B9Ofc5RB.js +0 -1
  351. package/dist/lime-elements/p-ea11f365.entry.js +0 -1
  352. package/dist/lime-elements/p-fdc7da58.entry.js +0 -1
@@ -0,0 +1,572 @@
1
+ import { format } from "echarts/core";
2
+ import { formatValue, getAxisRange, getMaximumValue, getMinimumValue, getScatterRanges, getXValue, getYValue, getShare, getValueSpan, getWholeRange, isPartOfWhole, isRangeItem, } from "./scale";
3
+ const DOT_SIZE = 8;
4
+ const LINE_DOT_SIZE = 6;
5
+ const CONNECTOR_WIDTH = 2;
6
+ const DIMMED_OPACITY = 0.4;
7
+ const AREA_OPACITY = 0.4;
8
+ const PADDING = 8;
9
+ const PERCENT_DECIMALS = 2;
10
+ const NPS_MIN = -100;
11
+ const NPS_MAX = 100;
12
+ const NPS_START_ANGLE = 200;
13
+ const NPS_END_ANGLE = -20;
14
+ const NPS_THRESHOLDS = [0.5, 0.65, 0.85, 1];
15
+ const NPS_ARC_WIDTH = 16;
16
+ const ITEM_TEXT_MIN_WIDTH = 40;
17
+ const ITEM_TEXT_GAP = 4;
18
+ const ITEM_TEXT_LINE_HEIGHT = 14;
19
+ const emphasis = { focus: 'self' };
20
+ const blur = { itemStyle: { opacity: DIMMED_OPACITY } };
21
+ const hidden = { show: false };
22
+ /**
23
+ * Builds the ECharts option for the chart.
24
+ * @param settings - what to draw
25
+ * @param theme - the colors, sizes and font to draw it with
26
+ * @param itemSpace - the distance between two items on the axis, in pixels,
27
+ * when it is known from an earlier drawing
28
+ */
29
+ 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) });
39
+ }
40
+ /**
41
+ * The index of the item drawn at a position, if an item is drawn there.
42
+ * @param drawing - the drawing of the chart
43
+ * @param location - a position within the drawn series
44
+ */
45
+ export function getItemIndex(drawing, location) {
46
+ return drawing.itemsAreSeries ? location.seriesIndex : location.dataIndex;
47
+ }
48
+ /**
49
+ * Where an item is drawn, for highlighting it and showing its tooltip.
50
+ * @param drawing - the drawing of the chart
51
+ * @param index - the index of the item
52
+ */
53
+ export function locateItem(drawing, index) {
54
+ if (drawing.itemsAreSeries) {
55
+ return { seriesIndex: index, dataIndex: 0 };
56
+ }
57
+ return { seriesIndex: drawing.seriesIndex, dataIndex: index };
58
+ }
59
+ /**
60
+ * Shows the text of every item on the axis, cut short to the space of the
61
+ * item, so that no text runs into the next one. When the items are too close
62
+ * together for that, only some of the texts are shown, as many as fit.
63
+ * @param drawing - the drawing of the chart
64
+ * @param itemSpace - the distance between two items on the axis, in pixels
65
+ */
66
+ export function fitItemTexts(drawing, itemSpace) {
67
+ const axis = drawing.itemTextAxis;
68
+ return {
69
+ [axis]: [{ axisLabel: getItemTextLayout(axis, itemSpace) }],
70
+ };
71
+ }
72
+ function getItemTextLayout(axis, itemSpace) {
73
+ if (axis === 'yAxis') {
74
+ const fits = itemSpace >= ITEM_TEXT_LINE_HEIGHT;
75
+ return { interval: fits ? 0 : 'auto' };
76
+ }
77
+ if (itemSpace < ITEM_TEXT_MIN_WIDTH) {
78
+ return { interval: 'auto', overflow: 'none' };
79
+ }
80
+ return {
81
+ interval: 0,
82
+ width: itemSpace - ITEM_TEXT_GAP,
83
+ overflow: 'truncate',
84
+ ellipsis: '…',
85
+ };
86
+ }
87
+ /**
88
+ * The text of an item, with its share of the whole for charts of parts when
89
+ * `displayItemPercentage` is set.
90
+ * @param settings - what the chart draws
91
+ * @param index - the index of the item
92
+ */
93
+ export function getItemLabel(settings, index) {
94
+ const item = settings.items[index];
95
+ if (!settings.displayItemPercentage || !isPartOfWhole(settings.type)) {
96
+ return item.text;
97
+ }
98
+ const whole = getWholeRange(settings.items, settings.maxValue);
99
+ const share = getShare(item, whole).toFixed(PERCENT_DECIMALS);
100
+ return `${item.text} (${share}%)`;
101
+ }
102
+ /**
103
+ * The tooltip of an item, as HTML: its label and its value.
104
+ * @param settings - what the chart draws
105
+ * @param index - the index of the item
106
+ */
107
+ export function getTooltip(settings, index) {
108
+ const item = settings.items[index];
109
+ if (!item) {
110
+ return '';
111
+ }
112
+ return [getItemLabel(settings, index), formatValue(item, settings.type)]
113
+ .map((text) => format.encodeHTML(text))
114
+ .join('<br/>');
115
+ }
116
+ function drawSeries(settings, theme, itemSpace) {
117
+ switch (settings.type) {
118
+ case 'pie':
119
+ case 'doughnut': {
120
+ return drawPie(settings, theme);
121
+ }
122
+ case 'stacked-bar': {
123
+ return drawStackedBar(settings, theme);
124
+ }
125
+ case 'ring': {
126
+ return drawRing(settings, theme);
127
+ }
128
+ case 'scatter': {
129
+ return drawScatter(settings, theme);
130
+ }
131
+ case 'nps': {
132
+ return drawNps(settings, theme);
133
+ }
134
+ default: {
135
+ return drawOnAxes(settings, theme, itemSpace);
136
+ }
137
+ }
138
+ }
139
+ function drawOnAxes(settings, theme, itemSpace) {
140
+ const { items, orientation } = settings;
141
+ const range = getAxisRange(items, settings.maxValue, settings.axisIncrement);
142
+ const itemTextAxis = getItemTextAxis(settings);
143
+ const categoryAxis = Object.assign(Object.assign(Object.assign({}, getCategoryAxis(settings)), { axisLabel: Object.assign({ show: settings.displayItemText, color: theme.textColor }, (itemTextAxis &&
144
+ itemSpace &&
145
+ getItemTextLayout(itemTextAxis, itemSpace))), axisTick: hidden, axisLine: { lineStyle: { color: theme.axisLineColor } } }), getAxisName(settings, settings.itemsLabel, theme));
146
+ const valueAxis = getValueAxis(range, getAxisName(settings, settings.valuesLabel, theme), theme);
147
+ const { series, seriesIndex } = getAxisSeries(settings, theme);
148
+ const option = {
149
+ grid: getGrid(theme),
150
+ xAxis: orientation === 'landscape' ? categoryAxis : valueAxis,
151
+ yAxis: orientation === 'landscape' ? valueAxis : categoryAxis,
152
+ series: series,
153
+ };
154
+ return {
155
+ seriesIndex: seriesIndex,
156
+ itemsAreSeries: false,
157
+ itemTextAxis: itemTextAxis,
158
+ option: settings.type === 'bar' ? option : withColumns(option, settings),
159
+ };
160
+ }
161
+ function getCategoryAxis(settings) {
162
+ return {
163
+ type: 'category',
164
+ data: settings.items.map((item) => item.text),
165
+ inverse: settings.orientation === 'portrait',
166
+ };
167
+ }
168
+ function getItemTextAxis(settings) {
169
+ if (!settings.displayItemText || settings.items.length < 2) {
170
+ return;
171
+ }
172
+ return settings.orientation === 'landscape' ? 'xAxis' : 'yAxis';
173
+ }
174
+ // Dots and lines are small targets, so each item also gets an invisible
175
+ // column across the whole plot that shows its tooltip and takes its clicks.
176
+ // The columns have axes of their own, so they are not laid out next to the
177
+ // bars that draw ranges.
178
+ function withColumns(option, settings) {
179
+ const { items, orientation } = settings;
180
+ const categoryAxis = Object.assign(Object.assign({}, getCategoryAxis(settings)), { show: false });
181
+ const valueAxis = { type: 'value', min: 0, max: 1, show: false };
182
+ const columns = {
183
+ type: 'bar',
184
+ xAxisIndex: 1,
185
+ yAxisIndex: 1,
186
+ barWidth: '100%',
187
+ itemStyle: { color: 'transparent' },
188
+ data: items.map(() => 1),
189
+ cursor: getSeriesCursor(items),
190
+ emphasis: { disabled: true },
191
+ };
192
+ const landscape = orientation === 'landscape';
193
+ return Object.assign(Object.assign({}, option), { xAxis: [option.xAxis, landscape ? categoryAxis : valueAxis], yAxis: [option.yAxis, landscape ? valueAxis : categoryAxis], series: [...option.series, columns] });
194
+ }
195
+ function getAxisSeries(settings, theme) {
196
+ if (settings.type === 'line' || settings.type === 'area') {
197
+ return getLineSeries(settings, theme);
198
+ }
199
+ if (settings.type === 'dot') {
200
+ return getDotSeries(settings);
201
+ }
202
+ return getBarSeries(settings, theme);
203
+ }
204
+ function getBarSeries(settings, theme) {
205
+ const { items } = settings;
206
+ const bars = {
207
+ type: 'bar',
208
+ data: items.map((item) => ({
209
+ value: getValueSpan(item),
210
+ itemStyle: {
211
+ color: item.color,
212
+ borderRadius: theme.itemBorderRadius,
213
+ },
214
+ })),
215
+ label: getValueLabel(settings),
216
+ cursor: getSeriesCursor(items),
217
+ emphasis: emphasis,
218
+ blur: blur,
219
+ };
220
+ if (items.every((item) => !isRangeItem(item))) {
221
+ return { series: [bars], seriesIndex: 0 };
222
+ }
223
+ return {
224
+ series: [
225
+ Object.assign(Object.assign({ type: 'bar' }, rangeBase), { data: getRangeStarts(items) }),
226
+ Object.assign(Object.assign({}, bars), stacked),
227
+ ],
228
+ seriesIndex: 1,
229
+ };
230
+ }
231
+ function getDotSeries(settings) {
232
+ const { items, orientation } = settings;
233
+ const point = (index, value) => orientation === 'landscape' ? [index, value] : [value, index];
234
+ const ends = {
235
+ type: 'scatter',
236
+ symbolSize: DOT_SIZE,
237
+ data: items.map((item, index) => ({
238
+ value: point(index, getMaximumValue(item)),
239
+ itemStyle: { color: item.color },
240
+ })),
241
+ label: getValueLabel(settings),
242
+ cursor: getSeriesCursor(items),
243
+ emphasis: emphasis,
244
+ blur: blur,
245
+ };
246
+ if (items.every((item) => !isRangeItem(item))) {
247
+ return { series: [ends], seriesIndex: 0 };
248
+ }
249
+ const connectors = Object.assign(Object.assign({ type: 'bar' }, stacked), { silent: true, barWidth: CONNECTOR_WIDTH, data: items.map((item) => ({
250
+ value: isRangeItem(item) ? getValueSpan(item) : null,
251
+ itemStyle: { color: item.color },
252
+ })) });
253
+ const starts = {
254
+ type: 'scatter',
255
+ silent: true,
256
+ symbolSize: DOT_SIZE,
257
+ data: items.map((item, index) => ({
258
+ value: isRangeItem(item)
259
+ ? point(index, getMinimumValue(item))
260
+ : [null, null],
261
+ itemStyle: { color: item.color },
262
+ })),
263
+ };
264
+ return {
265
+ series: [
266
+ Object.assign(Object.assign({ type: 'bar' }, rangeBase), { data: getRangeStarts(items) }),
267
+ connectors,
268
+ starts,
269
+ ends,
270
+ ],
271
+ seriesIndex: 3,
272
+ };
273
+ }
274
+ function getLineSeries(settings, theme) {
275
+ const { items } = settings;
276
+ const color = theme.lineColor;
277
+ const area = settings.type === 'area';
278
+ const line = {
279
+ type: 'line',
280
+ color: color,
281
+ symbol: 'circle',
282
+ symbolSize: LINE_DOT_SIZE,
283
+ data: items.map((item) => ({
284
+ value: getValueSpan(item),
285
+ itemStyle: { color: item.color },
286
+ })),
287
+ areaStyle: area ? { color: color, opacity: AREA_OPACITY } : undefined,
288
+ label: getValueLabel(settings),
289
+ cursor: getSeriesCursor(items),
290
+ emphasis: emphasis,
291
+ blur: blur,
292
+ };
293
+ if (items.every((item) => !isRangeItem(item))) {
294
+ return { series: [line], seriesIndex: 0 };
295
+ }
296
+ const base = Object.assign(Object.assign({ type: 'line' }, rangeBase), { symbol: 'none', color: color, lineStyle: { opacity: area ? 0 : 1 }, data: getRangeStarts(items) });
297
+ return { series: [base, Object.assign(Object.assign({}, line), stacked)], seriesIndex: 1 };
298
+ }
299
+ const stacked = { stack: 'range', stackStrategy: 'all' };
300
+ // A range is drawn as a stack of an invisible part from zero to its start,
301
+ // and a visible part from its start to its end. Items that are not ranges
302
+ // start at zero.
303
+ const rangeBase = Object.assign(Object.assign({}, stacked), { silent: true, tooltip: hidden, emphasis: { disabled: true }, itemStyle: { color: 'transparent' } });
304
+ function getRangeStarts(items) {
305
+ return items.map((item) => (isRangeItem(item) ? getMinimumValue(item) : 0));
306
+ }
307
+ function drawScatter(settings, theme) {
308
+ const { items } = settings;
309
+ const ranges = getScatterRanges(items);
310
+ const landscape = settings.orientation === 'landscape';
311
+ const firstAxis = getValueAxis(ranges.x, getAxisName(settings, settings.itemsLabel, theme), theme);
312
+ const secondAxis = getValueAxis(ranges.y, getAxisName(settings, settings.valuesLabel, theme), theme);
313
+ const scatter = {
314
+ type: 'scatter',
315
+ symbolSize: theme.scatterItemSize,
316
+ data: items.map((item) => {
317
+ const first = getXValue(item);
318
+ const second = getYValue(item);
319
+ return {
320
+ value: landscape ? [first, second] : [second, first],
321
+ itemStyle: { color: item.color },
322
+ };
323
+ }),
324
+ label: {
325
+ show: settings.displayItemText || settings.displayItemValue,
326
+ position: 'top',
327
+ formatter: ({ dataIndex }) => getPointLabel(settings, items[dataIndex]),
328
+ },
329
+ cursor: getSeriesCursor(items),
330
+ emphasis: emphasis,
331
+ blur: blur,
332
+ };
333
+ return {
334
+ seriesIndex: 0,
335
+ itemsAreSeries: false,
336
+ option: {
337
+ grid: getGrid(theme),
338
+ xAxis: landscape ? firstAxis : secondAxis,
339
+ yAxis: landscape ? secondAxis : Object.assign(Object.assign({}, firstAxis), { inverse: true }),
340
+ series: [scatter],
341
+ },
342
+ };
343
+ }
344
+ function drawPie(settings, theme) {
345
+ const { items } = settings;
346
+ const whole = getWholeRange(items, settings.maxValue).totalRange;
347
+ const sum = items.reduce((total, item) => total + getValueSpan(item), 0);
348
+ const data = items.map((item) => ({
349
+ value: getValueSpan(item),
350
+ name: item.text,
351
+ itemStyle: { color: item.color },
352
+ }));
353
+ if (whole > sum) {
354
+ data.push({
355
+ value: whole - sum,
356
+ itemStyle: { color: theme.backgroundColor },
357
+ emphasis: { disabled: true },
358
+ });
359
+ }
360
+ const innerRadius = settings.type === 'doughnut' ? '50%' : 0;
361
+ return {
362
+ seriesIndex: 0,
363
+ itemsAreSeries: false,
364
+ option: {
365
+ series: [
366
+ {
367
+ type: 'pie',
368
+ radius: [innerRadius, '90%'],
369
+ startAngle: 90,
370
+ label: hidden,
371
+ labelLine: hidden,
372
+ itemStyle: {
373
+ borderColor: theme.dividerColor,
374
+ borderWidth: 1,
375
+ },
376
+ data: data,
377
+ cursor: getSeriesCursor(items),
378
+ emphasis: Object.assign(Object.assign({}, emphasis), { scale: false }),
379
+ blur: blur,
380
+ },
381
+ ],
382
+ },
383
+ };
384
+ }
385
+ function drawStackedBar(settings, theme) {
386
+ const { items } = settings;
387
+ const whole = getWholeRange(items, settings.maxValue).totalRange;
388
+ const valueAxis = {
389
+ type: 'value',
390
+ min: 0,
391
+ max: whole,
392
+ show: false,
393
+ };
394
+ const categoryAxis = { type: 'category', data: [''], show: false };
395
+ const landscape = settings.orientation === 'landscape';
396
+ return {
397
+ seriesIndex: 0,
398
+ itemsAreSeries: true,
399
+ option: {
400
+ backgroundColor: theme.backgroundColor,
401
+ grid: { left: 0, right: 0, top: 0, bottom: 0 },
402
+ xAxis: landscape ? valueAxis : categoryAxis,
403
+ yAxis: landscape ? categoryAxis : valueAxis,
404
+ series: items.map((item) => ({
405
+ type: 'bar',
406
+ stack: 'whole',
407
+ barWidth: '100%',
408
+ cursor: getCursor(item.clickable),
409
+ data: [getValueSpan(item)],
410
+ itemStyle: {
411
+ color: item.color,
412
+ borderRadius: theme.itemBorderRadius,
413
+ borderColor: theme.dividerColor,
414
+ borderWidth: 1,
415
+ },
416
+ emphasis: emphasis,
417
+ blur: blur,
418
+ })),
419
+ },
420
+ };
421
+ }
422
+ function drawRing(settings, theme) {
423
+ const { items } = settings;
424
+ const whole = getWholeRange(items, settings.maxValue).totalRange;
425
+ return {
426
+ seriesIndex: 0,
427
+ itemsAreSeries: false,
428
+ option: {
429
+ polar: { radius: ['20%', '90%'] },
430
+ angleAxis: {
431
+ type: 'value',
432
+ max: whole,
433
+ startAngle: 90,
434
+ show: false,
435
+ },
436
+ radiusAxis: {
437
+ type: 'category',
438
+ data: items.map((item) => item.text),
439
+ inverse: true,
440
+ show: false,
441
+ },
442
+ series: [
443
+ {
444
+ type: 'bar',
445
+ coordinateSystem: 'polar',
446
+ showBackground: true,
447
+ backgroundStyle: { color: theme.backgroundColor },
448
+ data: items.map((item) => ({
449
+ value: getValueSpan(item),
450
+ itemStyle: { color: item.color },
451
+ })),
452
+ cursor: getSeriesCursor(items),
453
+ emphasis: emphasis,
454
+ blur: blur,
455
+ },
456
+ ],
457
+ },
458
+ };
459
+ }
460
+ function drawNps(settings, theme) {
461
+ const { items } = settings;
462
+ return {
463
+ seriesIndex: 0,
464
+ itemsAreSeries: false,
465
+ option: {
466
+ series: [
467
+ {
468
+ type: 'gauge',
469
+ min: NPS_MIN,
470
+ max: NPS_MAX,
471
+ startAngle: NPS_START_ANGLE,
472
+ endAngle: NPS_END_ANGLE,
473
+ radius: '90%',
474
+ axisLine: {
475
+ lineStyle: {
476
+ width: NPS_ARC_WIDTH,
477
+ color: NPS_THRESHOLDS.map((threshold, index) => [
478
+ threshold,
479
+ theme.npsColors[index],
480
+ ]),
481
+ },
482
+ },
483
+ splitLine: hidden,
484
+ axisTick: hidden,
485
+ axisLabel: hidden,
486
+ pointer: { width: 6, length: '70%' },
487
+ anchor: {
488
+ show: true,
489
+ size: 12,
490
+ itemStyle: { color: theme.textColor },
491
+ },
492
+ title: hidden,
493
+ detail: hidden,
494
+ data: items.map((item) => ({
495
+ value: getMaximumValue(item),
496
+ name: item.text,
497
+ itemStyle: { color: item.color },
498
+ })),
499
+ cursor: getSeriesCursor(items),
500
+ emphasis: emphasis,
501
+ blur: blur,
502
+ },
503
+ {
504
+ type: 'pie',
505
+ z: 1,
506
+ silent: true,
507
+ radius: [0, '90%'],
508
+ startAngle: NPS_START_ANGLE,
509
+ endAngle: NPS_END_ANGLE,
510
+ label: hidden,
511
+ labelLine: hidden,
512
+ tooltip: hidden,
513
+ data: [
514
+ {
515
+ value: 1,
516
+ itemStyle: { color: theme.backgroundColor },
517
+ },
518
+ ],
519
+ },
520
+ ],
521
+ },
522
+ };
523
+ }
524
+ function getGrid(theme) {
525
+ return {
526
+ left: PADDING,
527
+ right: PADDING,
528
+ top: PADDING,
529
+ bottom: PADDING,
530
+ outerBoundsMode: 'same',
531
+ outerBoundsContain: 'all',
532
+ show: true,
533
+ backgroundColor: theme.backgroundColor,
534
+ borderWidth: 0,
535
+ };
536
+ }
537
+ function getValueAxis(range, name, theme) {
538
+ return Object.assign({ type: 'value', min: range.minValue, max: range.maxValue, interval: range.increment, axisLabel: { show: true, color: theme.textColor }, axisLine: { lineStyle: { color: theme.axisLineColor } }, splitLine: { lineStyle: { color: theme.axisLineColor } } }, name);
539
+ }
540
+ function getAxisName(settings, name, theme) {
541
+ if (!settings.displayAxisLabels) {
542
+ return {};
543
+ }
544
+ return {
545
+ name: name,
546
+ nameLocation: 'middle',
547
+ nameTextStyle: { color: theme.textColor },
548
+ };
549
+ }
550
+ function getValueLabel(settings) {
551
+ return {
552
+ show: settings.displayItemValue,
553
+ position: settings.orientation === 'landscape' ? 'top' : 'right',
554
+ formatter: ({ dataIndex }) => formatValue(settings.items[dataIndex], settings.type),
555
+ };
556
+ }
557
+ function getPointLabel(settings, item) {
558
+ const parts = [];
559
+ if (settings.displayItemText) {
560
+ parts.push(item.text);
561
+ }
562
+ if (settings.displayItemValue) {
563
+ parts.push(formatValue(item, settings.type));
564
+ }
565
+ return parts.join(' ');
566
+ }
567
+ function getSeriesCursor(items) {
568
+ return getCursor(items.some((item) => item.clickable));
569
+ }
570
+ function getCursor(clickable) {
571
+ return clickable ? 'pointer' : 'default';
572
+ }