diff --git a/cypress/elements/chart.js b/cypress/elements/chart.js index e2f2bdb96..f3db15ca2 100644 --- a/cypress/elements/chart.js +++ b/cypress/elements/chart.js @@ -10,8 +10,6 @@ import { } from '@dhis2/analytics' const visualizationContainerEl = 'visualization-container' -const visualizationTitleEl = 'visualization-title' -const visualizationSubtitleEl = 'visualization-subtitle' const chartContainerEl = '.highcharts-container' const highchartsLegendEl = '.highcharts-legend' const highchartsTitleEl = '.highcharts-title' @@ -24,11 +22,7 @@ const AOTitleDirtyEl = 'titlebar-dirty' const timeout = { timeout: 40000, } -const nonHighchartsTypes = [ - VIS_TYPE_OUTLIER_TABLE, - VIS_TYPE_PIVOT_TABLE, - VIS_TYPE_SINGLE_VALUE, -] +const nonHighchartsTypes = [VIS_TYPE_OUTLIER_TABLE, VIS_TYPE_PIVOT_TABLE] export const expectVisualizationToBeVisible = (visType = VIS_TYPE_COLUMN) => nonHighchartsTypes.includes(visType) @@ -64,13 +58,11 @@ export const expectChartToContainDimensionItem = (visType, itemName) => { case VIS_TYPE_GAUGE: case VIS_TYPE_YEAR_OVER_YEAR_COLUMN: case VIS_TYPE_YEAR_OVER_YEAR_LINE: + case VIS_TYPE_SINGLE_VALUE: cy.get(highchartsTitleEl) .should('be.visible') .and('contain', itemName) break - case VIS_TYPE_SINGLE_VALUE: - cy.getBySel(visualizationTitleEl).should('contain', itemName) - break case VIS_TYPE_PIVOT_TABLE: cy.getBySel('visualization-column-header') .contains(itemName) @@ -119,10 +111,7 @@ export const expectChartItemsToHaveLength = (length) => cy.get(highchartsChartItemEl).children().should('have.length', length) export const expectSVTitleToHaveColor = (color) => - cy.getBySel(visualizationTitleEl).invoke('attr', 'fill').should('eq', color) + cy.get('text.highcharts-title').should('have.css', 'color', color) export const expectSVSubtitleToHaveColor = (color) => - cy - .getBySel(visualizationSubtitleEl) - .invoke('attr', 'fill') - .should('eq', color) + cy.get('text.highcharts-subtitle').should('have.css', 'color', color) diff --git a/cypress/elements/optionsModal/index.js b/cypress/elements/optionsModal/index.js index b1a74c55f..037a33ed5 100644 --- a/cypress/elements/optionsModal/index.js +++ b/cypress/elements/optionsModal/index.js @@ -81,7 +81,6 @@ export { expectLegendDisplayStyleToBeText, expectLegendDisplayStyleToBeFill, expectSingleValueToHaveTextColor, - expectSingleValueToNotHaveBackgroundColor, expectSingleValueToHaveBackgroundColor, toggleLegendKeyOption, expectLegendKeyOptionToBeEnabled, diff --git a/cypress/elements/optionsModal/legend.js b/cypress/elements/optionsModal/legend.js index 4036add06..94a2ee788 100644 --- a/cypress/elements/optionsModal/legend.js +++ b/cypress/elements/optionsModal/legend.js @@ -5,7 +5,6 @@ const legendKeyContainerEl = 'legend-key-container' const legendKeyItemEl = 'legend-key-item' const singleValueTextEl = 'visualization-primary-value' const singleValueIconEl = 'visualization-icon' -const singleValueOutputEl = 'visualization-container' const legendDisplayStrategyByDataItemEl = 'legend-display-strategy-BY_DATA_ITEM' const legendDisplayStrategyFixedEl = 'legend-display-strategy-FIXED' const legendDisplayStyleOptionTextEl = 'legend-display-style-option-TEXT' @@ -76,16 +75,10 @@ export const expectFixedLegendSetToBe = (legendSetName) => cy.getBySel(fixedLegendSetSelectEl).should('contain', legendSetName) export const expectSingleValueToHaveTextColor = (color) => - cy.getBySel(singleValueTextEl).invoke('attr', 'fill').should('eq', color) - -export const expectSingleValueToNotHaveBackgroundColor = () => - cy.getBySel(singleValueOutputEl).should('not.have.attr', 'style') + cy.getBySel(singleValueTextEl).should('have.css', 'color', color) export const expectSingleValueToHaveBackgroundColor = (color) => - cy - .getBySel(singleValueOutputEl) - .invoke('attr', 'style') - .should('contain', `background-color: ${color}`) + cy.get('rect.highcharts-background').should('have.attr', 'fill', color) export const expectSingleValueToHaveIconColor = (color) => cy diff --git a/cypress/integration/options/legend.cy.js b/cypress/integration/options/legend.cy.js index 42015e3aa..d94f4ad05 100644 --- a/cypress/integration/options/legend.cy.js +++ b/cypress/integration/options/legend.cy.js @@ -60,7 +60,6 @@ import { setItemToType, clickOptionsModalHideButton, expectSingleValueToHaveBackgroundColor, - expectSingleValueToNotHaveBackgroundColor, changeDisplayStyleToFill, changeColor, OPTIONS_TAB_STYLE, @@ -156,17 +155,19 @@ describe('Options - Legend', () => { it('applies different styles of legend to a Single Value chart', () => { const TEST_ITEM = TEST_ITEMS[0] - const EXPECTED_STANDARD_TEXT_COLOR = '#212934' - const EXPECTED_CONTRAST_TEXT_COLOR = '#ffffff' + const EXPECTED_STANDARD_TEXT_COLOR = 'rgb(33, 41, 52)' + const EXPECTED_CONTRAST_TEXT_COLOR = 'rgb(255, 255, 255)' const EXPECTED_BACKGROUND_COLOR_1 = '#FFFFB2' - const EXPECTED_TEXT_COLOR_1 = '#FFFFB2' + const EXPECTED_TEXT_COLOR_1 = 'rgb(255, 255, 178)' const EXPECTED_BACKGROUND_COLOR_2 = '#B3402B' - const EXPECTED_TEXT_COLOR_2 = '#B3402B' + const EXPECTED_TEXT_COLOR_2 = 'rgb(179, 64, 43)' const EXPECTED_CUSTOM_TITLE_COLOR = '#ff7700' + const EXPECTED_CUSTOM_TITLE_COLOR_RGB = 'rgb(255, 119, 0)' const EXPECTED_CUSTOM_SUBTITLE_COLOR = '#ffaa00' + const EXPECTED_CUSTOM_SUBTITLE_COLOR_RGB = 'rgb(255, 170, 0)' const TEST_LEGEND_SET_WITH_CONTRAST = 'Age 15y interval' - const EXPECTED_STANDARD_TITLE_COLOR = '#212934' - const EXPECTED_STANDARD_SUBTITLE_COLOR = '#4a5768' + const EXPECTED_STANDARD_TITLE_COLOR = 'rgb(33, 41, 52)' + const EXPECTED_STANDARD_SUBTITLE_COLOR = 'rgb(74, 87, 104)' cy.log('navigates to the start page and adds data items') goToStartPage() @@ -176,7 +177,7 @@ describe('Options - Legend', () => { clickDimensionModalUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SINGLE_VALUE) expectSingleValueToHaveTextColor(EXPECTED_STANDARD_TEXT_COLOR) - expectSingleValueToNotHaveBackgroundColor() + expectSingleValueToHaveBackgroundColor('transparent') cy.log('enables legend') openOptionsModal(OPTIONS_TAB_LEGEND) @@ -206,7 +207,7 @@ describe('Options - Legend', () => { // Legend on text, no contrast, no custom title colors cy.log('verifies text color legend is applied') expectSingleValueToHaveTextColor(EXPECTED_TEXT_COLOR_1) - expectSingleValueToNotHaveBackgroundColor() + expectSingleValueToHaveBackgroundColor('transparent') expectSVTitleToHaveColor(EXPECTED_STANDARD_TITLE_COLOR) expectSVSubtitleToHaveColor(EXPECTED_STANDARD_SUBTITLE_COLOR) @@ -225,11 +226,11 @@ describe('Options - Legend', () => { // Legend on text, with contrast (N/, no custom title colors cy.log('verifies text color legend is applied') expectSingleValueToHaveTextColor(EXPECTED_TEXT_COLOR_2) - expectSingleValueToNotHaveBackgroundColor() + expectSingleValueToHaveBackgroundColor('transparent') expectSVTitleToHaveColor(EXPECTED_STANDARD_TITLE_COLOR) expectSVSubtitleToHaveColor(EXPECTED_STANDARD_SUBTITLE_COLOR) - cy.log('changees legend display style to background color') + cy.log('changes legend display style to background color') openOptionsModal(OPTIONS_TAB_LEGEND) expectLegendDisplayStrategyToBeFixed() expectLegendDisplayStyleToBeText() @@ -259,8 +260,8 @@ describe('Options - Legend', () => { ) expectSingleValueToHaveTextColor(EXPECTED_CONTRAST_TEXT_COLOR) expectSingleValueToHaveBackgroundColor(EXPECTED_BACKGROUND_COLOR_2) - expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR) - expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR) + expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR_RGB) + expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR_RGB) cy.log('changes legend display style to text color') openOptionsModal(OPTIONS_TAB_LEGEND) @@ -271,12 +272,12 @@ describe('Options - Legend', () => { clickOptionsModalUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SINGLE_VALUE) - // Legend on text, with contrast, with custom title colo + // Legend on text, with contrast, with custom title colors cy.log('verifies text color legend and custom title colors are applied') expectSingleValueToHaveTextColor(EXPECTED_TEXT_COLOR_2) - expectSingleValueToNotHaveBackgroundColor() - expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR) - expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR) + expectSingleValueToHaveBackgroundColor('transparent') + expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR_RGB) + expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR_RGB) cy.log('changes legend display strategy to by data item') openOptionsModal(OPTIONS_TAB_LEGEND) @@ -287,12 +288,12 @@ describe('Options - Legend', () => { clickOptionsModalUpdateButton() expectVisualizationToBeVisible(VIS_TYPE_SINGLE_VALUE) - // Legend on text, no contrast, with custom title colo + // Legend on text, no contrast, with custom title colors cy.log('verifies text color legend and custom title colors are applied') expectSingleValueToHaveTextColor(EXPECTED_TEXT_COLOR_1) - expectSingleValueToNotHaveBackgroundColor() - expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR) - expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR) + expectSingleValueToHaveBackgroundColor('transparent') + expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR_RGB) + expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR_RGB) cy.log('changes legend display style to background color') openOptionsModal(OPTIONS_TAB_LEGEND) @@ -309,8 +310,8 @@ describe('Options - Legend', () => { ) expectSingleValueToHaveTextColor(EXPECTED_STANDARD_TEXT_COLOR) expectSingleValueToHaveBackgroundColor(EXPECTED_BACKGROUND_COLOR_1) - expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR) - expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR) + expectSVTitleToHaveColor(EXPECTED_CUSTOM_TITLE_COLOR_RGB) + expectSVSubtitleToHaveColor(EXPECTED_CUSTOM_SUBTITLE_COLOR_RGB) cy.log('verifies legend key is hidden') expectLegendKeyToBeHidden() @@ -605,7 +606,7 @@ describe('Options - Legend', () => { const TEST_ITEM = TEST_ITEMS[0] const EXPECTED_FIXED_COLOR = '#c7e9c0' const valueCellEl = 'visualization-value-cell' - const EXPECTED_SV_STANDARD_TEXT_COLOR = '#212934' + const EXPECTED_SV_STANDARD_TEXT_COLOR = 'rgb(33, 41, 52)' const EXPECTED_PT_STANDARD_TEXT_COLOR = 'color: rgb(33, 41, 52)' cy.log('navigates to the start page and adds data items') diff --git a/package.json b/package.json index cfca1efa4..68faf0eca 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "typescript": "^4.8.4" }, "dependencies": { - "@dhis2/analytics": "^26.8.7", + "@dhis2/analytics": "^26.9.0", "@dhis2/app-runtime": "^3.10.4", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", diff --git a/src/components/VisualizationPlugin/ChartPlugin.js b/src/components/VisualizationPlugin/ChartPlugin.js index f587b7aa4..45d02a48d 100644 --- a/src/components/VisualizationPlugin/ChartPlugin.js +++ b/src/components/VisualizationPlugin/ChartPlugin.js @@ -1,4 +1,4 @@ -import { isSingleValue, createVisualization } from '@dhis2/analytics' +import { createVisualization } from '@dhis2/analytics' import PropTypes from 'prop-types' import React, { useRef, useCallback, useEffect } from 'react' @@ -31,19 +31,15 @@ const ChartPlugin = ({ }, undefined, undefined, - isSingleValue(visualization.type) ? 'dhis' : 'highcharts' // output format + 'highcharts' // output format ) - if (isSingleValue(visualization.type)) { - onChartGenerated(visualizationConfig.visualization) - } else { - onChartGenerated( - visualizationConfig.visualization.getSVGForExport({ - sourceHeight: 768, - sourceWidth: 1024, - }) - ) - } + onChartGenerated( + visualizationConfig.visualization.getSVGForExport({ + sourceHeight: 768, + sourceWidth: 1024, + }) + ) }, [ canvasRef, diff --git a/src/components/VisualizationPlugin/__tests__/ChartPlugin.spec.js b/src/components/VisualizationPlugin/__tests__/ChartPlugin.spec.js index 4d5aff648..ff9797af4 100644 --- a/src/components/VisualizationPlugin/__tests__/ChartPlugin.spec.js +++ b/src/components/VisualizationPlugin/__tests__/ChartPlugin.spec.js @@ -7,33 +7,6 @@ import ChartPlugin from '../ChartPlugin.js' jest.mock('@dhis2/analytics') -const dxMock = { - dimension: 'dx', - items: [ - { - id: 'Uvn6LCg7dVU', - }, - ], -} - -const peMock = { - dimension: 'pe', - items: [ - { - id: 'LAST_12_MONTHS', - }, - ], -} - -const ouMock = { - dimension: 'ou', - items: [ - { - id: 'ImspTQPwCqd', - }, - ], -} - const mockExtraOptions = { dashboard: false, noData: { @@ -41,13 +14,6 @@ const mockExtraOptions = { }, } -const singleValueCurrentMock = { - type: analytics.VIS_TYPE_SINGLE_VALUE, - columns: [dxMock], - rows: [], - filters: [ouMock, peMock], -} - const metaDataMock = { items: { a: { name: 'a dim' }, @@ -79,10 +45,6 @@ const createVisualizationMock = { }, } -const isSingleValueMockResponse = (visType) => { - return visType === analytics.VIS_TYPE_SINGLE_VALUE -} - describe('ChartPlugin', () => { // eslint-disable-next-line no-import-assign, import/namespace options.getOptionsForRequest = () => [ @@ -153,34 +115,5 @@ describe('ChartPlugin', () => { done() }) }) - - describe('Single value visualization', () => { - beforeEach(() => { - props.visualization = { - ...singleValueCurrentMock, - } - - // eslint-disable-next-line no-import-assign, import/namespace - analytics.isSingleValue = jest - .fn() - .mockReturnValue( - isSingleValueMockResponse(props.visualization.type) - ) - }) - - it('provides dhis as output format to createChart', (done) => { - canvas() - - setTimeout(() => { - expect(analytics.createVisualization).toHaveBeenCalled() - - expect( - analytics.createVisualization.mock.calls[0][6] - ).toEqual('dhis') - - done() - }) - }) - }) }) }) diff --git a/yarn.lock b/yarn.lock index 42d1ab01e..b5deacec4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2050,10 +2050,10 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.8.7": - version "26.8.7" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.8.7.tgz#46838366066ddd1f92ab7b5bc78f1d87b4f56b75" - integrity sha512-zPdxVDL8IhCwZF2zDEj+2TPG1kS4MTJUgM2xGjSHnBFfrsn/ddN8D8x2tu+V4hh5F+xYggSkMNeGi2hwLsml+A== +"@dhis2/analytics@^26.9.0": + version "26.9.0" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.9.0.tgz#562f0f6cb5107df80292f81b4fb53053da947131" + integrity sha512-BA2NOKW2r+NRyJnHTzM6IlhmoEZbv8JbU0Omcyq+0YiNHZEw9pNq+6HG98S5MnvlM0f0W8GYb/E+97YCDQG6ZQ== dependencies: "@dhis2/multi-calendar-dates" "^1.2.2" "@dnd-kit/core" "^6.0.7" @@ -2822,7 +2822,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== @@ -2841,14 +2841,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/source-map@^0.3.3": version "0.3.6" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" @@ -2862,7 +2854,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.9": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -3762,21 +3754,16 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^1.0.5": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== - "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.30" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" @@ -4432,12 +4419,7 @@ acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -acorn@^8.8.2: +acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.13.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== @@ -5618,17 +5600,7 @@ browserify@^17.0.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.3, browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -browserslist@^4.21.10: +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.3, browserslist@^4.21.10, browserslist@^4.21.3, browserslist@^4.21.5: version "4.24.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== @@ -5780,15 +5752,7 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.7: +call-bind@^1.0.2, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -5860,12 +5824,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001373, caniuse-lite@^1.0.30001449: - version "1.0.30001473" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz#3859898b3cab65fc8905bb923df36ad35058153c" - integrity sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== - -caniuse-lite@^1.0.30001669: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001373, caniuse-lite@^1.0.30001669: version "1.0.30001669" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz#fda8f1d29a8bfdc42de0c170d7f34a9cf19ed7a3" integrity sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w== @@ -7662,11 +7621,6 @@ ejs@^3.0.2, ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.284: - version "1.4.345" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.345.tgz#c90b7183b39245cddf0e990337469063bfced6f0" - integrity sha512-znGhOQK2TUYLICgS25uaM0a7pHy66rSxbre7l762vg9AUoCcJK+Bu+HCPWpjL/U/kK8/Hf+6E0szAUJSyVYb3Q== - electron-to-chromium@^1.5.41: version "1.5.45" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz#fa592ce6a88b44d23acbc7453a2feab98996e6c9" @@ -7982,12 +7936,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escalade@^3.2.0: +escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== @@ -9186,17 +9135,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-intrinsic@^1.2.4: +get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -9581,14 +9520,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== @@ -13226,11 +13158,6 @@ node-releases@^2.0.18: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - nopt@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" @@ -13554,12 +13481,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.3, object-inspect@^1.7.0, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-inspect@^1.13.1: +object-inspect@^1.12.3, object-inspect@^1.13.1, object-inspect@^1.7.0: version "1.13.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== @@ -14167,12 +14089,7 @@ picocolors@^0.2.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== -picocolors@^1.0.0, picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - -picocolors@^1.1.0: +picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -16187,16 +16104,7 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.2.0: +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -16326,7 +16234,7 @@ send@0.19.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0, serialize-javascript@^6.0.0: +serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== @@ -16340,7 +16248,7 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^6.0.1: +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== @@ -16466,16 +16374,7 @@ shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -side-channel@^1.0.6: +side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== @@ -17487,18 +17386,7 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.1: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== - dependencies: - "@jridgewell/trace-mapping" "^0.3.14" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" - -terser-webpack-plugin@^5.3.10: +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.10: version "5.3.10" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== @@ -17509,17 +17397,7 @@ terser-webpack-plugin@^5.3.10: serialize-javascript "^6.0.1" terser "^5.26.0" -terser@^5.0.0, terser@^5.10.0, terser@^5.14.1: - version "5.15.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" - integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.26.0: +terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: version "5.36.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== @@ -18106,14 +17984,6 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-browserslist-db@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"