@sis-cc/dotstatsuite-components 22.0.1 → 22.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge-d3-react/src/index.js +18 -0
- package/dist/bridge-d3-react/src/index.js.map +1 -0
- package/dist/bridge-d3-react/src/react-chart-factory.js +44 -0
- package/dist/bridge-d3-react/src/react-chart-factory.js.map +1 -0
- package/dist/rules/src/chart/getAxisOptions.js +256 -0
- package/dist/rules/src/chart/getAxisOptions.js.map +1 -0
- package/dist/rules/src/chart/getBaseOptions.js +77 -0
- package/dist/rules/src/chart/getBaseOptions.js.map +1 -0
- package/dist/rules/src/chart/getChartOptions.js +120 -0
- package/dist/rules/src/chart/getChartOptions.js.map +1 -0
- package/dist/rules/src/chart/getGridOptions.js +46 -0
- package/dist/rules/src/chart/getGridOptions.js.map +1 -0
- package/dist/rules/src/chart/getTooltipOptions.js +223 -0
- package/dist/rules/src/chart/getTooltipOptions.js.map +1 -0
- package/dist/rules/src/constants.js +65 -0
- package/dist/rules/src/constants.js.map +1 -0
- package/dist/rules/src/date.js +121 -0
- package/dist/rules/src/date.js.map +1 -0
- package/dist/rules/src/dimension-utils.js +57 -0
- package/dist/rules/src/dimension-utils.js.map +1 -0
- package/dist/rules/src/factories/choro-series.js +68 -0
- package/dist/rules/src/factories/choro-series.js.map +1 -0
- package/dist/rules/src/factories/sample-focus.js +25 -0
- package/dist/rules/src/factories/sample-focus.js.map +1 -0
- package/dist/rules/src/factories/sample-series.js +53 -0
- package/dist/rules/src/factories/sample-series.js.map +1 -0
- package/dist/rules/src/factories/scatter-dimension.js +35 -0
- package/dist/rules/src/factories/scatter-dimension.js.map +1 -0
- package/dist/rules/src/factories/scatter-focus.js +42 -0
- package/dist/rules/src/factories/scatter-focus.js.map +1 -0
- package/dist/rules/src/factories/scatter-series.js +91 -0
- package/dist/rules/src/factories/scatter-series.js.map +1 -0
- package/dist/rules/src/factories/stacked-dimension.js +32 -0
- package/dist/rules/src/factories/stacked-dimension.js.map +1 -0
- package/dist/rules/src/factories/stacked-series.js +188 -0
- package/dist/rules/src/factories/stacked-series.js.map +1 -0
- package/dist/rules/src/factories/symbol-dimension.js +32 -0
- package/dist/rules/src/factories/symbol-dimension.js.map +1 -0
- package/dist/rules/src/factories/symbol-series.js +65 -0
- package/dist/rules/src/factories/symbol-series.js.map +1 -0
- package/dist/rules/src/factories/timeline-focus.js +21 -0
- package/dist/rules/src/factories/timeline-focus.js.map +1 -0
- package/dist/rules/src/factories/timeline-series.js +94 -0
- package/dist/rules/src/factories/timeline-series.js.map +1 -0
- package/dist/rules/src/get-values-enhanced.js +133 -0
- package/dist/rules/src/get-values-enhanced.js.map +1 -0
- package/dist/rules/src/header/getDefaultSubtitle.js +44 -0
- package/dist/rules/src/header/getDefaultSubtitle.js.map +1 -0
- package/dist/rules/src/header/getHeaderUnits.js +21 -0
- package/dist/rules/src/header/getHeaderUnits.js.map +1 -0
- package/dist/rules/src/header/getSubtitleFlags.js +47 -0
- package/dist/rules/src/header/getSubtitleFlags.js.map +1 -0
- package/dist/rules/src/header/getTitleFlags.js +12 -0
- package/dist/rules/src/header/getTitleFlags.js.map +1 -0
- package/dist/rules/src/index.js +378 -0
- package/dist/rules/src/index.js.map +1 -0
- package/dist/rules/src/layout.js +107 -0
- package/dist/rules/src/layout.js.map +1 -0
- package/dist/rules/src/observation-formater.js +86 -0
- package/dist/rules/src/observation-formater.js.map +1 -0
- package/dist/rules/src/preparators/formatValue.js +96 -0
- package/dist/rules/src/preparators/formatValue.js.map +1 -0
- package/dist/rules/src/preparators/getObservations.js +22 -0
- package/dist/rules/src/preparators/getObservations.js.map +1 -0
- package/dist/rules/src/preparators/getReportingYearStart.js +19 -0
- package/dist/rules/src/preparators/getReportingYearStart.js.map +1 -0
- package/dist/rules/src/properties/errors.js +22 -0
- package/dist/rules/src/properties/errors.js.map +1 -0
- package/dist/rules/src/properties/focus.js +72 -0
- package/dist/rules/src/properties/focus.js.map +1 -0
- package/dist/rules/src/properties/getAvailableChartTypes.js +31 -0
- package/dist/rules/src/properties/getAvailableChartTypes.js.map +1 -0
- package/dist/rules/src/properties/getHeaderProps.js +76 -0
- package/dist/rules/src/properties/getHeaderProps.js.map +1 -0
- package/dist/rules/src/properties/getInformationsStateFromNewProps.js +50 -0
- package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +1 -0
- package/dist/rules/src/properties/getObservationsType.js +28 -0
- package/dist/rules/src/properties/getObservationsType.js.map +1 -0
- package/dist/rules/src/properties/getStringifiedSubtitle.js +9 -0
- package/dist/rules/src/properties/getStringifiedSubtitle.js.map +1 -0
- package/dist/rules/src/properties/index.js +384 -0
- package/dist/rules/src/properties/index.js.map +1 -0
- package/dist/rules/src/properties/linear.js +123 -0
- package/dist/rules/src/properties/linear.js.map +1 -0
- package/dist/rules/src/properties/scatter.js +156 -0
- package/dist/rules/src/properties/scatter.js.map +1 -0
- package/dist/rules/src/properties/stacked.js +96 -0
- package/dist/rules/src/properties/stacked.js.map +1 -0
- package/dist/rules/src/properties/symbol.js +76 -0
- package/dist/rules/src/properties/symbol.js.map +1 -0
- package/dist/rules/src/properties/utils.js +86 -0
- package/dist/rules/src/properties/utils.js.map +1 -0
- package/dist/rules/src/sdmx-data/index.js +38 -0
- package/dist/rules/src/sdmx-data/index.js.map +1 -0
- package/dist/rules/src/table/factories/getCellValue.js +53 -0
- package/dist/rules/src/table/factories/getCellValue.js.map +1 -0
- package/dist/rules/src/v8-transformer.js +174 -0
- package/dist/rules/src/v8-transformer.js.map +1 -0
- package/dist/rules2/src/applyHierarchicalCodesToDim.js +126 -0
- package/dist/rules2/src/applyHierarchicalCodesToDim.js.map +1 -0
- package/dist/rules2/src/combinedValuesDisplay.js +77 -0
- package/dist/rules2/src/combinedValuesDisplay.js.map +1 -0
- package/dist/rules2/src/constants.js +9 -0
- package/dist/rules2/src/constants.js.map +1 -0
- package/dist/rules2/src/duplicateObservations.js +38 -0
- package/dist/rules2/src/duplicateObservations.js.map +1 -0
- package/dist/rules2/src/enhanceObservations.js +98 -0
- package/dist/rules2/src/enhanceObservations.js.map +1 -0
- package/dist/rules2/src/getAttributesSeries.js +39 -0
- package/dist/rules2/src/getAttributesSeries.js.map +1 -0
- package/dist/rules2/src/getCombinationDefinitions.js +50 -0
- package/dist/rules2/src/getCombinationDefinitions.js.map +1 -0
- package/dist/rules2/src/getDataflowAttributes.js +25 -0
- package/dist/rules2/src/getDataflowAttributes.js.map +1 -0
- package/dist/rules2/src/getDataflowTooltipAttributesIds.js +33 -0
- package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -0
- package/dist/rules2/src/getDimensionValuesIndexes.js +16 -0
- package/dist/rules2/src/getDimensionValuesIndexes.js.map +1 -0
- package/dist/rules2/src/getHCodelistsRefsInData.js +35 -0
- package/dist/rules2/src/getHCodelistsRefsInData.js.map +1 -0
- package/dist/rules2/src/getHeaderCombinations.js +51 -0
- package/dist/rules2/src/getHeaderCombinations.js.map +1 -0
- package/dist/rules2/src/getHeaderCoordinates.js +10 -0
- package/dist/rules2/src/getHeaderCoordinates.js.map +1 -0
- package/dist/rules2/src/getHeaderSubtitle.js +37 -0
- package/dist/rules2/src/getHeaderSubtitle.js.map +1 -0
- package/dist/rules2/src/getHeaderTitle.js +18 -0
- package/dist/rules2/src/getHeaderTitle.js.map +1 -0
- package/dist/rules2/src/getMSDInformations.js +26 -0
- package/dist/rules2/src/getMSDInformations.js.map +1 -0
- package/dist/rules2/src/getManyValuesDimensions.js +37 -0
- package/dist/rules2/src/getManyValuesDimensions.js.map +1 -0
- package/dist/rules2/src/getMetadataCoordinates.js +40 -0
- package/dist/rules2/src/getMetadataCoordinates.js.map +1 -0
- package/dist/rules2/src/getNotDisplayedIds.js +56 -0
- package/dist/rules2/src/getNotDisplayedIds.js.map +1 -0
- package/dist/rules2/src/getOneValueDimensions.js +37 -0
- package/dist/rules2/src/getOneValueDimensions.js.map +1 -0
- package/dist/rules2/src/getSeriesCombinations.js +27 -0
- package/dist/rules2/src/getSeriesCombinations.js.map +1 -0
- package/dist/rules2/src/hasCellMetadata.js +17 -0
- package/dist/rules2/src/hasCellMetadata.js.map +1 -0
- package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +60 -0
- package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js.map +1 -0
- package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +38 -0
- package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js.map +1 -0
- package/dist/rules2/src/index.js +47 -0
- package/dist/rules2/src/index.js.map +1 -0
- package/dist/rules2/src/parseAttributes.js +44 -0
- package/dist/rules2/src/parseAttributes.js.map +1 -0
- package/dist/rules2/src/parseCombinations.js +105 -0
- package/dist/rules2/src/parseCombinations.js.map +1 -0
- package/dist/rules2/src/parseHierarchicalCodelist.js +34 -0
- package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -0
- package/dist/rules2/src/parseMetadataSeries.js +124 -0
- package/dist/rules2/src/parseMetadataSeries.js.map +1 -0
- package/dist/rules2/src/prepareData.js +78 -0
- package/dist/rules2/src/prepareData.js.map +1 -0
- package/dist/rules2/src/refineAttributes.js +19 -0
- package/dist/rules2/src/refineAttributes.js.map +1 -0
- package/dist/rules2/src/refineDimensions.js +21 -0
- package/dist/rules2/src/refineDimensions.js.map +1 -0
- package/dist/rules2/src/refineTimePeriod.js +130 -0
- package/dist/rules2/src/refineTimePeriod.js.map +1 -0
- package/dist/rules2/src/sdmx3.0DataFormatPatch.js +12 -0
- package/dist/rules2/src/sdmx3.0DataFormatPatch.js.map +1 -0
- package/dist/rules2/src/table/declineObservationsOverAttributes.js +35 -0
- package/dist/rules2/src/table/declineObservationsOverAttributes.js.map +1 -0
- package/dist/rules2/src/table/getCells.js +96 -0
- package/dist/rules2/src/table/getCells.js.map +1 -0
- package/dist/rules2/src/table/getCellsAttributesIds.js +41 -0
- package/dist/rules2/src/table/getCellsAttributesIds.js.map +1 -0
- package/dist/rules2/src/table/getCellsMetadataCoordinates.js +16 -0
- package/dist/rules2/src/table/getCellsMetadataCoordinates.js.map +1 -0
- package/dist/rules2/src/table/getCuratedCells.js +36 -0
- package/dist/rules2/src/table/getCuratedCells.js.map +1 -0
- package/dist/rules2/src/table/getFlagsAndNotes.js +26 -0
- package/dist/rules2/src/table/getFlagsAndNotes.js.map +1 -0
- package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js +19 -0
- package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js.map +1 -0
- package/dist/rules2/src/table/getLayout.js +87 -0
- package/dist/rules2/src/table/getLayout.js.map +1 -0
- package/dist/rules2/src/table/getLayoutData2.js +205 -0
- package/dist/rules2/src/table/getLayoutData2.js.map +1 -0
- package/dist/rules2/src/table/getSortedLayoutIndexes.js +141 -0
- package/dist/rules2/src/table/getSortedLayoutIndexes.js.map +1 -0
- package/dist/rules2/src/table/getTableLabelAccessor.js +11 -0
- package/dist/rules2/src/table/getTableLabelAccessor.js.map +1 -0
- package/dist/rules2/src/table/getTableLayoutIds.js +317 -0
- package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -0
- package/dist/rules2/src/table/getTableProps.js +85 -0
- package/dist/rules2/src/table/getTableProps.js.map +1 -0
- package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js +82 -0
- package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js.map +1 -0
- package/dist/rules2/src/table/parseValueHierarchy.js +29 -0
- package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -0
- package/dist/rules2/src/table/refineLayoutSize2.js +324 -0
- package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -0
- package/dist/rules2/src/utils.js +29 -0
- package/dist/rules2/src/utils.js.map +1 -0
- package/dist/viewer/src/chart.js +50 -0
- package/dist/viewer/src/chart.js.map +1 -0
- package/dist/viewer/src/chartUtils/options.js +33 -0
- package/dist/viewer/src/chartUtils/options.js.map +1 -0
- package/dist/viewer/src/chartUtils/series.js +54 -0
- package/dist/viewer/src/chartUtils/series.js.map +1 -0
- package/dist/viewer/src/footer.js +39 -0
- package/dist/viewer/src/footer.js.map +1 -0
- package/dist/viewer/src/header.js +12 -0
- package/dist/viewer/src/header.js.map +1 -0
- package/dist/viewer/src/index.js +160 -0
- package/dist/viewer/src/index.js.map +1 -0
- package/dist/viewer/src/legends/AxisLegend.js +42 -0
- package/dist/viewer/src/legends/AxisLegend.js.map +1 -0
- package/dist/viewer/src/legends/ChartLegends.js +80 -0
- package/dist/viewer/src/legends/ChartLegends.js.map +1 -0
- package/dist/viewer/src/legends/FocusLegend.js +67 -0
- package/dist/viewer/src/legends/FocusLegend.js.map +1 -0
- package/dist/viewer/src/legends/Legend.js +51 -0
- package/dist/viewer/src/legends/Legend.js.map +1 -0
- package/dist/viewer/src/legends/SeriesLegend.js +77 -0
- package/dist/viewer/src/legends/SeriesLegend.js.map +1 -0
- package/dist/viewer/src/utils.js +24 -0
- package/dist/viewer/src/utils.js.map +1 -0
- package/package.json +1 -1
- package/src/app.js +13 -0
- package/src/bridge-d3-react/README.md +42 -0
- package/src/bridge-d3-react/src/app.js +64 -0
- package/src/bridge-d3-react/src/index.js +16 -0
- package/src/bridge-d3-react/src/mock-choro.js +394 -0
- package/src/bridge-d3-react/src/react-chart-factory.jsx +65 -0
- package/src/index.js +10 -0
- package/src/rules/README.md +23 -0
- package/src/rules/src/chart/getAxisOptions.js +263 -0
- package/src/rules/src/chart/getBaseOptions.js +84 -0
- package/src/rules/src/chart/getChartOptions.js +118 -0
- package/src/rules/src/chart/getGridOptions.js +52 -0
- package/src/rules/src/chart/getTooltipOptions.js +230 -0
- package/src/rules/src/constants.js +64 -0
- package/src/rules/src/date.js +118 -0
- package/src/rules/src/dimension-utils.js +54 -0
- package/src/rules/src/factories/choro-series.js +65 -0
- package/src/rules/src/factories/sample-focus.js +22 -0
- package/src/rules/src/factories/sample-series.js +50 -0
- package/src/rules/src/factories/scatter-dimension.js +32 -0
- package/src/rules/src/factories/scatter-focus.js +39 -0
- package/src/rules/src/factories/scatter-series.js +92 -0
- package/src/rules/src/factories/stacked-dimension.js +29 -0
- package/src/rules/src/factories/stacked-series.js +185 -0
- package/src/rules/src/factories/symbol-dimension.js +29 -0
- package/src/rules/src/factories/symbol-series.js +62 -0
- package/src/rules/src/factories/timeline-focus.js +18 -0
- package/src/rules/src/factories/timeline-series.js +91 -0
- package/src/rules/src/get-values-enhanced.js +134 -0
- package/src/rules/src/header/getDefaultSubtitle.js +40 -0
- package/src/rules/src/header/getHeaderUnits.js +17 -0
- package/src/rules/src/header/getSubtitleFlags.js +43 -0
- package/src/rules/src/header/getTitleFlags.js +8 -0
- package/src/rules/src/header/index.js +4 -0
- package/src/rules/src/index.js +398 -0
- package/src/rules/src/layout.js +113 -0
- package/src/rules/src/observation-formater.js +83 -0
- package/src/rules/src/preparators/enhanceObservations.js +152 -0
- package/src/rules/src/preparators/formatValue.js +93 -0
- package/src/rules/src/preparators/getObservations.js +19 -0
- package/src/rules/src/preparators/getReportingYearStart.js +16 -0
- package/src/rules/src/properties/errors.js +19 -0
- package/src/rules/src/properties/focus.js +69 -0
- package/src/rules/src/properties/getAvailableChartTypes.js +34 -0
- package/src/rules/src/properties/getHeaderProps.js +74 -0
- package/src/rules/src/properties/getInformationsStateFromNewProps.js +47 -0
- package/src/rules/src/properties/getObservationsType.js +29 -0
- package/src/rules/src/properties/getStringifiedSubtitle.js +6 -0
- package/src/rules/src/properties/index.js +424 -0
- package/src/rules/src/properties/information.js +84 -0
- package/src/rules/src/properties/linear.js +129 -0
- package/src/rules/src/properties/scatter.js +158 -0
- package/src/rules/src/properties/stacked.js +98 -0
- package/src/rules/src/properties/symbol.js +79 -0
- package/src/rules/src/properties/utils.js +110 -0
- package/src/rules/src/sdmx-data/index.js +39 -0
- package/src/rules/src/table/factories/getCellValue.js +50 -0
- package/src/rules/src/table/index.js +1 -0
- package/src/rules/src/v8-transformer.js +177 -0
- package/src/rules2/src/applyHierarchicalCodesToDim.js +123 -0
- package/src/rules2/src/combinedValuesDisplay.js +74 -0
- package/src/rules2/src/constants.js +6 -0
- package/src/rules2/src/duplicateObservations.js +35 -0
- package/src/rules2/src/enhanceObservations.js +95 -0
- package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +29 -0
- package/src/rules2/src/getAttributesSeries.js +36 -0
- package/src/rules2/src/getCombinationDefinitions.js +47 -0
- package/src/rules2/src/getDataflowAttributes.js +23 -0
- package/src/rules2/src/getDataflowTooltipAttributesIds.js +31 -0
- package/src/rules2/src/getDimensionValuesIndexes.js +13 -0
- package/src/rules2/src/getHCodelistsRefsInData.js +32 -0
- package/src/rules2/src/getHeaderCombinations.js +48 -0
- package/src/rules2/src/getHeaderCoordinates.js +7 -0
- package/src/rules2/src/getHeaderSubtitle.js +34 -0
- package/src/rules2/src/getHeaderTitle.js +15 -0
- package/src/rules2/src/getMSDInformations.js +23 -0
- package/src/rules2/src/getManyValuesDimensions.js +34 -0
- package/src/rules2/src/getMetadataCoordinates.js +37 -0
- package/src/rules2/src/getMetadataStructureFromData.js +17 -0
- package/src/rules2/src/getNotDisplayedIds.js +53 -0
- package/src/rules2/src/getOneValueDimensions.js +34 -0
- package/src/rules2/src/getSeriesCombinations.js +24 -0
- package/src/rules2/src/hasCellMetadata.js +14 -0
- package/src/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +57 -0
- package/src/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +35 -0
- package/src/rules2/src/index.js +50 -0
- package/src/rules2/src/parseAttributes.js +41 -0
- package/src/rules2/src/parseCombinations.js +102 -0
- package/src/rules2/src/parseHierarchicalCodelist.js +48 -0
- package/src/rules2/src/parseMetadataSeries.js +121 -0
- package/src/rules2/src/prepareData.js +75 -0
- package/src/rules2/src/refineAttributes.js +16 -0
- package/src/rules2/src/refineDimensions.js +18 -0
- package/src/rules2/src/refineMetadataCoordinates.js +28 -0
- package/src/rules2/src/refineTimePeriod.js +127 -0
- package/src/rules2/src/sdmx3.0DataFormatPatch.js +9 -0
- package/src/rules2/src/table/declineObservationsOverAttributes.js +32 -0
- package/src/rules2/src/table/getCells.js +93 -0
- package/src/rules2/src/table/getCellsAttributesIds.js +38 -0
- package/src/rules2/src/table/getCellsMetadataCoordinates.js +13 -0
- package/src/rules2/src/table/getCombinationDimensionsData.js +39 -0
- package/src/rules2/src/table/getCuratedCells.js +33 -0
- package/src/rules2/src/table/getFlagsAndNotes.js +23 -0
- package/src/rules2/src/table/getIndexedCombinationsByDisplay.js +16 -0
- package/src/rules2/src/table/getLayout.js +84 -0
- package/src/rules2/src/table/getLayoutData2.js +202 -0
- package/src/rules2/src/table/getSortedLayoutIndexes.js +138 -0
- package/src/rules2/src/table/getTableLabelAccessor.js +9 -0
- package/src/rules2/src/table/getTableLayoutIds.js +314 -0
- package/src/rules2/src/table/getTableProps.js +82 -0
- package/src/rules2/src/table/parseSeriesIndexesHierarchies.js +79 -0
- package/src/rules2/src/table/parseValueHierarchy.js +33 -0
- package/src/rules2/src/table/refineLayoutSize2.js +321 -0
- package/src/rules2/src/utils.js +37 -0
- package/src/viewer/mocks/bar.js +33 -0
- package/src/viewer/mocks/gpp-symbol.js +93 -0
- package/src/viewer/mocks/gpp-time.js +1103 -0
- package/src/viewer/mocks/row.js +39 -0
- package/src/viewer/mocks/scatter.js +93 -0
- package/src/viewer/mocks/stack.js +161 -0
- package/src/viewer/src/app/leg.js +36 -0
- package/src/viewer/src/app/nodata-res.js +22 -0
- package/src/viewer/src/app/nodata-sized.js +23 -0
- package/src/viewer/src/app/one-table-cell.js +70 -0
- package/src/viewer/src/app/table.js +423 -0
- package/src/viewer/src/app/use-case-1.js +33 -0
- package/src/viewer/src/app/use-case-2.js +38 -0
- package/src/viewer/src/app/use-case-3.js +18 -0
- package/src/viewer/src/app.js +116 -0
- package/src/viewer/src/chart.jsx +52 -0
- package/src/viewer/src/chartUtils/options.js +30 -0
- package/src/viewer/src/chartUtils/series.js +51 -0
- package/src/viewer/src/footer.jsx +23 -0
- package/src/viewer/src/header.jsx +10 -0
- package/src/viewer/src/index.jsx +158 -0
- package/src/viewer/src/legends/AxisLegend.jsx +41 -0
- package/src/viewer/src/legends/ChartLegends.jsx +66 -0
- package/src/viewer/src/legends/FocusLegend.jsx +63 -0
- package/src/viewer/src/legends/Legend.jsx +46 -0
- package/src/viewer/src/legends/SeriesLegend.jsx +78 -0
- package/src/viewer/src/utils.js +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-formater.js","sources":["../../../src/rules/src/observation-formater.js"],"sourcesContent":["import memoizee from 'memoizee';\nimport numeral from 'numeral';\nimport * as R from 'ramda';\nimport { extractSdmxArtefacts } from './';\n\nexport const DEFAULT_PREFSCALE_ATTR_IDS = [\"PREF_SCALE\"];\n\nexport const DEFAULT_DECIMALS_ATTR_IDS = [\"DECIMALS\"];\n\nexport const getFormaterAttribute = (ids, attributes) => R.find(\n (attr) => R.includes(attr.id, ids),\n attributes\n);\n\nexport const parseAttributeFormaterIds = (ids = {}) => {\n let prefscale = R.prop('prefscale', ids);\n let decimals = R.prop('decimals', ids);\n decimals = R.isNil(decimals) ? DEFAULT_DECIMALS_ATTR_IDS : decimals;\n prefscale = R.isNil(prefscale) ? DEFAULT_PREFSCALE_ATTR_IDS : prefscale;\n return ({\n decimals: R.is(Array, decimals) ? decimals : [decimals],\n prefscale: R.is(Array, prefscale) ? prefscale : [prefscale],\n });\n}\n\nexport const _getObservationsFormaterAttributes = (data, ids) => R.pipe(\n extractSdmxArtefacts,\n ({ attributes }) => {\n const { decimals, prefscale } = parseAttributeFormaterIds(ids);\n return ({\n decimals: getFormaterAttribute(decimals, attributes),\n prefscale: getFormaterAttribute(prefscale, attributes)\n });\n }\n)(data);\nexport const getObservationsFormaterAttributes = memoizee(_getObservationsFormaterAttributes);\n\nexport const getObservationFormaterValue = (observation, attribute) => {\n const attributeIndex = R.prop('index', attribute);\n const attributeValueIndex = R.nth(attributeIndex, observation);\n return R.nth(attributeValueIndex, R.propOr([], 'values', attribute));\n}\n\nexport const getObservationFormaterValues = (formaterAttributes) => (observation) => ({\n decimals: getObservationFormaterValue(observation, R.prop('decimals', formaterAttributes)),\n prefscale: getObservationFormaterValue(observation, R.prop('prefscale', formaterAttributes)),\n});\n\nexport const makeObservationFormater = (formaterValues) => {\n let prefscale = 0;\n if (!R.isNil(R.prop('prefscale', formaterValues))) {\n prefscale = Number(R.propOr('0', 'id', formaterValues.prefscale));\n }\n let decimals = null;\n if (!R.isNil(R.prop('decimals', formaterValues))) {\n let _decimals = Number(R.prop('id', formaterValues.decimals));\n decimals = R.is(Number, _decimals) && !Number.isNaN(_decimals)\n ? _decimals : null;\n }\n let format = '0,0';\n if (R.isNil(decimals)) {\n format = R.concat(format, '.[0000000]');\n }\n else if (decimals > 0) {\n format = R.concat(format, `.[${'0'.repeat(decimals)}]`);\n }\n return value => numeral(Number(value))\n .multiply(Math.pow(10, R.negate(prefscale)))\n .format(format);\n};\n\nexport const getObservationFormater = (observation, formaterAttributes) => {\n return R.pipe(\n R.tail,\n getObservationFormaterValues(formaterAttributes),\n makeObservationFormater\n )(observation);\n}\n\nexport const getFormatedObservation = (observation, formaterAttributes) => {\n const formater = getObservationFormater(observation, formaterAttributes);\n return formater(R.head(observation));\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import numeral from 'numeral';
|
|
3
|
+
|
|
4
|
+
const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));
|
|
5
|
+
const parseValidNumber = R.pipe(
|
|
6
|
+
v => R.isNil(v) ? null : Number(v),
|
|
7
|
+
v => isNaN(v) ? null : v
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
const getFormatAttributesValues = (observation, formatAttributesIndexes, attributes) => R.mapObjIndexed(
|
|
11
|
+
attributeIndex => {
|
|
12
|
+
let valueIndex;
|
|
13
|
+
const relationship = R.pipe(R.nth(attributeIndex), R.propOr({}, 'relationship'))(attributes);
|
|
14
|
+
//if (!R.isNil(attributeIndex) && attributeIndex >= R.length(R.propOr([], 'attrValuesIndexes', observation))) {
|
|
15
|
+
if (R.has('none', relationship) || R.has('dataflow', relationship)) {
|
|
16
|
+
valueIndex = 0;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
valueIndex = R.pipe(
|
|
20
|
+
R.propOr([], 'attrValuesIndexes'),
|
|
21
|
+
R.nth(attributeIndex),
|
|
22
|
+
parseValidNumber
|
|
23
|
+
)(observation);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return R.pipe(
|
|
27
|
+
R.path([attributeIndex, 'values', valueIndex, 'id']),
|
|
28
|
+
parseValidNumber
|
|
29
|
+
)(attributes);
|
|
30
|
+
},
|
|
31
|
+
formatAttributesIndexes
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const formatValue = (observation, formatAttributesIndexes, attributes) => {
|
|
35
|
+
const value = R.prop('value', observation);
|
|
36
|
+
if (R.is(Boolean, value)) {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
if (R.is(String, value)) {
|
|
40
|
+
const monthMatch = value.match(/^\-\-([\d]{2})$/);
|
|
41
|
+
if (R.is(Array, monthMatch)) {
|
|
42
|
+
return R.nth(1, monthMatch);
|
|
43
|
+
}
|
|
44
|
+
const monthDayMatch = value.match(/^\-\-([\d]{2}\-[\d]{2})$/);
|
|
45
|
+
if (R.is(Array, monthDayMatch)) {
|
|
46
|
+
return R.nth(1, monthDayMatch);
|
|
47
|
+
}
|
|
48
|
+
const dayMatch = value.match(/^\-\-\-([\d]{2})$/);
|
|
49
|
+
if (R.is(Array, dayMatch)) {
|
|
50
|
+
return R.nth(1, dayMatch);
|
|
51
|
+
}
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const { prefscale, decimals } = getFormatAttributesValues(
|
|
56
|
+
observation,
|
|
57
|
+
formatAttributesIndexes,
|
|
58
|
+
attributes
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const formatScale = R.when(
|
|
62
|
+
R.always(isValidNumber(prefscale)),
|
|
63
|
+
value => numeral(value).multiply(Math.pow(10, -1 * Number(prefscale))).value(),
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const formatSeparator = value => numeral(value).format(`0,0.[0000000]`);
|
|
67
|
+
const formatDecimals = R.ifElse(
|
|
68
|
+
R.always(isValidNumber(decimals)),
|
|
69
|
+
v => {
|
|
70
|
+
const num = Number(v);
|
|
71
|
+
const isTiny = Math.abs(num) < Math.pow(10, -(decimals ?? 2) + 1);
|
|
72
|
+
const displayNum = isTiny ? 0 : num;
|
|
73
|
+
const decimalFormat =
|
|
74
|
+
R.ifElse(
|
|
75
|
+
R.equals(0),
|
|
76
|
+
R.always('0,0'),
|
|
77
|
+
d => `0,0.${R.join('', R.times(R.always('0'), d))}`
|
|
78
|
+
)(decimals ?? 2);
|
|
79
|
+
|
|
80
|
+
return numeral(displayNum).format(decimalFormat);
|
|
81
|
+
},
|
|
82
|
+
formatSeparator
|
|
83
|
+
);
|
|
84
|
+
return R.ifElse(
|
|
85
|
+
isValidNumber,
|
|
86
|
+
R.pipe(
|
|
87
|
+
formatScale,
|
|
88
|
+
formatDecimals,
|
|
89
|
+
res => res === 'NaN' ? String(value) : res
|
|
90
|
+
),
|
|
91
|
+
R.always('..')
|
|
92
|
+
)(observation.value);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export { formatValue };
|
|
96
|
+
//# sourceMappingURL=formatValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatValue.js","sources":["../../../../src/rules/src/preparators/formatValue.js"],"sourcesContent":["import * as R from 'ramda';\nimport numeral from 'numeral';\n\nconst isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)));\nconst parseValidNumber = R.pipe(\n v => R.isNil(v) ? null : Number(v),\n v => isNaN(v) ? null : v\n);\n\nconst getFormatAttributesValues = (observation, formatAttributesIndexes, attributes) => R.mapObjIndexed(\n attributeIndex => {\n let valueIndex;\n const relationship = R.pipe(R.nth(attributeIndex), R.propOr({}, 'relationship'))(attributes);\n //if (!R.isNil(attributeIndex) && attributeIndex >= R.length(R.propOr([], 'attrValuesIndexes', observation))) {\n if (R.has('none', relationship) || R.has('dataflow', relationship)) {\n valueIndex = 0;\n }\n else {\n valueIndex = R.pipe(\n R.propOr([], 'attrValuesIndexes'),\n R.nth(attributeIndex),\n parseValidNumber\n )(observation);\n }\n\n return R.pipe(\n R.path([attributeIndex, 'values', valueIndex, 'id']),\n parseValidNumber\n )(attributes);\n },\n formatAttributesIndexes\n);\n\nexport const formatValue = (observation, formatAttributesIndexes, attributes) => {\n const value = R.prop('value', observation);\n if (R.is(Boolean, value)) {\n return value;\n }\n if (R.is(String, value)) {\n const monthMatch = value.match(/^\\-\\-([\\d]{2})$/);\n if (R.is(Array, monthMatch)) {\n return R.nth(1, monthMatch);\n }\n const monthDayMatch = value.match(/^\\-\\-([\\d]{2}\\-[\\d]{2})$/);\n if (R.is(Array, monthDayMatch)) {\n return R.nth(1, monthDayMatch);\n }\n const dayMatch = value.match(/^\\-\\-\\-([\\d]{2})$/);\n if (R.is(Array, dayMatch)) {\n return R.nth(1, dayMatch);\n }\n return value;\n }\n\n const { prefscale, decimals } = getFormatAttributesValues(\n observation,\n formatAttributesIndexes,\n attributes\n );\n\n const formatScale = R.when(\n R.always(isValidNumber(prefscale)),\n value => numeral(value).multiply(Math.pow(10, -1 * Number(prefscale))).value(),\n );\n\n const formatSeparator = value => numeral(value).format(`0,0.[0000000]`);\n const formatDecimals = R.ifElse(\n R.always(isValidNumber(decimals)),\n v => {\n const num = Number(v);\n const isTiny = Math.abs(num) < Math.pow(10, -(decimals ?? 2) + 1);\n const displayNum = isTiny ? 0 : num;\n const decimalFormat =\n R.ifElse(\n R.equals(0),\n R.always('0,0'),\n d => `0,0.${R.join('', R.times(R.always('0'), d))}`\n )(decimals ?? 2);\n\n return numeral(displayNum).format(decimalFormat);\n },\n formatSeparator\n );\n return R.ifElse(\n isValidNumber,\n R.pipe(\n formatScale,\n formatDecimals,\n res => res === 'NaN' ? String(value) : res\n ),\n R.always('..')\n )(observation.value);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
|
|
3
|
+
const getObservations = (sdmxJson) => R.pipe(
|
|
4
|
+
R.pathOr({}, ['data', 'dataSets', 0, 'observations']),
|
|
5
|
+
R.mapObjIndexed(
|
|
6
|
+
(observation, observationKey) => {
|
|
7
|
+
const value = R.head(observation);
|
|
8
|
+
const attrValuesIndexes = R.tail(observation);
|
|
9
|
+
const dimValuesIndexes = R.split(':', observationKey);
|
|
10
|
+
|
|
11
|
+
return ({
|
|
12
|
+
key: observationKey,
|
|
13
|
+
value,
|
|
14
|
+
attrValuesIndexes,
|
|
15
|
+
dimValuesIndexes
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
)
|
|
19
|
+
)(sdmxJson);
|
|
20
|
+
|
|
21
|
+
export { getObservations };
|
|
22
|
+
//# sourceMappingURL=getObservations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getObservations.js","sources":["../../../../src/rules/src/preparators/getObservations.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getObservations = (sdmxJson) => R.pipe(\n R.pathOr({}, ['data', 'dataSets', 0, 'observations']),\n R.mapObjIndexed(\n (observation, observationKey) => {\n const value = R.head(observation);\n const attrValuesIndexes = R.tail(observation);\n const dimValuesIndexes = R.split(':', observationKey);\n\n return ({\n key: observationKey,\n value,\n attrValuesIndexes,\n dimValuesIndexes\n });\n },\n )\n)(sdmxJson);\n"],"names":[],"mappings":";;AAEY,MAAC,eAAe,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI;AACnD,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AACvD,EAAE,CAAC,CAAC,aAAa;AACjB,IAAI,CAAC,WAAW,EAAE,cAAc,KAAK;AACrC,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;;AAE3D,MAAM,QAAQ;AACd,QAAQ,GAAG,EAAE,cAAc;AAC3B,QAAQ,KAAK;AACb,QAAQ,iBAAiB;AACzB,QAAQ;AACR,OAAO;AACP,IAAI,CAAC;AACL;AACA,CAAC,CAAC,QAAQ;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { REPORTING_YEAR_START_DAY, REPYEARSTART } from '../constants.js';
|
|
3
|
+
|
|
4
|
+
const getReportingYearStart = (sdmxJson) => {
|
|
5
|
+
const attributes = R.pipe(
|
|
6
|
+
R.pathOr({}, ['data', 'structure', 'attributes']),
|
|
7
|
+
({ dataSet=[], observation=[], series=[] }) => [...dataSet, ...observation, ...series]
|
|
8
|
+
)(sdmxJson);
|
|
9
|
+
|
|
10
|
+
const reportYearStartAttr = R.find(({ id }) => {
|
|
11
|
+
return id === REPORTING_YEAR_START_DAY || id === REPYEARSTART;
|
|
12
|
+
}, attributes) || {};
|
|
13
|
+
const reportYearStart = R.pathOr('--01-01', ['values', 0, 'value'], reportYearStartAttr);
|
|
14
|
+
const [month = '01', day = '01'] = R.match(/[\d]{2}/g, reportYearStart);
|
|
15
|
+
return ({ month, day });
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { getReportingYearStart };
|
|
19
|
+
//# sourceMappingURL=getReportingYearStart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getReportingYearStart.js","sources":["../../../../src/rules/src/preparators/getReportingYearStart.js"],"sourcesContent":["import * as R from 'ramda';\nimport { REPORTING_YEAR_START_DAY, REPYEARSTART } from '../constants';\n\nexport const getReportingYearStart = (sdmxJson) => {\n const attributes = R.pipe(\n R.pathOr({}, ['data', 'structure', 'attributes']),\n ({ dataSet=[], observation=[], series=[] }) => [...dataSet, ...observation, ...series]\n )(sdmxJson);\n\n const reportYearStartAttr = R.find(({ id }) => {\n return id === REPORTING_YEAR_START_DAY || id === REPYEARSTART;\n }, attributes) || {};\n const reportYearStart = R.pathOr('--01-01', ['values', 0, 'value'], reportYearStartAttr);\n const [month = '01', day = '01'] = R.match(/[\\d]{2}/g, reportYearStart);\n return ({ month, day });\n};\n"],"names":[],"mappings":";;;AAGY,MAAC,qBAAqB,GAAG,CAAC,QAAQ,KAAK;AACnD,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI;AAC3B,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACrD,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM;AACzF,GAAG,CAAC,QAAQ,CAAC;;AAEb,EAAE,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK;AACjD,IAAI,OAAO,EAAE,KAAK,wBAAwB,IAAI,EAAE,KAAK,YAAY;AACjE,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE;AACtB,EAAE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC;AAC1F,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC;AACzE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AACxB;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { TIMELINE } from '../constants.js';
|
|
3
|
+
import { getTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
|
|
4
|
+
|
|
5
|
+
const getHasNoTimePeriodError = ({ data, type }) => {
|
|
6
|
+
if (!R.equals(TIMELINE, type)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);
|
|
10
|
+
const timeDimension = getTimePeriodDimension({ dimensions });
|
|
11
|
+
if (R.isNil(timeDimension)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return R.pipe(
|
|
15
|
+
R.propOr([], 'values'),
|
|
16
|
+
R.length,
|
|
17
|
+
R.gte(1)
|
|
18
|
+
)(timeDimension);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { getHasNoTimePeriodError };
|
|
22
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sources":["../../../../src/rules/src/properties/errors.js"],"sourcesContent":["import * as R from 'ramda';\nimport { TIMELINE } from '../constants';\nimport { getTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';\n\nexport const getHasNoTimePeriodError = ({ data, type }) => {\n if (!R.equals(TIMELINE, type)) {\n return false;\n }\n const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);\n const timeDimension = getTimePeriodDimension({ dimensions });\n if (R.isNil(timeDimension)) {\n return true;\n }\n return R.pipe(\n R.propOr([], 'values'),\n R.length,\n R.gte(1)\n )(timeDimension);\n};\n"],"names":[],"mappings":";;;;AAIY,MAAC,uBAAuB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;AAC3D,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;AACjC,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC;AACnF,EAAE,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC;AAC9D,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AAC9B,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC1B,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACX,GAAG,CAAC,aAAa,CAAC;AAClB;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { focus, extractSdmxArtefacts } from '../index.js';
|
|
3
|
+
import { TIMELINE, ROW, BAR } from '../constants.js';
|
|
4
|
+
import { hasFocus } from './utils.js';
|
|
5
|
+
|
|
6
|
+
const sampleFocusTypes = { [BAR]: BAR, [ROW]: ROW, [TIMELINE]: TIMELINE };
|
|
7
|
+
|
|
8
|
+
const focusComparator = (op1, op2) => op1.value === op2.value;
|
|
9
|
+
|
|
10
|
+
const focusOptions = (props, state, otherFocus, singularity) => {
|
|
11
|
+
if (!hasFocus(props.type)) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const options = focus(
|
|
15
|
+
props.data,
|
|
16
|
+
props.type,
|
|
17
|
+
singularity,
|
|
18
|
+
props.display
|
|
19
|
+
);
|
|
20
|
+
return R.differenceWith(
|
|
21
|
+
focusComparator,
|
|
22
|
+
options,
|
|
23
|
+
R.prop(otherFocus, state)
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const onChangeFocusSelection = (_value) => {
|
|
28
|
+
const value = R.isNil(_value) ? [] : _value;
|
|
29
|
+
return (R.is(Array, value) ? value : [value]);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const toKey = () => R.prop('value');
|
|
33
|
+
|
|
34
|
+
const filterFocus = (focus, keyedOptions, type) => R.reduce(
|
|
35
|
+
(acc, entry) => {
|
|
36
|
+
const entryKey = toKey()(entry);
|
|
37
|
+
if (R.has(entryKey, keyedOptions)) {
|
|
38
|
+
return R.append(R.prop(entryKey, keyedOptions), acc);
|
|
39
|
+
}
|
|
40
|
+
return acc;
|
|
41
|
+
},
|
|
42
|
+
[],
|
|
43
|
+
focus
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
const focusStateFromNewProps = ({ data, display, type }, singularity, state) => {
|
|
47
|
+
const { id } = extractSdmxArtefacts(data);
|
|
48
|
+
const highlightState = R.propOr([], 'highlight', state);
|
|
49
|
+
const baselineState = R.propOr([], 'baseline', state);
|
|
50
|
+
const options = focus(data, type, singularity, display);
|
|
51
|
+
const keyedOptions = R.indexBy(toKey(), options);
|
|
52
|
+
return ({
|
|
53
|
+
baseline: filterFocus(baselineState, keyedOptions, R.prop('type', state)),
|
|
54
|
+
highlight: filterFocus(highlightState, keyedOptions, R.prop('type', state)),
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/*
|
|
59
|
+
This props/state parser which will be exposed in highlight/baseline properties,
|
|
60
|
+
only deals for Bar and Row Chart (no chart dimension singularity involved).
|
|
61
|
+
For other chart types, their own chart dimension singularity parser will handle focus management.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
const sampleFocusStateFromNewProps = (props, state) => {
|
|
65
|
+
if (!R.has(props.type, sampleFocusTypes) || R.isNil(props.data)) {
|
|
66
|
+
return ({}); //no changes
|
|
67
|
+
}
|
|
68
|
+
return focusStateFromNewProps(props, null, state);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export { focusOptions, focusStateFromNewProps, onChangeFocusSelection, sampleFocusStateFromNewProps };
|
|
72
|
+
//# sourceMappingURL=focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus.js","sources":["../../../../src/rules/src/properties/focus.js"],"sourcesContent":["import * as R from 'ramda';\nimport { extractSdmxArtefacts, focus } from '../';\nimport { BAR, ROW, TIMELINE } from '../constants';\nimport { hasFocus } from './utils';\n\nconst sampleFocusTypes = { [BAR]: BAR, [ROW]: ROW, [TIMELINE]: TIMELINE };\n\nconst focusComparator = (op1, op2) => op1.value === op2.value;\n\nexport const focusOptions = (props, state, otherFocus, singularity) => {\n if (!hasFocus(props.type)) {\n return [];\n }\n const options = focus(\n props.data,\n props.type,\n singularity,\n props.display\n );\n return R.differenceWith(\n focusComparator,\n options,\n R.prop(otherFocus, state)\n );\n};\n\nexport const onChangeFocusSelection = (_value) => {\n const value = R.isNil(_value) ? [] : _value;\n return (R.is(Array, value) ? value : [value]);\n};\n\nconst toKey = () => R.prop('value');\n\nconst filterFocus = (focus, keyedOptions, type) => R.reduce(\n (acc, entry) => {\n const entryKey = toKey(type)(entry);\n if (R.has(entryKey, keyedOptions)) {\n return R.append(R.prop(entryKey, keyedOptions), acc);\n }\n return acc;\n },\n [],\n focus\n)\n\nexport const focusStateFromNewProps = ({ data, display, type }, singularity, state) => {\n const { id } = extractSdmxArtefacts(data);\n const highlightState = R.propOr([], 'highlight', state);\n const baselineState = R.propOr([], 'baseline', state);\n const options = focus(data, type, singularity, display);\n const keyedOptions = R.indexBy(toKey(type), options);\n return ({\n baseline: filterFocus(baselineState, keyedOptions, R.prop('type', state)),\n highlight: filterFocus(highlightState, keyedOptions, R.prop('type', state)),\n });\n};\n\n/*\n This props/state parser which will be exposed in highlight/baseline properties,\n only deals for Bar and Row Chart (no chart dimension singularity involved).\n For other chart types, their own chart dimension singularity parser will handle focus management.\n*/\n\nexport const sampleFocusStateFromNewProps = (props, state) => {\n if (!R.has(props.type, sampleFocusTypes) || R.isNil(props.data)) {\n return ({}); //no changes\n }\n return focusStateFromNewProps(props, null, state);\n};"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { OBS_TYPE_NUMBER, OBS_TYPE_NUMERICAL_STRING, TIMELINE, CHORO, TYPES } from '../constants.js';
|
|
3
|
+
import { getTimePeriodDimension, getRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';
|
|
4
|
+
import { getObservationsType } from './getObservationsType.js';
|
|
5
|
+
|
|
6
|
+
const getAvailableChartTypes = (data) => {
|
|
7
|
+
const observationsType = getObservationsType(data);
|
|
8
|
+
if (!R.includes(observationsType, [OBS_TYPE_NUMBER, OBS_TYPE_NUMERICAL_STRING])) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);
|
|
12
|
+
const timeDimension = getTimePeriodDimension({ dimensions });
|
|
13
|
+
const refAreaDimension = getRefAreaDimension({ dimensions });
|
|
14
|
+
const hasNoTime = R.anyPass([
|
|
15
|
+
R.isNil,
|
|
16
|
+
R.pipe(R.propOr([], 'values'), R.length, R.gte(1))
|
|
17
|
+
])(timeDimension);
|
|
18
|
+
return R.pipe(
|
|
19
|
+
R.when(
|
|
20
|
+
R.always(hasNoTime),
|
|
21
|
+
R.omit([TIMELINE])
|
|
22
|
+
),
|
|
23
|
+
R.when(
|
|
24
|
+
R.always(R.isNil(refAreaDimension)),
|
|
25
|
+
R.omit([CHORO])
|
|
26
|
+
)
|
|
27
|
+
)(TYPES);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { getAvailableChartTypes };
|
|
31
|
+
//# sourceMappingURL=getAvailableChartTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAvailableChartTypes.js","sources":["../../../../src/rules/src/properties/getAvailableChartTypes.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n CHORO,\n OBS_TYPE_NUMBER,\n OBS_TYPE_NUMERICAL_STRING,\n TIMELINE,\n TYPES\n} from '../constants';\nimport { getRefAreaDimension, getTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';\nimport { getObservationsType } from './getObservationsType';\n\nexport const getAvailableChartTypes = (data) => {\n const observationsType = getObservationsType(data);\n if (!R.includes(observationsType, [OBS_TYPE_NUMBER, OBS_TYPE_NUMERICAL_STRING])) {\n return {};\n }\n const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);\n const timeDimension = getTimePeriodDimension({ dimensions });\n const refAreaDimension = getRefAreaDimension({ dimensions });\n const hasNoTime = R.anyPass([\n R.isNil,\n R.pipe(R.propOr([], 'values'), R.length, R.gte(1))\n ])(timeDimension);\n return R.pipe(\n R.when(\n R.always(hasNoTime),\n R.omit([TIMELINE])\n ),\n R.when(\n R.always(R.isNil(refAreaDimension)),\n R.omit([CHORO])\n )\n )(TYPES);\n};\n"],"names":[],"mappings":";;;;;AAWY,MAAC,sBAAsB,GAAG,CAAC,IAAI,KAAK;AAChD,EAAE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC;AACpD,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC,EAAE;AACnF,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC;AACnF,EAAE,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC;AAC9D,EAAE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;AAC9D,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AAC9B,IAAI,CAAC,CAAC,KAAK;AACX,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,GAAG,CAAC,CAAC,aAAa,CAAC;AACnB,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AACzB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACvB,KAAK;AACL,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACzC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACpB;AACA,GAAG,CAAC,KAAK,CAAC;AACV;;;;"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { parseDisplay } from '../index.js';
|
|
3
|
+
import { isChart } from './utils.js';
|
|
4
|
+
import { getTitleFlags } from '../header/getTitleFlags.js';
|
|
5
|
+
import { getHeaderUnits } from '../header/getHeaderUnits.js';
|
|
6
|
+
import { dimensionValueDisplay } from '../dimension-utils.js';
|
|
7
|
+
import { getDefaultSubtitle } from '../header/getDefaultSubtitle.js';
|
|
8
|
+
import { getSubtitleFlags } from '../header/getSubtitleFlags.js';
|
|
9
|
+
|
|
10
|
+
const isCustomInvalid = ({ type }) => (value) => R.isNil(value) || !isChart(type);
|
|
11
|
+
|
|
12
|
+
const getDataflowName = (props) => {
|
|
13
|
+
const dataflow = R.propOr({}, 'dataflow', props);
|
|
14
|
+
const display = parseDisplay(props.display);
|
|
15
|
+
return dimensionValueDisplay(display)(dataflow);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const getTitleLabel = (props, state) => R.when(
|
|
19
|
+
isCustomInvalid({ type: props.type }),
|
|
20
|
+
R.always(getDataflowName(props))
|
|
21
|
+
)(state.title);
|
|
22
|
+
|
|
23
|
+
const getSubtitle = (props, state) => R.ifElse(
|
|
24
|
+
isCustomInvalid({type: props.type }),
|
|
25
|
+
R.always(getDefaultSubtitle({
|
|
26
|
+
customAttributes: props.customAttributes,
|
|
27
|
+
dimensions: state.dimensions,
|
|
28
|
+
display: props.display,
|
|
29
|
+
units: state.units
|
|
30
|
+
})),
|
|
31
|
+
(label) => {
|
|
32
|
+
const flags = getSubtitleFlags({
|
|
33
|
+
customAttributes: props.customAttributes,
|
|
34
|
+
dimensions: state.dimensions,
|
|
35
|
+
display: props.display,
|
|
36
|
+
units: state.units
|
|
37
|
+
});
|
|
38
|
+
return ([{ label, flags }]);
|
|
39
|
+
}
|
|
40
|
+
)(state.subtitle);
|
|
41
|
+
|
|
42
|
+
const getSourceLabel = (props, state) => R.when(
|
|
43
|
+
isCustomInvalid({ type: props.type }),
|
|
44
|
+
R.always(getDataflowName(props))
|
|
45
|
+
)(state.sourceLabel);
|
|
46
|
+
|
|
47
|
+
const getHeaderProps = (props, state) => {
|
|
48
|
+
const title = {
|
|
49
|
+
label: getTitleLabel(props, state),
|
|
50
|
+
flags: getTitleFlags({
|
|
51
|
+
customAttributes: props.customAttributes,
|
|
52
|
+
dataflowAttributes: state.dataflowAttributes,
|
|
53
|
+
display: props.display,
|
|
54
|
+
})
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const subtitle = getSubtitle(props, state);
|
|
58
|
+
|
|
59
|
+
const uprs = getHeaderUnits({
|
|
60
|
+
display: props.display,
|
|
61
|
+
units: R.assoc(
|
|
62
|
+
'values',
|
|
63
|
+
R.pathOr([], ['units', 'headerUnits'], state)
|
|
64
|
+
)(R.pathOr({}, ['units', 'unitDimension'], props))
|
|
65
|
+
});
|
|
66
|
+
return ({ subtitle, title, uprs });
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const getFooterProps = (props, state) => ({
|
|
70
|
+
withCopyright: isChart(props.type) ? state.withCopyright : true,
|
|
71
|
+
withLogo: isChart(props.type) ? state.withLogo : true,
|
|
72
|
+
sourceLabel: getSourceLabel(props, state)
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export { getFooterProps, getHeaderProps, getSourceLabel, getSubtitle, getTitleLabel };
|
|
76
|
+
//# sourceMappingURL=getHeaderProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getHeaderProps.js","sources":["../../../../src/rules/src/properties/getHeaderProps.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n getDefaultSubtitle,\n getHeaderUnits,\n getSubtitleFlags,\n getTitleFlags\n} from '../header';\nimport { dimensionValueDisplay, parseDisplay } from '../';\nimport { isChart } from './utils';\n\nconst isCustomInvalid = ({ type }) => (value) => R.isNil(value) || !isChart(type);\n\nconst getDataflowName = (props) => {\n const dataflow = R.propOr({}, 'dataflow', props);\n const display = parseDisplay(props.display);\n return dimensionValueDisplay(display)(dataflow);\n};\n\nexport const getTitleLabel = (props, state) => R.when(\n isCustomInvalid({ type: props.type }),\n R.always(getDataflowName(props))\n)(state.title);\n\nexport const getSubtitle = (props, state) => R.ifElse(\n isCustomInvalid({type: props.type }),\n R.always(getDefaultSubtitle({\n customAttributes: props.customAttributes,\n dimensions: state.dimensions,\n display: props.display,\n units: state.units\n })),\n (label) => {\n const flags = getSubtitleFlags({\n customAttributes: props.customAttributes,\n dimensions: state.dimensions,\n display: props.display,\n units: state.units\n });\n return ([{ label, flags }]);\n }\n)(state.subtitle);\n\nexport const getSourceLabel = (props, state) => R.when(\n isCustomInvalid({ type: props.type }),\n R.always(getDataflowName(props))\n)(state.sourceLabel);\n\nexport const getHeaderProps = (props, state) => {\n const title = {\n label: getTitleLabel(props, state),\n flags: getTitleFlags({\n customAttributes: props.customAttributes,\n dataflowAttributes: state.dataflowAttributes,\n display: props.display,\n })\n };\n\n const subtitle = getSubtitle(props, state);\n\n const uprs = getHeaderUnits({\n display: props.display,\n units: R.assoc(\n 'values',\n R.pathOr([], ['units', 'headerUnits'], state)\n )(R.pathOr({}, ['units', 'unitDimension'], props))\n });\n return ({ subtitle, title, uprs });\n};\n\nexport const getFooterProps = (props, state) => ({\n withCopyright: isChart(props.type) ? state.withCopyright : true,\n withLogo: isChart(props.type) ? state.withLogo : true,\n sourceLabel: getSourceLabel(props, state)\n});\n"],"names":[],"mappings":";;;;;;;;;AAUA,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;AAEjF,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK;AACnC,EAAE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC;AAClD,EAAE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;AAC7C,EAAE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;;AAEW,MAAC,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,IAAI;AACrD,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;AACjC,CAAC,CAAC,KAAK,CAAC,KAAK;;AAED,MAAC,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM;AACrD,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;AAC9B,IAAI,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AAC5C,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU;AAChC,IAAI,OAAO,EAAE,KAAK,CAAC,OAAO;AAC1B,IAAI,KAAK,EAAE,KAAK,CAAC;AACjB,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,KAAK,KAAK;AACb,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC;AACnC,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AAC9C,MAAM,UAAU,EAAE,KAAK,CAAC,UAAU;AAClC,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO;AAC5B,MAAM,KAAK,EAAE,KAAK,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,EAAE;AACF,CAAC,CAAC,KAAK,CAAC,QAAQ;;AAEJ,MAAC,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,IAAI;AACtD,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;AACjC,CAAC,CAAC,KAAK,CAAC,WAAW;;AAEP,MAAC,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK;AAChD,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AACtC,IAAI,KAAK,EAAE,aAAa,CAAC;AACzB,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AAC9C,MAAM,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;AAClD,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO;AAC5B,KAAK;AACL,GAAG;;AAEH,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;AAE5C,EAAE,MAAM,IAAI,GAAG,cAAc,CAAC;AAC9B,IAAI,OAAO,EAAE,KAAK,CAAC,OAAO;AAC1B,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK;AAClB,MAAM,QAAQ;AACd,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK;AAClD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC;AACrD,GAAG,CAAC;AACJ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AACnC;;AAEY,MAAC,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,MAAM;AACjD,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI;AACjE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI;AACvD,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,EAAE,KAAK;AAC1C,CAAC;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { extractSdmxArtefacts, prepareData } from '../index.js';
|
|
3
|
+
|
|
4
|
+
const initialState = {
|
|
5
|
+
dataflow: null,
|
|
6
|
+
dataflowAttributes: null,
|
|
7
|
+
dimensions: null,
|
|
8
|
+
units: null,
|
|
9
|
+
id: null,
|
|
10
|
+
sourceLabel: null,
|
|
11
|
+
subtitle: null,
|
|
12
|
+
title: null,
|
|
13
|
+
withCopyright: true,
|
|
14
|
+
withLogo: true
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const getInformationsStateFromNewProps = (props, state) => {
|
|
18
|
+
if (R.isNil(props.data)) {
|
|
19
|
+
return initialState
|
|
20
|
+
}
|
|
21
|
+
const id = R.pipe(
|
|
22
|
+
R.prop('data'),
|
|
23
|
+
extractSdmxArtefacts,
|
|
24
|
+
R.prop('id')
|
|
25
|
+
)(props);
|
|
26
|
+
if (id === state.id && props.display === state.display) {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
const {
|
|
30
|
+
dataflowAttributes,
|
|
31
|
+
dataflowName,
|
|
32
|
+
dimensions,
|
|
33
|
+
units
|
|
34
|
+
} = prepareData({ data: props.data }, props.customAttributes, props.units);
|
|
35
|
+
return {
|
|
36
|
+
...initialState,
|
|
37
|
+
dataflow: {
|
|
38
|
+
id: props.dataflowId,
|
|
39
|
+
name: dataflowName
|
|
40
|
+
},
|
|
41
|
+
dataflowAttributes,
|
|
42
|
+
dimensions,
|
|
43
|
+
display: props.display,
|
|
44
|
+
id,
|
|
45
|
+
units
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { getInformationsStateFromNewProps };
|
|
50
|
+
//# sourceMappingURL=getInformationsStateFromNewProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInformationsStateFromNewProps.js","sources":["../../../../src/rules/src/properties/getInformationsStateFromNewProps.js"],"sourcesContent":["import * as R from 'ramda';\nimport { extractSdmxArtefacts, prepareData } from '../';\n\nconst initialState = {\n dataflow: null,\n dataflowAttributes: null,\n dimensions: null,\n units: null,\n id: null,\n sourceLabel: null,\n subtitle: null,\n title: null,\n withCopyright: true,\n withLogo: true\n};\n\nexport const getInformationsStateFromNewProps = (props, state) => {\n if (R.isNil(props.data)) {\n return initialState\n }\n const id = R.pipe(\n R.prop('data'),\n extractSdmxArtefacts,\n R.prop('id')\n )(props);\n if (id === state.id && props.display === state.display) {\n return {};\n }\n const {\n dataflowAttributes,\n dataflowName,\n dimensions,\n units\n } = prepareData({ data: props.data }, props.customAttributes, props.units);\n return {\n ...initialState,\n dataflow: {\n id: props.dataflowId,\n name: dataflowName\n },\n dataflowAttributes,\n dimensions,\n display: props.display,\n id,\n units\n };\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG;AACrB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,kBAAkB,EAAE,IAAI;AAC1B,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,QAAQ,EAAE;AACZ,CAAC;;AAEW,MAAC,gCAAgC,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK;AAClE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC3B,IAAI,OAAO;AACX,EAAE;AACF,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI;AACnB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAClB,IAAI,oBAAoB;AACxB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;AACf,GAAG,CAAC,KAAK,CAAC;AACV,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE;AAC1D,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,MAAM;AACR,IAAI,kBAAkB;AACtB,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI;AACJ,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC;AAC5E,EAAE,OAAO;AACT,IAAI,GAAG,YAAY;AACnB,IAAI,QAAQ,EAAE;AACd,MAAM,EAAE,EAAE,KAAK,CAAC,UAAU;AAC1B,MAAM,IAAI,EAAE;AACZ,KAAK;AACL,IAAI,kBAAkB;AACtB,IAAI,UAAU;AACd,IAAI,OAAO,EAAE,KAAK,CAAC,OAAO;AAC1B,IAAI,EAAE;AACN,IAAI;AACJ,GAAG;AACH;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
import { OBS_TYPE_NUMBER, OBS_TYPE_STRING, OBS_TYPE_NUMERICAL_STRING } from '../constants.js';
|
|
3
|
+
|
|
4
|
+
const getObservationsType = (data) => {
|
|
5
|
+
if (R.isNil(data)) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const firstObs = R.pipe(
|
|
9
|
+
R.pathOr({}, ['dataSets', 0, 'observations']),
|
|
10
|
+
R.values,
|
|
11
|
+
R.find(obs => R.not(R.either(R.isNil, R.isEmpty)(R.head(obs))))
|
|
12
|
+
)(data);
|
|
13
|
+
if (R.isNil(firstObs)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const firstObsValue = R.head(firstObs);
|
|
17
|
+
if (R.is(Number, firstObsValue)) {
|
|
18
|
+
return OBS_TYPE_NUMBER;
|
|
19
|
+
}
|
|
20
|
+
return R.ifElse(
|
|
21
|
+
R.equals(NaN),
|
|
22
|
+
R.always(OBS_TYPE_STRING),
|
|
23
|
+
R.always(OBS_TYPE_NUMERICAL_STRING)
|
|
24
|
+
)(Number(firstObsValue));
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { getObservationsType };
|
|
28
|
+
//# sourceMappingURL=getObservationsType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getObservationsType.js","sources":["../../../../src/rules/src/properties/getObservationsType.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n OBS_TYPE_NUMBER,\n OBS_TYPE_NUMERICAL_STRING,\n OBS_TYPE_STRING\n} from '../constants';\n\nexport const getObservationsType = (data) => {\n if (R.isNil(data)) {\n return undefined;\n }\n const firstObs = R.pipe(\n R.pathOr({}, ['dataSets', 0, 'observations']),\n R.values,\n R.find(obs => R.not(R.either(R.isNil, R.isEmpty)(R.head(obs))))\n )(data);\n if (R.isNil(firstObs)) {\n return undefined;\n }\n const firstObsValue = R.head(firstObs);\n if (R.is(Number, firstObsValue)) {\n return OBS_TYPE_NUMBER;\n }\n return R.ifElse(\n R.equals(NaN),\n R.always(OBS_TYPE_STRING),\n R.always(OBS_TYPE_NUMERICAL_STRING)\n )(Number(firstObsValue));\n};\n"],"names":[],"mappings":";;;AAOY,MAAC,mBAAmB,GAAG,CAAC,IAAI,KAAK;AAC7C,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI;AACzB,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,GAAG,CAAC,IAAI,CAAC;AACT,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACzB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;AACnC,IAAI,OAAO,eAAe;AAC1B,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,MAAM;AACjB,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACjB,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;AAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,yBAAyB;AACtC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStringifiedSubtitle.js","sources":["../../../../src/rules/src/properties/getStringifiedSubtitle.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const stringifySubtitle = R.pipe(\n R.map(({ header, label }) => R.isNil(header) ? label : `${header} ${label}`),\n R.join(' · ')\n);\n"],"names":[],"mappings":";;AAEY,MAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI;AACvC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9E,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;AACd;;;;"}
|