@cdc/core 4.25.8 → 4.25.10
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/components/AdvancedEditor/AdvancedEditor.tsx +29 -8
- package/components/DataTable/DataTable.tsx +56 -38
- package/components/DataTable/components/ChartHeader.tsx +44 -14
- package/components/DataTable/components/ExpandCollapse.tsx +10 -1
- package/components/DataTable/components/MapHeader.tsx +24 -13
- package/components/DataTable/data-table.css +6 -0
- package/components/DataTable/helpers/chartCellMatrix.tsx +11 -8
- package/components/DataTable/helpers/mapCellMatrix.tsx +19 -1
- package/components/DownloadButton.tsx +40 -14
- package/components/EditorPanel/components/MarkupHighlightedTextField.tsx +227 -0
- package/components/EditorPanel/components/MarkupVariablesEditor.tsx +411 -0
- package/components/EditorPanel/components/PanelMarkup.tsx +59 -0
- package/components/ErrorBoundary.jsx +3 -1
- package/components/Filters/Filters.tsx +27 -20
- package/components/Filters/components/Tabs.tsx +1 -0
- package/components/Legend/Legend.Gradient.tsx +3 -6
- package/components/LegendShape.tsx +121 -3
- package/components/MediaControls.tsx +51 -3
- package/components/PaletteConversionModal.tsx +87 -0
- package/components/PaletteSelector/DeveloperPaletteRollback.tsx +114 -0
- package/components/PaletteSelector/PaletteSelector.css +51 -0
- package/components/PaletteSelector/PaletteSelector.tsx +112 -0
- package/components/PaletteSelector/index.ts +2 -0
- package/components/RichTooltip/RichTooltip.tsx +1 -0
- package/components/Table/Table.tsx +3 -1
- package/components/_stories/BlurStrokeTest.stories.tsx +1 -1
- package/components/_stories/DataTable.stories.tsx +1 -1
- package/components/_stories/Filters.stories.tsx +1 -1
- package/components/_stories/Footnotes.stories.tsx +1 -1
- package/components/_stories/Inputs.stories.tsx +1 -1
- package/components/_stories/MultiSelect.stories.tsx +3 -3
- package/components/_stories/NestedDropdown.stories.tsx +1 -1
- package/components/_stories/Table.stories.tsx +1 -1
- package/components/elements/_stories/Button.stories.tsx +1 -1
- package/components/elements/_stories/Card.stories.tsx +1 -1
- package/components/inputs/InputToggle.tsx +2 -0
- package/components/managers/DataDesigner.tsx +10 -9
- package/components/managers/_stories/DataDesigner.stories.tsx +1 -1
- package/components/ui/Tooltip.tsx +2 -1
- package/components/ui/_stories/Accordion.stories.tsx +1 -1
- package/components/ui/_stories/ColorPaletteMigration.stories.mdx +275 -0
- package/components/ui/_stories/Colors.stories.tsx +330 -0
- package/components/ui/_stories/IconGallery.stories.tsx +316 -0
- package/components/ui/_stories/Title.stories.tsx +1 -1
- package/contexts/EditorContext.ts +18 -0
- package/contexts/editor.actions.ts +28 -0
- package/contexts/editor.reducer.ts +94 -0
- package/data/chartColorPalettes.ts +118 -0
- package/data/colorPalettes.ts +9 -0
- package/data/mapColorPalettes.ts +45 -0
- package/data/sharedPalettes.ts +50 -0
- package/dist/cove-main.css +14 -11
- package/dist/cove-main.css.map +1 -1
- package/generateViteConfig.js +80 -0
- package/helpers/addValuesToFilters.ts +2 -3
- package/helpers/cloneConfig.ts +31 -0
- package/helpers/configDataHelpers.ts +128 -0
- package/helpers/configHelpers.ts +27 -0
- package/helpers/constants.ts +5 -2
- package/helpers/coveUpdateWorker.ts +13 -3
- package/helpers/filterColorPalettes.ts +152 -0
- package/helpers/generateColorsArray.ts +13 -0
- package/helpers/getColorPaletteVersion.ts +33 -0
- package/helpers/getPaletteAccessor.ts +18 -0
- package/helpers/markupProcessor.ts +205 -0
- package/helpers/metrics/helpers.ts +42 -19
- package/helpers/metrics/types.ts +48 -9
- package/helpers/metrics/utils.ts +34 -0
- package/helpers/palettes/colorDistributions.ts +56 -0
- package/helpers/palettes/migratePaletteName.ts +150 -0
- package/helpers/palettes/standardizePaletteNames.ts +77 -0
- package/helpers/palettes/utils.ts +267 -0
- package/helpers/queryStringUtils.ts +13 -0
- package/helpers/testing.ts +345 -0
- package/helpers/tests/addValuesToFilters.test.ts +1 -2
- package/helpers/tests/generateColorsArray.test.ts +24 -0
- package/helpers/tests/markupProcessor.test.ts +538 -0
- package/helpers/tests/testStandaloneBuild.ts +44 -0
- package/helpers/useMarkupVariables.ts +31 -0
- package/helpers/vegaConfig.ts +0 -1
- package/helpers/ver/4.24.10.ts +2 -1
- package/helpers/ver/4.24.11.ts +2 -1
- package/helpers/ver/4.24.3.ts +2 -1
- package/helpers/ver/4.24.4.ts +2 -1
- package/helpers/ver/4.24.5.ts +2 -1
- package/helpers/ver/4.24.7.ts +2 -1
- package/helpers/ver/4.24.9.ts +2 -1
- package/helpers/ver/4.25.1.ts +2 -1
- package/helpers/ver/4.25.10.ts +36 -0
- package/helpers/ver/4.25.3.ts +2 -1
- package/helpers/ver/4.25.4.ts +2 -1
- package/helpers/ver/4.25.6.ts +2 -1
- package/helpers/ver/4.25.7.ts +2 -1
- package/helpers/ver/4.25.8.ts +2 -1
- package/helpers/ver/4.25.9.ts +293 -0
- package/helpers/ver/tests/4.25.10.test.ts +204 -0
- package/helpers/ver/tests/4.25.8.test.ts +1 -1
- package/helpers/ver/tests/4.25.9.test.ts +51 -0
- package/hooks/useColorPalette.ts +79 -0
- package/package.json +12 -4
- package/styles/_global.scss +7 -5
- package/styles/base.scss +8 -5
- package/styles/v2/components/button.scss +4 -3
- package/styles/v2/components/editor.scss +2 -1
- package/styles/v2/layout/_data-table.scss +3 -2
- package/styles/v2/themes/_color-definitions.scss +18 -17
- package/testBuild.js +0 -0
- package/testing-setup.js +32 -0
- package/types/MarkupInclude.ts +6 -1
- package/types/MarkupVariable.ts +19 -0
- package/types/VizFilter.ts +1 -0
- package/vitest.config.ts +16 -0
- package/components/ui/_stories/Colors.stories.mdx +0 -220
- package/components/ui/_stories/IconGallery.stories.mdx +0 -14
- package/data/colorPalettes.js +0 -171
- package/helpers/formatConfigBeforeSave.ts +0 -135
- package/helpers/tests/formatConfigBeforeSave.test.ts +0 -68
|
@@ -3,7 +3,8 @@ import packageJson from '../../package.json'
|
|
|
3
3
|
import {
|
|
4
4
|
COVE_VISUALIZATION_TYPES,
|
|
5
5
|
ANALYTICS_EVENT_ACTIONS,
|
|
6
|
-
ANALYTICS_EVENT_TYPES
|
|
6
|
+
ANALYTICS_EVENT_TYPES,
|
|
7
|
+
EventSpecifics
|
|
7
8
|
} from './types'
|
|
8
9
|
import { GetLabelForEvent } from './getLabelForEvent'
|
|
9
10
|
|
|
@@ -22,31 +23,53 @@ export const getPackageVersion = () => {
|
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Publishes an analytics event with the specified parameters.
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* @param {
|
|
28
|
-
* @param {
|
|
29
|
-
* @param {
|
|
26
|
+
* Format: APP|VIZTYPE_VIZSUBTYPE|VIZ_TITLE|INTERACTION_EVENT_NAME|INTERACTION_TYPE|SPECIFICS
|
|
27
|
+
*
|
|
28
|
+
* @param {Object} params - The parameters for the analytics event
|
|
29
|
+
* @param {string} params.app - The application name (e.g., 'COVE')
|
|
30
|
+
* @param {COVE_VISUALIZATION_TYPES} params.vizType - The visualization type (e.g., 'map', 'chart')
|
|
31
|
+
* @param {string} [params.vizSubType] - The visualization subtype (e.g., 'county', 'state', 'bar', 'line')
|
|
32
|
+
* @param {string} [params.vizTitle] - The title of the visualization
|
|
33
|
+
* @param {ANALYTICS_EVENT_TYPES} params.eventType - The interaction event name
|
|
34
|
+
* @param {ANALYTICS_EVENT_ACTIONS} [params.eventAction='unknown'] - The interaction type (e.g., 'click', 'hover')
|
|
35
|
+
* @param {string} [params.eventLabel] - The event label (typically config URL or interaction label)
|
|
36
|
+
* @param {string} [params.specifics] - Additional specifics about the event (structured as "key: value, key2: value2")
|
|
37
|
+
* @param {string} [params.version] - The version of the package (defaults to package.json version)
|
|
30
38
|
* @returns {void}
|
|
31
39
|
* @description This function is used to publish analytics events for various user interactions and system states.
|
|
32
40
|
*/
|
|
33
|
-
export const publishAnalyticsEvent = <T extends ANALYTICS_EVENT_TYPES>(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
export const publishAnalyticsEvent = <T extends ANALYTICS_EVENT_TYPES>({
|
|
42
|
+
app = 'cove',
|
|
43
|
+
vizType,
|
|
44
|
+
vizSubType,
|
|
45
|
+
vizTitle,
|
|
46
|
+
eventType,
|
|
47
|
+
eventAction = 'unknown',
|
|
48
|
+
eventLabel,
|
|
49
|
+
specifics,
|
|
50
|
+
version,
|
|
51
|
+
...additionalDetails
|
|
52
|
+
}: {
|
|
53
|
+
app?: string
|
|
54
|
+
vizType: COVE_VISUALIZATION_TYPES
|
|
55
|
+
vizSubType?: string
|
|
56
|
+
vizTitle?: string
|
|
57
|
+
eventType: T
|
|
58
|
+
eventAction?: ANALYTICS_EVENT_ACTIONS
|
|
59
|
+
eventLabel?: GetLabelForEvent<T>
|
|
60
|
+
specifics?: T extends keyof EventSpecifics ? EventSpecifics[T] : string
|
|
61
|
+
version?: string
|
|
62
|
+
[key: string]: any
|
|
63
|
+
}) => {
|
|
40
64
|
// Added check if we ever need to disable analytics
|
|
41
65
|
const ANALYTICS_POWERED_ON = true
|
|
42
66
|
if (!ANALYTICS_POWERED_ON) return
|
|
43
67
|
|
|
68
|
+
// Format: APP|VIZTYPE_VIZSUBTYPE|VIZ_TITLE|INTERACTION_EVENT_NAME|INTERACTION_TYPE|SPECIFICS
|
|
69
|
+
const vizTypeSubType = vizSubType ? `${vizType}_${vizSubType}` : vizType
|
|
70
|
+
const formattedEvent = `${app}|${vizTypeSubType}|${vizTitle || 'unknown'}|${eventType}|${eventAction}|${specifics || 'no details'}`
|
|
44
71
|
return publish('cove:analytics', {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
eventLabel,
|
|
48
|
-
component: visualizationType || 'unknown',
|
|
49
|
-
version: getPackageVersion() || 'unknown',
|
|
50
|
-
...(additionalDetails || {})
|
|
72
|
+
formattedEvent,
|
|
73
|
+
eventLabel
|
|
51
74
|
})
|
|
52
75
|
}
|
package/helpers/metrics/types.ts
CHANGED
|
@@ -2,12 +2,14 @@ export type COVE_VISUALIZATION_TYPES =
|
|
|
2
2
|
| 'map'
|
|
3
3
|
| 'chart'
|
|
4
4
|
| 'data-table'
|
|
5
|
+
| 'table'
|
|
5
6
|
| 'markup-include'
|
|
6
7
|
| 'waffle-chart'
|
|
7
8
|
| 'dashboard'
|
|
8
9
|
| 'filtered-text'
|
|
9
10
|
| 'table-filter'
|
|
10
11
|
| 'data-bite'
|
|
12
|
+
| 'navigation'
|
|
11
13
|
| 'unknown'
|
|
12
14
|
|
|
13
15
|
export type ANALYTICS_EVENT_ACTIONS =
|
|
@@ -16,28 +18,65 @@ export type ANALYTICS_EVENT_ACTIONS =
|
|
|
16
18
|
| 'toggle'
|
|
17
19
|
| 'none'
|
|
18
20
|
| 'keydown'
|
|
21
|
+
| 'keyboard'
|
|
19
22
|
| 'load'
|
|
20
23
|
| 'submit'
|
|
21
24
|
| 'change'
|
|
25
|
+
| 'hover'
|
|
22
26
|
| 'unknown'
|
|
23
27
|
|
|
24
28
|
export type LEGEND_TOGGLE_MODES = 'highlight' | 'isolate'
|
|
25
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Type-safe specifics for different event types
|
|
32
|
+
* The specifics field should contain structured key-value pairs formatted as strings
|
|
33
|
+
* Format: "key1: value1, key2: value2"
|
|
34
|
+
*/
|
|
35
|
+
export type EventSpecifics = {
|
|
36
|
+
// Map events
|
|
37
|
+
map_hover: `location: ${string}`
|
|
38
|
+
zoom_in: `zoom_level: ${number}` | `location: ${string}` | `zoom_level: ${number}, location: ${string}`
|
|
39
|
+
zoom_out: `zoom_level: ${number}` | `location: ${string}` | `zoom_level: ${number}, location: ${string}`
|
|
40
|
+
|
|
41
|
+
// Legend events
|
|
42
|
+
map_legend_item_toggled: `mode: ${LEGEND_TOGGLE_MODES}` | `mode: ${LEGEND_TOGGLE_MODES}, item: ${string}`
|
|
43
|
+
chart_legend_item_toggled: `mode: ${LEGEND_TOGGLE_MODES}` | `mode: ${LEGEND_TOGGLE_MODES}, item: ${string}`
|
|
44
|
+
|
|
45
|
+
// Table events
|
|
46
|
+
data_table_sort: `column: ${string}, order: ${'asc' | 'desc' | 'none'}`
|
|
47
|
+
|
|
48
|
+
// Filter events
|
|
49
|
+
dashboard_filter_changed: `key: ${string}, value: ${string}`
|
|
50
|
+
|
|
51
|
+
// Generic fallback for any event
|
|
52
|
+
[key: string]: string
|
|
53
|
+
}
|
|
54
|
+
|
|
26
55
|
export type ANALYTICS_EVENT_TYPES =
|
|
56
|
+
// Data actions
|
|
27
57
|
| 'data_downloaded'
|
|
28
|
-
| '
|
|
58
|
+
| 'expand_collapse_toggled' // alternative name for data_table_toggled
|
|
59
|
+
| 'data_table_sort'
|
|
29
60
|
| 'data_viewed'
|
|
61
|
+
| 'clicked_data_link_to_view'
|
|
62
|
+
| 'link_to_data_table_click'
|
|
63
|
+
|
|
64
|
+
// Filter events
|
|
30
65
|
| `${COVE_VISUALIZATION_TYPES}_filter_reset`
|
|
31
66
|
| `${COVE_VISUALIZATION_TYPES}_filter_applied`
|
|
32
67
|
| `${COVE_VISUALIZATION_TYPES}_filter_changed`
|
|
33
|
-
|
|
34
|
-
|
|
68
|
+
|
|
69
|
+
// Legend events
|
|
70
|
+
| `${COVE_VISUALIZATION_TYPES}_legend_item_toggled` // simplified with specifics for mode
|
|
35
71
|
| `${COVE_VISUALIZATION_TYPES}_legend_reset`
|
|
36
|
-
|
|
37
|
-
|
|
72
|
+
|
|
73
|
+
// Map-specific events
|
|
74
|
+
| `${COVE_VISUALIZATION_TYPES}_hover` // simplified with specifics for location
|
|
38
75
|
| `${COVE_VISUALIZATION_TYPES}_panned`
|
|
39
76
|
| `${COVE_VISUALIZATION_TYPES}_reset_zoom_level`
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
77
|
+
| `zoom_in` // simplified with specifics for zoom level and location
|
|
78
|
+
| `zoom_out` // simplified with specifics for zoom level and location
|
|
79
|
+
| `${COVE_VISUALIZATION_TYPES}_navigation_menu`
|
|
80
|
+
|
|
81
|
+
// Image/export events
|
|
82
|
+
| 'image_download' // generic image download event
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const getVizTitle = (config) => {
|
|
2
|
+
if (config?.type === 'dashboard') {
|
|
3
|
+
return String(config?.dashboard?.title).toLowerCase()
|
|
4
|
+
}
|
|
5
|
+
if (config?.title) {
|
|
6
|
+
return String(config.title).toLowerCase()
|
|
7
|
+
} else if (config?.general?.title) {
|
|
8
|
+
return String(config.general.title).toLowerCase()
|
|
9
|
+
} else {
|
|
10
|
+
return 'no title'
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const getVizSubType = config => {
|
|
15
|
+
if (config?.type === 'markup-include') {
|
|
16
|
+
return `${config?.contentEditor?.title}`
|
|
17
|
+
}
|
|
18
|
+
if (config?.general?.geoType) {
|
|
19
|
+
return `${config.general.geoType}`
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (config?.type === 'chart' && config?.visualizationType) {
|
|
23
|
+
// Convert chart visualization type to format: chart_subtype
|
|
24
|
+
// e.g., "Bar" -> "chart_bar", "Line" -> "chart_line"
|
|
25
|
+
const subtype = String(config.visualizationType).toLowerCase().replace(/\s+/g, '_')
|
|
26
|
+
return `${subtype}`
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (config?.type === 'chart') {
|
|
30
|
+
return 'chart'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { getVizTitle, getVizSubType }
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Chart color distributions for v2 9-color sequential palettes to improve contrast
|
|
2
|
+
// Similar to map distributions but optimized for chart legends
|
|
3
|
+
export const v2ColorDistribution = {
|
|
4
|
+
1: [4], // Middle color for single item
|
|
5
|
+
2: [0, 8], // First and middle
|
|
6
|
+
3: [0, 4, 8], // First, middle, last
|
|
7
|
+
4: [0, 2, 6, 8], // Evenly spaced
|
|
8
|
+
5: [0, 2, 4, 6, 8], // Well-distributed
|
|
9
|
+
6: [0, 1, 3, 5, 7, 8], // Good spacing
|
|
10
|
+
7: [0, 1, 2, 4, 6, 7, 8], // Skip middle-adjacent
|
|
11
|
+
8: [0, 1, 2, 3, 5, 6, 7, 8], // Skip one in middle
|
|
12
|
+
9: [0, 1, 2, 3, 4, 5, 6, 7, 8] // Use all colors
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Enhanced color distributions for divergent palettes to maximize contrast
|
|
16
|
+
// Prioritizes endpoints and avoids the neutral middle region
|
|
17
|
+
export const divergentColorDistribution = {
|
|
18
|
+
1: [4], // Neutral middle for single item
|
|
19
|
+
2: [1, 7], // Strong contrast from each end
|
|
20
|
+
3: [0, 4, 8], // Maximum endpoints plus neutral
|
|
21
|
+
4: [0, 2, 6, 8], // Well-spaced with emphasis on extremes
|
|
22
|
+
5: [0, 1, 4, 7, 8], // Skip adjacent to middle, emphasize ends
|
|
23
|
+
6: [0, 1, 3, 5, 7, 8], // Avoid immediate middle area
|
|
24
|
+
7: [0, 1, 2, 4, 6, 7, 8], // Skip one middle-adjacent
|
|
25
|
+
8: [0, 1, 2, 3, 5, 6, 7, 8], // Skip one in middle
|
|
26
|
+
9: [0, 1, 2, 3, 4, 5, 6, 7, 8] // Use all colors
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Color distribution optimized for colorblind-safe palette accessibility
|
|
30
|
+
// Maximizes perceptual differences for color vision deficiency
|
|
31
|
+
export const colorblindColorDistribution = {
|
|
32
|
+
1: [0], // Start with strongest color
|
|
33
|
+
2: [0, 4], // High contrast pair (orange, blue)
|
|
34
|
+
3: [0, 2, 4], // Orange, green, blue - maximum differentiation
|
|
35
|
+
4: [0, 1, 2, 4], // Add cyan for more separation
|
|
36
|
+
5: [0, 1, 2, 4, 5], // Add dark blue for depth
|
|
37
|
+
6: [0, 1, 2, 4, 5, 6], // Add pink for additional distinction
|
|
38
|
+
7: [0, 1, 2, 4, 5, 6, 8], // Add brown, skip black temporarily
|
|
39
|
+
8: [0, 1, 2, 4, 5, 6, 7, 8], // Add black for maximum contrast
|
|
40
|
+
9: [0, 1, 2, 3, 4, 5, 6, 7, 8] // Use all colors
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Basic color distribution for map v1 compatibility
|
|
44
|
+
// Simple distribution pattern for any palette length up to 10 items
|
|
45
|
+
export const mapV1ColorDistribution = {
|
|
46
|
+
1: [1],
|
|
47
|
+
2: [1, 3],
|
|
48
|
+
3: [1, 3, 5],
|
|
49
|
+
4: [0, 2, 4, 6],
|
|
50
|
+
5: [0, 2, 4, 6, 7],
|
|
51
|
+
6: [0, 2, 3, 4, 5, 7],
|
|
52
|
+
7: [0, 2, 3, 4, 5, 6, 7],
|
|
53
|
+
8: [0, 2, 3, 4, 5, 6, 7, 8],
|
|
54
|
+
9: [0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
55
|
+
10: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
56
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// Chart palette migration map
|
|
2
|
+
export const chartPaletteMigrationMap: Record<string, string> = {
|
|
3
|
+
yelloworangered: 'sequential_orange',
|
|
4
|
+
yelloworangebrown: 'sequential_orange',
|
|
5
|
+
orangered: 'sequential_orange',
|
|
6
|
+
yellowpurple: 'sequential_orange',
|
|
7
|
+
red: 'sequential_orange',
|
|
8
|
+
'Sequential Orange': 'sequential_orange',
|
|
9
|
+
'Sequential Orange Two': 'sequential_orange',
|
|
10
|
+
'sequential-orange(MPX)': 'sequential_orange',
|
|
11
|
+
'sequential-orange-(MPX)': 'sequential_orange',
|
|
12
|
+
pinkpurple: 'sequential_purple',
|
|
13
|
+
bluegreen: 'sequential_blue',
|
|
14
|
+
'sequential-blue': 'sequential_blue',
|
|
15
|
+
'sequential-blue-2-(MPX)': 'sequential_blue',
|
|
16
|
+
'sequential-blue-2(MPX)': 'sequential_blue',
|
|
17
|
+
'Sequential Blue': 'sequential_blue',
|
|
18
|
+
'sequential Blue Two': 'sequential_blue',
|
|
19
|
+
'sequential Blue Three': 'sequential_blue',
|
|
20
|
+
greenblue: 'sequential_green',
|
|
21
|
+
'Sequential Green': 'sequential_green',
|
|
22
|
+
qualitative1: 'qualitative_standard',
|
|
23
|
+
qualitative2: 'qualitative_standard',
|
|
24
|
+
qualitative3: 'qualitative_standard',
|
|
25
|
+
qualitative4: 'qualitative_standard',
|
|
26
|
+
colorblindsafe: 'qualitative_standard',
|
|
27
|
+
'qualitative-bold': 'qualitative_standard',
|
|
28
|
+
'qualitative-soft': 'qualitative_standard',
|
|
29
|
+
// Reverse palette migrations
|
|
30
|
+
yelloworangeredreverse: 'sequential_orangereverse',
|
|
31
|
+
yelloworangebrownreverse: 'sequential_orangereverse',
|
|
32
|
+
orangeredreverse: 'sequential_orangereverse',
|
|
33
|
+
yellowpurplereverse: 'sequential_orangereverse',
|
|
34
|
+
redreverse: 'sequential_orangereverse',
|
|
35
|
+
'Sequential Orangereverse': 'sequential_orangereverse',
|
|
36
|
+
'Sequential Orange Tworeverse': 'sequential_orangereverse',
|
|
37
|
+
'sequential-orange(MPX)reverse': 'sequential_orangereverse',
|
|
38
|
+
'sequential-orange-(MPX)reverse': 'sequential_orangereverse',
|
|
39
|
+
pinkpurplereverse: 'sequential_purplereverse',
|
|
40
|
+
bluegreenreverse: 'sequential_bluereverse',
|
|
41
|
+
'sequential-bluereverse': 'sequential_bluereverse',
|
|
42
|
+
'sequential-blue-2-(MPX)reverse': 'sequential_bluereverse',
|
|
43
|
+
'sequential-blue-2(MPX)reverse': 'sequential_bluereverse',
|
|
44
|
+
'Sequential Bluereverse': 'sequential_bluereverse',
|
|
45
|
+
'sequential Blue Tworeverse': 'sequential_bluereverse',
|
|
46
|
+
'sequential Blue Threereverse': 'sequential_bluereverse',
|
|
47
|
+
greenbluereverse: 'sequential_greenreverse',
|
|
48
|
+
'Sequential Greenreverse': 'sequential_greenreverse',
|
|
49
|
+
qualitative1reverse: 'qualitative_standardreverse',
|
|
50
|
+
qualitative2reverse: 'qualitative_standardreverse',
|
|
51
|
+
qualitative3reverse: 'qualitative_standardreverse',
|
|
52
|
+
qualitative4reverse: 'qualitative_standardreverse',
|
|
53
|
+
colorblindsafereverse: 'qualitative_standardreverse',
|
|
54
|
+
'qualitative-boldreverse': 'qualitative_standardreverse',
|
|
55
|
+
'qualitative-softreverse': 'qualitative_standardreverse'
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Map palette migration map
|
|
59
|
+
export const mapPaletteMigrationMap: Record<string, string> = {
|
|
60
|
+
sequential_yellow_orange_red: 'sequential_orange',
|
|
61
|
+
sequential_yellow_orange_brown: 'sequential_orange',
|
|
62
|
+
sequential_orange_red: 'sequential_orange',
|
|
63
|
+
sequential_orange_extended: 'sequential_orange',
|
|
64
|
+
sequential_pink_purple: 'sequential_purple',
|
|
65
|
+
divergent_yellow_purple: 'divergent_blue_purple',
|
|
66
|
+
sequential_blue_green: 'sequential_blue',
|
|
67
|
+
sequential_blue_extended: 'sequential_blue',
|
|
68
|
+
sequential_green_blue: 'sequential_teal',
|
|
69
|
+
sequential_red: 'sequential_orange',
|
|
70
|
+
qualitative_earth_tones: 'qualitative',
|
|
71
|
+
// Reverse palette migrations
|
|
72
|
+
sequential_yellow_orange_redreverse: 'sequential_orangereverse',
|
|
73
|
+
sequential_yellow_orange_brownreverse: 'sequential_orangereverse',
|
|
74
|
+
sequential_orange_redreverse: 'sequential_orangereverse',
|
|
75
|
+
sequential_orange_extendedreverse: 'sequential_orangereverse',
|
|
76
|
+
sequential_pink_purplereverse: 'sequential_purplereverse',
|
|
77
|
+
divergent_yellow_purplereverse: 'divergent_blue_purplereverse',
|
|
78
|
+
sequential_blue_greenreverse: 'sequential_bluereverse',
|
|
79
|
+
sequential_blue_extendedreverse: 'sequential_bluereverse',
|
|
80
|
+
sequential_green_bluereverse: 'sequential_tealreverse',
|
|
81
|
+
sequential_redreverse: 'sequential_orangereverse',
|
|
82
|
+
qualitative_earth_tonesreverse: 'qualitativereverse',
|
|
83
|
+
'qualitative_bold': 'qualitative_standard',
|
|
84
|
+
'qualitative_soft': 'qualitative_standard',
|
|
85
|
+
'qualitative_boldreverse': 'qualitative_standardreverse',
|
|
86
|
+
'qualitative_softreverse': 'qualitative_standardreverse',
|
|
87
|
+
'qualitative1': 'qualitative_standard',
|
|
88
|
+
'qualitative2': 'qualitative_standard',
|
|
89
|
+
'qualitative3': 'qualitative_standard',
|
|
90
|
+
'qualitative4': 'qualitative_standard',
|
|
91
|
+
'colorblindsafe': 'qualitative_standard',
|
|
92
|
+
'qualitative1reverse': 'qualitative_standardreverse',
|
|
93
|
+
'qualitative2reverse': 'qualitative_standardreverse',
|
|
94
|
+
'qualitative3reverse': 'qualitative_standardreverse',
|
|
95
|
+
'qualitative4reverse': 'qualitative_standardreverse',
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Two-color palette migration map (v1 to v2)
|
|
99
|
+
export const twoColorPaletteMigrationMap: Record<string, string> = {
|
|
100
|
+
// Monochrome palettes → divergent_blue_purple
|
|
101
|
+
'monochrome-1': 'divergent_blue_purple',
|
|
102
|
+
'monochrome-2': 'divergent_blue_purple',
|
|
103
|
+
'monochrome-3': 'divergent_blue_purple',
|
|
104
|
+
'monochrome-4': 'divergent_blue_purple',
|
|
105
|
+
|
|
106
|
+
// Warm palettes → divergent_green_orange
|
|
107
|
+
'monochrome-5': 'divergent_green_orange',
|
|
108
|
+
'warm-1': 'divergent_green_orange',
|
|
109
|
+
|
|
110
|
+
// Cool palettes → divergent_blue_cyan
|
|
111
|
+
'cool-1': 'divergent_blue_cyan',
|
|
112
|
+
'cool-2': 'divergent_blue_cyan',
|
|
113
|
+
'cool-3': 'divergent_blue_cyan',
|
|
114
|
+
'cool-4': 'divergent_blue_cyan',
|
|
115
|
+
'cool-5': 'divergent_blue_cyan',
|
|
116
|
+
|
|
117
|
+
// Complementary palettes → divergent_blue_orange
|
|
118
|
+
'complementary-1': 'divergent_blue_orange',
|
|
119
|
+
'complementary-2': 'divergent_blue_orange',
|
|
120
|
+
'complementary-3': 'divergent_blue_orange',
|
|
121
|
+
'complementary-4': 'divergent_blue_orange',
|
|
122
|
+
'complementary-5': 'divergent_blue_orange',
|
|
123
|
+
|
|
124
|
+
// Reverse palette migrations
|
|
125
|
+
'monochrome-1reverse': 'divergent_blue_purplereverse',
|
|
126
|
+
'monochrome-2reverse': 'divergent_blue_purplereverse',
|
|
127
|
+
'monochrome-3reverse': 'divergent_blue_purplereverse',
|
|
128
|
+
'monochrome-4reverse': 'divergent_blue_purplereverse',
|
|
129
|
+
'monochrome-5reverse': 'divergent_green_orangereverse',
|
|
130
|
+
'warm-1reverse': 'divergent_green_orangereverse',
|
|
131
|
+
'cool-1reverse': 'divergent_blue_cyanreverse',
|
|
132
|
+
'cool-2reverse': 'divergent_blue_cyanreverse',
|
|
133
|
+
'cool-3reverse': 'divergent_blue_cyanreverse',
|
|
134
|
+
'cool-4reverse': 'divergent_blue_cyanreverse',
|
|
135
|
+
'cool-5reverse': 'divergent_blue_cyanreverse',
|
|
136
|
+
'complementary-1reverse': 'divergent_blue_orangereverse',
|
|
137
|
+
'complementary-2reverse': 'divergent_blue_orangereverse',
|
|
138
|
+
'complementary-3reverse': 'divergent_blue_orangereverse',
|
|
139
|
+
'complementary-4reverse': 'divergent_blue_orangereverse',
|
|
140
|
+
'complementary-5reverse': 'divergent_blue_orangereverse'
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Combined palette migration map for backward compatibility
|
|
144
|
+
export const paletteMigrationMap: Record<string, string> = {
|
|
145
|
+
...chartPaletteMigrationMap,
|
|
146
|
+
...mapPaletteMigrationMap,
|
|
147
|
+
...twoColorPaletteMigrationMap
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Rename Palettes
|
|
2
|
+
export const newMapPaletteNames = {
|
|
3
|
+
'yelloworangered': 'sequential_yellow_orange_red',
|
|
4
|
+
'yelloworangebrown': 'sequential_yellow_orange_brown',
|
|
5
|
+
'yelloworangebrownreverse': 'sequential_yellow_orange_brownreverse',
|
|
6
|
+
'pinkpurple': 'sequential_pink_purple',
|
|
7
|
+
'pinkpurplereverse': 'sequential_pink_purplereverse',
|
|
8
|
+
'bluegreen': 'sequential_blue_green',
|
|
9
|
+
'bluegreenreverse': 'sequential_blue_greenreverse',
|
|
10
|
+
'orangered': 'sequential_orange_red',
|
|
11
|
+
'orangeredreverse': 'sequential_orange_redreverse',
|
|
12
|
+
'red': 'sequential_red',
|
|
13
|
+
'redreverse': 'sequential_red_reverse',
|
|
14
|
+
'greenblue': 'sequential_green_blue',
|
|
15
|
+
'greenbluereverse': 'sequential_green_bluereverse',
|
|
16
|
+
'yelloworangeredreverse': 'sequential_yellow_orange_redreverse',
|
|
17
|
+
'yellowpurple': 'divergent_yellow_purple',
|
|
18
|
+
'yellowpurplereverse': 'divergent_yellow_purplereverse',
|
|
19
|
+
'qualitative1': 'qualitative1',
|
|
20
|
+
'qualitative2': 'qualitative2',
|
|
21
|
+
'qualitative3': 'qualitative3',
|
|
22
|
+
'qualitative4': 'qualitative4',
|
|
23
|
+
'qualitative9': 'qualitative9',
|
|
24
|
+
'sequential-blue-2(MPX)': 'sequential_blue_extended',
|
|
25
|
+
'sequential-blue-2(MPX)reverse': 'sequential_blue_extendedreverse',
|
|
26
|
+
'sequential-orange(MPX)': 'sequential_orange_extended',
|
|
27
|
+
'sequential-orange(MPX)reverse': 'sequential_orange_extendedreverse',
|
|
28
|
+
'colorblindsafe': 'colorblindsafe',
|
|
29
|
+
'qualitative1reverse': 'qualitative1reverse',
|
|
30
|
+
'qualitative2reverse': 'qualitative2reverse',
|
|
31
|
+
'qualitative3reverse': 'qualitative3reverse',
|
|
32
|
+
'qualitative4reverse': 'qualitative4reverse',
|
|
33
|
+
'qualitative9reverse': 'qualitative9reverse',
|
|
34
|
+
'colorblindsafereverse': 'colorblindsafereverse',
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const newChartPaletteNames = {
|
|
38
|
+
'qualitative-bold': 'qualitative_bold',
|
|
39
|
+
'qualitative-soft': 'qualitative_soft',
|
|
40
|
+
'qualitative-standard': 'qualitative_standard',
|
|
41
|
+
'sequential-blue': 'sequential_blue',
|
|
42
|
+
'sequential-blue-2-(MPX)': 'sequential_blue_extended',
|
|
43
|
+
'sequential-orange': 'sequential_orange',
|
|
44
|
+
'sequential-orange-(MPX)': 'sequential_orange_extended',
|
|
45
|
+
'sequential-green': 'sequential_green',
|
|
46
|
+
'sequential-purple': 'sequential_purple',
|
|
47
|
+
'sequential-teal': 'sequential_teal',
|
|
48
|
+
'divergent-bluecyan': 'divergent_blue_cyan',
|
|
49
|
+
'divergent-bluepurple': 'divergent_blue_purple',
|
|
50
|
+
'divergent-greenorange': 'divergent_green_orange',
|
|
51
|
+
'divergent-blueorange': 'divergent_blue_orange',
|
|
52
|
+
'qualitative1': 'qualitative1',
|
|
53
|
+
'qualitative2': 'qualitative2',
|
|
54
|
+
'qualitative3': 'qualitative3',
|
|
55
|
+
'qualitative4': 'qualitative4',
|
|
56
|
+
'colorblindsafe': 'colorblindsafe',
|
|
57
|
+
// Reverse variants
|
|
58
|
+
'qualitative-boldreverse': 'qualitative_boldreverse',
|
|
59
|
+
'qualitative-softreverse': 'qualitative_softreverse',
|
|
60
|
+
'qualitative-standardreverse': 'qualitative_standardreverse',
|
|
61
|
+
'sequential-bluereverse': 'sequential_bluereverse',
|
|
62
|
+
'sequential-blue-2-(MPX)reverse': 'sequential_blue_extendedreverse',
|
|
63
|
+
'sequential-orangereverse': 'sequential_orangereverse',
|
|
64
|
+
'sequential-orange-(MPX)reverse': 'sequential_orange_extendedreverse',
|
|
65
|
+
'sequential-greenreverse': 'sequential_greenreverse',
|
|
66
|
+
'sequential-purplereverse': 'sequential_purplereverse',
|
|
67
|
+
'sequential-tealreverse': 'sequential_tealreverse',
|
|
68
|
+
'divergent-bluecyanreverse': 'divergent_blue_cyanreverse',
|
|
69
|
+
'divergent-bluepurplereverse': 'divergent_blue_purplereverse',
|
|
70
|
+
'divergent-greenorangereverse': 'divergent_green_orangereverse',
|
|
71
|
+
'divergent-blueorangereverse': 'divergent_blue_orangereverse',
|
|
72
|
+
'qualitative1reverse': 'qualitative1reverse',
|
|
73
|
+
'qualitative2reverse': 'qualitative2reverse',
|
|
74
|
+
'qualitative3reverse': 'qualitative3reverse',
|
|
75
|
+
'qualitative4reverse': 'qualitative4reverse',
|
|
76
|
+
'colorblindsafereverse': 'colorblindsafereverse'
|
|
77
|
+
}
|