@luzmo/dashboard-contents-types 1.0.41 → 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 (200) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/area-chart/area-chart-options.config.cjs +1 -1
  3. package/area-chart/area-chart-options.config.cjs.map +1 -1
  4. package/area-chart/area-chart-options.config.js +9 -7
  5. package/area-chart/area-chart-options.config.js.map +1 -1
  6. package/bar-chart/bar-chart-options.config.cjs +1 -1
  7. package/bar-chart/bar-chart-options.config.cjs.map +1 -1
  8. package/bar-chart/bar-chart-options.config.js +12 -10
  9. package/bar-chart/bar-chart-options.config.js.map +1 -1
  10. package/box-plot/box-plot-options.config.cjs +1 -1
  11. package/box-plot/box-plot-options.config.cjs.map +1 -1
  12. package/box-plot/box-plot-options.config.js +21 -19
  13. package/box-plot/box-plot-options.config.js.map +1 -1
  14. package/bubble-chart/bubble-chart-options.config.cjs +1 -1
  15. package/bubble-chart/bubble-chart-options.config.cjs.map +1 -1
  16. package/bubble-chart/bubble-chart-options.config.js +112 -107
  17. package/bubble-chart/bubble-chart-options.config.js.map +1 -1
  18. package/bullet-chart/bullet-chart-options.config.cjs +1 -1
  19. package/bullet-chart/bullet-chart-options.config.cjs.map +1 -1
  20. package/bullet-chart/bullet-chart-options.config.js +4 -3
  21. package/bullet-chart/bullet-chart-options.config.js.map +1 -1
  22. package/choropleth-map/choropleth-map-options.config.cjs +1 -1
  23. package/choropleth-map/choropleth-map-options.config.cjs.map +1 -1
  24. package/choropleth-map/choropleth-map-options.config.js +39 -37
  25. package/choropleth-map/choropleth-map-options.config.js.map +1 -1
  26. package/circle-pack-chart/circle-pack-chart-options.config.cjs +1 -1
  27. package/circle-pack-chart/circle-pack-chart-options.config.cjs.map +1 -1
  28. package/circle-pack-chart/circle-pack-chart-options.config.js +4 -3
  29. package/circle-pack-chart/circle-pack-chart-options.config.js.map +1 -1
  30. package/circular-gauge/circular-gauge-options.config.cjs +1 -1
  31. package/circular-gauge/circular-gauge-options.config.cjs.map +1 -1
  32. package/circular-gauge/circular-gauge-options.config.js +148 -143
  33. package/circular-gauge/circular-gauge-options.config.js.map +1 -1
  34. package/column-chart/column-chart-options.config.cjs +1 -1
  35. package/column-chart/column-chart-options.config.cjs.map +1 -1
  36. package/column-chart/column-chart-options.config.js +12 -10
  37. package/column-chart/column-chart-options.config.js.map +1 -1
  38. package/combination-chart/combination-chart-options.config.cjs +1 -1
  39. package/combination-chart/combination-chart-options.config.cjs.map +1 -1
  40. package/combination-chart/combination-chart-options.config.js +5 -3
  41. package/combination-chart/combination-chart-options.config.js.map +1 -1
  42. package/conditional-number/conditional-number-options.config.cjs +1 -1
  43. package/conditional-number/conditional-number-options.config.cjs.map +1 -1
  44. package/conditional-number/conditional-number-options.config.js +156 -151
  45. package/conditional-number/conditional-number-options.config.js.map +1 -1
  46. package/donut-chart/donut-chart-options.config.cjs +1 -1
  47. package/donut-chart/donut-chart-options.config.cjs.map +1 -1
  48. package/donut-chart/donut-chart-options.config.js +184 -179
  49. package/donut-chart/donut-chart-options.config.js.map +1 -1
  50. package/evolution-number/evolution-number-options.config.cjs +1 -1
  51. package/evolution-number/evolution-number-options.config.cjs.map +1 -1
  52. package/evolution-number/evolution-number-options.config.js +5 -3
  53. package/evolution-number/evolution-number-options.config.js.map +1 -1
  54. package/funnel-chart/funnel-chart-options.config.cjs +1 -1
  55. package/funnel-chart/funnel-chart-options.config.cjs.map +1 -1
  56. package/funnel-chart/funnel-chart-options.config.js +5 -3
  57. package/funnel-chart/funnel-chart-options.config.js.map +1 -1
  58. package/heat-map/heat-map-options.config.cjs +1 -1
  59. package/heat-map/heat-map-options.config.cjs.map +1 -1
  60. package/heat-map/heat-map-options.config.js +32 -30
  61. package/heat-map/heat-map-options.config.js.map +1 -1
  62. package/heat-table/heat-table-options.config.cjs +1 -1
  63. package/heat-table/heat-table-options.config.cjs.map +1 -1
  64. package/heat-table/heat-table-options.config.js +28 -26
  65. package/heat-table/heat-table-options.config.js.map +1 -1
  66. package/hexbin-map/hexbin-map-options.config.cjs +1 -1
  67. package/hexbin-map/hexbin-map-options.config.cjs.map +1 -1
  68. package/hexbin-map/hexbin-map-options.config.js +20 -18
  69. package/hexbin-map/hexbin-map-options.config.js.map +1 -1
  70. package/index.cjs +1 -1
  71. package/index.js +192 -191
  72. package/line-chart/line-chart-options.config.cjs +1 -1
  73. package/line-chart/line-chart-options.config.cjs.map +1 -1
  74. package/line-chart/line-chart-options.config.js +7 -5
  75. package/line-chart/line-chart-options.config.js.map +1 -1
  76. package/marker-map/marker-map-options.config.cjs +1 -1
  77. package/marker-map/marker-map-options.config.cjs.map +1 -1
  78. package/marker-map/marker-map-options.config.js +97 -92
  79. package/marker-map/marker-map-options.config.js.map +1 -1
  80. package/ohlc-chart/ohlc-chart-options.config.cjs +1 -1
  81. package/ohlc-chart/ohlc-chart-options.config.cjs.map +1 -1
  82. package/ohlc-chart/ohlc-chart-options.config.js +5 -3
  83. package/ohlc-chart/ohlc-chart-options.config.js.map +1 -1
  84. package/package.json +1 -1
  85. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs +1 -1
  86. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs.map +1 -1
  87. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js +4 -3
  88. package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js.map +1 -1
  89. package/pivot-table/pivot-table-options.config.cjs +1 -1
  90. package/pivot-table/pivot-table-options.config.cjs.map +1 -1
  91. package/pivot-table/pivot-table-options.config.js +5 -3
  92. package/pivot-table/pivot-table-options.config.js.map +1 -1
  93. package/pyramid-chart/pyramid-chart-options.config.cjs +1 -1
  94. package/pyramid-chart/pyramid-chart-options.config.cjs.map +1 -1
  95. package/pyramid-chart/pyramid-chart-options.config.js +5 -3
  96. package/pyramid-chart/pyramid-chart-options.config.js.map +1 -1
  97. package/radar-chart/radar-chart-options.config.cjs +1 -1
  98. package/radar-chart/radar-chart-options.config.cjs.map +1 -1
  99. package/radar-chart/radar-chart-options.config.js +7 -5
  100. package/radar-chart/radar-chart-options.config.js.map +1 -1
  101. package/regular-table/regular-table-options.config.cjs +1 -1
  102. package/regular-table/regular-table-options.config.cjs.map +1 -1
  103. package/regular-table/regular-table-options.config.js +126 -121
  104. package/regular-table/regular-table-options.config.js.map +1 -1
  105. package/route-map/route-map-options.config.cjs +1 -1
  106. package/route-map/route-map-options.config.cjs.map +1 -1
  107. package/route-map/route-map-options.config.js +38 -36
  108. package/route-map/route-map-options.config.js.map +1 -1
  109. package/sankey-diagram/sankey-diagram-options.config.cjs +1 -1
  110. package/sankey-diagram/sankey-diagram-options.config.cjs.map +1 -1
  111. package/sankey-diagram/sankey-diagram-options.config.js +5 -3
  112. package/sankey-diagram/sankey-diagram-options.config.js.map +1 -1
  113. package/scatter-plot/scatter-plot-options.config.cjs +1 -1
  114. package/scatter-plot/scatter-plot-options.config.cjs.map +1 -1
  115. package/scatter-plot/scatter-plot-options.config.js +7 -5
  116. package/scatter-plot/scatter-plot-options.config.js.map +1 -1
  117. package/shared/utils/info-tooltip-options.config.cjs +2 -0
  118. package/shared/utils/info-tooltip-options.config.cjs.map +1 -0
  119. package/shared/utils/info-tooltip-options.config.js +42 -0
  120. package/shared/utils/info-tooltip-options.config.js.map +1 -0
  121. package/shared/utils/info-tooltip-options.i18n.cjs +2 -0
  122. package/shared/utils/info-tooltip-options.i18n.cjs.map +1 -0
  123. package/shared/utils/info-tooltip-options.i18n.js +57 -0
  124. package/shared/utils/info-tooltip-options.i18n.js.map +1 -0
  125. package/shared/utils/options-loader.cjs +1 -1
  126. package/shared/utils/options-loader.cjs.map +1 -1
  127. package/shared/utils/options-loader.js +5 -3
  128. package/shared/utils/options-loader.js.map +1 -1
  129. package/speedometer-chart/speedometer-chart-options.config.cjs +1 -1
  130. package/speedometer-chart/speedometer-chart-options.config.cjs.map +1 -1
  131. package/speedometer-chart/speedometer-chart-options.config.js +201 -196
  132. package/speedometer-chart/speedometer-chart-options.config.js.map +1 -1
  133. package/spike-map/spike-map-options.config.cjs +1 -1
  134. package/spike-map/spike-map-options.config.cjs.map +1 -1
  135. package/spike-map/spike-map-options.config.js +41 -39
  136. package/spike-map/spike-map-options.config.js.map +1 -1
  137. package/src/lib/area-chart/area-chart-options.config.d.ts.map +1 -1
  138. package/src/lib/bar-chart/bar-chart-options.config.d.ts.map +1 -1
  139. package/src/lib/box-plot/box-plot-options.config.d.ts.map +1 -1
  140. package/src/lib/bubble-chart/bubble-chart-options.config.d.ts.map +1 -1
  141. package/src/lib/bullet-chart/bullet-chart-options.config.d.ts.map +1 -1
  142. package/src/lib/choropleth-map/choropleth-map-options.config.d.ts.map +1 -1
  143. package/src/lib/circle-pack-chart/circle-pack-chart-options.config.d.ts.map +1 -1
  144. package/src/lib/circular-gauge/circular-gauge-options.config.d.ts.map +1 -1
  145. package/src/lib/column-chart/column-chart-options.config.d.ts.map +1 -1
  146. package/src/lib/combination-chart/combination-chart-options.config.d.ts.map +1 -1
  147. package/src/lib/conditional-number/conditional-number-options.config.d.ts.map +1 -1
  148. package/src/lib/donut-chart/donut-chart-options.config.d.ts.map +1 -1
  149. package/src/lib/evolution-number/evolution-number-options.config.d.ts.map +1 -1
  150. package/src/lib/funnel-chart/funnel-chart-options.config.d.ts.map +1 -1
  151. package/src/lib/heat-map/heat-map-options.config.d.ts.map +1 -1
  152. package/src/lib/heat-table/heat-table-options.config.d.ts.map +1 -1
  153. package/src/lib/hexbin-map/hexbin-map-options.config.d.ts.map +1 -1
  154. package/src/lib/line-chart/line-chart-options.config.d.ts.map +1 -1
  155. package/src/lib/marker-map/marker-map-options.config.d.ts.map +1 -1
  156. package/src/lib/ohlc-chart/ohlc-chart-options.config.d.ts.map +1 -1
  157. package/src/lib/parallel-coordinates-plot/parallel-coordinates-plot-options.config.d.ts.map +1 -1
  158. package/src/lib/pivot-table/pivot-table-options.config.d.ts.map +1 -1
  159. package/src/lib/pyramid-chart/pyramid-chart-options.config.d.ts.map +1 -1
  160. package/src/lib/radar-chart/radar-chart-options.config.d.ts.map +1 -1
  161. package/src/lib/regular-table/regular-table-options.config.d.ts.map +1 -1
  162. package/src/lib/route-map/route-map-options.config.d.ts.map +1 -1
  163. package/src/lib/sankey-diagram/sankey-diagram-options.config.d.ts.map +1 -1
  164. package/src/lib/scatter-plot/scatter-plot-options.config.d.ts.map +1 -1
  165. package/src/lib/shared/schemas/dashboard-state.schema.d.ts +2 -2
  166. package/src/lib/shared/schemas/screen-mode.schema.d.ts +1 -1
  167. package/src/lib/shared/utils/index.d.ts +1 -0
  168. package/src/lib/shared/utils/index.d.ts.map +1 -1
  169. package/src/lib/shared/utils/info-tooltip-options.config.d.ts +6 -0
  170. package/src/lib/shared/utils/info-tooltip-options.config.d.ts.map +1 -0
  171. package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts +3 -0
  172. package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts.map +1 -0
  173. package/src/lib/shared/utils/options-loader.d.ts.map +1 -1
  174. package/src/lib/speedometer-chart/speedometer-chart-options.config.d.ts.map +1 -1
  175. package/src/lib/spike-map/spike-map-options.config.d.ts.map +1 -1
  176. package/src/lib/strip-plot/strip-plot-options.config.d.ts.map +1 -1
  177. package/src/lib/sunburst-chart/sunburst-chart-options.config.d.ts.map +1 -1
  178. package/src/lib/symbol-map/symbol-map-options.config.d.ts.map +1 -1
  179. package/src/lib/treemap-chart/treemap-chart-options.config.d.ts.map +1 -1
  180. package/src/lib/wordcloud-chart/wordcloud-chart-options.config.d.ts.map +1 -1
  181. package/strip-plot/strip-plot-options.config.cjs +1 -1
  182. package/strip-plot/strip-plot-options.config.cjs.map +1 -1
  183. package/strip-plot/strip-plot-options.config.js +4 -3
  184. package/strip-plot/strip-plot-options.config.js.map +1 -1
  185. package/sunburst-chart/sunburst-chart-options.config.cjs +1 -1
  186. package/sunburst-chart/sunburst-chart-options.config.cjs.map +1 -1
  187. package/sunburst-chart/sunburst-chart-options.config.js +5 -3
  188. package/sunburst-chart/sunburst-chart-options.config.js.map +1 -1
  189. package/symbol-map/symbol-map-options.config.cjs +1 -1
  190. package/symbol-map/symbol-map-options.config.cjs.map +1 -1
  191. package/symbol-map/symbol-map-options.config.js +7 -5
  192. package/symbol-map/symbol-map-options.config.js.map +1 -1
  193. package/treemap-chart/treemap-chart-options.config.cjs +1 -1
  194. package/treemap-chart/treemap-chart-options.config.cjs.map +1 -1
  195. package/treemap-chart/treemap-chart-options.config.js +180 -175
  196. package/treemap-chart/treemap-chart-options.config.js.map +1 -1
  197. package/wordcloud-chart/wordcloud-chart-options.config.cjs +1 -1
  198. package/wordcloud-chart/wordcloud-chart-options.config.cjs.map +1 -1
  199. package/wordcloud-chart/wordcloud-chart-options.config.js +67 -62
  200. package/wordcloud-chart/wordcloud-chart-options.config.js.map +1 -1
@@ -0,0 +1,2 @@
1
+ var e=e=>!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`string`&&e[1].trim().length>0)),t=(t,n)=>{let r=e(n),i=t.annotate&&typeof t.annotate==`object`?t.annotate:{},a=i.infoTooltip&&typeof i.infoTooltip==`object`?i.infoTooltip:{};if(Object.keys(r).length>0)return{...t,annotate:{...i,infoTooltip:{...a,content:r}}};let{infoTooltip:o,...s}=i,c={...t};return delete c.annotate,Object.keys(s).length>0?{...c,annotate:s}:c},n=({options:e})=>Object.values(e?.annotate?.infoTooltip?.content??{}).some(e=>typeof e==`string`&&e.trim().length>0),r=()=>({key:`informationTooltip`,type:`group`,open:!1,children:[{key:`annotate.infoTooltip.content`,control:{type:`multi-language-field`,toOptions:({options:e,value:n})=>t(e,n)}},{key:`annotate.infoTooltip.position`,control:{type:`position-picker`,default:`left`,enum:[`left`,`right`]},visibleIf:n}]});exports.createInfoTooltipOptionsGroup=r;
2
+ //# sourceMappingURL=info-tooltip-options.config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-tooltip-options.config.cjs","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/info-tooltip-options.config.ts"],"sourcesContent":["import type { InfoTooltipViewOptions } from '../types/info-tooltip-options';\nimport type { OptionConfig, OptionsConfigContext } from './options-config.types';\n\ntype InfoTooltipConfigContext = OptionsConfigContext<InfoTooltipViewOptions>;\n\nconst nonEmptyContent = (value: unknown): Record<string, string> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string' && entry[1].trim().length > 0\n )\n );\n};\n\nconst updateInfoTooltipContent = (\n options: InfoTooltipViewOptions & Record<string, unknown>,\n value: unknown\n): InfoTooltipViewOptions & Record<string, unknown> => {\n const content = nonEmptyContent(value);\n const annotate = options.annotate && typeof options.annotate === 'object' ? options.annotate : {};\n const infoTooltip = annotate.infoTooltip && typeof annotate.infoTooltip === 'object' ? annotate.infoTooltip : {};\n\n if (Object.keys(content).length > 0) {\n return {\n ...options,\n annotate: {\n ...annotate,\n infoTooltip: {\n ...infoTooltip,\n content\n }\n }\n };\n }\n\n const { infoTooltip: ignoredInfoTooltip, ...remainingAnnotate } = annotate;\n const nextOptions = { ...options };\n\n delete nextOptions.annotate;\n\n return Object.keys(remainingAnnotate).length > 0 ? { ...nextOptions, annotate: remainingAnnotate } : nextOptions;\n};\n\nconst hasInfoTooltipContent = ({ options }: InfoTooltipConfigContext): boolean =>\n Object.values(options?.annotate?.infoTooltip?.content ?? {}).some(\n (content) => typeof content === 'string' && content.trim().length > 0\n );\n\nexport const createInfoTooltipOptionsGroup = <TContext extends InfoTooltipConfigContext>(): OptionConfig<TContext> => ({\n key: 'informationTooltip',\n type: 'group',\n open: false,\n children: [\n {\n key: 'annotate.infoTooltip.content',\n control: {\n type: 'multi-language-field',\n toOptions: ({\n options,\n value\n }: {\n options: InfoTooltipViewOptions & Record<string, unknown>;\n value: unknown;\n }) => updateInfoTooltipContent(options, value)\n }\n },\n {\n key: 'annotate.infoTooltip.position',\n control: {\n type: 'position-picker',\n default: 'left',\n enum: ['left', 'right']\n },\n visibleIf: hasInfoTooltipContent\n }\n ]\n});\n"],"mappings":"AAKA,IAAM,EAAmB,GACnB,CAAC,GAAS,OAAO,GAAU,UAAY,MAAM,QAAQ,CAAK,EACrD,CAAC,EAGH,OAAO,YACZ,OAAO,QAAQ,CAAK,CAAC,CAAC,OACnB,GAAqC,OAAO,EAAM,IAAO,UAAY,EAAM,EAAE,CAAC,KAAK,CAAC,CAAC,OAAS,CACjG,CACF,EAGI,GACJ,EACA,IACqD,CACrD,IAAM,EAAU,EAAgB,CAAK,EAC/B,EAAW,EAAQ,UAAY,OAAO,EAAQ,UAAa,SAAW,EAAQ,SAAW,CAAC,EAC1F,EAAc,EAAS,aAAe,OAAO,EAAS,aAAgB,SAAW,EAAS,YAAc,CAAC,EAE/G,GAAI,OAAO,KAAK,CAAO,CAAC,CAAC,OAAS,EAChC,MAAO,CACL,GAAG,EACH,SAAU,CACR,GAAG,EACH,YAAa,CACX,GAAG,EACH,SACF,CACF,CACF,EAGF,GAAM,CAAE,YAAa,EAAoB,GAAG,GAAsB,EAC5D,EAAc,CAAE,GAAG,CAAQ,EAIjC,OAFA,OAAO,EAAY,SAEZ,OAAO,KAAK,CAAiB,CAAC,CAAC,OAAS,EAAI,CAAE,GAAG,EAAa,SAAU,CAAkB,EAAI,CACvG,EAEM,GAAyB,CAAE,aAC/B,OAAO,OAAO,GAAS,UAAU,aAAa,SAAW,CAAC,CAAC,CAAC,CAAC,KAC1D,GAAY,OAAO,GAAY,UAAY,EAAQ,KAAK,CAAC,CAAC,OAAS,CACtE,EAEW,OAA0G,CACrH,IAAK,qBACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,+BACL,QAAS,CACP,KAAM,uBACN,WAAY,CACV,UACA,WAII,EAAyB,EAAS,CAAK,CAC/C,CACF,EACA,CACE,IAAK,gCACL,QAAS,CACP,KAAM,kBACN,QAAS,OACT,KAAM,CAAC,OAAQ,OAAO,CACxB,EACA,UAAW,CACb,CACF,CACF"}
@@ -0,0 +1,42 @@
1
+ //#region src/lib/shared/utils/info-tooltip-options.config.ts
2
+ var e = (e) => !e || typeof e != "object" || Array.isArray(e) ? {} : Object.fromEntries(Object.entries(e).filter((e) => typeof e[1] == "string" && e[1].trim().length > 0)), t = (t, n) => {
3
+ let r = e(n), i = t.annotate && typeof t.annotate == "object" ? t.annotate : {}, a = i.infoTooltip && typeof i.infoTooltip == "object" ? i.infoTooltip : {};
4
+ if (Object.keys(r).length > 0) return {
5
+ ...t,
6
+ annotate: {
7
+ ...i,
8
+ infoTooltip: {
9
+ ...a,
10
+ content: r
11
+ }
12
+ }
13
+ };
14
+ let { infoTooltip: o, ...s } = i, c = { ...t };
15
+ return delete c.annotate, Object.keys(s).length > 0 ? {
16
+ ...c,
17
+ annotate: s
18
+ } : c;
19
+ }, n = ({ options: e }) => Object.values(e?.annotate?.infoTooltip?.content ?? {}).some((e) => typeof e == "string" && e.trim().length > 0), r = () => ({
20
+ key: "informationTooltip",
21
+ type: "group",
22
+ open: !1,
23
+ children: [{
24
+ key: "annotate.infoTooltip.content",
25
+ control: {
26
+ type: "multi-language-field",
27
+ toOptions: ({ options: e, value: n }) => t(e, n)
28
+ }
29
+ }, {
30
+ key: "annotate.infoTooltip.position",
31
+ control: {
32
+ type: "position-picker",
33
+ default: "left",
34
+ enum: ["left", "right"]
35
+ },
36
+ visibleIf: n
37
+ }]
38
+ });
39
+ //#endregion
40
+ export { r as createInfoTooltipOptionsGroup };
41
+
42
+ //# sourceMappingURL=info-tooltip-options.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-tooltip-options.config.js","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/info-tooltip-options.config.ts"],"sourcesContent":["import type { InfoTooltipViewOptions } from '../types/info-tooltip-options';\nimport type { OptionConfig, OptionsConfigContext } from './options-config.types';\n\ntype InfoTooltipConfigContext = OptionsConfigContext<InfoTooltipViewOptions>;\n\nconst nonEmptyContent = (value: unknown): Record<string, string> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string' && entry[1].trim().length > 0\n )\n );\n};\n\nconst updateInfoTooltipContent = (\n options: InfoTooltipViewOptions & Record<string, unknown>,\n value: unknown\n): InfoTooltipViewOptions & Record<string, unknown> => {\n const content = nonEmptyContent(value);\n const annotate = options.annotate && typeof options.annotate === 'object' ? options.annotate : {};\n const infoTooltip = annotate.infoTooltip && typeof annotate.infoTooltip === 'object' ? annotate.infoTooltip : {};\n\n if (Object.keys(content).length > 0) {\n return {\n ...options,\n annotate: {\n ...annotate,\n infoTooltip: {\n ...infoTooltip,\n content\n }\n }\n };\n }\n\n const { infoTooltip: ignoredInfoTooltip, ...remainingAnnotate } = annotate;\n const nextOptions = { ...options };\n\n delete nextOptions.annotate;\n\n return Object.keys(remainingAnnotate).length > 0 ? { ...nextOptions, annotate: remainingAnnotate } : nextOptions;\n};\n\nconst hasInfoTooltipContent = ({ options }: InfoTooltipConfigContext): boolean =>\n Object.values(options?.annotate?.infoTooltip?.content ?? {}).some(\n (content) => typeof content === 'string' && content.trim().length > 0\n );\n\nexport const createInfoTooltipOptionsGroup = <TContext extends InfoTooltipConfigContext>(): OptionConfig<TContext> => ({\n key: 'informationTooltip',\n type: 'group',\n open: false,\n children: [\n {\n key: 'annotate.infoTooltip.content',\n control: {\n type: 'multi-language-field',\n toOptions: ({\n options,\n value\n }: {\n options: InfoTooltipViewOptions & Record<string, unknown>;\n value: unknown;\n }) => updateInfoTooltipContent(options, value)\n }\n },\n {\n key: 'annotate.infoTooltip.position',\n control: {\n type: 'position-picker',\n default: 'left',\n enum: ['left', 'right']\n },\n visibleIf: hasInfoTooltipContent\n }\n ]\n});\n"],"mappings":";AAKA,IAAM,KAAmB,MACnB,CAAC,KAAS,OAAO,KAAU,YAAY,MAAM,QAAQ,CAAK,IACrD,CAAC,IAGH,OAAO,YACZ,OAAO,QAAQ,CAAK,CAAC,CAAC,QACnB,MAAqC,OAAO,EAAM,MAAO,YAAY,EAAM,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CACjG,CACF,GAGI,KACJ,GACA,MACqD;CACrD,IAAM,IAAU,EAAgB,CAAK,GAC/B,IAAW,EAAQ,YAAY,OAAO,EAAQ,YAAa,WAAW,EAAQ,WAAW,CAAC,GAC1F,IAAc,EAAS,eAAe,OAAO,EAAS,eAAgB,WAAW,EAAS,cAAc,CAAC;CAE/G,IAAI,OAAO,KAAK,CAAO,CAAC,CAAC,SAAS,GAChC,OAAO;EACL,GAAG;EACH,UAAU;GACR,GAAG;GACH,aAAa;IACX,GAAG;IACH;GACF;EACF;CACF;CAGF,IAAM,EAAE,aAAa,GAAoB,GAAG,MAAsB,GAC5D,IAAc,EAAE,GAAG,EAAQ;CAIjC,OAFA,OAAO,EAAY,UAEZ,OAAO,KAAK,CAAiB,CAAC,CAAC,SAAS,IAAI;EAAE,GAAG;EAAa,UAAU;CAAkB,IAAI;AACvG,GAEM,KAAyB,EAAE,iBAC/B,OAAO,OAAO,GAAS,UAAU,aAAa,WAAW,CAAC,CAAC,CAAC,CAAC,MAC1D,MAAY,OAAO,KAAY,YAAY,EAAQ,KAAK,CAAC,CAAC,SAAS,CACtE,GAEW,WAA0G;CACrH,KAAK;CACL,MAAM;CACN,MAAM;CACN,UAAU,CACR;EACE,KAAK;EACL,SAAS;GACP,MAAM;GACN,YAAY,EACV,YACA,eAII,EAAyB,GAAS,CAAK;EAC/C;CACF,GACA;EACE,KAAK;EACL,SAAS;GACP,MAAM;GACN,SAAS;GACT,MAAM,CAAC,QAAQ,OAAO;EACxB;EACA,WAAW;CACb,CACF;AACF"}
@@ -0,0 +1,2 @@
1
+ var e={de:{groups:{informationTooltip:{label:`Informations-Tooltip`}},options:{"annotate.infoTooltip.content":{label:`Inhalt`,placeholder:`Tooltip-Inhalt eingeben`},"annotate.infoTooltip.position":{label:`Position`}}},en:{groups:{informationTooltip:{label:`Information tooltip`}},options:{"annotate.infoTooltip.content":{label:`Content`,placeholder:`Enter tooltip content`},"annotate.infoTooltip.position":{label:`Position`}}},es:{groups:{informationTooltip:{label:`Tooltip de información`}},options:{"annotate.infoTooltip.content":{label:`Contenido`,placeholder:`Introduce el contenido del tooltip`},"annotate.infoTooltip.position":{label:`Posición`}}},fr:{groups:{informationTooltip:{label:`Infobulle d’information`}},options:{"annotate.infoTooltip.content":{label:`Contenu`,placeholder:`Saisissez le contenu de l’infobulle`},"annotate.infoTooltip.position":{label:`Position`}}},nl:{groups:{informationTooltip:{label:`Informatietooltip`}},options:{"annotate.infoTooltip.content":{label:`Inhoud`,placeholder:`Voer tooltipinhoud in`},"annotate.infoTooltip.position":{label:`Positie`}}}},t=t=>e[t]??e.en;exports.getInfoTooltipTranslations=t;
2
+ //# sourceMappingURL=info-tooltip-options.i18n.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-tooltip-options.i18n.cjs","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/info-tooltip-options.i18n.ts"],"sourcesContent":["import type { TranslationsFile } from './options-config.types';\n\nconst translationsByLanguage: Record<string, TranslationsFile> = {\n de: {\n groups: { informationTooltip: { label: 'Informations-Tooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Inhalt', placeholder: 'Tooltip-Inhalt eingeben' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n en: {\n groups: { informationTooltip: { label: 'Information tooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Content', placeholder: 'Enter tooltip content' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n es: {\n groups: { informationTooltip: { label: 'Tooltip de información' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Contenido', placeholder: 'Introduce el contenido del tooltip' },\n 'annotate.infoTooltip.position': { label: 'Posición' }\n }\n },\n fr: {\n groups: { informationTooltip: { label: 'Infobulle d’information' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Contenu', placeholder: 'Saisissez le contenu de l’infobulle' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n nl: {\n groups: { informationTooltip: { label: 'Informatietooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Inhoud', placeholder: 'Voer tooltipinhoud in' },\n 'annotate.infoTooltip.position': { label: 'Positie' }\n }\n }\n};\n\nexport const getInfoTooltipTranslations = (language: string): TranslationsFile =>\n translationsByLanguage[language] ?? translationsByLanguage['en'];\n"],"mappings":"AAEA,IAAM,EAA2D,CAC/D,GAAI,CACF,OAAQ,CAAE,mBAAoB,CAAE,MAAO,sBAAuB,CAAE,EAChE,QAAS,CACP,+BAAgC,CAAE,MAAO,SAAU,YAAa,yBAA0B,EAC1F,gCAAiC,CAAE,MAAO,UAAW,CACvD,CACF,EACA,GAAI,CACF,OAAQ,CAAE,mBAAoB,CAAE,MAAO,qBAAsB,CAAE,EAC/D,QAAS,CACP,+BAAgC,CAAE,MAAO,UAAW,YAAa,uBAAwB,EACzF,gCAAiC,CAAE,MAAO,UAAW,CACvD,CACF,EACA,GAAI,CACF,OAAQ,CAAE,mBAAoB,CAAE,MAAO,wBAAyB,CAAE,EAClE,QAAS,CACP,+BAAgC,CAAE,MAAO,YAAa,YAAa,oCAAqC,EACxG,gCAAiC,CAAE,MAAO,UAAW,CACvD,CACF,EACA,GAAI,CACF,OAAQ,CAAE,mBAAoB,CAAE,MAAO,yBAA0B,CAAE,EACnE,QAAS,CACP,+BAAgC,CAAE,MAAO,UAAW,YAAa,qCAAsC,EACvG,gCAAiC,CAAE,MAAO,UAAW,CACvD,CACF,EACA,GAAI,CACF,OAAQ,CAAE,mBAAoB,CAAE,MAAO,mBAAoB,CAAE,EAC7D,QAAS,CACP,+BAAgC,CAAE,MAAO,SAAU,YAAa,uBAAwB,EACxF,gCAAiC,CAAE,MAAO,SAAU,CACtD,CACF,CACF,EAEa,EAA8B,GACzC,EAAuB,IAAa,EAAuB"}
@@ -0,0 +1,57 @@
1
+ //#region src/lib/shared/utils/info-tooltip-options.i18n.ts
2
+ var e = {
3
+ de: {
4
+ groups: { informationTooltip: { label: "Informations-Tooltip" } },
5
+ options: {
6
+ "annotate.infoTooltip.content": {
7
+ label: "Inhalt",
8
+ placeholder: "Tooltip-Inhalt eingeben"
9
+ },
10
+ "annotate.infoTooltip.position": { label: "Position" }
11
+ }
12
+ },
13
+ en: {
14
+ groups: { informationTooltip: { label: "Information tooltip" } },
15
+ options: {
16
+ "annotate.infoTooltip.content": {
17
+ label: "Content",
18
+ placeholder: "Enter tooltip content"
19
+ },
20
+ "annotate.infoTooltip.position": { label: "Position" }
21
+ }
22
+ },
23
+ es: {
24
+ groups: { informationTooltip: { label: "Tooltip de información" } },
25
+ options: {
26
+ "annotate.infoTooltip.content": {
27
+ label: "Contenido",
28
+ placeholder: "Introduce el contenido del tooltip"
29
+ },
30
+ "annotate.infoTooltip.position": { label: "Posición" }
31
+ }
32
+ },
33
+ fr: {
34
+ groups: { informationTooltip: { label: "Infobulle d’information" } },
35
+ options: {
36
+ "annotate.infoTooltip.content": {
37
+ label: "Contenu",
38
+ placeholder: "Saisissez le contenu de l’infobulle"
39
+ },
40
+ "annotate.infoTooltip.position": { label: "Position" }
41
+ }
42
+ },
43
+ nl: {
44
+ groups: { informationTooltip: { label: "Informatietooltip" } },
45
+ options: {
46
+ "annotate.infoTooltip.content": {
47
+ label: "Inhoud",
48
+ placeholder: "Voer tooltipinhoud in"
49
+ },
50
+ "annotate.infoTooltip.position": { label: "Positie" }
51
+ }
52
+ }
53
+ }, t = (t) => e[t] ?? e.en;
54
+ //#endregion
55
+ export { t as getInfoTooltipTranslations };
56
+
57
+ //# sourceMappingURL=info-tooltip-options.i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-tooltip-options.i18n.js","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/info-tooltip-options.i18n.ts"],"sourcesContent":["import type { TranslationsFile } from './options-config.types';\n\nconst translationsByLanguage: Record<string, TranslationsFile> = {\n de: {\n groups: { informationTooltip: { label: 'Informations-Tooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Inhalt', placeholder: 'Tooltip-Inhalt eingeben' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n en: {\n groups: { informationTooltip: { label: 'Information tooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Content', placeholder: 'Enter tooltip content' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n es: {\n groups: { informationTooltip: { label: 'Tooltip de información' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Contenido', placeholder: 'Introduce el contenido del tooltip' },\n 'annotate.infoTooltip.position': { label: 'Posición' }\n }\n },\n fr: {\n groups: { informationTooltip: { label: 'Infobulle d’information' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Contenu', placeholder: 'Saisissez le contenu de l’infobulle' },\n 'annotate.infoTooltip.position': { label: 'Position' }\n }\n },\n nl: {\n groups: { informationTooltip: { label: 'Informatietooltip' } },\n options: {\n 'annotate.infoTooltip.content': { label: 'Inhoud', placeholder: 'Voer tooltipinhoud in' },\n 'annotate.infoTooltip.position': { label: 'Positie' }\n }\n }\n};\n\nexport const getInfoTooltipTranslations = (language: string): TranslationsFile =>\n translationsByLanguage[language] ?? translationsByLanguage['en'];\n"],"mappings":";AAEA,IAAM,IAA2D;CAC/D,IAAI;EACF,QAAQ,EAAE,oBAAoB,EAAE,OAAO,uBAAuB,EAAE;EAChE,SAAS;GACP,gCAAgC;IAAE,OAAO;IAAU,aAAa;GAA0B;GAC1F,iCAAiC,EAAE,OAAO,WAAW;EACvD;CACF;CACA,IAAI;EACF,QAAQ,EAAE,oBAAoB,EAAE,OAAO,sBAAsB,EAAE;EAC/D,SAAS;GACP,gCAAgC;IAAE,OAAO;IAAW,aAAa;GAAwB;GACzF,iCAAiC,EAAE,OAAO,WAAW;EACvD;CACF;CACA,IAAI;EACF,QAAQ,EAAE,oBAAoB,EAAE,OAAO,yBAAyB,EAAE;EAClE,SAAS;GACP,gCAAgC;IAAE,OAAO;IAAa,aAAa;GAAqC;GACxG,iCAAiC,EAAE,OAAO,WAAW;EACvD;CACF;CACA,IAAI;EACF,QAAQ,EAAE,oBAAoB,EAAE,OAAO,0BAA0B,EAAE;EACnE,SAAS;GACP,gCAAgC;IAAE,OAAO;IAAW,aAAa;GAAsC;GACvG,iCAAiC,EAAE,OAAO,WAAW;EACvD;CACF;CACA,IAAI;EACF,QAAQ,EAAE,oBAAoB,EAAE,OAAO,oBAAoB,EAAE;EAC7D,SAAS;GACP,gCAAgC;IAAE,OAAO;IAAU,aAAa;GAAwB;GACxF,iCAAiC,EAAE,OAAO,UAAU;EACtD;CACF;AACF,GAEa,KAA8B,MACzC,EAAuB,MAAa,EAAuB"}
@@ -1,2 +1,2 @@
1
- const e=require("./options-registry.generated.cjs"),t=require("./translations-registry.generated.cjs");var n=async t=>{try{let n=e.optionsConfigRegistry[t];return n?(await n())?.default??null:null}catch{return null}},r=async(e,n)=>{try{let r=`${e}:${n}`,i=t.translationsRegistry[r];if(!i)return null;let a=await i();if(!a?.default)return null;let{getAxisTranslations:o}=await Promise.resolve().then(()=>require("./axis-options.i18n.cjs")),s=o(n);return{...a.default,groups:{...s.groups,...a.default.groups},options:{...s.options,...a.default.options}}}catch{return null}};exports.loadConfigModule=n,exports.loadTranslationsModule=r;
1
+ const e=require("./options-registry.generated.cjs"),t=require("./translations-registry.generated.cjs");var n=async t=>{try{let n=e.optionsConfigRegistry[t];return n?(await n())?.default??null:null}catch{return null}},r=async(e,n)=>{try{let r=`${e}:${n}`,i=t.translationsRegistry[r];if(!i)return null;let a=await i();if(!a?.default)return null;let[{getAxisTranslations:o},{getInfoTooltipTranslations:s}]=await Promise.all([Promise.resolve().then(()=>require("./axis-options.i18n.cjs")),Promise.resolve().then(()=>require("./info-tooltip-options.i18n.cjs"))]),c=o(n),l=s(n);return{...a.default,groups:{...c.groups,...l.groups,...a.default.groups},options:{...c.options,...l.options,...a.default.options}}}catch{return null}};exports.loadConfigModule=n,exports.loadTranslationsModule=r;
2
2
  //# sourceMappingURL=options-loader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-loader.cjs","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/options-loader.ts"],"sourcesContent":["import type { VizItemType } from '../types';\nimport type { OptionsConfig, TranslationsFile } from './options-config.types';\nimport { optionsConfigRegistry } from './options-registry.generated';\nimport { translationsRegistry } from './translations-registry.generated';\n\ntype OptionsConfigModule = { default: OptionsConfig };\ntype TranslationsModule = { default: TranslationsFile };\n\nexport const loadConfigModule = async (itemType: VizItemType): Promise<OptionsConfig | null> => {\n try {\n const moduleLoader = optionsConfigRegistry[itemType];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as OptionsConfigModule;\n\n return module?.default ?? null;\n }\n catch {\n return null;\n }\n};\n\nexport const loadTranslationsModule = async (itemType: VizItemType, language: string): Promise<TranslationsFile | null> => {\n try {\n const key = `${itemType}:${language}`;\n const moduleLoader = translationsRegistry[key];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as TranslationsModule;\n\n if (!module?.default) {\n return null;\n }\n\n // The axis controls are shared by every cartesian chart, so their translations are too.\n // A chart file wins over the shared entries, letting a chart reword a single axis control.\n const { getAxisTranslations } = await import('./axis-options.i18n');\n const axisTranslations = getAxisTranslations(language);\n\n return {\n ...module.default,\n groups: { ...axisTranslations.groups, ...module.default.groups },\n options: { ...axisTranslations.options, ...module.default.options }\n };\n }\n catch {\n return null;\n }\n};\n"],"mappings":"uGAQA,IAAa,EAAmB,KAAO,IAAyD,CAC9F,GAAI,CACF,IAAM,EAAe,EAAA,sBAAsB,GAQ3C,OANK,GAME,MAFc,EAAa,EAAA,EAEnB,SAAW,KALjB,IAMX,MACM,CACJ,OAAO,IACT,CACF,EAEa,EAAyB,MAAO,EAAuB,IAAuD,CACzH,GAAI,CACF,IAAM,EAAM,GAAG,EAAS,GAAG,IACrB,EAAe,EAAA,qBAAqB,GAE1C,GAAI,CAAC,EACH,OAAO,KAGT,IAAM,EAAS,MAAM,EAAa,EAElC,GAAI,CAAC,GAAQ,QACX,OAAO,KAKT,GAAM,CAAE,uBAAwB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAAM,yBAAA,CAAA,EAChC,EAAmB,EAAoB,CAAQ,EAErD,MAAO,CACL,GAAG,EAAO,QACV,OAAQ,CAAE,GAAG,EAAiB,OAAQ,GAAG,EAAO,QAAQ,MAAO,EAC/D,QAAS,CAAE,GAAG,EAAiB,QAAS,GAAG,EAAO,QAAQ,OAAQ,CACpE,CACF,MACM,CACJ,OAAO,IACT,CACF"}
1
+ {"version":3,"file":"options-loader.cjs","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/options-loader.ts"],"sourcesContent":["import type { VizItemType } from '../types';\nimport type { OptionsConfig, TranslationsFile } from './options-config.types';\nimport { optionsConfigRegistry } from './options-registry.generated';\nimport { translationsRegistry } from './translations-registry.generated';\n\ntype OptionsConfigModule = { default: OptionsConfig };\ntype TranslationsModule = { default: TranslationsFile };\n\nexport const loadConfigModule = async (itemType: VizItemType): Promise<OptionsConfig | null> => {\n try {\n const moduleLoader = optionsConfigRegistry[itemType];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as OptionsConfigModule;\n\n return module?.default ?? null;\n }\n catch {\n return null;\n }\n};\n\nexport const loadTranslationsModule = async (itemType: VizItemType, language: string): Promise<TranslationsFile | null> => {\n try {\n const key = `${itemType}:${language}`;\n const moduleLoader = translationsRegistry[key];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as TranslationsModule;\n\n if (!module?.default) {\n return null;\n }\n\n const [{ getAxisTranslations }, { getInfoTooltipTranslations }] = await Promise.all([\n import('./axis-options.i18n'),\n import('./info-tooltip-options.i18n')\n ]);\n const axisTranslations = getAxisTranslations(language);\n const infoTooltipTranslations = getInfoTooltipTranslations(language);\n\n return {\n ...module.default,\n groups: { ...axisTranslations.groups, ...infoTooltipTranslations.groups, ...module.default.groups },\n options: { ...axisTranslations.options, ...infoTooltipTranslations.options, ...module.default.options }\n };\n }\n catch {\n return null;\n }\n};\n"],"mappings":"uGAQA,IAAa,EAAmB,KAAO,IAAyD,CAC9F,GAAI,CACF,IAAM,EAAe,EAAA,sBAAsB,GAQ3C,OANK,GAME,MAFc,EAAa,EAAA,EAEnB,SAAW,KALjB,IAMX,MACM,CACJ,OAAO,IACT,CACF,EAEa,EAAyB,MAAO,EAAuB,IAAuD,CACzH,GAAI,CACF,IAAM,EAAM,GAAG,EAAS,GAAG,IACrB,EAAe,EAAA,qBAAqB,GAE1C,GAAI,CAAC,EACH,OAAO,KAGT,IAAM,EAAS,MAAM,EAAa,EAElC,GAAI,CAAC,GAAQ,QACX,OAAO,KAGT,GAAM,CAAC,CAAE,uBAAuB,CAAE,+BAAgC,MAAM,QAAQ,IAAI,CAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAClF,yBAAA,CAAA,EAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACA,iCAAA,CAAA,CACF,CAAC,EACK,EAAmB,EAAoB,CAAQ,EAC/C,EAA0B,EAA2B,CAAQ,EAEnE,MAAO,CACL,GAAG,EAAO,QACV,OAAQ,CAAE,GAAG,EAAiB,OAAQ,GAAG,EAAwB,OAAQ,GAAG,EAAO,QAAQ,MAAO,EAClG,QAAS,CAAE,GAAG,EAAiB,QAAS,GAAG,EAAwB,QAAS,GAAG,EAAO,QAAQ,OAAQ,CACxG,CACF,MACM,CACJ,OAAO,IACT,CACF"}
@@ -14,15 +14,17 @@ var n = async (t) => {
14
14
  if (!i) return null;
15
15
  let a = await i();
16
16
  if (!a?.default) return null;
17
- let { getAxisTranslations: o } = await import("./axis-options.i18n.js"), s = o(n);
17
+ let [{ getAxisTranslations: o }, { getInfoTooltipTranslations: s }] = await Promise.all([import("./axis-options.i18n.js"), import("./info-tooltip-options.i18n.js")]), c = o(n), l = s(n);
18
18
  return {
19
19
  ...a.default,
20
20
  groups: {
21
- ...s.groups,
21
+ ...c.groups,
22
+ ...l.groups,
22
23
  ...a.default.groups
23
24
  },
24
25
  options: {
25
- ...s.options,
26
+ ...c.options,
27
+ ...l.options,
26
28
  ...a.default.options
27
29
  }
28
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"options-loader.js","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/options-loader.ts"],"sourcesContent":["import type { VizItemType } from '../types';\nimport type { OptionsConfig, TranslationsFile } from './options-config.types';\nimport { optionsConfigRegistry } from './options-registry.generated';\nimport { translationsRegistry } from './translations-registry.generated';\n\ntype OptionsConfigModule = { default: OptionsConfig };\ntype TranslationsModule = { default: TranslationsFile };\n\nexport const loadConfigModule = async (itemType: VizItemType): Promise<OptionsConfig | null> => {\n try {\n const moduleLoader = optionsConfigRegistry[itemType];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as OptionsConfigModule;\n\n return module?.default ?? null;\n }\n catch {\n return null;\n }\n};\n\nexport const loadTranslationsModule = async (itemType: VizItemType, language: string): Promise<TranslationsFile | null> => {\n try {\n const key = `${itemType}:${language}`;\n const moduleLoader = translationsRegistry[key];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as TranslationsModule;\n\n if (!module?.default) {\n return null;\n }\n\n // The axis controls are shared by every cartesian chart, so their translations are too.\n // A chart file wins over the shared entries, letting a chart reword a single axis control.\n const { getAxisTranslations } = await import('./axis-options.i18n');\n const axisTranslations = getAxisTranslations(language);\n\n return {\n ...module.default,\n groups: { ...axisTranslations.groups, ...module.default.groups },\n options: { ...axisTranslations.options, ...module.default.options }\n };\n }\n catch {\n return null;\n }\n};\n"],"mappings":";;;AAQA,IAAa,IAAmB,OAAO,MAAyD;CAC9F,IAAI;EACF,IAAM,IAAe,EAAsB;EAQ3C,OANK,KAME,MAFc,EAAa,EAAA,EAEnB,WAAW,OALjB;CAMX,QACM;EACJ,OAAO;CACT;AACF,GAEa,IAAyB,OAAO,GAAuB,MAAuD;CACzH,IAAI;EACF,IAAM,IAAM,GAAG,EAAS,GAAG,KACrB,IAAe,EAAqB;EAE1C,IAAI,CAAC,GACH,OAAO;EAGT,IAAM,IAAS,MAAM,EAAa;EAElC,IAAI,CAAC,GAAQ,SACX,OAAO;EAKT,IAAM,EAAE,2BAAwB,MAAM,OAAO,2BACvC,IAAmB,EAAoB,CAAQ;EAErD,OAAO;GACL,GAAG,EAAO;GACV,QAAQ;IAAE,GAAG,EAAiB;IAAQ,GAAG,EAAO,QAAQ;GAAO;GAC/D,SAAS;IAAE,GAAG,EAAiB;IAAS,GAAG,EAAO,QAAQ;GAAQ;EACpE;CACF,QACM;EACJ,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"options-loader.js","names":[],"sources":["../../../../../libs/dashboard-contents-types/src/lib/shared/utils/options-loader.ts"],"sourcesContent":["import type { VizItemType } from '../types';\nimport type { OptionsConfig, TranslationsFile } from './options-config.types';\nimport { optionsConfigRegistry } from './options-registry.generated';\nimport { translationsRegistry } from './translations-registry.generated';\n\ntype OptionsConfigModule = { default: OptionsConfig };\ntype TranslationsModule = { default: TranslationsFile };\n\nexport const loadConfigModule = async (itemType: VizItemType): Promise<OptionsConfig | null> => {\n try {\n const moduleLoader = optionsConfigRegistry[itemType];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as OptionsConfigModule;\n\n return module?.default ?? null;\n }\n catch {\n return null;\n }\n};\n\nexport const loadTranslationsModule = async (itemType: VizItemType, language: string): Promise<TranslationsFile | null> => {\n try {\n const key = `${itemType}:${language}`;\n const moduleLoader = translationsRegistry[key];\n\n if (!moduleLoader) {\n return null;\n }\n\n const module = await moduleLoader() as TranslationsModule;\n\n if (!module?.default) {\n return null;\n }\n\n const [{ getAxisTranslations }, { getInfoTooltipTranslations }] = await Promise.all([\n import('./axis-options.i18n'),\n import('./info-tooltip-options.i18n')\n ]);\n const axisTranslations = getAxisTranslations(language);\n const infoTooltipTranslations = getInfoTooltipTranslations(language);\n\n return {\n ...module.default,\n groups: { ...axisTranslations.groups, ...infoTooltipTranslations.groups, ...module.default.groups },\n options: { ...axisTranslations.options, ...infoTooltipTranslations.options, ...module.default.options }\n };\n }\n catch {\n return null;\n }\n};\n"],"mappings":";;;AAQA,IAAa,IAAmB,OAAO,MAAyD;CAC9F,IAAI;EACF,IAAM,IAAe,EAAsB;EAQ3C,OANK,KAME,MAFc,EAAa,EAAA,EAEnB,WAAW,OALjB;CAMX,QACM;EACJ,OAAO;CACT;AACF,GAEa,IAAyB,OAAO,GAAuB,MAAuD;CACzH,IAAI;EACF,IAAM,IAAM,GAAG,EAAS,GAAG,KACrB,IAAe,EAAqB;EAE1C,IAAI,CAAC,GACH,OAAO;EAGT,IAAM,IAAS,MAAM,EAAa;EAElC,IAAI,CAAC,GAAQ,SACX,OAAO;EAGT,IAAM,CAAC,EAAE,0BAAuB,EAAE,mCAAgC,MAAM,QAAQ,IAAI,CAClF,OAAO,2BACP,OAAO,iCACT,CAAC,GACK,IAAmB,EAAoB,CAAQ,GAC/C,IAA0B,EAA2B,CAAQ;EAEnE,OAAO;GACL,GAAG,EAAO;GACV,QAAQ;IAAE,GAAG,EAAiB;IAAQ,GAAG,EAAwB;IAAQ,GAAG,EAAO,QAAQ;GAAO;GAClG,SAAS;IAAE,GAAG,EAAiB;IAAS,GAAG,EAAwB;IAAS,GAAG,EAAO,QAAQ;GAAQ;EACxG;CACF,QACM;EACJ,OAAO;CACT;AACF"}
@@ -1,2 +1,2 @@
1
- const e=require("../helpers.cjs");var t=e=>e?.find(e=>e?.name===`target`)?.content?.length===0&&(e?.find(e=>e?.name===`measure`)?.content?.length??0)>0,n=[{color:`#ff0000`,value:0},{color:`#ffa500`,value:25},{color:`#ffff00`,value:50},{color:`#008000`,value:75},{color:`#006400`,value:100}],r=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!1}},{key:`display.meterValue`,control:{type:`switch`,label:`Value`,default:!0}},{key:`display.meterLabel`,control:{type:`switch`,label:`Label`,default:!0}},{key:`display.ticks`,control:{type:`switch`,label:`Ticks`,default:!0}},{key:`degrees`,control:{type:`slider`,label:`Arc size`,default:230,min:180,max:360,step:1}},{key:`arcWidth`,control:{type:`slider`,label:`Gauge width`,default:.08,min:.02,max:.7,step:.01}},{type:`divider`},{key:`manualValues.display`,control:{type:`picker`,label:`Ticks display`,default:`absolute`,enum:[`absolute`,`percentage`]}},{key:`manualValues.mode`,control:{type:`picker`,label:`Range type`,default:`relative`,enum:[`relative`,`absolute`],toOptions:({options:e,value:t})=>{let n=e?.manualValues?.mode??`relative`,r={...e,manualValues:{...e.manualValues,mode:t}};if(t===`absolute`&&n===`relative`&&r.manualValues?.ranges&&r.manualValues?.target){let e=r.manualValues.target;r.manualValues.ranges=r.manualValues.ranges.map(t=>({...t,val:typeof t.val==`number`?t.val*e/100:t.val}))}else t===`relative`&&n===`absolute`&&r.manualValues?.ranges?.length&&(r.manualValues.target=r.manualValues.ranges.at(-1)?.val,r.manualValues.ranges=r.manualValues.ranges.map(e=>({...e,value:typeof e.val==`number`&&r.manualValues?.target?e.val*100/r.manualValues.target:e.val})));return r}}},{key:`manualValues.target`,control:{type:`number-field`,label:`Manual target`,placeholder:`Target value`,minWidthInputField:`150px`},visibleIf:({options:e,slots:n})=>e?.manualValues?.mode!==`absolute`&&t(n)},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!0,minimumRangeSize:2,percentage:({options:e})=>e?.manualValues?.mode!==`absolute`,noAlphaChannel:!0,hideLabel:!0,label:`Color ranges`,default:()=>structuredClone(n),parseValue:e=>e?.map(e=>({color:e?.color,value:e?.value??e?.val})),toValue:e=>e?.map(e=>({color:e?.color,val:e?.value}))}}]},{key:`marker`,type:`group`,open:!1,children:[{key:`marker.type`,control:{type:`picker`,label:`Marker type`,default:`innerBand`,enum:[`needle`,`line`,`inside`,`outside`,`centerBand`,`innerBand`]}},{key:`marker.color`,control:{type:`color-picker`,label:`Marker color`,default:({theme:t})=>e.getThemeAxisColor(t),extraLabel:({options:t,theme:n})=>e.getThemeAxisColorResetLabel(t,n,`marker.color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelHasClickAction(t,n,`marker.color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelClickAction(t,n,`marker.color`)},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type!==`innerBand`},{key:`marker.centerBandWidth`,control:{type:`slider`,label:`Marker width`,default:.34,min:.1,max:1,step:.01},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type===`centerBand`},{key:`marker.lineWidth`,control:{type:`slider`,label:`Line width`,default:2,min:1,max:10,step:1},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type===`line`},{key:`marker.arrowSize`,control:{type:`slider`,label:`Arrow size`,default:.05,min:.05,max:.2,step:.01},visibleIf:({options:e})=>e?.marker?.type&&[`inside`,`outside`].includes(e?.marker?.type)}]}];exports.default=r;
1
+ const e=require("../helpers.cjs"),t=require("../shared/utils/info-tooltip-options.config.cjs");var n=e=>e?.find(e=>e?.name===`target`)?.content?.length===0&&(e?.find(e=>e?.name===`measure`)?.content?.length??0)>0,r=[{color:`#ff0000`,value:0},{color:`#ffa500`,value:25},{color:`#ffff00`,value:50},{color:`#008000`,value:75},{color:`#006400`,value:100}],i=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!1}},{key:`display.meterValue`,control:{type:`switch`,label:`Value`,default:!0}},{key:`display.meterLabel`,control:{type:`switch`,label:`Label`,default:!0}},{key:`display.ticks`,control:{type:`switch`,label:`Ticks`,default:!0}},{key:`degrees`,control:{type:`slider`,label:`Arc size`,default:230,min:180,max:360,step:1}},{key:`arcWidth`,control:{type:`slider`,label:`Gauge width`,default:.08,min:.02,max:.7,step:.01}},{type:`divider`},{key:`manualValues.display`,control:{type:`picker`,label:`Ticks display`,default:`absolute`,enum:[`absolute`,`percentage`]}},{key:`manualValues.mode`,control:{type:`picker`,label:`Range type`,default:`relative`,enum:[`relative`,`absolute`],toOptions:({options:e,value:t})=>{let n=e?.manualValues?.mode??`relative`,r={...e,manualValues:{...e.manualValues,mode:t}};if(t===`absolute`&&n===`relative`&&r.manualValues?.ranges&&r.manualValues?.target){let e=r.manualValues.target;r.manualValues.ranges=r.manualValues.ranges.map(t=>({...t,val:typeof t.val==`number`?t.val*e/100:t.val}))}else t===`relative`&&n===`absolute`&&r.manualValues?.ranges?.length&&(r.manualValues.target=r.manualValues.ranges.at(-1)?.val,r.manualValues.ranges=r.manualValues.ranges.map(e=>({...e,value:typeof e.val==`number`&&r.manualValues?.target?e.val*100/r.manualValues.target:e.val})));return r}}},{key:`manualValues.target`,control:{type:`number-field`,label:`Manual target`,placeholder:`Target value`,minWidthInputField:`150px`},visibleIf:({options:e,slots:t})=>e?.manualValues?.mode!==`absolute`&&n(t)},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!0,minimumRangeSize:2,percentage:({options:e})=>e?.manualValues?.mode!==`absolute`,noAlphaChannel:!0,hideLabel:!0,label:`Color ranges`,default:()=>structuredClone(r),parseValue:e=>e?.map(e=>({color:e?.color,value:e?.value??e?.val})),toValue:e=>e?.map(e=>({color:e?.color,val:e?.value}))}}]},{key:`marker`,type:`group`,open:!1,children:[{key:`marker.type`,control:{type:`picker`,label:`Marker type`,default:`innerBand`,enum:[`needle`,`line`,`inside`,`outside`,`centerBand`,`innerBand`]}},{key:`marker.color`,control:{type:`color-picker`,label:`Marker color`,default:({theme:t})=>e.getThemeAxisColor(t),extraLabel:({options:t,theme:n})=>e.getThemeAxisColorResetLabel(t,n,`marker.color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelHasClickAction(t,n,`marker.color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeAxisColorExtraLabelClickAction(t,n,`marker.color`)},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type!==`innerBand`},{key:`marker.centerBandWidth`,control:{type:`slider`,label:`Marker width`,default:.34,min:.1,max:1,step:.01},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type===`centerBand`},{key:`marker.lineWidth`,control:{type:`slider`,label:`Line width`,default:2,min:1,max:10,step:1},visibleIf:({options:e})=>e?.marker?.type&&e?.marker?.type===`line`},{key:`marker.arrowSize`,control:{type:`slider`,label:`Arrow size`,default:.05,min:.05,max:.2,step:.01},visibleIf:({options:e})=>e?.marker?.type&&[`inside`,`outside`].includes(e?.marker?.type)}]},t.createInfoTooltipOptionsGroup()];exports.default=i;
2
2
  //# sourceMappingURL=speedometer-chart-options.config.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"speedometer-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/speedometer-chart/speedometer-chart-options.config.ts"],"sourcesContent":["import {\n getThemeAxisColor,\n getThemeAxisColorExtraLabelClickAction,\n getThemeAxisColorExtraLabelHasClickAction,\n getThemeAxisColorResetLabel\n} from '../helpers';\nimport type { ManualValuesRange } from '../shared/types/ranges';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { SpeedometerChartViewOptions } from './speedometer-chart-options';\nimport type { SpeedometerChartSlots } from './speedometer-chart-slots';\n\ntype SpeedometerChartConfigContext = OptionsConfigContext<SpeedometerChartViewOptions, SpeedometerChartSlots>;\ntype SpeedometerChartConfigValue<T> = SpeedometerChartConfigContext & { value: T };\ntype SpeedometerRange = ManualValuesRange & { value?: number };\n\nconst hasMeasureButNoTarget = (slots: SpeedometerChartConfigContext['slots']) => (\n slots?.find((slot) => slot?.name === 'target')?.content?.length === 0\n && (slots?.find((slot) => slot?.name === 'measure')?.content?.length ?? 0) > 0\n);\n\nconst defaultRangeValues = [\n { color: '#ff0000', value: 0 },\n { color: '#ffa500', value: 25 },\n { color: '#ffff00', value: 50 },\n { color: '#008000', value: 75 },\n { color: '#006400', value: 100 }\n];\n\nconst speedometerChartOptionsConfig: OptionsConfig<SpeedometerChartConfigContext> = [\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: false\n }\n },\n {\n key: 'display.meterValue',\n control: {\n type: 'switch',\n label: 'Value',\n default: true\n }\n },\n {\n key: 'display.meterLabel',\n control: {\n type: 'switch',\n label: 'Label',\n default: true\n }\n },\n {\n key: 'display.ticks',\n control: {\n type: 'switch',\n label: 'Ticks',\n default: true\n }\n },\n {\n key: 'degrees',\n control: {\n type: 'slider',\n label: 'Arc size',\n default: 230,\n min: 180,\n max: 360,\n step: 1\n }\n },\n {\n key: 'arcWidth',\n control: {\n type: 'slider',\n label: 'Gauge width',\n default: 0.08,\n min: 0.02,\n max: 0.7,\n step: 0.01\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'manualValues.display',\n control: {\n type: 'picker',\n label: 'Ticks display',\n default: 'absolute',\n enum: ['absolute', 'percentage']\n }\n },\n {\n key: 'manualValues.mode',\n control: {\n type: 'picker',\n label: 'Range type',\n default: 'relative',\n enum: ['relative', 'absolute'],\n toOptions: ({ options, value }: SpeedometerChartConfigValue<'relative' | 'absolute'>) => {\n const previousValue = options?.manualValues?.mode ?? 'relative';\n const opts: SpeedometerChartViewOptions = {\n ...options,\n manualValues: {\n ...options.manualValues,\n mode: value\n }\n };\n\n if (value === 'absolute' && previousValue === 'relative' && opts.manualValues?.ranges && opts.manualValues?.target) {\n const target = opts.manualValues.target;\n\n opts.manualValues.ranges = opts.manualValues.ranges.map((range: ManualValuesRange) => ({\n ...range,\n val: typeof range.val === 'number' ? (range.val * target) / 100 : range.val\n }));\n }\n else if (value === 'relative' && previousValue === 'absolute' && opts.manualValues?.ranges?.length) {\n opts.manualValues.target = opts.manualValues.ranges.at(-1)?.val;\n opts.manualValues.ranges = opts.manualValues.ranges.map((range: ManualValuesRange) => ({\n ...range,\n value: typeof range.val === 'number' && opts.manualValues?.target\n ? (range.val * 100) / opts.manualValues.target\n : range.val\n }));\n }\n\n return opts;\n }\n }\n },\n {\n key: 'manualValues.target',\n control: {\n type: 'number-field',\n label: 'Manual target',\n placeholder: 'Target value',\n minWidthInputField: '150px'\n },\n visibleIf: ({ options, slots }: SpeedometerChartConfigContext) =>\n options?.manualValues?.mode !== 'absolute' && hasMeasureButNoTarget(slots)\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: true,\n minimumRangeSize: 2,\n percentage: ({ options }: SpeedometerChartConfigContext) => options?.manualValues?.mode !== 'absolute',\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Color ranges',\n default: () => structuredClone(defaultRangeValues),\n parseValue: (value: SpeedometerRange[] | null | undefined) => value?.map((v) => ({\n color: v?.color,\n value: v?.value ?? v?.val\n })),\n toValue: (value: SpeedometerRange[] | null | undefined) => value?.map((v) => ({\n color: v?.color,\n val: v?.value\n }))\n }\n }\n ]\n },\n {\n key: 'marker',\n type: 'group',\n open: false,\n children: [\n {\n key: 'marker.type',\n control: {\n type: 'picker',\n label: 'Marker type',\n default: 'innerBand',\n enum: ['needle', 'line', 'inside', 'outside', 'centerBand', 'innerBand']\n }\n },\n {\n key: 'marker.color',\n control: {\n type: 'color-picker',\n label: 'Marker color',\n default: ({ theme }: SpeedometerChartConfigContext) => getThemeAxisColor(theme),\n extraLabel: ({ options, theme }: SpeedometerChartConfigContext) => getThemeAxisColorResetLabel(options, theme, 'marker.color'),\n extraLabelHasClickAction: ({ options, theme }: SpeedometerChartConfigContext) =>\n getThemeAxisColorExtraLabelHasClickAction(options, theme, 'marker.color'),\n extraLabelClickAction: ({ options, theme }: SpeedometerChartConfigContext) =>\n getThemeAxisColorExtraLabelClickAction(options, theme, 'marker.color')\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type !== 'innerBand'\n },\n {\n key: 'marker.centerBandWidth',\n control: {\n type: 'slider',\n label: 'Marker width',\n default: 0.34,\n min: 0.1,\n max: 1,\n step: 0.01\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type === 'centerBand'\n },\n {\n key: 'marker.lineWidth',\n control: {\n type: 'slider',\n label: 'Line width',\n default: 2,\n min: 1,\n max: 10,\n step: 1\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type === 'line'\n },\n {\n key: 'marker.arrowSize',\n control: {\n type: 'slider',\n label: 'Arrow size',\n default: 0.05,\n min: 0.05,\n max: 0.2,\n step: 0.01\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) =>\n options?.marker?.type && ['inside', 'outside'].includes(options?.marker?.type)\n }\n ]\n }\n];\n\nexport default speedometerChartOptionsConfig;\n"],"mappings":"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"}
1
+ {"version":3,"file":"speedometer-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/speedometer-chart/speedometer-chart-options.config.ts"],"sourcesContent":["import {\n getThemeAxisColor,\n getThemeAxisColorExtraLabelClickAction,\n getThemeAxisColorExtraLabelHasClickAction,\n getThemeAxisColorResetLabel\n} from '../helpers';\nimport type { ManualValuesRange } from '../shared/types/ranges';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { SpeedometerChartViewOptions } from './speedometer-chart-options';\nimport type { SpeedometerChartSlots } from './speedometer-chart-slots';\n\ntype SpeedometerChartConfigContext = OptionsConfigContext<SpeedometerChartViewOptions, SpeedometerChartSlots>;\ntype SpeedometerChartConfigValue<T> = SpeedometerChartConfigContext & { value: T };\ntype SpeedometerRange = ManualValuesRange & { value?: number };\n\nconst hasMeasureButNoTarget = (slots: SpeedometerChartConfigContext['slots']) => (\n slots?.find((slot) => slot?.name === 'target')?.content?.length === 0\n && (slots?.find((slot) => slot?.name === 'measure')?.content?.length ?? 0) > 0\n);\n\nconst defaultRangeValues = [\n { color: '#ff0000', value: 0 },\n { color: '#ffa500', value: 25 },\n { color: '#ffff00', value: 50 },\n { color: '#008000', value: 75 },\n { color: '#006400', value: 100 }\n];\n\nconst speedometerChartOptionsConfig: OptionsConfig<SpeedometerChartConfigContext> = [\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: false\n }\n },\n {\n key: 'display.meterValue',\n control: {\n type: 'switch',\n label: 'Value',\n default: true\n }\n },\n {\n key: 'display.meterLabel',\n control: {\n type: 'switch',\n label: 'Label',\n default: true\n }\n },\n {\n key: 'display.ticks',\n control: {\n type: 'switch',\n label: 'Ticks',\n default: true\n }\n },\n {\n key: 'degrees',\n control: {\n type: 'slider',\n label: 'Arc size',\n default: 230,\n min: 180,\n max: 360,\n step: 1\n }\n },\n {\n key: 'arcWidth',\n control: {\n type: 'slider',\n label: 'Gauge width',\n default: 0.08,\n min: 0.02,\n max: 0.7,\n step: 0.01\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'manualValues.display',\n control: {\n type: 'picker',\n label: 'Ticks display',\n default: 'absolute',\n enum: ['absolute', 'percentage']\n }\n },\n {\n key: 'manualValues.mode',\n control: {\n type: 'picker',\n label: 'Range type',\n default: 'relative',\n enum: ['relative', 'absolute'],\n toOptions: ({ options, value }: SpeedometerChartConfigValue<'relative' | 'absolute'>) => {\n const previousValue = options?.manualValues?.mode ?? 'relative';\n const opts: SpeedometerChartViewOptions = {\n ...options,\n manualValues: {\n ...options.manualValues,\n mode: value\n }\n };\n\n if (value === 'absolute' && previousValue === 'relative' && opts.manualValues?.ranges && opts.manualValues?.target) {\n const target = opts.manualValues.target;\n\n opts.manualValues.ranges = opts.manualValues.ranges.map((range: ManualValuesRange) => ({\n ...range,\n val: typeof range.val === 'number' ? (range.val * target) / 100 : range.val\n }));\n }\n else if (value === 'relative' && previousValue === 'absolute' && opts.manualValues?.ranges?.length) {\n opts.manualValues.target = opts.manualValues.ranges.at(-1)?.val;\n opts.manualValues.ranges = opts.manualValues.ranges.map((range: ManualValuesRange) => ({\n ...range,\n value: typeof range.val === 'number' && opts.manualValues?.target\n ? (range.val * 100) / opts.manualValues.target\n : range.val\n }));\n }\n\n return opts;\n }\n }\n },\n {\n key: 'manualValues.target',\n control: {\n type: 'number-field',\n label: 'Manual target',\n placeholder: 'Target value',\n minWidthInputField: '150px'\n },\n visibleIf: ({ options, slots }: SpeedometerChartConfigContext) =>\n options?.manualValues?.mode !== 'absolute' && hasMeasureButNoTarget(slots)\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: true,\n minimumRangeSize: 2,\n percentage: ({ options }: SpeedometerChartConfigContext) => options?.manualValues?.mode !== 'absolute',\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Color ranges',\n default: () => structuredClone(defaultRangeValues),\n parseValue: (value: SpeedometerRange[] | null | undefined) => value?.map((v) => ({\n color: v?.color,\n value: v?.value ?? v?.val\n })),\n toValue: (value: SpeedometerRange[] | null | undefined) => value?.map((v) => ({\n color: v?.color,\n val: v?.value\n }))\n }\n }\n ]\n },\n {\n key: 'marker',\n type: 'group',\n open: false,\n children: [\n {\n key: 'marker.type',\n control: {\n type: 'picker',\n label: 'Marker type',\n default: 'innerBand',\n enum: ['needle', 'line', 'inside', 'outside', 'centerBand', 'innerBand']\n }\n },\n {\n key: 'marker.color',\n control: {\n type: 'color-picker',\n label: 'Marker color',\n default: ({ theme }: SpeedometerChartConfigContext) => getThemeAxisColor(theme),\n extraLabel: ({ options, theme }: SpeedometerChartConfigContext) => getThemeAxisColorResetLabel(options, theme, 'marker.color'),\n extraLabelHasClickAction: ({ options, theme }: SpeedometerChartConfigContext) =>\n getThemeAxisColorExtraLabelHasClickAction(options, theme, 'marker.color'),\n extraLabelClickAction: ({ options, theme }: SpeedometerChartConfigContext) =>\n getThemeAxisColorExtraLabelClickAction(options, theme, 'marker.color')\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type !== 'innerBand'\n },\n {\n key: 'marker.centerBandWidth',\n control: {\n type: 'slider',\n label: 'Marker width',\n default: 0.34,\n min: 0.1,\n max: 1,\n step: 0.01\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type === 'centerBand'\n },\n {\n key: 'marker.lineWidth',\n control: {\n type: 'slider',\n label: 'Line width',\n default: 2,\n min: 1,\n max: 10,\n step: 1\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) => options?.marker?.type && options?.marker?.type === 'line'\n },\n {\n key: 'marker.arrowSize',\n control: {\n type: 'slider',\n label: 'Arrow size',\n default: 0.05,\n min: 0.05,\n max: 0.2,\n step: 0.01\n },\n visibleIf: ({ options }: SpeedometerChartConfigContext) =>\n options?.marker?.type && ['inside', 'outside'].includes(options?.marker?.type)\n }\n ]\n },\n createInfoTooltipOptionsGroup<SpeedometerChartConfigContext>()\n];\n\nexport default speedometerChartOptionsConfig;\n"],"mappings":"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"}