@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/funnel-chart/funnel-chart-options.config.ts"],"sourcesContent":["import type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { FunnelChartViewOptions } from './funnel-chart-options';\n\ntype FunnelChartConfigContext = OptionsConfigContext<FunnelChartViewOptions>;\ntype FunnelChartConfigValue<T> = FunnelChartConfigContext & { value: T };\n\nconst funnelChartOptionsConfig: OptionsConfig<FunnelChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n label: 'Legend',\n default: true,\n calculateValue: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true,\n toOptions: ({ options, value }: FunnelChartConfigValue<boolean>) => ({\n ...options,\n display: {\n ...options.display,\n legend: value,\n categoryLabels: false\n }\n })\n }\n },\n {\n key: 'display.categoryLabels',\n control: {\n type: 'radio-button-group',\n label: 'Display legend as',\n default: 'labels',\n enum: ['list', 'labels'],\n parseValue: (value: string) => (value ? 'labels' : 'list'),\n toOptions: ({ options, value }: FunnelChartConfigValue<'list' | 'labels'>) => ({\n ...options,\n display: {\n ...options.display,\n categoryLabels: value === 'labels',\n legend: value !== 'labels'\n }\n })\n },\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n },\n {\n key: 'funnel.absValue',\n control: {\n type: 'switch',\n label: 'Show absolute values',\n default: true\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n },\n {\n key: 'funnel.perc',\n control: {\n type: 'picker',\n label: 'Percentage',\n default: 'hide',\n enum: ['hide', 'ofMax', 'ofTot']\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n }\n ]\n },\n {\n key: 'funnel',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n label: 'Mode',\n default: 'dynamicWidth',\n enum: ['dynamicWidth', 'dynamicHeight', 'regular']\n }\n },\n {\n key: 'funnel.rectangle',\n control: {\n type: 'switch',\n label: 'Rectangular',\n default: false\n }\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order',\n default: 'measure',\n enum: ['measure', 'category']\n }\n },\n {\n key: 'sort.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'desc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'limit.number',\n control: {\n type: 'number-field',\n label: 'Limit',\n default: 100000,\n min: 1,\n max: 100000\n }\n }\n ]\n },\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'right',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend === true && String(options.display?.categoryLabels) === 'false'\n }\n];\n\nexport default funnelChartOptionsConfig;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"funnel-chart-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/funnel-chart/funnel-chart-options.config.ts"],"sourcesContent":["import { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { FunnelChartViewOptions } from './funnel-chart-options';\n\ntype FunnelChartConfigContext = OptionsConfigContext<FunnelChartViewOptions>;\ntype FunnelChartConfigValue<T> = FunnelChartConfigContext & { value: T };\n\nconst funnelChartOptionsConfig: OptionsConfig<FunnelChartConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.legend',\n control: {\n type: 'switch',\n label: 'Legend',\n default: true,\n calculateValue: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true,\n toOptions: ({ options, value }: FunnelChartConfigValue<boolean>) => ({\n ...options,\n display: {\n ...options.display,\n legend: value,\n categoryLabels: false\n }\n })\n }\n },\n {\n key: 'display.categoryLabels',\n control: {\n type: 'radio-button-group',\n label: 'Display legend as',\n default: 'labels',\n enum: ['list', 'labels'],\n parseValue: (value: string) => (value ? 'labels' : 'list'),\n toOptions: ({ options, value }: FunnelChartConfigValue<'list' | 'labels'>) => ({\n ...options,\n display: {\n ...options.display,\n categoryLabels: value === 'labels',\n legend: value !== 'labels'\n }\n })\n },\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend !== false || options?.display?.categoryLabels === true\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n },\n {\n key: 'funnel.absValue',\n control: {\n type: 'switch',\n label: 'Show absolute values',\n default: true\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n },\n {\n key: 'funnel.perc',\n control: {\n type: 'picker',\n label: 'Percentage',\n default: 'hide',\n enum: ['hide', 'ofMax', 'ofTot']\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.display?.values === true\n }\n ]\n },\n {\n key: 'funnel',\n type: 'group',\n open: true,\n children: [\n {\n key: 'mode',\n control: {\n type: 'picker',\n label: 'Mode',\n default: 'dynamicWidth',\n enum: ['dynamicWidth', 'dynamicHeight', 'regular']\n }\n },\n {\n key: 'funnel.rectangle',\n control: {\n type: 'switch',\n label: 'Rectangular',\n default: false\n }\n },\n {\n key: 'sort.by',\n control: {\n type: 'picker',\n label: 'Order',\n default: 'measure',\n enum: ['measure', 'category']\n }\n },\n {\n key: 'sort.direction',\n control: {\n type: 'picker',\n label: 'Direction',\n default: 'desc',\n enum: ['asc', 'desc']\n }\n },\n {\n key: 'limit.number',\n control: {\n type: 'number-field',\n label: 'Limit',\n default: 100000,\n min: 1,\n max: 100000\n }\n }\n ]\n },\n {\n key: 'legend',\n type: 'group',\n open: false,\n children: [\n {\n key: 'legend.position',\n control: {\n label: 'Position',\n type: 'position-picker',\n default: 'right',\n enum: ['topLeft', 'top', 'topRight', 'right', 'bottomRight', 'bottom', 'bottomLeft', 'left']\n }\n },\n {\n key: 'legend.customOrder',\n control: {\n label: 'Custom order',\n description: 'Drag items in the chart legend to set the order.',\n type: 'switch',\n default: false\n }\n },\n {\n key: 'interactivity.legendReorder',\n control: {\n label: 'Allow viewers to reorder',\n type: 'switch',\n default: false\n },\n visibleIf: ({ options }: FunnelChartConfigContext) => options?.legend?.customOrder === true\n }\n ],\n visibleIf: ({ options }: FunnelChartConfigContext) =>\n options?.display?.legend === true && String(options.display?.categoryLabels) === 'false'\n },\n createInfoTooltipOptionsGroup<FunnelChartConfigContext>()\n];\n\nexport default funnelChartOptionsConfig;\n"],"mappings":";;AAOA,IAAM,IAAoE;CACxE;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,iBAAiB,EAAE,iBACjB,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;KAC7E,YAAY,EAAE,YAAS,gBAA8C;MACnE,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,QAAQ;OACR,gBAAgB;MAClB;KACF;IACF;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,QAAQ,QAAQ;KACvB,aAAa,MAAmB,IAAQ,WAAW;KACnD,YAAY,EAAE,YAAS,gBAAwD;MAC7E,GAAG;MACH,SAAS;OACP,GAAG,EAAQ;OACX,gBAAgB,MAAU;OAC1B,QAAQ,MAAU;MACpB;KACF;IACF;IACA,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAS,GAAS,SAAS,mBAAmB;GAC/E;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;IACA,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAQ;MAAS;KAAO;IACjC;IACA,YAAY,EAAE,iBAAwC,GAAS,SAAS,WAAW;GACrF;EACF;CACF;CACA;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM;MAAC;MAAgB;MAAiB;KAAS;IACnD;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,WAAW,UAAU;IAC9B;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,MAAM,CAAC,OAAO,MAAM;IACtB;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,MAAM;KACN,OAAO;KACP,SAAS;KACT,KAAK;KACL,KAAK;IACP;GACF;EACF;CACF;CACA;EACE,KAAK;EACL,MAAM;EACN,MAAM;EACN,UAAU;GACR;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,MAAM;KACN,SAAS;KACT,MAAM;MAAC;MAAW;MAAO;MAAY;MAAS;MAAe;MAAU;MAAc;KAAM;IAC7F;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,aAAa;KACb,MAAM;KACN,SAAS;IACX;GACF;GACA;IACE,KAAK;IACL,SAAS;KACP,OAAO;KACP,MAAM;KACN,SAAS;IACX;IACA,YAAY,EAAE,iBAAwC,GAAS,QAAQ,gBAAgB;GACzF;EACF;EACA,YAAY,EAAE,iBACZ,GAAS,SAAS,WAAW,MAAQ,OAAO,EAAQ,SAAS,cAAc,MAAM;CACrF;CACA,EAAwD;AAC1D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../shared/utils/color/color-palettes.cjs"),
|
|
1
|
+
const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../shared/utils/info-tooltip-options.config.cjs"),n=require("../shared/utils/color/color-palettes.cjs"),r=require("../shared/utils/map-tile-providers.cjs");let i=require("colorjs.io");i=e.__toESM(i);var a=()=>structuredClone(n.getColorMaps().Spectrum.colors5),o=e=>{if(!e||e.length===0)return[];let t=/^rgb(a)?\s*\(/i.test(e.at(-1)?.trim()??``);return e.map(e=>new i.default(e).toString({format:t?`hex`:`rgb`}))},s=e=>{let t=e?.length||0;return t===0?{type:`heat`,colorClass:`Spectrum`,colors:a()??[]}:n.getColorMapKeys().map(e=>({type:n.getColorMaps()[e]?.type,colorClass:e,colors:n.getColorMaps()[e]?.[`colors${t}`]??[]})).find(t=>Array.isArray(t.colors)&&Array.isArray(e)&&t.colors.length===e.length&&t.colors.every((t,n)=>t===e[n]))??{type:`manual`,colorClass:`manual`,colors:e}},c=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`enabled.zoom`,control:{type:`switch`,label:`Zoom`,default:!0}},{key:`enabled.pan`,control:{type:`switch`,label:`Pan`,default:!0}},{key:`enabled.pitchBearing`,control:{type:`switch`,label:`Pitch & Rotate`,default:!1}},{type:`divider`},{key:`vectorTileProvider`,control:{type:`picker`,label:`Map style`,default:`Basic`,enum:[`Basic`,`Bright`,`Dark`,`Fiord`,`Liberty`,`Pastel`,`Positron`,`Streets`,`Toner`,`Topographique`,`Voyager`,`No Tiles`],parseValue:e=>e?.name||`Basic`,toValue:e=>r.mapVectorTileProviders[e]??{}}}]},{key:`heat`,type:`group`,open:!0,children:[{key:`enabled.adaptOnZoom`,control:{type:`switch`,label:`Adapt on zoom`,tooltip:`If turned off, density is calculated based on map surface`,default:!0}},{key:`screenRadius`,control:{type:`slider`,label:`Radius`,default:20,min:1,max:50,step:1}},{key:`intensity`,control:{type:`slider`,label:`Intensity`,tooltip:`Multiplier for the density, multiplies by 1 on minimum (default)`,default:1,min:1,max:100,step:1}}]},{key:`heatColors`,type:`group`,open:!0,children:[{key:`transparency`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`colorsClassType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`heat`,`sequential`,`manual`],calculateValue:({options:e})=>s(e?.colors??[]).type,toOptions:({options:e,value:t})=>{let r=s(e?.colors??[]),i={...e};return r.type!==t&&(i.colors=t===`manual`?o(r.colors??a()):n.getColorMaps()[n.getColorMapKeys(t)?.[0]]?.colors5??a()),i}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:`Spectrum`,enum:({options:e})=>{let t=s(e?.colors??[]).type;return n.getColorMapKeys([`heat`,`sequential`].includes(t)?t:`heat`)},calculateValue:({options:e})=>{let t=s(e?.colors??[]);return t?.colorClass&&t.colorClass!==`manual`?t.colorClass:`Spectrum`},toOptions:({options:e,value:t})=>({...e,colors:n.getColorMaps()[t]?.colors5??a()})},visibleIf:({options:e})=>s(e?.colors??[]).type!==`manual`},{key:`colors`,control:{type:`color-range`,editRangeSize:!1,noValues:!0,minimumRangeSize:4,noAlphaChannel:!0,hideLabel:!0,label:`Manual color ranges`,default:a(),parseValue:e=>e?.map(e=>({color:e})),toValue:e=>e?.map(e=>e?.color)??[]},visibleIf:({options:e})=>s(e?.colors??[]).type===`manual`}]},t.createInfoTooltipOptionsGroup()];exports.default=c;
|
|
2
2
|
//# sourceMappingURL=heat-map-options.config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heat-map-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n }\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heat-map-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n },\n createInfoTooltipOptionsGroup<HeatMapConfigContext>()\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import r from "
|
|
1
|
+
import { createInfoTooltipOptionsGroup as e } from "../shared/utils/info-tooltip-options.config.js";
|
|
2
|
+
import { getColorMapKeys as t, getColorMaps as n } from "../shared/utils/color/color-palettes.js";
|
|
3
|
+
import { mapVectorTileProviders as r } from "../shared/utils/map-tile-providers.js";
|
|
4
|
+
import i from "colorjs.io";
|
|
4
5
|
//#region src/lib/heat-map/heat-map-options.config.ts
|
|
5
|
-
var
|
|
6
|
+
var a = () => structuredClone(n().Spectrum.colors5), o = (e) => {
|
|
6
7
|
if (!e || e.length === 0) return [];
|
|
7
8
|
let t = /^rgb(a)?\s*\(/i.test(e.at(-1)?.trim() ?? "");
|
|
8
|
-
return e.map((e) => new
|
|
9
|
-
},
|
|
10
|
-
let r =
|
|
9
|
+
return e.map((e) => new i(e).toString({ format: t ? "hex" : "rgb" }));
|
|
10
|
+
}, s = (e) => {
|
|
11
|
+
let r = e?.length || 0;
|
|
11
12
|
return r === 0 ? {
|
|
12
13
|
type: "heat",
|
|
13
14
|
colorClass: "Spectrum",
|
|
14
|
-
colors:
|
|
15
|
-
} :
|
|
16
|
-
type:
|
|
15
|
+
colors: a() ?? []
|
|
16
|
+
} : t().map((e) => ({
|
|
17
|
+
type: n()[e]?.type,
|
|
17
18
|
colorClass: e,
|
|
18
|
-
colors:
|
|
19
|
-
})).find((
|
|
19
|
+
colors: n()[e]?.[`colors${r}`] ?? []
|
|
20
|
+
})).find((t) => Array.isArray(t.colors) && Array.isArray(e) && t.colors.length === e.length && t.colors.every((t, n) => t === e[n])) ?? {
|
|
20
21
|
type: "manual",
|
|
21
22
|
colorClass: "manual",
|
|
22
|
-
colors:
|
|
23
|
+
colors: e
|
|
23
24
|
};
|
|
24
|
-
},
|
|
25
|
+
}, c = [
|
|
25
26
|
{
|
|
26
27
|
key: "general",
|
|
27
28
|
type: "group",
|
|
@@ -81,7 +82,7 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
|
|
|
81
82
|
"No Tiles"
|
|
82
83
|
],
|
|
83
84
|
parseValue: (e) => e?.name || "Basic",
|
|
84
|
-
toValue: (e) =>
|
|
85
|
+
toValue: (e) => r[e] ?? {}
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
]
|
|
@@ -152,10 +153,10 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
|
|
|
152
153
|
"sequential",
|
|
153
154
|
"manual"
|
|
154
155
|
],
|
|
155
|
-
calculateValue: ({ options: e }) =>
|
|
156
|
-
toOptions: ({ options:
|
|
157
|
-
let
|
|
158
|
-
return
|
|
156
|
+
calculateValue: ({ options: e }) => s(e?.colors ?? []).type,
|
|
157
|
+
toOptions: ({ options: e, value: r }) => {
|
|
158
|
+
let i = s(e?.colors ?? []), c = { ...e };
|
|
159
|
+
return i.type !== r && (c.colors = r === "manual" ? o(i.colors ?? a()) : n()[t(r)?.[0]]?.colors5 ?? a()), c;
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
},
|
|
@@ -166,20 +167,20 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
|
|
|
166
167
|
label: "Color palette",
|
|
167
168
|
hideLabel: !0,
|
|
168
169
|
default: "Spectrum",
|
|
169
|
-
enum: ({ options:
|
|
170
|
-
let n =
|
|
171
|
-
return
|
|
170
|
+
enum: ({ options: e }) => {
|
|
171
|
+
let n = s(e?.colors ?? []).type;
|
|
172
|
+
return t(["heat", "sequential"].includes(n) ? n : "heat");
|
|
172
173
|
},
|
|
173
174
|
calculateValue: ({ options: e }) => {
|
|
174
|
-
let t =
|
|
175
|
+
let t = s(e?.colors ?? []);
|
|
175
176
|
return t?.colorClass && t.colorClass !== "manual" ? t.colorClass : "Spectrum";
|
|
176
177
|
},
|
|
177
|
-
toOptions: ({ options: e, value:
|
|
178
|
+
toOptions: ({ options: e, value: t }) => ({
|
|
178
179
|
...e,
|
|
179
|
-
colors:
|
|
180
|
+
colors: n()[t]?.colors5 ?? a()
|
|
180
181
|
})
|
|
181
182
|
},
|
|
182
|
-
visibleIf: ({ options: e }) =>
|
|
183
|
+
visibleIf: ({ options: e }) => s(e?.colors ?? []).type !== "manual"
|
|
183
184
|
},
|
|
184
185
|
{
|
|
185
186
|
key: "colors",
|
|
@@ -191,16 +192,17 @@ var i = () => structuredClone(t().Spectrum.colors5), a = (e) => {
|
|
|
191
192
|
noAlphaChannel: !0,
|
|
192
193
|
hideLabel: !0,
|
|
193
194
|
label: "Manual color ranges",
|
|
194
|
-
default:
|
|
195
|
+
default: a(),
|
|
195
196
|
parseValue: (e) => e?.map((e) => ({ color: e })),
|
|
196
197
|
toValue: (e) => e?.map((e) => e?.color) ?? []
|
|
197
198
|
},
|
|
198
|
-
visibleIf: ({ options: e }) =>
|
|
199
|
+
visibleIf: ({ options: e }) => s(e?.colors ?? []).type === "manual"
|
|
199
200
|
}
|
|
200
201
|
]
|
|
201
|
-
}
|
|
202
|
+
},
|
|
203
|
+
e()
|
|
202
204
|
];
|
|
203
205
|
//#endregion
|
|
204
|
-
export {
|
|
206
|
+
export { c as default };
|
|
205
207
|
|
|
206
208
|
//# sourceMappingURL=heat-map-options.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heat-map-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n }\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heat-map-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-map/heat-map-options.config.ts"],"sourcesContent":["import Color from 'colorjs.io';\nimport { type ColorValue, type ColorsClassKey, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { mapVectorTileProviders } from '../shared/utils/map-tile-providers';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatMapViewOptions } from './heat-map-options';\n\ntype HeatMapConfigContext = OptionsConfigContext<HeatMapViewOptions>;\ntype HeatMapConfigValue<T> = HeatMapConfigContext & { value: T };\ntype VectorTileProvider = (typeof mapVectorTileProviders)[keyof typeof mapVectorTileProviders];\ntype ColorClassKey = keyof Omit<ColorValue, 'type'>;\ntype ColorClassType = ColorValue['type'] | 'manual';\ntype ColorInfo = {\n type: ColorClassType;\n colorClass: ColorsClassKey | 'manual';\n colors: string[];\n};\n\nconst defaultColors = () => structuredClone(getColorMaps().Spectrum.colors5);\nconst adaptedColors = (colors: string[]) => {\n if (!colors || colors.length === 0) {\n return [];\n }\n\n const lastColorInRgb = /^rgb(a)?\\s*\\(/i.test(colors.at(-1)?.trim() ?? '');\n\n return colors.map((color) => {\n const colorObj = new Color(color);\n\n return colorObj.toString({ format: lastColorInRgb ? 'hex' : 'rgb' });\n });\n};\n\nconst getTypeAndColorsClassByColors = (colors: string[]): ColorInfo => {\n const numberOfColors = colors?.length || 0;\n\n if (numberOfColors === 0) {\n return {\n type: 'heat',\n colorClass: 'Spectrum',\n colors: defaultColors() ?? []\n };\n }\n\n const colorMapKeys = getColorMapKeys();\n const colorsInfo = colorMapKeys.map((colorMapKey) => ({\n type: getColorMaps()[colorMapKey]?.type,\n colorClass: colorMapKey,\n colors: (getColorMaps()[colorMapKey]?.[`colors${numberOfColors}` as ColorClassKey] ?? [])\n }));\n const found = colorsInfo.find(\n (colorInfo) =>\n Array.isArray(colorInfo.colors)\n && Array.isArray(colors)\n && colorInfo.colors.length === colors.length\n && colorInfo.colors.every((color: string, idx: number) => color === colors[idx])\n );\n\n return (\n found ?? {\n type: 'manual',\n colorClass: 'manual',\n colors\n }\n );\n};\n\nconst heatMapOptionsConfig: OptionsConfig<HeatMapConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'enabled.zoom',\n control: {\n type: 'switch',\n label: 'Zoom',\n default: true\n }\n },\n {\n key: 'enabled.pan',\n control: {\n type: 'switch',\n label: 'Pan',\n default: true\n }\n },\n {\n key: 'enabled.pitchBearing',\n control: {\n type: 'switch',\n label: 'Pitch & Rotate',\n default: false\n }\n },\n {\n type: 'divider'\n },\n {\n key: 'vectorTileProvider',\n control: {\n type: 'picker',\n label: 'Map style',\n default: 'Basic',\n enum: [\n 'Basic',\n 'Bright',\n 'Dark',\n 'Fiord',\n 'Liberty',\n 'Pastel',\n 'Positron',\n 'Streets',\n 'Toner',\n 'Topographique',\n 'Voyager',\n 'No Tiles'\n ],\n parseValue: (value: VectorTileProvider | null | undefined) => value?.name || 'Basic',\n toValue: (value: string) => mapVectorTileProviders[value as keyof typeof mapVectorTileProviders] ?? {}\n }\n }\n ]\n },\n {\n key: 'heat',\n type: 'group',\n open: true,\n children: [\n {\n key: 'enabled.adaptOnZoom',\n control: {\n type: 'switch',\n label: 'Adapt on zoom',\n tooltip: 'If turned off, density is calculated based on map surface',\n default: true\n }\n },\n // TODO: check with heatRadius\n {\n key: 'screenRadius',\n control: {\n type: 'slider',\n label: 'Radius',\n default: 20,\n min: 1,\n max: 50,\n step: 1\n }\n },\n {\n key: 'intensity',\n control: {\n type: 'slider',\n label: 'Intensity',\n tooltip: 'Multiplier for the density, multiplies by 1 on minimum (default)',\n default: 1,\n min: 1,\n max: 100,\n step: 1\n }\n }\n ]\n },\n {\n key: 'heatColors',\n type: 'group',\n open: true,\n children: [\n {\n // TODO: rename to opacity\n key: 'transparency',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'colorsClassType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['heat', 'sequential', 'manual'],\n calculateValue: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type,\n toOptions: ({ options, value }: HeatMapConfigValue<ColorClassType>) => {\n const previousColorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n const newOptions = { ...options };\n\n if (previousColorInfo.type !== value) {\n // we adapt the format of the new colors so that they are not identified as sequential or heat as that would turn the type & colorClass option to non-manual\n newOptions.colors\n = value === 'manual'\n ? adaptedColors(previousColorInfo.colors ?? defaultColors())\n : (getColorMaps()[getColorMapKeys(value)?.[0]]?.colors5 ?? defaultColors());\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: 'Spectrum',\n enum: ({ options }: HeatMapConfigContext) => {\n const colorClassType = getTypeAndColorsClassByColors(options?.colors ?? []).type;\n\n return getColorMapKeys(['heat', 'sequential'].includes(colorClassType) ? colorClassType : 'heat');\n },\n calculateValue: ({ options }: HeatMapConfigContext) => {\n const colorInfo = getTypeAndColorsClassByColors(options?.colors ?? []);\n\n return colorInfo?.colorClass && colorInfo.colorClass !== 'manual' ? colorInfo.colorClass : 'Spectrum';\n },\n toOptions: ({ options, value }: HeatMapConfigValue<ColorsClassKey>) => {\n const newOptions = {\n ...options,\n colors: getColorMaps()[value]?.colors5 ?? defaultColors()\n };\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type !== 'manual'\n },\n {\n key: 'colors',\n control: {\n type: 'color-range',\n editRangeSize: false,\n noValues: true,\n minimumRangeSize: 4,\n noAlphaChannel: true,\n hideLabel: true,\n label: 'Manual color ranges',\n default: defaultColors(),\n parseValue: (value: string[] | null | undefined) => value?.map((color: string) => ({ color })),\n toValue: (value: { color?: string }[] | null | undefined) => value?.map((v) => v?.color) ?? []\n },\n visibleIf: ({ options }: HeatMapConfigContext) => getTypeAndColorsClassByColors(options?.colors ?? []).type === 'manual'\n }\n ]\n },\n createInfoTooltipOptionsGroup<HeatMapConfigContext>()\n];\n\nexport default heatMapOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../shared/utils/axis-options.config.cjs"),t=require("../shared/utils/color/color-palettes.cjs"),
|
|
1
|
+
const e=require("../shared/utils/axis-options.config.cjs"),t=require("../shared/utils/info-tooltip-options.config.cjs"),n=require("../shared/utils/color/color-palettes.cjs"),r=require("../shared/utils/color-range-utils.cjs");var i=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`display.values`,control:{type:`switch`,label:`Show values`,default:!1}}]},{key:`heatTable`,type:`group`,label:`Heat table`,open:!0,children:[{key:`heattable.opacity`,control:{type:`slider`,label:`Opacity`,default:.8,min:0,max:1,step:.01}},{key:`heattable.rounding`,control:{type:`slider`,label:`Rounding`,default:({theme:e})=>e?.itemSpecific?.rounding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`?typeof e?.heattable?.rounding==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.rounding==`number`&&typeof e?.heattable?.rounding==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,rounding:void 0}};return delete t.heattable.rounding,{value:null,options:t}}}},{key:`heattable.spacing`,control:{type:`slider`,label:`Spacing`,default:({theme:e})=>e?.itemSpecific?.padding,min:0,max:20,step:1,extraLabel:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`?typeof e?.heattable?.spacing==`number`?`reset`:`auto`:null,extraLabelHasClickAction:({options:e,theme:t})=>typeof t?.itemSpecific?.padding==`number`&&typeof e?.heattable?.spacing==`number`,extraLabelClickAction:({options:e})=>{let t={...e,heattable:{...e.heattable,spacing:void 0}};return delete t.heattable.spacing,{value:null,options:t}}}},{key:`colorsType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`sequential`,`divergent`,`manual`],toOptions:({options:e,value:t})=>{let i=n.getColorMaps()?.[e?.colorsClass]?.type,a=e?.colorsType??i??`sequential`,o=e?.colorsClass??`PuBu`,s=e?.numberClasses??7,c=r.toRangesWithValue(e?.manualValues?.ranges),l=a===`manual`?`manual`:o,u={...e,colorsType:t};if(t===`manual`){let e=r.calculateManualRanges(s,l,c);u.manualValues={...u.manualValues,ranges:r.toRangesWithVal(e)}}else t!==a&&(u.colorsClass=n.getColorMapKeys(t??`sequential`)[0]),delete u.manualValues;return u}}},{key:`classification`,control:{type:`picker`,label:`Method`,default:`quantile`,enum:[`interval`,`quantile`,`continuous`]},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`numberClasses`,control:{type:`picker`,label:`Number of classes`,default:`7`,enum:[`3`,`4`,`5`,`6`,`7`,`8`,`9`],parseValue:e=>e?.toString()??`7`,toOptions:({options:e,value:t})=>{let n=Number.parseInt(t,10)||7,i={...e,numberClasses:n};if(e?.colorsType===`manual`){let n=r.calculateManualRanges(t,`manual`,r.toRangesWithValue(e?.manualValues?.ranges));i.manualValues={...i.manualValues,ranges:r.toRangesWithVal(n)}}return i}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let t=n.getColorMaps()?.[e?.colorsClass]?.type;return n.getColorMapKeys(e?.colorsType??t??`sequential`)[0]},enum:({options:e})=>{let t=n.getColorMaps()?.[e?.colorsClass]?.type;return n.getColorMapKeys(e?.colorsType??t??`sequential`)},toOptions:({options:e,value:t})=>{let r=n.getColorMaps()?.[e?.colorsClass]?.type,i={...e,colorsClass:t,colorsType:r??`sequential`};return delete i.manualValues,i}},visibleIf:({options:e})=>e?.colorsType!==`manual`},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!1,debounce:500,label:`Manual range values`,hideLabel:!0,calculateValue:({options:e})=>r.calculateManualRanges(e?.numberClasses??7,`manual`,r.toRangesWithValue(e?.manualValues?.ranges)),toOptions:({options:e,value:t})=>({...e,manualValues:{...e.manualValues,ranges:r.toRangesWithVal(t)}})},visibleIf:({options:e})=>e?.colorsType===`manual`}]},e.createAxesOptionsGroup([{axis:`x`,role:`axis`,color:!0,label:!0,tickMode:!0},{axis:`y`,role:`axis`,color:!0,label:!0,tickMode:!0}],[{key:`sort.x.order`,control:{type:`picker`,label:`X-axis order`,default:`asc`,enum:[`asc`,`desc`]}},{key:`sort.y.order`,control:{type:`picker`,label:`Y-axis order`,default:`asc`,enum:[`asc`,`desc`]}}]),t.createInfoTooltipOptionsGroup()];exports.default=i;
|
|
2
2
|
//# sourceMappingURL=heat-table-options.config.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heat-table-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n createAxesOptionsGroup<HeatTableConfigContext>([\n { axis: 'x', role: 'axis', color: true, label: true, tickMode: true },\n { axis: 'y', role: 'axis', color: true, label: true, tickMode: true }\n ], [\n { key: 'sort.x.order', control: { type: 'picker', label: 'X-axis order', default: 'asc', enum: ['asc', 'desc'] } },\n { key: 'sort.y.order', control: { type: 'picker', label: 'Y-axis order', default: 'asc', enum: ['asc', 'desc'] } }\n ])\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heat-table-options.config.cjs","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n createAxesOptionsGroup<HeatTableConfigContext>([\n { axis: 'x', role: 'axis', color: true, label: true, tickMode: true },\n { axis: 'y', role: 'axis', color: true, label: true, tickMode: true }\n ], [\n { key: 'sort.x.order', control: { type: 'picker', label: 'X-axis order', default: 'asc', enum: ['asc', 'desc'] } },\n { key: 'sort.y.order', control: { type: 'picker', label: 'Y-axis order', default: 'asc', enum: ['asc', 'desc'] } }\n ]),\n createInfoTooltipOptionsGroup<HeatTableConfigContext>()\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createAxesOptionsGroup as e } from "../shared/utils/axis-options.config.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { createInfoTooltipOptionsGroup as t } from "../shared/utils/info-tooltip-options.config.js";
|
|
3
|
+
import { getColorMapKeys as n, getColorMaps as r } from "../shared/utils/color/color-palettes.js";
|
|
4
|
+
import { calculateManualRanges as i, toRangesWithVal as a, toRangesWithValue as o } from "../shared/utils/color-range-utils.js";
|
|
4
5
|
//#region src/lib/heat-table/heat-table-options.config.ts
|
|
5
|
-
var
|
|
6
|
+
var s = [
|
|
6
7
|
{
|
|
7
8
|
key: "general",
|
|
8
9
|
type: "group",
|
|
@@ -103,18 +104,18 @@ var o = [
|
|
|
103
104
|
"divergent",
|
|
104
105
|
"manual"
|
|
105
106
|
],
|
|
106
|
-
toOptions: ({ options: e, value:
|
|
107
|
-
let s =
|
|
107
|
+
toOptions: ({ options: e, value: t }) => {
|
|
108
|
+
let s = r()?.[e?.colorsClass]?.type, c = e?.colorsType ?? s ?? "sequential", l = e?.colorsClass ?? "PuBu", u = e?.numberClasses ?? 7, d = o(e?.manualValues?.ranges), f = c === "manual" ? "manual" : l, p = {
|
|
108
109
|
...e,
|
|
109
|
-
colorsType:
|
|
110
|
+
colorsType: t
|
|
110
111
|
};
|
|
111
|
-
if (
|
|
112
|
-
let e =
|
|
112
|
+
if (t === "manual") {
|
|
113
|
+
let e = i(u, f, d);
|
|
113
114
|
p.manualValues = {
|
|
114
115
|
...p.manualValues,
|
|
115
|
-
ranges:
|
|
116
|
+
ranges: a(e)
|
|
116
117
|
};
|
|
117
|
-
} else
|
|
118
|
+
} else t !== c && (p.colorsClass = n(t ?? "sequential")[0]), delete p.manualValues;
|
|
118
119
|
return p;
|
|
119
120
|
}
|
|
120
121
|
}
|
|
@@ -150,18 +151,18 @@ var o = [
|
|
|
150
151
|
],
|
|
151
152
|
parseValue: (e) => e?.toString() ?? "7",
|
|
152
153
|
toOptions: ({ options: e, value: t }) => {
|
|
153
|
-
let n = Number.parseInt(t, 10) || 7,
|
|
154
|
+
let n = Number.parseInt(t, 10) || 7, r = {
|
|
154
155
|
...e,
|
|
155
156
|
numberClasses: n
|
|
156
157
|
};
|
|
157
158
|
if (e?.colorsType === "manual") {
|
|
158
|
-
let n =
|
|
159
|
-
|
|
160
|
-
...
|
|
161
|
-
ranges:
|
|
159
|
+
let n = i(t, "manual", o(e?.manualValues?.ranges));
|
|
160
|
+
r.manualValues = {
|
|
161
|
+
...r.manualValues,
|
|
162
|
+
ranges: a(n)
|
|
162
163
|
};
|
|
163
164
|
}
|
|
164
|
-
return
|
|
165
|
+
return r;
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
},
|
|
@@ -172,18 +173,18 @@ var o = [
|
|
|
172
173
|
label: "Color palette",
|
|
173
174
|
hideLabel: !0,
|
|
174
175
|
default: ({ options: e }) => {
|
|
175
|
-
let
|
|
176
|
-
return
|
|
176
|
+
let t = r()?.[e?.colorsClass]?.type;
|
|
177
|
+
return n(e?.colorsType ?? t ?? "sequential")[0];
|
|
177
178
|
},
|
|
178
179
|
enum: ({ options: e }) => {
|
|
179
|
-
let
|
|
180
|
-
return
|
|
180
|
+
let t = r()?.[e?.colorsClass]?.type;
|
|
181
|
+
return n(e?.colorsType ?? t ?? "sequential");
|
|
181
182
|
},
|
|
182
183
|
toOptions: ({ options: e, value: t }) => {
|
|
183
|
-
let
|
|
184
|
+
let n = r()?.[e?.colorsClass]?.type, i = {
|
|
184
185
|
...e,
|
|
185
186
|
colorsClass: t,
|
|
186
|
-
colorsType:
|
|
187
|
+
colorsType: n ?? "sequential"
|
|
187
188
|
};
|
|
188
189
|
return delete i.manualValues, i;
|
|
189
190
|
}
|
|
@@ -198,12 +199,12 @@ var o = [
|
|
|
198
199
|
debounce: 500,
|
|
199
200
|
label: "Manual range values",
|
|
200
201
|
hideLabel: !0,
|
|
201
|
-
calculateValue: ({ options: e }) =>
|
|
202
|
+
calculateValue: ({ options: e }) => i(e?.numberClasses ?? 7, "manual", o(e?.manualValues?.ranges)),
|
|
202
203
|
toOptions: ({ options: e, value: t }) => ({
|
|
203
204
|
...e,
|
|
204
205
|
manualValues: {
|
|
205
206
|
...e.manualValues,
|
|
206
|
-
ranges:
|
|
207
|
+
ranges: a(t)
|
|
207
208
|
}
|
|
208
209
|
})
|
|
209
210
|
},
|
|
@@ -239,9 +240,10 @@ var o = [
|
|
|
239
240
|
default: "asc",
|
|
240
241
|
enum: ["asc", "desc"]
|
|
241
242
|
}
|
|
242
|
-
}])
|
|
243
|
+
}]),
|
|
244
|
+
t()
|
|
243
245
|
];
|
|
244
246
|
//#endregion
|
|
245
|
-
export {
|
|
247
|
+
export { s as default };
|
|
246
248
|
|
|
247
249
|
//# sourceMappingURL=heat-table-options.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heat-table-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n createAxesOptionsGroup<HeatTableConfigContext>([\n { axis: 'x', role: 'axis', color: true, label: true, tickMode: true },\n { axis: 'y', role: 'axis', color: true, label: true, tickMode: true }\n ], [\n { key: 'sort.x.order', control: { type: 'picker', label: 'X-axis order', default: 'asc', enum: ['asc', 'desc'] } },\n { key: 'sort.y.order', control: { type: 'picker', label: 'Y-axis order', default: 'asc', enum: ['asc', 'desc'] } }\n ])\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heat-table-options.config.js","names":[],"sources":["../../../../libs/dashboard-contents-types/src/lib/heat-table/heat-table-options.config.ts"],"sourcesContent":["import { type ColorsClassKey, type ColorValue, getColorMapKeys, getColorMaps } from '../shared/utils/color/color-palettes';\nimport { calculateManualRanges, toRangesWithVal, toRangesWithValue } from '../shared/utils/color-range-utils';\nimport { createAxesOptionsGroup } from '../shared/utils/axis-options.config';\nimport { createInfoTooltipOptionsGroup } from '../shared/utils/info-tooltip-options.config';\nimport type { OptionsConfig, OptionsConfigContext } from '../shared/utils/options-config.types';\nimport type { HeatTableViewOptions } from './heat-table-options';\n\ntype HeatTableConfigContext = OptionsConfigContext<HeatTableViewOptions>;\ntype HeatTableConfigValue<T> = HeatTableConfigContext & { value: T };\n\nconst heatTableOptionsConfig: OptionsConfig<HeatTableConfigContext> = [\n {\n key: 'general',\n type: 'group',\n open: true,\n children: [\n {\n key: 'display.title',\n control: {\n type: 'switch',\n label: 'Title',\n default: true\n }\n },\n {\n key: 'display.values',\n control: {\n type: 'switch',\n label: 'Show values',\n default: false\n }\n }\n ]\n },\n {\n key: 'heatTable',\n type: 'group',\n label: 'Heat table',\n open: true,\n children: [\n {\n key: 'heattable.opacity',\n control: {\n type: 'slider',\n label: 'Opacity',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01\n }\n },\n {\n key: 'heattable.rounding',\n control: {\n type: 'slider',\n label: 'Rounding',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.rounding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.rounding !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.rounding !== 'number' || typeof options?.heattable?.rounding !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, rounding: undefined }\n };\n\n delete newOptions.heattable.rounding;\n\n return { value: null, options: newOptions };\n }\n }\n },\n {\n key: 'heattable.spacing',\n control: {\n type: 'slider',\n label: 'Spacing',\n default: ({ theme }: HeatTableConfigContext) => theme?.itemSpecific?.padding,\n min: 0,\n max: 20,\n step: 1,\n extraLabel: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number') {\n return null;\n }\n\n if (typeof options?.heattable?.spacing !== 'number') {\n return 'auto';\n }\n\n return 'reset';\n },\n extraLabelHasClickAction: ({ options, theme }: HeatTableConfigContext) => {\n if (typeof theme?.itemSpecific?.padding !== 'number' || typeof options?.heattable?.spacing !== 'number') {\n return false;\n }\n\n return true;\n },\n extraLabelClickAction: ({ options }: HeatTableConfigContext) => {\n const newOptions = {\n ...options,\n heattable: { ...options.heattable, spacing: undefined }\n };\n\n delete newOptions.heattable.spacing;\n\n return { value: null, options: newOptions };\n }\n }\n },\n // TODO make consistent with other color-ranges (choropleth, spike-map, route-map)\n {\n key: 'colorsType',\n control: {\n type: 'picker',\n label: 'Colors type',\n default: 'sequential',\n enum: ['sequential', 'divergent', 'manual'],\n toOptions: ({ options, value }: HeatTableConfigValue<ColorValue['type'] | 'manual'>) => {\n const previousColorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const previousType: ColorValue['type'] | 'manual' = options?.colorsType ?? previousColorClassType ?? 'sequential';\n const previousColorsClassValue = options?.colorsClass ?? 'PuBu';\n const numberClassesValue = options?.numberClasses ?? 7;\n const previousRanges = toRangesWithValue(options?.manualValues?.ranges);\n const useColorsClassToGenerate = previousType === 'manual' ? 'manual' : previousColorsClassValue;\n\n const newOptions = {\n ...options,\n colorsType: value\n };\n\n if (value === 'manual') {\n const manualRanges = calculateManualRanges(numberClassesValue, useColorsClassToGenerate, previousRanges);\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n else {\n if (value !== previousType) {\n const newColorsClass = getColorMapKeys(value ?? 'sequential')[0];\n\n newOptions.colorsClass = newColorsClass;\n }\n\n delete newOptions.manualValues;\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'classification',\n control: {\n type: 'picker',\n label: 'Method',\n default: 'quantile',\n enum: ['interval', 'quantile', 'continuous']\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'numberClasses',\n control: {\n type: 'picker',\n label: 'Number of classes',\n default: '7',\n enum: ['3', '4', '5', '6', '7', '8', '9'],\n parseValue: (value: number) => value?.toString() ?? '7',\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const numValue = Number.parseInt(value, 10) || 7;\n\n const newOptions = { ...options, numberClasses: numValue };\n\n if (options?.colorsType === 'manual') {\n const manualRanges = calculateManualRanges(value, 'manual', toRangesWithValue(options?.manualValues?.ranges));\n\n newOptions.manualValues = {\n ...newOptions.manualValues,\n ranges: toRangesWithVal(manualRanges)\n };\n }\n\n return newOptions;\n }\n }\n },\n {\n key: 'colorsClass',\n control: {\n type: 'color-palette-picker',\n label: 'Color palette',\n hideLabel: true,\n default: ({ options }: HeatTableConfigContext) => {\n const colorMaps = getColorMaps();\n const colorClassType = colorMaps?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential')[0];\n },\n enum: ({ options }: HeatTableConfigContext) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n\n return getColorMapKeys(options?.colorsType ?? colorClassType ?? 'sequential');\n },\n toOptions: ({ options, value }: HeatTableConfigValue<string>) => {\n const colorClassType = getColorMaps()?.[options?.colorsClass as ColorsClassKey]?.type;\n const newOptions = {\n ...options,\n colorsClass: value,\n colorsType: colorClassType ?? 'sequential'\n };\n\n delete newOptions.manualValues;\n\n return newOptions;\n }\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType !== 'manual'\n },\n {\n key: 'manualValues.ranges',\n control: {\n type: 'color-range',\n editRangeSize: false,\n debounce: 500,\n label: 'Manual range values',\n hideLabel: true,\n calculateValue: ({ options }: HeatTableConfigContext) =>\n calculateManualRanges(options?.numberClasses ?? 7, 'manual', toRangesWithValue(options?.manualValues?.ranges)),\n toOptions: ({ options, value }: HeatTableConfigValue<ReturnType<typeof calculateManualRanges>>) => ({\n ...options,\n manualValues: {\n ...options.manualValues,\n ranges: toRangesWithVal(value)\n }\n })\n },\n visibleIf: ({ options }: HeatTableConfigContext) => options?.colorsType === 'manual'\n }\n ]\n },\n createAxesOptionsGroup<HeatTableConfigContext>([\n { axis: 'x', role: 'axis', color: true, label: true, tickMode: true },\n { axis: 'y', role: 'axis', color: true, label: true, tickMode: true }\n ], [\n { key: 'sort.x.order', control: { type: 'picker', label: 'X-axis order', default: 'asc', enum: ['asc', 'desc'] } },\n { key: 'sort.y.order', control: { type: 'picker', label: 'Y-axis order', default: 'asc', enum: ['asc', 'desc'] } }\n ]),\n createInfoTooltipOptionsGroup<HeatTableConfigContext>()\n];\n\nexport default heatTableOptionsConfig;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../shared/utils/color/color-palettes.cjs"),
|
|
1
|
+
const e=require("../shared/utils/info-tooltip-options.config.cjs"),t=require("../shared/utils/color/color-palettes.cjs"),n=require("../shared/utils/map-tile-providers.cjs");var r=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`display.legend`,control:{type:`switch`,label:`Legend`,default:!0}},{key:`enabled.zoom`,control:{type:`switch`,label:`Zoom`,default:!0}},{key:`enabled.pan`,control:{type:`switch`,label:`Pan`,default:!0}},{key:`enabled.pitchBearing`,control:{type:`switch`,label:`Pitch & Rotate`,default:!1}},{type:`divider`},{key:`vectorTileProvider`,control:{type:`picker`,label:`Map style`,default:`Basic`,enum:[`Basic`,`Bright`,`Dark`,`Fiord`,`Liberty`,`Pastel`,`Positron`,`Streets`,`Toner`,`Topographique`,`Voyager`,`No Tiles`],parseValue:e=>e?.name||`Basic`,toValue:e=>n.mapVectorTileProviders[e]??{}}}]},{key:`classification`,type:`group`,open:!0,children:[{key:`radius`,control:{type:`slider`,label:`Radius`,default:16,min:4,max:100,step:1}},{key:`numberClasses`,control:{type:`picker`,label:`Number of classes`,default:`5`,enum:[`3`,`4`,`5`,`6`,`7`,`8`,`9`],parseValue:e=>e?.toString()??`5`,toValue:e=>Number.parseInt(e,10)??5}},{key:`aggregationType`,control:{type:`picker`,label:`Hexbin aggregation`,default:`count`,enum:[`count`,`sum`,`mean`,`median`,`minimum`,`maximum`]}},{key:`classification`,control:{type:`picker`,label:`Color Method`,default:`interval`,enum:[`interval`,`quantile`]}}]},{key:`colors`,type:`group`,open:!0,children:[{key:`opacity`,control:{type:`slider`,label:`Opacity`,default:.85,min:0,max:1,step:.01}},{key:`colorsClassType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`sequential`,`divergent`],calculateValue:({options:e})=>e?.colorsClass===`manual`?`manual`:t.getColorMaps()?.[e?.colorsClass]?.type??`sequential`,toOptions:({options:e,value:n})=>{if(n===`manual`)return{...e,colorsClass:`manual`};let r=e.colorsClass;return n!==t.getColorMaps()?.[e?.colorsClass]?.type&&(r=t.getColorMapKeys(n??`sequential`)[0]),{...e,colorsClass:r}}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let n=t.getColorMaps()?.[e?.colorsClass]?.type;return t.getColorMapKeys(n??`sequential`)[0]},enum:({options:e})=>{let n=t.getColorMaps()?.[e?.colorsClass]?.type;return t.getColorMapKeys(n??`sequential`)}}}]},{key:`legend`,type:`group`,open:!1,children:[{key:`legend.type`,control:{type:`picker`,label:`Type`,default:`bar`,enum:[`bar`,`list`]},visibleIf:({options:e})=>e?.display?.legend!==!1},{key:`legend.size`,control:{type:`action-button-group`,label:`Size`,default:[`M`],values:{S:{buttonText:`S`,label:`Small`},M:{buttonText:`M`,label:`Medium`},L:{buttonText:`L`,label:`Large`}},selects:`single`},visibleIf:({options:e})=>e?.display?.legend!==!1},{key:`legend.position`,control:{type:`position-picker`,label:`Position`,default:`bottomLeft`,enum:[`topLeft`,`top`,`topRight`,`right`,`bottomRight`,`bottom`,`bottomLeft`,`left`]},visibleIf:({options:e})=>e?.display?.legend!==!1}]},e.createInfoTooltipOptionsGroup()];exports.default=r;
|
|
2
2
|
//# sourceMappingURL=hexbin-map-options.config.cjs.map
|