diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 80ce564f3d..57c9e2ca56 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -18,6 +18,9 @@ _text_ ### TODO +- [ ] Cypress tests +- [ ] Update docs +- [ ] Manual testing - [ ] _task_ --- diff --git a/.github/workflows/dhis2-verify-app.yml b/.github/workflows/dhis2-verify-app.yml index ac733e9adc..b1c195385b 100644 --- a/.github/workflows/dhis2-verify-app.yml +++ b/.github/workflows/dhis2-verify-app.yml @@ -76,15 +76,22 @@ jobs: - name: Test run: yarn d2-app-scripts test + env: + REPORTPORTAL_API_KEY: ${{ secrets.REPORTPORTAL_API_KEY }} + REPORTPORTAL_ENDPOINT: ${{ vars.REPORTPORTAL_ENDPOINT }} + REPORTPORTAL_PROJECT: ${{ vars.REPORTPORTAL_PROJECT }} call-workflow-e2e-prod: needs: [build, lint, test] - uses: dhis2/line-listing-app/.github/workflows/e2e-prod.yml@master + uses: dhis2/workflows/.github/workflows/analytics-e2e-tests.yml@master secrets: baseurl: ${{ secrets.CYPRESS_DHIS2_BASE_URL_DEV }} username: ${{ secrets.CYPRESS_DHIS2_USERNAME }} password: ${{ secrets.CYPRESS_DHIS2_PASSWORD }} recordkey: ${{ secrets.CYPRESS_RECORD_KEY }} + reportportal_api_key: ${{ secrets.REPORTPORTAL_API_KEY }} + reportportal_endpoint: ${{ vars.REPORTPORTAL_ENDPOINT }} + reportportal_project: ${{ vars.REPORTPORTAL_PROJECT }} release: runs-on: ubuntu-latest diff --git a/.github/workflows/e2e-prod.yml b/.github/workflows/e2e-prod.yml deleted file mode 100644 index ffa53aee3a..0000000000 --- a/.github/workflows/e2e-prod.yml +++ /dev/null @@ -1,119 +0,0 @@ -name: 'e2e-prod' - -# Requirements: -# -# - Customize environment variables: -# BASE_URL_INSTANCES: Set the base url for the instances, e.g. https://test.e2e.dhis2.org -# NAME_PATTERN_PROD_INSTANCES: Set the name pattern for your instances. {version} will be replaced by "[majorVersion].[minorVersion]" -# NAME_PATTERN_DEV_INSTANCE: Set the name pattern for your dev instance. {version} will be replaced by "dev" -# -# - Other optional customizations: -# containers: Set the matrix containers array for the e2e-prod job. The number of parallel Cypress instances running for each backend version will equal the array length. -# -# - Set status check as required: -# We recommend setting "e2e-tests-success" as a required step in your workflow. - -on: - workflow_call: - secrets: - baseurl: - required: true - username: - required: true - password: - required: true - recordkey: - required: true - -env: - BASE_URL_INSTANCES: https://test.e2e.dhis2.org - NAME_PATTERN_PROD_INSTANCES: 'analytics-{version}' - NAME_PATTERN_DEV_INSTANCE: analytics-dev - -concurrency: - group: e2e-prod-${{ github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -defaults: - run: - shell: bash - -jobs: - compute-prod-versions: - if: "!github.event.push.repository.fork && (github.event.pull_request.draft == false || github.action == 'workflow_dispatch')" - runs-on: ubuntu-latest - outputs: - versions: ${{ steps.prod-versions.outputs.versions }} - steps: - - name: Compute dev instance url - id: instance-url - run: | - url=${BASE_URL_INSTANCES%/}/${NAME_PATTERN_DEV_INSTANCE/"{version}"/dev} - echo "url=$url" >> $GITHUB_OUTPUT - echo "url: $url" - - - uses: actions/checkout@v3 - - - name: Output prod version urls - id: prod-versions - uses: dhis2/action-supported-legacy-versions@v1 - with: - instance-url-latest: ${{ steps.instance-url.outputs.url }} # can be removed if maxDHIS2Version has been specified - username: ${{ secrets.username }} - password: ${{ secrets.password }} - - e2e-prod: - needs: compute-prod-versions - runs-on: ubuntu-latest - container: - image: cypress/browsers:node16.17.0-chrome106 - options: --user 1001 - strategy: - fail-fast: false - matrix: - versions: ${{ fromJSON(needs.compute-prod-versions.outputs.versions) }} - containers: [1, 2, 3, 4] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18.x - - - name: Compute prod instance url - id: instance-url - run: | - url=${BASE_URL_INSTANCES%/}/${NAME_PATTERN_PROD_INSTANCES/"{version}"/$version} - echo "url=$url" >> $GITHUB_OUTPUT - echo "url: $url" - env: - version: ${{ matrix.versions }} - - - name: Run e2e tests - uses: cypress-io/github-action@v5 - with: - start: yarn d2-app-scripts start - wait-on: 'http://localhost:3000' - wait-on-timeout: 300 - record: true - parallel: true - browser: chrome - group: e2e-chrome-parallel-${{ matrix.versions }} - env: - CI: true - BROWSER: none - CYPRESS_RECORD_KEY: ${{ secrets.recordkey }} - CYPRESS_dhis2BaseUrl: ${{ steps.instance-url.outputs.url }} - CYPRESS_dhis2InstanceVersion: ${{matrix.versions}} - CYPRESS_dhis2Username: ${{ secrets.username }} - CYPRESS_dhis2Password: ${{ secrets.password }} - CYPRESS_networkMode: live - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - e2e-tests-success: - needs: e2e-prod - if: ${{ success() || failure() }} - runs-on: ubuntu-latest - steps: - - run: if [ $result != 'success' ]; then exit 1; fi; - env: - result: ${{ needs.e2e-prod.result }} diff --git a/.tx/config b/.tx/config index 2f238a1c66..f92f618b94 100644 --- a/.tx/config +++ b/.tx/config @@ -1,6 +1,6 @@ [main] host = https://www.transifex.com -lang_map = fa_AF: prs, uz@Cyrl: uz, uz@Latn: uz_Latn +lang_map = fa_AF: prs, uz@Cyrl: uz_UZ_Cyrl, uz@Latn: uz_UZ_Latn [o:hisp-uio:p:app-data-visualizer:r:en-pot] file_filter = i18n/.po diff --git a/cypress.config.js b/cypress.config.js index 10cca1013c..fd11ced72c 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -19,6 +19,34 @@ async function setupNodeEvents(on, config) { module.exports = defineConfig({ projectId: 'sojh88', + reporter: '@reportportal/agent-js-cypress', + reporterOptions: { + endpoint: process.env.REPORTPORTAL_ENDPOINT, + apiKey: process.env.REPORTPORTAL_API_KEY, + launch: 'data_visualizer_app_master', + project: process.env.REPORTPORTAL_PROJECT, + description: '', + autoMerge: true, + parallel: true, + debug: false, + restClientConfig: { + timeout: 360000, + }, + attributes: [ + { + key: 'version', + value: 'master', + }, + { + key: 'app_name', + value: 'data_visualizer_app', + }, + { + key: 'test_level', + value: 'e2e', + }, + ], + }, e2e: { setupNodeEvents, baseUrl: 'http://localhost:3000', diff --git a/cypress/elements/dimensionModal/index.js b/cypress/elements/dimensionModal/index.js index a7ea0f168b..9fbc71367f 100644 --- a/cypress/elements/dimensionModal/index.js +++ b/cypress/elements/dimensionModal/index.js @@ -76,6 +76,7 @@ export const expectSourceToNotBeLoading = () => .findBySelLike(transferLoadingEl) .should('not.exist') +// FIXME: unused, remove? export const expectSourceToBeLoading = () => cy .getBySelLike(transferLeftContainerEl) diff --git a/cypress/elements/optionsModal/index.js b/cypress/elements/optionsModal/index.js index 8405186eb1..1f8f7f6bdd 100644 --- a/cypress/elements/optionsModal/index.js +++ b/cypress/elements/optionsModal/index.js @@ -9,6 +9,7 @@ export const OPTIONS_TAB_AXES = 'Axes' export const OPTIONS_TAB_OUTLIERS = 'Outliers' export const OPTIONS_TAB_SERIES = 'Series' export const OPTIONS_TAB_LEGEND = 'Legend' +export const OPTIONS_TAB_LIMIT_VALUES = 'Limit values' export const clickOptionsTab = (name) => cy.getBySel(tabBarEl).contains(name).click() @@ -89,3 +90,14 @@ export { expectLegendKeyToBeVisible, expectLegedKeyItemAmountToBe, } from './legend.js' + +export { + setMinValue, + setMaxValue, + changeMinOperator, + changeMaxOperator, + expectMinValueToBeValue, + expectMaxValueToBeValue, + expectMinOperatorToBeOption, + expectMaxOperatorToBeOption, +} from './limitValues.js' diff --git a/cypress/elements/optionsModal/legend.js b/cypress/elements/optionsModal/legend.js index 3331ab98f3..4036add064 100644 --- a/cypress/elements/optionsModal/legend.js +++ b/cypress/elements/optionsModal/legend.js @@ -20,15 +20,12 @@ export const toggleLegend = () => .click() export const changeDisplayStrategyToFixed = () => - cy - .getBySel(optionsModalContentEl) - .contains('Select a single legend for the entire visualization') - .click() + cy.getBySel(optionsModalContentEl).contains('Select a legend').click() export const changeDisplayStrategyToByDataItem = () => cy .getBySel(optionsModalContentEl) - .contains('Use pre-defined legend per data item') + .contains('Use pre-defined legend by data item') .click() export const changeDisplayStyleToText = () => diff --git a/cypress/elements/optionsModal/limitValues.js b/cypress/elements/optionsModal/limitValues.js new file mode 100644 index 0000000000..26ab4a33c4 --- /dev/null +++ b/cypress/elements/optionsModal/limitValues.js @@ -0,0 +1,34 @@ +import { typeInput } from '../common.js' + +const minValueInput = 'measure-critiera-min-value' +const maxValueInput = 'measure-critiera-max-value' +const minOperatorSelect = 'measure-critiera-min-operator' +const minOperatorSelectOption = 'measure-critiera-min-operator-option' +const maxOperatorSelect = 'measure-critiera-max-operator' +const maxOperatorSelectOption = 'measure-critiera-max-operator-option' + +export const setMinValue = (text) => typeInput(minValueInput, text) + +export const setMaxValue = (text) => typeInput(maxValueInput, text) + +export const changeMinOperator = (optionName) => { + cy.getBySel(minOperatorSelect).click() + cy.getBySelLike(minOperatorSelectOption).contains(optionName).click() +} + +export const changeMaxOperator = (optionName) => { + cy.getBySel(maxOperatorSelect).click() + cy.getBySelLike(maxOperatorSelectOption).contains(optionName).click() +} + +export const expectMinValueToBeValue = (value) => + cy.getBySel(minValueInput).find('input').should('have.value', value) + +export const expectMaxValueToBeValue = (value) => + cy.getBySel(maxValueInput).find('input').should('have.value', value) + +export const expectMinOperatorToBeOption = (optionName) => + cy.getBySel(minOperatorSelect).containsExact(optionName) + +export const expectMaxOperatorToBeOption = (optionName) => + cy.getBySel(maxOperatorSelect).containsExact(optionName) diff --git a/cypress/integration/dimensions/data.cy.js b/cypress/integration/dimensions/data.cy.js index 58965ee184..90c245e4c9 100644 --- a/cypress/integration/dimensions/data.cy.js +++ b/cypress/integration/dimensions/data.cy.js @@ -31,7 +31,6 @@ import { expectSubGroupSelectToBeVisible, expectSubGroupSelectToBe, switchSubGroupTo, - expectSourceToBeLoading, expectSourceToNotBeLoading, unselectAllItemsByButton, selectAllItemsByButton, @@ -439,7 +438,6 @@ describe('Data dimension', () => { cy.intercept('GET', DATA_ITEMS_URL).as('**/dataItems*') } switchDataTypeToAll() - expectSourceToBeLoading() cy.wait('@**/dataItems*').then(({ request, response }) => { expect(request.url).to.contain('page=1') expect(response.statusCode).to.eq(200) diff --git a/cypress/integration/options/limitValues.cy.js b/cypress/integration/options/limitValues.cy.js new file mode 100644 index 0000000000..33dce7fe02 --- /dev/null +++ b/cypress/integration/options/limitValues.cy.js @@ -0,0 +1,260 @@ +import { + DIMENSION_ID_DATA, + DIMENSION_ID_PERIOD, + VIS_TYPE_PIVOT_TABLE, + visTypeDisplayNames, +} from '@dhis2/analytics' +import { expectVisualizationToBeVisible } from '../../elements/chart.js' +import { expectAppToNotBeLoading } from '../../elements/common.js' +import { + selectIndicators, + clickDimensionModalUpdateButton, + unselectAllItemsByButton, + selectFixedPeriods, +} from '../../elements/dimensionModal/index.js' +import { openDimension } from '../../elements/dimensionsPanel.js' +import { + createNewAO, + deleteAO, + saveNewAO, +} from '../../elements/fileMenu/index.js' +import { openOptionsModal } from '../../elements/menuBar.js' +import { + OPTIONS_TAB_LIMIT_VALUES, + changeMaxOperator, + changeMinOperator, + clickOptionsModalHideButton, + clickOptionsModalUpdateButton, + expectMaxOperatorToBeOption, + expectMaxValueToBeValue, + expectMinOperatorToBeOption, + expectMinValueToBeValue, + setMaxValue, + setMinValue, +} from '../../elements/optionsModal/index.js' +import { + expectStartScreenToBeVisible, + goToStartPage, +} from '../../elements/startScreen.js' +import { changeVisType } from '../../elements/visualizationTypeSelector.js' + +const TEST_INDICATOR = 'ANC visits total' +const currentYear = new Date().getFullYear().toString() +const expectTableValueToBe = (value, position) => + cy + .getBySel('visualization-container') + .find('tbody') + .find('tr') + .eq(position) + .find('td') + .invoke('text') + .invoke('trim') + .should('equal', value) + +describe('limit values', () => { + beforeEach(() => { + goToStartPage() + createNewAO() + changeVisType(visTypeDisplayNames[VIS_TYPE_PIVOT_TABLE]) + openDimension(DIMENSION_ID_DATA) + selectIndicators([TEST_INDICATOR]) + clickDimensionModalUpdateButton() + openDimension(DIMENSION_ID_PERIOD) + unselectAllItemsByButton() + selectFixedPeriods( + [ + `January ${currentYear}`, + `February ${currentYear}`, + `March ${currentYear}`, + `April ${currentYear}`, + `May ${currentYear}`, + ], + 'Monthly' + ) + clickDimensionModalUpdateButton() + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + + const expectedValues = [ + '49 231', + '49 605', + '49 500', + '55 385', + '68 886', + ] + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>') + expectMaxOperatorToBeOption('<') + expectMinValueToBeValue('') + expectMaxValueToBeValue('') + }) + it('min and max value display correctly', () => { + // set limits + changeMinOperator('>=') + changeMaxOperator('<=') + setMinValue('49500') + setMaxValue('55385') + clickOptionsModalUpdateButton() + + // verify limits are applied + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + const expectedValues = ['', '49 605', '49 500', '55 385', ''] + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>=') + expectMaxOperatorToBeOption('<=') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('55385') + clickOptionsModalHideButton() + + // save AO, verify limits are applied + saveNewAO(`TEST min max ${new Date().toLocaleString()}`) + expectAppToNotBeLoading() + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>=') + expectMaxOperatorToBeOption('<=') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('55385') + clickOptionsModalHideButton() + + // clean up + deleteAO() + expectStartScreenToBeVisible() + }) + it('min value only display correctly', () => { + // set limits + changeMinOperator('>=') + setMinValue('49500') + clickOptionsModalUpdateButton() + + // verify limits are applied + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + const expectedValues = ['', '49 605', '49 500', '55 385', '68 886'] + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>=') + expectMaxOperatorToBeOption('<') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('') + clickOptionsModalHideButton() + + // save AO, verify limits are applied + saveNewAO(`TEST min max ${new Date().toLocaleString()}`) + expectAppToNotBeLoading() + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>=') + expectMaxOperatorToBeOption('<') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('') + clickOptionsModalHideButton() + + // clean up + deleteAO() + expectStartScreenToBeVisible() + }) + it('max value only display correctly', () => { + // set limits + changeMaxOperator('<=') + setMaxValue('55385') + clickOptionsModalUpdateButton() + + // verify limits are applied + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + const expectedValues = ['49 231', '49 605', '49 500', '55 385', ''] + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>') + expectMaxOperatorToBeOption('<=') + expectMinValueToBeValue('') + expectMaxValueToBeValue('55385') + clickOptionsModalHideButton() + + // save AO, verify limits are applied + saveNewAO(`TEST min max ${new Date().toLocaleString()}`) + expectAppToNotBeLoading() + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('>') + expectMaxOperatorToBeOption('<=') + expectMinValueToBeValue('') + expectMaxValueToBeValue('55385') + clickOptionsModalHideButton() + + // clean up + deleteAO() + expectStartScreenToBeVisible() + }) + it('equal value display correctly', () => { + // set limits + changeMinOperator('=') + setMinValue('49500') + clickOptionsModalUpdateButton() + + // verify limits are applied + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + const expectedValues = ['', '', '49 500', '', ''] + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('=') + expectMaxOperatorToBeOption('<') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('') + clickOptionsModalHideButton() + + // save AO, verify limits are applied + saveNewAO(`TEST min max ${new Date().toLocaleString()}`) + expectAppToNotBeLoading() + expectVisualizationToBeVisible(VIS_TYPE_PIVOT_TABLE) + expectedValues.forEach((value, index) => + expectTableValueToBe(value, index) + ) + + // verify options are present when reopening modal + openOptionsModal(OPTIONS_TAB_LIMIT_VALUES) + expectMinOperatorToBeOption('=') + expectMaxOperatorToBeOption('<') + expectMinValueToBeValue('49500') + expectMaxValueToBeValue('') + clickOptionsModalHideButton() + + // clean up + deleteAO() + expectStartScreenToBeVisible() + }) +}) diff --git a/cypress/integration/save.cy.js b/cypress/integration/save.cy.js index 65b0a555a0..44161302ab 100644 --- a/cypress/integration/save.cy.js +++ b/cypress/integration/save.cy.js @@ -1,5 +1,6 @@ import { DIMENSION_ID_DATA, + DIMENSION_ID_ORGUNIT, visTypeDisplayNames, VIS_TYPE_SCATTER, } from '@dhis2/analytics' @@ -16,10 +17,10 @@ import { selectIndicators, selectDataElements, clickDimensionModalUpdateButton, + deselectOrgUnitTreeItem, } from '../elements/dimensionModal/index.js' import { openDimension } from '../elements/dimensionsPanel.js' import { - //openRandomAOCreatedByOthers, saveNewAO, closeFileMenuWithClick, saveAOAs, @@ -64,6 +65,11 @@ describe('saving an AO', () => { it('navigates to the start page', () => { goToStartPage() }) + it('checks that Save is disabled', () => { + clickMenuBarFileButton() + expectFileMenuButtonToBeDisabled(FILE_MENU_BUTTON_SAVE_EXISTING) + closeFileMenuWithClick() + }) it(`changes vis type to ${TEST_VIS_TYPE_NAME}`, () => { changeVisType(TEST_VIS_TYPE_NAME) }) @@ -90,6 +96,11 @@ describe('saving an AO', () => { expectAOTitleToBeUnsaved() expectRouteToBeEmpty() }) + it('checks that Save is enabled', () => { + clickMenuBarFileButton() + expectFileMenuButtonToBeEnabled(FILE_MENU_BUTTON_SAVE_EXISTING) + closeFileMenuWithClick() + }) it('checks that Save as is disabled', () => { clickMenuBarFileButton() expectFileMenuButtonToBeDisabled(FILE_MENU_BUTTON_SAVEAS) @@ -103,12 +114,11 @@ describe('saving an AO', () => { it('checks that the url was changed', () => { expectRouteToBeAOId() }) - it('all File menu buttons are enabled', () => { + it('all File menu buttons but Save are enabled', () => { clickMenuBarFileButton() const enabledButtons = [ FILE_MENU_BUTTON_NEW, FILE_MENU_BUTTON_OPEN, - FILE_MENU_BUTTON_SAVE_EXISTING, FILE_MENU_BUTTON_SAVEAS, FILE_MENU_BUTTON_RENAME, FILE_MENU_BUTTON_TRANSLATE, @@ -175,21 +185,36 @@ describe('saving an AO', () => { }) }) - /* - describe('"save" for a saved AO created by others', () => { - it('navigates to the start page', () => { + describe('"save" a copied AO created by others', () => { + it('works after editing', () => { + const TEST_VIS_BY_OTHERS_NAME = 'ANC: 1-3 dropout rate Yearly' + const TEST_VIS_BY_OTHERS_NAME_UPDATED = `${TEST_VIS_BY_OTHERS_NAME} - updated` + + // navigates to the start page and opens an AO created by others goToStartPage() - }) - it('opens a random AO created by others', () => { - openRandomAOCreatedByOthers() - }) - it('checks that Save is disabled - WIP', () => { - clickMenuBarFileButton() - expectFileMenuButtonToBeDisabled(FILE_MENU_BUTTON_SAVEAS) - // TODO: This is not always true, as different AOs can have different sharing settings. - // @edoardo will add additional tests here later - closeFileMenuWithClick() + openAOByName(TEST_VIS_BY_OTHERS_NAME) + expectAOTitleToBeValue(TEST_VIS_BY_OTHERS_NAME) + + // saves AO using "Save As" + saveAOAs(TEST_VIS_BY_OTHERS_NAME_UPDATED) + expectAOTitleToBeValue(TEST_VIS_BY_OTHERS_NAME_UPDATED) + expectVisualizationToBeVisible() + + // edits the AO + openDimension(DIMENSION_ID_ORGUNIT) + deselectOrgUnitTreeItem('Western Area') + clickDimensionModalUpdateButton() + + // saves AO using "Save" + saveExistingAO() + expectAOTitleToNotBeDirty() + expectAOTitleToBeValue(TEST_VIS_BY_OTHERS_NAME_UPDATED) + expectVisualizationToBeVisible() + + // deletes AO + deleteAO() + expectRouteToBeEmpty() + expectStartScreenToBeVisible() }) }) - */ }) diff --git a/cypress/integration/start.cy.js b/cypress/integration/start.cy.js index f546d27c34..058ea1b97f 100644 --- a/cypress/integration/start.cy.js +++ b/cypress/integration/start.cy.js @@ -13,7 +13,6 @@ import { expectFileMenuButtonToBeDisabled, FILE_MENU_BUTTON_NEW, FILE_MENU_BUTTON_OPEN, - FILE_MENU_BUTTON_SAVE_NEW, FILE_MENU_BUTTON_SAVEAS, FILE_MENU_BUTTON_GETLINK, FILE_MENU_BUTTON_SHARE, @@ -75,11 +74,7 @@ describe('viewing the start screen', () => { }) it('primary File menu buttons are enabled and menu is closed with click', () => { clickMenuBarFileButton() - const enabledButtons = [ - FILE_MENU_BUTTON_NEW, - FILE_MENU_BUTTON_OPEN, - FILE_MENU_BUTTON_SAVE_NEW, - ] + const enabledButtons = [FILE_MENU_BUTTON_NEW, FILE_MENU_BUTTON_OPEN] enabledButtons.forEach((button) => expectFileMenuButtonToBeEnabled(button) ) diff --git a/i18n/ar.po b/i18n/ar.po index 580d685b36..16b77191f5 100644 --- a/i18n/ar.po +++ b/i18n/ar.po @@ -1,14 +1,14 @@ # # Translators: # KRG HIS , 2020 -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Hamza Assada <7amza.it@gmail.com>, 2022 # Viktor Varland , 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2022\n" "Language-Team: Arabic (https://app.transifex.com/hisp-uio/teams/100509/ar/)\n" @@ -217,9 +217,6 @@ msgstr "حدد فترة" msgid "Select years" msgstr "حدد الأعوام" -msgid "Interpretations" -msgstr "التفسيرات" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -488,11 +485,11 @@ msgstr "نمط وسيلة الإيضاح" msgid "Legend type" msgstr "نوع مفتاح الخريطة" -msgid "Use pre-defined legend per data item" -msgstr "استخدم مفتاح إيضاح معرف مسبقاً لكل عنصر بيانات" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "حدد مفتاح إيضاحي واحد للمخطط بالكامل" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "المفتاح الإيضاحي يغير من لون الخلفية" diff --git a/i18n/ar_IQ.po b/i18n/ar_IQ.po index 5fb0b4c094..898280ccd6 100644 --- a/i18n/ar_IQ.po +++ b/i18n/ar_IQ.po @@ -5,10 +5,10 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: KRG HIS , 2021\n" -"Language-Team: Arabic (Iraq) (https://www.transifex.com/hisp-uio/teams/100509/ar_IQ/)\n" +"Language-Team: Arabic (Iraq) (https://app.transifex.com/hisp-uio/teams/100509/ar_IQ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,7 +24,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -209,9 +209,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "التفسيرات" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -377,6 +374,12 @@ msgstr "تضمين التراكم" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "فاصل مجموعة الخانات" @@ -673,26 +676,17 @@ msgstr "الحد الأعلى" msgid "Options" msgstr "الخيارات" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -762,8 +756,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -802,6 +796,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/cs.po b/i18n/cs.po index a3bb154b74..00fb9f303f 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Jiří Podhorecký, 2022\n" "Language-Team: Czech (https://app.transifex.com/hisp-uio/teams/100509/cs/)\n" @@ -217,9 +217,6 @@ msgstr "Vybrat období" msgid "Select years" msgstr "Vybrat roky" -msgid "Interpretations" -msgstr "Interpretace" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -489,11 +486,11 @@ msgstr "Styl Legendy" msgid "Legend type" msgstr "Typ legendy" -msgid "Use pre-defined legend per data item" -msgstr "Použijte předdefinovanou legendu na datovou položku" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Vyberte jednu legendu pro celou vizualizaci" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Legenda mění barvu pozadí" diff --git a/i18n/da.po b/i18n/da.po index 9cbd92a204..f4204f6b6e 100644 --- a/i18n/da.po +++ b/i18n/da.po @@ -1,14 +1,14 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: phil_dhis2, 2020\n" -"Language-Team: Danish (https://www.transifex.com/hisp-uio/teams/100509/da/)\n" +"Last-Translator: Philip Larsen Donnelly, 2020\n" +"Language-Team: Danish (https://app.transifex.com/hisp-uio/teams/100509/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,7 +24,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -209,9 +209,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Interpretations" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -377,6 +374,12 @@ msgstr "" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "" @@ -673,26 +676,17 @@ msgstr "" msgid "Options" msgstr "" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -762,8 +756,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -802,6 +796,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/en.pot b/i18n/en.pot index 148b9e9dcb..8e76313004 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" -"PO-Revision-Date: 2023-05-30T12:32:59.044Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" +"PO-Revision-Date: 2023-09-06T13:41:14.540Z\n" msgid "All items" msgstr "All items" @@ -480,11 +480,11 @@ msgstr "Legend style" msgid "Legend type" msgstr "Legend type" -msgid "Use pre-defined legend per data item" -msgstr "Use pre-defined legend per data item" +msgid "Use pre-defined legend by data item" +msgstr "Use pre-defined legend by data item" -msgid "Select a single legend for the entire visualization" -msgstr "Select a single legend for the entire visualization" +msgid "Select a legend" +msgstr "Select a legend" msgid "Legend changes background color" msgstr "Legend changes background color" diff --git a/i18n/es.po b/i18n/es.po index c512898f2d..484d4d4474 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -1,7 +1,7 @@ # # Translators: # ericbp , 2020 -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Gabriela Rodriguez , 2020 # Pablo Pajuelo Cabezas , 2020 # Prabhjot Singh, 2021 @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Janeth Cruz, 2023\n" "Language-Team: Spanish (https://app.transifex.com/hisp-uio/teams/100509/es/)\n" @@ -226,9 +226,6 @@ msgstr "Seleccione un periodo" msgid "Select years" msgstr "Seleccionar años" -msgid "Interpretations" -msgstr "Interpretaciones" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -396,7 +393,7 @@ msgid "Include cumulative" msgstr "Incluir acumulado" msgid "Cumulative values" -msgstr "" +msgstr "Valores acumulativos" msgid "Show data item icon" msgstr "Mostrar el icono de elemento de datos" @@ -499,11 +496,11 @@ msgstr "Estilo de la leyenda" msgid "Legend type" msgstr "Tipo de leyenda" -msgid "Use pre-defined legend per data item" -msgstr "Utilizar leyenda predefinida por elemento de datos" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Seleccionar una única leyenda para toda la visualización" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "La leyenda cambia el color de fondo" @@ -579,10 +576,10 @@ msgid "Interquartile Range (IQR)" msgstr "Rango Intercuartil (IQR)" msgid "Z-score / Standard score" -msgstr "" +msgstr "Puntuación Z / Puntuación estándar " msgid "Modified Z-score" -msgstr "Z-score modificado" +msgstr "Puntuación Z modificada" msgid "Outlier analysis" msgstr "Análisis de valores atípicos" @@ -625,7 +622,7 @@ msgid "Polynomial" msgstr "Polinomio" msgid "Loess" -msgstr "" +msgstr "Loess" msgid "Row sub-totals" msgstr "Subtotales de fila" diff --git a/i18n/es_419.po b/i18n/es_419.po index 81185ac4c5..0647dbf5cf 100644 --- a/i18n/es_419.po +++ b/i18n/es_419.po @@ -1,14 +1,15 @@ # # Translators: # Jaime Bosque , 2022 +# Enzo Nicolas Rossi , 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-09-23T12:57:32.255Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: Jaime Bosque , 2022\n" -"Language-Team: Spanish (Latin America) (https://www.transifex.com/hisp-uio/teams/100509/es_419/)\n" +"Last-Translator: Enzo Nicolas Rossi , 2023\n" +"Language-Team: Spanish (Latin America) (https://app.transifex.com/hisp-uio/teams/100509/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -28,10 +29,10 @@ msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." -msgstr "" +msgstr "Tiene cambios sin guardar." msgid "Discard unsaved changes?" -msgstr "" +msgstr "¿Descartar los cambios no guardados?" msgid "" "Are you sure you want to leave this visualization? Any unsaved changes will " @@ -39,7 +40,7 @@ msgid "" msgstr "" msgid "No, cancel" -msgstr "" +msgstr "No, cancelar" msgid "Yes, leave" msgstr "" @@ -209,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -271,7 +269,7 @@ msgid "Last value (average in org unit hierarchy)" msgstr "" msgid "Min" -msgstr "" +msgstr "Mínimo" msgid "Max" msgstr "Máx" @@ -377,6 +375,12 @@ msgstr "" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "" @@ -559,7 +563,7 @@ msgid "Outlier detection method" msgstr "" msgid "Organisation unit" -msgstr "" +msgstr "Unidad organizativa" msgid "Parent organisation unit" msgstr "" @@ -686,21 +690,6 @@ msgid "" "Visually plot data on a world map. Data elements use separate map layers." msgstr "" -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" -msgstr "" - -msgid "Actual reports" -msgstr "" - -msgid "Actual reports on time" -msgstr "" - -msgid "Expected reports" -msgstr "" - msgid "No data available" msgstr "" @@ -768,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -808,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "Algo ha ido mal" @@ -854,7 +851,7 @@ msgid "Last month" msgstr "Mes anterior" msgid "Last 3 months" -msgstr "" +msgstr "Últimos 3 meses" msgid "Last 6 months" msgstr "" diff --git a/i18n/fr.po b/i18n/fr.po index da81837fd5..a75c7b3294 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -4,7 +4,7 @@ # Matthieu Pinard , 2019 # Karoline Tufte Lien , 2020 # Djibril Dione , 2020 -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Gabriela Rodriguez , 2020 # Viktor Varland , 2021 # Yayra Gomado , 2022 @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Edem Kossi , 2023\n" "Language-Team: French (https://app.transifex.com/hisp-uio/teams/100509/fr/)\n" @@ -228,9 +228,6 @@ msgstr "Sélectionner une période" msgid "Select years" msgstr "Sélectionner des années" -msgid "Interpretations" -msgstr "interprétations" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -504,11 +501,11 @@ msgstr "Style de légende" msgid "Legend type" msgstr "Type de légende" -msgid "Use pre-defined legend per data item" -msgstr "Utiliser une légende prédéfinie par élément de données" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Choisir une seule légende pour l'ensemble de la visualisation" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "La légende change la couleur d'arrière-plan" diff --git a/i18n/id.po b/i18n/id.po index e91d1a0b16..09b5352d52 100644 --- a/i18n/id.po +++ b/i18n/id.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Raja Fathurrahim, 2022\n" "Language-Team: Indonesian (https://app.transifex.com/hisp-uio/teams/100509/id/)\n" @@ -222,9 +222,6 @@ msgstr "Pilih periode" msgid "Select years" msgstr "Pilih tahun" -msgid "Interpretations" -msgstr "Interpretasi" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -496,11 +493,11 @@ msgstr "Gaya legenda" msgid "Legend type" msgstr "Tipe legenda" -msgid "Use pre-defined legend per data item" -msgstr "Gunakan legenda yang telah ditentukan sebelumnya per item data" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Pilih satu legenda untuk seluruh visualisasi" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Legenda mengubah warna latar belakang" diff --git a/i18n/km.po b/i18n/km.po index 7bfa6258e3..4d7c23b498 100644 --- a/i18n/km.po +++ b/i18n/km.po @@ -1,13 +1,13 @@ # # Translators: # Viktor Varland , 2020 -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # channara rin, 2023 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: channara rin, 2023\n" "Language-Team: Khmer (https://app.transifex.com/hisp-uio/teams/100509/km/)\n" @@ -211,9 +211,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "កន្លែងសន្ទនារ" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" diff --git a/i18n/lo.po b/i18n/lo.po index 7d7bce03ce..644680db45 100644 --- a/i18n/lo.po +++ b/i18n/lo.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Somkhit Bouavong , 2021 # Viktor Varland , 2021 # Thuy Nguyen , 2022 @@ -9,10 +9,10 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-08-25T09:58:02.683Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Saysamone Sibounma, 2022\n" -"Language-Team: Lao (https://www.transifex.com/hisp-uio/teams/100509/lo/)\n" +"Language-Team: Lao (https://app.transifex.com/hisp-uio/teams/100509/lo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -213,9 +213,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "ການແປຂໍ້ມູນ" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -381,6 +378,12 @@ msgstr "​ລວມ​ເອົາ​ທັງ​ການ​ສະ​ສົມ msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "ແຍກຕົວເລກເປັນກຸ່ມ" @@ -677,26 +680,17 @@ msgstr "ຂໍ້​ຈຳ​ກັດ​ສູງ​ສຸດ" msgid "Options" msgstr "ຈັດການ" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -766,8 +760,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -806,6 +800,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "ມີບາງຢ່າງຜິດພາດ" diff --git a/i18n/my.po b/i18n/my.po index 05d19737dc..bc4f249dc2 100644 --- a/i18n/my.po +++ b/i18n/my.po @@ -1,15 +1,15 @@ # # Translators: # Viktor Varland , 2020 -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: phil_dhis2, 2020\n" -"Language-Team: Burmese (https://www.transifex.com/hisp-uio/teams/100509/my/)\n" +"Last-Translator: Philip Larsen Donnelly, 2020\n" +"Language-Team: Burmese (https://app.transifex.com/hisp-uio/teams/100509/my/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Interpretations" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "" @@ -674,26 +677,17 @@ msgstr "" msgid "Options" msgstr "" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/nb.po b/i18n/nb.po index 2838bf5163..a822c90e46 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Karoline Tufte Lien , 2023\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" @@ -218,9 +218,6 @@ msgstr "Velg periode" msgid "Select years" msgstr "Velg år" -msgid "Interpretations" -msgstr "Tolkninger" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -492,11 +489,11 @@ msgstr "Tegnforklaringstil" msgid "Legend type" msgstr "Tegnforklaringtype" -msgid "Use pre-defined legend per data item" -msgstr "Bruk forhåndsdefinert tegnforklaring per datapunkt" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Velg en enkel tegnforklaring for hele tabellen" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Tegnforklaring endrer bakgrunnsfarge" diff --git a/i18n/nl.po b/i18n/nl.po index cc71b182b0..67ac49b507 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Enzo Nicolas Rossi , 2023\n" "Language-Team: Dutch (https://app.transifex.com/hisp-uio/teams/100509/nl/)\n" @@ -223,9 +223,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Interpretaties" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -492,10 +489,10 @@ msgstr "Legenda stijl" msgid "Legend type" msgstr "Legenda type" -msgid "Use pre-defined legend per data item" -msgstr "Gebruik vooraf gedefinieerde legenda per gegevensitem" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" +msgid "Select a legend" msgstr "" msgid "Legend changes background color" diff --git a/i18n/prs.po b/i18n/prs.po index 1a7ced0b9d..59c7ae1f16 100644 --- a/i18n/prs.po +++ b/i18n/prs.po @@ -1,14 +1,14 @@ # # Translators: -# phil_dhis2, 2021 +# Philip Larsen Donnelly, 2021 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" -"Last-Translator: phil_dhis2, 2021\n" -"Language-Team: Persian (Afghanistan) (https://www.transifex.com/hisp-uio/teams/100509/fa_AF/)\n" +"Last-Translator: Philip Larsen Donnelly, 2021\n" +"Language-Team: Persian (Afghanistan) (https://app.transifex.com/hisp-uio/teams/100509/fa_AF/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,7 +24,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -209,9 +209,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "تفسیر ها" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -377,6 +374,12 @@ msgstr "شامل تجمعی" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "واحد سازی گروپ ارقام" @@ -673,26 +676,17 @@ msgstr "حد بالا" msgid "Options" msgstr "گزینه‌ها" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -762,8 +756,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -802,6 +796,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/ps.po b/i18n/ps.po index fca42da5de..f3dc8a54b5 100644 --- a/i18n/ps.po +++ b/i18n/ps.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2021 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Pashto (https://www.transifex.com/hisp-uio/teams/100509/ps/)\n" +"Language-Team: Pashto (https://app.transifex.com/hisp-uio/teams/100509/ps/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "شفاهي ژباړې" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "جمع کول یا تراکم په کې شامل کړئ" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "د اعدادو د ګروپ جلا کوونکی" @@ -674,26 +677,17 @@ msgstr "وروستۍ حد" msgid "Options" msgstr "ګزینه" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/pt.po b/i18n/pt.po index 0ef7edc2a5..b7f044eb84 100644 --- a/i18n/pt.po +++ b/i18n/pt.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Gabriela Rodriguez , 2020 # Viktor Varland , 2021 # Sheila André , 2021 @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Emilio Mosse, 2022\n" "Language-Team: Portuguese (https://app.transifex.com/hisp-uio/teams/100509/pt/)\n" @@ -224,9 +224,6 @@ msgstr "Selecionar periodos " msgid "Select years" msgstr "Selecionar anos " -msgid "Interpretations" -msgstr "Interpretações" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -499,11 +496,11 @@ msgstr "Titulo da Legenda " msgid "Legend type" msgstr "Tipo de legenda" -msgid "Use pre-defined legend per data item" -msgstr "Use legenda predefinida por item de dados" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Selecione uma única legenda para toda a visualização" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "A legenda muda a cor do plano de fundo" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po index dc4d08d655..e8a673119f 100644 --- a/i18n/pt_BR.po +++ b/i18n/pt_BR.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2020 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2020\n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/hisp-uio/teams/100509/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (https://app.transifex.com/hisp-uio/teams/100509/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Interpretações" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "Incluir cumulativa" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "" @@ -674,26 +677,17 @@ msgstr "Limite superior" msgid "Options" msgstr "Opções" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/ru.po b/i18n/ru.po index 0123804f05..29e07406ca 100644 --- a/i18n/ru.po +++ b/i18n/ru.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Saurabh Leekha , 2021 # Ulanbek Abakirov , 2022 # Yury Rogachev , 2022 @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2022\n" "Language-Team: Russian (https://app.transifex.com/hisp-uio/teams/100509/ru/)\n" @@ -213,9 +213,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Интерпретации" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" diff --git a/i18n/sv.po b/i18n/sv.po index 8be881bcf9..da42086d6e 100644 --- a/i18n/sv.po +++ b/i18n/sv.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2021 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Swedish (https://www.transifex.com/hisp-uio/teams/100509/sv/)\n" +"Language-Team: Swedish (https://app.transifex.com/hisp-uio/teams/100509/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "tolkningar" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "" @@ -674,26 +677,17 @@ msgstr "" msgid "Options" msgstr "Alternativ" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/tet.po b/i18n/tet.po index 0c1c8ef65f..4167b98e4b 100644 --- a/i18n/tet.po +++ b/i18n/tet.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2021 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2021\n" -"Language-Team: Tetum (Tetun) (https://www.transifex.com/hisp-uio/teams/100509/tet/)\n" +"Language-Team: Tetum (Tetun) (https://app.transifex.com/hisp-uio/teams/100509/tet/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Interpretasoens" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "Inklui kumulativu" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "Separador grupu díjitu" @@ -674,26 +677,17 @@ msgstr "Limite leten" msgid "Options" msgstr "Opsoens" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/tg.po b/i18n/tg.po index 6d1468ba59..63a868014e 100644 --- a/i18n/tg.po +++ b/i18n/tg.po @@ -1,15 +1,15 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2020 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-06-17T07:32:29.449Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2020\n" -"Language-Team: Tajik (https://www.transifex.com/hisp-uio/teams/100509/tg/)\n" +"Language-Team: Tajik (https://app.transifex.com/hisp-uio/teams/100509/tg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Untitled {{visualizationType}} visualization, {{date}}" msgstr "" -msgid "\"{{deletedObject}}\" successfully deleted." +msgid "\"{{- deletedObject}}\" successfully deleted." msgstr "" msgid "You have unsaved changes." @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "Тафсирҳо" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -378,6 +375,12 @@ msgstr "Бо ҷамъшавӣ" msgid "Cumulative values" msgstr "" +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + msgid "Digit group separator" msgstr "Ҷудокунандаи гурӯҳи рақамҳо" @@ -674,26 +677,17 @@ msgstr "Ҳудуди болоӣ" msgid "Options" msgstr "Имконот" -msgid "Open as Map" -msgstr "" - -msgid "" -"Visually plot data on a world map. Data elements use separate map layers." -msgstr "" - -msgid "Reporting rate" -msgstr "" - -msgid "Reporting rate on time" +msgid "Change org unit" msgstr "" -msgid "Actual reports" +msgid "{{level}} level in {{orgunit}}" msgstr "" -msgid "Actual reports on time" +msgid "Open as Map" msgstr "" -msgid "Expected reports" +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." msgstr "" msgid "No data available" @@ -763,8 +757,8 @@ msgid "There's a problem with the layout" msgstr "" msgid "" -"A single indicator must be the only data item when using indicators as Data " -"in Filter." +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." msgstr "" msgid "Data Element Group Sets and Reporting Rates cannot be used together." @@ -803,6 +797,14 @@ msgstr "" msgid "The level or group selections didn't return any organization units." msgstr "" +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + msgid "Something went wrong" msgstr "" diff --git a/i18n/uk.po b/i18n/uk.po index 68edb8466a..a2dd4c7617 100644 --- a/i18n/uk.po +++ b/i18n/uk.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Nadiia , 2021 # Viktor Varland , 2021 # Wanda , 2021 @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Éva Tamási, 2022\n" "Language-Team: Ukrainian (https://app.transifex.com/hisp-uio/teams/100509/uk/)\n" @@ -222,9 +222,6 @@ msgstr "Виберіть період" msgid "Select years" msgstr "Виберіть роки" -msgid "Interpretations" -msgstr "Інтерпретації" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -496,13 +493,11 @@ msgstr "Стиль умовних позначень" msgid "Legend type" msgstr "Тип умовних позначень" -msgid "Use pre-defined legend per data item" +msgid "Use pre-defined legend by data item" msgstr "" -"Використовувати попередньо визначені умовні позначення для кожного елемента " -"даних" -msgid "Select a single legend for the entire visualization" -msgstr "Виберіть одні умовні позначення для всієї візуалізації" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Умовні позначення змінюють колір тла" diff --git a/i18n/ur.po b/i18n/ur.po index 562bb965b0..a367e72ef4 100644 --- a/i18n/ur.po +++ b/i18n/ur.po @@ -1,12 +1,12 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-05-30T12:32:59.044Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Viktor Varland , 2022\n" "Language-Team: Urdu (https://app.transifex.com/hisp-uio/teams/100509/ur/)\n" @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "تشریحات" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" diff --git a/i18n/uz.po b/i18n/uz_UZ_Cyrl.po similarity index 98% rename from i18n/uz.po rename to i18n/uz_UZ_Cyrl.po index 1fd0e9fc1a..d18b54ab84 100644 --- a/i18n/uz.po +++ b/i18n/uz_UZ_Cyrl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Ibatov , 2022\n" "Language-Team: Uzbek (Cyrillic) (https://app.transifex.com/hisp-uio/teams/100509/uz@Cyrl/)\n" @@ -218,9 +218,6 @@ msgstr "Даврни танланг" msgid "Select years" msgstr "Йилни танланг" -msgid "Interpretations" -msgstr "Талқинлар" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -492,11 +489,11 @@ msgstr "Таъриф тури" msgid "Legend type" msgstr "Таъриф тури" -msgid "Use pre-defined legend per data item" -msgstr "Ҳар бир маълумот учун олдиндан белгиланган таърифдан фойдаланинг" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Бутун визуализация учун битта таърифни танланг" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Таъриф фон рангини ўзгартиради" diff --git a/i18n/uz_UZ_Latn.po b/i18n/uz_UZ_Latn.po new file mode 100644 index 0000000000..4ad1158492 --- /dev/null +++ b/i18n/uz_UZ_Latn.po @@ -0,0 +1,1120 @@ +# +# Translators: +# Yury Rogachev , 2022 +# +msgid "" +msgstr "" +"Project-Id-Version: i18next-conv\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" +"PO-Revision-Date: 2019-06-25 18:46+0000\n" +"Last-Translator: Yury Rogachev , 2022\n" +"Language-Team: Uzbek (Latin) (https://app.transifex.com/hisp-uio/teams/100509/uz@Latn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uz@Latn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "All items" +msgstr "" + +msgid "Rename successful" +msgstr "Muvaffaqiyatli qayta nomlash" + +msgid "Untitled {{visualizationType}} visualization, {{date}}" +msgstr "Nomsiz {{visualizationType}} vizualizatsiya, {{date}}" + +msgid "\"{{- deletedObject}}\" successfully deleted." +msgstr "" + +msgid "You have unsaved changes." +msgstr "Sizda saqlanmagan oʼzgartirishlar mavjud." + +msgid "Discard unsaved changes?" +msgstr "Saqlanmagan oʼzgarishlar bekor qilinsinmi?" + +msgid "" +"Are you sure you want to leave this visualization? Any unsaved changes will " +"be lost." +msgstr "" +"Haqiqatdan ham ushbu vizualizatsiyani tark etmoqchimisiz? Har qanday " +"saqlanmagan oʼzgartirishlar yoʼqotiladi." + +msgid "No, cancel" +msgstr "Yoʼq, bekor qiling" + +msgid "Yes, leave" +msgstr "Ha, qoldirib ketish" + +msgid "Add to {{axisName}}" +msgstr "{{axisName}} ga qoʼshing" + +msgid "" +"'{{visualizationType}}' is intended to show a single data item. Only the " +"first item will be used and saved." +msgstr "" +"{{visualizationType}}' bitta maʼlumot elementini koʼrsatishga moʼljallangan." +" Faqat birinchi element ishlatiladi va saqlanadi." + +msgid "" +"'{{visualiationType}}' is intended to show maximum {{maxNumber}} number of " +"items. Only the first {{maxNumber}} items will be used and saved." +msgstr "" +"{{visualiationType}}' maksimal {{maxNumber}} ta sonni koʼrsatishga " +"moʼljallangan. Faqat birinchi {{maxNumber}} ta element ishlatiladi va " +"saqlanadi." + +msgid "" +"'Scatter' is intended to show a single data item per axis. Only the first " +"item will be used and saved." +msgstr "" +"Taqsimlovchi har bir oʼqda yagona maʼlumotlar elementini koʼrsatish uchun " +"moʼljallangan. Faqat birinchi elementdan foydalaniladi va saqlanadi" + +msgid "Vertical" +msgstr "Vertikal" + +msgid "Horizontal" +msgstr "Gorizontal" + +msgid "Main dimensions" +msgstr "Umumiy oʼlchamlar" + +msgid "Other dimensions" +msgstr "Boshqa oʼlchamlar" + +msgid "Your dimensions" +msgstr "Sizning sozlamalaringiz" + +msgid "Filter dimensions" +msgstr "Filtr sozlamalari" + +msgid "Data value set" +msgstr "Maʼlumotlar qiymati oʼrnatilgan" + +msgid "JSON" +msgstr "JSON" + +msgid "XML" +msgstr "XML" + +msgid "Other formats" +msgstr "Boshqa shakllar" + +msgid "JRXML" +msgstr "JRXML" + +msgid "Raw data SQL" +msgstr "Xom maʼlumotlar SQL" + +msgid "Plain data source" +msgstr "Oddiy maʼlumotlar manbai" + +msgid "Microsoft Excel" +msgstr "" + +msgid "CSV" +msgstr "CSV" + +msgid "Advanced" +msgstr "Ilgʼor" + +msgid "Graphics" +msgstr "Grafika" + +msgid "Image (.png)" +msgstr "Rasm (.png)" + +msgid "PDF (.pdf)" +msgstr "PDF (.pdf)" + +msgid "Download data from this date" +msgstr "" + +msgid "Metadata ID scheme" +msgstr "MetaMaʼlumot ID sxemasi" + +msgid "ID" +msgstr "ID" + +msgid "Code" +msgstr "Kod" + +msgid "Name" +msgstr "Ismi" + +msgid "Table layout" +msgstr "Jadval maketi" + +msgid "Excel (.xls)" +msgstr "Excel (.xls)" + +msgid "CSV (.csv)" +msgstr "CSV (.csv)" + +msgid "HTML (.html)" +msgstr "HTML (.html)" + +msgid "Download" +msgstr "Yuklash" + +msgid "Hide" +msgstr "Berkitish" + +msgid "All" +msgstr "Barchasi" + +msgid "{{total}} of {{axisMaxNumberOfItems}} selected" +msgstr "{{total}} / {{axisMaxNumberOfItems}} dan tanlandi" + +msgid "{{total}} selected" +msgstr "{{total}} tanlandi" + +msgid "{{dimensionName}} is locked to {{axisName}} for {{visTypeName}}" +msgstr "{{dimensionName}} {{visTypeName}} uchun {{axisName}} da qulflangan" + +msgid "Not available for Scatter" +msgstr "Tarqatish uchun mavjud emas" + +msgid "Add Assigned Categories" +msgstr "Belgilangan kategoriyalar qoʼshilsin" + +msgid "Swap with {{axisName}} axis" +msgstr "{{AxisName}} oʼqlari joyini almashtirish" + +msgid "vertical" +msgstr "" + +msgid "horizontal" +msgstr "" + +msgid "None selected" +msgstr "Biror nima tanlanmagan" + +msgid "Only '{{- name}}' in use" +msgstr "Foydalanish uchun faqatgina '{{- name}}'" + +msgid "Only '{{number}}' in use" +msgstr "Foydalanish uchun faqatgina '{{number}}'" + +msgid "All items are selected" +msgstr "" + +msgid "Levels" +msgstr "Bosqichlar/Qavatlar" + +msgid "Groups" +msgstr "Гуруҳлар" + +msgid "And 1 other..." +msgstr "Yana bir boshqasi" + +msgid "And {{numberOfItems}} others..." +msgstr "Yana bir boshqasi {{numberOfItems}}" + +msgid "Select a period" +msgstr "Davrni tanlang" + +msgid "Select years" +msgstr "Yilni tanlang" + +msgid "" +"This visualization can't be deleted because it is used on one or more " +"dashboards" +msgstr "" +"Ushbu vizualizatsiyani oʼchirib boʼlmaydi, chunki u bir yoki bir necha " +"informatsiyaon panel tomonidan foydalanilmoqda" + +msgid "Unsaved visualization" +msgstr "Saqlanmagan vizualizatsiya" + +msgid "Edited" +msgstr "Tahrirlangan" + +msgid "Update" +msgstr "Yangilash" + +msgid "Getting started" +msgstr "Ish boshlanganida" + +msgid "" +"All dimensions that you can use to build visualizations are shown in the " +"left sidebar" +msgstr "" +"Vizualizatsiyani shakllantirish uchun foydalanilgan barcha oʼlchamlar, yon " +"panelda koʼrsatilgan" + +msgid "Add dimensions to the layout above" +msgstr "Yuqori qavat oʼlchamlarini qoʼshing" + +msgid "Click a dimension to add or remove items" +msgstr "" +"Elementlarni qoʼshish yoki oʼchirish uchun, oʼlchamlar tugmasini bosing" + +msgid "Your most viewed charts and tables" +msgstr "Sizning eng koʼrilgan diagramma va jadvallaringiz" + +msgid "Aggregation type" +msgstr "Birlashtirish turi" + +msgid "Overrides aggregation type for all data values." +msgstr "" +"Maʼlumotlarning barcha qiymatlari uchun agregatsiya turini aniqlab beradi." + +msgid "By data element" +msgstr "Maʼlumotlar elementi boʼyicha" + +msgid "Count" +msgstr "Hisoblash" + +msgid "Average" +msgstr "Oʼrtacha" + +msgid "Average (sum in org unit hierarchy)" +msgstr "Oʼrtacha (tashkiliy birlik ierarxiyasi jamlanmasi)" + +msgid "Sum" +msgstr "Jamlash" + +msgid "Last value" +msgstr "Oxirgi qiymat" + +msgid "Last value (average in org unit hierarchy)" +msgstr "Oxirgi qiymat (tashkiliy birliklar ierarxiyasi oʼrtacha qiymati)" + +msgid "Min" +msgstr "Minimum" + +msgid "Max" +msgstr "Maksimum" + +msgid "Standard deviation" +msgstr "Standart ogʼish" + +msgid "Variance" +msgstr "Nomuvofiqlik" + +msgid "Data approved at level" +msgstr "Maʼlumotlar tasdiqlangan daraja" + +msgid "Select from predefined levels" +msgstr "oldindan belgilangan darajalardan tanlang" + +msgid "Loading data approval levels" +msgstr "Maʼlumotlarni tasdiqlash darajalari yuklanmoqda" + +msgid "Decimals" +msgstr "Oʼnli kasrlar" + +msgid "Auto" +msgstr "Аvto" + +msgid "Labels" +msgstr "Yorliqlar" + +msgid "Axis range" +msgstr "Oʼqlar diapazoni" + +msgid "Values outside of the range will not be displayed" +msgstr "Diapazondan tashqari qiymatlar aks ettirilmaydi" + +msgid "" +"Number of axis tick steps, including the min and max. A value of 2 or lower " +"will be ignored." +msgstr "" +"Oʼq boʼyicha qadamlar soni, minimum va maksimumni ichiga olgan holda. 2 va " +"undan past qiymat qabul qilinmaydi." + +msgid "Steps" +msgstr "Qadamlar" + +msgid "Axis title" +msgstr "Oʼq sarlavhasi" + +msgid "Auto generated from axis items" +msgstr "" + +msgid "None" +msgstr "Yoʼq" + +msgid "Custom" +msgstr "Odatiy" + +msgid "Add a title" +msgstr "Sarlavha qoʼshish" + +msgid "Reset style to default" +msgstr "" + +msgid "Base line" +msgstr "Bazaviy chiziq" + +msgid "Column sub-totals" +msgstr "Ustunning oraliq yigʼindilari" + +msgid "Columns totals" +msgstr "Ustunlar boʼyicha yigʼindi" + +msgid "Default" +msgstr "Standart" + +msgid "Basic" +msgstr "" + +msgid "Extended" +msgstr "" + +msgid "Bright" +msgstr "Yorqin" + +msgid "Dark" +msgstr "Toʼq rang" + +msgid "Gray" +msgstr "Kulrang" + +msgid "Color blind" +msgstr "Rangsiz" + +msgid "Patterns" +msgstr "Naqshlar" + +msgid "Event data" +msgstr "Hodisa/Tadbir maʼlumotlari" + +msgid "Only include completed events" +msgstr "Faqat tugallangan hodisa/tadbirlarni oʼz ichiga oladi" + +msgid "Include cumulative" +msgstr "Kumulyatsiyani oʼz ichiga oladi" + +msgid "Cumulative values" +msgstr "Kumulyativ qiymatlar" + +msgid "Show data item icon" +msgstr "" + +msgid "If the data item has an icon, display it next to the value" +msgstr "" + +msgid "Digit group separator" +msgstr "Raqamlar guruhini taqsimlovchi" + +msgid "Space" +msgstr "Oraliq (maydon)" + +msgid "Comma" +msgstr "Vergul" + +msgid "Display density" +msgstr "Koʼrinish zichligi" + +msgid "Comfortable" +msgstr "Qulay" + +msgid "Normal" +msgstr "Meʼyoriy" + +msgid "Compact" +msgstr "Zich" + +msgid "Extreme lines" +msgstr "" + +msgid "Calculated as a percent, usually 1%, of the total values along an axis" +msgstr "" + +msgid "Extreme line % detection" +msgstr "" + +msgid "Number" +msgstr "Tartib raqami" + +msgid "Fix column headers to top of table" +msgstr "" + +msgid "There aren’t any column headers because Columns is empty." +msgstr "" + +msgid "Fix row headers to left of table" +msgstr "" + +msgid "There aren’t any row headers because Rows is empty." +msgstr "" + +msgid "Font size" +msgstr "Shrift oʼlchami" + +msgid "Large" +msgstr "Katta" + +msgid "Small" +msgstr "Kichik" + +msgid "Hide empty columns" +msgstr "Boʼsh ustunlarni berkitish" + +msgid "Hide empty categories" +msgstr "Boʼsh kategoriyalarni berkitish" + +msgid "Before first" +msgstr "Oldingi bet" + +msgid "After last" +msgstr "Oxirgidan keyingi" + +msgid "Before first and after last" +msgstr "Birinchidan oldingi va oxirgidan keyingi" + +msgid "Hide empty rows" +msgstr "Boʼsh qatorlarni berkitish" + +msgid "Table subtitle" +msgstr "Jadval taglavhasi" + +msgid "Chart subtitle" +msgstr "Diagramma sharhi" + +msgid "Auto generated" +msgstr "Аvtomatik ravishda yaratilgan" + +msgid "Chart title" +msgstr "Diagramma sarlavhasi" + +msgid "Use legend for chart colors" +msgstr "" + +msgid "Legend style" +msgstr "Taʼrif turi" + +msgid "Legend type" +msgstr "Taʼrif turi" + +msgid "Use pre-defined legend by data item" +msgstr "" + +msgid "Select a legend" +msgstr "" + +msgid "Legend changes background color" +msgstr "Taʼrif fon rangini oʼzgartiradi" + +msgid "Legend changes text color" +msgstr "Taʼrif matn rangini oʼzgartiradi" + +msgid "Legend" +msgstr "Taʼrif" + +msgid "Select from legends" +msgstr "Taʼriflardan soʼrang" + +msgid "Loading legends" +msgstr "Taʼriflar yuklanmoqda" + +msgid "" +"You can set a minimum or maximum value. This will apply to the entire " +"visualization, all values outside of the minimum/maximum range will not be " +"displayed" +msgstr "" + +msgid "Minimum data value" +msgstr "Maʼlumotlarning minimal qiymati" + +msgid "Maximum data value" +msgstr "Maʼlumotlarning maksimal qiymati" + +msgid "Clear min/max limits" +msgstr "Minimal/maksimal chegaralarini aniqlashtiring" + +msgid "No space between bars/columns" +msgstr "Barlar/ustunlar orasida boʼsh joy yoʼq" + +msgid "Number type" +msgstr "Raqam turi" + +msgid "Display the value of percentages of the total" +msgstr "Jamidan foizlar qiymatini koʼrsatish" + +msgid "Value" +msgstr "Qiymat" + +msgid "Percentage of row" +msgstr "Qator foizi" + +msgid "Percentage of column" +msgstr "Ustun foizi" + +msgid "" +"Each detection method identifies outliers in different ways and suits " +"different data. Check the documentation for help to choose the right outlier" +" detection method" +msgstr "" + +msgid "Threshold factor" +msgstr "" + +msgid "" +"A high value is more sensitive so fewer data items will be identified as " +"outliers" +msgstr "" + +msgid "Interquartile Range (IQR)" +msgstr "" + +msgid "Z-score / Standard score" +msgstr "" + +msgid "Modified Z-score" +msgstr "" + +msgid "Outlier analysis" +msgstr "" + +msgid "" +"Outlier analysis detects and highlights data items that are markedly " +"different from the rest of the data" +msgstr "" + +msgid "Outlier detection method" +msgstr "" + +msgid "Organisation unit" +msgstr "Tashkiliy birlik" + +msgid "Parent organisation unit" +msgstr "Yuqori tashkilot boʼlimi" + +msgid "Reporting period" +msgstr "Hisobot davri" + +msgid "Stacked values add up to 100%" +msgstr "Umumiy yigʼindisi 100% ni tashkil etadi" + +msgid "Include regression" +msgstr "Regressiyani oʼz ichiga oladi" + +msgid "Title" +msgstr "Sarlavha" + +msgid "Trend line" +msgstr "Yoʼnalish qatori" + +msgid "Linear" +msgstr "Chiziqli" + +msgid "Polynomial" +msgstr "Koʼp boʼgʼimli" + +msgid "Loess" +msgstr "Siljuvchi" + +msgid "Row sub-totals" +msgstr "Qatorning oraliq yigʼindisi" + +msgid "Row totals" +msgstr "Qator yigʼindisi" + +msgid "Data item" +msgstr "Maʼlumot elementi" + +msgid "Visualization type" +msgstr "Vizualizatsiya turi" + +msgid "Axis {{axisId}}" +msgstr "Oʼqlar {{axisId}}" + +msgid "Series is empty" +msgstr "Seriya boʼsh" + +msgid "Options for selected items will be available here" +msgstr "Tanlangan elementlar variantlari shu yerda mavjud" + +msgid "No Series options" +msgstr "Hech qanday seriya variantalari yoʼq" + +msgid "There aren't any Series options for this visualization type" +msgstr "Ushbu vizual koʼrinish uchun xech bir variant mavjud emas" + +msgid "Series options unavailable" +msgstr "Seriya parametrlari mavjud emas" + +msgid "" +"Series options are not available when using relative selections for periods," +" org units or categories" +msgstr "" +"Davrlar, tashkiliy boʼlimlar yoki toifalar uchun nisbiy tanlovlardan " +"foydalanilganda ketma-ket variantlar mavjud emas" + +msgid "" +"Series options are not available when a series item has an \"All items\" " +"selection" +msgstr "" + +msgid "Value labels" +msgstr "Qiymat yorliqlari" + +msgid "Dimension labels" +msgstr "Oʼlcham qiymatlari" + +msgid "Display organisation unit hierarchy" +msgstr "Tashkiliy boʼlim ierarxiyasini namoyish qilish" + +msgid "Show legend key" +msgstr "Kalit taʼrifni koʼrsating" + +msgid "Show series key" +msgstr "" + +msgid "Skip rounding" +msgstr "Soddalashtirish oʼtkazib yuborilsin" + +msgid "Custom sort order" +msgstr "Maxsus saralash tartibi" + +msgid "Low to high" +msgstr "Pastdan yuqoriga" + +msgid "High to low" +msgstr "Yuqoridan pastga" + +msgid "Add a subtitle" +msgstr "Taglavha qoʼshing" + +msgid "Target line" +msgstr "Maqsad chegara chizigʼi" + +msgid "Size" +msgstr "Oʼlcham" + +msgid "Position" +msgstr "Lavozimi" + +msgid "Top limit" +msgstr "Yuqori chegara" + +msgid "Options" +msgstr "Variant" + +msgid "Change org unit" +msgstr "" + +msgid "{{level}} level in {{orgunit}}" +msgstr "" + +msgid "Open as Map" +msgstr "Xarita sifatida ochish" + +msgid "" +"Visually plot data on a world map. Data elements use separate map layers." +msgstr "" +"Jahon xaritasiga maʼlumotlarni vizual kiriting. Maʼlumotlar elementlari " +"xaritaning alohida qavatlaridan foydalanadi." + +msgid "No data available" +msgstr "" + +msgid "" +"The selected dimensions didn’t return any data. There may be no data, or you" +" may not have access to it." +msgstr "" +"Tanlangan parametrlar asosida hech qanday maʼlumotlar topilmadi. Maʼlumotlar" +" yoʼq yoki ulargadan foydalanish huquqi mavjud emas." + +msgid "{{axisName}} is empty" +msgstr "{{axisName}} boʼsh" + +msgid "Add at least one item to {{axisName}}." +msgstr "{{axisName}} uchun kamida bir elementni kiriting" + +msgid "{{columnsAxisName}} and {{rowsAxisName}} are empty" +msgstr "{{columnsAxisName}} va {{rowsAxisName}} boʼsh" + +msgid "" +"Add at least one item to {{columnsAxisName}} or {{rowsAxisName}} to create a" +" {{visualizationType}}." +msgstr "" +"{{visualizationType}} yaratish uchun qoʼyidagi oʼqlarga {{columnsAxisName}} " +"yoki {{rowsAxisName}} kamida bir elementni qoʼshing." + +msgid "No period selected" +msgstr "Davr tanlanmagan" + +msgid "" +"{{visualizationType}} must have at least one period selected in {{axes}}." +msgstr "" +"{{visualizationType}} kamida bir davrga ega boʼlmogʼi lozim, tanlangan oʼqda" +" {{axes}}." + +msgid "Add organisation units to {{axisName}}." +msgstr "{{AxisName}} oʼqiga tashkiliy boʼlimlar qoʼshish" + +msgid "Vertical is empty" +msgstr "Vertikal oʼq boʼsh" + +msgid "Add a data item to the vertical axis." +msgstr "Vertikal oʼqqa malumotlar elementini qoʼshish." + +msgid "Horizontal is empty" +msgstr "Gorizontal oʼq boʼsh" + +msgid "Add a data item to the horizontal axis." +msgstr "Gorizontal oʼqqa malumotlar elementini qoʼshish." + +msgid "Axes data items are the same" +msgstr "Oʼqlarning maʼlumotlar elementi toʼgʼri keladi" + +msgid "" +"The horizontal and vertical axes have the same data item. Scatter chart axes" +" must have different data for each axis." +msgstr "" +"Gorizontal va vertikal oʼqlar bir xil maʼlumotlar elementini saqlaydi. " +"Nuqtali diagramma oʼqlari har qaysi oʼq uchun alohida maʼlumotlarga ega " +"boʼlishi lozim." + +msgid "No data selected" +msgstr "Maʼlumot tanlanmagan" + +msgid "" +"{{visualizationType}} must have at least one data item or data element group" +" set item in {{axes}}." +msgstr "" +"{{visualizationType}} kamida bir maʼlumot elementi yoki element guruhi " +"toʼplamiga ega boʼlmogʼi lozim, tanlangan oʼqda {{axes}}." + +msgid "{{visualizationType}} must have at least one data item in {{axes}}." +msgstr "" +"{{visualizationType}} kamida bir maʼlumot elementi ega boʼlmogʼi lozim, " +"tanlangan oʼqda {{axes}}." + +msgid "There's a problem with the layout" +msgstr "Bu yerda qatlam maʼlumotlarida xatolik" + +msgid "" +"A single indicator or calculation must be the only data item when using " +"indicators or calculations as Data in Filter." +msgstr "" + +msgid "Data Element Group Sets and Reporting Rates cannot be used together." +msgstr "" +"Maʼlumotlar elementlari guruhi toʼplamlari va hisobot stavkalarini " +"birgalikda ishlatib boʼlmaydi." + +msgid "There is a problem with this {{visualizationType}} visualization." +msgstr "" +"Ushbu {{visualizationType}} vizualizatsiya bilan bogʼliq muammo mavjud." + +msgid "There was a problem getting the data from the server." +msgstr "Serverdan maʼlumotlarni olishda muammo yuz berdi." + +msgid "Assigned Categories can only be used with data elements" +msgstr "" +"Tayinlangan toifalardan faqat maʼlumotlar elementlaridan foydalanish mumkin" + +msgid "" +"Fix this problem by selecting data elements or removing Assigned Categories." +msgstr "" +"Maʼlumot elementlarini tanlash yoki tayinlangan toifalarni olib tashlash " +"orqali ushbu muammoni hal qiling." + +msgid "Assigned Categories cannot be used as Filter" +msgstr "Belgilangan toifalarni Filtr sifatida ishlatib boʼlmaydi" + +msgid "Fix this problem by moving or removing Assigned Categories." +msgstr "" +"Belgilangan toifalarni koʼchirish yoki olib tashlash orqali ushbu muammoni " +"hal qiling." + +msgid "Visualization not found" +msgstr "Vizualizatsiya topilmadi" + +msgid "" +"The visualization you are trying to view could not be found, the ID could be" +" incorrect or it could have been deleted." +msgstr "" +"Siz koʼrmoqchi boʼlgan vizualizatsiya topilmadi, identifikator notoʼgʼri " +"yoki oʼchirilgan boʼlishi mumkin." + +msgid "No organization units found" +msgstr "" + +msgid "The level or group selections didn't return any organization units." +msgstr "" + +msgid "Invalid data type" +msgstr "" + +msgid "" +"The selected data dimensions didn't return any valid data. This " +"visualization type can only display numerical data." +msgstr "" + +msgid "Something went wrong" +msgstr "Nimadir notoʼgʼri bajarildi" + +msgid "or" +msgstr "yoki" + +msgid "Today" +msgstr "Bugun" + +msgid "Yesterday" +msgstr "Kecha" + +msgid "Last 3 days" +msgstr "Oxirgi 3 kun" + +msgid "Last 7 days" +msgstr "Oxirgi 7 kun" + +msgid "Last 14 days" +msgstr "Oxirgi 14 kun" + +msgid "This week" +msgstr "Ushbu hafta" + +msgid "Last week" +msgstr "Oxirgi hafta" + +msgid "Last 4 weeks" +msgstr "Oxirgi 4 hafta" + +msgid "Last 12 weeks" +msgstr "Oxirgi 12 hafta" + +msgid "Last 52 weeks" +msgstr "Oxirgi 52 hafta" + +msgid "Weeks this year" +msgstr "Haftalar ayni yilda" + +msgid "This month" +msgstr "Ushbu oy" + +msgid "Last month" +msgstr "Oxirgi oy" + +msgid "Last 3 months" +msgstr "Oxirgi 3 oy" + +msgid "Last 6 months" +msgstr "Oxirgi 6 oy" + +msgid "Last 12 months" +msgstr "Oxirgi 12 oy" + +msgid "Months this year" +msgstr "Oylar ayni yilda" + +msgid "This bimonth" +msgstr "Ushbu juft oylik" + +msgid "Last bimonth" +msgstr "Oxirgi juft oylik" + +msgid "Last 6 bimonths" +msgstr "Oxirgi juft yarim yillik" + +msgid "Bimonths this year" +msgstr "Ushbu yildagi juft oylar" + +msgid "This quarter" +msgstr "Ushbu kvartal" + +msgid "Last quarter" +msgstr "Oxirgi kvartal" + +msgid "Last 4 quarters" +msgstr "Oxirgi 4 kvartal" + +msgid "Quarters this year" +msgstr "Ushbu yildagi kvartallar" + +msgid "This six-month" +msgstr "Ushbu yarim yillik" + +msgid "Last six-month" +msgstr "Oxirgi 6 oy" + +msgid "Last 2 six-months" +msgstr "Oxirgi 2 ta 6 oylik" + +msgid "This financial year" +msgstr "Ushbu moliyaviy yil" + +msgid "Last financial year" +msgstr "Oxirgi moliyaviy yil" + +msgid "Last 5 financial years" +msgstr "Oxirgi 5 moliyaviy yillar" + +msgid "This year" +msgstr "Ushbu yil" + +msgid "Last year" +msgstr "Oxirgi yil" + +msgid "Last 5 years" +msgstr "Oxirgi 5 yil" + +msgid "User organisation unit" +msgstr "Ташкилий бўлим фойдаланувчиси" + +msgid "User sub-units" +msgstr "Фойдаланувчига бўйсунувчи бирликлар" + +msgid "User sub-x2-units" +msgstr "Фойдаланувчига бўйсунувчи 2 даражали бирликлар" + +msgid "Table title" +msgstr "Jadval sarlavhasi" + +msgid "Parameters" +msgstr "Parametrlar" + +msgid "" +"These options only apply to legacy tables like standard reports. Options set" +" here will have no effect on tables made in Data Visualizer." +msgstr "" + +msgid "Applies to standard reports only" +msgstr "" + +msgid "Base and target lines are available on the Axes tab for scatter charts" +msgstr "" + +msgid "Color set" +msgstr "Ranglar toʼplami" + +msgid "Color sets are not supported yet when using multiple axes" +msgstr "" +"Koʼp oʼqlardan foydalanganda ranglar toʼplami hali qoʼllab quvvatlanmaydi" + +msgid "" +"Base and target lines are available on the Axes tab for multi-axis charts" +msgstr "" + +msgid "Chart style" +msgstr "Diagramma uslubi" + +msgid "Display" +msgstr "Ekranda koʼrsatish" + +msgid "Empty data" +msgstr "Boʼsh maʼlumotlar" + +msgid "Horizontal (x) axis {{axisId}}" +msgstr "" + +msgid "Horizontal (x) axis" +msgstr "gorizontal (X) oʼq" + +msgid "Lines" +msgstr "Qatorlar" + +msgid "Totals" +msgstr "Jami" + +msgid "Vertical (y) axis {{axisId}}" +msgstr "" + +msgid "Vertical (y) axis" +msgstr "Vertikal (y) oʼqi" + +msgid "Titles" +msgstr "Sarlavhalar" + +msgid "Axes" +msgstr "Oʼqlar" + +msgid "Data" +msgstr "Maʼlumot" + +msgid "Limit values" +msgstr "Cheklangan qiymatlar" + +msgid "Limit number of values" +msgstr "Qiymatlarning cheklangan soni" + +msgid "Limit minimum/maximum values" +msgstr "Minimal/maksimal qiymatlarni cheklash" + +msgid "Outliers" +msgstr "Chekinishlar" + +msgid "Series" +msgstr "Ketma-ketliklar" + +msgid "Style" +msgstr "Uslub" + +msgid "View data and indicators in a manipulatable table." +msgstr "" +"Boshqariladigan jadvalda indikatorlar va maʼlumotlarni koʼzdan kechiring" + +msgid "" +"Compare sizes of related elements vertically. Recommend period as filter." +msgstr "" + +msgid "" +"Compare parts of a whole against related elements vertically. Recommend data" +" or org. unit as series." +msgstr "" + +msgid "" +"Compare sizes of related elements horizontally. Recommend period as filter." +msgstr "" + +msgid "" +"Compare parts of a whole against related elements horizontally. Recommend " +"data or org. unit as series." +msgstr "" + +msgid "Track or compare changes over time. Recommend period as category." +msgstr "" + +msgid "" +"Track or compare parts of a whole over time. Recommend data as series and " +"period as category." +msgstr "" + +msgid "" +"Compare parts of a whole at a single point in time. Recommend period as " +"filter." +msgstr "" + +msgid "Compare several items against multiple variables." +msgstr "" +"Bir necha elementlar va bir necha oʼzgaruvchilarga nisbatan taqqoslang." + +msgid "" +"Compare a percentage indicator against a 100% scale. Recommend period as " +"filter." +msgstr "" + +msgid "Compare changes over time between multiple time periods." +msgstr "" +"Vaqt oʼtishi bilan bir necha vaqt oraligʼidagi oʼzgarishlarni taqqoslang." + +msgid "Display a single value. Recommend relative period to show latest data." +msgstr "" +"Bitta qiymatni koʼrsatish. Oxirgi maʼlumotlarni koʼrsatish uchun bogʼliq " +"davrni taqqoslang." + +msgid "" +"View the relationship between two data items at a place or time. Recommended" +" for finding outliers." +msgstr "" +"Joy va vaqt sifatidagi ikki maʼlumotlar orasidagi oʼzaro munosabatlarni " +"koʼrish. ortiqcha natijalarni topish uchun tavsiya etiladi." + +msgid "Weeks per year" +msgstr "Yil ichida haftalar" + +msgid "Months per year" +msgstr "Yil ichida oylar" + +msgid "Bimonths per year" +msgstr "Yil ichida juft oylar" + +msgid "Quarters per year" +msgstr "Yil ichida choraklar" diff --git a/i18n/vi.po b/i18n/vi.po index f16d538a5c..25966d7935 100644 --- a/i18n/vi.po +++ b/i18n/vi.po @@ -1,13 +1,13 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2021 # Mai Nguyen , 2022 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: Mai Nguyen , 2022\n" "Language-Team: Vietnamese (https://app.transifex.com/hisp-uio/teams/100509/vi/)\n" @@ -219,9 +219,6 @@ msgstr "Chọn thời điểm" msgid "Select years" msgstr "Chọn năm" -msgid "Interpretations" -msgstr "Diễn giải báo cáo" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -492,11 +489,11 @@ msgstr "Mẫu chú thích" msgid "Legend type" msgstr "Loại Chú Thích" -msgid "Use pre-defined legend per data item" -msgstr "Sử dụng chú giải được xác định trước cho mỗi mục dữ liệu" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "Chọn một chú giải duy nhất cho toàn bộ hình ảnh" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "Chú giải thay đổi màu nền" diff --git a/i18n/zh.po b/i18n/zh.po index 73083f1dc1..4bc05f235f 100644 --- a/i18n/zh.po +++ b/i18n/zh.po @@ -1,6 +1,6 @@ # # Translators: -# phil_dhis2, 2020 +# Philip Larsen Donnelly, 2020 # Viktor Varland , 2020 # 晓东 林 <13981924470@126.com>, 2022 # easylin , 2023 @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: easylin , 2023\n" "Language-Team: Chinese (https://app.transifex.com/hisp-uio/teams/100509/zh/)\n" @@ -214,9 +214,6 @@ msgstr "选择期间" msgid "Select years" msgstr "选择年份" -msgid "Interpretations" -msgstr "注释" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -481,11 +478,11 @@ msgstr "图例风格" msgid "Legend type" msgstr "图例类型" -msgid "Use pre-defined legend per data item" -msgstr "每个数据项使用预定义的图例" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" -msgstr "选择整个可视化图表单个图例" +msgid "Select a legend" +msgstr "" msgid "Legend changes background color" msgstr "图例改变背景色" diff --git a/i18n/zh_CN.po b/i18n/zh_CN.po index ce1717ef83..91ce1f94e0 100644 --- a/i18n/zh_CN.po +++ b/i18n/zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2023-03-07T12:07:38.393Z\n" +"POT-Creation-Date: 2023-09-06T13:41:14.540Z\n" "PO-Revision-Date: 2019-06-25 18:46+0000\n" "Last-Translator: easylin , 2022\n" "Language-Team: Chinese (China) (https://app.transifex.com/hisp-uio/teams/100509/zh_CN/)\n" @@ -210,9 +210,6 @@ msgstr "" msgid "Select years" msgstr "" -msgid "Interpretations" -msgstr "注释" - msgid "" "This visualization can't be deleted because it is used on one or more " "dashboards" @@ -477,10 +474,10 @@ msgstr "图例风格" msgid "Legend type" msgstr "图例类型" -msgid "Use pre-defined legend per data item" -msgstr "每个数据项使用预定义的图例" +msgid "Use pre-defined legend by data item" +msgstr "" -msgid "Select a single legend for the entire visualization" +msgid "Select a legend" msgstr "" msgid "Legend changes background color" diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000000..08483cdd6b --- /dev/null +++ b/jest.config.js @@ -0,0 +1,37 @@ +module.exports = { + transformIgnorePatterns: [ + 'node_modules/(?!(lodash-es|@dhis2/d2-ui-[a-z-]+)/)', + ], + setupFilesAfterEnv: ['./config/testSetup.js'], + + testRunner: 'jest-circus/runner', + testRegex: ['/src/modules/__tests__/.*.spec.js?$'], + reporters: [ + 'default', + [ + '@reportportal/agent-js-jest', + { + apiKey: process.env.REPORTPORTAL_API_KEY, + endpoint: process.env.REPORTPORTAL_ENDPOINT, + project: process.env.REPORTPORTAL_PROJECT, + launch: 'data_visualizer_app_master', + attributes: [ + { + key: 'version', + value: 'master', + }, + { + key: 'app_name', + value: 'data_visualizer_app', + }, + { + key: 'test_level', + value: 'unit/integration', + }, + ], + description: '', + debug: true, + }, + ], + ], +} diff --git a/package.json b/package.json index 1fef5f61eb..1bc027106d 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,8 @@ "@dhis2/cli-style": "^10.5.1", "@dhis2/cypress-commands": "^10.0.3", "@dhis2/cypress-plugins": "^10.0.2", + "@reportportal/agent-js-cypress": "^5.1.3", + "@reportportal/agent-js-jest": "^5.0.6", "cypress": "^12.16.0", "cypress-tags": "^1.1.2", "enzyme": "^3.11.0", @@ -39,7 +41,7 @@ "start-server-and-test": "^2.0.0" }, "dependencies": { - "@dhis2/analytics": "^26.0.7", + "@dhis2/analytics": "^26.1.2", "@dhis2/app-runtime": "^3.7.0", "@dhis2/app-runtime-adapter-d2": "^1.1.0", "@dhis2/app-service-datastore": "^1.0.0-beta.3", @@ -64,13 +66,5 @@ "reselect": "^4.1.7", "styled-jsx": "^4", "whatwg-fetch": "^3.6.2" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/(?!(lodash-es|@dhis2/d2-ui-[a-z-]+)/)" - ], - "setupFilesAfterEnv": [ - "./config/testSetup.js" - ] } } diff --git a/src/actions/index.js b/src/actions/index.js index 0f0651ed9c..6e525c9d0e 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -6,6 +6,7 @@ import { DIMENSION_ID_PERIOD, DIMENSION_ID_ORGUNIT, DIMENSION_ID_ASSIGNED_CATEGORIES, + preparePayloadForSaveAs, } from '@dhis2/analytics' import i18n from '@dhis2/d2-i18n' import { apiPostDataStatistics } from '../api/dataStatistics.js' @@ -204,13 +205,13 @@ export const tDoSaveVisualization = try { dispatch(fromLoader.acSetPluginLoading(true)) - const visualization = getVisualizationFromCurrent( + let visualization = getVisualizationFromCurrent( sGetCurrent(getState()) ) // remove the id to trigger a POST request and save a new AO if (copy) { - delete visualization.id + visualization = preparePayloadForSaveAs(visualization) } visualization.name = diff --git a/src/components/App.js b/src/components/App.js index f268ab0f4c..4a7f88efb7 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -42,7 +42,8 @@ export class UnconnectedApp extends Component { interpretationsUnitRef = React.createRef() - onInterpretationUpdate = () => this.interpretationsUnitRef.current.refresh() + onInterpretationUpdate = () => + this.interpretationsUnitRef.current?.refresh() state = { previousLocation: null, diff --git a/src/components/MenuBar/MenuBar.js b/src/components/MenuBar/MenuBar.js index 75a23f20b5..f6150c33cb 100644 --- a/src/components/MenuBar/MenuBar.js +++ b/src/components/MenuBar/MenuBar.js @@ -12,8 +12,14 @@ import { connect } from 'react-redux' import * as fromActions from '../../actions/index.js' import { getErrorVariantByStatusCode } from '../../modules/error.js' import history from '../../modules/history.js' -import { visTypes } from '../../modules/visualization.js' +import { + visTypes, + getVisualizationState, + STATE_UNSAVED, + STATE_DIRTY, +} from '../../modules/visualization.js' import { sGetCurrent } from '../../reducers/current.js' +import { sGetVisualization } from '../../reducers/visualization.js' import { ToolbarDownloadDropdown } from '../DownloadMenu/ToolbarDownloadDropdown.js' import UpdateVisualizationContainer from '../UpdateButton/UpdateVisualizationContainer.js' import VisualizationOptionsManager from '../VisualizationOptions/VisualizationOptionsManager.js' @@ -70,7 +76,16 @@ const UnconnectedMenuBar = ({ dataTest, ...props }, context) => ( onOpen={onOpen} onNew={onNew} onRename={getOnRename(props)} - onSave={getOnSave(props)} + onSave={ + [STATE_UNSAVED, STATE_DIRTY].includes( + getVisualizationState( + props.visualization, + props.current + ) + ) + ? getOnSave(props) + : undefined + } onSaveAs={getOnSaveAs(props)} onDelete={getOnDelete(props)} onError={getOnError(props)} @@ -87,6 +102,7 @@ UnconnectedMenuBar.propTypes = { apiObjectName: PropTypes.string, current: PropTypes.object, dataTest: PropTypes.string, + visualization: PropTypes.object, } UnconnectedMenuBar.contextTypes = { @@ -95,6 +111,7 @@ UnconnectedMenuBar.contextTypes = { const mapStateToProps = (state) => ({ current: sGetCurrent(state), + visualization: sGetVisualization(state), }) const mapDispatchToProps = (dispatch) => ({ diff --git a/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js b/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js index 535318158a..44ee0b5a33 100644 --- a/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js +++ b/src/components/VisualizationOptions/Options/LegendDisplayStrategy.js @@ -18,7 +18,7 @@ const LegendDisplayStrategy = ({ value, onChange }) => ( ( /> { - const options = [ - { id: 'EQ', label: '=' }, - { id: 'GT', label: '>' }, - { id: 'GE', label: '>=' }, - { id: 'LT', label: '<' }, - { id: 'LE', label: '<=' }, - ] - +const EQUAL_OPERATOR_ID = 'EQ' +const GREATER_THAN_OPERATOR_ID = 'GT' +const GREATER_THAN_OR_EQUAL_OPERATOR_ID = 'GE' +const LESS_THAN_OPERATOR_ID = 'LT' +const LESS_THAN_OR_EQUAL_OPERATOR_ID = 'LE' +const EMPTY = '' + +const MIN_OPERATORS = [ + { id: EQUAL_OPERATOR_ID, label: '=' }, + { id: GREATER_THAN_OPERATOR_ID, label: '>' }, + { id: GREATER_THAN_OR_EQUAL_OPERATOR_ID, label: '>=' }, +] + +const MAX_OPERATORS = [ + { id: EQUAL_OPERATOR_ID, label: '=' }, + { id: LESS_THAN_OPERATOR_ID, label: '<' }, + { id: LESS_THAN_OR_EQUAL_OPERATOR_ID, label: '<=' }, +] + +const OperatorSelect = ({ name, value, onChange, operators, dataTest }) => { return (
{ tabIndex="0" inputMaxWidth="106px" dense + dataTest={dataTest} > - {options.map(({ id, label }) => ( - + {operators.map(({ id, label }) => ( + ))}
@@ -48,11 +65,13 @@ const OperatorSelect = ({ name, value, onChange }) => { OperatorSelect.propTypes = { name: PropTypes.string.isRequired, + operators: PropTypes.array.isRequired, value: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, + dataTest: PropTypes.string, } -const ValueInput = ({ name, value, onChange }) => ( +const ValueInput = ({ name, value, onChange, dataTest }) => ( ( onChange={({ value }) => onChange(value)} width="72px" dense + dataTest={dataTest} /> ) @@ -67,20 +87,41 @@ ValueInput.propTypes = { name: PropTypes.string.isRequired, value: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, + dataTest: PropTypes.string, } class MeasureCriteria extends Component { constructor(props) { super(props) - this.defaultState = { op1: '', v1: '', op2: '', v2: '' } - - const [op1 = '', v1 = '', op2 = '', v2 = ''] = props.value.split(/[;:]/) + const OP1_DEFAULT = GREATER_THAN_OPERATOR_ID + const OP2_DEFAULT = LESS_THAN_OPERATOR_ID + + this.defaultState = { + op1: OP1_DEFAULT, + v1: EMPTY, + op2: OP2_DEFAULT, + v2: EMPTY, + } + + let [op1 = OP1_DEFAULT, v1 = EMPTY, op2 = OP2_DEFAULT, v2 = EMPTY] = + props.value && props.value.split(/[;:]/) + + if ( + [LESS_THAN_OPERATOR_ID, LESS_THAN_OR_EQUAL_OPERATOR_ID].includes( + op1 + ) + ) { + op2 = op1 + v2 = v1 + op1 = OP1_DEFAULT + v1 = EMPTY + } this.state = { op1, v1, op2, v2 } } - onClear = () => this.setState(this.defaultState, this.props.onChange('')) + onClear = () => this.setState(this.defaultState, this.props.onChange(EMPTY)) onChange = (name) => (value) => { this.setState({ [name]: value }, () => { @@ -95,7 +136,7 @@ class MeasureCriteria extends Component { value.push(`${op2}:${v2}`) } - this.props.onChange(value.length > 0 ? value.join(';') : '') + this.props.onChange(value.length > 0 ? value.join(';') : EMPTY) }) } @@ -119,11 +160,14 @@ class MeasureCriteria extends Component { name="op1" value={op1} onChange={this.onChange('op1')} + operators={MIN_OPERATORS} + dataTest="measure-critiera-min-operator" /> @@ -136,17 +180,24 @@ class MeasureCriteria extends Component { name="op2" value={op2} onChange={this.onChange('op2')} + operators={MAX_OPERATORS} + dataTest="measure-critiera-max-operator" />
-
@@ -161,7 +212,7 @@ MeasureCriteria.propTypes = { } const mapStateToProps = (state) => ({ - value: sGetUiOptions(state).measureCriteria || '', + value: sGetUiOptions(state).measureCriteria || EMPTY, }) const mapDispatchToProps = (dispatch) => ({ diff --git a/src/components/VisualizationPlugin/VisualizationPlugin.js b/src/components/VisualizationPlugin/VisualizationPlugin.js index f3d4cabe50..6883cec451 100644 --- a/src/components/VisualizationPlugin/VisualizationPlugin.js +++ b/src/components/VisualizationPlugin/VisualizationPlugin.js @@ -44,7 +44,11 @@ export const VisualizationPlugin = ({ const [size, setSize] = useState({ width: 0, height: 0 }) const containerCallbackRef = useCallback((node) => { - if (node === null) { + if ( + node === null || + // This avoids a state update when closing the intepretations modal + (node.clientWidth === 0 && node.clientHeight === 0) + ) { return } diff --git a/yarn.lock b/yarn.lock index a8e4d4e0b9..2a87f4103e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,12 +2028,12 @@ classnames "^2.3.1" prop-types "^15.7.2" -"@dhis2/analytics@^26.0.7": - version "26.0.7" - resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.0.7.tgz#d0883c74fc909359d1ce01e82c267ba99e8186a5" - integrity sha512-NJ//FeWWn6yy1bDK3lcMPdwOWVhLBQyh1vmj+S0/k86iKRfF+8tmZwinZLVLebzV3DRjSoWSPCzwU6zVDedjWg== +"@dhis2/analytics@^26.1.2": + version "26.1.2" + resolved "https://registry.yarnpkg.com/@dhis2/analytics/-/analytics-26.1.2.tgz#cc1a9feae34bea1d0fc61fd6f0fbe03badc5c3a4" + integrity sha512-xBjv/5Ey+PXoPZPtgpYhIgdNtJ3Ce2GtJKy/zU6fFhlm1Vaok5ipaoW6DxmaKdgeQm8VzNVnZdBSjV7+58rAPA== dependencies: - "@dhis2/d2-ui-rich-text" "^7.4.0" + "@dhis2/d2-ui-rich-text" "^7.4.1" "@dhis2/multi-calendar-dates" "1.0.0" "@dnd-kit/core" "^6.0.7" "@dnd-kit/sortable" "^7.0.2" @@ -2043,7 +2043,7 @@ crypto-js "^4.1.1" d2-utilizr "^0.2.16" d3-color "^1.2.3" - highcharts "^10.2.0" + highcharts "^10.3.3" lodash "^4.17.21" mathjs "^9.4.2" react-beautiful-dnd "^10.1.1" @@ -2245,10 +2245,10 @@ i18next "^10.3" moment "^2.24.0" -"@dhis2/d2-ui-rich-text@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-rich-text/-/d2-ui-rich-text-7.4.0.tgz#e1fb6eff7309ea80a6af3bee2a247c9f93ea721d" - integrity sha512-q8woPPyYHiqQfNtujuCQH8eq7zRcN0140XqrKHw1DXF/fnqmrcVDTNZkPSaWMuUsdPhcgTHcnuEySP0MRAXv6g== +"@dhis2/d2-ui-rich-text@^7.4.1": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@dhis2/d2-ui-rich-text/-/d2-ui-rich-text-7.4.3.tgz#a42c8e231bcc05186dd432dac86b33aed4ddc10d" + integrity sha512-60k/6CO2I8f4t3jU1nAic7uWONME1rckM8RcLnelhwUG20EZWq45OnDDdSfHgOWTwVDtxFnG3wspInkG/530KA== dependencies: babel-runtime "^6.26.0" markdown-it "^8.4.2" @@ -2967,6 +2967,37 @@ "@react-hook/passive-layout-effect" "^1.2.0" "@react-hook/resize-observer" "^1.2.1" +"@reportportal/agent-js-cypress@^5.1.3": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@reportportal/agent-js-cypress/-/agent-js-cypress-5.1.3.tgz#596aa9657ad0e8fd7dc57f08304b73decf375d44" + integrity sha512-20UBwMR+EGJ0eNGK23kJxYkUp5+43G8wGmWaJCzozp7ihWK/I3mj+SkgjQ5F8FvExGi91ivAbpoXha8Ak5SZuQ== + dependencies: + "@reportportal/client-javascript" "^5.0.12" + glob "^7.2.3" + minimatch "^3.1.2" + mocha "^10.2.0" + node-ipc "9.1.1" + +"@reportportal/agent-js-jest@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@reportportal/agent-js-jest/-/agent-js-jest-5.0.6.tgz#336ed06c3c80d70bd8e50824bc3c883cb5d2548e" + integrity sha512-Gt2oOZ/k5HxZ2J3Hb6X43y6XZmvpldt3yM2wPdrU5CPhXb9hxdiZUl+e2MfI3y0aB+d6T/AkKcUyT7f91sZaYw== + dependencies: + "@reportportal/client-javascript" "^5.0.12" + strip-ansi "^6.0.1" + +"@reportportal/client-javascript@^5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@reportportal/client-javascript/-/client-javascript-5.0.12.tgz#b6d9254014545ca56599c05105854ea814561f1e" + integrity sha512-ECLvuDLV7KyKs0wG9Sis3ZqHOq9VMg3fywm1VDegd5HGDKC1hoXxFKfz6ngPY8FZ5O1nt1UJvgEs47shtPHQCg== + dependencies: + axios "^0.27.2" + axios-retry "^3.4.0" + glob "^7.2.3" + ini "^2.0.0" + uniqid "^5.4.0" + uuid "^9.0.0" + "@rollup/plugin-babel@^5.2.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" @@ -4029,7 +4060,7 @@ ansi-align@^3.0.0: dependencies: string-width "^3.0.0" -ansi-colors@^4.1.1: +ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== @@ -4417,6 +4448,14 @@ axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== +axios-retry@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.6.0.tgz#3bf6edbce42e526a3f7ac70b1891b645adb4c301" + integrity sha512-jtH4qWTKZ2a17dH6tjq52Y1ssNV0lKge6/Z9Lw67s9Wt01nGTg4hg7/LJBGYfDci44NTANJQlCPHPOT/TSFm9w== + dependencies: + "@babel/runtime" "^7.15.4" + is-retry-allowed "^2.2.0" + axios@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" @@ -4779,6 +4818,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -4845,6 +4891,11 @@ browser-resolve@^2.0.0: dependencies: resolve "^1.17.0" +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -5180,7 +5231,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0, camelcase@^6.2.1: +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -5279,7 +5330,7 @@ cheerio@^1.0.0-rc.3: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^3.3.0, chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3: +chokidar@3.5.3, chokidar@^3.3.0, chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -6312,6 +6363,11 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + decimal.js@^10.2.1, decimal.js@^10.3.1: version "10.3.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" @@ -6496,6 +6552,11 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -6717,6 +6778,11 @@ duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +easy-stack@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" + integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -7035,6 +7101,11 @@ escape-latex@^1.2.0: resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -7045,11 +7116,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^1.9.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -7416,6 +7482,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== + event-stream@=3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" @@ -7812,6 +7883,14 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -7834,14 +7913,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-yarn-workspace-root@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" @@ -7857,6 +7928,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" @@ -8222,7 +8298,19 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -8506,15 +8594,15 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@^1.2.0: +he@1.2.0, he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -highcharts@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-10.2.0.tgz#646b1c80fb4add9e35e5813bd87419ccdf1fc6b7" - integrity sha512-MvLo4dzR2Vo7Y85dsqJ07uabBXSSIRKRRdW4l9IGP55h2jYWNm/m9JBszVVxySH5Lda6g+Ins9NdGppZJpjNCA== +highcharts@^10.3.3: + version "10.3.3" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-10.3.3.tgz#b8acca24f2d4b1f2f726540734166e59e07b35c4" + integrity sha512-r7wgUPQI9tr3jFDn3XT36qsNwEIZYcfgz4mkKEA6E4nn5p86y+u1EZjazIG4TRkl5/gmGRtkBUiZW81g029RIw== history@^5.3.0: version "5.3.0" @@ -8917,7 +9005,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@2.0.0: +ini@2.0.0, ini@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== @@ -9264,6 +9352,11 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -9301,6 +9394,11 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-retry-allowed@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" + integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== + is-root@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" @@ -9372,6 +9470,11 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -10113,6 +10216,18 @@ joi@^17.7.0: "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" +js-message@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" + integrity sha512-hTqHqrm7jrZ+iN93QsKcNOTSgX3F+2NSgdnF+xvf8FfhC2MPqYRzzgXQ1LlhfyIzPTS6hL6Zea0/gIb6hktkHw== + +js-queue@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" + integrity sha512-SW0rTTG+TBPVD1Kp6HtnOr9kX3//EWA6qMlP2Y/WxbKsSNCBuJbWv3EDB5noKJBEkHYi2mDY+xqMn4Y0QHyjyg== + dependencies: + easy-stack "^1.0.0" + js-sha3@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -10123,6 +10238,13 @@ js-sha3@0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -10131,13 +10253,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsbi@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.0.tgz#b54ee074fb6fcbc00619559305c8f7e912b04741" @@ -10801,12 +10916,13 @@ lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== +log-symbols@4.1.0, log-symbols@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: - chalk "^4.0.0" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" log-update@^4.0.0: version "4.0.0" @@ -11146,6 +11262,13 @@ minimatch@3.0.4, minimatch@~3.0.2: dependencies: brace-expansion "^1.1.7" +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -11201,6 +11324,33 @@ mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + module-deps@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" @@ -11272,6 +11422,11 @@ nano-time@1.0.0: dependencies: big-integer "^1.6.16" +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" @@ -11373,6 +11528,15 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= +node-ipc@9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" + integrity sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w== + dependencies: + event-pubsub "4.3.0" + js-message "1.0.5" + js-queue "2.0.0" + node-releases@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" @@ -13921,6 +14085,13 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +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== + dependencies: + randombytes "^2.1.0" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -13928,13 +14099,6 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.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== - dependencies: - randombytes "^2.1.0" - serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -14620,7 +14784,7 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -14674,6 +14838,13 @@ subarg@^1.0.0: dependencies: minimist "^1.1.0" +supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -14695,13 +14866,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" @@ -15327,6 +15491,11 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +uniqid@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-5.4.0.tgz#4e17bfcab66dfe33563411ae0c801f46ef964e66" + integrity sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A== + unique-stream@^2.0.2: version "2.3.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" @@ -15518,6 +15687,11 @@ uuid@^8.1.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" @@ -16085,6 +16259,11 @@ workbox-window@6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.5.4" +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -16217,6 +16396,11 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-parser@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" @@ -16240,10 +16424,28 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yargs@^13.1.0: version "13.3.2" @@ -16278,19 +16480,6 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"