@luzmo/dashboard-contents-types 1.0.40 → 1.0.41

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 (289) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/area-chart/area-chart-options.config.cjs +1 -1
  3. package/area-chart/area-chart-options.config.cjs.map +1 -1
  4. package/area-chart/area-chart-options.config.js +32 -67
  5. package/area-chart/area-chart-options.config.js.map +1 -1
  6. package/area-chart/i18n/area-chart-options.de.cjs +1 -1
  7. package/area-chart/i18n/area-chart-options.de.cjs.map +1 -1
  8. package/area-chart/i18n/area-chart-options.de.js +2 -0
  9. package/area-chart/i18n/area-chart-options.de.js.map +1 -1
  10. package/area-chart/i18n/area-chart-options.en.cjs +1 -1
  11. package/area-chart/i18n/area-chart-options.en.cjs.map +1 -1
  12. package/area-chart/i18n/area-chart-options.en.js +2 -0
  13. package/area-chart/i18n/area-chart-options.en.js.map +1 -1
  14. package/area-chart/i18n/area-chart-options.es.cjs +1 -1
  15. package/area-chart/i18n/area-chart-options.es.cjs.map +1 -1
  16. package/area-chart/i18n/area-chart-options.es.js +2 -0
  17. package/area-chart/i18n/area-chart-options.es.js.map +1 -1
  18. package/area-chart/i18n/area-chart-options.fr.cjs +1 -1
  19. package/area-chart/i18n/area-chart-options.fr.cjs.map +1 -1
  20. package/area-chart/i18n/area-chart-options.fr.js +2 -0
  21. package/area-chart/i18n/area-chart-options.fr.js.map +1 -1
  22. package/area-chart/i18n/area-chart-options.nl.cjs +1 -1
  23. package/area-chart/i18n/area-chart-options.nl.cjs.map +1 -1
  24. package/area-chart/i18n/area-chart-options.nl.js +2 -0
  25. package/area-chart/i18n/area-chart-options.nl.js.map +1 -1
  26. package/bar-chart/bar-chart-options.config.cjs +1 -1
  27. package/bar-chart/bar-chart-options.config.cjs.map +1 -1
  28. package/bar-chart/bar-chart-options.config.js +32 -75
  29. package/bar-chart/bar-chart-options.config.js.map +1 -1
  30. package/bar-chart/i18n/bar-chart-options.de.cjs +1 -1
  31. package/bar-chart/i18n/bar-chart-options.de.cjs.map +1 -1
  32. package/bar-chart/i18n/bar-chart-options.de.js +6 -6
  33. package/bar-chart/i18n/bar-chart-options.de.js.map +1 -1
  34. package/bar-chart/i18n/bar-chart-options.en.cjs +1 -1
  35. package/bar-chart/i18n/bar-chart-options.en.cjs.map +1 -1
  36. package/bar-chart/i18n/bar-chart-options.en.js +6 -6
  37. package/bar-chart/i18n/bar-chart-options.en.js.map +1 -1
  38. package/bar-chart/i18n/bar-chart-options.es.cjs +1 -1
  39. package/bar-chart/i18n/bar-chart-options.es.cjs.map +1 -1
  40. package/bar-chart/i18n/bar-chart-options.es.js +6 -6
  41. package/bar-chart/i18n/bar-chart-options.es.js.map +1 -1
  42. package/bar-chart/i18n/bar-chart-options.fr.cjs +1 -1
  43. package/bar-chart/i18n/bar-chart-options.fr.cjs.map +1 -1
  44. package/bar-chart/i18n/bar-chart-options.fr.js +6 -6
  45. package/bar-chart/i18n/bar-chart-options.fr.js.map +1 -1
  46. package/bar-chart/i18n/bar-chart-options.nl.cjs +1 -1
  47. package/bar-chart/i18n/bar-chart-options.nl.cjs.map +1 -1
  48. package/bar-chart/i18n/bar-chart-options.nl.js +6 -6
  49. package/bar-chart/i18n/bar-chart-options.nl.js.map +1 -1
  50. package/box-plot/box-plot-options.config.cjs +1 -1
  51. package/box-plot/box-plot-options.config.cjs.map +1 -1
  52. package/box-plot/box-plot-options.config.js +49 -78
  53. package/box-plot/box-plot-options.config.js.map +1 -1
  54. package/column-chart/column-chart-options.config.cjs +1 -1
  55. package/column-chart/column-chart-options.config.cjs.map +1 -1
  56. package/column-chart/column-chart-options.config.js +32 -75
  57. package/column-chart/column-chart-options.config.js.map +1 -1
  58. package/column-chart/i18n/column-chart-options.de.cjs +1 -1
  59. package/column-chart/i18n/column-chart-options.de.cjs.map +1 -1
  60. package/column-chart/i18n/column-chart-options.de.js +6 -6
  61. package/column-chart/i18n/column-chart-options.de.js.map +1 -1
  62. package/column-chart/i18n/column-chart-options.en.cjs +1 -1
  63. package/column-chart/i18n/column-chart-options.en.cjs.map +1 -1
  64. package/column-chart/i18n/column-chart-options.en.js +6 -6
  65. package/column-chart/i18n/column-chart-options.en.js.map +1 -1
  66. package/column-chart/i18n/column-chart-options.es.cjs +1 -1
  67. package/column-chart/i18n/column-chart-options.es.cjs.map +1 -1
  68. package/column-chart/i18n/column-chart-options.es.js +6 -6
  69. package/column-chart/i18n/column-chart-options.es.js.map +1 -1
  70. package/column-chart/i18n/column-chart-options.fr.cjs +1 -1
  71. package/column-chart/i18n/column-chart-options.fr.cjs.map +1 -1
  72. package/column-chart/i18n/column-chart-options.fr.js +6 -6
  73. package/column-chart/i18n/column-chart-options.fr.js.map +1 -1
  74. package/column-chart/i18n/column-chart-options.nl.cjs +1 -1
  75. package/column-chart/i18n/column-chart-options.nl.cjs.map +1 -1
  76. package/column-chart/i18n/column-chart-options.nl.js +6 -6
  77. package/column-chart/i18n/column-chart-options.nl.js.map +1 -1
  78. package/combination-chart/combination-chart-options.config.cjs +1 -1
  79. package/combination-chart/combination-chart-options.config.cjs.map +1 -1
  80. package/combination-chart/combination-chart-options.config.js +44 -62
  81. package/combination-chart/combination-chart-options.config.js.map +1 -1
  82. package/combination-chart/i18n/combination-chart-options.de.cjs +1 -1
  83. package/combination-chart/i18n/combination-chart-options.de.cjs.map +1 -1
  84. package/combination-chart/i18n/combination-chart-options.de.js +2 -0
  85. package/combination-chart/i18n/combination-chart-options.de.js.map +1 -1
  86. package/combination-chart/i18n/combination-chart-options.en.cjs +1 -1
  87. package/combination-chart/i18n/combination-chart-options.en.cjs.map +1 -1
  88. package/combination-chart/i18n/combination-chart-options.en.js +2 -0
  89. package/combination-chart/i18n/combination-chart-options.en.js.map +1 -1
  90. package/combination-chart/i18n/combination-chart-options.es.cjs +1 -1
  91. package/combination-chart/i18n/combination-chart-options.es.cjs.map +1 -1
  92. package/combination-chart/i18n/combination-chart-options.es.js +2 -0
  93. package/combination-chart/i18n/combination-chart-options.es.js.map +1 -1
  94. package/combination-chart/i18n/combination-chart-options.fr.cjs +1 -1
  95. package/combination-chart/i18n/combination-chart-options.fr.cjs.map +1 -1
  96. package/combination-chart/i18n/combination-chart-options.fr.js +2 -0
  97. package/combination-chart/i18n/combination-chart-options.fr.js.map +1 -1
  98. package/combination-chart/i18n/combination-chart-options.nl.cjs +1 -1
  99. package/combination-chart/i18n/combination-chart-options.nl.cjs.map +1 -1
  100. package/combination-chart/i18n/combination-chart-options.nl.js +2 -0
  101. package/combination-chart/i18n/combination-chart-options.nl.js.map +1 -1
  102. package/heat-table/heat-table-options.config.cjs +1 -1
  103. package/heat-table/heat-table-options.config.cjs.map +1 -1
  104. package/heat-table/heat-table-options.config.js +56 -163
  105. package/heat-table/heat-table-options.config.js.map +1 -1
  106. package/index.cjs +1 -1
  107. package/index.js +193 -191
  108. package/line-chart/i18n/line-chart-options.de.cjs +1 -1
  109. package/line-chart/i18n/line-chart-options.de.cjs.map +1 -1
  110. package/line-chart/i18n/line-chart-options.de.js +2 -0
  111. package/line-chart/i18n/line-chart-options.de.js.map +1 -1
  112. package/line-chart/i18n/line-chart-options.en.cjs +1 -1
  113. package/line-chart/i18n/line-chart-options.en.cjs.map +1 -1
  114. package/line-chart/i18n/line-chart-options.en.js +2 -0
  115. package/line-chart/i18n/line-chart-options.en.js.map +1 -1
  116. package/line-chart/i18n/line-chart-options.es.cjs +1 -1
  117. package/line-chart/i18n/line-chart-options.es.cjs.map +1 -1
  118. package/line-chart/i18n/line-chart-options.es.js +2 -0
  119. package/line-chart/i18n/line-chart-options.es.js.map +1 -1
  120. package/line-chart/i18n/line-chart-options.fr.cjs +1 -1
  121. package/line-chart/i18n/line-chart-options.fr.cjs.map +1 -1
  122. package/line-chart/i18n/line-chart-options.fr.js +2 -0
  123. package/line-chart/i18n/line-chart-options.fr.js.map +1 -1
  124. package/line-chart/i18n/line-chart-options.nl.cjs +1 -1
  125. package/line-chart/i18n/line-chart-options.nl.cjs.map +1 -1
  126. package/line-chart/i18n/line-chart-options.nl.js +2 -0
  127. package/line-chart/i18n/line-chart-options.nl.js.map +1 -1
  128. package/line-chart/line-chart-options.config.cjs +1 -1
  129. package/line-chart/line-chart-options.config.cjs.map +1 -1
  130. package/line-chart/line-chart-options.config.js +47 -65
  131. package/line-chart/line-chart-options.config.js.map +1 -1
  132. package/ohlc-chart/i18n/ohlc-chart-options.de.cjs +1 -1
  133. package/ohlc-chart/i18n/ohlc-chart-options.de.cjs.map +1 -1
  134. package/ohlc-chart/i18n/ohlc-chart-options.de.js +2 -0
  135. package/ohlc-chart/i18n/ohlc-chart-options.de.js.map +1 -1
  136. package/ohlc-chart/i18n/ohlc-chart-options.en.cjs +1 -1
  137. package/ohlc-chart/i18n/ohlc-chart-options.en.cjs.map +1 -1
  138. package/ohlc-chart/i18n/ohlc-chart-options.en.js +2 -0
  139. package/ohlc-chart/i18n/ohlc-chart-options.en.js.map +1 -1
  140. package/ohlc-chart/i18n/ohlc-chart-options.es.cjs +1 -1
  141. package/ohlc-chart/i18n/ohlc-chart-options.es.cjs.map +1 -1
  142. package/ohlc-chart/i18n/ohlc-chart-options.es.js +2 -0
  143. package/ohlc-chart/i18n/ohlc-chart-options.es.js.map +1 -1
  144. package/ohlc-chart/i18n/ohlc-chart-options.fr.cjs +1 -1
  145. package/ohlc-chart/i18n/ohlc-chart-options.fr.cjs.map +1 -1
  146. package/ohlc-chart/i18n/ohlc-chart-options.fr.js +2 -0
  147. package/ohlc-chart/i18n/ohlc-chart-options.fr.js.map +1 -1
  148. package/ohlc-chart/i18n/ohlc-chart-options.nl.cjs +1 -1
  149. package/ohlc-chart/i18n/ohlc-chart-options.nl.cjs.map +1 -1
  150. package/ohlc-chart/i18n/ohlc-chart-options.nl.js +2 -0
  151. package/ohlc-chart/i18n/ohlc-chart-options.nl.js.map +1 -1
  152. package/ohlc-chart/ohlc-chart-options.config.cjs +1 -1
  153. package/ohlc-chart/ohlc-chart-options.config.cjs.map +1 -1
  154. package/ohlc-chart/ohlc-chart-options.config.js +61 -98
  155. package/ohlc-chart/ohlc-chart-options.config.js.map +1 -1
  156. package/package.json +1 -1
  157. package/pyramid-chart/pyramid-chart-options.config.cjs +1 -1
  158. package/pyramid-chart/pyramid-chart-options.config.cjs.map +1 -1
  159. package/pyramid-chart/pyramid-chart-options.config.js +16 -60
  160. package/pyramid-chart/pyramid-chart-options.config.js.map +1 -1
  161. package/scatter-plot/i18n/scatter-plot-options.de.cjs +1 -1
  162. package/scatter-plot/i18n/scatter-plot-options.de.cjs.map +1 -1
  163. package/scatter-plot/i18n/scatter-plot-options.de.js +3 -0
  164. package/scatter-plot/i18n/scatter-plot-options.de.js.map +1 -1
  165. package/scatter-plot/i18n/scatter-plot-options.en.cjs +1 -1
  166. package/scatter-plot/i18n/scatter-plot-options.en.cjs.map +1 -1
  167. package/scatter-plot/i18n/scatter-plot-options.en.js +3 -0
  168. package/scatter-plot/i18n/scatter-plot-options.en.js.map +1 -1
  169. package/scatter-plot/i18n/scatter-plot-options.es.cjs +1 -1
  170. package/scatter-plot/i18n/scatter-plot-options.es.cjs.map +1 -1
  171. package/scatter-plot/i18n/scatter-plot-options.es.js +3 -0
  172. package/scatter-plot/i18n/scatter-plot-options.es.js.map +1 -1
  173. package/scatter-plot/i18n/scatter-plot-options.fr.cjs +1 -1
  174. package/scatter-plot/i18n/scatter-plot-options.fr.cjs.map +1 -1
  175. package/scatter-plot/i18n/scatter-plot-options.fr.js +3 -0
  176. package/scatter-plot/i18n/scatter-plot-options.fr.js.map +1 -1
  177. package/scatter-plot/i18n/scatter-plot-options.nl.cjs +1 -1
  178. package/scatter-plot/i18n/scatter-plot-options.nl.cjs.map +1 -1
  179. package/scatter-plot/i18n/scatter-plot-options.nl.js +3 -0
  180. package/scatter-plot/i18n/scatter-plot-options.nl.js.map +1 -1
  181. package/scatter-plot/scatter-plot-options.config.cjs +1 -1
  182. package/scatter-plot/scatter-plot-options.config.cjs.map +1 -1
  183. package/scatter-plot/scatter-plot-options.config.js +30 -226
  184. package/scatter-plot/scatter-plot-options.config.js.map +1 -1
  185. package/shared/utils/axis-options.config.cjs +2 -0
  186. package/shared/utils/axis-options.config.cjs.map +1 -0
  187. package/shared/utils/axis-options.config.js +253 -0
  188. package/shared/utils/axis-options.config.js.map +1 -0
  189. package/shared/utils/axis-options.i18n.cjs +2 -0
  190. package/shared/utils/axis-options.i18n.cjs.map +1 -0
  191. package/shared/utils/axis-options.i18n.js +469 -0
  192. package/shared/utils/axis-options.i18n.js.map +1 -0
  193. package/shared/utils/guidelines-options.config.cjs +2 -0
  194. package/shared/utils/guidelines-options.config.cjs.map +1 -0
  195. package/shared/utils/guidelines-options.config.js +31 -0
  196. package/shared/utils/guidelines-options.config.js.map +1 -0
  197. package/shared/utils/options-loader.cjs +1 -1
  198. package/shared/utils/options-loader.cjs.map +1 -1
  199. package/shared/utils/options-loader.js +15 -1
  200. package/shared/utils/options-loader.js.map +1 -1
  201. package/src/lib/area-chart/area-chart-options.config.d.ts.map +1 -1
  202. package/src/lib/area-chart/i18n/area-chart-options.de.d.ts +6 -0
  203. package/src/lib/area-chart/i18n/area-chart-options.de.d.ts.map +1 -1
  204. package/src/lib/area-chart/i18n/area-chart-options.en.d.ts +6 -0
  205. package/src/lib/area-chart/i18n/area-chart-options.en.d.ts.map +1 -1
  206. package/src/lib/area-chart/i18n/area-chart-options.es.d.ts +6 -0
  207. package/src/lib/area-chart/i18n/area-chart-options.es.d.ts.map +1 -1
  208. package/src/lib/area-chart/i18n/area-chart-options.fr.d.ts +6 -0
  209. package/src/lib/area-chart/i18n/area-chart-options.fr.d.ts.map +1 -1
  210. package/src/lib/area-chart/i18n/area-chart-options.nl.d.ts +6 -0
  211. package/src/lib/area-chart/i18n/area-chart-options.nl.d.ts.map +1 -1
  212. package/src/lib/bar-chart/bar-chart-options.config.d.ts.map +1 -1
  213. package/src/lib/bar-chart/i18n/bar-chart-options.de.d.ts +3 -1
  214. package/src/lib/bar-chart/i18n/bar-chart-options.de.d.ts.map +1 -1
  215. package/src/lib/bar-chart/i18n/bar-chart-options.en.d.ts +3 -1
  216. package/src/lib/bar-chart/i18n/bar-chart-options.en.d.ts.map +1 -1
  217. package/src/lib/bar-chart/i18n/bar-chart-options.es.d.ts +3 -1
  218. package/src/lib/bar-chart/i18n/bar-chart-options.es.d.ts.map +1 -1
  219. package/src/lib/bar-chart/i18n/bar-chart-options.fr.d.ts +3 -1
  220. package/src/lib/bar-chart/i18n/bar-chart-options.fr.d.ts.map +1 -1
  221. package/src/lib/bar-chart/i18n/bar-chart-options.nl.d.ts +3 -1
  222. package/src/lib/bar-chart/i18n/bar-chart-options.nl.d.ts.map +1 -1
  223. package/src/lib/box-plot/box-plot-options.config.d.ts.map +1 -1
  224. package/src/lib/column-chart/column-chart-options.config.d.ts.map +1 -1
  225. package/src/lib/column-chart/i18n/column-chart-options.de.d.ts +3 -1
  226. package/src/lib/column-chart/i18n/column-chart-options.de.d.ts.map +1 -1
  227. package/src/lib/column-chart/i18n/column-chart-options.en.d.ts +3 -1
  228. package/src/lib/column-chart/i18n/column-chart-options.en.d.ts.map +1 -1
  229. package/src/lib/column-chart/i18n/column-chart-options.es.d.ts +3 -1
  230. package/src/lib/column-chart/i18n/column-chart-options.es.d.ts.map +1 -1
  231. package/src/lib/column-chart/i18n/column-chart-options.fr.d.ts +3 -1
  232. package/src/lib/column-chart/i18n/column-chart-options.fr.d.ts.map +1 -1
  233. package/src/lib/column-chart/i18n/column-chart-options.nl.d.ts +3 -1
  234. package/src/lib/column-chart/i18n/column-chart-options.nl.d.ts.map +1 -1
  235. package/src/lib/combination-chart/combination-chart-options.config.d.ts.map +1 -1
  236. package/src/lib/combination-chart/i18n/combination-chart-options.de.d.ts +6 -0
  237. package/src/lib/combination-chart/i18n/combination-chart-options.de.d.ts.map +1 -1
  238. package/src/lib/combination-chart/i18n/combination-chart-options.en.d.ts +6 -0
  239. package/src/lib/combination-chart/i18n/combination-chart-options.en.d.ts.map +1 -1
  240. package/src/lib/combination-chart/i18n/combination-chart-options.es.d.ts +6 -0
  241. package/src/lib/combination-chart/i18n/combination-chart-options.es.d.ts.map +1 -1
  242. package/src/lib/combination-chart/i18n/combination-chart-options.fr.d.ts +6 -0
  243. package/src/lib/combination-chart/i18n/combination-chart-options.fr.d.ts.map +1 -1
  244. package/src/lib/combination-chart/i18n/combination-chart-options.nl.d.ts +6 -0
  245. package/src/lib/combination-chart/i18n/combination-chart-options.nl.d.ts.map +1 -1
  246. package/src/lib/heat-table/heat-table-options.config.d.ts.map +1 -1
  247. package/src/lib/line-chart/i18n/line-chart-options.de.d.ts +6 -0
  248. package/src/lib/line-chart/i18n/line-chart-options.de.d.ts.map +1 -1
  249. package/src/lib/line-chart/i18n/line-chart-options.en.d.ts +6 -0
  250. package/src/lib/line-chart/i18n/line-chart-options.en.d.ts.map +1 -1
  251. package/src/lib/line-chart/i18n/line-chart-options.es.d.ts +6 -0
  252. package/src/lib/line-chart/i18n/line-chart-options.es.d.ts.map +1 -1
  253. package/src/lib/line-chart/i18n/line-chart-options.fr.d.ts +6 -0
  254. package/src/lib/line-chart/i18n/line-chart-options.fr.d.ts.map +1 -1
  255. package/src/lib/line-chart/i18n/line-chart-options.nl.d.ts +6 -0
  256. package/src/lib/line-chart/i18n/line-chart-options.nl.d.ts.map +1 -1
  257. package/src/lib/line-chart/line-chart-options.config.d.ts.map +1 -1
  258. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.de.d.ts +6 -0
  259. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.de.d.ts.map +1 -1
  260. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.en.d.ts +6 -0
  261. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.en.d.ts.map +1 -1
  262. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.es.d.ts +6 -0
  263. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.es.d.ts.map +1 -1
  264. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.fr.d.ts +6 -0
  265. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.fr.d.ts.map +1 -1
  266. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.nl.d.ts +6 -0
  267. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.nl.d.ts.map +1 -1
  268. package/src/lib/ohlc-chart/ohlc-chart-options.config.d.ts.map +1 -1
  269. package/src/lib/pyramid-chart/pyramid-chart-options.config.d.ts.map +1 -1
  270. package/src/lib/scatter-plot/i18n/scatter-plot-options.de.d.ts +9 -0
  271. package/src/lib/scatter-plot/i18n/scatter-plot-options.de.d.ts.map +1 -1
  272. package/src/lib/scatter-plot/i18n/scatter-plot-options.en.d.ts +9 -0
  273. package/src/lib/scatter-plot/i18n/scatter-plot-options.en.d.ts.map +1 -1
  274. package/src/lib/scatter-plot/i18n/scatter-plot-options.es.d.ts +9 -0
  275. package/src/lib/scatter-plot/i18n/scatter-plot-options.es.d.ts.map +1 -1
  276. package/src/lib/scatter-plot/i18n/scatter-plot-options.fr.d.ts +9 -0
  277. package/src/lib/scatter-plot/i18n/scatter-plot-options.fr.d.ts.map +1 -1
  278. package/src/lib/scatter-plot/i18n/scatter-plot-options.nl.d.ts +9 -0
  279. package/src/lib/scatter-plot/i18n/scatter-plot-options.nl.d.ts.map +1 -1
  280. package/src/lib/scatter-plot/scatter-plot-options.config.d.ts.map +1 -1
  281. package/src/lib/shared/utils/axis-options.config.d.ts +51 -0
  282. package/src/lib/shared/utils/axis-options.config.d.ts.map +1 -0
  283. package/src/lib/shared/utils/axis-options.i18n.d.ts +4 -0
  284. package/src/lib/shared/utils/axis-options.i18n.d.ts.map +1 -0
  285. package/src/lib/shared/utils/guidelines-options.config.d.ts +10 -0
  286. package/src/lib/shared/utils/guidelines-options.config.d.ts.map +1 -0
  287. package/src/lib/shared/utils/index.d.ts +2 -0
  288. package/src/lib/shared/utils/index.d.ts.map +1 -1
  289. package/src/lib/shared/utils/options-loader.d.ts.map +1 -1
@@ -1,6 +1,8 @@
1
- import { getThemeAxisColor as e, getThemeAxisColorExtraLabelClickAction as t, getThemeAxisColorExtraLabelHasClickAction as n, getThemeAxisColorResetLabel as r, getThemeMainColor as i, getThemeMainColorExtraLabelClickAction as a, getThemeMainColorExtraLabelHasClickAction as o, getThemeMainColorResetLabel as s } from "../helpers.js";
1
+ import { getThemeMainColor as e, getThemeMainColorExtraLabelClickAction as t, getThemeMainColorExtraLabelHasClickAction as n, getThemeMainColorResetLabel as r } from "../helpers.js";
2
+ import { createAxesOptionsGroup as i } from "../shared/utils/axis-options.config.js";
3
+ import { createScatterGuidelinesOptionsGroup as a } from "../shared/utils/guidelines-options.config.js";
2
4
  //#region src/lib/scatter-plot/scatter-plot-options.config.ts
3
- var c = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?.name === "color")?.content?.length ?? 0) > 0 : !1, l = [
5
+ var o = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?.name === "color")?.content?.length ?? 0) > 0 : !1, s = [
4
6
  {
5
7
  key: "general",
6
8
  type: "group",
@@ -21,238 +23,39 @@ var c = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
21
23
  label: "Legend",
22
24
  default: !0
23
25
  },
24
- visibleIf: c
26
+ visibleIf: o
25
27
  },
26
28
  {
27
29
  key: "color",
28
30
  control: {
29
31
  type: "color-picker",
30
32
  label: "Color",
31
- default: ({ theme: e }) => i(e),
32
- extraLabel: ({ options: e, theme: t }) => s(e, t, "color"),
33
- extraLabelHasClickAction: ({ options: e, theme: t }) => o(e, t, "color"),
34
- extraLabelClickAction: ({ options: e, theme: t }) => a(e, t, "color")
33
+ default: ({ theme: t }) => e(t),
34
+ extraLabel: ({ options: e, theme: t }) => r(e, t, "color"),
35
+ extraLabelHasClickAction: ({ options: e, theme: t }) => n(e, t, "color"),
36
+ extraLabelClickAction: ({ options: e, theme: n }) => t(e, n, "color")
35
37
  },
36
38
  visibleIf: ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? e?.find((e) => e?.name === "color")?.content?.length === 0 : !0
37
39
  }
38
40
  ]
39
41
  },
40
- {
41
- key: "axes",
42
- type: "group",
43
- open: !1,
44
- children: [
45
- {
46
- key: "axis.x.color",
47
- control: {
48
- type: "color-picker",
49
- label: "X-axis color",
50
- default: ({ theme: t }) => e(t),
51
- extraLabel: ({ options: e, theme: t }) => r(e, t, "axis.x.color"),
52
- extraLabelHasClickAction: ({ options: e, theme: t }) => n(e, t, "axis.x.color"),
53
- extraLabelClickAction: ({ options: e, theme: n }) => t(e, n, "axis.x.color")
54
- }
55
- },
56
- {
57
- key: "xAxisLabels",
58
- type: "group",
59
- label: "X-axis label",
60
- collapsible: !0,
61
- open: !0,
62
- children: [{
63
- key: "axislabels.x.enabled",
64
- control: {
65
- type: "switch",
66
- label: "Enabled",
67
- default: !1
68
- }
69
- }, {
70
- key: "axislabels.x.position",
71
- control: {
72
- type: "picker",
73
- label: "Position",
74
- default: "center",
75
- enum: [
76
- "left",
77
- "center",
78
- "right"
79
- ]
80
- },
81
- visibleIf: ({ options: e }) => e?.axislabels?.x?.enabled === !0
82
- }]
83
- },
84
- {
85
- key: "xAxisTicks",
86
- type: "group",
87
- label: "X-axis ticks",
88
- collapsible: !0,
89
- open: !0,
90
- children: [
91
- {
92
- key: "axis.x.ticksMode",
93
- control: {
94
- type: "picker",
95
- label: "Display mode",
96
- default: "ticks",
97
- enum: [
98
- "ticks",
99
- "hide",
100
- "gridlines"
101
- ],
102
- toOptions: ({ options: e, value: t }) => ({
103
- ...e,
104
- axis: {
105
- ...e?.axis,
106
- x: {
107
- ...e?.axis?.x,
108
- ticksMode: t
109
- }
110
- },
111
- grid: {
112
- ...e?.grid,
113
- x: {
114
- ...e?.grid?.x,
115
- enabled: t === "gridlines"
116
- }
117
- }
118
- })
119
- }
120
- },
121
- {
122
- key: "grid.x.style",
123
- control: {
124
- type: "picker",
125
- label: "Gridline style",
126
- default: "solid",
127
- enum: [
128
- "solid",
129
- "dotted",
130
- "dashed"
131
- ]
132
- },
133
- visibleIf: ({ options: e }) => e?.axis?.x?.ticksMode === "gridlines" && e?.grid?.x?.enabled === !0
134
- },
135
- {
136
- key: "grid.x.opacity",
137
- control: {
138
- type: "slider",
139
- label: "Gridline opacity",
140
- default: .3,
141
- min: .1,
142
- max: 1,
143
- step: .1
144
- },
145
- visibleIf: ({ options: e }) => e?.axis?.x?.ticksMode === "gridlines" && e?.grid?.x?.enabled === !0
146
- }
147
- ]
148
- },
149
- { type: "divider" },
150
- {
151
- key: "axis.y.color",
152
- control: {
153
- type: "color-picker",
154
- label: "Y-axis color",
155
- default: ({ theme: t }) => e(t),
156
- extraLabel: ({ options: e, theme: t }) => r(e, t, "axis.y.color"),
157
- extraLabelHasClickAction: ({ options: e, theme: t }) => n(e, t, "axis.y.color"),
158
- extraLabelClickAction: ({ options: e, theme: n }) => t(e, n, "axis.y.color")
159
- }
160
- },
161
- {
162
- key: "yAxisLabels",
163
- type: "group",
164
- label: "Y-axis label",
165
- collapsible: !0,
166
- open: !0,
167
- children: [{
168
- key: "axislabels.y.enabled",
169
- control: {
170
- type: "switch",
171
- label: "Enabled",
172
- default: !1
173
- }
174
- }, {
175
- key: "axislabels.y.position",
176
- control: {
177
- type: "picker",
178
- label: "Position",
179
- default: "middle",
180
- enum: [
181
- "top",
182
- "middle",
183
- "bottom"
184
- ]
185
- },
186
- visibleIf: ({ options: e }) => e?.axislabels?.y?.enabled === !0
187
- }]
188
- },
189
- {
190
- key: "yAxisTicks",
191
- type: "group",
192
- label: "Y-axis ticks",
193
- collapsible: !0,
194
- open: !0,
195
- children: [
196
- {
197
- key: "axis.y.ticksMode",
198
- control: {
199
- type: "picker",
200
- label: "Display mode",
201
- default: "ticks",
202
- enum: [
203
- "ticks",
204
- "hide",
205
- "gridlines"
206
- ],
207
- toOptions: ({ options: e, value: t }) => ({
208
- ...e,
209
- axis: {
210
- ...e?.axis,
211
- y: {
212
- ...e?.axis?.y,
213
- ticksMode: t
214
- }
215
- },
216
- grid: {
217
- ...e?.grid,
218
- y: {
219
- ...e?.grid?.y,
220
- enabled: t === "gridlines"
221
- }
222
- }
223
- })
224
- }
225
- },
226
- {
227
- key: "grid.y.style",
228
- control: {
229
- type: "picker",
230
- label: "Gridline style",
231
- default: "solid",
232
- enum: [
233
- "solid",
234
- "dotted",
235
- "dashed"
236
- ]
237
- },
238
- visibleIf: ({ options: e }) => e?.axis?.y?.ticksMode === "gridlines" && e?.grid?.y?.enabled === !0
239
- },
240
- {
241
- key: "grid.y.opacity",
242
- control: {
243
- type: "slider",
244
- label: "Gridline opacity",
245
- default: .3,
246
- min: .1,
247
- max: 1,
248
- step: .1
249
- },
250
- visibleIf: ({ options: e }) => e?.axis?.y?.ticksMode === "gridlines" && e?.grid?.y?.enabled === !0
251
- }
252
- ]
253
- }
254
- ]
255
- },
42
+ i([{
43
+ axis: "x",
44
+ role: "numeric",
45
+ manualRange: { key: "manualAxesRange.x" },
46
+ color: !0,
47
+ label: !0,
48
+ tickMode: !0,
49
+ gridlines: !0
50
+ }, {
51
+ axis: "y",
52
+ role: "numeric",
53
+ manualRange: { key: "manualAxesRange.y" },
54
+ color: !0,
55
+ label: !0,
56
+ tickMode: !0,
57
+ gridlines: !0
58
+ }]),
256
59
  {
257
60
  key: "legend",
258
61
  type: "group",
@@ -295,10 +98,11 @@ var c = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
295
98
  visibleIf: ({ options: e }) => e?.legend?.customOrder === !0
296
99
  }
297
100
  ],
298
- visibleIf: c
299
- }
101
+ visibleIf: o
102
+ },
103
+ a()
300
104
  ];
301
105
  //#endregion
302
- export { l as default };
106
+ export { s as default };
303
107
 
304
108
  //# sourceMappingURL=scatter-plot-options.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scatter-plot-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/scatter-plot/scatter-plot-options.config.ts"],"sourcesContent":["import {\n getThemeAxisColor,\n getThemeAxisColorExtraLabelClickAction,\n getThemeAxisColorExtraLabelHasClickAction,\n getThemeAxisColorResetLabel,\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { ScatterPlotViewOptions } from './scatter-plot-options';\nimport type { ScatterPlotSlots } from './scatter-plot-slots';\n\ntype ScatterPlotConfigContext = OptionsConfigContext<ScatterPlotViewOptions, ScatterPlotSlots>;\ntype ScatterPlotConfigValue<T> = ScatterPlotConfigContext & { value: T };\n\nconst hasColor = ({ slots }: Pick<ScatterPlotConfigContext, 'slots'>) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (slots?.find((slot) => slot?.name === 'color')?.content?.length ?? 0) > 0;\n }\n\n return false;\n};\n\nconst hasNoColor = ({ slots }: ScatterPlotConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return slots?.find((slot) => slot?.name === 'color')?.content?.length === 0;\n }\n\n return true;\n};\n\nconst scatterPlotOptionsConfig: OptionsConfig<ScatterPlotConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n label: 'Legend',\n default: true\n },\n visibleIf: hasColor\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Color',\n default: ({ theme }: ScatterPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: ScatterPlotConfigContext) => getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoColor\n }\n ]\n },\n {\n key: 'axes',\n type: 'group',\n open: false,\n children: [\n /* {\n key: 'manualAxesRange.x',\n control: {\n type: 'switch',\n label: 'Manual x-axis range',\n default: false\n }\n }, */\n {\n key: 'axis.x.color',\n control: {\n type: 'color-picker',\n label: 'X-axis color',\n default: ({ theme }: ScatterPlotConfigContext) => getThemeAxisColor(theme),\n extraLabel: ({ options, theme }: ScatterPlotConfigContext) => getThemeAxisColorResetLabel(options, theme, 'axis.x.color'),\n extraLabelHasClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeAxisColorExtraLabelHasClickAction(options, theme, 'axis.x.color'),\n extraLabelClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeAxisColorExtraLabelClickAction(options, theme, 'axis.x.color')\n }\n },\n {\n key: 'xAxisLabels',\n type: 'group',\n label: 'X-axis label',\n collapsible: true,\n open: true,\n children: [\n // TODO check doesn't work\n {\n key: 'axislabels.x.enabled',\n control: {\n type: 'switch',\n label: 'Enabled',\n default: false\n }\n },\n {\n key: 'axislabels.x.position',\n control: {\n type: 'picker',\n label: 'Position',\n default: 'center',\n enum: ['left', 'center', 'right']\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) => options?.axislabels?.x?.enabled === true\n }\n ]\n },\n {\n key: 'xAxisTicks',\n type: 'group',\n label: 'X-axis ticks',\n collapsible: true,\n open: true,\n children: [\n {\n key: 'axis.x.ticksMode',\n control: {\n type: 'picker',\n label: 'Display mode',\n default: 'ticks',\n enum: ['ticks', 'hide', 'gridlines'],\n toOptions: ({ options, value }: ScatterPlotConfigValue<'ticks' | 'hide' | 'gridlines'>) => ({\n ...options,\n axis: {\n ...options?.axis,\n x: {\n ...options?.axis?.x,\n ticksMode: value\n }\n },\n grid: {\n ...options?.grid,\n x: {\n ...options?.grid?.x,\n enabled: value === 'gridlines'\n }\n }\n })\n }\n },\n {\n key: 'grid.x.style',\n control: {\n type: 'picker',\n label: 'Gridline style',\n default: 'solid',\n enum: ['solid', 'dotted', 'dashed']\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) =>\n options?.axis?.x?.ticksMode === 'gridlines' && options?.grid?.x?.enabled === true\n },\n {\n key: 'grid.x.opacity',\n control: {\n type: 'slider',\n label: 'Gridline opacity',\n default: 0.3,\n min: 0.1,\n max: 1,\n step: 0.1\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) =>\n options?.axis?.x?.ticksMode === 'gridlines' && options?.grid?.x?.enabled === true\n }\n ]\n },\n {\n type: 'divider'\n },\n /* {\n key: 'manualAxesRange.y',\n control: {\n type: 'switch',\n label: 'Manual y-axis range',\n default: false\n }\n }, */\n {\n key: 'axis.y.color',\n control: {\n type: 'color-picker',\n label: 'Y-axis color',\n default: ({ theme }: ScatterPlotConfigContext) => getThemeAxisColor(theme),\n extraLabel: ({ options, theme }: ScatterPlotConfigContext) => getThemeAxisColorResetLabel(options, theme, 'axis.y.color'),\n extraLabelHasClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeAxisColorExtraLabelHasClickAction(options, theme, 'axis.y.color'),\n extraLabelClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeAxisColorExtraLabelClickAction(options, theme, 'axis.y.color')\n }\n },\n {\n key: 'yAxisLabels',\n type: 'group',\n label: 'Y-axis label',\n collapsible: true,\n open: true,\n children: [\n // TODO check doesn't work\n {\n key: 'axislabels.y.enabled',\n control: {\n type: 'switch',\n label: 'Enabled',\n default: false\n }\n },\n {\n key: 'axislabels.y.position',\n control: {\n type: 'picker',\n label: 'Position',\n default: 'middle',\n enum: ['top', 'middle', 'bottom']\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) => options?.axislabels?.y?.enabled === true\n }\n ]\n },\n {\n key: 'yAxisTicks',\n type: 'group',\n label: 'Y-axis ticks',\n collapsible: true,\n open: true,\n children: [\n {\n key: 'axis.y.ticksMode',\n control: {\n type: 'picker',\n label: 'Display mode',\n default: 'ticks',\n enum: ['ticks', 'hide', 'gridlines'],\n toOptions: ({ options, value }: ScatterPlotConfigValue<'ticks' | 'hide' | 'gridlines'>) => ({\n ...options,\n axis: {\n ...options?.axis,\n y: {\n ...options?.axis?.y,\n ticksMode: value\n }\n },\n grid: {\n ...options?.grid,\n y: {\n ...options?.grid?.y,\n enabled: value === 'gridlines'\n }\n }\n })\n }\n },\n {\n key: 'grid.y.style',\n control: {\n type: 'picker',\n label: 'Gridline style',\n default: 'solid',\n enum: ['solid', 'dotted', 'dashed']\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) =>\n options?.axis?.y?.ticksMode === 'gridlines' && options?.grid?.y?.enabled === true\n },\n {\n key: 'grid.y.opacity',\n control: {\n type: 'slider',\n label: 'Gridline opacity',\n default: 0.3,\n min: 0.1,\n max: 1,\n step: 0.1\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) =>\n options?.axis?.y?.ticksMode === 'gridlines' && options?.grid?.y?.enabled === true\n }\n ]\n }\n ]\n },\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasColor\n }\n];\n\nexport default scatterPlotOptionsConfig;\n"],"mappings":"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"}
1
+ {"version":3,"file":"scatter-plot-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/scatter-plot/scatter-plot-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport { createScatterGuidelinesOptionsGroup } from '../shared/utils/guidelines-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { ScatterPlotViewOptions } from './scatter-plot-options';\nimport type { ScatterPlotSlots } from './scatter-plot-slots';\n\ntype ScatterPlotConfigContext = OptionsConfigContext<ScatterPlotViewOptions, ScatterPlotSlots>;\n\nconst hasColor = ({ slots }: Pick<ScatterPlotConfigContext, 'slots'>) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (slots?.find((slot) => slot?.name === 'color')?.content?.length ?? 0) > 0;\n }\n\n return false;\n};\n\nconst hasNoColor = ({ slots }: ScatterPlotConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return slots?.find((slot) => slot?.name === 'color')?.content?.length === 0;\n }\n\n return true;\n};\n\nconst scatterPlotOptionsConfig: OptionsConfig<ScatterPlotConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n label: 'Legend',\n default: true\n },\n visibleIf: hasColor\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Color',\n default: ({ theme }: ScatterPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: ScatterPlotConfigContext) => getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: ScatterPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoColor\n }\n ]\n },\n createAxesOptionsGroup<ScatterPlotConfigContext>([\n { axis: 'x', role: 'numeric', manualRange: { key: 'manualAxesRange.x' }, color: true, label: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'numeric', manualRange: { key: 'manualAxesRange.y' }, color: true, label: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: ScatterPlotConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasColor\n },\n createScatterGuidelinesOptionsGroup()\n];\n\nexport default scatterPlotOptionsConfig;\n"],"mappings":";;;;AAcA,IAAM,KAAY,EAAE,eACd,MAAM,QAAQ,CAAK,KAAK,GAAO,SAAS,KAClC,GAAO,MAAM,MAAS,GAAM,SAAS,OAAO,CAAC,EAAE,SAAS,UAAU,KAAK,IAG1E,IAWH,IAAoE;CACxE;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;IACA,WAAW;GACb;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,UAAU,EAAE,eAAsC,EAAkB,CAAK;KACzE,aAAa,EAAE,YAAS,eAAsC,EAA4B,GAAS,GAAO,OAAO;KACjH,2BAA2B,EAAE,YAAS,eACpC,EAA0C,GAAS,GAAO,OAAO;KACnE,wBAAwB,EAAE,YAAS,eACjC,EAAuC,GAAS,GAAO,OAAO;IAClE;IACA,YA3CY,EAAE,eAChB,MAAM,QAAQ,CAAK,KAAK,GAAO,SAAS,IACnC,GAAO,MAAM,MAAS,GAAM,SAAS,OAAO,CAAC,EAAE,SAAS,WAAW,IAGrE;GAuCH;EACF;CACF;CACA,EAAiD,CAC/C;EAAE,MAAM;EAAK,MAAM;EAAW,aAAa,EAAE,KAAK,oBAAoB;EAAG,OAAO;EAAM,OAAO;EAAM,UAAU;EAAM,WAAW;CAAK,GACnI;EAAE,MAAM;EAAK,MAAM;EAAW,aAAa,EAAE,KAAK,oBAAoB;EAAG,OAAO;EAAM,OAAO;EAAM,UAAU;EAAM,WAAW;CAAK,CACrI,CAAC;CACD;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,MAAM;KACN,SAAS;KACT,MAAM;MAAC;MAAW;MAAO;MAAY;MAAS;MAAe;MAAU;MAAc;KAAM;IAC7F;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,aAAa;KACb,MAAM;KACN,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,MAAM;KACN,SAAS;IACX;IACA,YAAY,EAAE,iBAAwC,GAAS,QAAQ,gBAAgB;GACzF;EACF;EACA,WAAW;CACb;CACA,EAAoC;AACtC"}
@@ -0,0 +1,2 @@
1
+ const e=require("../../helpers.cjs");var t=(e,t)=>{let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=n[e]}return n},n=e=>typeof e==`object`&&!!e&&!Array.isArray(e),r=e=>n(e)?e:{},i=(e,t,n)=>{let[a,...o]=t.split(`.`);return o.length===0?{...e,[a]:n}:{...e,[a]:i(r(e[a]),o.join(`.`),n)}},a=(e,t)=>{let[r,...i]=t.split(`.`);if(!(r in e))return e;if(i.length>0){if(!n(e[r]))return e;let t=a(e[r],i.join(`.`));if(Object.keys(t).length>0)return{...e,[r]:t}}let o={...e};return delete o[r],o},o=(e,t)=>`${e===`axis`?`Axis`:`${e.charAt(0).toUpperCase()}${e.slice(1)} axis`} ${t}`,s=[`minimum`,`maximum`],c=`:`,l=[0,100],u=[`2`,`10`],d=(e,t)=>`${e}${c}${t}`,f=e=>`${e}${c}bounds`,p=[`manualAxesRange`,`manualAxesRange.x`,`manualAxesRange.y`,`axis.y.manualAxesRange`,`axis.y2.manualAxesRange`,`manualAxisRange`],m=e=>{let t=typeof e==`string`?Number.parseFloat(e):e;return typeof t==`number`&&Number.isFinite(t)?t:void 0},h=(e,n)=>{let r=t(e,n);if(!Array.isArray(r)||r.length!==2)return;let i=m(r[0]),a=m(r[1]);return i===void 0||a===void 0?void 0:[i,a]},g=(e,t,n,o)=>{let s=m(o);if(s===void 0)return a(r(e),t);let[c,u]=h(e,t)??l,d=n===`minimum`?s:c,f=n===`maximum`?s:u;return i(r(e),t,d>f?[f,d]:[d,f])},_=({rangeKey:e,labels:n,discriminator:o})=>{let c=[];return o&&c.push({key:o.key,control:{type:`picker`,label:n.range??`Manual axis range`,default:o.default??`default`,enum:[`default`,`manual`,`variable`],toOptions:({options:t,value:n})=>{let s=i(r(t),o.key,n);return n===`manual`?h(t,e)?s:i(s,e,[...l]):a(s,e)}}}),c.push({key:f(e),type:`group`,label:n.range??`Manual axis range`,collapsible:!0,open:!0,children:s.map(t=>({key:d(e,t),control:{type:`number-field`,label:n[t],editorOnly:!0,calculateValue:({options:n})=>h(n,e)?.[t===`minimum`?0:1],toOptions:({options:n,value:r})=>g(n,e,t,r)}})),...o?{visibleIf:({options:e})=>t(e,o.key)===`manual`}:{}}),c},v=(t,n)=>{let r=`axis.${t}.color`;return{key:r,control:{type:`color-picker`,label:o(n,`color`),default:({theme:t})=>e.getThemeAxisColor(t),extraLabel:({options:t,theme:n})=>e.getThemeAxisColorResetLabel(t,n,r),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelHasClickAction(t,n,r),extraLabelClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelClickAction(t,n,r)}}},y=(e,n)=>({key:`${e}AxisLabels`,type:`group`,label:o(n,`label`),collapsible:!0,open:!0,children:[{key:`axislabels.${e}.enabled`,control:{type:`switch`,label:`Enabled`,default:!1}},{key:`axislabels.${e}.position`,control:{type:`picker`,label:`Position`,default:e===`x`?`center`:`middle`,enum:e===`x`?[`left`,`center`,`right`]:[`top`,`middle`,`bottom`]},visibleIf:({options:n})=>t(n,`axislabels.${e}.enabled`)===!0}]}),b=e=>{let{axis:n,role:a}=e,s=`axis.${n}.ticksMode`,c=[];if(e.tickDensity&&c.push({key:`axis.${n}.ticksDensity`,control:{type:`picker`,label:`Density`,default:`normal`,enum:[`compact`,`normal`,`sparse`]}}),e.tickMode&&c.push({key:s,control:{type:`picker`,label:`Display mode`,default:`ticks`,enum:e.gridlines?[`ticks`,`hide`,`gridlines`]:[`ticks`,`hide`],...e.gridlines?{toOptions:({options:e,value:t})=>i(i(r(e),s,t),`grid.${n}.enabled`,t===`gridlines`)}:{}}}),e.gridlines){let e=({options:e})=>t(e,s)===`gridlines`;c.push({key:`grid.${n}.style`,control:{type:`picker`,label:`Gridline style`,default:`dotted`,enum:[`solid`,`dotted`,`dashed`]},visibleIf:e},{key:`grid.${n}.opacity`,control:{type:`slider`,label:`Gridline opacity`,default:.3,min:.1,max:1,step:.05},visibleIf:e})}return e.datetimeTickStyle&&c.push({key:`axis.${n}.ticksStyle`,control:{type:`picker`,label:`Date format`,default:`auto`,enum:[`auto`,`userDefined`]}}),{key:`${n}AxisTicks`,type:`group`,label:o(a,`ticks`),collapsible:!0,open:!0,children:c}},x=e=>{let{axis:n,role:a}=e,s=[];if(e.scale){let e=`axis.${n}.scale`,c=`axis.${n}.scaleLogBase`;s.push({key:e,control:{type:`picker`,label:o(a,`type`),default:`linear`,enum:[`linear`,`logarithmic`]}},{key:c,control:{type:`picker`,label:`Logarithmic base`,default:`10`,enum:[...u],calculateValue:({options:e})=>{let n=String(t(e,c));return u.includes(n)?n:void 0},toOptions:({options:e,value:t})=>i(r(e),c,Number(t))},visibleIf:({options:n})=>t(n,e)===`logarithmic`})}if(e.manualRange){let{key:t,discriminatorKey:n}=e.manualRange;s.push(..._({rangeKey:t,labels:{range:o(a,`range`),minimum:o(a,`minimum`),maximum:o(a,`maximum`)},...n?{discriminator:{key:n}}:{}}))}return e.color&&s.push(v(n,a)),e.label&&s.push(y(n,a)),(e.tickMode||e.tickDensity||e.datetimeTickStyle)&&s.push(b(e)),s},S=(e,t=[])=>({key:`axes`,type:`group`,open:!1,children:[...t,...e.flatMap(e=>x(e))]});exports.createAxesOptionsGroup=S,exports.createAxisOptions=x,exports.createManualRangeControls=_,exports.manualRangeBoundKey=d,exports.manualRangeBounds=s,exports.manualRangeGroupKey=f,exports.manualRangeKeys=p;
2
+ //# sourceMappingURL=axis-options.config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axis-options.config.cjs","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/axis-options.config.ts"],"sourcesContent":["import {\n getThemeAxisColor,\n getThemeAxisColorExtraLabelClickAction,\n getThemeAxisColorExtraLabelHasClickAction,\n getThemeAxisColorResetLabel\n} from '../../helpers';\nimport type { Axis, AxisGridlinesStyle, AxisScaleType, AxisTicksDensity, AxisTicksMode, MeasureAxisType } from '../types/axes';\nimport type { OptionConfig, OptionsConfigContext } from './options-config.types';\n\nexport type AxisRole = 'measure' | 'category' | 'numeric' | 'axis';\n\ntype ContextWithValue<TContext, TValue> = TContext & { value: TValue };\n\nexport interface AxisOptionsCapabilities {\n axis: Axis;\n role: AxisRole;\n color?: boolean;\n label?: boolean;\n scale?: boolean;\n tickDensity?: boolean;\n tickMode?: boolean;\n gridlines?: boolean;\n datetimeTickStyle?: boolean;\n manualRange?: {\n key: string;\n discriminatorKey?: string;\n };\n}\n\nconst getNestedValue = (value: unknown, path: string): unknown => {\n let current = value;\n\n for (const part of path.split('.')) {\n if (typeof current !== 'object' || current === null || Array.isArray(current)) {\n return undefined;\n }\n\n current = (current as Record<string, unknown>)[part];\n }\n\n return current;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst asRecord = (value: unknown): Record<string, unknown> => (isRecord(value) ? value : {});\n\nconst setNestedValue = (options: Record<string, unknown>, path: string, value: unknown): Record<string, unknown> => {\n const [head, ...rest] = path.split('.');\n\n if (rest.length === 0) {\n return { ...options, [head]: value };\n }\n\n return { ...options, [head]: setNestedValue(asRecord(options[head]), rest.join('.'), value) };\n};\n\nconst deleteNestedValue = (options: Record<string, unknown>, path: string): Record<string, unknown> => {\n const [head, ...rest] = path.split('.');\n\n if (!(head in options)) {\n return options;\n }\n\n if (rest.length > 0) {\n if (!isRecord(options[head])) {\n return options;\n }\n\n const child = deleteNestedValue(options[head], rest.join('.'));\n\n if (Object.keys(child).length > 0) {\n return { ...options, [head]: child };\n }\n }\n\n const remaining = { ...options };\n\n delete remaining[head];\n\n return remaining;\n};\n\nconst roleLabel = (role: AxisRole, suffix: string) =>\n `${role === 'axis' ? 'Axis' : `${role.charAt(0).toUpperCase()}${role.slice(1)} axis`} ${suffix}`;\n\nexport const manualRangeBounds = ['minimum', 'maximum'] as const;\n\nexport type ManualRangeBound = (typeof manualRangeBounds)[number];\n\nconst manualRangeBoundSeparator = ':';\n\nconst defaultManualRange: [number, number] = [0, 100];\n\nconst logarithmicBases = ['2', '10'] as const;\n\ntype LogarithmicBase = (typeof logarithmicBases)[number];\n\n/**\n * A manual range is persisted as one `[minimum, maximum]` tuple but edited with one number\n * field per bound, so each field needs its own option key. The separator keeps these keys\n * distinguishable from real (dot-separated) option paths: they identify controls only, and\n * the tuple is read and written through `calculateValue` / `toOptions`.\n */\nexport const manualRangeBoundKey = (rangeKey: string, bound: ManualRangeBound): string =>\n `${rangeKey}${manualRangeBoundSeparator}${bound}`;\n\n/** Key of the group holding both bounds of the manual range persisted at `rangeKey`. */\nexport const manualRangeGroupKey = (rangeKey: string): string => `${rangeKey}${manualRangeBoundSeparator}bounds`;\n\n/** Manual range keys used across the chart option configs, in the order the charts declare them. */\nexport const manualRangeKeys = [\n 'manualAxesRange',\n 'manualAxesRange.x',\n 'manualAxesRange.y',\n 'axis.y.manualAxesRange',\n 'axis.y2.manualAxesRange',\n 'manualAxisRange'\n] as const;\n\nconst toFiniteNumber = (value: unknown): number | undefined => {\n const parsed = typeof value === 'string' ? Number.parseFloat(value) : value;\n\n return typeof parsed === 'number' && Number.isFinite(parsed) ? parsed : undefined;\n};\n\nconst readManualRange = (options: unknown, rangeKey: string): [number, number] | undefined => {\n const value = getNestedValue(options, rangeKey);\n\n if (!Array.isArray(value) || value.length !== 2) {\n return undefined;\n }\n\n const minimum = toFiniteNumber(value[0]);\n const maximum = toFiniteNumber(value[1]);\n\n return minimum === undefined || maximum === undefined ? undefined : [minimum, maximum];\n};\n\nconst writeManualRangeBound = (\n options: unknown,\n rangeKey: string,\n bound: ManualRangeBound,\n value: unknown\n): Record<string, unknown> => {\n const nextBound = toFiniteNumber(value);\n\n // Clearing a bound returns the axis to its automatic range, like toggling the range off.\n if (nextBound === undefined) {\n return deleteNestedValue(asRecord(options), rangeKey);\n }\n\n const [currentMinimum, currentMaximum] = readManualRange(options, rangeKey) ?? defaultManualRange;\n const minimum = bound === 'minimum' ? nextBound : currentMinimum;\n const maximum = bound === 'maximum' ? nextBound : currentMaximum;\n\n return setNestedValue(asRecord(options), rangeKey, minimum > maximum ? [maximum, minimum] : [minimum, maximum]);\n};\n\nexport interface ManualRangeControlsConfig {\n rangeKey: string;\n labels: {\n minimum: string;\n maximum: string;\n range?: string;\n };\n discriminator?: {\n key: string;\n default?: MeasureAxisType;\n };\n}\n\n/**\n * Builds the controls that edit a manual axis range: an optional range mode picker plus one\n * number field per bound.\n */\nexport const createManualRangeControls = <TContext extends OptionsConfigContext>({\n rangeKey,\n labels,\n discriminator\n}: ManualRangeControlsConfig): OptionConfig<TContext>[] => {\n const controls: OptionConfig<TContext>[] = [];\n\n if (discriminator) {\n controls.push({\n key: discriminator.key,\n control: {\n type: 'picker',\n label: labels.range ?? 'Manual axis range',\n default: discriminator.default ?? 'default',\n enum: ['default', 'manual', 'variable'] satisfies MeasureAxisType[],\n toOptions: ({ options, value }: ContextWithValue<TContext, MeasureAxisType>) => {\n const next = setNestedValue(asRecord(options), discriminator.key, value);\n\n if (value !== 'manual') {\n return deleteNestedValue(next, rangeKey);\n }\n\n // Seed a complete tuple, because a single bound cannot be persisted on its own.\n return readManualRange(options, rangeKey) ? next : setNestedValue(next, rangeKey, [...defaultManualRange]);\n }\n }\n });\n }\n\n // Both bounds share one group so their labels stay unambiguous when a chart has several ranges.\n controls.push({\n key: manualRangeGroupKey(rangeKey),\n type: 'group',\n label: labels.range ?? 'Manual axis range',\n collapsible: true,\n open: true,\n children: manualRangeBounds.map((bound) => ({\n key: manualRangeBoundKey(rangeKey, bound),\n control: {\n type: 'number-field',\n label: labels[bound],\n // The tuple is the persisted option; these bound keys never leave the editor.\n editorOnly: true,\n calculateValue: ({ options }: TContext) => readManualRange(options, rangeKey)?.[bound === 'minimum' ? 0 : 1],\n toOptions: ({ options, value }: ContextWithValue<TContext, unknown>) =>\n writeManualRangeBound(options, rangeKey, bound, value)\n }\n })),\n ...(discriminator\n ? { visibleIf: ({ options }: TContext) => getNestedValue(options, discriminator.key) === 'manual' }\n : {})\n });\n\n return controls;\n};\n\nconst createColorControl = <TContext extends OptionsConfigContext>(axis: Axis, role: AxisRole): OptionConfig<TContext> => {\n const key = `axis.${axis}.color`;\n\n return {\n key,\n control: {\n type: 'color-picker',\n label: roleLabel(role, 'color'),\n default: ({ theme }: TContext) => getThemeAxisColor(theme),\n extraLabel: ({ options, theme }: TContext) => getThemeAxisColorResetLabel(options, theme, key),\n extraLabelHasClickAction: ({ options, theme }: TContext) =>\n getThemeAxisColorExtraLabelHasClickAction(options, theme, key),\n extraLabelClickAction: ({ options, theme }: TContext) =>\n getThemeAxisColorExtraLabelClickAction(options, theme, key)\n }\n };\n};\n\nconst createLabelGroup = <TContext extends OptionsConfigContext>(axis: Axis, role: AxisRole): OptionConfig<TContext> => ({\n key: `${axis}AxisLabels`,\n type: 'group',\n label: roleLabel(role, 'label'),\n collapsible: true,\n open: true,\n children: [\n {\n key: `axislabels.${axis}.enabled`,\n control: {\n type: 'switch',\n label: 'Enabled',\n default: false\n }\n },\n {\n key: `axislabels.${axis}.position`,\n control: {\n type: 'picker',\n label: 'Position',\n default: axis === 'x' ? 'center' : 'middle',\n enum: axis === 'x' ? ['left', 'center', 'right'] : ['top', 'middle', 'bottom']\n },\n visibleIf: ({ options }: TContext) => getNestedValue(options, `axislabels.${axis}.enabled`) === true\n }\n ]\n});\n\nconst createTicksGroup = <TContext extends OptionsConfigContext>(\n capabilities: AxisOptionsCapabilities\n): OptionConfig<TContext> => {\n const { axis, role } = capabilities;\n const ticksModeKey = `axis.${axis}.ticksMode`;\n const children: OptionConfig<TContext>[] = [];\n\n if (capabilities.tickDensity) {\n children.push({\n key: `axis.${axis}.ticksDensity`,\n control: {\n type: 'picker',\n label: 'Density',\n default: 'normal' satisfies AxisTicksDensity,\n enum: ['compact', 'normal', 'sparse'] satisfies AxisTicksDensity[]\n }\n });\n }\n\n if (capabilities.tickMode) {\n children.push({\n key: ticksModeKey,\n control: {\n type: 'picker',\n label: 'Display mode',\n default: 'ticks' satisfies AxisTicksMode,\n enum: capabilities.gridlines\n ? (['ticks', 'hide', 'gridlines'] satisfies AxisTicksMode[])\n : (['ticks', 'hide'] satisfies AxisTicksMode[]),\n // Gridline mode drives the grid itself, so keep both in sync from a single control.\n ...(capabilities.gridlines\n ? {\n toOptions: ({ options, value }: ContextWithValue<TContext, AxisTicksMode>) =>\n setNestedValue(\n setNestedValue(asRecord(options), ticksModeKey, value),\n `grid.${axis}.enabled`,\n value === 'gridlines'\n )\n }\n : {})\n }\n });\n }\n\n if (capabilities.gridlines) {\n const gridlinesVisible = ({ options }: TContext) => getNestedValue(options, ticksModeKey) === 'gridlines';\n\n children.push(\n {\n key: `grid.${axis}.style`,\n control: {\n type: 'picker',\n label: 'Gridline style',\n default: 'dotted' satisfies AxisGridlinesStyle,\n enum: ['solid', 'dotted', 'dashed'] satisfies AxisGridlinesStyle[]\n },\n visibleIf: gridlinesVisible\n },\n {\n key: `grid.${axis}.opacity`,\n control: {\n type: 'slider',\n label: 'Gridline opacity',\n default: 0.3,\n min: 0.1,\n max: 1,\n step: 0.05\n },\n visibleIf: gridlinesVisible\n }\n );\n }\n\n if (capabilities.datetimeTickStyle) {\n children.push({\n key: `axis.${axis}.ticksStyle`,\n control: {\n type: 'picker',\n label: 'Date format',\n default: 'auto',\n enum: ['auto', 'userDefined']\n }\n });\n }\n\n return {\n key: `${axis}AxisTicks`,\n type: 'group',\n label: roleLabel(role, 'ticks'),\n collapsible: true,\n open: true,\n children\n };\n};\n\nexport const createAxisOptions = <TContext extends OptionsConfigContext>(\n capabilities: AxisOptionsCapabilities\n): OptionConfig<TContext>[] => {\n const { axis, role } = capabilities;\n const controls: OptionConfig<TContext>[] = [];\n\n if (capabilities.scale) {\n const scaleKey = `axis.${axis}.scale`;\n const logarithmicBaseKey = `axis.${axis}.scaleLogBase`;\n\n controls.push(\n {\n key: scaleKey,\n control: {\n type: 'picker',\n label: roleLabel(role, 'type'),\n default: 'linear' satisfies AxisScaleType,\n enum: ['linear', 'logarithmic'] satisfies AxisScaleType[]\n }\n },\n {\n key: logarithmicBaseKey,\n control: {\n type: 'picker',\n label: 'Logarithmic base',\n default: '10' satisfies LogarithmicBase,\n enum: [...logarithmicBases],\n calculateValue: ({ options }: TContext) => {\n const value = String(getNestedValue(options, logarithmicBaseKey));\n\n return logarithmicBases.includes(value as LogarithmicBase) ? value : undefined;\n },\n toOptions: ({ options, value }: ContextWithValue<TContext, LogarithmicBase>) =>\n setNestedValue(asRecord(options), logarithmicBaseKey, Number(value))\n },\n visibleIf: ({ options }: TContext) => getNestedValue(options, scaleKey) === 'logarithmic'\n }\n );\n }\n\n if (capabilities.manualRange) {\n const { key, discriminatorKey } = capabilities.manualRange;\n\n controls.push(...createManualRangeControls<TContext>({\n rangeKey: key,\n labels: {\n range: roleLabel(role, 'range'),\n minimum: roleLabel(role, 'minimum'),\n maximum: roleLabel(role, 'maximum')\n },\n ...(discriminatorKey ? { discriminator: { key: discriminatorKey } } : {})\n }));\n }\n\n if (capabilities.color) {\n controls.push(createColorControl<TContext>(axis, role));\n }\n\n if (capabilities.label) {\n controls.push(createLabelGroup<TContext>(axis, role));\n }\n\n if (capabilities.tickMode || capabilities.tickDensity || capabilities.datetimeTickStyle) {\n controls.push(createTicksGroup<TContext>(capabilities));\n }\n\n return controls;\n};\n\nexport const createAxesOptionsGroup = <TContext extends OptionsConfigContext>(\n axes: AxisOptionsCapabilities[],\n additionalControls: OptionConfig<TContext>[] = []\n): OptionConfig<TContext> => ({\n key: 'axes',\n type: 'group',\n open: false,\n children: [...additionalControls, ...axes.flatMap((axis) => createAxisOptions<TContext>(axis))]\n});\n"],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ import { getThemeAxisColor as e, getThemeAxisColorExtraLabelClickAction as t, getThemeAxisColorExtraLabelHasClickAction as n, getThemeAxisColorResetLabel as r } from "../../helpers.js";
2
+ //#region src/lib/shared/utils/axis-options.config.ts
3
+ var i = (e, t) => {
4
+ let n = e;
5
+ for (let e of t.split(".")) {
6
+ if (typeof n != "object" || !n || Array.isArray(n)) return;
7
+ n = n[e];
8
+ }
9
+ return n;
10
+ }, a = (e) => typeof e == "object" && !!e && !Array.isArray(e), o = (e) => a(e) ? e : {}, s = (e, t, n) => {
11
+ let [r, ...i] = t.split(".");
12
+ return i.length === 0 ? {
13
+ ...e,
14
+ [r]: n
15
+ } : {
16
+ ...e,
17
+ [r]: s(o(e[r]), i.join("."), n)
18
+ };
19
+ }, c = (e, t) => {
20
+ let [n, ...r] = t.split(".");
21
+ if (!(n in e)) return e;
22
+ if (r.length > 0) {
23
+ if (!a(e[n])) return e;
24
+ let t = c(e[n], r.join("."));
25
+ if (Object.keys(t).length > 0) return {
26
+ ...e,
27
+ [n]: t
28
+ };
29
+ }
30
+ let i = { ...e };
31
+ return delete i[n], i;
32
+ }, l = (e, t) => `${e === "axis" ? "Axis" : `${e.charAt(0).toUpperCase()}${e.slice(1)} axis`} ${t}`, u = ["minimum", "maximum"], d = ":", f = [0, 100], p = ["2", "10"], m = (e, t) => `${e}${d}${t}`, h = (e) => `${e}${d}bounds`, g = [
33
+ "manualAxesRange",
34
+ "manualAxesRange.x",
35
+ "manualAxesRange.y",
36
+ "axis.y.manualAxesRange",
37
+ "axis.y2.manualAxesRange",
38
+ "manualAxisRange"
39
+ ], _ = (e) => {
40
+ let t = typeof e == "string" ? Number.parseFloat(e) : e;
41
+ return typeof t == "number" && Number.isFinite(t) ? t : void 0;
42
+ }, v = (e, t) => {
43
+ let n = i(e, t);
44
+ if (!Array.isArray(n) || n.length !== 2) return;
45
+ let r = _(n[0]), a = _(n[1]);
46
+ return r === void 0 || a === void 0 ? void 0 : [r, a];
47
+ }, y = (e, t, n, r) => {
48
+ let i = _(r);
49
+ if (i === void 0) return c(o(e), t);
50
+ let [a, l] = v(e, t) ?? f, u = n === "minimum" ? i : a, d = n === "maximum" ? i : l;
51
+ return s(o(e), t, u > d ? [d, u] : [u, d]);
52
+ }, b = ({ rangeKey: e, labels: t, discriminator: n }) => {
53
+ let r = [];
54
+ return n && r.push({
55
+ key: n.key,
56
+ control: {
57
+ type: "picker",
58
+ label: t.range ?? "Manual axis range",
59
+ default: n.default ?? "default",
60
+ enum: [
61
+ "default",
62
+ "manual",
63
+ "variable"
64
+ ],
65
+ toOptions: ({ options: t, value: r }) => {
66
+ let i = s(o(t), n.key, r);
67
+ return r === "manual" ? v(t, e) ? i : s(i, e, [...f]) : c(i, e);
68
+ }
69
+ }
70
+ }), r.push({
71
+ key: h(e),
72
+ type: "group",
73
+ label: t.range ?? "Manual axis range",
74
+ collapsible: !0,
75
+ open: !0,
76
+ children: u.map((n) => ({
77
+ key: m(e, n),
78
+ control: {
79
+ type: "number-field",
80
+ label: t[n],
81
+ editorOnly: !0,
82
+ calculateValue: ({ options: t }) => v(t, e)?.[n === "minimum" ? 0 : 1],
83
+ toOptions: ({ options: t, value: r }) => y(t, e, n, r)
84
+ }
85
+ })),
86
+ ...n ? { visibleIf: ({ options: e }) => i(e, n.key) === "manual" } : {}
87
+ }), r;
88
+ }, x = (i, a) => {
89
+ let o = `axis.${i}.color`;
90
+ return {
91
+ key: o,
92
+ control: {
93
+ type: "color-picker",
94
+ label: l(a, "color"),
95
+ default: ({ theme: t }) => e(t),
96
+ extraLabel: ({ options: e, theme: t }) => r(e, t, o),
97
+ extraLabelHasClickAction: ({ options: e, theme: t }) => n(e, t, o),
98
+ extraLabelClickAction: ({ options: e, theme: n }) => t(e, n, o)
99
+ }
100
+ };
101
+ }, S = (e, t) => ({
102
+ key: `${e}AxisLabels`,
103
+ type: "group",
104
+ label: l(t, "label"),
105
+ collapsible: !0,
106
+ open: !0,
107
+ children: [{
108
+ key: `axislabels.${e}.enabled`,
109
+ control: {
110
+ type: "switch",
111
+ label: "Enabled",
112
+ default: !1
113
+ }
114
+ }, {
115
+ key: `axislabels.${e}.position`,
116
+ control: {
117
+ type: "picker",
118
+ label: "Position",
119
+ default: e === "x" ? "center" : "middle",
120
+ enum: e === "x" ? [
121
+ "left",
122
+ "center",
123
+ "right"
124
+ ] : [
125
+ "top",
126
+ "middle",
127
+ "bottom"
128
+ ]
129
+ },
130
+ visibleIf: ({ options: t }) => i(t, `axislabels.${e}.enabled`) === !0
131
+ }]
132
+ }), C = (e) => {
133
+ let { axis: t, role: n } = e, r = `axis.${t}.ticksMode`, a = [];
134
+ if (e.tickDensity && a.push({
135
+ key: `axis.${t}.ticksDensity`,
136
+ control: {
137
+ type: "picker",
138
+ label: "Density",
139
+ default: "normal",
140
+ enum: [
141
+ "compact",
142
+ "normal",
143
+ "sparse"
144
+ ]
145
+ }
146
+ }), e.tickMode && a.push({
147
+ key: r,
148
+ control: {
149
+ type: "picker",
150
+ label: "Display mode",
151
+ default: "ticks",
152
+ enum: e.gridlines ? [
153
+ "ticks",
154
+ "hide",
155
+ "gridlines"
156
+ ] : ["ticks", "hide"],
157
+ ...e.gridlines ? { toOptions: ({ options: e, value: n }) => s(s(o(e), r, n), `grid.${t}.enabled`, n === "gridlines") } : {}
158
+ }
159
+ }), e.gridlines) {
160
+ let e = ({ options: e }) => i(e, r) === "gridlines";
161
+ a.push({
162
+ key: `grid.${t}.style`,
163
+ control: {
164
+ type: "picker",
165
+ label: "Gridline style",
166
+ default: "dotted",
167
+ enum: [
168
+ "solid",
169
+ "dotted",
170
+ "dashed"
171
+ ]
172
+ },
173
+ visibleIf: e
174
+ }, {
175
+ key: `grid.${t}.opacity`,
176
+ control: {
177
+ type: "slider",
178
+ label: "Gridline opacity",
179
+ default: .3,
180
+ min: .1,
181
+ max: 1,
182
+ step: .05
183
+ },
184
+ visibleIf: e
185
+ });
186
+ }
187
+ return e.datetimeTickStyle && a.push({
188
+ key: `axis.${t}.ticksStyle`,
189
+ control: {
190
+ type: "picker",
191
+ label: "Date format",
192
+ default: "auto",
193
+ enum: ["auto", "userDefined"]
194
+ }
195
+ }), {
196
+ key: `${t}AxisTicks`,
197
+ type: "group",
198
+ label: l(n, "ticks"),
199
+ collapsible: !0,
200
+ open: !0,
201
+ children: a
202
+ };
203
+ }, w = (e) => {
204
+ let { axis: t, role: n } = e, r = [];
205
+ if (e.scale) {
206
+ let e = `axis.${t}.scale`, a = `axis.${t}.scaleLogBase`;
207
+ r.push({
208
+ key: e,
209
+ control: {
210
+ type: "picker",
211
+ label: l(n, "type"),
212
+ default: "linear",
213
+ enum: ["linear", "logarithmic"]
214
+ }
215
+ }, {
216
+ key: a,
217
+ control: {
218
+ type: "picker",
219
+ label: "Logarithmic base",
220
+ default: "10",
221
+ enum: [...p],
222
+ calculateValue: ({ options: e }) => {
223
+ let t = String(i(e, a));
224
+ return p.includes(t) ? t : void 0;
225
+ },
226
+ toOptions: ({ options: e, value: t }) => s(o(e), a, Number(t))
227
+ },
228
+ visibleIf: ({ options: t }) => i(t, e) === "logarithmic"
229
+ });
230
+ }
231
+ if (e.manualRange) {
232
+ let { key: t, discriminatorKey: i } = e.manualRange;
233
+ r.push(...b({
234
+ rangeKey: t,
235
+ labels: {
236
+ range: l(n, "range"),
237
+ minimum: l(n, "minimum"),
238
+ maximum: l(n, "maximum")
239
+ },
240
+ ...i ? { discriminator: { key: i } } : {}
241
+ }));
242
+ }
243
+ return e.color && r.push(x(t, n)), e.label && r.push(S(t, n)), (e.tickMode || e.tickDensity || e.datetimeTickStyle) && r.push(C(e)), r;
244
+ }, T = (e, t = []) => ({
245
+ key: "axes",
246
+ type: "group",
247
+ open: !1,
248
+ children: [...t, ...e.flatMap((e) => w(e))]
249
+ });
250
+ //#endregion
251
+ export { T as createAxesOptionsGroup, w as createAxisOptions, b as createManualRangeControls, m as manualRangeBoundKey, u as manualRangeBounds, h as manualRangeGroupKey, g as manualRangeKeys };
252
+
253
+ //# sourceMappingURL=axis-options.config.js.map