@luzmo/dashboard-contents-types 1.0.40 → 1.0.42

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 (428) hide show
  1. package/CHANGELOG.md +12 -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 +34 -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 +34 -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 +51 -78
  53. package/box-plot/box-plot-options.config.js.map +1 -1
  54. package/bubble-chart/bubble-chart-options.config.cjs +1 -1
  55. package/bubble-chart/bubble-chart-options.config.cjs.map +1 -1
  56. package/bubble-chart/bubble-chart-options.config.js +112 -107
  57. package/bubble-chart/bubble-chart-options.config.js.map +1 -1
  58. package/bullet-chart/bullet-chart-options.config.cjs +1 -1
  59. package/bullet-chart/bullet-chart-options.config.cjs.map +1 -1
  60. package/bullet-chart/bullet-chart-options.config.js +4 -3
  61. package/bullet-chart/bullet-chart-options.config.js.map +1 -1
  62. package/choropleth-map/choropleth-map-options.config.cjs +1 -1
  63. package/choropleth-map/choropleth-map-options.config.cjs.map +1 -1
  64. package/choropleth-map/choropleth-map-options.config.js +39 -37
  65. package/choropleth-map/choropleth-map-options.config.js.map +1 -1
  66. package/circle-pack-chart/circle-pack-chart-options.config.cjs +1 -1
  67. package/circle-pack-chart/circle-pack-chart-options.config.cjs.map +1 -1
  68. package/circle-pack-chart/circle-pack-chart-options.config.js +4 -3
  69. package/circle-pack-chart/circle-pack-chart-options.config.js.map +1 -1
  70. package/circular-gauge/circular-gauge-options.config.cjs +1 -1
  71. package/circular-gauge/circular-gauge-options.config.cjs.map +1 -1
  72. package/circular-gauge/circular-gauge-options.config.js +148 -143
  73. package/circular-gauge/circular-gauge-options.config.js.map +1 -1
  74. package/column-chart/column-chart-options.config.cjs +1 -1
  75. package/column-chart/column-chart-options.config.cjs.map +1 -1
  76. package/column-chart/column-chart-options.config.js +34 -75
  77. package/column-chart/column-chart-options.config.js.map +1 -1
  78. package/column-chart/i18n/column-chart-options.de.cjs +1 -1
  79. package/column-chart/i18n/column-chart-options.de.cjs.map +1 -1
  80. package/column-chart/i18n/column-chart-options.de.js +6 -6
  81. package/column-chart/i18n/column-chart-options.de.js.map +1 -1
  82. package/column-chart/i18n/column-chart-options.en.cjs +1 -1
  83. package/column-chart/i18n/column-chart-options.en.cjs.map +1 -1
  84. package/column-chart/i18n/column-chart-options.en.js +6 -6
  85. package/column-chart/i18n/column-chart-options.en.js.map +1 -1
  86. package/column-chart/i18n/column-chart-options.es.cjs +1 -1
  87. package/column-chart/i18n/column-chart-options.es.cjs.map +1 -1
  88. package/column-chart/i18n/column-chart-options.es.js +6 -6
  89. package/column-chart/i18n/column-chart-options.es.js.map +1 -1
  90. package/column-chart/i18n/column-chart-options.fr.cjs +1 -1
  91. package/column-chart/i18n/column-chart-options.fr.cjs.map +1 -1
  92. package/column-chart/i18n/column-chart-options.fr.js +6 -6
  93. package/column-chart/i18n/column-chart-options.fr.js.map +1 -1
  94. package/column-chart/i18n/column-chart-options.nl.cjs +1 -1
  95. package/column-chart/i18n/column-chart-options.nl.cjs.map +1 -1
  96. package/column-chart/i18n/column-chart-options.nl.js +6 -6
  97. package/column-chart/i18n/column-chart-options.nl.js.map +1 -1
  98. package/combination-chart/combination-chart-options.config.cjs +1 -1
  99. package/combination-chart/combination-chart-options.config.cjs.map +1 -1
  100. package/combination-chart/combination-chart-options.config.js +46 -62
  101. package/combination-chart/combination-chart-options.config.js.map +1 -1
  102. package/combination-chart/i18n/combination-chart-options.de.cjs +1 -1
  103. package/combination-chart/i18n/combination-chart-options.de.cjs.map +1 -1
  104. package/combination-chart/i18n/combination-chart-options.de.js +2 -0
  105. package/combination-chart/i18n/combination-chart-options.de.js.map +1 -1
  106. package/combination-chart/i18n/combination-chart-options.en.cjs +1 -1
  107. package/combination-chart/i18n/combination-chart-options.en.cjs.map +1 -1
  108. package/combination-chart/i18n/combination-chart-options.en.js +2 -0
  109. package/combination-chart/i18n/combination-chart-options.en.js.map +1 -1
  110. package/combination-chart/i18n/combination-chart-options.es.cjs +1 -1
  111. package/combination-chart/i18n/combination-chart-options.es.cjs.map +1 -1
  112. package/combination-chart/i18n/combination-chart-options.es.js +2 -0
  113. package/combination-chart/i18n/combination-chart-options.es.js.map +1 -1
  114. package/combination-chart/i18n/combination-chart-options.fr.cjs +1 -1
  115. package/combination-chart/i18n/combination-chart-options.fr.cjs.map +1 -1
  116. package/combination-chart/i18n/combination-chart-options.fr.js +2 -0
  117. package/combination-chart/i18n/combination-chart-options.fr.js.map +1 -1
  118. package/combination-chart/i18n/combination-chart-options.nl.cjs +1 -1
  119. package/combination-chart/i18n/combination-chart-options.nl.cjs.map +1 -1
  120. package/combination-chart/i18n/combination-chart-options.nl.js +2 -0
  121. package/combination-chart/i18n/combination-chart-options.nl.js.map +1 -1
  122. package/conditional-number/conditional-number-options.config.cjs +1 -1
  123. package/conditional-number/conditional-number-options.config.cjs.map +1 -1
  124. package/conditional-number/conditional-number-options.config.js +156 -151
  125. package/conditional-number/conditional-number-options.config.js.map +1 -1
  126. package/donut-chart/donut-chart-options.config.cjs +1 -1
  127. package/donut-chart/donut-chart-options.config.cjs.map +1 -1
  128. package/donut-chart/donut-chart-options.config.js +184 -179
  129. package/donut-chart/donut-chart-options.config.js.map +1 -1
  130. package/evolution-number/evolution-number-options.config.cjs +1 -1
  131. package/evolution-number/evolution-number-options.config.cjs.map +1 -1
  132. package/evolution-number/evolution-number-options.config.js +5 -3
  133. package/evolution-number/evolution-number-options.config.js.map +1 -1
  134. package/funnel-chart/funnel-chart-options.config.cjs +1 -1
  135. package/funnel-chart/funnel-chart-options.config.cjs.map +1 -1
  136. package/funnel-chart/funnel-chart-options.config.js +5 -3
  137. package/funnel-chart/funnel-chart-options.config.js.map +1 -1
  138. package/heat-map/heat-map-options.config.cjs +1 -1
  139. package/heat-map/heat-map-options.config.cjs.map +1 -1
  140. package/heat-map/heat-map-options.config.js +32 -30
  141. package/heat-map/heat-map-options.config.js.map +1 -1
  142. package/heat-table/heat-table-options.config.cjs +1 -1
  143. package/heat-table/heat-table-options.config.cjs.map +1 -1
  144. package/heat-table/heat-table-options.config.js +50 -155
  145. package/heat-table/heat-table-options.config.js.map +1 -1
  146. package/hexbin-map/hexbin-map-options.config.cjs +1 -1
  147. package/hexbin-map/hexbin-map-options.config.cjs.map +1 -1
  148. package/hexbin-map/hexbin-map-options.config.js +20 -18
  149. package/hexbin-map/hexbin-map-options.config.js.map +1 -1
  150. package/index.cjs +1 -1
  151. package/index.js +194 -191
  152. package/line-chart/i18n/line-chart-options.de.cjs +1 -1
  153. package/line-chart/i18n/line-chart-options.de.cjs.map +1 -1
  154. package/line-chart/i18n/line-chart-options.de.js +2 -0
  155. package/line-chart/i18n/line-chart-options.de.js.map +1 -1
  156. package/line-chart/i18n/line-chart-options.en.cjs +1 -1
  157. package/line-chart/i18n/line-chart-options.en.cjs.map +1 -1
  158. package/line-chart/i18n/line-chart-options.en.js +2 -0
  159. package/line-chart/i18n/line-chart-options.en.js.map +1 -1
  160. package/line-chart/i18n/line-chart-options.es.cjs +1 -1
  161. package/line-chart/i18n/line-chart-options.es.cjs.map +1 -1
  162. package/line-chart/i18n/line-chart-options.es.js +2 -0
  163. package/line-chart/i18n/line-chart-options.es.js.map +1 -1
  164. package/line-chart/i18n/line-chart-options.fr.cjs +1 -1
  165. package/line-chart/i18n/line-chart-options.fr.cjs.map +1 -1
  166. package/line-chart/i18n/line-chart-options.fr.js +2 -0
  167. package/line-chart/i18n/line-chart-options.fr.js.map +1 -1
  168. package/line-chart/i18n/line-chart-options.nl.cjs +1 -1
  169. package/line-chart/i18n/line-chart-options.nl.cjs.map +1 -1
  170. package/line-chart/i18n/line-chart-options.nl.js +2 -0
  171. package/line-chart/i18n/line-chart-options.nl.js.map +1 -1
  172. package/line-chart/line-chart-options.config.cjs +1 -1
  173. package/line-chart/line-chart-options.config.cjs.map +1 -1
  174. package/line-chart/line-chart-options.config.js +49 -65
  175. package/line-chart/line-chart-options.config.js.map +1 -1
  176. package/marker-map/marker-map-options.config.cjs +1 -1
  177. package/marker-map/marker-map-options.config.cjs.map +1 -1
  178. package/marker-map/marker-map-options.config.js +97 -92
  179. package/marker-map/marker-map-options.config.js.map +1 -1
  180. package/ohlc-chart/i18n/ohlc-chart-options.de.cjs +1 -1
  181. package/ohlc-chart/i18n/ohlc-chart-options.de.cjs.map +1 -1
  182. package/ohlc-chart/i18n/ohlc-chart-options.de.js +2 -0
  183. package/ohlc-chart/i18n/ohlc-chart-options.de.js.map +1 -1
  184. package/ohlc-chart/i18n/ohlc-chart-options.en.cjs +1 -1
  185. package/ohlc-chart/i18n/ohlc-chart-options.en.cjs.map +1 -1
  186. package/ohlc-chart/i18n/ohlc-chart-options.en.js +2 -0
  187. package/ohlc-chart/i18n/ohlc-chart-options.en.js.map +1 -1
  188. package/ohlc-chart/i18n/ohlc-chart-options.es.cjs +1 -1
  189. package/ohlc-chart/i18n/ohlc-chart-options.es.cjs.map +1 -1
  190. package/ohlc-chart/i18n/ohlc-chart-options.es.js +2 -0
  191. package/ohlc-chart/i18n/ohlc-chart-options.es.js.map +1 -1
  192. package/ohlc-chart/i18n/ohlc-chart-options.fr.cjs +1 -1
  193. package/ohlc-chart/i18n/ohlc-chart-options.fr.cjs.map +1 -1
  194. package/ohlc-chart/i18n/ohlc-chart-options.fr.js +2 -0
  195. package/ohlc-chart/i18n/ohlc-chart-options.fr.js.map +1 -1
  196. package/ohlc-chart/i18n/ohlc-chart-options.nl.cjs +1 -1
  197. package/ohlc-chart/i18n/ohlc-chart-options.nl.cjs.map +1 -1
  198. package/ohlc-chart/i18n/ohlc-chart-options.nl.js +2 -0
  199. package/ohlc-chart/i18n/ohlc-chart-options.nl.js.map +1 -1
  200. package/ohlc-chart/ohlc-chart-options.config.cjs +1 -1
  201. package/ohlc-chart/ohlc-chart-options.config.cjs.map +1 -1
  202. package/ohlc-chart/ohlc-chart-options.config.js +63 -98
  203. package/ohlc-chart/ohlc-chart-options.config.js.map +1 -1
  204. package/package.json +1 -1
  205. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs +1 -1
  206. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs.map +1 -1
  207. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js +4 -3
  208. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js.map +1 -1
  209. package/pivot-table/pivot-table-options.config.cjs +1 -1
  210. package/pivot-table/pivot-table-options.config.cjs.map +1 -1
  211. package/pivot-table/pivot-table-options.config.js +5 -3
  212. package/pivot-table/pivot-table-options.config.js.map +1 -1
  213. package/pyramid-chart/pyramid-chart-options.config.cjs +1 -1
  214. package/pyramid-chart/pyramid-chart-options.config.cjs.map +1 -1
  215. package/pyramid-chart/pyramid-chart-options.config.js +19 -61
  216. package/pyramid-chart/pyramid-chart-options.config.js.map +1 -1
  217. package/radar-chart/radar-chart-options.config.cjs +1 -1
  218. package/radar-chart/radar-chart-options.config.cjs.map +1 -1
  219. package/radar-chart/radar-chart-options.config.js +7 -5
  220. package/radar-chart/radar-chart-options.config.js.map +1 -1
  221. package/regular-table/regular-table-options.config.cjs +1 -1
  222. package/regular-table/regular-table-options.config.cjs.map +1 -1
  223. package/regular-table/regular-table-options.config.js +126 -121
  224. package/regular-table/regular-table-options.config.js.map +1 -1
  225. package/route-map/route-map-options.config.cjs +1 -1
  226. package/route-map/route-map-options.config.cjs.map +1 -1
  227. package/route-map/route-map-options.config.js +38 -36
  228. package/route-map/route-map-options.config.js.map +1 -1
  229. package/sankey-diagram/sankey-diagram-options.config.cjs +1 -1
  230. package/sankey-diagram/sankey-diagram-options.config.cjs.map +1 -1
  231. package/sankey-diagram/sankey-diagram-options.config.js +5 -3
  232. package/sankey-diagram/sankey-diagram-options.config.js.map +1 -1
  233. package/scatter-plot/i18n/scatter-plot-options.de.cjs +1 -1
  234. package/scatter-plot/i18n/scatter-plot-options.de.cjs.map +1 -1
  235. package/scatter-plot/i18n/scatter-plot-options.de.js +3 -0
  236. package/scatter-plot/i18n/scatter-plot-options.de.js.map +1 -1
  237. package/scatter-plot/i18n/scatter-plot-options.en.cjs +1 -1
  238. package/scatter-plot/i18n/scatter-plot-options.en.cjs.map +1 -1
  239. package/scatter-plot/i18n/scatter-plot-options.en.js +3 -0
  240. package/scatter-plot/i18n/scatter-plot-options.en.js.map +1 -1
  241. package/scatter-plot/i18n/scatter-plot-options.es.cjs +1 -1
  242. package/scatter-plot/i18n/scatter-plot-options.es.cjs.map +1 -1
  243. package/scatter-plot/i18n/scatter-plot-options.es.js +3 -0
  244. package/scatter-plot/i18n/scatter-plot-options.es.js.map +1 -1
  245. package/scatter-plot/i18n/scatter-plot-options.fr.cjs +1 -1
  246. package/scatter-plot/i18n/scatter-plot-options.fr.cjs.map +1 -1
  247. package/scatter-plot/i18n/scatter-plot-options.fr.js +3 -0
  248. package/scatter-plot/i18n/scatter-plot-options.fr.js.map +1 -1
  249. package/scatter-plot/i18n/scatter-plot-options.nl.cjs +1 -1
  250. package/scatter-plot/i18n/scatter-plot-options.nl.cjs.map +1 -1
  251. package/scatter-plot/i18n/scatter-plot-options.nl.js +3 -0
  252. package/scatter-plot/i18n/scatter-plot-options.nl.js.map +1 -1
  253. package/scatter-plot/scatter-plot-options.config.cjs +1 -1
  254. package/scatter-plot/scatter-plot-options.config.cjs.map +1 -1
  255. package/scatter-plot/scatter-plot-options.config.js +32 -226
  256. package/scatter-plot/scatter-plot-options.config.js.map +1 -1
  257. package/shared/utils/axis-options.config.cjs +2 -0
  258. package/shared/utils/axis-options.config.cjs.map +1 -0
  259. package/shared/utils/axis-options.config.js +253 -0
  260. package/shared/utils/axis-options.config.js.map +1 -0
  261. package/shared/utils/axis-options.i18n.cjs +2 -0
  262. package/shared/utils/axis-options.i18n.cjs.map +1 -0
  263. package/shared/utils/axis-options.i18n.js +469 -0
  264. package/shared/utils/axis-options.i18n.js.map +1 -0
  265. package/shared/utils/guidelines-options.config.cjs +2 -0
  266. package/shared/utils/guidelines-options.config.cjs.map +1 -0
  267. package/shared/utils/guidelines-options.config.js +31 -0
  268. package/shared/utils/guidelines-options.config.js.map +1 -0
  269. package/shared/utils/info-tooltip-options.config.cjs +2 -0
  270. package/shared/utils/info-tooltip-options.config.cjs.map +1 -0
  271. package/shared/utils/info-tooltip-options.config.js +42 -0
  272. package/shared/utils/info-tooltip-options.config.js.map +1 -0
  273. package/shared/utils/info-tooltip-options.i18n.cjs +2 -0
  274. package/shared/utils/info-tooltip-options.i18n.cjs.map +1 -0
  275. package/shared/utils/info-tooltip-options.i18n.js +57 -0
  276. package/shared/utils/info-tooltip-options.i18n.js.map +1 -0
  277. package/shared/utils/options-loader.cjs +1 -1
  278. package/shared/utils/options-loader.cjs.map +1 -1
  279. package/shared/utils/options-loader.js +17 -1
  280. package/shared/utils/options-loader.js.map +1 -1
  281. package/speedometer-chart/speedometer-chart-options.config.cjs +1 -1
  282. package/speedometer-chart/speedometer-chart-options.config.cjs.map +1 -1
  283. package/speedometer-chart/speedometer-chart-options.config.js +201 -196
  284. package/speedometer-chart/speedometer-chart-options.config.js.map +1 -1
  285. package/spike-map/spike-map-options.config.cjs +1 -1
  286. package/spike-map/spike-map-options.config.cjs.map +1 -1
  287. package/spike-map/spike-map-options.config.js +41 -39
  288. package/spike-map/spike-map-options.config.js.map +1 -1
  289. package/src/lib/area-chart/area-chart-options.config.d.ts.map +1 -1
  290. package/src/lib/area-chart/i18n/area-chart-options.de.d.ts +6 -0
  291. package/src/lib/area-chart/i18n/area-chart-options.de.d.ts.map +1 -1
  292. package/src/lib/area-chart/i18n/area-chart-options.en.d.ts +6 -0
  293. package/src/lib/area-chart/i18n/area-chart-options.en.d.ts.map +1 -1
  294. package/src/lib/area-chart/i18n/area-chart-options.es.d.ts +6 -0
  295. package/src/lib/area-chart/i18n/area-chart-options.es.d.ts.map +1 -1
  296. package/src/lib/area-chart/i18n/area-chart-options.fr.d.ts +6 -0
  297. package/src/lib/area-chart/i18n/area-chart-options.fr.d.ts.map +1 -1
  298. package/src/lib/area-chart/i18n/area-chart-options.nl.d.ts +6 -0
  299. package/src/lib/area-chart/i18n/area-chart-options.nl.d.ts.map +1 -1
  300. package/src/lib/bar-chart/bar-chart-options.config.d.ts.map +1 -1
  301. package/src/lib/bar-chart/i18n/bar-chart-options.de.d.ts +3 -1
  302. package/src/lib/bar-chart/i18n/bar-chart-options.de.d.ts.map +1 -1
  303. package/src/lib/bar-chart/i18n/bar-chart-options.en.d.ts +3 -1
  304. package/src/lib/bar-chart/i18n/bar-chart-options.en.d.ts.map +1 -1
  305. package/src/lib/bar-chart/i18n/bar-chart-options.es.d.ts +3 -1
  306. package/src/lib/bar-chart/i18n/bar-chart-options.es.d.ts.map +1 -1
  307. package/src/lib/bar-chart/i18n/bar-chart-options.fr.d.ts +3 -1
  308. package/src/lib/bar-chart/i18n/bar-chart-options.fr.d.ts.map +1 -1
  309. package/src/lib/bar-chart/i18n/bar-chart-options.nl.d.ts +3 -1
  310. package/src/lib/bar-chart/i18n/bar-chart-options.nl.d.ts.map +1 -1
  311. package/src/lib/box-plot/box-plot-options.config.d.ts.map +1 -1
  312. package/src/lib/bubble-chart/bubble-chart-options.config.d.ts.map +1 -1
  313. package/src/lib/bullet-chart/bullet-chart-options.config.d.ts.map +1 -1
  314. package/src/lib/choropleth-map/choropleth-map-options.config.d.ts.map +1 -1
  315. package/src/lib/circle-pack-chart/circle-pack-chart-options.config.d.ts.map +1 -1
  316. package/src/lib/circular-gauge/circular-gauge-options.config.d.ts.map +1 -1
  317. package/src/lib/column-chart/column-chart-options.config.d.ts.map +1 -1
  318. package/src/lib/column-chart/i18n/column-chart-options.de.d.ts +3 -1
  319. package/src/lib/column-chart/i18n/column-chart-options.de.d.ts.map +1 -1
  320. package/src/lib/column-chart/i18n/column-chart-options.en.d.ts +3 -1
  321. package/src/lib/column-chart/i18n/column-chart-options.en.d.ts.map +1 -1
  322. package/src/lib/column-chart/i18n/column-chart-options.es.d.ts +3 -1
  323. package/src/lib/column-chart/i18n/column-chart-options.es.d.ts.map +1 -1
  324. package/src/lib/column-chart/i18n/column-chart-options.fr.d.ts +3 -1
  325. package/src/lib/column-chart/i18n/column-chart-options.fr.d.ts.map +1 -1
  326. package/src/lib/column-chart/i18n/column-chart-options.nl.d.ts +3 -1
  327. package/src/lib/column-chart/i18n/column-chart-options.nl.d.ts.map +1 -1
  328. package/src/lib/combination-chart/combination-chart-options.config.d.ts.map +1 -1
  329. package/src/lib/combination-chart/i18n/combination-chart-options.de.d.ts +6 -0
  330. package/src/lib/combination-chart/i18n/combination-chart-options.de.d.ts.map +1 -1
  331. package/src/lib/combination-chart/i18n/combination-chart-options.en.d.ts +6 -0
  332. package/src/lib/combination-chart/i18n/combination-chart-options.en.d.ts.map +1 -1
  333. package/src/lib/combination-chart/i18n/combination-chart-options.es.d.ts +6 -0
  334. package/src/lib/combination-chart/i18n/combination-chart-options.es.d.ts.map +1 -1
  335. package/src/lib/combination-chart/i18n/combination-chart-options.fr.d.ts +6 -0
  336. package/src/lib/combination-chart/i18n/combination-chart-options.fr.d.ts.map +1 -1
  337. package/src/lib/combination-chart/i18n/combination-chart-options.nl.d.ts +6 -0
  338. package/src/lib/combination-chart/i18n/combination-chart-options.nl.d.ts.map +1 -1
  339. package/src/lib/conditional-number/conditional-number-options.config.d.ts.map +1 -1
  340. package/src/lib/donut-chart/donut-chart-options.config.d.ts.map +1 -1
  341. package/src/lib/evolution-number/evolution-number-options.config.d.ts.map +1 -1
  342. package/src/lib/funnel-chart/funnel-chart-options.config.d.ts.map +1 -1
  343. package/src/lib/heat-map/heat-map-options.config.d.ts.map +1 -1
  344. package/src/lib/heat-table/heat-table-options.config.d.ts.map +1 -1
  345. package/src/lib/hexbin-map/hexbin-map-options.config.d.ts.map +1 -1
  346. package/src/lib/line-chart/i18n/line-chart-options.de.d.ts +6 -0
  347. package/src/lib/line-chart/i18n/line-chart-options.de.d.ts.map +1 -1
  348. package/src/lib/line-chart/i18n/line-chart-options.en.d.ts +6 -0
  349. package/src/lib/line-chart/i18n/line-chart-options.en.d.ts.map +1 -1
  350. package/src/lib/line-chart/i18n/line-chart-options.es.d.ts +6 -0
  351. package/src/lib/line-chart/i18n/line-chart-options.es.d.ts.map +1 -1
  352. package/src/lib/line-chart/i18n/line-chart-options.fr.d.ts +6 -0
  353. package/src/lib/line-chart/i18n/line-chart-options.fr.d.ts.map +1 -1
  354. package/src/lib/line-chart/i18n/line-chart-options.nl.d.ts +6 -0
  355. package/src/lib/line-chart/i18n/line-chart-options.nl.d.ts.map +1 -1
  356. package/src/lib/line-chart/line-chart-options.config.d.ts.map +1 -1
  357. package/src/lib/marker-map/marker-map-options.config.d.ts.map +1 -1
  358. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.de.d.ts +6 -0
  359. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.de.d.ts.map +1 -1
  360. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.en.d.ts +6 -0
  361. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.en.d.ts.map +1 -1
  362. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.es.d.ts +6 -0
  363. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.es.d.ts.map +1 -1
  364. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.fr.d.ts +6 -0
  365. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.fr.d.ts.map +1 -1
  366. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.nl.d.ts +6 -0
  367. package/src/lib/ohlc-chart/i18n/ohlc-chart-options.nl.d.ts.map +1 -1
  368. package/src/lib/ohlc-chart/ohlc-chart-options.config.d.ts.map +1 -1
  369. package/src/lib/parallel-coordinates-plot/parallel-coordinates-plot-options.config.d.ts.map +1 -1
  370. package/src/lib/pivot-table/pivot-table-options.config.d.ts.map +1 -1
  371. package/src/lib/pyramid-chart/pyramid-chart-options.config.d.ts.map +1 -1
  372. package/src/lib/radar-chart/radar-chart-options.config.d.ts.map +1 -1
  373. package/src/lib/regular-table/regular-table-options.config.d.ts.map +1 -1
  374. package/src/lib/route-map/route-map-options.config.d.ts.map +1 -1
  375. package/src/lib/sankey-diagram/sankey-diagram-options.config.d.ts.map +1 -1
  376. package/src/lib/scatter-plot/i18n/scatter-plot-options.de.d.ts +9 -0
  377. package/src/lib/scatter-plot/i18n/scatter-plot-options.de.d.ts.map +1 -1
  378. package/src/lib/scatter-plot/i18n/scatter-plot-options.en.d.ts +9 -0
  379. package/src/lib/scatter-plot/i18n/scatter-plot-options.en.d.ts.map +1 -1
  380. package/src/lib/scatter-plot/i18n/scatter-plot-options.es.d.ts +9 -0
  381. package/src/lib/scatter-plot/i18n/scatter-plot-options.es.d.ts.map +1 -1
  382. package/src/lib/scatter-plot/i18n/scatter-plot-options.fr.d.ts +9 -0
  383. package/src/lib/scatter-plot/i18n/scatter-plot-options.fr.d.ts.map +1 -1
  384. package/src/lib/scatter-plot/i18n/scatter-plot-options.nl.d.ts +9 -0
  385. package/src/lib/scatter-plot/i18n/scatter-plot-options.nl.d.ts.map +1 -1
  386. package/src/lib/scatter-plot/scatter-plot-options.config.d.ts.map +1 -1
  387. package/src/lib/shared/schemas/dashboard-state.schema.d.ts +2 -2
  388. package/src/lib/shared/schemas/screen-mode.schema.d.ts +1 -1
  389. package/src/lib/shared/utils/axis-options.config.d.ts +51 -0
  390. package/src/lib/shared/utils/axis-options.config.d.ts.map +1 -0
  391. package/src/lib/shared/utils/axis-options.i18n.d.ts +4 -0
  392. package/src/lib/shared/utils/axis-options.i18n.d.ts.map +1 -0
  393. package/src/lib/shared/utils/guidelines-options.config.d.ts +10 -0
  394. package/src/lib/shared/utils/guidelines-options.config.d.ts.map +1 -0
  395. package/src/lib/shared/utils/index.d.ts +3 -0
  396. package/src/lib/shared/utils/index.d.ts.map +1 -1
  397. package/src/lib/shared/utils/info-tooltip-options.config.d.ts +6 -0
  398. package/src/lib/shared/utils/info-tooltip-options.config.d.ts.map +1 -0
  399. package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts +3 -0
  400. package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts.map +1 -0
  401. package/src/lib/shared/utils/options-loader.d.ts.map +1 -1
  402. package/src/lib/speedometer-chart/speedometer-chart-options.config.d.ts.map +1 -1
  403. package/src/lib/spike-map/spike-map-options.config.d.ts.map +1 -1
  404. package/src/lib/strip-plot/strip-plot-options.config.d.ts.map +1 -1
  405. package/src/lib/sunburst-chart/sunburst-chart-options.config.d.ts.map +1 -1
  406. package/src/lib/symbol-map/symbol-map-options.config.d.ts.map +1 -1
  407. package/src/lib/treemap-chart/treemap-chart-options.config.d.ts.map +1 -1
  408. package/src/lib/wordcloud-chart/wordcloud-chart-options.config.d.ts.map +1 -1
  409. package/strip-plot/strip-plot-options.config.cjs +1 -1
  410. package/strip-plot/strip-plot-options.config.cjs.map +1 -1
  411. package/strip-plot/strip-plot-options.config.js +4 -3
  412. package/strip-plot/strip-plot-options.config.js.map +1 -1
  413. package/sunburst-chart/sunburst-chart-options.config.cjs +1 -1
  414. package/sunburst-chart/sunburst-chart-options.config.cjs.map +1 -1
  415. package/sunburst-chart/sunburst-chart-options.config.js +5 -3
  416. package/sunburst-chart/sunburst-chart-options.config.js.map +1 -1
  417. package/symbol-map/symbol-map-options.config.cjs +1 -1
  418. package/symbol-map/symbol-map-options.config.cjs.map +1 -1
  419. package/symbol-map/symbol-map-options.config.js +7 -5
  420. package/symbol-map/symbol-map-options.config.js.map +1 -1
  421. package/treemap-chart/treemap-chart-options.config.cjs +1 -1
  422. package/treemap-chart/treemap-chart-options.config.cjs.map +1 -1
  423. package/treemap-chart/treemap-chart-options.config.js +180 -175
  424. package/treemap-chart/treemap-chart-options.config.js.map +1 -1
  425. package/wordcloud-chart/wordcloud-chart-options.config.cjs +1 -1
  426. package/wordcloud-chart/wordcloud-chart-options.config.cjs.map +1 -1
  427. package/wordcloud-chart/wordcloud-chart-options.config.js +67 -62
  428. package/wordcloud-chart/wordcloud-chart-options.config.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"funnel-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/funnel-chart/funnel-chart-options.config.ts"],"sourcesContent":["import type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { FunnelChartViewOptions } from './funnel-chart-options';\n\ntype FunnelChartConfigContext = OptionsConfigContext<FunnelChartViewOptions>;\ntype FunnelChartConfigValue<T> = FunnelChartConfigContext & { value: T };\n\nconst funnelChartOptionsConfig: OptionsConfig<FunnelChartConfigContext> = [\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 calculateValue: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true,\n toOptions: ({ options, value }: FunnelChartConfigValue<boolean>) => ({\n ...options,\n display: {\n ...options.display,\n legend: value,\n categoryLabels: false\n }\n })\n }\n },\n {\n key: 'display.categoryLabels',\n control: {\n type: 'radio-button-group',\n label: 'Display legend as',\n default: 'labels',\n enum: ['list', 'labels'],\n parseValue: (value: string) => (value ? 'labels' : 'list'),\n toOptions: ({ options, value }: FunnelChartConfigValue<'list' | 'labels'>) => ({\n ...options,\n display: {\n ...options.display,\n categoryLabels: value === 'labels',\n legend: value !== 'labels'\n }\n })\n },\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n },\n {\n key: 'funnel.absValue',\n control: {\n type: 'switch',\n label: 'Show absolute values',\n default: true\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n },\n {\n key: 'funnel.perc',\n control: {\n type: 'picker',\n label: 'Percentage',\n default: 'hide',\n enum: ['hide', 'ofMax', 'ofTot']\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n }\n ]\n },\n {\n key: 'funnel',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n label: 'Mode',\n default: 'dynamicWidth',\n enum: ['dynamicWidth', 'dynamicHeight', 'regular']\n }\n },\n {\n key: 'funnel.rectangle',\n control: {\n type: 'switch',\n label: 'Rectangular',\n default: false\n }\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order',\n default: 'measure',\n enum: ['measure', 'category']\n }\n },\n {\n key: 'sort.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'desc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'limit.number',\n control: {\n type: 'number-field',\n label: 'Limit',\n default: 100000,\n min: 1,\n max: 100000\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: 'right',\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 }: FunnelChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend === true && String(options.display?.categoryLabels) === 'false'\n }\n];\n\nexport default funnelChartOptionsConfig;\n"],"mappings":";AAMA,IAAM,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;KACT,iBAAiB,EAAE,iBACjB,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;KAC7E,YAAY,EAAE,YAAS,gBAA8C;MACnE,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,QAAQ;OACR,gBAAgB;MAClB;KACF;IACF;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,QAAQ,QAAQ;KACvB,aAAa,MAAmB,IAAQ,WAAW;KACnD,YAAY,EAAE,YAAS,gBAAwD;MAC7E,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,gBAAgB,MAAU;OAC1B,QAAQ,MAAU;MACpB;KACF;IACF;IACA,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;GAC/E;GACA;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,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAQ;MAAS;KAAO;IACjC;IACA,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;EACF;CACF;CACA;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAgB;MAAiB;KAAS;IACnD;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,WAAW,UAAU;IAC9B;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,OAAO,MAAM;IACtB;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,KAAK;KACL,KAAK;IACP;GACF;EACF;CACF;CACA;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,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAQ,OAAO,EAAQ,SAAS,cAAc,MAAM;CACrF;AACF"}
1
+ {"version":3,"file":"funnel-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/funnel-chart/funnel-chart-options.config.ts"],"sourcesContent":["import { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { FunnelChartViewOptions } from './funnel-chart-options';\n\ntype FunnelChartConfigContext = OptionsConfigContext<FunnelChartViewOptions>;\ntype FunnelChartConfigValue<T> = FunnelChartConfigContext & { value: T };\n\nconst funnelChartOptionsConfig: OptionsConfig<FunnelChartConfigContext> = [\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 calculateValue: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true,\n toOptions: ({ options, value }: FunnelChartConfigValue<boolean>) => ({\n ...options,\n display: {\n ...options.display,\n legend: value,\n categoryLabels: false\n }\n })\n }\n },\n {\n key: 'display.categoryLabels',\n control: {\n type: 'radio-button-group',\n label: 'Display legend as',\n default: 'labels',\n enum: ['list', 'labels'],\n parseValue: (value: string) => (value ? 'labels' : 'list'),\n toOptions: ({ options, value }: FunnelChartConfigValue<'list' | 'labels'>) => ({\n ...options,\n display: {\n ...options.display,\n categoryLabels: value === 'labels',\n legend: value !== 'labels'\n }\n })\n },\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n },\n {\n key: 'funnel.absValue',\n control: {\n type: 'switch',\n label: 'Show absolute values',\n default: true\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n },\n {\n key: 'funnel.perc',\n control: {\n type: 'picker',\n label: 'Percentage',\n default: 'hide',\n enum: ['hide', 'ofMax', 'ofTot']\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n }\n ]\n },\n {\n key: 'funnel',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n label: 'Mode',\n default: 'dynamicWidth',\n enum: ['dynamicWidth', 'dynamicHeight', 'regular']\n }\n },\n {\n key: 'funnel.rectangle',\n control: {\n type: 'switch',\n label: 'Rectangular',\n default: false\n }\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order',\n default: 'measure',\n enum: ['measure', 'category']\n }\n },\n {\n key: 'sort.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'desc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'limit.number',\n control: {\n type: 'number-field',\n label: 'Limit',\n default: 100000,\n min: 1,\n max: 100000\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: 'right',\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 }: FunnelChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend === true && String(options.display?.categoryLabels) === 'false'\n },\n createInfoTooltipOptionsGroup<FunnelChartConfigContext>()\n];\n\nexport default funnelChartOptionsConfig;\n"],"mappings":";;AAOA,IAAM,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;KACT,iBAAiB,EAAE,iBACjB,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;KAC7E,YAAY,EAAE,YAAS,gBAA8C;MACnE,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,QAAQ;OACR,gBAAgB;MAClB;KACF;IACF;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,QAAQ,QAAQ;KACvB,aAAa,MAAmB,IAAQ,WAAW;KACnD,YAAY,EAAE,YAAS,gBAAwD;MAC7E,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,gBAAgB,MAAU;OAC1B,QAAQ,MAAU;MACpB;KACF;IACF;IACA,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;GAC/E;GACA;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,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAQ;MAAS;KAAO;IACjC;IACA,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;EACF;CACF;CACA;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAgB;MAAiB;KAAS;IACnD;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,WAAW,UAAU;IAC9B;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,OAAO,MAAM;IACtB;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,KAAK;KACL,KAAK;IACP;GACF;EACF;CACF;CACA;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,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAQ,OAAO,EAAQ,SAAS,cAAc,MAAM;CACrF;CACA,EAAwD;AAC1D"}
@@ -1,2 +1,2 @@
1
- const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../shared/utils/color/color-palettes.cjs"),n=require("../shared/utils/map-tile-providers.cjs");let r=require("colorjs.io");r=e.__toESM(r);var i=()=>structuredClone(t.getColorMaps().Spectrum.colors5),a=e=>{if(!e||e.length===0)return[];let t=/^rgb(a)?\s*\(/i.test(e.at(-1)?.trim()??``);return e.map(e=>new r.default(e).toString({format:t?`hex`:`rgb`}))},o=e=>{let n=e?.length||0;return n===0?{type:`heat`,colorClass:`Spectrum`,colors:i()??[]}:t.getColorMapKeys().map(e=>({type:t.getColorMaps()[e]?.type,colorClass:e,colors:t.getColorMaps()[e]?.[`colors${n}`]??[]})).find(t=>Array.isArray(t.colors)&&Array.isArray(e)&&t.colors.length===e.length&&t.colors.every((t,n)=>t===e[n]))??{type:`manual`,colorClass:`manual`,colors:e}},s=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`enabled.zoom`,control:{type:`switch`,label:`Zoom`,default:!0}},{key:`enabled.pan`,control:{type:`switch`,label:`Pan`,default:!0}},{key:`enabled.pitchBearing`,control:{type:`switch`,label:`Pitch & Rotate`,default:!1}},{type:`divider`},{key:`vectorTileProvider`,control:{type:`picker`,label:`Map style`,default:`Basic`,enum:[`Basic`,`Bright`,`Dark`,`Fiord`,`Liberty`,`Pastel`,`Positron`,`Streets`,`Toner`,`Topographique`,`Voyager`,`No Tiles`],parseValue:e=>e?.name||`Basic`,toValue:e=>n.mapVectorTileProviders[e]??{}}}]},{key:`heat`,type:`group`,open:!0,children:[{key:`enabled.adaptOnZoom`,control:{type:`switch`,label:`Adapt on zoom`,tooltip:`If turned off, density is calculated based on map surface`,default:!0}},{key:`screenRadius`,control:{type:`slider`,label:`Radius`,default:20,min:1,max:50,step:1}},{key:`intensity`,control:{type:`slider`,label:`Intensity`,tooltip:`Multiplier for the density, multiplies by 1 on minimum (default)`,default:1,min:1,max:100,step:1}}]},{key:`heatColors`,type:`group`,open:!0,children:[{key:`transparency`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`colorsClassType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`heat`,`sequential`,`manual`],calculateValue:({options:e})=>o(e?.colors??[]).type,toOptions:({options:e,value:n})=>{let r=o(e?.colors??[]),s={...e};return r.type!==n&&(s.colors=n===`manual`?a(r.colors??i()):t.getColorMaps()[t.getColorMapKeys(n)?.[0]]?.colors5??i()),s}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:`Spectrum`,enum:({options:e})=>{let n=o(e?.colors??[]).type;return t.getColorMapKeys([`heat`,`sequential`].includes(n)?n:`heat`)},calculateValue:({options:e})=>{let t=o(e?.colors??[]);return t?.colorClass&&t.colorClass!==`manual`?t.colorClass:`Spectrum`},toOptions:({options:e,value:n})=>({...e,colors:t.getColorMaps()[n]?.colors5??i()})},visibleIf:({options:e})=>o(e?.colors??[]).type!==`manual`},{key:`colors`,control:{type:`color-range`,editRangeSize:!1,noValues:!0,minimumRangeSize:4,noAlphaChannel:!0,hideLabel:!0,label:`Manual color ranges`,default:i(),parseValue:e=>e?.map(e=>({color:e})),toValue:e=>e?.map(e=>e?.color)??[]},visibleIf:({options:e})=>o(e?.colors??[]).type===`manual`}]}];exports.default=s;
1
+ const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../shared/utils/info-tooltip-options.config.cjs"),n=require("../shared/utils/color/color-palettes.cjs"),r=require("../shared/utils/map-tile-providers.cjs");let i=require("colorjs.io");i=e.__toESM(i);var a=()=>structuredClone(n.getColorMaps().Spectrum.colors5),o=e=>{if(!e||e.length===0)return[];let t=/^rgb(a)?\s*\(/i.test(e.at(-1)?.trim()??``);return e.map(e=>new i.default(e).toString({format:t?`hex`:`rgb`}))},s=e=>{let t=e?.length||0;return t===0?{type:`heat`,colorClass:`Spectrum`,colors:a()??[]}:n.getColorMapKeys().map(e=>({type:n.getColorMaps()[e]?.type,colorClass:e,colors:n.getColorMaps()[e]?.[`colors${t}`]??[]})).find(t=>Array.isArray(t.colors)&&Array.isArray(e)&&t.colors.length===e.length&&t.colors.every((t,n)=>t===e[n]))??{type:`manual`,colorClass:`manual`,colors:e}},c=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`enabled.zoom`,control:{type:`switch`,label:`Zoom`,default:!0}},{key:`enabled.pan`,control:{type:`switch`,label:`Pan`,default:!0}},{key:`enabled.pitchBearing`,control:{type:`switch`,label:`Pitch & Rotate`,default:!1}},{type:`divider`},{key:`vectorTileProvider`,control:{type:`picker`,label:`Map style`,default:`Basic`,enum:[`Basic`,`Bright`,`Dark`,`Fiord`,`Liberty`,`Pastel`,`Positron`,`Streets`,`Toner`,`Topographique`,`Voyager`,`No Tiles`],parseValue:e=>e?.name||`Basic`,toValue:e=>r.mapVectorTileProviders[e]??{}}}]},{key:`heat`,type:`group`,open:!0,children:[{key:`enabled.adaptOnZoom`,control:{type:`switch`,label:`Adapt on zoom`,tooltip:`If turned off, density is calculated based on map surface`,default:!0}},{key:`screenRadius`,control:{type:`slider`,label:`Radius`,default:20,min:1,max:50,step:1}},{key:`intensity`,control:{type:`slider`,label:`Intensity`,tooltip:`Multiplier for the density, multiplies by 1 on minimum (default)`,default:1,min:1,max:100,step:1}}]},{key:`heatColors`,type:`group`,open:!0,children:[{key:`transparency`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`colorsClassType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`heat`,`sequential`,`manual`],calculateValue:({options:e})=>s(e?.colors??[]).type,toOptions:({options:e,value:t})=>{let r=s(e?.colors??[]),i={...e};return r.type!==t&&(i.colors=t===`manual`?o(r.colors??a()):n.getColorMaps()[n.getColorMapKeys(t)?.[0]]?.colors5??a()),i}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:`Spectrum`,enum:({options:e})=>{let t=s(e?.colors??[]).type;return n.getColorMapKeys([`heat`,`sequential`].includes(t)?t:`heat`)},calculateValue:({options:e})=>{let t=s(e?.colors??[]);return t?.colorClass&&t.colorClass!==`manual`?t.colorClass:`Spectrum`},toOptions:({options:e,value:t})=>({...e,colors:n.getColorMaps()[t]?.colors5??a()})},visibleIf:({options:e})=>s(e?.colors??[]).type!==`manual`},{key:`colors`,control:{type:`color-range`,editRangeSize:!1,noValues:!0,minimumRangeSize:4,noAlphaChannel:!0,hideLabel:!0,label:`Manual color ranges`,default:a(),parseValue:e=>e?.map(e=>({color:e})),toValue:e=>e?.map(e=>e?.color)??[]},visibleIf:({options:e})=>s(e?.colors??[]).type===`manual`}]},t.createInfoTooltipOptionsGroup()];exports.default=c;
2
2
  //# sourceMappingURL=heat-map-options.config.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"heat-map-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\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: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n }\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
1
+ {"version":3,"file":"heat-map-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\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: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n },\n createInfoTooltipOptionsGroup<HeatMapConfigContext>()\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
@@ -1,27 +1,28 @@
1
- import { getColorMapKeys as e, getColorMaps as t } from "../shared/utils/color/color-palettes.js";
2
- import { mapVectorTileProviders as n } from "../shared/utils/map-tile-providers.js";
3
- import r from "colorjs.io";
1
+ import { createInfoTooltipOptionsGroup as e } from "../shared/utils/info-tooltip-options.config.js";
2
+ import { getColorMapKeys as t, getColorMaps as n } from "../shared/utils/color/color-palettes.js";
3
+ import { mapVectorTileProviders as r } from "../shared/utils/map-tile-providers.js";
4
+ import i from "colorjs.io";
4
5
  //#region src/lib/heat-map/heat-map-options.config.ts
5
- var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
6
+ var a = () => structuredClone(n().Spectrum.colors5), o = (e) => {
6
7
  if (!e || e.length === 0) return [];
7
8
  let t = /^rgb(a)?\s*\(/i.test(e.at(-1)?.trim() ?? "");
8
- return e.map((e) => new r(e).toString({ format: t ? "hex" : "rgb" }));
9
- }, o = (n) => {
10
- let r = n?.length || 0;
9
+ return e.map((e) => new i(e).toString({ format: t ? "hex" : "rgb" }));
10
+ }, s = (e) => {
11
+ let r = e?.length || 0;
11
12
  return r === 0 ? {
12
13
  type: "heat",
13
14
  colorClass: "Spectrum",
14
- colors: i() ?? []
15
- } : e().map((e) => ({
16
- type: t()[e]?.type,
15
+ colors: a() ?? []
16
+ } : t().map((e) => ({
17
+ type: n()[e]?.type,
17
18
  colorClass: e,
18
- colors: t()[e]?.[`colors${r}`] ?? []
19
- })).find((e) => Array.isArray(e.colors) && Array.isArray(n) && e.colors.length === n.length && e.colors.every((e, t) => e === n[t])) ?? {
19
+ colors: n()[e]?.[`colors${r}`] ?? []
20
+ })).find((t) => Array.isArray(t.colors) && Array.isArray(e) && t.colors.length === e.length && t.colors.every((t, n) => t === e[n])) ?? {
20
21
  type: "manual",
21
22
  colorClass: "manual",
22
- colors: n
23
+ colors: e
23
24
  };
24
- }, s = [
25
+ }, c = [
25
26
  {
26
27
  key: "general",
27
28
  type: "group",
@@ -81,7 +82,7 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
81
82
  "No Tiles"
82
83
  ],
83
84
  parseValue: (e) => e?.name || "Basic",
84
- toValue: (e) => n[e] ?? {}
85
+ toValue: (e) => r[e] ?? {}
85
86
  }
86
87
  }
87
88
  ]
@@ -152,10 +153,10 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
152
153
  "sequential",
153
154
  "manual"
154
155
  ],
155
- calculateValue: ({ options: e }) => o(e?.colors ?? []).type,
156
- toOptions: ({ options: n, value: r }) => {
157
- let s = o(n?.colors ?? []), c = { ...n };
158
- return s.type !== r && (c.colors = r === "manual" ? a(s.colors ?? i()) : t()[e(r)?.[0]]?.colors5 ?? i()), c;
156
+ calculateValue: ({ options: e }) => s(e?.colors ?? []).type,
157
+ toOptions: ({ options: e, value: r }) => {
158
+ let i = s(e?.colors ?? []), c = { ...e };
159
+ return i.type !== r && (c.colors = r === "manual" ? o(i.colors ?? a()) : n()[t(r)?.[0]]?.colors5 ?? a()), c;
159
160
  }
160
161
  }
161
162
  },
@@ -166,20 +167,20 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
166
167
  label: "Color palette",
167
168
  hideLabel: !0,
168
169
  default: "Spectrum",
169
- enum: ({ options: t }) => {
170
- let n = o(t?.colors ?? []).type;
171
- return e(["heat", "sequential"].includes(n) ? n : "heat");
170
+ enum: ({ options: e }) => {
171
+ let n = s(e?.colors ?? []).type;
172
+ return t(["heat", "sequential"].includes(n) ? n : "heat");
172
173
  },
173
174
  calculateValue: ({ options: e }) => {
174
- let t = o(e?.colors ?? []);
175
+ let t = s(e?.colors ?? []);
175
176
  return t?.colorClass && t.colorClass !== "manual" ? t.colorClass : "Spectrum";
176
177
  },
177
- toOptions: ({ options: e, value: n }) => ({
178
+ toOptions: ({ options: e, value: t }) => ({
178
179
  ...e,
179
- colors: t()[n]?.colors5 ?? i()
180
+ colors: n()[t]?.colors5 ?? a()
180
181
  })
181
182
  },
182
- visibleIf: ({ options: e }) => o(e?.colors ?? []).type !== "manual"
183
+ visibleIf: ({ options: e }) => s(e?.colors ?? []).type !== "manual"
183
184
  },
184
185
  {
185
186
  key: "colors",
@@ -191,16 +192,17 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
191
192
  noAlphaChannel: !0,
192
193
  hideLabel: !0,
193
194
  label: "Manual color ranges",
194
- default: i(),
195
+ default: a(),
195
196
  parseValue: (e) => e?.map((e) => ({ color: e })),
196
197
  toValue: (e) => e?.map((e) => e?.color) ?? []
197
198
  },
198
- visibleIf: ({ options: e }) => o(e?.colors ?? []).type === "manual"
199
+ visibleIf: ({ options: e }) => s(e?.colors ?? []).type === "manual"
199
200
  }
200
201
  ]
201
- }
202
+ },
203
+ e()
202
204
  ];
203
205
  //#endregion
204
- export { s as default };
206
+ export { c as default };
205
207
 
206
208
  //# sourceMappingURL=heat-map-options.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heat-map-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\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: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n }\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
1
+ {"version":3,"file":"heat-map-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\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: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n },\n createInfoTooltipOptionsGroup<HeatMapConfigContext>()\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("../helpers.cjs"),t=require("../shared/utils/color/color-palettes.cjs"),n=require("../shared/utils/color-range-utils.cjs");var r=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`display.values`,control:{type:`switch`,label:`Show values`,default:!1}}]},{key:`heatTable`,type:`group`,label:`Heat table`,open:!0,children:[{key:`heattable.opacity`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`heattable.rounding`,control:{type:`slider`,label:`Rounding`,default:({theme:e})=>e?.itemSpecific?.rounding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`?typeof e?.heattable?.rounding==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`&&typeof e?.heattable?.rounding==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,rounding:void 0}};return delete t.heattable.rounding,{value:null,options:t}}}},{key:`heattable.spacing`,control:{type:`slider`,label:`Spacing`,default:({theme:e})=>e?.itemSpecific?.padding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`?typeof e?.heattable?.spacing==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`&&typeof e?.heattable?.spacing==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,spacing:void 0}};return delete t.heattable.spacing,{value:null,options:t}}}},{key:`colorsType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`sequential`,`divergent`,`manual`],toOptions:({options:e,value:r})=>{let i=t.getColorMaps()?.[e?.colorsClass]?.type,a=e?.colorsType??i??`sequential`,o=e?.colorsClass??`PuBu`,s=e?.numberClasses??7,c=n.toRangesWithValue(e?.manualValues?.ranges),l=a===`manual`?`manual`:o,u={...e,colorsType:r};if(r===`manual`){let e=n.calculateManualRanges(s,l,c);u.manualValues={...u.manualValues,ranges:n.toRangesWithVal(e)}}else r!==a&&(u.colorsClass=t.getColorMapKeys(r??`sequential`)[0]),delete u.manualValues;return u}}},{key:`classification`,control:{type:`picker`,label:`Method`,default:`quantile`,enum:[`interval`,`quantile`,`continuous`]},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`numberClasses`,control:{type:`picker`,label:`Number of classes`,default:`7`,enum:[`3`,`4`,`5`,`6`,`7`,`8`,`9`],parseValue:e=>e?.toString()??`7`,toOptions:({options:e,value:t})=>{let r=Number.parseInt(t,10)||7,i={...e,numberClasses:r};if(e?.colorsType===`manual`){let r=n.calculateManualRanges(t,`manual`,n.toRangesWithValue(e?.manualValues?.ranges));i.manualValues={...i.manualValues,ranges:n.toRangesWithVal(r)}}return i}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let n=t.getColorMaps()?.[e?.colorsClass]?.type;return t.getColorMapKeys(e?.colorsType??n??`sequential`)[0]},enum:({options:e})=>{let n=t.getColorMaps()?.[e?.colorsClass]?.type;return t.getColorMapKeys(e?.colorsType??n??`sequential`)},toOptions:({options:e,value:n})=>{let r=t.getColorMaps()?.[e?.colorsClass]?.type,i={...e,colorsClass:n,colorsType:r??`sequential`};return delete i.manualValues,i}},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!1,debounce:500,label:`Manual range values`,hideLabel:!0,calculateValue:({options:e})=>n.calculateManualRanges(e?.numberClasses??7,`manual`,n.toRangesWithValue(e?.manualValues?.ranges)),toOptions:({options:e,value:t})=>({...e,manualValues:{...e.manualValues,ranges:n.toRangesWithVal(t)}})},visibleIf:({options:e})=>e?.colorsType===`manual`}]},{key:`axes`,type:`group`,open:!1,children:[{key:`sort.x.order`,control:{type:`picker`,label:`X-axis order`,default:`asc`,enum:[`asc`,`desc`]}},{key:`axis.x.color`,control:{type:`color-picker`,label:`X-axis color`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`axis.x.color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`axis.x.color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`axis.x.color`)}},{key:`xAxisLabels`,type:`group`,label:`X-axis label`,collapsible:!0,open:!1,children:[{key:`axislabels.x.enabled`,control:{type:`switch`,label:`Enabled`,default:!1}},{key:`axislabels.x.position`,control:{type:`picker`,label:`Position`,default:`center`,enum:[`left`,`center`,`right`]},visibleIf:({options:e})=>e?.axislabels?.x?.enabled===!0}]},{key:`xAxisTicks`,type:`group`,label:`X-axis ticks`,collapsible:!0,open:!1,children:[{key:`axis.x.ticksMode`,control:{type:`picker`,label:`Display mode`,default:`ticks`,enum:[`ticks`,`hide`]}}]},{type:`divider`},{key:`sort.y.order`,control:{type:`picker`,label:`Y-axis order`,default:`asc`,enum:[`asc`,`desc`]}},{key:`axis.y.color`,control:{type:`color-picker`,label:`Y-axis color`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`axis.y.color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`axis.y.color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`axis.y.color`)}},{key:`yAxisLabels`,type:`group`,label:`Y-axis label`,collapsible:!0,open:!1,children:[{key:`axislabels.y.enabled`,control:{type:`switch`,label:`Enabled`,default:!1}},{key:`axislabels.y.position`,control:{type:`picker`,label:`Position`,default:`top`,enum:[`top`,`middle`,`bottom`]},visibleIf:({options:e})=>e?.axislabels?.y?.enabled===!0}]},{key:`yAxisTicks`,type:`group`,label:`Y-axis ticks`,collapsible:!0,open:!1,children:[{key:`axis.y.ticks`,control:{type:`picker`,label:`Display mode`,default:`ticks`,enum:[`ticks`,`hide`]}}]}]}];exports.default=r;
1
+ const e=require("../shared/utils/axis-options.config.cjs"),t=require("../shared/utils/info-tooltip-options.config.cjs"),n=require("../shared/utils/color/color-palettes.cjs"),r=require("../shared/utils/color-range-utils.cjs");var i=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`display.values`,control:{type:`switch`,label:`Show values`,default:!1}}]},{key:`heatTable`,type:`group`,label:`Heat table`,open:!0,children:[{key:`heattable.opacity`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`heattable.rounding`,control:{type:`slider`,label:`Rounding`,default:({theme:e})=>e?.itemSpecific?.rounding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`?typeof e?.heattable?.rounding==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`&&typeof e?.heattable?.rounding==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,rounding:void 0}};return delete t.heattable.rounding,{value:null,options:t}}}},{key:`heattable.spacing`,control:{type:`slider`,label:`Spacing`,default:({theme:e})=>e?.itemSpecific?.padding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`?typeof e?.heattable?.spacing==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`&&typeof e?.heattable?.spacing==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,spacing:void 0}};return delete t.heattable.spacing,{value:null,options:t}}}},{key:`colorsType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`sequential`,`divergent`,`manual`],toOptions:({options:e,value:t})=>{let i=n.getColorMaps()?.[e?.colorsClass]?.type,a=e?.colorsType??i??`sequential`,o=e?.colorsClass??`PuBu`,s=e?.numberClasses??7,c=r.toRangesWithValue(e?.manualValues?.ranges),l=a===`manual`?`manual`:o,u={...e,colorsType:t};if(t===`manual`){let e=r.calculateManualRanges(s,l,c);u.manualValues={...u.manualValues,ranges:r.toRangesWithVal(e)}}else t!==a&&(u.colorsClass=n.getColorMapKeys(t??`sequential`)[0]),delete u.manualValues;return u}}},{key:`classification`,control:{type:`picker`,label:`Method`,default:`quantile`,enum:[`interval`,`quantile`,`continuous`]},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`numberClasses`,control:{type:`picker`,label:`Number of classes`,default:`7`,enum:[`3`,`4`,`5`,`6`,`7`,`8`,`9`],parseValue:e=>e?.toString()??`7`,toOptions:({options:e,value:t})=>{let n=Number.parseInt(t,10)||7,i={...e,numberClasses:n};if(e?.colorsType===`manual`){let n=r.calculateManualRanges(t,`manual`,r.toRangesWithValue(e?.manualValues?.ranges));i.manualValues={...i.manualValues,ranges:r.toRangesWithVal(n)}}return i}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let t=n.getColorMaps()?.[e?.colorsClass]?.type;return n.getColorMapKeys(e?.colorsType??t??`sequential`)[0]},enum:({options:e})=>{let t=n.getColorMaps()?.[e?.colorsClass]?.type;return n.getColorMapKeys(e?.colorsType??t??`sequential`)},toOptions:({options:e,value:t})=>{let r=n.getColorMaps()?.[e?.colorsClass]?.type,i={...e,colorsClass:t,colorsType:r??`sequential`};return delete i.manualValues,i}},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!1,debounce:500,label:`Manual range values`,hideLabel:!0,calculateValue:({options:e})=>r.calculateManualRanges(e?.numberClasses??7,`manual`,r.toRangesWithValue(e?.manualValues?.ranges)),toOptions:({options:e,value:t})=>({...e,manualValues:{...e.manualValues,ranges:r.toRangesWithVal(t)}})},visibleIf:({options:e})=>e?.colorsType===`manual`}]},e.createAxesOptionsGroup([{axis:`x`,role:`axis`,color:!0,label:!0,tickMode:!0},{axis:`y`,role:`axis`,color:!0,label:!0,tickMode:!0}],[{key:`sort.x.order`,control:{type:`picker`,label:`X-axis order`,default:`asc`,enum:[`asc`,`desc`]}},{key:`sort.y.order`,control:{type:`picker`,label:`Y-axis order`,default:`asc`,enum:[`asc`,`desc`]}}]),t.createInfoTooltipOptionsGroup()];exports.default=i;
2
2
  //# sourceMappingURL=heat-table-options.config.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"heat-table-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\n\nimport { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\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.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n {\n key: 'axes',\n type: 'group',\n open: false,\n children: [\n {\n key: 'sort.x.order',\n control: {\n type: 'picker',\n label: 'X-axis order',\n default: 'asc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'axis.x.color',\n control: {\n type: 'color-picker',\n label: 'X-axis color',\n default: ({ theme }: HeatTableConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: HeatTableConfigContext) => getThemeMainColorResetLabel(options, theme, 'axis.x.color'),\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'axis.x.color'),\n extraLabelClickAction: ({ options, theme }: HeatTableConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'axis.x.color')\n }\n },\n {\n key: 'xAxisLabels',\n type: 'group',\n label: 'X-axis label',\n collapsible: true,\n open: false,\n children: [\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 }: HeatTableConfigContext) => 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: false,\n children: [\n {\n key: 'axis.x.ticksMode',\n control: {\n type: 'picker',\n label: 'Display mode',\n default: 'ticks',\n enum: ['ticks', 'hide']\n }\n }\n ]\n },\n {\n type: 'divider'\n },\n {\n key: 'sort.y.order',\n control: {\n type: 'picker',\n label: 'Y-axis order',\n default: 'asc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'axis.y.color',\n control: {\n type: 'color-picker',\n label: 'Y-axis color',\n default: ({ theme }: HeatTableConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: HeatTableConfigContext) => getThemeMainColorResetLabel(options, theme, 'axis.y.color'),\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'axis.y.color'),\n extraLabelClickAction: ({ options, theme }: HeatTableConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'axis.y.color')\n }\n },\n {\n key: 'yAxisLabels',\n type: 'group',\n label: 'Y-axis label',\n collapsible: true,\n open: false,\n children: [\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: 'top',\n enum: ['top', 'middle', 'bottom']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => 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: false,\n children: [\n {\n key: 'axis.y.ticks',\n control: {\n type: 'picker',\n label: 'Display mode',\n default: 'ticks',\n enum: ['ticks', 'hide']\n }\n }\n ]\n }\n ]\n }\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"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"}
1
+ {"version":3,"file":"heat-table-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\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.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n createAxesOptionsGroup<HeatTableConfigContext>([\n { axis: 'x', role: 'axis', color: true, label: true, tickMode: true },\n { axis: 'y', role: 'axis', color: true, label: true, tickMode: true }\n ], [\n { key: 'sort.x.order', control: { type: 'picker', label: 'X-axis order', default: 'asc', enum: ['asc', 'desc'] } },\n { key: 'sort.y.order', control: { type: 'picker', label: 'Y-axis order', default: 'asc', enum: ['asc', 'desc'] } }\n ]),\n createInfoTooltipOptionsGroup<HeatTableConfigContext>()\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"iOAUA,IAAM,EAAgE,CACpE,CACE,IAAK,UACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,gBACL,QAAS,CACP,KAAM,SACN,MAAO,QACP,QAAS,EACX,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,cACP,QAAS,EACX,CACF,CACF,CACF,EACA,CACE,IAAK,YACL,KAAM,QACN,MAAO,aACP,KAAM,GACN,SAAU,CACR,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,QAAS,GACT,IAAK,EACL,IAAK,EACL,KAAM,GACR,CACF,EACA,CACE,IAAK,qBACL,QAAS,CACP,KAAM,SACN,MAAO,WACP,SAAU,CAAE,WAAoC,GAAO,cAAc,SACrE,IAAK,EACL,IAAK,GACL,KAAM,EACN,YAAa,CAAE,UAAS,WAClB,OAAO,GAAO,cAAc,UAAa,SAIzC,OAAO,GAAS,WAAW,UAAa,SAIrC,QAHE,OAJA,KASX,0BAA2B,CAAE,UAAS,WAChC,OAAO,GAAO,cAAc,UAAa,UAAY,OAAO,GAAS,WAAW,UAAa,SAMnG,uBAAwB,CAAE,aAAsC,CAC9D,IAAM,EAAa,CACjB,GAAG,EACH,UAAW,CAAE,GAAG,EAAQ,UAAW,SAAU,IAAA,EAAU,CACzD,EAIA,OAFA,OAAO,EAAW,UAAU,SAErB,CAAE,MAAO,KAAM,QAAS,CAAW,CAC5C,CACF,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,SAAU,CAAE,WAAoC,GAAO,cAAc,QACrE,IAAK,EACL,IAAK,GACL,KAAM,EACN,YAAa,CAAE,UAAS,WAClB,OAAO,GAAO,cAAc,SAAY,SAIxC,OAAO,GAAS,WAAW,SAAY,SAIpC,QAHE,OAJA,KASX,0BAA2B,CAAE,UAAS,WAChC,OAAO,GAAO,cAAc,SAAY,UAAY,OAAO,GAAS,WAAW,SAAY,SAMjG,uBAAwB,CAAE,aAAsC,CAC9D,IAAM,EAAa,CACjB,GAAG,EACH,UAAW,CAAE,GAAG,EAAQ,UAAW,QAAS,IAAA,EAAU,CACxD,EAIA,OAFA,OAAO,EAAW,UAAU,QAErB,CAAE,MAAO,KAAM,QAAS,CAAW,CAC5C,CACF,CACF,EAEA,CACE,IAAK,aACL,QAAS,CACP,KAAM,SACN,MAAO,cACP,QAAS,aACT,KAAM,CAAC,aAAc,YAAa,QAAQ,EAC1C,WAAY,CAAE,UAAS,WAAiE,CACtF,IAAM,EAAyB,EAAA,aAAa,CAAC,GAAG,GAAS,YAA8B,EAAE,KACnF,EAA8C,GAAS,YAAc,GAA0B,aAC/F,EAA2B,GAAS,aAAe,OACnD,EAAqB,GAAS,eAAiB,EAC/C,EAAiB,EAAA,kBAAkB,GAAS,cAAc,MAAM,EAChE,EAA2B,IAAiB,SAAW,SAAW,EAElE,EAAa,CACjB,GAAG,EACH,WAAY,CACd,EAEA,GAAI,IAAU,SAAU,CACtB,IAAM,EAAe,EAAA,sBAAsB,EAAoB,EAA0B,CAAc,EAEvG,EAAW,aAAe,CACxB,GAAG,EAAW,aACd,OAAQ,EAAA,gBAAgB,CAAY,CACtC,CACF,MAEM,IAAU,IAGZ,EAAW,YAFY,EAAA,gBAAgB,GAAS,YAAY,CAAC,CAAC,IAKhE,OAAO,EAAW,aAGpB,OAAO,CACT,CACF,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,SACP,QAAS,WACT,KAAM,CAAC,WAAY,WAAY,YAAY,CAC7C,EACA,WAAY,CAAE,aAAsC,GAAS,aAAe,QAC9E,EACA,CACE,IAAK,gBACL,QAAS,CACP,KAAM,SACN,MAAO,oBACP,QAAS,IACT,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACxC,WAAa,GAAkB,GAAO,SAAS,GAAK,IACpD,WAAY,CAAE,UAAS,WAA0C,CAC/D,IAAM,EAAW,OAAO,SAAS,EAAO,EAAE,GAAK,EAEzC,EAAa,CAAE,GAAG,EAAS,cAAe,CAAS,EAEzD,GAAI,GAAS,aAAe,SAAU,CACpC,IAAM,EAAe,EAAA,sBAAsB,EAAO,SAAU,EAAA,kBAAkB,GAAS,cAAc,MAAM,CAAC,EAE5G,EAAW,aAAe,CACxB,GAAG,EAAW,aACd,OAAQ,EAAA,gBAAgB,CAAY,CACtC,CACF,CAEA,OAAO,CACT,CACF,CACF,EACA,CACE,IAAK,cACL,QAAS,CACP,KAAM,uBACN,MAAO,gBACP,UAAW,GACX,SAAU,CAAE,aAAsC,CAEhD,IAAM,EADY,EAAA,aACK,CAAA,GAAY,GAAS,YAA8B,EAAE,KAE5E,OAAO,EAAA,gBAAgB,GAAS,YAAc,GAAkB,YAAY,CAAC,CAAC,EAChF,EACA,MAAO,CAAE,aAAsC,CAC7C,IAAM,EAAiB,EAAA,aAAa,CAAC,GAAG,GAAS,YAA8B,EAAE,KAEjF,OAAO,EAAA,gBAAgB,GAAS,YAAc,GAAkB,YAAY,CAC9E,EACA,WAAY,CAAE,UAAS,WAA0C,CAC/D,IAAM,EAAiB,EAAA,aAAa,CAAC,GAAG,GAAS,YAA8B,EAAE,KAC3E,EAAa,CACjB,GAAG,EACH,YAAa,EACb,WAAY,GAAkB,YAChC,EAIA,OAFA,OAAO,EAAW,aAEX,CACT,CACF,EACA,WAAY,CAAE,aAAsC,GAAS,aAAe,QAC9E,EACA,CACE,IAAK,sBACL,QAAS,CACP,KAAM,cACN,cAAe,GACf,SAAU,IACV,MAAO,sBACP,UAAW,GACX,gBAAiB,CAAE,aACjB,EAAA,sBAAsB,GAAS,eAAiB,EAAG,SAAU,EAAA,kBAAkB,GAAS,cAAc,MAAM,CAAC,EAC/G,WAAY,CAAE,UAAS,YAA6E,CAClG,GAAG,EACH,aAAc,CACZ,GAAG,EAAQ,aACX,OAAQ,EAAA,gBAAgB,CAAK,CAC/B,CACF,EACF,EACA,WAAY,CAAE,aAAsC,GAAS,aAAe,QAC9E,CACF,CACF,EACA,EAAA,uBAA+C,CAC7C,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,SAAU,EAAK,EACpE,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,SAAU,EAAK,CACtE,EAAG,CACD,CAAE,IAAK,eAAgB,QAAS,CAAE,KAAM,SAAU,MAAO,eAAgB,QAAS,MAAO,KAAM,CAAC,MAAO,MAAM,CAAE,CAAE,EACjH,CAAE,IAAK,eAAgB,QAAS,CAAE,KAAM,SAAU,MAAO,eAAgB,QAAS,MAAO,KAAM,CAAC,MAAO,MAAM,CAAE,CAAE,CACnH,CAAC,EACD,EAAA,8BAAsD,CACxD"}