@cdc/core 4.25.11 → 4.26.2
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/.claude/agents/qa-test-developer.md +126 -0
- package/CLAUDE.local.md +67 -0
- package/_stories/Gallery.Charts.stories.tsx +300 -0
- package/_stories/Gallery.DataBite.stories.tsx +79 -0
- package/_stories/Gallery.Maps.stories.tsx +239 -0
- package/_stories/Gallery.WaffleChart.stories.tsx +187 -0
- package/_stories/PageART.stories.tsx +193 -0
- package/_stories/PageBRFSS.stories.tsx +294 -0
- package/_stories/PageCancerRegistries.stories.tsx +199 -0
- package/_stories/PageEasternEquineEncephalitis.stories.tsx +216 -0
- package/_stories/PageExcessiveAlcoholUse.stories.tsx +201 -0
- package/_stories/PageMaternalMortality.stories.tsx +193 -0
- package/_stories/PageOralHealth.stories.tsx +201 -0
- package/_stories/PageRespiratory.stories.tsx +332 -0
- package/_stories/PageSmokingTobacco.stories.tsx +200 -0
- package/_stories/PageStateDiabetesProfiles.stories.tsx +201 -0
- package/_stories/PageWastewater.stories.tsx +477 -0
- package/_stories/VegaImport.stories.tsx +401 -0
- package/_stories/vega-fixtures/bars-with-line.json +444 -0
- package/_stories/vega-fixtures/bars.json +58 -0
- package/_stories/vega-fixtures/combo-bar-rolling-mean.json +88 -0
- package/_stories/vega-fixtures/combo.json +68 -0
- package/_stories/vega-fixtures/grouped-horizontal-bars.json +83 -0
- package/_stories/vega-fixtures/grouped-horizontal-bars2.json +231 -0
- package/_stories/vega-fixtures/horizontal-bar.json +427 -0
- package/_stories/vega-fixtures/horizontal-bars-with-bad-colors.json +197 -0
- package/_stories/vega-fixtures/horizontal-bars2.json +58 -0
- package/_stories/vega-fixtures/lines.json +227 -0
- package/_stories/vega-fixtures/measles-bars.json +348 -0
- package/_stories/vega-fixtures/measles-map.json +11101 -0
- package/_stories/vega-fixtures/measles-stacked-bars.json +2147 -0
- package/_stories/vega-fixtures/multi-dataset.json +255 -0
- package/_stories/vega-fixtures/no-data.json +14 -0
- package/_stories/vega-fixtures/pie-chart.json +94 -0
- package/_stories/vega-fixtures/repeat-spec.json +47 -0
- package/_stories/vega-fixtures/stacked-area.json +222 -0
- package/_stories/vega-fixtures/stacked-bar-with-rect.json +3412 -0
- package/_stories/vega-fixtures/stacked-bars-with-line.json +364 -0
- package/_stories/vega-fixtures/stacked-bars.json +212 -0
- package/_stories/vega-fixtures/stacked-horizontal-bars.json +140 -0
- package/_stories/vega-fixtures/warning-combo.json +59 -0
- package/_stories/vega-fixtures/warning-scatter-and-line.json +1182 -0
- package/assets/icon-chart-area.svg +1 -0
- package/assets/icon-chart-radar.svg +23 -0
- package/assets/icon-magnifying-glass.svg +5 -0
- package/assets/icon-warming-stripes.svg +13 -0
- package/assets/logo2.svg +31 -0
- package/components/AdvancedEditor/AdvancedEditor.tsx +4 -0
- package/components/AdvancedEditor/EmbedEditor.tsx +513 -0
- package/components/ComboBox/ComboBox.tsx +345 -0
- package/components/ComboBox/combobox.styles.css +185 -0
- package/components/ComboBox/index.ts +1 -0
- package/components/CustomColorsEditor/CustomColorsEditor.tsx +3 -10
- package/components/DataTable/DataTable.tsx +132 -58
- package/components/DataTable/data-table.css +216 -215
- package/components/DataTable/helpers/getSeriesName.ts +6 -0
- package/components/DataTable/helpers/mapCellMatrix.tsx +14 -6
- package/components/EditorPanel/ColumnsEditor.tsx +37 -19
- package/components/EditorPanel/DataTableEditor.tsx +51 -25
- package/components/EditorPanel/EditorPanel.styles.css +16 -0
- package/components/EditorPanel/EditorPanel.tsx +144 -0
- package/components/EditorPanel/EditorPanelDispatch.tsx +75 -0
- package/components/EditorPanel/FieldSetWrapper.tsx +66 -23
- package/components/EditorPanel/Inputs.tsx +33 -7
- package/components/EditorPanel/VizFilterEditor/NestedDropdownEditor.tsx +14 -6
- package/components/EditorPanel/VizFilterEditor/VizFilterEditor.tsx +240 -175
- package/components/EditorPanel/VizFilterEditor/components/FilterOrder.tsx +33 -29
- package/components/EditorPanel/sections/VisualSection.tsx +169 -0
- package/components/Filters/Filters.tsx +31 -5
- package/components/Filters/helpers/getNestedOptions.ts +2 -1
- package/components/Filters/helpers/handleSorting.ts +1 -1
- package/components/Layout/components/Sidebar/components/sidebar.styles.scss +84 -2
- package/components/Layout/components/Visualization/index.tsx +27 -1
- package/components/Layout/components/Visualization/visualizations.scss +7 -0
- package/components/Legend/Legend.Gradient.tsx +1 -1
- package/components/MediaControls.tsx +53 -28
- package/components/_stories/CustomColorsEditor.stories.tsx +37 -0
- package/components/_stories/DataTable.stories.tsx +1 -0
- package/components/ui/Icon.tsx +3 -1
- package/components/ui/Title/index.tsx +30 -2
- package/components/ui/Title/title.styles.css +42 -0
- package/data/colorPalettes.ts +18 -5
- package/data/mapColorPalettes.ts +10 -0
- package/devTemplate/dev.js +235 -0
- package/devTemplate/index.html +30 -0
- package/devTemplate/preview.html +1503 -0
- package/devTemplate/sidebar.css +151 -0
- package/dist/cove-main.css +2803 -4448
- package/dist/cove-main.css.map +1 -1
- package/generateViteConfig.js +118 -2
- package/helpers/DataTransform.ts +1 -5
- package/helpers/addValuesToFilters.ts +6 -1
- package/helpers/cove/date.ts +33 -1
- package/helpers/cove/string.ts +29 -0
- package/helpers/coveUpdateWorker.ts +21 -12
- package/helpers/embed/embedCodeGenerator.ts +80 -0
- package/helpers/embed/embedHelper.js +158 -0
- package/helpers/embed/filterUtils.ts +121 -0
- package/helpers/embed/index.ts +21 -0
- package/helpers/embed/urlValidation.ts +119 -0
- package/helpers/filterVizData.ts +6 -1
- package/helpers/getFileExtension.ts +0 -6
- package/helpers/getUniqueValues.ts +19 -0
- package/helpers/hashObj.ts +25 -0
- package/helpers/isRightAlignedTableValue.js +5 -0
- package/helpers/metrics/helpers.ts +1 -0
- package/helpers/metrics/types.ts +3 -0
- package/helpers/palettes/colorDistributions.ts +1 -1
- package/helpers/palettes/utils.ts +12 -12
- package/helpers/parseCsvWithQuotes.ts +15 -14
- package/helpers/pivotData.ts +2 -2
- package/helpers/prepareScreenshot.ts +288 -0
- package/helpers/queryStringUtils.ts +29 -0
- package/helpers/testing.ts +44 -0
- package/helpers/tests/DataTransform.test.ts +125 -0
- package/helpers/tests/date.test.ts +64 -0
- package/helpers/tests/prepareScreenshot.test.ts +414 -0
- package/helpers/tests/queryStringUtils.test.ts +381 -0
- package/helpers/tests/testStandaloneBuild.ts +23 -5
- package/helpers/useDataVizClasses.ts +0 -1
- package/helpers/vegaConfig.ts +1 -1
- package/helpers/vegaConfigImport.ts +160 -0
- package/helpers/ver/4.26.1.ts +80 -0
- package/helpers/ver/4.26.2.ts +84 -0
- package/helpers/ver/tests/4.26.1.test.ts +105 -0
- package/helpers/ver/tests/4.26.2.test.ts +298 -0
- package/helpers/viewports.ts +2 -0
- package/hooks/useDataColumns.ts +63 -0
- package/hooks/useFilterManagement.ts +94 -0
- package/hooks/useLegendSeparators.ts +26 -0
- package/hooks/useListManagement.ts +192 -0
- package/package.json +29 -33
- package/styles/_button-section.scss +0 -3
- package/styles/v2/components/editor.scss +9 -9
- package/styles/v2/utils/_grid.scss +8 -3
- package/types/Annotation.ts +10 -11
- package/types/Axis.ts +1 -0
- package/types/ForecastingSeriesKey.ts +1 -0
- package/types/General.ts +2 -0
- package/types/MarkupInclude.ts +1 -0
- package/types/Palette.ts +21 -0
- package/types/Series.ts +3 -0
- package/types/Table.ts +1 -0
- package/types/Visualization.ts +7 -0
- package/types/VizFilter.ts +1 -0
- package/LICENSE +0 -201
- package/_stories/StoryRenderingTests.stories.tsx +0 -164
package/dist/cove-main.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../styles/_reset.scss","../styles/_global-variables.scss","../styles/filters.scss","../styles/base.scss","../styles/_global.scss","../styles/_variables.scss","../styles/_button-section.scss","../styles/_series-list.scss","../styles/heading-colors.scss","../styles/v2/themes/_color-definitions.scss","../styles/_common-components.css","../styles/v2/components/ui/tooltip.scss","../styles/v2/utils/_align.scss","../styles/v2/utils/_animations.scss","../styles/v2/utils/_grid.scss","../styles/v2/base/_general.scss","../styles/v2/base/_heading.scss","../styles/v2/base/_file-selector.scss","../styles/v2/main.scss","../styles/v2/layout/_alert.scss","../styles/v2/layout/_component.scss","../styles/v2/layout/_progression.scss","../styles/v2/utils/_mixins.scss","../styles/v2/layout/_tooltip.scss","../styles/v2/utils/_breakpoints.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAoEE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;AAAA;AAEE;AAAA;EAEA;AAEA;AAAA;EAEA;AAEA;AAAA;EAEA;AAEA;AAAA;EAEA;;AAGF;AACE;EACA;;AAGF;AACE;AAAA;EAEA;;;AC9CF;EAEI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AAON;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC3GA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;;AAIA;EACE;EACA;;AAIJ;EAEE;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;;AAOF;EACE;EACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtJN;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EAEA;EACA;EACA;;ACpBF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE,kBC/EE;EDgFF;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,YC5IG;ED6IH;EACA;EACA;EACA;;AAGF;EACE,YCnJW;EDoJX;EACA;;AAGF;EACE;;AAGF;EACE;EACA,OC/JG;EDgKH;;AAEA;EACE;;AAIJ;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE,kBC3LK;ED4LL,cC5LK;;AD8LL;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAC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AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;;AC7KR;AACA;AAEA;AACA;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AACA;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;AACA;AACA;EACE;EACA;EACA;EACA;EACA;;;AC5CF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOA;AAAA;EACE;;AAKA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAKJ;AAAA;AAAA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGE;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;EACE;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIF;AAAA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;AAAA;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;EACE;EACA;;AAIJ;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;;AAGE;EACE;EACA;;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;;AChJJ;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;ACJN;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AC1BJ;EACE;EACA;;;AA5BE;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAVF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAQF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAeJ;EAnCE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAyBJ;EAnCE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAyBJ;EAnCE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAyBJ;EAnCE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAVF;IACE;;EAEF;IACE;;EAEF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AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AA3CJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;;AASI;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;;AAUF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AA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AAA;AAAA;AAAA;AAAA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAUF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AApCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAEF;EACE;;AM3KR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONyKU;EMxKV;;AAEA;EACE;EACA;EACA;EACA,ONsKS;;AMnKX;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AC/BJ;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AClBF;EACE;EACA;EACA;EACA,ORmLW;EQlLX;EACA;EACA;EACA;;AAEA;EACE,kBR0KW;;AQvKb;EACE;EACA,ORoKG;EQnKH;;ACdJ;EAEE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AClDJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AClCJ;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE,YXuKW;;AWnKf;EACE;;AClBF;ECAE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EDRA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AEzER;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA,OAhBmB;EAiBnB,kBAlBgB;EAmBhB;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAMJ;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;ACxFA;ENeA","file":"cove-main.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../styles/utils/_properties.scss","../styles/base/_reset.scss","../styles/base.scss","../styles/_global.scss","../styles/_button-section.scss","../styles/_series-list.scss","../styles/heading-colors.scss","../components/ui/tooltip.scss","../styles/utils/_accessibility.scss","../styles/utils/_align.scss","../styles/utils/_animations.scss","../styles/utils/_grid.scss","../styles/themes/_color-definitions.scss","../styles/main.scss","../styles/layout/_alert.scss","../styles/layout/_component.scss","../styles/layout/_progression.scss","../styles/utils/_mixins.scss","../styles/layout/_tooltip.scss","../styles/utils/_breakpoints.scss"],"names":[],"mappings":";AAqFE;EAEI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AAON;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AC1HF;AAAA;AAAA;EAGE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUE;;;AAGF;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EAGE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;IACA;;;ACpEJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA+DE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;ACtHJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ACvNF;EACE;EACA;EACA;;AAEA;EACE;;AAEF;EACE;;AAKJ;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAMF;EACE;EACA;;AAEF;EACE;;ACjCJ;EAEE;EACA;;AAIS;EACP,YAHO;;;AAMA;EACP,eAPO;;;AAUT;EACE;;AAEA;EACE;;AAIJ;EACE,aAnBO;EAoBP,cApBO;EAqBP;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA,cA3CO;EA4CP,aA5CO;EA6CP;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;;AAEA;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AHuCJ;EACE;;;AI9HF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;AAEF;AAAA;EACE;EACA;;;AC3CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOA;AAAA;EACE;;AAKA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAKJ;AAAA;AAAA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGE;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;EACE;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIF;AAAA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;AAAA;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;EACE;EACA;;AAIJ;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;;AAGE;EACE;EACA;;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;;AP9DN;EAEI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AAON;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AQxHF;AAAA;EAEE;EACA;EACA;;;ACHE;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;ACJN;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;ACrBJ;EACE;EACA;;;AAjCE;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAbF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AASF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAgBJ;EAxCE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AA2BJ;EAxCE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AA2BJ;EAxCE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AA2BJ;EAxCE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AA2BJ;EAxCE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAbF;IACE;;EAGF;IACE;;EAGF;IACE;;EA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rCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AArCF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AZpFN;EAEI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;AAON;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AC1HF;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAUE;;AAGF;AAAA;EAEE;;AAGF;EACE;;AAGF;EAGE;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;IACE;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;IACA;;;ACpEJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA+DE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;ACtHJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ACvNF;EACE;EACA;EACA;;AAEA;EACE;;AAEF;EACE;;AAKJ;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAMF;EACE;EACA;;AAEF;EACE;;ACjCJ;EAEE;EACA;;AAIS;EACP,YAHO;;;AAMA;EACP,eAPO;;;AAUT;EACE;;AAEA;EACE;;AAIJ;EACE,aAnBO;EAoBP,cApBO;EAqBP;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA,cA3CO;EA4CP,aA5CO;EA6CP;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;;AAEA;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AHuCJ;EACE;;AW7HJ;EAEE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AClDJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AClCJ;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE,YHmKW;;AG/Jf;EACE;;AClBF;ECAE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EDRA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AEzER;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA,OAhBmB;EAiBnB,kBAlBgB;EAmBhB;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAKF;EACE;;AAGF;EACE;;AAMJ;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;ACxFA;ENeA","file":"cove-main.css"}
|
package/generateViteConfig.js
CHANGED
|
@@ -5,6 +5,7 @@ import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
|
|
5
5
|
import svgr from 'vite-plugin-svgr' // Svg Support
|
|
6
6
|
import dsv from '@rollup/plugin-dsv' // CSV Support
|
|
7
7
|
import dns from 'dns' // nodeJS
|
|
8
|
+
import fs from 'fs'
|
|
8
9
|
import * as path from 'path'
|
|
9
10
|
import { fileURLToPath } from 'url'
|
|
10
11
|
|
|
@@ -15,10 +16,116 @@ dns.setDefaultResultOrder('verbatim')
|
|
|
15
16
|
const __filename = fileURLToPath(import.meta.url)
|
|
16
17
|
const __dirname = path.dirname(__filename)
|
|
17
18
|
|
|
19
|
+
// Path to dev template files
|
|
20
|
+
const devTemplatePath = path.join(__dirname, 'devTemplate')
|
|
21
|
+
|
|
22
|
+
// Default editor padding CSS - can be overridden by passing custom CSS to devOptions
|
|
23
|
+
// Dashboard overrides this with .cdc-open-viz-module.type-dashboard:not(.isDashboardEditor)
|
|
24
|
+
const DEFAULT_PACKAGE_CSS = `
|
|
25
|
+
.cdc-open-viz-module:not(.isEditor) {
|
|
26
|
+
padding: 1rem;
|
|
27
|
+
}`
|
|
28
|
+
|
|
29
|
+
// Read dev template files
|
|
30
|
+
const readTemplate = () => {
|
|
31
|
+
const html = fs.readFileSync(path.join(devTemplatePath, 'index.html'), 'utf-8')
|
|
32
|
+
const previewHtml = fs.readFileSync(path.join(devTemplatePath, 'preview.html'), 'utf-8')
|
|
33
|
+
const sidebarCss = fs.readFileSync(path.join(devTemplatePath, 'sidebar.css'), 'utf-8')
|
|
34
|
+
const devJs = fs.readFileSync(path.join(devTemplatePath, 'dev.js'), 'utf-8')
|
|
35
|
+
return { html, previewHtml, sidebarCss, devJs }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Apply shared template replacements (sidebar CSS, dev JS, package CSS)
|
|
39
|
+
const applyTemplateReplacements = (template, packageCss, sidebarCss, devJs) => {
|
|
40
|
+
return template
|
|
41
|
+
.replace('/* {{PACKAGE_CSS}} */', packageCss)
|
|
42
|
+
.replace('/* {{SIDEBAR_CSS}} */', sidebarCss)
|
|
43
|
+
.replace('// {{DEV_JS}}', devJs)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Generate dev index.html content by combining template files
|
|
47
|
+
const generateDevIndexHtml = (packageCss = DEFAULT_PACKAGE_CSS) => {
|
|
48
|
+
const { html, sidebarCss, devJs } = readTemplate()
|
|
49
|
+
return applyTemplateReplacements(html, packageCss, sidebarCss, devJs)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Generate preview.html content - full CDC Template Package page
|
|
53
|
+
// Preview simulates production embedding, so skip the dev-only padding CSS
|
|
54
|
+
const generatePreviewIndexHtml = () => {
|
|
55
|
+
const { previewHtml, sidebarCss, devJs } = readTemplate()
|
|
56
|
+
return applyTemplateReplacements(previewHtml, '', sidebarCss, devJs)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Vite plugin to serve /__examples endpoint
|
|
60
|
+
const examplesApiPlugin = () => ({
|
|
61
|
+
name: 'cove-examples-api',
|
|
62
|
+
configureServer(server) {
|
|
63
|
+
server.middlewares.use((req, res, next) => {
|
|
64
|
+
if (req.url === '/__examples') {
|
|
65
|
+
// Get the package root (where vite.config.js is)
|
|
66
|
+
const packageRoot = server.config.root || process.cwd()
|
|
67
|
+
const examplesDir = path.join(packageRoot, 'examples')
|
|
68
|
+
|
|
69
|
+
try {
|
|
70
|
+
const files = listJsonFiles(examplesDir, examplesDir)
|
|
71
|
+
res.setHeader('Content-Type', 'application/json')
|
|
72
|
+
res.setHeader('Access-Control-Allow-Origin', '*')
|
|
73
|
+
res.end(JSON.stringify(files))
|
|
74
|
+
} catch (err) {
|
|
75
|
+
res.setHeader('Content-Type', 'application/json')
|
|
76
|
+
res.end(JSON.stringify([]))
|
|
77
|
+
}
|
|
78
|
+
return
|
|
79
|
+
}
|
|
80
|
+
next()
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
// Recursively list JSON files in a directory
|
|
86
|
+
function listJsonFiles(dir, baseDir) {
|
|
87
|
+
const files = []
|
|
88
|
+
if (!fs.existsSync(dir)) return files
|
|
89
|
+
|
|
90
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true })
|
|
91
|
+
for (const entry of entries) {
|
|
92
|
+
const fullPath = path.join(dir, entry.name)
|
|
93
|
+
if (entry.isDirectory()) {
|
|
94
|
+
files.push(...listJsonFiles(fullPath, baseDir))
|
|
95
|
+
} else if (entry.name.endsWith('.json')) {
|
|
96
|
+
// Get relative path from examples dir
|
|
97
|
+
files.push(path.relative(baseDir, fullPath))
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return files.sort()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Vite plugin to transform index.html for development
|
|
104
|
+
// Uses transformIndexHtml so React plugin can still inject its preamble
|
|
105
|
+
// Checks ?preview=true to serve the full CDC Template Package page instead
|
|
106
|
+
const coveDevIndexPlugin = css => ({
|
|
107
|
+
name: 'cove-dev-index',
|
|
108
|
+
transformIndexHtml: {
|
|
109
|
+
order: 'pre',
|
|
110
|
+
handler(html, ctx) {
|
|
111
|
+
// Check if preview mode is requested via URL parameter
|
|
112
|
+
const url = new URL(ctx.originalUrl, 'http://localhost')
|
|
113
|
+
if (url.searchParams.get('preview') === 'true') {
|
|
114
|
+
return generatePreviewIndexHtml()
|
|
115
|
+
}
|
|
116
|
+
return generateDevIndexHtml(css)
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
})
|
|
120
|
+
|
|
18
121
|
// DEV NOTE: Modifications made to this file will not be hot-loaded through HMR for component.
|
|
19
122
|
// - Active dev servers ('lerna run start') must be restarted in order to view the changed settings.
|
|
20
|
-
const generateViteConfig = (componentName, configOptions = {}, reactOptions = {}) => {
|
|
123
|
+
const generateViteConfig = (componentName, configOptions = {}, reactOptions = {}, devOptions = {}) => {
|
|
124
|
+
const { css: devCss } = devOptions
|
|
21
125
|
let configOptionsDefault = {
|
|
126
|
+
define: {
|
|
127
|
+
__COVE_PACKAGE_NAME__: JSON.stringify(componentName)
|
|
128
|
+
},
|
|
22
129
|
css: {
|
|
23
130
|
preprocessorOptions: {
|
|
24
131
|
scss: {
|
|
@@ -35,6 +142,7 @@ const generateViteConfig = (componentName, configOptions = {}, reactOptions = {}
|
|
|
35
142
|
}
|
|
36
143
|
},
|
|
37
144
|
build: {
|
|
145
|
+
minify: true, // toggle this line for debugging
|
|
38
146
|
commonjsOptions: {
|
|
39
147
|
include: [/@cdc\/core/, /node_modules/]
|
|
40
148
|
},
|
|
@@ -56,9 +164,17 @@ const generateViteConfig = (componentName, configOptions = {}, reactOptions = {}
|
|
|
56
164
|
}
|
|
57
165
|
},
|
|
58
166
|
plugins: [
|
|
167
|
+
examplesApiPlugin(),
|
|
168
|
+
coveDevIndexPlugin(devCss),
|
|
59
169
|
react(reactOptions),
|
|
60
170
|
svgr({
|
|
61
|
-
|
|
171
|
+
svgrOptions: {
|
|
172
|
+
exportType: 'default',
|
|
173
|
+
ref: true,
|
|
174
|
+
svgo: false,
|
|
175
|
+
titleProp: true
|
|
176
|
+
},
|
|
177
|
+
include: '**/*.svg'
|
|
62
178
|
}),
|
|
63
179
|
cssInjectedByJsPlugin(),
|
|
64
180
|
dsv()
|
package/helpers/DataTransform.ts
CHANGED
|
@@ -287,10 +287,7 @@ export class DataTransform {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
// clean out %, $, commas from numbers when needing to do sorting!
|
|
290
|
-
cleanDataPoint(data
|
|
291
|
-
if (testing) console.log('clean', data)
|
|
292
|
-
let cleaned = ''
|
|
293
|
-
|
|
290
|
+
cleanDataPoint(data) {
|
|
294
291
|
// remove comma and dollar signs
|
|
295
292
|
let tmp = ''
|
|
296
293
|
if (typeof data === 'string') {
|
|
@@ -299,7 +296,6 @@ export class DataTransform {
|
|
|
299
296
|
tmp = data !== null && data !== '' ? data : ''
|
|
300
297
|
}
|
|
301
298
|
|
|
302
|
-
if (testing) console.log('## cleanedData =', tmp)
|
|
303
299
|
return tmp
|
|
304
300
|
}
|
|
305
301
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash'
|
|
2
|
-
import { getQueryStringFilterValue } from '@cdc/core/helpers/queryStringUtils'
|
|
2
|
+
import { getQueryStringFilterValue, isFilterHiddenByQuery } from '@cdc/core/helpers/queryStringUtils'
|
|
3
3
|
import { VizFilter } from '../types/VizFilter'
|
|
4
4
|
import { mergeCustomOrderValues } from './mergeCustomOrderValues'
|
|
5
5
|
|
|
@@ -153,6 +153,11 @@ export const addValuesToFilters = (filters: VizFilter[], data: any[] | MapData):
|
|
|
153
153
|
filterCopy.active = includes(filterCopy.values, active) ? active : defaultValue
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
+
|
|
157
|
+
// Check if filter should be hidden by query parameter
|
|
158
|
+
if (isFilterHiddenByQuery(filterCopy)) {
|
|
159
|
+
filterCopy.showDropdown = false
|
|
160
|
+
}
|
|
156
161
|
if (filterCopy.subGrouping) {
|
|
157
162
|
const groupName = filterCopy.active as string
|
|
158
163
|
const subGroupingFilter = {
|
package/helpers/cove/date.ts
CHANGED
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
import { timeFormat, timeParse } from 'd3-time-format'
|
|
2
2
|
import { type Axis } from '@cdc/core/types/Axis'
|
|
3
3
|
|
|
4
|
+
const NBSP = '\u00A0'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Converts a date display format string for rendering:
|
|
8
|
+
*
|
|
9
|
+
* 1. NBSP insertion — When a regular space sits between a month directive
|
|
10
|
+
* (%b, %b., %B, %m, etc.) and a day directive (%d, %-d, %e, %-e),
|
|
11
|
+
* it is replaced with a non-breaking space so the month and day always
|
|
12
|
+
* stay on the same line. Users can type a normal space in the editor;
|
|
13
|
+
* the NBSP is only injected at render time.
|
|
14
|
+
*
|
|
15
|
+
* Regex breakdown: (%[bBm]\.?) (%-?[de]|%[de])
|
|
16
|
+
* (%[bBm]\.?) — capture group 1: a month directive (%b, %B, or %m)
|
|
17
|
+
* optionally followed by a literal period
|
|
18
|
+
* (space) — the single regular space we want to replace
|
|
19
|
+
* (%-?[de]|%[de]) — capture group 2: a day directive (%d, %-d, %e, %-e)
|
|
20
|
+
*
|
|
21
|
+
* 2. "May." correction — When the format uses %b. (abbreviated month + period),
|
|
22
|
+
* "May" is already the full name at 3 letters and should not get a trailing
|
|
23
|
+
* period. We strip "May." → "May" from the *formatted output*.
|
|
24
|
+
*/
|
|
25
|
+
export function getDateRenderFormat(format: string | undefined): string | undefined {
|
|
26
|
+
if (!format || typeof format !== 'string') return format
|
|
27
|
+
return format.replace(/(%[bBm]\.?) (%-?[de]|%[de])/g, `$1${NBSP}$2`)
|
|
28
|
+
}
|
|
29
|
+
|
|
4
30
|
export function formatDate(format = undefined, date) {
|
|
5
|
-
|
|
31
|
+
const renderFormat = getDateRenderFormat(format)
|
|
32
|
+
let result = timeFormat(renderFormat)(date)
|
|
33
|
+
// "May" is already 3 letters — strip the trailing period added by %b.
|
|
34
|
+
if (renderFormat?.includes('%b.') && result.includes('May.')) {
|
|
35
|
+
result = result.replace(/May\./g, 'May')
|
|
36
|
+
}
|
|
37
|
+
return result
|
|
6
38
|
}
|
|
7
39
|
|
|
8
40
|
export function parseDate(format = undefined, dateString) {
|
package/helpers/cove/string.ts
CHANGED
|
@@ -9,3 +9,32 @@ export const capitalizeSplitAndJoin = function (splittingCharacter: string = ' '
|
|
|
9
9
|
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
10
10
|
.join(joiningCharacter)
|
|
11
11
|
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Sanitizes a string to be a valid SVG ID.
|
|
15
|
+
* SVG IDs must:
|
|
16
|
+
* - Start with a letter (A-Z, a-z) or underscore
|
|
17
|
+
* - Contain only letters, digits, hyphens, and underscores
|
|
18
|
+
* - Not contain spaces or most special characters
|
|
19
|
+
*
|
|
20
|
+
* @param input - The string to sanitize
|
|
21
|
+
* @returns A valid SVG ID string
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
export function sanitizeToSvgId(input: string): string {
|
|
25
|
+
// Replace any character that is not alphanumeric, underscore, or hyphen with '-'
|
|
26
|
+
let sanitized = String(input).replace(/[^A-Za-z0-9_-]/g, '-')
|
|
27
|
+
|
|
28
|
+
// Collapse consecutive hyphens into a single hyphen for cleaner IDs
|
|
29
|
+
sanitized = sanitized.replace(/-+/g, '-')
|
|
30
|
+
|
|
31
|
+
// Ensure the first character is a letter or underscore, as required for robust SVG IDs
|
|
32
|
+
if (!/^[A-Za-z_]/.test(sanitized)) {
|
|
33
|
+
sanitized = `id-${sanitized}`
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Collapse any consecutive hyphens again (in case id- prefix created them)
|
|
37
|
+
sanitized = sanitized.replace(/-+/g, '-')
|
|
38
|
+
|
|
39
|
+
return sanitized
|
|
40
|
+
}
|
|
@@ -20,6 +20,8 @@ import update_4_25_8 from './ver/4.25.8'
|
|
|
20
20
|
import update_4_25_9 from './ver/4.25.9'
|
|
21
21
|
import update_4_25_10 from './ver/4.25.10'
|
|
22
22
|
import update_4_25_11 from './ver/4.25.11'
|
|
23
|
+
import update_4_26_1 from './ver/4.26.1'
|
|
24
|
+
import update_4_26_2 from './ver/4.26.2'
|
|
23
25
|
|
|
24
26
|
import { stripDataFromConfig, restoreDataToConfig } from './configDataHelpers'
|
|
25
27
|
|
|
@@ -35,22 +37,26 @@ export const coveUpdateWorker = (config, multiDashboardVersion?) => {
|
|
|
35
37
|
['4.24.4', update_4_24_4],
|
|
36
38
|
['4.24.5', update_4_24_5],
|
|
37
39
|
['4.24.7', update_4_24_7, true],
|
|
38
|
-
['4.24.9', update_4_24_9],
|
|
40
|
+
['4.24.9', update_4_24_9, true],
|
|
39
41
|
['4.24.10', update_4_24_10, true],
|
|
40
|
-
['4.24.11', update_4_24_11],
|
|
41
|
-
['4.25.1', update_4_25_1],
|
|
42
|
-
['4.25.3', update_4_25_3],
|
|
43
|
-
['4.25.4', update_4_25_4],
|
|
44
|
-
['4.25.6', update_4_25_6],
|
|
45
|
-
['4.25.7', update_4_25_7],
|
|
46
|
-
['4.25.8', update_4_25_8],
|
|
47
|
-
['4.25.9', update_4_25_9],
|
|
48
|
-
['4.25.10', update_4_25_10],
|
|
49
|
-
['4.25.11', update_4_25_11]
|
|
42
|
+
['4.24.11', update_4_24_11, true],
|
|
43
|
+
['4.25.1', update_4_25_1, true],
|
|
44
|
+
['4.25.3', update_4_25_3, true],
|
|
45
|
+
['4.25.4', update_4_25_4, true],
|
|
46
|
+
['4.25.6', update_4_25_6, true],
|
|
47
|
+
['4.25.7', update_4_25_7, true],
|
|
48
|
+
['4.25.8', update_4_25_8, true],
|
|
49
|
+
['4.25.9', update_4_25_9, true],
|
|
50
|
+
['4.25.10', update_4_25_10, true],
|
|
51
|
+
['4.25.11', update_4_25_11, true],
|
|
52
|
+
['4.26.1', update_4_26_1],
|
|
53
|
+
['4.26.2', update_4_26_2]
|
|
50
54
|
]
|
|
51
55
|
|
|
56
|
+
const initialVersion = genConfig.version
|
|
57
|
+
|
|
52
58
|
versions.forEach(([version, updateFunction, alwaysRun]: [string, UpdateFunction, boolean?]) => {
|
|
53
|
-
if (versionNeedsUpdate(
|
|
59
|
+
if (versionNeedsUpdate(initialVersion, version) || alwaysRun) {
|
|
54
60
|
genConfig = updateFunction(genConfig)
|
|
55
61
|
|
|
56
62
|
if (genConfig.multiDashboards) {
|
|
@@ -62,6 +68,9 @@ export const coveUpdateWorker = (config, multiDashboardVersion?) => {
|
|
|
62
68
|
}
|
|
63
69
|
})
|
|
64
70
|
|
|
71
|
+
// Always set to the latest version
|
|
72
|
+
genConfig.version = versions[versions.length - 1][0]
|
|
73
|
+
|
|
65
74
|
// config version is stored at the root level of the config.
|
|
66
75
|
if (multiDashboardVersion) delete genConfig.version
|
|
67
76
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates iframe embed code for COVE visualizations
|
|
3
|
+
* Used by editor's "Share with Partners" feature
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
interface EmbedCodeOptions {
|
|
7
|
+
configUrl: string
|
|
8
|
+
/** Additional URL parameters (e.g., filter values, hide flags) */
|
|
9
|
+
urlParams?: Record<string, string>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Detect if we're in development mode
|
|
14
|
+
*/
|
|
15
|
+
export function isDevMode(): boolean {
|
|
16
|
+
if (typeof window === 'undefined') return false
|
|
17
|
+
return window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Get the embed page URL for creating iframes.
|
|
22
|
+
* - In dev mode: returns localhost URL
|
|
23
|
+
* - On cdc.gov domains: returns relative path for same-origin iframe loading
|
|
24
|
+
* - On partner sites: returns full absolute URL to www.cdc.gov
|
|
25
|
+
*/
|
|
26
|
+
export function getEmbedPageUrl(): string {
|
|
27
|
+
if (isDevMode()) {
|
|
28
|
+
return 'http://localhost:8080'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const embedPath = '/TemplatePackage/contrib/widgets/openVizWrapper/dist/embed/embed.html'
|
|
32
|
+
|
|
33
|
+
// On cdc.gov domains, use relative path for same-origin
|
|
34
|
+
if (typeof window !== 'undefined') {
|
|
35
|
+
const hostname = window.location.hostname
|
|
36
|
+
if (hostname === 'cdc.gov' || hostname.endsWith('.cdc.gov')) {
|
|
37
|
+
return embedPath
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// For partner sites, use full absolute URL
|
|
42
|
+
return `https://www.cdc.gov${embedPath}`
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get default embed helper script URL based on environment
|
|
47
|
+
*/
|
|
48
|
+
export function getHelperScriptUrl(): string {
|
|
49
|
+
if (isDevMode()) {
|
|
50
|
+
return 'http://localhost:8080/src/embed-helper/index.js'
|
|
51
|
+
}
|
|
52
|
+
return 'https://www.cdc.gov/TemplatePackage/contrib/widgets/openVizWrapper/dist/embed/embed-helper.js'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Generate embed code for partners (div-based)
|
|
57
|
+
*
|
|
58
|
+
* @param options.configUrl - URL to the published config JSON
|
|
59
|
+
* @param options.urlParams - Additional URL parameters (e.g., filter values, hide flags)
|
|
60
|
+
* @returns HTML string with div container and script tag (width/height are hardcoded in embed-helper)
|
|
61
|
+
*/
|
|
62
|
+
export function generateEmbedCode(options: EmbedCodeOptions): string {
|
|
63
|
+
const { configUrl, urlParams = {} } = options
|
|
64
|
+
|
|
65
|
+
// Build full config URL with query parameters
|
|
66
|
+
const params = new URLSearchParams()
|
|
67
|
+
Object.entries(urlParams).forEach(([key, value]) => {
|
|
68
|
+
if (value) params.set(key, value)
|
|
69
|
+
})
|
|
70
|
+
const fullConfigUrl = params.toString() ? `${configUrl}?${params.toString()}` : configUrl
|
|
71
|
+
|
|
72
|
+
// Generate div-based embed code (width and height are hardcoded in embed-helper)
|
|
73
|
+
const embedCode = `<div
|
|
74
|
+
data-cove-embed
|
|
75
|
+
data-config-url="${fullConfigUrl}"
|
|
76
|
+
></div>
|
|
77
|
+
<script type="module" src="${getHelperScriptUrl()}"></script>`
|
|
78
|
+
|
|
79
|
+
return embedCode
|
|
80
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CDC COVE Embed Helper
|
|
3
|
+
*
|
|
4
|
+
* Standalone script that handles iframe creation and resizing for embedded COVE visualizations.
|
|
5
|
+
* Partners place a div container on their page with data-config-url attribute.
|
|
6
|
+
* This script finds the div, creates an iframe (width: 100%, initial height: 400px),
|
|
7
|
+
* and handles dynamic resizing.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* <div data-cove-embed data-config-url="/path/to/config.json"></div>
|
|
11
|
+
* <script src="https://www.cdc.gov/.../embed-helper.js"></script>
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { isValidMessageOrigin } from './urlValidation'
|
|
15
|
+
import { getEmbedPageUrl } from './embedCodeGenerator'
|
|
16
|
+
|
|
17
|
+
let iframeCounter = 0
|
|
18
|
+
|
|
19
|
+
// Initialize an iframe with unique ID and event listener
|
|
20
|
+
function initializeIframe(iframe) {
|
|
21
|
+
// Skip if already initialized
|
|
22
|
+
if (iframe.hasAttribute('data-cove-id')) {
|
|
23
|
+
return
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const id = `cove-${iframeCounter++}`
|
|
27
|
+
iframe.setAttribute('data-cove-id', id)
|
|
28
|
+
|
|
29
|
+
// Send the ID and embed page URL to the iframe via postMessage
|
|
30
|
+
const sendId = () => {
|
|
31
|
+
if (iframe.contentWindow) {
|
|
32
|
+
iframe.contentWindow.postMessage(
|
|
33
|
+
{
|
|
34
|
+
type: 'cove:setId',
|
|
35
|
+
id: id,
|
|
36
|
+
embedPageUrl: window.location.origin + window.location.pathname
|
|
37
|
+
},
|
|
38
|
+
'*'
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// If iframe is already loaded, send immediately
|
|
44
|
+
if (iframe.contentDocument && iframe.contentDocument.readyState === 'complete') {
|
|
45
|
+
sendId()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Also listen for load event in case it hasn't loaded yet
|
|
49
|
+
iframe.addEventListener('load', sendId)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Create iframe from div container
|
|
53
|
+
function createIframeFromContainer(container) {
|
|
54
|
+
// Skip if already processed
|
|
55
|
+
if (container.hasAttribute('data-cove-processed')) {
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
container.setAttribute('data-cove-processed', 'true')
|
|
59
|
+
|
|
60
|
+
// Read configuration from data attributes
|
|
61
|
+
const configUrl = container.dataset.configUrl
|
|
62
|
+
|
|
63
|
+
if (!configUrl) {
|
|
64
|
+
console.error('CDC COVE Embed: data-config-url attribute is required')
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Parse config URL to separate base path from query parameters
|
|
69
|
+
// data-config-url might be: "/path/config.json?state=CA&hidestate=true"
|
|
70
|
+
// We need to split into: configUrl + separate params for embed page
|
|
71
|
+
const [baseConfigUrl, queryString] = configUrl.split('?')
|
|
72
|
+
|
|
73
|
+
// Build clean URL manually (avoid encoding configUrl path)
|
|
74
|
+
let iframeSrc = `${getEmbedPageUrl()}?configUrl=${baseConfigUrl}`
|
|
75
|
+
|
|
76
|
+
// Add any additional query parameters from the config URL
|
|
77
|
+
if (queryString) {
|
|
78
|
+
iframeSrc += `&${queryString}`
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Create iframe element with hardcoded dimensions
|
|
82
|
+
const iframe = document.createElement('iframe')
|
|
83
|
+
iframe.src = iframeSrc
|
|
84
|
+
|
|
85
|
+
iframe.width = '100%'
|
|
86
|
+
iframe.height = '400'
|
|
87
|
+
iframe.frameBorder = '0'
|
|
88
|
+
iframe.title = 'CDC Data Visualization'
|
|
89
|
+
iframe.setAttribute('data-cove-embed', '')
|
|
90
|
+
|
|
91
|
+
// Apply min-height style to container
|
|
92
|
+
container.style.minHeight = '400px'
|
|
93
|
+
|
|
94
|
+
// Inject iframe into container
|
|
95
|
+
container.appendChild(iframe)
|
|
96
|
+
|
|
97
|
+
// Initialize the iframe for resizing
|
|
98
|
+
initializeIframe(iframe)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Process existing div containers
|
|
102
|
+
const existingContainers = document.querySelectorAll('div[data-cove-embed]')
|
|
103
|
+
if (existingContainers.length > 0) {
|
|
104
|
+
existingContainers.forEach(createIframeFromContainer)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Watch for dynamically added containers (for React/SPA apps)
|
|
108
|
+
const observer = new MutationObserver(mutations => {
|
|
109
|
+
mutations.forEach(mutation => {
|
|
110
|
+
mutation.addedNodes.forEach(node => {
|
|
111
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
112
|
+
// Check for div containers
|
|
113
|
+
if (node.matches && node.matches('div[data-cove-embed]')) {
|
|
114
|
+
createIframeFromContainer(node)
|
|
115
|
+
}
|
|
116
|
+
// Also check children in case a container was added
|
|
117
|
+
const containers = node.querySelectorAll && node.querySelectorAll('div[data-cove-embed]')
|
|
118
|
+
if (containers && containers.length > 0) {
|
|
119
|
+
containers.forEach(createIframeFromContainer)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
// Start observing the document for iframe additions
|
|
127
|
+
observer.observe(document.body, {
|
|
128
|
+
childList: true,
|
|
129
|
+
subtree: true
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
// Listen for resize messages from embedded visualizations
|
|
133
|
+
window.addEventListener('message', function (event) {
|
|
134
|
+
if (!isValidMessageOrigin(event.origin)) {
|
|
135
|
+
console.warn('Embed Helper: Rejected message from invalid origin:', event.origin)
|
|
136
|
+
return
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Handle resize events
|
|
140
|
+
if (event.data && event.data.type === 'cove:resize') {
|
|
141
|
+
const iframeId = event.data.id
|
|
142
|
+
const height = event.data.height
|
|
143
|
+
|
|
144
|
+
if (!height || typeof height !== 'number') {
|
|
145
|
+
console.warn('CDC COVE Embed Helper: Invalid height received:', height)
|
|
146
|
+
return
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Find the corresponding iframe
|
|
150
|
+
const iframe = document.querySelector(`iframe[data-cove-id="${iframeId}"]`)
|
|
151
|
+
|
|
152
|
+
if (iframe) {
|
|
153
|
+
iframe.style.height = height + 'px'
|
|
154
|
+
} else {
|
|
155
|
+
console.warn(`[Embed Helper] ✗ Could not find iframe with id "${iframeId}"`)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
})
|