@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.
- package/CHANGELOG.md +6 -0
- package/area-chart/area-chart-options.config.cjs +1 -1
- package/area-chart/area-chart-options.config.cjs.map +1 -1
- package/area-chart/area-chart-options.config.js +9 -7
- package/area-chart/area-chart-options.config.js.map +1 -1
- package/bar-chart/bar-chart-options.config.cjs +1 -1
- package/bar-chart/bar-chart-options.config.cjs.map +1 -1
- package/bar-chart/bar-chart-options.config.js +12 -10
- package/bar-chart/bar-chart-options.config.js.map +1 -1
- package/box-plot/box-plot-options.config.cjs +1 -1
- package/box-plot/box-plot-options.config.cjs.map +1 -1
- package/box-plot/box-plot-options.config.js +21 -19
- package/box-plot/box-plot-options.config.js.map +1 -1
- package/bubble-chart/bubble-chart-options.config.cjs +1 -1
- package/bubble-chart/bubble-chart-options.config.cjs.map +1 -1
- package/bubble-chart/bubble-chart-options.config.js +112 -107
- package/bubble-chart/bubble-chart-options.config.js.map +1 -1
- package/bullet-chart/bullet-chart-options.config.cjs +1 -1
- package/bullet-chart/bullet-chart-options.config.cjs.map +1 -1
- package/bullet-chart/bullet-chart-options.config.js +4 -3
- package/bullet-chart/bullet-chart-options.config.js.map +1 -1
- package/choropleth-map/choropleth-map-options.config.cjs +1 -1
- package/choropleth-map/choropleth-map-options.config.cjs.map +1 -1
- package/choropleth-map/choropleth-map-options.config.js +39 -37
- package/choropleth-map/choropleth-map-options.config.js.map +1 -1
- package/circle-pack-chart/circle-pack-chart-options.config.cjs +1 -1
- package/circle-pack-chart/circle-pack-chart-options.config.cjs.map +1 -1
- package/circle-pack-chart/circle-pack-chart-options.config.js +4 -3
- package/circle-pack-chart/circle-pack-chart-options.config.js.map +1 -1
- package/circular-gauge/circular-gauge-options.config.cjs +1 -1
- package/circular-gauge/circular-gauge-options.config.cjs.map +1 -1
- package/circular-gauge/circular-gauge-options.config.js +148 -143
- package/circular-gauge/circular-gauge-options.config.js.map +1 -1
- package/column-chart/column-chart-options.config.cjs +1 -1
- package/column-chart/column-chart-options.config.cjs.map +1 -1
- package/column-chart/column-chart-options.config.js +12 -10
- package/column-chart/column-chart-options.config.js.map +1 -1
- package/combination-chart/combination-chart-options.config.cjs +1 -1
- package/combination-chart/combination-chart-options.config.cjs.map +1 -1
- package/combination-chart/combination-chart-options.config.js +5 -3
- package/combination-chart/combination-chart-options.config.js.map +1 -1
- package/conditional-number/conditional-number-options.config.cjs +1 -1
- package/conditional-number/conditional-number-options.config.cjs.map +1 -1
- package/conditional-number/conditional-number-options.config.js +156 -151
- package/conditional-number/conditional-number-options.config.js.map +1 -1
- package/donut-chart/donut-chart-options.config.cjs +1 -1
- package/donut-chart/donut-chart-options.config.cjs.map +1 -1
- package/donut-chart/donut-chart-options.config.js +184 -179
- package/donut-chart/donut-chart-options.config.js.map +1 -1
- package/evolution-number/evolution-number-options.config.cjs +1 -1
- package/evolution-number/evolution-number-options.config.cjs.map +1 -1
- package/evolution-number/evolution-number-options.config.js +5 -3
- package/evolution-number/evolution-number-options.config.js.map +1 -1
- package/funnel-chart/funnel-chart-options.config.cjs +1 -1
- package/funnel-chart/funnel-chart-options.config.cjs.map +1 -1
- package/funnel-chart/funnel-chart-options.config.js +5 -3
- package/funnel-chart/funnel-chart-options.config.js.map +1 -1
- package/heat-map/heat-map-options.config.cjs +1 -1
- package/heat-map/heat-map-options.config.cjs.map +1 -1
- package/heat-map/heat-map-options.config.js +32 -30
- package/heat-map/heat-map-options.config.js.map +1 -1
- package/heat-table/heat-table-options.config.cjs +1 -1
- package/heat-table/heat-table-options.config.cjs.map +1 -1
- package/heat-table/heat-table-options.config.js +28 -26
- package/heat-table/heat-table-options.config.js.map +1 -1
- package/hexbin-map/hexbin-map-options.config.cjs +1 -1
- package/hexbin-map/hexbin-map-options.config.cjs.map +1 -1
- package/hexbin-map/hexbin-map-options.config.js +20 -18
- package/hexbin-map/hexbin-map-options.config.js.map +1 -1
- package/index.cjs +1 -1
- package/index.js +192 -191
- package/line-chart/line-chart-options.config.cjs +1 -1
- package/line-chart/line-chart-options.config.cjs.map +1 -1
- package/line-chart/line-chart-options.config.js +7 -5
- package/line-chart/line-chart-options.config.js.map +1 -1
- package/marker-map/marker-map-options.config.cjs +1 -1
- package/marker-map/marker-map-options.config.cjs.map +1 -1
- package/marker-map/marker-map-options.config.js +97 -92
- package/marker-map/marker-map-options.config.js.map +1 -1
- package/ohlc-chart/ohlc-chart-options.config.cjs +1 -1
- package/ohlc-chart/ohlc-chart-options.config.cjs.map +1 -1
- package/ohlc-chart/ohlc-chart-options.config.js +5 -3
- package/ohlc-chart/ohlc-chart-options.config.js.map +1 -1
- package/package.json +1 -1
- package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs +1 -1
- package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.cjs.map +1 -1
- package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js +4 -3
- package/parallel-coordinates-plot/parallel-coordinates-plot-options.config.js.map +1 -1
- package/pivot-table/pivot-table-options.config.cjs +1 -1
- package/pivot-table/pivot-table-options.config.cjs.map +1 -1
- package/pivot-table/pivot-table-options.config.js +5 -3
- package/pivot-table/pivot-table-options.config.js.map +1 -1
- package/pyramid-chart/pyramid-chart-options.config.cjs +1 -1
- package/pyramid-chart/pyramid-chart-options.config.cjs.map +1 -1
- package/pyramid-chart/pyramid-chart-options.config.js +5 -3
- package/pyramid-chart/pyramid-chart-options.config.js.map +1 -1
- package/radar-chart/radar-chart-options.config.cjs +1 -1
- package/radar-chart/radar-chart-options.config.cjs.map +1 -1
- package/radar-chart/radar-chart-options.config.js +7 -5
- package/radar-chart/radar-chart-options.config.js.map +1 -1
- package/regular-table/regular-table-options.config.cjs +1 -1
- package/regular-table/regular-table-options.config.cjs.map +1 -1
- package/regular-table/regular-table-options.config.js +126 -121
- package/regular-table/regular-table-options.config.js.map +1 -1
- package/route-map/route-map-options.config.cjs +1 -1
- package/route-map/route-map-options.config.cjs.map +1 -1
- package/route-map/route-map-options.config.js +38 -36
- package/route-map/route-map-options.config.js.map +1 -1
- package/sankey-diagram/sankey-diagram-options.config.cjs +1 -1
- package/sankey-diagram/sankey-diagram-options.config.cjs.map +1 -1
- package/sankey-diagram/sankey-diagram-options.config.js +5 -3
- package/sankey-diagram/sankey-diagram-options.config.js.map +1 -1
- package/scatter-plot/scatter-plot-options.config.cjs +1 -1
- package/scatter-plot/scatter-plot-options.config.cjs.map +1 -1
- package/scatter-plot/scatter-plot-options.config.js +7 -5
- package/scatter-plot/scatter-plot-options.config.js.map +1 -1
- package/shared/utils/info-tooltip-options.config.cjs +2 -0
- package/shared/utils/info-tooltip-options.config.cjs.map +1 -0
- package/shared/utils/info-tooltip-options.config.js +42 -0
- package/shared/utils/info-tooltip-options.config.js.map +1 -0
- package/shared/utils/info-tooltip-options.i18n.cjs +2 -0
- package/shared/utils/info-tooltip-options.i18n.cjs.map +1 -0
- package/shared/utils/info-tooltip-options.i18n.js +57 -0
- package/shared/utils/info-tooltip-options.i18n.js.map +1 -0
- package/shared/utils/options-loader.cjs +1 -1
- package/shared/utils/options-loader.cjs.map +1 -1
- package/shared/utils/options-loader.js +5 -3
- package/shared/utils/options-loader.js.map +1 -1
- package/speedometer-chart/speedometer-chart-options.config.cjs +1 -1
- package/speedometer-chart/speedometer-chart-options.config.cjs.map +1 -1
- package/speedometer-chart/speedometer-chart-options.config.js +201 -196
- package/speedometer-chart/speedometer-chart-options.config.js.map +1 -1
- package/spike-map/spike-map-options.config.cjs +1 -1
- package/spike-map/spike-map-options.config.cjs.map +1 -1
- package/spike-map/spike-map-options.config.js +41 -39
- package/spike-map/spike-map-options.config.js.map +1 -1
- package/src/lib/area-chart/area-chart-options.config.d.ts.map +1 -1
- package/src/lib/bar-chart/bar-chart-options.config.d.ts.map +1 -1
- package/src/lib/box-plot/box-plot-options.config.d.ts.map +1 -1
- package/src/lib/bubble-chart/bubble-chart-options.config.d.ts.map +1 -1
- package/src/lib/bullet-chart/bullet-chart-options.config.d.ts.map +1 -1
- package/src/lib/choropleth-map/choropleth-map-options.config.d.ts.map +1 -1
- package/src/lib/circle-pack-chart/circle-pack-chart-options.config.d.ts.map +1 -1
- package/src/lib/circular-gauge/circular-gauge-options.config.d.ts.map +1 -1
- package/src/lib/column-chart/column-chart-options.config.d.ts.map +1 -1
- package/src/lib/combination-chart/combination-chart-options.config.d.ts.map +1 -1
- package/src/lib/conditional-number/conditional-number-options.config.d.ts.map +1 -1
- package/src/lib/donut-chart/donut-chart-options.config.d.ts.map +1 -1
- package/src/lib/evolution-number/evolution-number-options.config.d.ts.map +1 -1
- package/src/lib/funnel-chart/funnel-chart-options.config.d.ts.map +1 -1
- package/src/lib/heat-map/heat-map-options.config.d.ts.map +1 -1
- package/src/lib/heat-table/heat-table-options.config.d.ts.map +1 -1
- package/src/lib/hexbin-map/hexbin-map-options.config.d.ts.map +1 -1
- package/src/lib/line-chart/line-chart-options.config.d.ts.map +1 -1
- package/src/lib/marker-map/marker-map-options.config.d.ts.map +1 -1
- package/src/lib/ohlc-chart/ohlc-chart-options.config.d.ts.map +1 -1
- package/src/lib/parallel-coordinates-plot/parallel-coordinates-plot-options.config.d.ts.map +1 -1
- package/src/lib/pivot-table/pivot-table-options.config.d.ts.map +1 -1
- package/src/lib/pyramid-chart/pyramid-chart-options.config.d.ts.map +1 -1
- package/src/lib/radar-chart/radar-chart-options.config.d.ts.map +1 -1
- package/src/lib/regular-table/regular-table-options.config.d.ts.map +1 -1
- package/src/lib/route-map/route-map-options.config.d.ts.map +1 -1
- package/src/lib/sankey-diagram/sankey-diagram-options.config.d.ts.map +1 -1
- package/src/lib/scatter-plot/scatter-plot-options.config.d.ts.map +1 -1
- package/src/lib/shared/schemas/dashboard-state.schema.d.ts +2 -2
- package/src/lib/shared/schemas/screen-mode.schema.d.ts +1 -1
- package/src/lib/shared/utils/index.d.ts +1 -0
- package/src/lib/shared/utils/index.d.ts.map +1 -1
- package/src/lib/shared/utils/info-tooltip-options.config.d.ts +6 -0
- package/src/lib/shared/utils/info-tooltip-options.config.d.ts.map +1 -0
- package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts +3 -0
- package/src/lib/shared/utils/info-tooltip-options.i18n.d.ts.map +1 -0
- package/src/lib/shared/utils/options-loader.d.ts.map +1 -1
- package/src/lib/speedometer-chart/speedometer-chart-options.config.d.ts.map +1 -1
- package/src/lib/spike-map/spike-map-options.config.d.ts.map +1 -1
- package/src/lib/strip-plot/strip-plot-options.config.d.ts.map +1 -1
- package/src/lib/sunburst-chart/sunburst-chart-options.config.d.ts.map +1 -1
- package/src/lib/symbol-map/symbol-map-options.config.d.ts.map +1 -1
- package/src/lib/treemap-chart/treemap-chart-options.config.d.ts.map +1 -1
- package/src/lib/wordcloud-chart/wordcloud-chart-options.config.d.ts.map +1 -1
- package/strip-plot/strip-plot-options.config.cjs +1 -1
- package/strip-plot/strip-plot-options.config.cjs.map +1 -1
- package/strip-plot/strip-plot-options.config.js +4 -3
- package/strip-plot/strip-plot-options.config.js.map +1 -1
- package/sunburst-chart/sunburst-chart-options.config.cjs +1 -1
- package/sunburst-chart/sunburst-chart-options.config.cjs.map +1 -1
- package/sunburst-chart/sunburst-chart-options.config.js +5 -3
- package/sunburst-chart/sunburst-chart-options.config.js.map +1 -1
- package/symbol-map/symbol-map-options.config.cjs +1 -1
- package/symbol-map/symbol-map-options.config.cjs.map +1 -1
- package/symbol-map/symbol-map-options.config.js +7 -5
- package/symbol-map/symbol-map-options.config.js.map +1 -1
- package/treemap-chart/treemap-chart-options.config.cjs +1 -1
- package/treemap-chart/treemap-chart-options.config.cjs.map +1 -1
- package/treemap-chart/treemap-chart-options.config.js +180 -175
- package/treemap-chart/treemap-chart-options.config.js.map +1 -1
- package/wordcloud-chart/wordcloud-chart-options.config.cjs +1 -1
- package/wordcloud-chart/wordcloud-chart-options.config.cjs.map +1 -1
- package/wordcloud-chart/wordcloud-chart-options.config.js +67 -62
- package/wordcloud-chart/wordcloud-chart-options.config.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
All notable changes to this project will be documented in this file.
|
|
2
2
|
|
|
3
|
+
## [1.0.42] - 2026-09-28
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Exposed multilingual information-tooltip content and left/right positioning controls across the supported chart option configurations, with shared translations and safe option cleanup.
|
|
8
|
+
|
|
3
9
|
## [1.0.41] - 2026-09-24
|
|
4
10
|
|
|
5
11
|
### Added
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/guidelines-options.config.cjs");var
|
|
1
|
+
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/guidelines-options.config.cjs"),r=require("../shared/utils/info-tooltip-options.config.cjs");var i=({slots:e})=>Array.isArray(e)&&e?.length>0?(e?.find(e=>e?.name===`legend`)?.content?.length??0)>0||(e?.find(e=>e?.name===`measure`)?.content?.length??0)>1:!1,a=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{label:`Title`,type:`switch`,default:!0}},{type:`divider`},{key:`mode`,control:{label:`Mode`,type:`picker`,default:`stacked`,enum:[`100`,`unstacked`,`stacked`,`stream`]},visibleIf:i},{key:`interpolation`,control:{label:`Interpolation`,type:`picker`,default:`linear`,enum:[`linear`,`step-before`,`step-after`,`monotone`]}},{key:`display.legend`,control:{label:`Legend`,type:`switch`,default:!0},visibleIf:i},{key:`display.modeOption`,control:{label:`Mode option`,type:`switch`,default:!0},visibleIf:i},{key:`missingValue.type`,control:{label:`Fill missing values`,type:`picker`,default:`no`,enum:[`no`,`break`,`manual`]},visibleIf:({slots:e})=>Array.isArray(e)&&e?.find(e=>e?.name===`x-axis`)?.content?.[0]?.type===`datetime`},{key:`missingValue.value`,control:{label:`Value`,type:`number-field`,default:0,min:1},visibleIf:({options:e,slots:t})=>Array.isArray(t)&&t?.find(e=>e?.name===`x-axis`)?.content?.[0]?.type===`datetime`&&e?.missingValue?.type===`manual`},{key:`color`,control:{label:`Area color`,type:`color-picker`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`color`)},visibleIf:({slots:e})=>Array.isArray(e)&&e?.length>0?!((e?.find(e=>e?.name===`legend`)?.content?.length??0)>0)&&(e?.find(e=>e?.name===`measure`)?.content?.length??0)<=1:!0}]},t.createAxesOptionsGroup([{axis:`x`,role:`category`,color:!0,label:!0,tickMode:!0,gridlines:!0,datetimeTickStyle:!0},{axis:`y`,role:`measure`,scale:!0,manualRange:{key:`axis.y.manualAxesRange`,discriminatorKey:`axis.y.type`},color:!0,label:!0,tickDensity:!0,tickMode:!0,gridlines:!0}]),{key:`legend`,type:`group`,open:!1,children:[{key:`legend.position`,control:{label:`Position`,type:`position-picker`,default:`topRight`,enum:[`topLeft`,`top`,`topRight`,`right`,`bottomRight`,`bottom`,`bottomLeft`,`left`]}},{key:`legend.customOrder`,control:{label:`Custom order`,description:`Drag items in the chart legend to set the order.`,type:`switch`,default:!1}},{key:`interactivity.legendReorder`,control:{label:`Allow viewers to reorder`,type:`switch`,default:!1},visibleIf:({options:e})=>e?.legend?.customOrder===!0}],visibleIf:i},n.createGuidelinesOptionsGroup(n.cartesianGuidelineLineTypes),r.createInfoTooltipOptionsGroup()];exports.default=a;
|
|
2
2
|
//# sourceMappingURL=area-chart-options.config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"area-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/area-chart/area-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { AreaChartViewOptions } from './area-chart-options';\n\ntype AreaChartConfigContext = OptionsConfigContext<AreaChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n !((slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0)\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst hasDatetimeAxis = ({ slots }: AreaChartConfigContext) =>\n Array.isArray(slots) && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime';\n\nconst hasDatetimeAxisAndManualBreak = ({ options, slots }: AreaChartConfigContext) =>\n Array.isArray(slots)\n && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime'\n && options?.missingValue?.type === 'manual';\n\nconst areaChartOptionsConfig: OptionsConfig<AreaChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n label: 'Title',\n type: 'switch',\n default: true\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'mode',\n control: {\n label: 'Mode',\n type: 'picker',\n default: 'stacked',\n enum: ['100', 'unstacked', 'stacked', 'stream']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'interpolation',\n control: {\n label: 'Interpolation',\n type: 'picker',\n default: 'linear',\n enum: ['linear', 'step-before', 'step-after', 'monotone']\n }\n },\n {\n key: 'display.legend',\n control: {\n label: 'Legend',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n label: 'Mode option',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'missingValue.type',\n control: {\n label: 'Fill missing values',\n type: 'picker',\n default: 'no',\n enum: ['no', 'break', 'manual']\n },\n visibleIf: hasDatetimeAxis\n },\n {\n key: 'missingValue.value',\n control: {\n label: 'Value',\n type: 'number-field',\n default: 0,\n min: 1\n },\n visibleIf: hasDatetimeAxisAndManualBreak\n },\n {\n key: 'color',\n control: {\n label: 'Area color',\n type: 'color-picker',\n default: ({ theme }: AreaChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n }\n ]\n },\n createAxesOptionsGroup<AreaChartConfigContext>([\n { axis: 'x', role: 'category', color: true, label: true, tickMode: true, gridlines: true, datetimeTickStyle: true },\n { axis: 'y', role: 'measure', scale: true, manualRange: { key: 'axis.y.manualAxesRange', discriminatorKey: 'axis.y.type' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: AreaChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes)\n];\n\nexport default areaChartOptionsConfig;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"area-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/area-chart/area-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { AreaChartViewOptions } from './area-chart-options';\n\ntype AreaChartConfigContext = OptionsConfigContext<AreaChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n !((slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0)\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst hasDatetimeAxis = ({ slots }: AreaChartConfigContext) =>\n Array.isArray(slots) && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime';\n\nconst hasDatetimeAxisAndManualBreak = ({ options, slots }: AreaChartConfigContext) =>\n Array.isArray(slots)\n && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime'\n && options?.missingValue?.type === 'manual';\n\nconst areaChartOptionsConfig: OptionsConfig<AreaChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n label: 'Title',\n type: 'switch',\n default: true\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'mode',\n control: {\n label: 'Mode',\n type: 'picker',\n default: 'stacked',\n enum: ['100', 'unstacked', 'stacked', 'stream']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'interpolation',\n control: {\n label: 'Interpolation',\n type: 'picker',\n default: 'linear',\n enum: ['linear', 'step-before', 'step-after', 'monotone']\n }\n },\n {\n key: 'display.legend',\n control: {\n label: 'Legend',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n label: 'Mode option',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'missingValue.type',\n control: {\n label: 'Fill missing values',\n type: 'picker',\n default: 'no',\n enum: ['no', 'break', 'manual']\n },\n visibleIf: hasDatetimeAxis\n },\n {\n key: 'missingValue.value',\n control: {\n label: 'Value',\n type: 'number-field',\n default: 0,\n min: 1\n },\n visibleIf: hasDatetimeAxisAndManualBreak\n },\n {\n key: 'color',\n control: {\n label: 'Area color',\n type: 'color-picker',\n default: ({ theme }: AreaChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n }\n ]\n },\n createAxesOptionsGroup<AreaChartConfigContext>([\n { axis: 'x', role: 'category', color: true, label: true, tickMode: true, gridlines: true, datetimeTickStyle: true },\n { axis: 'y', role: 'measure', scale: true, manualRange: { key: 'axis.y.manualAxesRange', discriminatorKey: 'axis.y.type' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: AreaChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes),\n createInfoTooltipOptionsGroup<AreaChartConfigContext>()\n];\n\nexport default areaChartOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { getThemeMainColor as e, getThemeMainColorExtraLabelClickAction as t, getThemeMainColorExtraLabelHasClickAction as n, getThemeMainColorResetLabel as r } from "../helpers.js";
|
|
2
2
|
import { createAxesOptionsGroup as i } from "../shared/utils/axis-options.config.js";
|
|
3
3
|
import { cartesianGuidelineLineTypes as a, createGuidelinesOptionsGroup as o } from "../shared/utils/guidelines-options.config.js";
|
|
4
|
+
import { createInfoTooltipOptionsGroup as s } from "../shared/utils/info-tooltip-options.config.js";
|
|
4
5
|
//#region src/lib/area-chart/area-chart-options.config.ts
|
|
5
|
-
var
|
|
6
|
+
var c = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?.name === "legend")?.content?.length ?? 0) > 0 || (e?.find((e) => e?.name === "measure")?.content?.length ?? 0) > 1 : !1, l = [
|
|
6
7
|
{
|
|
7
8
|
key: "general",
|
|
8
9
|
type: "group",
|
|
@@ -30,7 +31,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
30
31
|
"stream"
|
|
31
32
|
]
|
|
32
33
|
},
|
|
33
|
-
visibleIf:
|
|
34
|
+
visibleIf: c
|
|
34
35
|
},
|
|
35
36
|
{
|
|
36
37
|
key: "interpolation",
|
|
@@ -53,7 +54,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
53
54
|
type: "switch",
|
|
54
55
|
default: !0
|
|
55
56
|
},
|
|
56
|
-
visibleIf:
|
|
57
|
+
visibleIf: c
|
|
57
58
|
},
|
|
58
59
|
{
|
|
59
60
|
key: "display.modeOption",
|
|
@@ -62,7 +63,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
62
63
|
type: "switch",
|
|
63
64
|
default: !0
|
|
64
65
|
},
|
|
65
|
-
visibleIf:
|
|
66
|
+
visibleIf: c
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
69
|
key: "missingValue.type",
|
|
@@ -166,11 +167,12 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
166
167
|
visibleIf: ({ options: e }) => e?.legend?.customOrder === !0
|
|
167
168
|
}
|
|
168
169
|
],
|
|
169
|
-
visibleIf:
|
|
170
|
+
visibleIf: c
|
|
170
171
|
},
|
|
171
|
-
o(a)
|
|
172
|
+
o(a),
|
|
173
|
+
s()
|
|
172
174
|
];
|
|
173
175
|
//#endregion
|
|
174
|
-
export {
|
|
176
|
+
export { l as default };
|
|
175
177
|
|
|
176
178
|
//# sourceMappingURL=area-chart-options.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"area-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/area-chart/area-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { AreaChartViewOptions } from './area-chart-options';\n\ntype AreaChartConfigContext = OptionsConfigContext<AreaChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n !((slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0)\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst hasDatetimeAxis = ({ slots }: AreaChartConfigContext) =>\n Array.isArray(slots) && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime';\n\nconst hasDatetimeAxisAndManualBreak = ({ options, slots }: AreaChartConfigContext) =>\n Array.isArray(slots)\n && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime'\n && options?.missingValue?.type === 'manual';\n\nconst areaChartOptionsConfig: OptionsConfig<AreaChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n label: 'Title',\n type: 'switch',\n default: true\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'mode',\n control: {\n label: 'Mode',\n type: 'picker',\n default: 'stacked',\n enum: ['100', 'unstacked', 'stacked', 'stream']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'interpolation',\n control: {\n label: 'Interpolation',\n type: 'picker',\n default: 'linear',\n enum: ['linear', 'step-before', 'step-after', 'monotone']\n }\n },\n {\n key: 'display.legend',\n control: {\n label: 'Legend',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n label: 'Mode option',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'missingValue.type',\n control: {\n label: 'Fill missing values',\n type: 'picker',\n default: 'no',\n enum: ['no', 'break', 'manual']\n },\n visibleIf: hasDatetimeAxis\n },\n {\n key: 'missingValue.value',\n control: {\n label: 'Value',\n type: 'number-field',\n default: 0,\n min: 1\n },\n visibleIf: hasDatetimeAxisAndManualBreak\n },\n {\n key: 'color',\n control: {\n label: 'Area color',\n type: 'color-picker',\n default: ({ theme }: AreaChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n }\n ]\n },\n createAxesOptionsGroup<AreaChartConfigContext>([\n { axis: 'x', role: 'category', color: true, label: true, tickMode: true, gridlines: true, datetimeTickStyle: true },\n { axis: 'y', role: 'measure', scale: true, manualRange: { key: 'axis.y.manualAxesRange', discriminatorKey: 'axis.y.type' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: AreaChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes)\n];\n\nexport default areaChartOptionsConfig;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"area-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/area-chart/area-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { AreaChartViewOptions } from './area-chart-options';\n\ntype AreaChartConfigContext = OptionsConfigContext<AreaChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: AreaChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n !((slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0)\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst hasDatetimeAxis = ({ slots }: AreaChartConfigContext) =>\n Array.isArray(slots) && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime';\n\nconst hasDatetimeAxisAndManualBreak = ({ options, slots }: AreaChartConfigContext) =>\n Array.isArray(slots)\n && slots?.find((s) => s?.name === 'x-axis')?.content?.[0]?.type === 'datetime'\n && options?.missingValue?.type === 'manual';\n\nconst areaChartOptionsConfig: OptionsConfig<AreaChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n label: 'Title',\n type: 'switch',\n default: true\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'mode',\n control: {\n label: 'Mode',\n type: 'picker',\n default: 'stacked',\n enum: ['100', 'unstacked', 'stacked', 'stream']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'interpolation',\n control: {\n label: 'Interpolation',\n type: 'picker',\n default: 'linear',\n enum: ['linear', 'step-before', 'step-after', 'monotone']\n }\n },\n {\n key: 'display.legend',\n control: {\n label: 'Legend',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n label: 'Mode option',\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'missingValue.type',\n control: {\n label: 'Fill missing values',\n type: 'picker',\n default: 'no',\n enum: ['no', 'break', 'manual']\n },\n visibleIf: hasDatetimeAxis\n },\n {\n key: 'missingValue.value',\n control: {\n label: 'Value',\n type: 'number-field',\n default: 0,\n min: 1\n },\n visibleIf: hasDatetimeAxisAndManualBreak\n },\n {\n key: 'color',\n control: {\n label: 'Area color',\n type: 'color-picker',\n default: ({ theme }: AreaChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: AreaChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n }\n ]\n },\n createAxesOptionsGroup<AreaChartConfigContext>([\n { axis: 'x', role: 'category', color: true, label: true, tickMode: true, gridlines: true, datetimeTickStyle: true },\n { axis: 'y', role: 'measure', scale: true, manualRange: { key: 'axis.y.manualAxesRange', discriminatorKey: 'axis.y.type' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: AreaChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes),\n createInfoTooltipOptionsGroup<AreaChartConfigContext>()\n];\n\nexport default areaChartOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/guidelines-options.config.cjs");var
|
|
1
|
+
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/guidelines-options.config.cjs"),r=require("../shared/utils/info-tooltip-options.config.cjs");var i=({slots:e})=>Array.isArray(e)&&e?.length>0?(e?.find(e=>e?.name===`legend`)?.content?.length??0)>0||(e?.find(e=>e?.name===`measure`)?.content?.length??0)>1:!1,a=({slots:e})=>Array.isArray(e)&&e?.length>0?(e?.find(e=>e?.name===`legend`)?.content?.length??0)===0&&(e?.find(e=>e?.name===`measure`)?.content?.length??0)<=1:!0,o=[{key:`general`,type:`group`,open:!0,children:[{key:`mode`,control:{type:`picker`,default:`grouped`,enum:[`grouped`,`stacked`,`100`]},visibleIf:i},{type:`divider`,visibleIf:i},{key:`display.title`,control:{type:`switch`,default:!0}},{key:`display.legend`,control:{type:`switch`,default:!0},visibleIf:i},{key:`display.modeOption`,control:{type:`switch`,default:!1},visibleIf:i},{key:`bars.label`,control:{type:`picker`,default:`none`,enum:[`none`,`absolute`,`percentage`,`percentageLegend`,`percentageCategory`,`percentageMax`]}},{key:`categories.colored`,control:{type:`switch`,default:!1},visibleIf:a},{key:`bars.roundedCorners`,control:{type:`slider`,default:({theme:e})=>e?.itemSpecific?.rounding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`?typeof e?.bars?.roundedCorners==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`&&typeof e?.bars?.roundedCorners==`number`,extraLabelClickAction:({options:e})=>{let t={...e};return delete t?.bars?.roundedCorners,{value:null,options:t}}}},{key:`color`,control:{type:`color-picker`,label:`Bar color`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`color`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`color`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`color`)},visibleIf:e=>a(e)&&e.options?.categories?.colored!==!0}]},{key:`order`,type:`group`,label:`Order & Limit`,open:!0,children:[{key:`ranking.active`,control:{type:`switch`,label:`Limit to`,default:!1}},{key:`ranking.direction`,control:{type:`picker`,label:`Direction`,default:`top`,enum:[`top`,`bottom`]},visibleIf:({options:e})=>e?.ranking?.active===!0},{key:`ranking.number`,control:{type:`number-field`,label:`Number`,default:10,min:1,max:999999},visibleIf:({options:e})=>e?.ranking?.active===!0},{key:`sort.by`,control:{type:`picker`,label:`Order by`,default:`measure`,enum:[`measure`,`category`]}},{key:`sort.direction`,control:{type:`picker`,label:`Direction`,default:`desc`,enum:[`asc`,`desc`]}},{key:`limit.number`,control:{type:`number-field`,label:`Limit`,default:1e5,min:1,max:1e5}}]},t.createAxesOptionsGroup([{axis:`x`,role:`measure`,scale:!0,manualRange:{key:`manualAxesRange`},color:!0,label:!0,tickDensity:!0,tickMode:!0,gridlines:!0},{axis:`y`,role:`category`,color:!0,label:!0,tickMode:!0,gridlines:!0}]),{key:`legend`,type:`group`,open:!1,children:[{key:`legend.position`,control:{label:`Position`,type:`position-picker`,default:`topRight`,enum:[`topLeft`,`top`,`topRight`,`right`,`bottomRight`,`bottom`,`bottomLeft`,`left`]}},{key:`legend.customOrder`,control:{label:`Custom order`,description:`Drag items in the chart legend to set the order.`,type:`switch`,default:!1}},{key:`interactivity.legendReorder`,control:{label:`Allow viewers to reorder`,type:`switch`,default:!1},visibleIf:({options:e})=>e?.legend?.customOrder===!0}],visibleIf:i},n.createGuidelinesOptionsGroup(n.cartesianGuidelineLineTypes),r.createInfoTooltipOptionsGroup()];exports.default=o;
|
|
2
2
|
//# sourceMappingURL=bar-chart-options.config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/bar-chart/bar-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { BarChartViewOptions } from './bar-chart-options';\n\ntype BarChartConfigContext = OptionsConfigContext<BarChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) === 0\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst barChartOptionsConfig: OptionsConfig<BarChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n default: 'grouped',\n enum: ['grouped', 'stacked', '100']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n type: 'divider',\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.title',\n control: {\n type: 'switch',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'bars.label',\n control: {\n type: 'picker',\n default: 'none',\n enum: ['none', 'absolute', 'percentage', 'percentageLegend', 'percentageCategory', 'percentageMax']\n }\n },\n {\n key: 'categories.colored',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n },\n {\n key: 'bars.roundedCorners',\n control: {\n type: 'slider',\n default: ({ theme }: BarChartConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: BarChartConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.bars?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) => {\n if (\n typeof theme?.itemSpecific?.rounding !== 'number'\n || typeof options?.bars?.roundedCorners !== 'number'\n ) {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BarChartConfigContext) => {\n const newOptions = { ...options };\n\n delete newOptions?.bars?.roundedCorners;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Bar color',\n default: ({ theme }: BarChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: (context: BarChartConfigContext) =>\n hasNoLegendAndNoMultipleMeasure(context) && context.options?.categories?.colored !== true\n }\n ]\n },\n {\n key: 'order',\n type: 'group',\n label: 'Order & Limit',\n open: true,\n children: [\n {\n key: 'ranking.active',\n control: {\n type: 'switch',\n label: 'Limit to',\n default: false\n }\n },\n {\n key: 'ranking.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'top',\n enum: ['top', 'bottom']\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'ranking.number',\n control: {\n type: 'number-field',\n label: 'Number',\n default: 10,\n min: 1,\n max: 999999\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order by',\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 createAxesOptionsGroup<BarChartConfigContext>([\n { axis: 'x', role: 'measure', scale: true, manualRange: { key: 'manualAxesRange' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'category', color: true, label: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes)\n];\n\nexport default barChartOptionsConfig;\n"],"mappings":"kJAgBA,IAAM,GAA8B,CAAE,WAChC,MAAM,QAAQ,CAAK,GAAK,GAAO,OAAS,GAEvC,GAAO,KAAM,GAAM,GAAG,OAAS,QAAQ,CAAC,EAAE,SAAS,QAAU,GAAK,IAC/D,GAAO,KAAM,GAAM,GAAG,OAAS,SAAS,CAAC,EAAE,SAAS,QAAU,GAAK,EAIpE,GAGH,GAAmC,CAAE,WACrC,MAAM,QAAQ,CAAK,GAAK,GAAO,OAAS,GAEvC,GAAO,KAAM,GAAM,GAAG,OAAS,QAAQ,CAAC,EAAE,SAAS,QAAU,KAAO,IACjE,GAAO,KAAM,GAAM,GAAG,OAAS,SAAS,CAAC,EAAE,SAAS,QAAU,IAAM,EAIrE,GAGH,EAA8D,CAClE,CACE,IAAK,UACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,OACL,QAAS,CACP,KAAM,SACN,QAAS,UACT,KAAM,CAAC,UAAW,UAAW,KAAK,CACpC,EACA,UAAW,CACb,EACA,CACE,KAAM,UACN,UAAW,CACb,EACA,CACE,IAAK,gBACL,QAAS,CACP,KAAM,SACN,QAAS,EACX,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,QAAS,EACX,EACA,UAAW,CACb,EACA,CACE,IAAK,qBACL,QAAS,CACP,KAAM,SACN,QAAS,EACX,EACA,UAAW,CACb,EACA,CACE,IAAK,aACL,QAAS,CACP,KAAM,SACN,QAAS,OACT,KAAM,CAAC,OAAQ,WAAY,aAAc,mBAAoB,qBAAsB,eAAe,CACpG,CACF,EACA,CACE,IAAK,qBACL,QAAS,CACP,KAAM,SACN,QAAS,EACX,EACA,UAAW,CACb,EACA,CACE,IAAK,sBACL,QAAS,CACP,KAAM,SACN,SAAU,CAAE,WAAmC,GAAO,cAAc,SACpE,IAAK,EACL,IAAK,GACL,KAAM,EACN,YAAa,CAAE,UAAS,WAClB,OAAO,GAAO,cAAc,UAAa,SAIzC,OAAO,GAAS,MAAM,gBAAmB,SAItC,QAHE,OAJA,KASX,0BAA2B,CAAE,UAAS,WAElC,OAAO,GAAO,cAAc,UAAa,UACtC,OAAO,GAAS,MAAM,gBAAmB,SAOhD,uBAAwB,CAAE,aAAqC,CAC7D,IAAM,EAAa,CAAE,GAAG,CAAQ,EAIhC,OAFA,OAAO,GAAY,MAAM,eAElB,CAAE,MAAO,KAAM,QAAS,CAAW,CAC5C,CACF,CACF,EACA,CACE,IAAK,QACL,QAAS,CACP,KAAM,eACN,MAAO,YACP,SAAU,CAAE,WAAmC,EAAA,kBAAkB,CAAK,EACtE,YAAa,CAAE,UAAS,WACtB,EAAA,4BAA4B,EAAS,EAAO,OAAO,EACrD,0BAA2B,CAAE,UAAS,WACpC,EAAA,0CAA0C,EAAS,EAAO,OAAO,EACnE,uBAAwB,CAAE,UAAS,WACjC,EAAA,uCAAuC,EAAS,EAAO,OAAO,CAClE,EACA,UAAY,GACV,EAAgC,CAAO,GAAK,EAAQ,SAAS,YAAY,UAAY,EACzF,CACF,CACF,EACA,CACE,IAAK,QACL,KAAM,QACN,MAAO,gBACP,KAAM,GACN,SAAU,CACR,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,WACP,QAAS,EACX,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,YACP,QAAS,MACT,KAAM,CAAC,MAAO,QAAQ,CACxB,EACA,WAAY,CAAE,aAAqC,GAAS,SAAS,SAAW,EAClF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,eACN,MAAO,SACP,QAAS,GACT,IAAK,EACL,IAAK,MACP,EACA,WAAY,CAAE,aAAqC,GAAS,SAAS,SAAW,EAClF,EACA,CACE,IAAK,UACL,QAAS,CACP,KAAM,SACN,MAAO,WACP,QAAS,UACT,KAAM,CAAC,UAAW,UAAU,CAC9B,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,YACP,QAAS,OACT,KAAM,CAAC,MAAO,MAAM,CACtB,CACF,EACA,CACE,IAAK,eACL,QAAS,CACP,KAAM,eACN,MAAO,QACP,QAAS,IACT,IAAK,EACL,IAAK,GACP,CACF,CACF,CACF,EACA,EAAA,uBAA8C,CAC5C,CAAE,KAAM,IAAK,KAAM,UAAW,MAAO,GAAM,YAAa,CAAE,IAAK,iBAAkB,EAAG,MAAO,GAAM,MAAO,GAAM,YAAa,GAAM,SAAU,GAAM,UAAW,EAAK,EACjK,CAAE,KAAM,IAAK,KAAM,WAAY,MAAO,GAAM,MAAO,GAAM,SAAU,GAAM,UAAW,EAAK,CAC3F,CAAC,EACD,CACE,IAAK,SACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,kBACL,QAAS,CACP,MAAO,WACP,KAAM,kBACN,QAAS,WACT,KAAM,CAAC,UAAW,MAAO,WAAY,QAAS,cAAe,SAAU,aAAc,MAAM,CAC7F,CACF,EACA,CACE,IAAK,qBACL,QAAS,CACP,MAAO,eACP,YAAa,mDACb,KAAM,SACN,QAAS,EACX,CACF,EACA,CACE,IAAK,8BACL,QAAS,CACP,MAAO,2BACP,KAAM,SACN,QAAS,EACX,EACA,WAAY,CAAE,aAAqC,GAAS,QAAQ,cAAgB,EACtF,CACF,EACA,UAAW,CACb,EACA,EAAA,6BAA6B,EAAA,2BAA2B,CAC1D"}
|
|
1
|
+
{"version":3,"file":"bar-chart-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/bar-chart/bar-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { BarChartViewOptions } from './bar-chart-options';\n\ntype BarChartConfigContext = OptionsConfigContext<BarChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) === 0\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst barChartOptionsConfig: OptionsConfig<BarChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n default: 'grouped',\n enum: ['grouped', 'stacked', '100']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n type: 'divider',\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.title',\n control: {\n type: 'switch',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'bars.label',\n control: {\n type: 'picker',\n default: 'none',\n enum: ['none', 'absolute', 'percentage', 'percentageLegend', 'percentageCategory', 'percentageMax']\n }\n },\n {\n key: 'categories.colored',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n },\n {\n key: 'bars.roundedCorners',\n control: {\n type: 'slider',\n default: ({ theme }: BarChartConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: BarChartConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.bars?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) => {\n if (\n typeof theme?.itemSpecific?.rounding !== 'number'\n || typeof options?.bars?.roundedCorners !== 'number'\n ) {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BarChartConfigContext) => {\n const newOptions = { ...options };\n\n delete newOptions?.bars?.roundedCorners;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Bar color',\n default: ({ theme }: BarChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: (context: BarChartConfigContext) =>\n hasNoLegendAndNoMultipleMeasure(context) && context.options?.categories?.colored !== true\n }\n ]\n },\n {\n key: 'order',\n type: 'group',\n label: 'Order & Limit',\n open: true,\n children: [\n {\n key: 'ranking.active',\n control: {\n type: 'switch',\n label: 'Limit to',\n default: false\n }\n },\n {\n key: 'ranking.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'top',\n enum: ['top', 'bottom']\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'ranking.number',\n control: {\n type: 'number-field',\n label: 'Number',\n default: 10,\n min: 1,\n max: 999999\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order by',\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 createAxesOptionsGroup<BarChartConfigContext>([\n { axis: 'x', role: 'measure', scale: true, manualRange: { key: 'manualAxesRange' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'category', color: true, label: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes),\n createInfoTooltipOptionsGroup<BarChartConfigContext>()\n];\n\nexport default barChartOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { getThemeMainColor as e, getThemeMainColorExtraLabelClickAction as t, getThemeMainColorExtraLabelHasClickAction as n, getThemeMainColorResetLabel as r } from "../helpers.js";
|
|
2
2
|
import { createAxesOptionsGroup as i } from "../shared/utils/axis-options.config.js";
|
|
3
3
|
import { cartesianGuidelineLineTypes as a, createGuidelinesOptionsGroup as o } from "../shared/utils/guidelines-options.config.js";
|
|
4
|
+
import { createInfoTooltipOptionsGroup as s } from "../shared/utils/info-tooltip-options.config.js";
|
|
4
5
|
//#region src/lib/bar-chart/bar-chart-options.config.ts
|
|
5
|
-
var
|
|
6
|
+
var c = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?.name === "legend")?.content?.length ?? 0) > 0 || (e?.find((e) => e?.name === "measure")?.content?.length ?? 0) > 1 : !1, l = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?.name === "legend")?.content?.length ?? 0) === 0 && (e?.find((e) => e?.name === "measure")?.content?.length ?? 0) <= 1 : !0, u = [
|
|
6
7
|
{
|
|
7
8
|
key: "general",
|
|
8
9
|
type: "group",
|
|
@@ -19,11 +20,11 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
19
20
|
"100"
|
|
20
21
|
]
|
|
21
22
|
},
|
|
22
|
-
visibleIf:
|
|
23
|
+
visibleIf: c
|
|
23
24
|
},
|
|
24
25
|
{
|
|
25
26
|
type: "divider",
|
|
26
|
-
visibleIf:
|
|
27
|
+
visibleIf: c
|
|
27
28
|
},
|
|
28
29
|
{
|
|
29
30
|
key: "display.title",
|
|
@@ -38,7 +39,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
38
39
|
type: "switch",
|
|
39
40
|
default: !0
|
|
40
41
|
},
|
|
41
|
-
visibleIf:
|
|
42
|
+
visibleIf: c
|
|
42
43
|
},
|
|
43
44
|
{
|
|
44
45
|
key: "display.modeOption",
|
|
@@ -46,7 +47,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
46
47
|
type: "switch",
|
|
47
48
|
default: !1
|
|
48
49
|
},
|
|
49
|
-
visibleIf:
|
|
50
|
+
visibleIf: c
|
|
50
51
|
},
|
|
51
52
|
{
|
|
52
53
|
key: "bars.label",
|
|
@@ -69,7 +70,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
69
70
|
type: "switch",
|
|
70
71
|
default: !1
|
|
71
72
|
},
|
|
72
|
-
visibleIf:
|
|
73
|
+
visibleIf: l
|
|
73
74
|
},
|
|
74
75
|
{
|
|
75
76
|
key: "bars.roundedCorners",
|
|
@@ -100,7 +101,7 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
100
101
|
extraLabelHasClickAction: ({ options: e, theme: t }) => n(e, t, "color"),
|
|
101
102
|
extraLabelClickAction: ({ options: e, theme: n }) => t(e, n, "color")
|
|
102
103
|
},
|
|
103
|
-
visibleIf: (e) =>
|
|
104
|
+
visibleIf: (e) => l(e) && e.options?.categories?.colored !== !0
|
|
104
105
|
}
|
|
105
106
|
]
|
|
106
107
|
},
|
|
@@ -229,11 +230,12 @@ var s = ({ slots: e }) => Array.isArray(e) && e?.length > 0 ? (e?.find((e) => e?
|
|
|
229
230
|
visibleIf: ({ options: e }) => e?.legend?.customOrder === !0
|
|
230
231
|
}
|
|
231
232
|
],
|
|
232
|
-
visibleIf:
|
|
233
|
+
visibleIf: c
|
|
233
234
|
},
|
|
234
|
-
o(a)
|
|
235
|
+
o(a),
|
|
236
|
+
s()
|
|
235
237
|
];
|
|
236
238
|
//#endregion
|
|
237
|
-
export {
|
|
239
|
+
export { u as default };
|
|
238
240
|
|
|
239
241
|
//# sourceMappingURL=bar-chart-options.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/bar-chart/bar-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { BarChartViewOptions } from './bar-chart-options';\n\ntype BarChartConfigContext = OptionsConfigContext<BarChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) === 0\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst barChartOptionsConfig: OptionsConfig<BarChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n default: 'grouped',\n enum: ['grouped', 'stacked', '100']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n type: 'divider',\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.title',\n control: {\n type: 'switch',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'bars.label',\n control: {\n type: 'picker',\n default: 'none',\n enum: ['none', 'absolute', 'percentage', 'percentageLegend', 'percentageCategory', 'percentageMax']\n }\n },\n {\n key: 'categories.colored',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n },\n {\n key: 'bars.roundedCorners',\n control: {\n type: 'slider',\n default: ({ theme }: BarChartConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: BarChartConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.bars?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) => {\n if (\n typeof theme?.itemSpecific?.rounding !== 'number'\n || typeof options?.bars?.roundedCorners !== 'number'\n ) {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BarChartConfigContext) => {\n const newOptions = { ...options };\n\n delete newOptions?.bars?.roundedCorners;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Bar color',\n default: ({ theme }: BarChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: (context: BarChartConfigContext) =>\n hasNoLegendAndNoMultipleMeasure(context) && context.options?.categories?.colored !== true\n }\n ]\n },\n {\n key: 'order',\n type: 'group',\n label: 'Order & Limit',\n open: true,\n children: [\n {\n key: 'ranking.active',\n control: {\n type: 'switch',\n label: 'Limit to',\n default: false\n }\n },\n {\n key: 'ranking.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'top',\n enum: ['top', 'bottom']\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'ranking.number',\n control: {\n type: 'number-field',\n label: 'Number',\n default: 10,\n min: 1,\n max: 999999\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order by',\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 createAxesOptionsGroup<BarChartConfigContext>([\n { axis: 'x', role: 'measure', scale: true, manualRange: { key: 'manualAxesRange' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'category', color: true, label: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes)\n];\n\nexport default barChartOptionsConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bar-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/bar-chart/bar-chart-options.config.ts"],"sourcesContent":["import {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport {\n cartesianGuidelineLineTypes,\n createGuidelinesOptionsGroup\n} from '../shared/utils/guidelines-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { BarChartViewOptions } from './bar-chart-options';\n\ntype BarChartConfigContext = OptionsConfigContext<BarChartViewOptions>;\n\nconst hasLegendOrMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) > 0\n || (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) > 1\n );\n }\n\n return false;\n};\n\nconst hasNoLegendAndNoMultipleMeasure = ({ slots }: BarChartConfigContext) => {\n if (Array.isArray(slots) && slots?.length > 0) {\n return (\n (slots?.find((s) => s?.name === 'legend')?.content?.length ?? 0) === 0\n && (slots?.find((s) => s?.name === 'measure')?.content?.length ?? 0) <= 1\n );\n }\n\n return true;\n};\n\nconst barChartOptionsConfig: OptionsConfig<BarChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n default: 'grouped',\n enum: ['grouped', 'stacked', '100']\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n type: 'divider',\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.title',\n control: {\n type: 'switch',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n default: true\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'display.modeOption',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasLegendOrMultipleMeasure\n },\n {\n key: 'bars.label',\n control: {\n type: 'picker',\n default: 'none',\n enum: ['none', 'absolute', 'percentage', 'percentageLegend', 'percentageCategory', 'percentageMax']\n }\n },\n {\n key: 'categories.colored',\n control: {\n type: 'switch',\n default: false\n },\n visibleIf: hasNoLegendAndNoMultipleMeasure\n },\n {\n key: 'bars.roundedCorners',\n control: {\n type: 'slider',\n default: ({ theme }: BarChartConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: BarChartConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.bars?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) => {\n if (\n typeof theme?.itemSpecific?.rounding !== 'number'\n || typeof options?.bars?.roundedCorners !== 'number'\n ) {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BarChartConfigContext) => {\n const newOptions = { ...options };\n\n delete newOptions?.bars?.roundedCorners;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'color',\n control: {\n type: 'color-picker',\n label: 'Bar color',\n default: ({ theme }: BarChartConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'color'),\n extraLabelHasClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'color'),\n extraLabelClickAction: ({ options, theme }: BarChartConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'color')\n },\n visibleIf: (context: BarChartConfigContext) =>\n hasNoLegendAndNoMultipleMeasure(context) && context.options?.categories?.colored !== true\n }\n ]\n },\n {\n key: 'order',\n type: 'group',\n label: 'Order & Limit',\n open: true,\n children: [\n {\n key: 'ranking.active',\n control: {\n type: 'switch',\n label: 'Limit to',\n default: false\n }\n },\n {\n key: 'ranking.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'top',\n enum: ['top', 'bottom']\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'ranking.number',\n control: {\n type: 'number-field',\n label: 'Number',\n default: 10,\n min: 1,\n max: 999999\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.ranking?.active === true\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order by',\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 createAxesOptionsGroup<BarChartConfigContext>([\n { axis: 'x', role: 'measure', scale: true, manualRange: { key: 'manualAxesRange' }, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'category', color: true, label: true, tickMode: true, gridlines: true }\n ]),\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'topRight',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: BarChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: hasLegendOrMultipleMeasure\n },\n createGuidelinesOptionsGroup(cartesianGuidelineLineTypes),\n createInfoTooltipOptionsGroup<BarChartConfigContext>()\n];\n\nexport default barChartOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/color/color-palettes.cjs");var
|
|
1
|
+
const e=require("../helpers.cjs"),t=require("../shared/utils/axis-options.config.cjs"),n=require("../shared/utils/info-tooltip-options.config.cjs"),r=require("../shared/utils/color/color-palettes.cjs");var i=({options:e})=>e?.observations?.display===!0,a=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`horizontal`,control:{type:`picker`,label:`Display`,default:`vertical`,enum:[`vertical`,`horizontal`],parseValue:e=>e?`horizontal`:`vertical`,toValue:e=>e===`horizontal`}},{key:`extentTicks`,control:{type:`switch`,label:`Extent ticks`,default:!0}}]},{key:`box`,type:`group`,open:!0,children:[{key:`boxWidth`,control:{type:`slider`,label:`Box width`,default:.9,min:.1,max:1,step:.1}},{key:`boxFill`,control:{type:`color-picker`,label:`Box fill`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`boxFill`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`boxFill`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`boxFill`)}},{key:`roundedCorners`,control:{type:`slider`,label:`Rounded corners`,default:({theme:e})=>e?.itemSpecific?.rounding??8,min:0,max:24,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`?typeof e?.roundedCorners==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`&&typeof e?.roundedCorners==`number`,extraLabelClickAction:({options:e})=>{let t={...e};return t?.roundedCorners!==void 0&&delete t.roundedCorners,{value:null,options:t}}}},{key:`boxStrokeWidth`,control:{type:`slider`,label:`Box stroke width`,default:1,min:0,max:5,step:.5}},{key:`boxStrokeColor`,control:{type:`color-picker`,label:`Box stroke color`,default:({theme:t})=>e.getThemeMainColor(t),extraLabel:({options:t,theme:n})=>e.getThemeMainColorResetLabel(t,n,`boxStrokeColor`),extraLabelHasClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelHasClickAction(t,n,`boxStrokeColor`),extraLabelClickAction:({options:t,theme:n})=>e.getThemeMainColorExtraLabelClickAction(t,n,`boxStrokeColor`)}},{key:`medianStrokeWidth`,control:{type:`slider`,label:`Median stroke width`,default:2,min:0,max:5,step:.5}},{key:`medianStrokeColor`,control:{type:`color-picker`,label:`Median stroke color`,default:`#000000`}}]},{key:`observations`,type:`group`,open:!0,children:[{key:`observations.display`,control:{type:`switch`,label:`Show`,default:!1}},{key:`observations.onlyOutliers`,control:{type:`switch`,label:`Only outliers`,default:!1},visibleIf:i},{key:`observations.type`,control:{type:`picker`,label:`Type`,default:`dot`,enum:[`dot`,`ticks`]},visibleIf:i},{key:`observations.size`,control:{type:`slider`,label:`Size`,default:3,min:1,max:10,step:1},visibleIf:i},{key:`observations.opacity`,control:{type:`slider`,label:`Opacity`,default:.4,min:.1,max:1,step:.1},visibleIf:i},{key:`observations.jitter`,control:{type:`slider`,label:`Jitter`,default:30,min:1,max:100,step:1},visibleIf:i},{key:`observations.colorType`,control:{type:`picker`,label:`Color mode`,default:`single`,enum:[`single`,`range`]},visibleIf:i},{key:`observations.color`,control:{type:`color-picker`,label:`Color`,default:({theme:e})=>e?.colors?.[1],extraLabel:({options:e,theme:t})=>t?.colors?.[1]&&e.observations?.color&&e.observations?.color!==t?.colors?.[1]?`reset`:null,extraLabelHasClickAction:({options:e,theme:t})=>!!(t?.colors?.[1]&&e.observations?.color!==t?.colors?.[1]),extraLabelClickAction:({options:e,theme:t})=>{let n={...e};return n.observations&&(n.observations.color=t?.colors?.[1]),{value:n.observations?.color,options:n}}},visibleIf:({options:e})=>i({options:e})&&e?.observations?.colorType===`single`},{key:`observations.colorsType`,control:{type:`picker`,label:`Colors type`,default:`divergent`,enum:[`sequential`,`divergent`],calculateValue:({options:e})=>e?.observations?.colorsClass===`manual`?`manual`:r.getColorMaps()?.[e?.observations?.colorsClass]?.type??`divergent`,toOptions:({options:e,value:t})=>{if(t===`manual`)return{...e,observations:{...e.observations,colorsType:`manual`,colorsClass:`manual`}};let n=e.observations?.colorsClass;return t!==r.getColorMaps()?.[e?.observations?.colorsClass]?.type&&(n=r.getColorMapKeys(t??`divergent`)[0]),{...e,observations:{...e.observations,colorsClass:n,colorsType:t}}}},visibleIf:({options:e})=>i({options:e})&&e?.observations?.colorType===`range`},{key:`observations.colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let t=r.getColorMaps()?.[e?.observations?.colorsClass]?.type;return r.getColorMapKeys(t??`divergent`)[0]},enum:({options:e})=>{let t=r.getColorMaps()?.[e?.observations?.colorsClass]?.type;return r.getColorMapKeys(t??`divergent`)}},visibleIf:({options:e})=>i({options:e})&&e?.observations?.colorType===`range`&&e?.observations?.colorsClass!==`manual`}]},t.createAxesOptionsGroup([{axis:`x`,role:`axis`,scale:!0,color:!0,label:!0,tickDensity:!0,tickMode:!0,gridlines:!0},{axis:`y`,role:`axis`,scale:!0,color:!0,label:!0,tickDensity:!0,tickMode:!0,gridlines:!0}],t.createManualRangeControls({rangeKey:`manualAxisRange`,labels:{range:`Measure axis range`,minimum:`Measure axis minimum`,maximum:`Measure axis maximum`},discriminator:{key:`measureAxisType`,default:`variable`}})),n.createInfoTooltipOptionsGroup()];exports.default=a;
|
|
2
2
|
//# sourceMappingURL=box-plot-options.config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box-plot-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/box-plot/box-plot-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup, createManualRangeControls } from '../shared/utils/axis-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { BoxPlotViewOptions } from './box-plot-options';\n\ntype BoxPlotConfigContext = OptionsConfigContext<BoxPlotViewOptions>;\ntype BoxPlotConfigContextWithValue<T> = BoxPlotConfigContext & { value: T };\n\nconst observationsEnabled = ({ options }: BoxPlotConfigContext) => options?.observations?.display === true;\n\nconst boxPlotOptionsConfig: OptionsConfig<BoxPlotConfigContext> = [\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: 'horizontal',\n control: {\n type: 'picker',\n label: 'Display',\n default: 'vertical',\n enum: ['vertical', 'horizontal'],\n parseValue: (value: boolean | null | undefined) => (value ? 'horizontal' : 'vertical'),\n toValue: (value: 'horizontal' | 'vertical') => value === 'horizontal'\n }\n },\n {\n key: 'extentTicks',\n control: {\n type: 'switch',\n label: 'Extent ticks',\n default: true\n }\n }\n ]\n },\n {\n key: 'box',\n type: 'group',\n open: true,\n children: [\n {\n key: 'boxWidth',\n control: {\n type: 'slider',\n label: 'Box width',\n default: 0.9,\n min: 0.1,\n max: 1,\n step: 0.1\n }\n },\n {\n key: 'boxFill',\n control: {\n type: 'color-picker',\n label: 'Box fill',\n default: ({ theme }: BoxPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'boxFill'),\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'boxFill'),\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'boxFill')\n }\n },\n {\n key: 'roundedCorners',\n control: {\n type: 'slider',\n label: 'Rounded corners',\n default: ({ theme }: BoxPlotConfigContext) => theme?.itemSpecific?.rounding ?? 8,\n min: 0,\n max: 24,\n step: 1,\n extraLabel: ({ options, theme }: BoxPlotConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.roundedCorners !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BoxPlotConfigContext) => {\n const newOptions = { ...options };\n\n if (newOptions?.roundedCorners !== undefined) {\n delete newOptions.roundedCorners;\n }\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'boxStrokeWidth',\n control: {\n type: 'slider',\n label: 'Box stroke width',\n default: 1,\n min: 0,\n max: 5,\n step: 0.5\n }\n },\n {\n key: 'boxStrokeColor',\n control: {\n type: 'color-picker',\n label: 'Box stroke color',\n default: ({ theme }: BoxPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'boxStrokeColor'),\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'boxStrokeColor'),\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'boxStrokeColor')\n }\n },\n {\n key: 'medianStrokeWidth',\n control: {\n type: 'slider',\n label: 'Median stroke width',\n default: 2,\n min: 0,\n max: 5,\n step: 0.5\n }\n },\n {\n key: 'medianStrokeColor',\n control: {\n type: 'color-picker',\n label: 'Median stroke color',\n default: '#000000'\n }\n }\n ]\n },\n {\n key: 'observations',\n type: 'group',\n open: true,\n children: [\n {\n key: 'observations.display',\n control: {\n type: 'switch',\n label: 'Show',\n default: false\n }\n },\n {\n key: 'observations.onlyOutliers',\n control: {\n type: 'switch',\n label: 'Only outliers',\n default: false\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.type',\n control: {\n type: 'picker',\n label: 'Type',\n default: 'dot',\n enum: ['dot', 'ticks']\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.size',\n control: {\n type: 'slider',\n label: 'Size',\n default: 3,\n min: 1,\n max: 10,\n step: 1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.4,\n min: 0.1,\n max: 1,\n step: 0.1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.jitter',\n control: {\n type: 'slider',\n label: 'Jitter',\n default: 30,\n min: 1,\n max: 100,\n step: 1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.colorType',\n control: {\n type: 'picker',\n label: 'Color mode',\n default: 'single',\n enum: ['single', 'range']\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.color',\n control: {\n type: 'color-picker',\n label: 'Color',\n default: ({ theme }: BoxPlotConfigContext) => theme?.colors?.[1],\n extraLabel: ({ options, theme }: BoxPlotConfigContext) => {\n if (\n theme?.colors?.[1]\n && options.observations?.color\n && options.observations?.color !== theme?.colors?.[1]\n ) {\n return 'reset';\n }\n\n return null;\n },\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n if (theme?.colors?.[1] && options.observations?.color !== theme?.colors?.[1]) {\n return true;\n }\n\n return false;\n },\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n const newOptions = { ...options };\n\n if (newOptions.observations) {\n newOptions.observations.color = theme?.colors?.[1];\n }\n\n return {\n value: newOptions.observations?.color,\n options: newOptions\n };\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options }) && options?.observations?.colorType === 'single'\n },\n {\n key: 'observations.colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'divergent',\n // TODO: add manual when being able to retrieve values from the boxplot\n enum: ['sequential', 'divergent' /* , 'manual' */],\n calculateValue: ({ options }: BoxPlotConfigContext) => {\n if (options?.observations?.colorsClass === 'manual') {\n return 'manual';\n }\n\n const colorMaps = getColorMaps();\n const type = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return type ?? 'divergent';\n },\n toOptions: ({ options, value }: BoxPlotConfigContextWithValue<'manual' | 'sequential' | 'divergent'>) => {\n if (value === 'manual') {\n return {\n ...options,\n observations: {\n ...options.observations,\n // TODO needed to save the type?\n colorsType: 'manual',\n colorsClass: 'manual'\n }\n };\n }\n\n let colorsClass = options.observations?.colorsClass;\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n if (value !== colorClassType) {\n colorsClass = getColorMapKeys(value ?? 'divergent')[0];\n }\n\n return {\n ...options,\n observations: {\n ...options.observations,\n colorsClass,\n colorsType: value\n }\n };\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options }) && options?.observations?.colorType === 'range'\n },\n /* TODO: need to be able to retrieve values from the boxplot\n {\n key: 'observations.manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n noAlphaChannel: true,\n label: 'Color ranges',\n hideLabel: true,\n default: () => structuredClone(defaultRangeValues)\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n options?.observations?.colorType === 'range' &&\n options?.observations?.colorsClass === 'manual'\n },\n */\n {\n key: 'observations.colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: BoxPlotConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(colorClassType ?? 'divergent')[0];\n },\n enum: ({ options }: BoxPlotConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(colorClassType ?? 'divergent');\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options })\n && options?.observations?.colorType === 'range'\n && options?.observations?.colorsClass !== 'manual'\n }\n ]\n },\n createAxesOptionsGroup<BoxPlotConfigContext>([\n { axis: 'x', role: 'axis', scale: true, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'axis', scale: true, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ], createManualRangeControls<BoxPlotConfigContext>({\n rangeKey: 'manualAxisRange',\n labels: {\n range: 'Measure axis range',\n minimum: 'Measure axis minimum',\n maximum: 'Measure axis maximum'\n },\n discriminator: { key: 'measureAxisType', default: 'variable' }\n }))\n];\n\nexport default boxPlotOptionsConfig;\n"],"mappings":"6IAcA,IAAM,GAAuB,CAAE,aAAoC,GAAS,cAAc,UAAY,GAEhG,EAA4D,CAChE,CACE,IAAK,UACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,gBACL,QAAS,CACP,KAAM,SACN,MAAO,QACP,QAAS,EACX,CACF,EACA,CACE,IAAK,aACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,QAAS,WACT,KAAM,CAAC,WAAY,YAAY,EAC/B,WAAa,GAAuC,EAAQ,aAAe,WAC3E,QAAU,GAAqC,IAAU,YAC3D,CACF,EACA,CACE,IAAK,cACL,QAAS,CACP,KAAM,SACN,MAAO,eACP,QAAS,EACX,CACF,CACF,CACF,EACA,CACE,IAAK,MACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,WACL,QAAS,CACP,KAAM,SACN,MAAO,YACP,QAAS,GACT,IAAK,GACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,UACL,QAAS,CACP,KAAM,eACN,MAAO,WACP,SAAU,CAAE,WAAkC,EAAA,kBAAkB,CAAK,EACrE,YAAa,CAAE,UAAS,WACtB,EAAA,4BAA4B,EAAS,EAAO,SAAS,EACvD,0BAA2B,CAAE,UAAS,WACpC,EAAA,0CAA0C,EAAS,EAAO,SAAS,EACrE,uBAAwB,CAAE,UAAS,WACjC,EAAA,uCAAuC,EAAS,EAAO,SAAS,CACpE,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,kBACP,SAAU,CAAE,WAAkC,GAAO,cAAc,UAAY,EAC/E,IAAK,EACL,IAAK,GACL,KAAM,EACN,YAAa,CAAE,UAAS,WAClB,OAAO,GAAO,cAAc,UAAa,SAIzC,OAAO,GAAS,gBAAmB,SAIhC,QAHE,OAJA,KASX,0BAA2B,CAAE,UAAS,WAChC,OAAO,GAAO,cAAc,UAAa,UAAY,OAAO,GAAS,gBAAmB,SAM9F,uBAAwB,CAAE,aAAoC,CAC5D,IAAM,EAAa,CAAE,GAAG,CAAQ,EAMhC,OAJI,GAAY,iBAAmB,IAAA,IACjC,OAAO,EAAW,eAGb,CAAE,MAAO,KAAM,QAAS,CAAW,CAC5C,CACF,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,mBACP,QAAS,EACT,IAAK,EACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,eACN,MAAO,mBACP,SAAU,CAAE,WAAkC,EAAA,kBAAkB,CAAK,EACrE,YAAa,CAAE,UAAS,WACtB,EAAA,4BAA4B,EAAS,EAAO,gBAAgB,EAC9D,0BAA2B,CAAE,UAAS,WACpC,EAAA,0CAA0C,EAAS,EAAO,gBAAgB,EAC5E,uBAAwB,CAAE,UAAS,WACjC,EAAA,uCAAuC,EAAS,EAAO,gBAAgB,CAC3E,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,sBACP,QAAS,EACT,IAAK,EACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,eACN,MAAO,sBACP,QAAS,SACX,CACF,CACF,CACF,EACA,CACE,IAAK,eACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,uBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,EACX,CACF,EACA,CACE,IAAK,4BACL,QAAS,CACP,KAAM,SACN,MAAO,gBACP,QAAS,EACX,EACA,UAAW,CACb,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,MACT,KAAM,CAAC,MAAO,OAAO,CACvB,EACA,UAAW,CACb,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,EACT,IAAK,EACL,IAAK,GACL,KAAM,CACR,EACA,UAAW,CACb,EACA,CACE,IAAK,uBACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,QAAS,GACT,IAAK,GACL,IAAK,EACL,KAAM,EACR,EACA,UAAW,CACb,EACA,CACE,IAAK,sBACL,QAAS,CACP,KAAM,SACN,MAAO,SACP,QAAS,GACT,IAAK,EACL,IAAK,IACL,KAAM,CACR,EACA,UAAW,CACb,EACA,CACE,IAAK,yBACL,QAAS,CACP,KAAM,SACN,MAAO,aACP,QAAS,SACT,KAAM,CAAC,SAAU,OAAO,CAC1B,EACA,UAAW,CACb,EACA,CACE,IAAK,qBACL,QAAS,CACP,KAAM,eACN,MAAO,QACP,SAAU,CAAE,WAAkC,GAAO,SAAS,GAC9D,YAAa,CAAE,UAAS,WAEpB,GAAO,SAAS,IACb,EAAQ,cAAc,OACtB,EAAQ,cAAc,QAAU,GAAO,SAAS,GAE5C,QAGF,KAET,0BAA2B,CAAE,UAAS,WACpC,GAAI,GAAO,SAAS,IAAM,EAAQ,cAAc,QAAU,GAAO,SAAS,IAM5E,uBAAwB,CAAE,UAAS,WAAkC,CACnE,IAAM,EAAa,CAAE,GAAG,CAAQ,EAMhC,OAJI,EAAW,eACb,EAAW,aAAa,MAAQ,GAAO,SAAS,IAG3C,CACL,MAAO,EAAW,cAAc,MAChC,QAAS,CACX,CACF,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAAK,GAAS,cAAc,YAAc,QAC7E,EACA,CACE,IAAK,0BACL,QAAS,CACP,KAAM,SACN,MAAO,cACP,QAAS,YAET,KAAM,CAAC,aAAc,WAA4B,EACjD,gBAAiB,CAAE,aACb,GAAS,cAAc,cAAgB,SAClC,SAGS,EAAA,aACL,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,MAEjE,YAEjB,WAAY,CAAE,UAAS,WAAkF,CACvG,GAAI,IAAU,SACZ,MAAO,CACL,GAAG,EACH,aAAc,CACZ,GAAG,EAAQ,aAEX,WAAY,SACZ,YAAa,QACf,CACF,EAGF,IAAI,EAAc,EAAQ,cAAc,YAQxC,OAJI,IAHc,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,OAGxF,EAAc,EAAA,gBAAgB,GAAS,WAAW,CAAC,CAAC,IAG/C,CACL,GAAG,EACH,aAAc,CACZ,GAAG,EAAQ,aACX,cACA,WAAY,CACd,CACF,CACF,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAAK,GAAS,cAAc,YAAc,OAC7E,EAkBA,CACE,IAAK,2BACL,QAAS,CACP,KAAM,uBACN,MAAO,gBACP,UAAW,GACX,SAAU,CAAE,aAAoC,CAE9C,IAAM,EADY,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,KAE1F,OAAO,EAAA,gBAAgB,GAAkB,WAAW,CAAC,CAAC,EACxD,EACA,MAAO,CAAE,aAAoC,CAE3C,IAAM,EADY,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,KAE1F,OAAO,EAAA,gBAAgB,GAAkB,WAAW,CACtD,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAC5B,GAAS,cAAc,YAAc,SACrC,GAAS,cAAc,cAAgB,QAC9C,CACF,CACF,EACA,EAAA,uBAA6C,CAC3C,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,YAAa,GAAM,SAAU,GAAM,UAAW,EAAK,EACrH,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,YAAa,GAAM,SAAU,GAAM,UAAW,EAAK,CACvH,EAAG,EAAA,0BAAgD,CACjD,SAAU,kBACV,OAAQ,CACN,MAAO,qBACP,QAAS,uBACT,QAAS,sBACX,EACA,cAAe,CAAE,IAAK,kBAAmB,QAAS,UAAW,CAC/D,CAAC,CAAC,CACJ"}
|
|
1
|
+
{"version":3,"file":"box-plot-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/box-plot/box-plot-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport {\n getThemeMainColor,\n getThemeMainColorExtraLabelClickAction,\n getThemeMainColorExtraLabelHasClickAction,\n getThemeMainColorResetLabel\n} from '../helpers';\nimport { createAxesOptionsGroup, createManualRangeControls } 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 { BoxPlotViewOptions } from './box-plot-options';\n\ntype BoxPlotConfigContext = OptionsConfigContext<BoxPlotViewOptions>;\ntype BoxPlotConfigContextWithValue<T> = BoxPlotConfigContext & { value: T };\n\nconst observationsEnabled = ({ options }: BoxPlotConfigContext) => options?.observations?.display === true;\n\nconst boxPlotOptionsConfig: OptionsConfig<BoxPlotConfigContext> = [\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: 'horizontal',\n control: {\n type: 'picker',\n label: 'Display',\n default: 'vertical',\n enum: ['vertical', 'horizontal'],\n parseValue: (value: boolean | null | undefined) => (value ? 'horizontal' : 'vertical'),\n toValue: (value: 'horizontal' | 'vertical') => value === 'horizontal'\n }\n },\n {\n key: 'extentTicks',\n control: {\n type: 'switch',\n label: 'Extent ticks',\n default: true\n }\n }\n ]\n },\n {\n key: 'box',\n type: 'group',\n open: true,\n children: [\n {\n key: 'boxWidth',\n control: {\n type: 'slider',\n label: 'Box width',\n default: 0.9,\n min: 0.1,\n max: 1,\n step: 0.1\n }\n },\n {\n key: 'boxFill',\n control: {\n type: 'color-picker',\n label: 'Box fill',\n default: ({ theme }: BoxPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'boxFill'),\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'boxFill'),\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'boxFill')\n }\n },\n {\n key: 'roundedCorners',\n control: {\n type: 'slider',\n label: 'Rounded corners',\n default: ({ theme }: BoxPlotConfigContext) => theme?.itemSpecific?.rounding ?? 8,\n min: 0,\n max: 24,\n step: 1,\n extraLabel: ({ options, theme }: BoxPlotConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.roundedCorners !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.roundedCorners !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: BoxPlotConfigContext) => {\n const newOptions = { ...options };\n\n if (newOptions?.roundedCorners !== undefined) {\n delete newOptions.roundedCorners;\n }\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'boxStrokeWidth',\n control: {\n type: 'slider',\n label: 'Box stroke width',\n default: 1,\n min: 0,\n max: 5,\n step: 0.5\n }\n },\n {\n key: 'boxStrokeColor',\n control: {\n type: 'color-picker',\n label: 'Box stroke color',\n default: ({ theme }: BoxPlotConfigContext) => getThemeMainColor(theme),\n extraLabel: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorResetLabel(options, theme, 'boxStrokeColor'),\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelHasClickAction(options, theme, 'boxStrokeColor'),\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) =>\n getThemeMainColorExtraLabelClickAction(options, theme, 'boxStrokeColor')\n }\n },\n {\n key: 'medianStrokeWidth',\n control: {\n type: 'slider',\n label: 'Median stroke width',\n default: 2,\n min: 0,\n max: 5,\n step: 0.5\n }\n },\n {\n key: 'medianStrokeColor',\n control: {\n type: 'color-picker',\n label: 'Median stroke color',\n default: '#000000'\n }\n }\n ]\n },\n {\n key: 'observations',\n type: 'group',\n open: true,\n children: [\n {\n key: 'observations.display',\n control: {\n type: 'switch',\n label: 'Show',\n default: false\n }\n },\n {\n key: 'observations.onlyOutliers',\n control: {\n type: 'switch',\n label: 'Only outliers',\n default: false\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.type',\n control: {\n type: 'picker',\n label: 'Type',\n default: 'dot',\n enum: ['dot', 'ticks']\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.size',\n control: {\n type: 'slider',\n label: 'Size',\n default: 3,\n min: 1,\n max: 10,\n step: 1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.4,\n min: 0.1,\n max: 1,\n step: 0.1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.jitter',\n control: {\n type: 'slider',\n label: 'Jitter',\n default: 30,\n min: 1,\n max: 100,\n step: 1\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.colorType',\n control: {\n type: 'picker',\n label: 'Color mode',\n default: 'single',\n enum: ['single', 'range']\n },\n visibleIf: observationsEnabled\n },\n {\n key: 'observations.color',\n control: {\n type: 'color-picker',\n label: 'Color',\n default: ({ theme }: BoxPlotConfigContext) => theme?.colors?.[1],\n extraLabel: ({ options, theme }: BoxPlotConfigContext) => {\n if (\n theme?.colors?.[1]\n && options.observations?.color\n && options.observations?.color !== theme?.colors?.[1]\n ) {\n return 'reset';\n }\n\n return null;\n },\n extraLabelHasClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n if (theme?.colors?.[1] && options.observations?.color !== theme?.colors?.[1]) {\n return true;\n }\n\n return false;\n },\n extraLabelClickAction: ({ options, theme }: BoxPlotConfigContext) => {\n const newOptions = { ...options };\n\n if (newOptions.observations) {\n newOptions.observations.color = theme?.colors?.[1];\n }\n\n return {\n value: newOptions.observations?.color,\n options: newOptions\n };\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options }) && options?.observations?.colorType === 'single'\n },\n {\n key: 'observations.colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'divergent',\n // TODO: add manual when being able to retrieve values from the boxplot\n enum: ['sequential', 'divergent' /* , 'manual' */],\n calculateValue: ({ options }: BoxPlotConfigContext) => {\n if (options?.observations?.colorsClass === 'manual') {\n return 'manual';\n }\n\n const colorMaps = getColorMaps();\n const type = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return type ?? 'divergent';\n },\n toOptions: ({ options, value }: BoxPlotConfigContextWithValue<'manual' | 'sequential' | 'divergent'>) => {\n if (value === 'manual') {\n return {\n ...options,\n observations: {\n ...options.observations,\n // TODO needed to save the type?\n colorsType: 'manual',\n colorsClass: 'manual'\n }\n };\n }\n\n let colorsClass = options.observations?.colorsClass;\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n if (value !== colorClassType) {\n colorsClass = getColorMapKeys(value ?? 'divergent')[0];\n }\n\n return {\n ...options,\n observations: {\n ...options.observations,\n colorsClass,\n colorsType: value\n }\n };\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options }) && options?.observations?.colorType === 'range'\n },\n /* TODO: need to be able to retrieve values from the boxplot\n {\n key: 'observations.manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n noAlphaChannel: true,\n label: 'Color ranges',\n hideLabel: true,\n default: () => structuredClone(defaultRangeValues)\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n options?.observations?.colorType === 'range' &&\n options?.observations?.colorsClass === 'manual'\n },\n */\n {\n key: 'observations.colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: BoxPlotConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(colorClassType ?? 'divergent')[0];\n },\n enum: ({ options }: BoxPlotConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.observations?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(colorClassType ?? 'divergent');\n }\n },\n visibleIf: ({ options }: BoxPlotConfigContext) =>\n observationsEnabled({ options })\n && options?.observations?.colorType === 'range'\n && options?.observations?.colorsClass !== 'manual'\n }\n ]\n },\n createAxesOptionsGroup<BoxPlotConfigContext>([\n { axis: 'x', role: 'axis', scale: true, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true },\n { axis: 'y', role: 'axis', scale: true, color: true, label: true, tickDensity: true, tickMode: true, gridlines: true }\n ], createManualRangeControls<BoxPlotConfigContext>({\n rangeKey: 'manualAxisRange',\n labels: {\n range: 'Measure axis range',\n minimum: 'Measure axis minimum',\n maximum: 'Measure axis maximum'\n },\n discriminator: { key: 'measureAxisType', default: 'variable' }\n })),\n createInfoTooltipOptionsGroup<BoxPlotConfigContext>()\n];\n\nexport default boxPlotOptionsConfig;\n"],"mappings":"0MAeA,IAAM,GAAuB,CAAE,aAAoC,GAAS,cAAc,UAAY,GAEhG,EAA4D,CAChE,CACE,IAAK,UACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,gBACL,QAAS,CACP,KAAM,SACN,MAAO,QACP,QAAS,EACX,CACF,EACA,CACE,IAAK,aACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,QAAS,WACT,KAAM,CAAC,WAAY,YAAY,EAC/B,WAAa,GAAuC,EAAQ,aAAe,WAC3E,QAAU,GAAqC,IAAU,YAC3D,CACF,EACA,CACE,IAAK,cACL,QAAS,CACP,KAAM,SACN,MAAO,eACP,QAAS,EACX,CACF,CACF,CACF,EACA,CACE,IAAK,MACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,WACL,QAAS,CACP,KAAM,SACN,MAAO,YACP,QAAS,GACT,IAAK,GACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,UACL,QAAS,CACP,KAAM,eACN,MAAO,WACP,SAAU,CAAE,WAAkC,EAAA,kBAAkB,CAAK,EACrE,YAAa,CAAE,UAAS,WACtB,EAAA,4BAA4B,EAAS,EAAO,SAAS,EACvD,0BAA2B,CAAE,UAAS,WACpC,EAAA,0CAA0C,EAAS,EAAO,SAAS,EACrE,uBAAwB,CAAE,UAAS,WACjC,EAAA,uCAAuC,EAAS,EAAO,SAAS,CACpE,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,kBACP,SAAU,CAAE,WAAkC,GAAO,cAAc,UAAY,EAC/E,IAAK,EACL,IAAK,GACL,KAAM,EACN,YAAa,CAAE,UAAS,WAClB,OAAO,GAAO,cAAc,UAAa,SAIzC,OAAO,GAAS,gBAAmB,SAIhC,QAHE,OAJA,KASX,0BAA2B,CAAE,UAAS,WAChC,OAAO,GAAO,cAAc,UAAa,UAAY,OAAO,GAAS,gBAAmB,SAM9F,uBAAwB,CAAE,aAAoC,CAC5D,IAAM,EAAa,CAAE,GAAG,CAAQ,EAMhC,OAJI,GAAY,iBAAmB,IAAA,IACjC,OAAO,EAAW,eAGb,CAAE,MAAO,KAAM,QAAS,CAAW,CAC5C,CACF,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,SACN,MAAO,mBACP,QAAS,EACT,IAAK,EACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,iBACL,QAAS,CACP,KAAM,eACN,MAAO,mBACP,SAAU,CAAE,WAAkC,EAAA,kBAAkB,CAAK,EACrE,YAAa,CAAE,UAAS,WACtB,EAAA,4BAA4B,EAAS,EAAO,gBAAgB,EAC9D,0BAA2B,CAAE,UAAS,WACpC,EAAA,0CAA0C,EAAS,EAAO,gBAAgB,EAC5E,uBAAwB,CAAE,UAAS,WACjC,EAAA,uCAAuC,EAAS,EAAO,gBAAgB,CAC3E,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,sBACP,QAAS,EACT,IAAK,EACL,IAAK,EACL,KAAM,EACR,CACF,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,eACN,MAAO,sBACP,QAAS,SACX,CACF,CACF,CACF,EACA,CACE,IAAK,eACL,KAAM,QACN,KAAM,GACN,SAAU,CACR,CACE,IAAK,uBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,EACX,CACF,EACA,CACE,IAAK,4BACL,QAAS,CACP,KAAM,SACN,MAAO,gBACP,QAAS,EACX,EACA,UAAW,CACb,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,MACT,KAAM,CAAC,MAAO,OAAO,CACvB,EACA,UAAW,CACb,EACA,CACE,IAAK,oBACL,QAAS,CACP,KAAM,SACN,MAAO,OACP,QAAS,EACT,IAAK,EACL,IAAK,GACL,KAAM,CACR,EACA,UAAW,CACb,EACA,CACE,IAAK,uBACL,QAAS,CACP,KAAM,SACN,MAAO,UACP,QAAS,GACT,IAAK,GACL,IAAK,EACL,KAAM,EACR,EACA,UAAW,CACb,EACA,CACE,IAAK,sBACL,QAAS,CACP,KAAM,SACN,MAAO,SACP,QAAS,GACT,IAAK,EACL,IAAK,IACL,KAAM,CACR,EACA,UAAW,CACb,EACA,CACE,IAAK,yBACL,QAAS,CACP,KAAM,SACN,MAAO,aACP,QAAS,SACT,KAAM,CAAC,SAAU,OAAO,CAC1B,EACA,UAAW,CACb,EACA,CACE,IAAK,qBACL,QAAS,CACP,KAAM,eACN,MAAO,QACP,SAAU,CAAE,WAAkC,GAAO,SAAS,GAC9D,YAAa,CAAE,UAAS,WAEpB,GAAO,SAAS,IACb,EAAQ,cAAc,OACtB,EAAQ,cAAc,QAAU,GAAO,SAAS,GAE5C,QAGF,KAET,0BAA2B,CAAE,UAAS,WACpC,GAAI,GAAO,SAAS,IAAM,EAAQ,cAAc,QAAU,GAAO,SAAS,IAM5E,uBAAwB,CAAE,UAAS,WAAkC,CACnE,IAAM,EAAa,CAAE,GAAG,CAAQ,EAMhC,OAJI,EAAW,eACb,EAAW,aAAa,MAAQ,GAAO,SAAS,IAG3C,CACL,MAAO,EAAW,cAAc,MAChC,QAAS,CACX,CACF,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAAK,GAAS,cAAc,YAAc,QAC7E,EACA,CACE,IAAK,0BACL,QAAS,CACP,KAAM,SACN,MAAO,cACP,QAAS,YAET,KAAM,CAAC,aAAc,WAA4B,EACjD,gBAAiB,CAAE,aACb,GAAS,cAAc,cAAgB,SAClC,SAGS,EAAA,aACL,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,MAEjE,YAEjB,WAAY,CAAE,UAAS,WAAkF,CACvG,GAAI,IAAU,SACZ,MAAO,CACL,GAAG,EACH,aAAc,CACZ,GAAG,EAAQ,aAEX,WAAY,SACZ,YAAa,QACf,CACF,EAGF,IAAI,EAAc,EAAQ,cAAc,YAQxC,OAJI,IAHc,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,OAGxF,EAAc,EAAA,gBAAgB,GAAS,WAAW,CAAC,CAAC,IAG/C,CACL,GAAG,EACH,aAAc,CACZ,GAAG,EAAQ,aACX,cACA,WAAY,CACd,CACF,CACF,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAAK,GAAS,cAAc,YAAc,OAC7E,EAkBA,CACE,IAAK,2BACL,QAAS,CACP,KAAM,uBACN,MAAO,gBACP,UAAW,GACX,SAAU,CAAE,aAAoC,CAE9C,IAAM,EADY,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,KAE1F,OAAO,EAAA,gBAAgB,GAAkB,WAAW,CAAC,CAAC,EACxD,EACA,MAAO,CAAE,aAAoC,CAE3C,IAAM,EADY,EAAA,aACK,CAAA,GAAY,GAAS,cAAc,YAA8B,EAAE,KAE1F,OAAO,EAAA,gBAAgB,GAAkB,WAAW,CACtD,CACF,EACA,WAAY,CAAE,aACZ,EAAoB,CAAE,SAAQ,CAAC,GAC5B,GAAS,cAAc,YAAc,SACrC,GAAS,cAAc,cAAgB,QAC9C,CACF,CACF,EACA,EAAA,uBAA6C,CAC3C,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,YAAa,GAAM,SAAU,GAAM,UAAW,EAAK,EACrH,CAAE,KAAM,IAAK,KAAM,OAAQ,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,YAAa,GAAM,SAAU,GAAM,UAAW,EAAK,CACvH,EAAG,EAAA,0BAAgD,CACjD,SAAU,kBACV,OAAQ,CACN,MAAO,qBACP,QAAS,uBACT,QAAS,sBACX,EACA,cAAe,CAAE,IAAK,kBAAmB,QAAS,UAAW,CAC/D,CAAC,CAAC,EACF,EAAA,8BAAoD,CACtD"}
|