@sis-cc/dotstatsuite-components 22.5.0 → 23.0.0
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/_virtual/index.js +4 -5
- package/dist/_virtual/index.js.map +1 -1
- package/dist/_virtual/index2.js +4 -5
- package/dist/_virtual/index2.js.map +1 -1
- package/dist/_virtual/index3.js +4 -4
- package/dist/_virtual/index4.js +2 -6
- package/dist/_virtual/index4.js.map +1 -1
- package/dist/_virtual/index5.js +3 -5
- package/dist/_virtual/index5.js.map +1 -1
- package/dist/_virtual/index6.js +2 -6
- package/dist/_virtual/index6.js.map +1 -1
- package/dist/_virtual/index7.js +2 -6
- package/dist/_virtual/index7.js.map +1 -1
- package/dist/bridge-d3-react/src/index.js +1 -2
- package/dist/bridge-d3-react/src/index.js.map +1 -1
- package/dist/node_modules/@mui/styles/StylesProvider/StylesProvider.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator.js +2 -2
- package/dist/node_modules/@mui/system/esm/responsivePropType.js +1 -1
- package/dist/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js +1 -1
- package/dist/node_modules/@mui/utils/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/date-fns/esm/_lib/defaultOptions/index.js +7 -0
- package/dist/node_modules/date-fns/esm/_lib/defaultOptions/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js +12 -0
- package/dist/node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/_lib/requiredArgs/index.js +8 -0
- package/dist/node_modules/date-fns/esm/_lib/requiredArgs/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js +25 -0
- package/dist/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/_lib/toInteger/index.js +13 -0
- package/dist/node_modules/date-fns/esm/_lib/toInteger/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/getISOWeek/index.js +39 -0
- package/dist/node_modules/date-fns/esm/getISOWeek/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/getISOWeekYear/index.js +47 -0
- package/dist/node_modules/date-fns/esm/getISOWeekYear/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/getTime/index.js +29 -0
- package/dist/node_modules/date-fns/esm/getTime/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isFriday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isFriday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isMonday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isMonday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isSaturday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isSaturday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isSunday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isSunday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isThursday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isThursday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isTuesday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isTuesday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/isWednesday/index.js +27 -0
- package/dist/node_modules/date-fns/esm/isWednesday/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js +12 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js +21 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js +45 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js +20 -0
- package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js +119 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/localize/index.js +121 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/match/index.js +102 -0
- package/dist/node_modules/date-fns/esm/locale/ar/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/ar/index.js +30 -0
- package/dist/node_modules/date-fns/esm/locale/ar/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js +178 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js +42 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/localize/index.js +137 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/match/index.js +103 -0
- package/dist/node_modules/date-fns/esm/locale/de/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/de/index.js +33 -0
- package/dist/node_modules/date-fns/esm/locale/de/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js +85 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js +146 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js +101 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/index.js +30 -0
- package/dist/node_modules/date-fns/esm/locale/en-US/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js +85 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js +26 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/localize/index.js +122 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/match/index.js +102 -0
- package/dist/node_modules/date-fns/esm/locale/es/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/es/index.js +33 -0
- package/dist/node_modules/date-fns/esm/locale/es/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js +85 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js +97 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/match/index.js +101 -0
- package/dist/node_modules/date-fns/esm/locale/fr/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/fr/index.js +30 -0
- package/dist/node_modules/date-fns/esm/locale/fr/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js +85 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js +54 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/localize/index.js +122 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/match/index.js +101 -0
- package/dist/node_modules/date-fns/esm/locale/it/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/it/index.js +31 -0
- package/dist/node_modules/date-fns/esm/locale/it/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js +85 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/localize/index.js +88 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/match/index.js +100 -0
- package/dist/node_modules/date-fns/esm/locale/nl/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/nl/index.js +34 -0
- package/dist/node_modules/date-fns/esm/locale/nl/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatDistance/index.js +89 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatDistance/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatLong/index.js +37 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatLong/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatRelative/index.js +14 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/formatRelative/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/localize/index.js +121 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/localize/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/match/index.js +100 -0
- package/dist/node_modules/date-fns/esm/locale/th/_lib/match/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/locale/th/index.js +31 -0
- package/dist/node_modules/date-fns/esm/locale/th/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/startOfISOWeek/index.js +32 -0
- package/dist/node_modules/date-fns/esm/startOfISOWeek/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/startOfISOWeekYear/index.js +37 -0
- package/dist/node_modules/date-fns/esm/startOfISOWeekYear/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/startOfWeek/index.js +52 -0
- package/dist/node_modules/date-fns/esm/startOfWeek/index.js.map +1 -0
- package/dist/node_modules/date-fns/esm/toDate/index.js +56 -0
- package/dist/node_modules/date-fns/esm/toDate/index.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/react-is/index.js +1 -1
- package/dist/rules/src/chart/getAxisOptions.js +22 -22
- package/dist/rules/src/chart/getAxisOptions.js.map +1 -1
- package/dist/rules/src/chart/getChartOptions.js +1 -1
- package/dist/rules/src/chart/getChartOptions.js.map +1 -1
- package/dist/rules/src/constants.js +1 -35
- package/dist/rules/src/constants.js.map +1 -1
- package/dist/rules/src/date.js +40 -40
- package/dist/rules/src/date.js.map +1 -1
- package/dist/rules/src/dimension-utils.js +26 -24
- package/dist/rules/src/dimension-utils.js.map +1 -1
- package/dist/rules/src/factories/choro-series.js +43 -32
- package/dist/rules/src/factories/choro-series.js.map +1 -1
- package/dist/rules/src/factories/focus.js +20 -0
- package/dist/rules/src/factories/focus.js.map +1 -0
- package/dist/rules/src/factories/getChartSeries.js +11 -0
- package/dist/rules/src/factories/getChartSeries.js.map +1 -0
- package/dist/rules/src/factories/sample-focus.js +14 -18
- package/dist/rules/src/factories/sample-focus.js.map +1 -1
- package/dist/rules/src/factories/sample-series.js +20 -20
- package/dist/rules/src/factories/sample-series.js.map +1 -1
- package/dist/rules/src/factories/scatter-focus.js +21 -35
- package/dist/rules/src/factories/scatter-focus.js.map +1 -1
- package/dist/rules/src/factories/scatter-series.js +5 -5
- package/dist/rules/src/factories/scatter-series.js.map +1 -1
- package/dist/rules/src/factories/series.js +48 -0
- package/dist/rules/src/factories/series.js.map +1 -0
- package/dist/rules/src/factories/stacked-series.js +6 -7
- package/dist/rules/src/factories/stacked-series.js.map +1 -1
- package/dist/rules/src/factories/symbol-series.js +39 -46
- package/dist/rules/src/factories/symbol-series.js.map +1 -1
- package/dist/rules/src/factories/timeline-focus.js +10 -14
- package/dist/rules/src/factories/timeline-focus.js.map +1 -1
- package/dist/rules/src/factories/timeline-series.js +37 -41
- package/dist/rules/src/factories/timeline-series.js.map +1 -1
- package/dist/rules/src/get-values-enhanced.js +8 -2
- package/dist/rules/src/get-values-enhanced.js.map +1 -1
- package/dist/rules/src/index.js +6 -371
- package/dist/rules/src/index.js.map +1 -1
- package/dist/rules/src/layout.js +4 -2
- package/dist/rules/src/layout.js.map +1 -1
- package/dist/rules/src/observation-formater.js +8 -14
- package/dist/rules/src/observation-formater.js.map +1 -1
- package/dist/rules/src/properties/focus.js +51 -3
- package/dist/rules/src/properties/focus.js.map +1 -1
- package/dist/rules/src/properties/getHeaderProps.js +2 -53
- package/dist/rules/src/properties/getHeaderProps.js.map +1 -1
- package/dist/rules/src/properties/index.js +3 -94
- package/dist/rules/src/properties/index.js.map +1 -1
- package/dist/rules/src/properties/linear.js +4 -4
- package/dist/rules/src/properties/linear.js.map +1 -1
- package/dist/rules/src/properties/scatter.js +4 -4
- package/dist/rules/src/properties/scatter.js.map +1 -1
- package/dist/rules/src/properties/stacked.js +5 -7
- package/dist/rules/src/properties/stacked.js.map +1 -1
- package/dist/rules/src/properties/symbol.js.map +1 -1
- package/dist/rules/src/properties/utils.js +11 -12
- package/dist/rules/src/properties/utils.js.map +1 -1
- package/dist/rules/src/sdmx-data/index.js +2 -27
- package/dist/rules/src/sdmx-data/index.js.map +1 -1
- package/dist/rules2/src/combinedValuesDisplay.js +2 -2
- package/dist/rules2/src/combinedValuesDisplay.js.map +1 -1
- package/dist/rules2/src/getAttributes.js +37 -0
- package/dist/rules2/src/getAttributes.js.map +1 -0
- package/dist/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
- package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -1
- package/dist/rules2/src/getHeaderCombinations.js +1 -1
- package/dist/rules2/src/getHeaderCombinations.js.map +1 -1
- package/dist/rules2/src/getHeaderSubtitle.js +1 -1
- package/dist/rules2/src/getHeaderSubtitle.js.map +1 -1
- package/dist/rules2/src/getHeaderTitle.js +1 -1
- package/dist/rules2/src/getHeaderTitle.js.map +1 -1
- package/dist/rules2/src/getMetadataCoordinates.js +1 -1
- package/dist/rules2/src/getMetadataCoordinates.js.map +1 -1
- package/dist/rules2/src/getNotDisplayedIds.js +1 -1
- package/dist/rules2/src/getNotDisplayedIds.js.map +1 -1
- package/dist/rules2/src/index.js +1 -0
- package/dist/rules2/src/index.js.map +1 -1
- package/dist/rules2/src/parseAttributes.js +2 -2
- package/dist/rules2/src/parseAttributes.js.map +1 -1
- package/dist/rules2/src/parseHierarchicalCodelist.js +1 -1
- package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -1
- package/dist/rules2/src/parseMetadataSeries.js +1 -1
- package/dist/rules2/src/parseMetadataSeries.js.map +1 -1
- package/dist/rules2/src/prepareData.js +10 -3
- package/dist/rules2/src/prepareData.js.map +1 -1
- package/dist/rules2/src/refineDimensions.js +53 -8
- package/dist/rules2/src/refineDimensions.js.map +1 -1
- package/dist/rules2/src/refineTimePeriod.js +12 -16
- package/dist/rules2/src/refineTimePeriod.js.map +1 -1
- package/dist/rules2/src/table/getCells.js +1 -1
- package/dist/rules2/src/table/getCells.js.map +1 -1
- package/dist/rules2/src/table/getLayout.js +1 -1
- package/dist/rules2/src/table/getLayout.js.map +1 -1
- package/dist/rules2/src/table/getTableLayoutIds.js +1 -1
- package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -1
- package/dist/rules2/src/table/getTableProps.js +0 -1
- package/dist/rules2/src/table/getTableProps.js.map +1 -1
- package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -1
- package/dist/rules2/src/table/refineLayoutSize2.js +1 -1
- package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -1
- package/dist/rules2/src/utils.js.map +1 -1
- package/dist/viewer/src/chart.js +13 -2
- package/dist/viewer/src/chart.js.map +1 -1
- package/dist/viewer/src/legends/FocusLegend.js +1 -1
- package/dist/viewer/src/legends/FocusLegend.js.map +1 -1
- package/package.json +7 -6
- package/src/bridge-d3-react/src/index.js +0 -1
- package/src/rules/src/chart/getAxisOptions.js +33 -21
- package/src/rules/src/chart/getChartOptions.js +2 -2
- package/src/rules/src/constants.js +0 -35
- package/src/rules/src/date.js +6 -12
- package/src/rules/src/dimension-utils.js +25 -23
- package/src/rules/src/factories/choro-series.js +41 -30
- package/src/rules/src/factories/focus.js +17 -0
- package/src/rules/src/factories/getChartSeries.js +8 -0
- package/src/rules/src/factories/sample-focus.js +14 -18
- package/src/rules/src/factories/sample-series.js +20 -20
- package/src/rules/src/factories/scatter-focus.js +22 -36
- package/src/rules/src/factories/scatter-series.js +8 -8
- package/src/rules/src/factories/series.js +45 -0
- package/src/rules/src/factories/stacked-series.js +4 -5
- package/src/rules/src/factories/symbol-series.js +37 -44
- package/src/rules/src/factories/timeline-focus.js +10 -14
- package/src/rules/src/factories/timeline-series.js +35 -39
- package/src/rules/src/get-values-enhanced.js +8 -2
- package/src/rules/src/index.js +7 -384
- package/src/rules/src/layout.js +4 -2
- package/src/rules/src/observation-formater.js +14 -20
- package/src/rules/src/properties/focus.js +50 -2
- package/src/rules/src/properties/getHeaderProps.js +1 -53
- package/src/rules/src/properties/index.js +2 -93
- package/src/rules/src/properties/linear.js +2 -2
- package/src/rules/src/properties/scatter.js +4 -4
- package/src/rules/src/properties/stacked.js +4 -6
- package/src/rules/src/properties/symbol.js +0 -1
- package/src/rules/src/properties/utils.js +11 -22
- package/src/rules/src/sdmx-data/index.js +2 -31
- package/src/rules2/src/combinedValuesDisplay.js +2 -2
- package/src/rules2/src/getAttributes.js +34 -0
- package/src/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
- package/src/rules2/src/getHeaderCombinations.js +1 -1
- package/src/rules2/src/getHeaderSubtitle.js +2 -2
- package/src/rules2/src/getHeaderTitle.js +1 -1
- package/src/rules2/src/getMetadataCoordinates.js +1 -1
- package/src/rules2/src/getNotDisplayedIds.js +1 -1
- package/src/rules2/src/index.js +1 -0
- package/src/rules2/src/parseAttributes.js +2 -2
- package/src/rules2/src/parseHierarchicalCodelist.js +1 -1
- package/src/rules2/src/parseMetadataSeries.js +1 -1
- package/src/rules2/src/prepareData.js +10 -3
- package/src/rules2/src/refineDimensions.js +53 -8
- package/src/rules2/src/refineTimePeriod.js +12 -16
- package/src/rules2/src/table/getCells.js +2 -2
- package/src/rules2/src/table/getLayout.js +2 -2
- package/src/rules2/src/table/getTableLayoutIds.js +9 -9
- package/src/rules2/src/table/getTableProps.js +0 -1
- package/src/rules2/src/table/parseValueHierarchy.js +0 -7
- package/src/rules2/src/table/refineLayoutSize2.js +5 -5
- package/src/rules2/src/utils.js +0 -11
- package/src/viewer/src/app/leg.js +0 -1
- package/src/viewer/src/chart.jsx +23 -1
- package/src/viewer/src/legends/FocusLegend.jsx +1 -1
- package/dist/_virtual/index10.js +0 -8
- package/dist/_virtual/index10.js.map +0 -1
- package/dist/_virtual/index11.js +0 -8
- package/dist/_virtual/index11.js.map +0 -1
- package/dist/_virtual/index12.js +0 -8
- package/dist/_virtual/index12.js.map +0 -1
- package/dist/_virtual/index13.js +0 -8
- package/dist/_virtual/index13.js.map +0 -1
- package/dist/_virtual/index14.js +0 -8
- package/dist/_virtual/index14.js.map +0 -1
- package/dist/_virtual/index15.js +0 -8
- package/dist/_virtual/index15.js.map +0 -1
- package/dist/_virtual/index16.js +0 -8
- package/dist/_virtual/index16.js.map +0 -1
- package/dist/_virtual/index17.js +0 -7
- package/dist/_virtual/index17.js.map +0 -1
- package/dist/_virtual/index18.js +0 -7
- package/dist/_virtual/index18.js.map +0 -1
- package/dist/_virtual/index19.js +0 -8
- package/dist/_virtual/index19.js.map +0 -1
- package/dist/_virtual/index20.js +0 -4
- package/dist/_virtual/index20.js.map +0 -1
- package/dist/_virtual/index21.js +0 -6
- package/dist/_virtual/index21.js.map +0 -1
- package/dist/_virtual/index22.js +0 -4
- package/dist/_virtual/index22.js.map +0 -1
- package/dist/_virtual/index23.js +0 -4
- package/dist/_virtual/index23.js.map +0 -1
- package/dist/_virtual/index8.js +0 -8
- package/dist/_virtual/index8.js.map +0 -1
- package/dist/_virtual/index9.js +0 -8
- package/dist/_virtual/index9.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js +0 -32
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js.map +0 -1
- package/dist/node_modules/date-fns/get_iso_week/index.js +0 -49
- package/dist/node_modules/date-fns/get_iso_week/index.js.map +0 -1
- package/dist/node_modules/date-fns/get_iso_year/index.js +0 -59
- package/dist/node_modules/date-fns/get_iso_year/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_date/index.js +0 -32
- package/dist/node_modules/date-fns/is_date/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_friday/index.js +0 -35
- package/dist/node_modules/date-fns/is_friday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_monday/index.js +0 -35
- package/dist/node_modules/date-fns/is_monday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_saturday/index.js +0 -35
- package/dist/node_modules/date-fns/is_saturday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_sunday/index.js +0 -35
- package/dist/node_modules/date-fns/is_sunday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_thursday/index.js +0 -35
- package/dist/node_modules/date-fns/is_thursday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_tuesday/index.js +0 -35
- package/dist/node_modules/date-fns/is_tuesday/index.js.map +0 -1
- package/dist/node_modules/date-fns/is_wednesday/index.js +0 -35
- package/dist/node_modules/date-fns/is_wednesday/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js +0 -39
- package/dist/node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/ar/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/ar/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/ar/build_format_locale/index.js +0 -86
- package/dist/node_modules/date-fns/locale/ar/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/ar/index.js +0 -26
- package/dist/node_modules/date-fns/locale/ar/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/de/build_distance_in_words_locale/index.js +0 -196
- package/dist/node_modules/date-fns/locale/de/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/de/build_format_locale/index.js +0 -90
- package/dist/node_modules/date-fns/locale/de/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/de/index.js +0 -27
- package/dist/node_modules/date-fns/locale/de/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en/build_format_locale/index.js +0 -101
- package/dist/node_modules/date-fns/locale/en/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en/index.js +0 -25
- package/dist/node_modules/date-fns/locale/en/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/es/build_format_locale/index.js +0 -86
- package/dist/node_modules/date-fns/locale/es/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/es/index.js +0 -28
- package/dist/node_modules/date-fns/locale/es/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/fr/build_format_locale/index.js +0 -135
- package/dist/node_modules/date-fns/locale/fr/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/fr/index.js +0 -27
- package/dist/node_modules/date-fns/locale/fr/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/it/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/it/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/it/build_format_locale/index.js +0 -86
- package/dist/node_modules/date-fns/locale/it/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/it/index.js +0 -26
- package/dist/node_modules/date-fns/locale/it/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/nl/build_distance_in_words_locale/index.js +0 -110
- package/dist/node_modules/date-fns/locale/nl/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/nl/build_format_locale/index.js +0 -86
- package/dist/node_modules/date-fns/locale/nl/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/nl/index.js +0 -27
- package/dist/node_modules/date-fns/locale/nl/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/th/build_distance_in_words_locale/index.js +0 -114
- package/dist/node_modules/date-fns/locale/th/build_distance_in_words_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/th/build_format_locale/index.js +0 -74
- package/dist/node_modules/date-fns/locale/th/build_format_locale/index.js.map +0 -1
- package/dist/node_modules/date-fns/locale/th/index.js +0 -26
- package/dist/node_modules/date-fns/locale/th/index.js.map +0 -1
- package/dist/node_modules/date-fns/parse/index.js +0 -346
- package/dist/node_modules/date-fns/parse/index.js.map +0 -1
- package/dist/node_modules/date-fns/start_of_iso_week/index.js +0 -38
- package/dist/node_modules/date-fns/start_of_iso_week/index.js.map +0 -1
- package/dist/node_modules/date-fns/start_of_iso_year/index.js +0 -46
- package/dist/node_modules/date-fns/start_of_iso_year/index.js.map +0 -1
- package/dist/node_modules/date-fns/start_of_week/index.js +0 -51
- package/dist/node_modules/date-fns/start_of_week/index.js.map +0 -1
- package/dist/rules/src/factories/scatter-dimension.js +0 -35
- package/dist/rules/src/factories/scatter-dimension.js.map +0 -1
- package/dist/rules/src/factories/stacked-dimension.js +0 -32
- package/dist/rules/src/factories/stacked-dimension.js.map +0 -1
- package/dist/rules/src/factories/symbol-dimension.js +0 -32
- package/dist/rules/src/factories/symbol-dimension.js.map +0 -1
- package/dist/rules/src/header/getDefaultSubtitle.js +0 -44
- package/dist/rules/src/header/getDefaultSubtitle.js.map +0 -1
- package/dist/rules/src/header/getHeaderUnits.js +0 -21
- package/dist/rules/src/header/getHeaderUnits.js.map +0 -1
- package/dist/rules/src/header/getSubtitleFlags.js +0 -47
- package/dist/rules/src/header/getSubtitleFlags.js.map +0 -1
- package/dist/rules/src/header/getTitleFlags.js +0 -12
- package/dist/rules/src/header/getTitleFlags.js.map +0 -1
- package/dist/rules/src/properties/errors.js +0 -22
- package/dist/rules/src/properties/errors.js.map +0 -1
- package/dist/rules/src/properties/getInformationsStateFromNewProps.js +0 -50
- package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +0 -1
- package/dist/rules/src/v8-transformer.js +0 -174
- package/dist/rules/src/v8-transformer.js.map +0 -1
- package/src/bridge-d3-react/src/app.js +0 -64
- package/src/bridge-d3-react/src/mock-choro.js +0 -394
- package/src/rules/src/factories/scatter-dimension.js +0 -32
- package/src/rules/src/factories/stacked-dimension.js +0 -29
- package/src/rules/src/factories/symbol-dimension.js +0 -29
- package/src/rules/src/header/getDefaultSubtitle.js +0 -40
- package/src/rules/src/header/getHeaderUnits.js +0 -17
- package/src/rules/src/header/getSubtitleFlags.js +0 -43
- package/src/rules/src/header/getTitleFlags.js +0 -8
- package/src/rules/src/header/index.js +0 -4
- package/src/rules/src/preparators/enhanceObservations.js +0 -152
- package/src/rules/src/properties/errors.js +0 -19
- package/src/rules/src/properties/getInformationsStateFromNewProps.js +0 -47
- package/src/rules/src/properties/information.js +0 -84
- package/src/rules/src/v8-transformer.js +0 -177
- package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -29
- package/src/rules2/src/getMetadataStructureFromData.js +0 -17
- package/src/rules2/src/refineMetadataCoordinates.js +0 -28
- package/src/rules2/src/table/getCombinationDimensionsData.js +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseMetadataSeries.js","sources":["../../../src/rules2/src/parseMetadataSeries.js"],"sourcesContent":["import * as R from 'ramda';\nimport { EMPTY_ATTACHMENT_LEVEL_CHAR } from './constants';\n\nconst dimensionValueDisplay = (display) => data => {\n if (display === 'code') {\n return R.prop('id', data);\n }\n const name = R.prop('name')(data);\n if (display === 'both') {\n return `${R.prop('id', data)}: ${name}`;\n }\n return name;\n};\n// options = { locale, display, dimensions = [], attributes = { [id]: { format, parent } } };\nexport const parseMetadataSeries = (metadataJson, options) => {\n const metadataAttributes = R.pathOr([], ['data', 'structures', 0, 'attributes', 'dimensionGroup'], metadataJson);\n const metaAttrLength = R.length(metadataAttributes);\n\n if (!metaAttrLength) {\n return ({});\n }\n\n const dimensions = R.pipe(\n R.pathOr([], ['data', 'structures', 0, 'dimensions']),\n ({ series = [], observation = [] }) => R.concat(series, observation),\n dims => R.isEmpty(options.dimensions || [])\n ? dims\n : R.props(R.pluck('id', options.dimensions), R.indexBy(R.prop('id'), dims))\n )(metadataJson);\n\n const { notDisplayedIds = {} } = options;\n\n const metadataSeries = R.pipe(\n R.pathOr({}, ['data', 'dataSets', 0, 'dimensionGroupAttributes']),\n series => R.reduce((acc, serieKey) => {\n const indexes = series[serieKey];\n const metaIndexes = R.take(metaAttrLength, indexes);\n\n\n const evolvedKey = R.pipe(\n R.split(':'),\n R.addIndex(R.map)((vInd, dInd) => {\n if (R.isEmpty(vInd) || R.equals(EMPTY_ATTACHMENT_LEVEL_CHAR, vInd)) {\n return '';\n }\n const dim = R.nth(dInd, dimensions);\n const val = R.nth(Number(vInd), dim.values || []);\n\n const originalVal = R.find(\n R.propEq(
|
|
1
|
+
{"version":3,"file":"parseMetadataSeries.js","sources":["../../../src/rules2/src/parseMetadataSeries.js"],"sourcesContent":["import * as R from 'ramda';\nimport { EMPTY_ATTACHMENT_LEVEL_CHAR } from './constants';\n\nconst dimensionValueDisplay = (display) => data => {\n if (display === 'code') {\n return R.prop('id', data);\n }\n const name = R.prop('name')(data);\n if (display === 'both') {\n return `${R.prop('id', data)}: ${name}`;\n }\n return name;\n};\n// options = { locale, display, dimensions = [], attributes = { [id]: { format, parent } } };\nexport const parseMetadataSeries = (metadataJson, options) => {\n const metadataAttributes = R.pathOr([], ['data', 'structures', 0, 'attributes', 'dimensionGroup'], metadataJson);\n const metaAttrLength = R.length(metadataAttributes);\n\n if (!metaAttrLength) {\n return ({});\n }\n\n const dimensions = R.pipe(\n R.pathOr([], ['data', 'structures', 0, 'dimensions']),\n ({ series = [], observation = [] }) => R.concat(series, observation),\n dims => R.isEmpty(options.dimensions || [])\n ? dims\n : R.props(R.pluck('id', options.dimensions), R.indexBy(R.prop('id'), dims))\n )(metadataJson);\n\n const { notDisplayedIds = {} } = options;\n\n const metadataSeries = R.pipe(\n R.pathOr({}, ['data', 'dataSets', 0, 'dimensionGroupAttributes']),\n series => R.reduce((acc, serieKey) => {\n const indexes = series[serieKey];\n const metaIndexes = R.take(metaAttrLength, indexes);\n\n\n const evolvedKey = R.pipe(\n R.split(':'),\n R.addIndex(R.map)((vInd, dInd) => {\n if (R.isEmpty(vInd) || R.equals(EMPTY_ATTACHMENT_LEVEL_CHAR, vInd)) {\n return '';\n }\n const dim = R.nth(dInd, dimensions);\n const val = R.nth(Number(vInd), dim.values || []);\n\n const originalVal = R.find(\n R.propEq(val.id, 'id'),\n )(R.propOr([], 'values', R.nth(dInd, options.dimensions)));\n return R.propOr('', '__index', originalVal);\n }),\n R.join(':')\n )(serieKey);\n\n const attributes = R.pipe(\n R.addIndex(R.reduce)(\n (acc, valueIndex, attrIndex) => {\n const attribute = R.nth(attrIndex, metadataAttributes);\n const isHidden = R.has(attribute.id, notDisplayedIds);\n if ((R.isNil(valueIndex) && !(attribute.isPresentational)) || isHidden) {\n return acc;\n }\n const attrOptions = R.pathOr({}, ['attributes', attribute.id], options);\n const id = attrOptions.id;\n const label = dimensionValueDisplay(options.display)({ ...attribute, id });\n\n const _value = R.prop('value', R.nth(valueIndex, attribute.values || []));\n const value = R.is(Object, _value) ? R.prop(options.locale, _value) : _value;\n\n return R.append({\n ...(R.isNil(value) ? {} : { value }),\n id: attribute.id,\n label,\n handlerProps: R.omit(['id'], R.pathOr({}, ['attributes', attribute.id], options))\n }, acc);\n },\n [],\n ),\n attributes => { // missing parents in metadata response \n const groupedAttrs = R.groupBy(R.pathOr('#ROOT', ['handlerProps', 'parent']), attributes);\n const indexedAttrs = R.indexBy(R.prop('id'), attributes);\n\n return R.reduce(\n (acc, id) => {\n if (R.has(id, indexedAttrs) || id === '#ROOT') {\n return acc;\n }\n return R.append({\n id,\n label: dimensionValueDisplay(options.display)({ id, name: R.path(['attributes', id, 'name'], options) }),\n handlerProps: R.omit(['id'], R.pathOr({}, ['attributes', id], options))\n }, acc);\n },\n attributes,\n R.keys(groupedAttrs)\n );\n },\n attributes => {\n const groupedAttrs = R.groupBy(R.pathOr('#ROOT', ['handlerProps', 'parent']), attributes);\n const makeTree = R.map(attr => {\n if (R.has(attr.id, groupedAttrs)) {\n const children = makeTree(R.prop(attr.id, groupedAttrs));\n return R.assoc('children', children, attr);\n }\n return attr;\n });\n\n return makeTree(R.propOr([], '#ROOT', groupedAttrs));\n },\n )(metaIndexes);\n\n return R.assoc(evolvedKey, attributes, acc);\n },\n {},\n R.keys(series)\n ))(metadataJson);\n\n return metadataSeries;\n};"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
|
+
import { getObservations } from '../../rules/src/preparators/getObservations.js';
|
|
2
3
|
import { refineDimensions } from './refineDimensions.js';
|
|
3
4
|
import { enhanceObservations } from './enhanceObservations.js';
|
|
4
5
|
import { parseAttributes } from './parseAttributes.js';
|
|
@@ -17,13 +18,19 @@ import { getHeaderSubtitle } from './getHeaderSubtitle.js';
|
|
|
17
18
|
import { getHeaderCombinations } from './getHeaderCombinations.js';
|
|
18
19
|
import { getHeaderCoordinates } from './getHeaderCoordinates.js';
|
|
19
20
|
import { applyHierarchicalCodesToDim } from './applyHierarchicalCodesToDim.js';
|
|
20
|
-
import {
|
|
21
|
+
import { getReportingYearStart } from '../../rules/src/preparators/getReportingYearStart.js';
|
|
22
|
+
import { getNotDisplayedIds } from './getNotDisplayedIds.js';
|
|
23
|
+
import { getAttributes } from './getAttributes.js';
|
|
21
24
|
|
|
22
25
|
const prepareData = (sdmxJson, { customAttributes, locale, hierarchies, dataflow, display, defaultCombinations, dataquery }) => {
|
|
23
26
|
const dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], sdmxJson);
|
|
24
|
-
const refinedDimensions = refineDimensions(dimensions, dataquery);
|
|
25
|
-
const attributes = R.pathOr([], ['data', 'structure', 'attributes', 'observation'], sdmxJson);
|
|
26
27
|
const annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);
|
|
28
|
+
const reportYearStart = getReportingYearStart(sdmxJson);
|
|
29
|
+
const { hiddenValues, hiddenCombinations } = getNotDisplayedIds(annotations);
|
|
30
|
+
const options = { dataquery, hiddenCombinations, hiddenValues, locale, reportYearStart };
|
|
31
|
+
const refinedDimensions = refineDimensions({ annotations, dimensions, options });
|
|
32
|
+
const _attributes = R.pathOr([], ['data', 'structure', 'attributes'], sdmxJson);
|
|
33
|
+
const attributes = getAttributes({ attributes: _attributes, annotations, options });
|
|
27
34
|
const observations = getObservations(sdmxJson);
|
|
28
35
|
let combinations = getCombinationDefinitions(annotations, locale);
|
|
29
36
|
if (R.isEmpty(combinations) && !R.isEmpty(defaultCombinations)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareData.js","sources":["../../../src/rules2/src/prepareData.js"],"sourcesContent":["import * as R from 'ramda';\nimport { getObservations } from '../../rules/src';\nimport { refineDimensions } from './refineDimensions';\nimport { enhanceObservations } from './enhanceObservations';\nimport { parseAttributes } from './parseAttributes';\nimport { getCombinationDefinitions, parseCombinationDefinition } from './getCombinationDefinitions';\nimport { parseCombinations } from './parseCombinations';\nimport { refineAttributes } from './refineAttributes';\nimport { duplicateObs } from './duplicateObservations';\nimport { getMetadataCoordinates } from './getMetadataCoordinates';\nimport { getAttributesSeries } from './getAttributesSeries';\nimport { getManyValuesDimensions } from './getManyValuesDimensions';\nimport { getOneValueDimensions } from './getOneValueDimensions';\nimport { hierarchiseDimensionWithNativeHierarchy } from './hierarchiseDimensionWithNativeHierarchy2';\nimport { getDataflowAttributes } from './getDataflowAttributes';\nimport { getHeaderTitle } from './getHeaderTitle';\nimport { getHeaderSubtitle } from './getHeaderSubtitle';\nimport { getHeaderCombinations } from './getHeaderCombinations';\nimport { getHeaderCoordinates } from './getHeaderCoordinates';\nimport { applyHierarchicalCodesToDim } from './applyHierarchicalCodesToDim';\n\nexport const prepareData = (sdmxJson, { customAttributes, locale, hierarchies, dataflow, display, defaultCombinations, dataquery }) => {\n const dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], sdmxJson);\n const
|
|
1
|
+
{"version":3,"file":"prepareData.js","sources":["../../../src/rules2/src/prepareData.js"],"sourcesContent":["import * as R from 'ramda';\nimport { getObservations } from '../../rules/src/preparators/getObservations';\nimport { refineDimensions } from './refineDimensions';\nimport { enhanceObservations } from './enhanceObservations';\nimport { parseAttributes } from './parseAttributes';\nimport { getCombinationDefinitions, parseCombinationDefinition } from './getCombinationDefinitions';\nimport { parseCombinations } from './parseCombinations';\nimport { refineAttributes } from './refineAttributes';\nimport { duplicateObs } from './duplicateObservations';\nimport { getMetadataCoordinates } from './getMetadataCoordinates';\nimport { getAttributesSeries } from './getAttributesSeries';\nimport { getManyValuesDimensions } from './getManyValuesDimensions';\nimport { getOneValueDimensions } from './getOneValueDimensions';\nimport { hierarchiseDimensionWithNativeHierarchy } from './hierarchiseDimensionWithNativeHierarchy2';\nimport { getDataflowAttributes } from './getDataflowAttributes';\nimport { getHeaderTitle } from './getHeaderTitle';\nimport { getHeaderSubtitle } from './getHeaderSubtitle';\nimport { getHeaderCombinations } from './getHeaderCombinations';\nimport { getHeaderCoordinates } from './getHeaderCoordinates';\nimport { applyHierarchicalCodesToDim } from './applyHierarchicalCodesToDim';\nimport { getReportingYearStart } from '../../rules/src/preparators/getReportingYearStart';\nimport { getNotDisplayedIds } from './getNotDisplayedIds';\nimport { getAttributes } from './getAttributes';\n\nexport const prepareData = (sdmxJson, { customAttributes, locale, hierarchies, dataflow, display, defaultCombinations, dataquery }) => {\n const dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], sdmxJson);\n const annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);\n const reportYearStart = getReportingYearStart(sdmxJson);\n const { hiddenValues, hiddenCombinations } = getNotDisplayedIds(annotations);\n const options = { dataquery, hiddenCombinations, hiddenValues, locale, reportYearStart };\n const refinedDimensions = refineDimensions({ annotations, dimensions, options });\n const _attributes = R.pathOr([], ['data', 'structure', 'attributes'], sdmxJson);\n const attributes = getAttributes({ attributes: _attributes, annotations, options });\n const observations = getObservations(sdmxJson);\n let combinations = getCombinationDefinitions(annotations, locale);\n if (R.isEmpty(combinations) && !R.isEmpty(defaultCombinations)) {\n const { concepts, names } = defaultCombinations;\n combinations = parseCombinationDefinition(locale)(concepts, names);\n }\n const metadataCoordinates = getMetadataCoordinates(sdmxJson);\n\n const parsedAttributes = parseAttributes(attributes, refinedDimensions, customAttributes);\n const parsedCombinations = parseCombinations(combinations, parsedAttributes, refinedDimensions);\n const seriesCombinations = R.filter(R.prop('series'), parsedCombinations);\n const refinedAttributes = refineAttributes(parsedAttributes, seriesCombinations);\n\n const enhancedObservations = enhanceObservations(refinedDimensions, observations, refinedAttributes, { customAttributes });\n const attributesSeries = getAttributesSeries(enhancedObservations);\n const manyValuesDimensions = getManyValuesDimensions(refinedDimensions, attributesSeries, customAttributes, seriesCombinations);\n const oneValueDimensions = getOneValueDimensions(refinedDimensions, parsedAttributes);\n const rejectedDimensions = R.filter(R.prop('rejected'), dimensions);\n const headerCoordinates = getHeaderCoordinates(oneValueDimensions);\n const hierarchisedDimensions = R.map(dim => {\n if (R.isEmpty(R.propOr({}, dim.id, hierarchies))) {\n return hierarchiseDimensionWithNativeHierarchy(dim);\n }\n return applyHierarchicalCodesToDim(R.prop(dim.id, hierarchies), dim);\n }, manyValuesDimensions)\n const duplicatedObservations = duplicateObs(R.values(hierarchisedDimensions), enhancedObservations);\n\n const dataflowAttributes = getDataflowAttributes(parsedAttributes, parsedCombinations);\n const headerTitle = getHeaderTitle(dataflow, dataflowAttributes, display, customAttributes);\n const headerSubtitle = getHeaderSubtitle(oneValueDimensions, parsedCombinations, customAttributes, display);\n const headerCombinations = getHeaderCombinations(parsedCombinations, oneValueDimensions, refinedAttributes, display);\n \n return ({\n observations: duplicatedObservations,\n dimensions: hierarchisedDimensions,\n combinations: parsedCombinations,\n oneValueDimensions,\n attributesSeries,\n metadataCoordinates,\n attributes: refinedAttributes,\n rejectedDimensions,\n header: {\n title: headerTitle,\n subtitle: headerSubtitle,\n combinations: headerCombinations,\n coordinates: headerCoordinates\n }\n });\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,64 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
|
+
import { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
|
|
3
|
+
import { getValuesEnhanced } from '../../rules/src/get-values-enhanced.js';
|
|
4
|
+
import { getIsHidden } from '../../rules/src/sdmx-data/index.js';
|
|
2
5
|
|
|
3
|
-
const
|
|
6
|
+
const TIME_PERIOD_ID = 'TIME_PERIOD';
|
|
7
|
+
|
|
8
|
+
const refineDimensions = ({
|
|
9
|
+
annotations = [],
|
|
10
|
+
dimensions = [],
|
|
11
|
+
options = {},
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
dataquery = '',
|
|
15
|
+
hiddenCombinations = {},
|
|
16
|
+
hiddenValues = {},
|
|
17
|
+
locale = '',
|
|
18
|
+
reportYearStart,
|
|
19
|
+
...restOptions
|
|
20
|
+
} = options;
|
|
4
21
|
const selectionIds = R.pipe(R.split('.'), R.map(R.split('+')))(dataquery);
|
|
5
22
|
|
|
23
|
+
const getIsAllDimHidden = ({ id, values }) => {
|
|
24
|
+
if (!R.has(id, hiddenCombinations)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const valuesIds = R.pluck('id', values);
|
|
28
|
+
return R.isEmpty(R.difference(valuesIds, hiddenCombinations[id]));
|
|
29
|
+
};
|
|
30
|
+
|
|
6
31
|
return R.addIndex(R.map)((dim, index) => {
|
|
7
32
|
const selection = R.nth(index, selectionIds);
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
33
|
+
const isEmptySelection = R.isNil(selection) || R.isEmpty(selection) || R.isEmpty(R.head(selection));
|
|
34
|
+
const isTimeDimension = isTimePeriodDimension(dim);
|
|
35
|
+
const dimAnnotations = R.props(dim.annotations || [], annotations);
|
|
36
|
+
const values = getValuesEnhanced({
|
|
37
|
+
annotations,
|
|
38
|
+
hiddenIds: hiddenValues,
|
|
39
|
+
isTimeDimension,
|
|
40
|
+
locale,
|
|
41
|
+
options: restOptions,
|
|
42
|
+
parent: dim.id,
|
|
43
|
+
reportYearStart,
|
|
44
|
+
selection
|
|
45
|
+
})(dim.values || []);
|
|
14
46
|
|
|
15
47
|
const size = R.length(values);
|
|
16
|
-
|
|
48
|
+
const isAllDimHidden = getIsAllDimHidden({ id: dim.id, values });
|
|
49
|
+
const isHidden = isAllDimHidden || R.has(dim.id, hiddenValues)
|
|
50
|
+
|| getIsHidden(dimAnnotations);
|
|
51
|
+
return ({
|
|
52
|
+
...dim,
|
|
53
|
+
display: !isHidden,
|
|
54
|
+
header: size === 1 || (size > 1 && R.length(selection) === 1 && !isEmptySelection),
|
|
55
|
+
__index: index,
|
|
56
|
+
rejected: isAllDimHidden || !size,
|
|
57
|
+
role: isTimeDimension
|
|
58
|
+
? TIME_PERIOD_ID
|
|
59
|
+
: R.head(dim.roles || []),
|
|
60
|
+
values,
|
|
61
|
+
});
|
|
17
62
|
}, dimensions);
|
|
18
63
|
};
|
|
19
64
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refineDimensions.js","sources":["../../../src/rules2/src/refineDimensions.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const refineDimensions = (dimensions=[]
|
|
1
|
+
{"version":3,"file":"refineDimensions.js","sources":["../../../src/rules2/src/refineDimensions.js"],"sourcesContent":["import * as R from 'ramda';\nimport { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';\nimport { getValuesEnhanced } from '../../rules/src/get-values-enhanced';\nimport { getIsHidden } from '../../rules/src/sdmx-data';\n\nconst TIME_PERIOD_ID = 'TIME_PERIOD';\n\nexport const refineDimensions = ({\n annotations = [],\n dimensions = [],\n options = {},\n}) => {\n const {\n dataquery = '',\n hiddenCombinations = {},\n hiddenValues = {},\n locale = '',\n reportYearStart,\n ...restOptions\n } = options;\n const selectionIds = R.pipe(R.split('.'), R.map(R.split('+')))(dataquery);\n\n const getIsAllDimHidden = ({ id, values }) => {\n if (!R.has(id, hiddenCombinations)) {\n return false;\n }\n const valuesIds = R.pluck('id', values);\n return R.isEmpty(R.difference(valuesIds, hiddenCombinations[id]));\n }\n\n return R.addIndex(R.map)((dim, index) => {\n const selection = R.nth(index, selectionIds);\n const isEmptySelection = R.isNil(selection) || R.isEmpty(selection) || R.isEmpty(R.head(selection));\n const isTimeDimension = isTimePeriodDimension(dim);\n const dimAnnotations = R.props(dim.annotations || [], annotations);\n const values = getValuesEnhanced({\n annotations,\n hiddenIds: hiddenValues,\n isTimeDimension,\n locale,\n options: restOptions,\n parent: dim.id,\n reportYearStart,\n selection\n })(dim.values || []);\n\n const size = R.length(values);\n const isAllDimHidden = getIsAllDimHidden({ id: dim.id, values });\n const isHidden = isAllDimHidden || R.has(dim.id, hiddenValues)\n || getIsHidden(dimAnnotations);\n return ({\n ...dim,\n display: !isHidden,\n header: size === 1 || (size > 1 && R.length(selection) === 1 && !isEmptySelection),\n __index: index,\n rejected: isAllDimHidden || !size,\n role: isTimeDimension\n ? TIME_PERIOD_ID\n : R.head(dim.roles || []),\n values,\n });\n }, dimensions);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as R from 'ramda';
|
|
2
2
|
import * as dateFns from 'date-fns';
|
|
3
|
-
import {
|
|
3
|
+
import { getLocale } from '../../rules/src/date.js';
|
|
4
4
|
|
|
5
5
|
const computeDisplayFreq = (start, duration) => {
|
|
6
6
|
const startMinute = dateFns.startOfMinute(start);
|
|
@@ -13,7 +13,7 @@ const computeDisplayFreq = (start, duration) => {
|
|
|
13
13
|
|| duration === 'H' || duration === 'm') {
|
|
14
14
|
return 'm';
|
|
15
15
|
}
|
|
16
|
-
else if (
|
|
16
|
+
else if (dateFns.getDate(start) !== 1 || duration === 'D') {
|
|
17
17
|
return 'D';
|
|
18
18
|
}
|
|
19
19
|
else if (dateFns.getMonth(start) !== 0 || duration === 'M') {
|
|
@@ -38,16 +38,16 @@ const getAdder = (duration) => {
|
|
|
38
38
|
|
|
39
39
|
const getFormat = (freqDisplay) => {
|
|
40
40
|
if (freqDisplay === 'Y')
|
|
41
|
-
return '
|
|
41
|
+
return 'yyyy';
|
|
42
42
|
if (freqDisplay === 'D')
|
|
43
|
-
return '
|
|
43
|
+
return 'yyyy-MM-dd';
|
|
44
44
|
if (freqDisplay === 'H' || freqDisplay === 'm') {
|
|
45
45
|
return 'HH:mm';
|
|
46
46
|
}
|
|
47
47
|
if (freqDisplay === 'S') {
|
|
48
48
|
return 'HH:mm:ss';
|
|
49
49
|
}
|
|
50
|
-
return '
|
|
50
|
+
return 'yyyy-MMM';
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const getEndDate = (start, mult, duration) => {
|
|
@@ -64,14 +64,15 @@ const computeName = (start, end, freqDisplay, locale, format) => {
|
|
|
64
64
|
const dayFormat = getFormat('D');
|
|
65
65
|
if (isSameDay)
|
|
66
66
|
return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
|
|
67
|
-
return `${dateFns.format(start,
|
|
67
|
+
return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - `
|
|
68
|
+
+ `${dateFns.format(end, dayFormat, opts)} ${dateFns.format(end, format, opts)}`;
|
|
68
69
|
}
|
|
69
70
|
if (freqDisplay !== 'M') {
|
|
70
71
|
return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
if (isSameYear && !R.includes('-', format)) {
|
|
74
|
-
const yearFormatMatch = R.match(/([
|
|
75
|
+
const yearFormatMatch = R.match(/([y]+)/, format);
|
|
75
76
|
const monthFormatMatch = R.match(/([M]+|Mo)/, format);
|
|
76
77
|
const yearFormat = R.length(yearFormatMatch) >= 2 ? R.nth(1, yearFormatMatch) : null;
|
|
77
78
|
const monthFormat = R.length(monthFormatMatch) >= 2 ? R.nth(1, monthFormatMatch) : null;
|
|
@@ -87,16 +88,11 @@ const computeName = (start, end, freqDisplay, locale, format) => {
|
|
|
87
88
|
return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
|
|
88
89
|
};
|
|
89
90
|
|
|
90
|
-
const getStartDate =
|
|
91
|
-
|
|
92
|
-
return dateWithoutTZ(new Date(start));
|
|
93
|
-
}
|
|
94
|
-
return new Date(start);
|
|
95
|
-
};
|
|
96
|
-
|
|
91
|
+
const getStartDate = value =>
|
|
92
|
+
typeof value === 'string' ? dateFns.parseISO(value) : new Date(value);
|
|
97
93
|
const dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());
|
|
98
94
|
|
|
99
|
-
const refineTimePeriod = (timePeriod, { locale, monthlyFormat='
|
|
95
|
+
const refineTimePeriod = (timePeriod, { locale, monthlyFormat = 'yyyy-MMM' }) => {
|
|
100
96
|
const { id } = timePeriod;
|
|
101
97
|
const split = R.split('/', id);
|
|
102
98
|
if (R.length(split) !== 2) {
|
|
@@ -113,7 +109,7 @@ const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM' }) => {
|
|
|
113
109
|
const [timeIndicator, mult, _duration] = R.tail(match);
|
|
114
110
|
const duration = !R.isEmpty(timeIndicator) && _duration === 'M' ? 'm' : _duration;
|
|
115
111
|
const endDate = getEndDate(startDate, mult, duration);
|
|
116
|
-
const freqDisplay = computeDisplayFreq(
|
|
112
|
+
const freqDisplay = computeDisplayFreq(startDate, duration);
|
|
117
113
|
const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);
|
|
118
114
|
const name = computeName(startDate, endDate, freqDisplay, locale, format);
|
|
119
115
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refineTimePeriod.js","sources":["../../../src/rules2/src/refineTimePeriod.js"],"sourcesContent":["import * as R from 'ramda';\nimport * as dateFns from 'date-fns';\nimport { getLocale, dateWithoutTZ } from '../../rules/src/date';\n\nconst computeDisplayFreq = (start, duration) => {\n const startMinute = dateFns.startOfMinute(start);\n const startHour = dateFns.startOfHour(start);\n const startDay = dateFns.startOfDay(start);\n if (!dateFns.isEqual(start, startMinute) || duration === 'S') {\n return 'S';\n }\n else if (!dateFns.isEqual(start, startHour) || !dateFns.isEqual(start, startDay)\n || duration === 'H' || duration === 'm') {\n return 'm';\n }\n else if (!dateFns.isFirstDayOfMonth(start) || duration === 'D') {\n return 'D';\n }\n else if (dateFns.getMonth(start) !== 0 || duration === 'M') {\n return 'M';\n }\n return 'Y';\n};\n\nconst getAdder = (duration) => {\n if (duration === 'S')\n return dateFns.addSeconds;\n if (duration === 'm')\n return dateFns.addMinutes;\n if (duration === 'H')\n return dateFns.addHours;\n if (duration === 'D')\n return dateFns.addDays;\n if (duration === 'M')\n return dateFns.addMonths;\n return dateFns.addYears;\n};\n\nconst getFormat = (freqDisplay) => {\n if (freqDisplay === 'Y')\n return 'YYYY';\n if (freqDisplay === 'D')\n return 'YYYY-MM-DD';\n if (freqDisplay === 'H' || freqDisplay === 'm') {\n return 'HH:mm';\n }\n if (freqDisplay === 'S') {\n return 'HH:mm:ss';\n }\n return 'YYYY-MMM';\n}\n\nconst getEndDate = (start, mult, duration) => {\n const adder = getAdder(duration);\n const endDate = adder(start, Number(mult));\n return dateFns.subSeconds(endDate, 1);\n};\n\nconst computeName = (start, end, freqDisplay, locale, format) => {\n const opts = { locale: getLocale(locale) };\n const isSameDay = dateFns.isSameDay(start, end);\n const isSameYear = dateFns.isSameYear(start, end);\n if (freqDisplay === 'H' || freqDisplay === 'm' || freqDisplay === 'S') {\n const dayFormat = getFormat('D');\n if (isSameDay)\n return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n return `${dateFns.format(start, `${dayFormat} ${format}`, opts)} - ${dateFns.format(end, `${dayFormat} ${format}`, opts)}`;\n }\n if (freqDisplay !== 'M') {\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n }\n\n if (isSameYear && !R.includes('-', format)) {\n const yearFormatMatch = R.match(/([Y]+)/, format);\n const monthFormatMatch = R.match(/([M]+|Mo)/, format);\n const yearFormat = R.length(yearFormatMatch) >= 2 ? R.nth(1, yearFormatMatch) : null;\n const monthFormat = R.length(monthFormatMatch) >= 2 ? R.nth(1, monthFormatMatch) : null;\n const formattedYear = yearFormat ? dateFns.format(start, yearFormat, opts) : null;\n const formattedMonths = monthFormat ? `${dateFns.format(start, monthFormat, opts)} - ${dateFns.format(end, monthFormat, opts)}` : null;\n if (monthFormat) {\n return R.pipe(\n format => yearFormat ? R.replace(yearFormat, formattedYear, format) : format,\n R.replace(monthFormat, formattedMonths)\n )(format);\n }\n }\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n};\n\nexport const getStartDate = (start) => {\n if (!R.includes('T', start) && !R.endsWith('Z', start)) {\n return dateWithoutTZ(new Date(start));\n }\n return new Date(start);\n};\n\nconst dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());\n\nexport const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM' }) => {\n const { id } = timePeriod;\n const split = R.split('/', id);\n if (R.length(split) !== 2) {\n const start = getStartDate(R.prop('start', timePeriod));\n const end = getStartDate(R.prop('end', timePeriod))\n return ({ ...timePeriod, start: dateWithTZ(start).toISOString(), end: dateWithTZ(end).toISOString() });\n }\n const [start, range] = split;\n const startDate = getStartDate(start);\n const match = R.match(/^P(T?)(\\d+)([YMDHS])$/, range);\n if (R.isEmpty(match) || !dateFns.isValid(startDate)) {\n return timePeriod;\n }\n const [timeIndicator, mult, _duration] = R.tail(match);\n const duration = !R.isEmpty(timeIndicator) && _duration === 'M' ? 'm' : _duration;\n const endDate = getEndDate(startDate, mult, duration);\n const freqDisplay = computeDisplayFreq(start, duration);\n const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);\n const name = computeName(startDate, endDate, freqDisplay, locale, format);\n\n return ({\n ...timePeriod,\n id,\n name,\n start: dateWithTZ(startDate).toISOString(),\n end: dateWithTZ(endDate).toISOString()\n })\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"refineTimePeriod.js","sources":["../../../src/rules2/src/refineTimePeriod.js"],"sourcesContent":["import * as R from 'ramda';\nimport * as dateFns from 'date-fns';\nimport { getLocale } from '../../rules/src/date';\n\nconst computeDisplayFreq = (start, duration) => {\n const startMinute = dateFns.startOfMinute(start);\n const startHour = dateFns.startOfHour(start);\n const startDay = dateFns.startOfDay(start);\n if (!dateFns.isEqual(start, startMinute) || duration === 'S') {\n return 'S';\n }\n else if (!dateFns.isEqual(start, startHour) || !dateFns.isEqual(start, startDay)\n || duration === 'H' || duration === 'm') {\n return 'm';\n }\n else if (dateFns.getDate(start) !== 1 || duration === 'D') {\n return 'D';\n }\n else if (dateFns.getMonth(start) !== 0 || duration === 'M') {\n return 'M';\n }\n return 'Y';\n};\n\nconst getAdder = (duration) => {\n if (duration === 'S')\n return dateFns.addSeconds;\n if (duration === 'm')\n return dateFns.addMinutes;\n if (duration === 'H')\n return dateFns.addHours;\n if (duration === 'D')\n return dateFns.addDays;\n if (duration === 'M')\n return dateFns.addMonths;\n return dateFns.addYears;\n};\n\nconst getFormat = (freqDisplay) => {\n if (freqDisplay === 'Y')\n return 'yyyy';\n if (freqDisplay === 'D')\n return 'yyyy-MM-dd';\n if (freqDisplay === 'H' || freqDisplay === 'm') {\n return 'HH:mm';\n }\n if (freqDisplay === 'S') {\n return 'HH:mm:ss';\n }\n return 'yyyy-MMM';\n}\n\nconst getEndDate = (start, mult, duration) => {\n const adder = getAdder(duration);\n const endDate = adder(start, Number(mult));\n return dateFns.subSeconds(endDate, 1);\n};\n\nconst computeName = (start, end, freqDisplay, locale, format) => {\n const opts = { locale: getLocale(locale) };\n const isSameDay = dateFns.isSameDay(start, end);\n const isSameYear = dateFns.isSameYear(start, end);\n if (freqDisplay === 'H' || freqDisplay === 'm' || freqDisplay === 'S') {\n const dayFormat = getFormat('D');\n if (isSameDay)\n return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - `\n + `${dateFns.format(end, dayFormat, opts)} ${dateFns.format(end, format, opts)}`;\n }\n if (freqDisplay !== 'M') {\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n }\n\n if (isSameYear && !R.includes('-', format)) {\n const yearFormatMatch = R.match(/([y]+)/, format);\n const monthFormatMatch = R.match(/([M]+|Mo)/, format);\n const yearFormat = R.length(yearFormatMatch) >= 2 ? R.nth(1, yearFormatMatch) : null;\n const monthFormat = R.length(monthFormatMatch) >= 2 ? R.nth(1, monthFormatMatch) : null;\n const formattedYear = yearFormat ? dateFns.format(start, yearFormat, opts) : null;\n const formattedMonths = monthFormat ? `${dateFns.format(start, monthFormat, opts)} - ${dateFns.format(end, monthFormat, opts)}` : null;\n if (monthFormat) {\n return R.pipe(\n format => yearFormat ? R.replace(yearFormat, formattedYear, format) : format,\n R.replace(monthFormat, formattedMonths)\n )(format);\n }\n }\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n};\n\nexport const getStartDate = value =>\n typeof value === 'string' ? dateFns.parseISO(value) : new Date(value);\nconst dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());\n\nexport const refineTimePeriod = (timePeriod, { locale, monthlyFormat = 'yyyy-MMM' }) => {\n const { id } = timePeriod;\n const split = R.split('/', id);\n if (R.length(split) !== 2) {\n const start = getStartDate(R.prop('start', timePeriod));\n const end = getStartDate(R.prop('end', timePeriod))\n return ({ ...timePeriod, start: dateWithTZ(start).toISOString(), end: dateWithTZ(end).toISOString() });\n }\n const [start, range] = split;\n const startDate = getStartDate(start);\n const match = R.match(/^P(T?)(\\d+)([YMDHS])$/, range);\n if (R.isEmpty(match) || !dateFns.isValid(startDate)) {\n return timePeriod;\n }\n const [timeIndicator, mult, _duration] = R.tail(match);\n const duration = !R.isEmpty(timeIndicator) && _duration === 'M' ? 'm' : _duration;\n const endDate = getEndDate(startDate, mult, duration);\n const freqDisplay = computeDisplayFreq(startDate, duration);\n const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);\n const name = computeName(startDate, endDate, freqDisplay, locale, format);\n\n return ({\n ...timePeriod,\n id,\n name,\n start: dateWithTZ(startDate).toISOString(),\n end: dateWithTZ(endDate).toISOString()\n })\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCells.js","sources":["../../../../src/rules2/src/table/getCells.js"],"sourcesContent":["import * as R from 'ramda';\r\nimport { getFlagsAndNotes } from './getFlagsAndNotes';\r\nimport { hasCellMetadata } from '../hasCellMetadata';\r\n\r\
|
|
1
|
+
{"version":3,"file":"getCells.js","sources":["../../../../src/rules2/src/table/getCells.js"],"sourcesContent":["import * as R from 'ramda';\r\nimport { getFlagsAndNotes } from './getFlagsAndNotes';\r\nimport { hasCellMetadata } from '../hasCellMetadata';\r\n\r\nconst getCellRelevantAttributes = (attributes, attributesSeries, cellAttributeIds) => R.filter(\r\n (attr) => {\r\n if (R.isNil(attr.value)) {\r\n return false;\r\n }\r\n if (R.has(attr.id, cellAttributeIds)) {\r\n return true;\r\n }\r\n const attrInSerie = R.path([attr.serieKey, attr.id], attributesSeries);\r\n return R.isNil(attrInSerie);\r\n },\r\n attributes\r\n);\r\n\r\nconst getCellCombinedSeries = (attributes, combinations) => R.reduce(\r\n (acc, comb) => {\r\n const values = R.reduce(\r\n (acc, concept) => {\r\n if (R.has(concept, comb.fixedDimValues || {})) {\r\n return R.append(R.prop(concept, comb.fixedDimValues), acc);\r\n }\r\n if (R.has(concept, attributes || {})) {\r\n return R.append(R.path([concept, 'value'], attributes), acc);\r\n }\r\n return acc;\r\n },\r\n [],\r\n comb.concepts\r\n );\r\n\r\n if (R.isEmpty(values)) {\r\n return acc;\r\n }\r\n return R.append({ ...R.pick(['id', 'name'], comb), values }, acc);\r\n },\r\n [],\r\n combinations\r\n);\r\n\r\n// combinations = { cells, layout };\r\nexport const getCells = (customAttributes, cellsAttributesId, combinations, attributesSeries, metadataCoordinates) => observations => {\r\n const attributesInLayoutCombination = R.pipe(\r\n R.propOr([], 'layout'),\r\n R.pluck('concepts'),\r\n R.unnest\r\n )(combinations);\r\n\r\n const attributesInCellsCombination = R.pipe(\r\n R.propOr([], 'cells'),\r\n R.pluck('concepts'),\r\n R.unnest\r\n )(combinations);\r\n\r\n const _customAttributes = R.over(\r\n R.lensProp('notes'),\r\n notes => R.pipe(R.concat, R.uniq)(notes || [], attributesInLayoutCombination)\r\n )(customAttributes);\r\n\r\n return R.mapObjIndexed(\r\n obs => {\r\n const isAttrCell = R.pathOr('OBS_VAL', ['indexedDimValIds', 'OBS_ATTR'], obs) !== 'OBS_VAL';\r\n const relevantAttributes = isAttrCell ? [] : getCellRelevantAttributes(obs.attributes, attributesSeries, cellsAttributesId);\r\n const flagsAndNotes = isAttrCell ? [] : getFlagsAndNotes(R.omit(attributesInCellsCombination, relevantAttributes), _customAttributes);\r\n const combinedSeries = isAttrCell ? [] : getCellCombinedSeries(relevantAttributes, combinations.cells || []);\r\n const hasAdvancedAttributes = isAttrCell\r\n ? false : R.pipe(\r\n R.omit(R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination])),\r\n res => !R.isEmpty(res)\r\n )(relevantAttributes);\r\n\r\n const advancedAttributes = R.omit(\r\n R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination]),\r\n R.filter(attr => !R.isNil(attr.value), obs.attributes), \r\n );\r\n\r\n const hasMetadata = isAttrCell ? false : hasCellMetadata(metadataCoordinates, obs.indexedDimValIds);\r\n\r\n return ({\r\n ...R.pick(['indexedDimValIds', 'key'], obs),\r\n flags: R.concat(flagsAndNotes, combinedSeries),\r\n sideProps: hasAdvancedAttributes || hasMetadata\r\n ? { hasMetadata, coordinates: obs.indexedDimValIds, advancedAttributes } : null,\r\n intValue: R.is(Number, obs.value) ? obs.value : null,\r\n value: obs.formattedValue,\r\n });\r\n },\r\n observations\r\n );\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLayout.js","sources":["../../../../src/rules2/src/table/getLayout.js"],"sourcesContent":["import * as R from 'ramda';\nimport { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';\n\
|
|
1
|
+
{"version":3,"file":"getLayout.js","sources":["../../../../src/rules2/src/table/getLayout.js"],"sourcesContent":["import * as R from 'ramda';\nimport { isTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';\n\nconst getConceptsSet = (ids, indexedCombinations, _upper) => {\n const upper = R.isNil(_upper) ? new Set([]) : _upper;\n const res = new Set([]);\n R.forEach(id => {\n if (!R.has(id, indexedCombinations)) {\n res.add(id);\n }\n else {\n const comb = R.prop(id, indexedCombinations);\n R.forEach(c => {\n if (!upper.has(c)) {\n res.add(c);\n }\n }, comb.concepts);\n }\n }, ids);\n return res;\n};\n\nconst parseCombination = (_upperIds, _excludedIds) => (comb, indexedDimensions) => {\n const upperIds = R.isNil(_upperIds) ? new Set([]) : _upperIds;\n const excludedIds = R.isNil(_excludedIds) ? new Set([]) : _excludedIds;\n\n const { concepts, relationship } = comb;\n const dimensions = R.reduce((acc, id) => {\n if (upperIds.has(id) || !R.has(id, indexedDimensions)) {\n return acc\n }\n const dim = R.prop(id, indexedDimensions);\n return R.append(dim, acc);\n }, [], concepts);\n const excludedDep = R.find(i => excludedIds.has(i), relationship);\n if (excludedDep) {\n return dimensions;\n }\n return R.assoc('dimensions', dimensions, comb);\n};\n\nexport const getLayout = (_layoutIds, dimensions, combinations, isTimeInverted) => {\n const layoutIds = R.mergeRight(\n { header: [], sections: [], rows: [] },\n _layoutIds,\n );\n const applyInversionOnTimeDim = dim =>\n isTimePeriodDimension(dim) && isTimeInverted\n ? R.assoc('isInverted', true, dim)\n : dim;\n\n const indexedDimensions = R.reduce(\n (acc, dim) => R.assoc(dim.id, applyInversionOnTimeDim(dim), acc),\n {},\n dimensions,\n );\n \n const indexedCombinations = R.indexBy(R.prop('id'), combinations);\n const headerConceptsSet = getConceptsSet(layoutIds.header, indexedCombinations);\n const sectionsConceptsSet = getConceptsSet(layoutIds.sections, indexedCombinations);\n const rowsConceptsSet = getConceptsSet(R.concat(layoutIds.sections, layoutIds.rows), indexedCombinations);\n\n const getLayoutLevel = (_upperIds, _excludedIds) => ids => R.reduce((acc, id) => {\n if (R.has(id, indexedDimensions)) {\n const dim = R.prop(id, indexedDimensions);\n return R.append(dim, acc);\n }\n if (!R.has(id, indexedCombinations)) {\n return acc;\n }\n const comb = R.prop(id, indexedCombinations);\n const parsedCombination = parseCombination(_upperIds, _excludedIds)(comb, indexedDimensions);\n if (R.is(Array, parsedCombination)) {\n return R.concat(acc, parsedCombination);\n }\n return R.append(parsedCombination, acc);\n }, [], ids);\n \n const header = getLayoutLevel(null, rowsConceptsSet)(layoutIds.header);\n const sections = getLayoutLevel(null, headerConceptsSet)(layoutIds.sections);\n const rows = getLayoutLevel(sectionsConceptsSet, headerConceptsSet)(layoutIds.rows);\n\n return ({ header, sections, rows });\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -313,5 +313,5 @@ const getTableLayoutIds = (
|
|
|
313
313
|
return injectRemainingDimensionsInLayout(nextLayout, remaining, indexedCombinations, layoutDimsIds);
|
|
314
314
|
};
|
|
315
315
|
|
|
316
|
-
export {
|
|
316
|
+
export { getTableLayoutIds, injectCombinationsInLayout };
|
|
317
317
|
//# sourceMappingURL=getTableLayoutIds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableLayoutIds.js","sources":["../../../../src/rules2/src/table/getTableLayoutIds.js"],"sourcesContent":["import * as R from 'ramda';\nimport { isTimePeriodDimension, isRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';\n\nexport const getCombinationsNotInLayout = (combinations, layoutIds) => {\n const { header=[], sections=[], rows=[] } = layoutIds;\n const idsInLayout = new Set([...header, ...sections, ...rows]);\n return R.reject(comb => idsInLayout.has(comb.id), combinations);\n};\n\nexport const indexCombsRelationships = (combinations) => R.reduce((acc, comb) => {\n const { id, relationship=[] } = comb;\n return R.assoc(id, relationship, acc);\n}, {}, combinations);\n\nexport const getLayoutLevelRelationship = indexedRelationships => ids => R.reduce((acc, id) => {\n if (R.has(id, indexedRelationships)) {\n return R.concat(acc, R.prop(id, indexedRelationships));\n }\n return R.append(id, acc);\n}, [], ids);\n\nexport const getLayoutRelationships = (indexedRelationships, layoutIds) => R.map(\n getLayoutLevelRelationship(indexedRelationships),\n layoutIds\n);\n\nexport const injectCombination = combination => ids => {\n const { id, concepts=[] } = combination;\n const conceptsSet = new Set(concepts);\n let inject = true;\n const refined = R.reduce((acc, i) => {\n if (!conceptsSet.has(i)) {\n return R.append(i, acc);\n }\n if (inject) {\n inject = false;\n return R.append(id, acc);\n }\n return acc;\n }, [], ids);\n return inject ? R.append(id, refined) : refined;\n};\n\nexport const getCombinationLevelCompatibility = (layoutRelationships, combination) => {\n const { relationship=[] } = combination;\n const idsInHeaderSet = new Set(layoutRelationships.header);\n const idsInSectionsSet = new Set(layoutRelationships.sections);\n const idsInRowsSet = new Set(layoutRelationships.rows);\n const [idsInHeader, rest] = R.partition(\n i => idsInHeaderSet.has(i),\n relationship\n );\n const [idsInSections, idsInRows] = R.reduce((_acc, id) => {\n if (idsInSectionsSet.has(id))\n return R.over(R.lensIndex(0), R.append(id), _acc);\n if (idsInRowsSet.has(id))\n return R.over(R.lensIndex(1), R.append(id), _acc);\n return R.over(R.lensIndex(2), R.append(id), _acc);\n }, [[], [], []], rest);\n if (!R.isEmpty(idsInHeader) && R.isEmpty(idsInSections) && R.isEmpty(idsInRows)) {\n return 'header';\n }\n if (!R.isEmpty(idsInHeader)) {\n return null;\n }\n if (!R.isEmpty(idsInSections) && R.isEmpty(idsInRows)) {\n return 'sections';\n }\n if (!R.isEmpty(idsInRows)) {\n return 'rows';\n }\n return 'blank';\n}\n\nconst filterLayoutIds = (indexedCombinations, layoutDimsIds, obsAttributes) => (layoutIds) => {\n const layoutConcepts = R.map(\n R.reduce((acc, id) => {\n if (R.has(id, indexedCombinations)) {\n return R.concat(acc, R.path([id, 'concepts'], indexedCombinations));\n }\n return R.append(id, acc);\n }, []),\n layoutIds\n );\n\n return R.mapObjIndexed(\n (ids, level) => R.filter(id => {\n if (id === 'OBS_ATTRIBUTES') {\n return !R.isEmpty(obsAttributes);\n }\n if (R.has(id, indexedCombinations)) {\n const comb = R.prop(id, indexedCombinations);\n const dims = R.filter(i => layoutDimsIds.has(i), comb.concepts);\n if (!R.isEmpty(dims)) {\n return true;\n }\n const oppositeIds = level === 'header'\n ? R.concat(R.prop('sections', layoutConcepts), R.prop('rows', layoutConcepts))\n : R.prop('header', layoutConcepts);\n return R.isEmpty(R.intersection(comb.relationship, oppositeIds));\n }\n return layoutDimsIds.has(id);\n }, ids),\n layoutIds\n );\n};\n\nexport const injectCombinationsInLayout = (combinations, layoutIds, defaultLayoutIds = {}) => {\n const notInLayoutCombs = getCombinationsNotInLayout(combinations, layoutIds);\n if (R.isEmpty(notInLayoutCombs)) {\n return layoutIds;\n }\n const indexedCombsRelationships = indexCombsRelationships(combinations);\n let layoutRelationships = getLayoutRelationships(indexedCombsRelationships, layoutIds);\n const defaultLayoutRelationships = getLayoutRelationships(indexedCombsRelationships, defaultLayoutIds);\n return R.reduce((acc, comb) => {\n let levelCompatibility = getCombinationLevelCompatibility(layoutRelationships, comb);\n if (R.isNil(levelCompatibility)) {\n return acc;\n }\n if (R.equals('blank', levelCompatibility)) {\n levelCompatibility = getCombinationLevelCompatibility(defaultLayoutRelationships, comb);\n if (R.isNil(levelCompatibility)) {\n return acc;\n }\n levelCompatibility = R.equals('blank', levelCompatibility) ? 'rows' : levelCompatibility;\n }\n\n layoutRelationships[levelCompatibility] = R.concat(layoutRelationships[levelCompatibility], comb.relationship);\n const ids = injectCombination(comb)(acc[levelCompatibility]);\n return R.assoc(levelCompatibility, ids)(acc);\n }, layoutIds, notInLayoutCombs);\n};\n\nexport const getLayoutDimsIds = dimensions => R.reduce(\n (acc, d) => (d.header ? acc : acc.add(d.id)),\n new Set([]),\n dimensions,\n);\n\nexport const getLayoutCombinations = (combinations, layoutDimsIds, attributes) => {\n const indexedAttributes = R.indexBy(R.prop('id'), attributes);\n return R.reduce(\n (acc, comb) => {\n const { layoutConcepts, relationship } = R.reduce(\n (_acc, concept) => {\n if (layoutDimsIds.has(concept)) {\n return R.map(R.append(concept), _acc);\n }\n if (R.has(concept, indexedAttributes)) {\n const attr = R.prop(concept, indexedAttributes);\n return attr.series\n ? {\n ..._acc,\n relationship: R.concat(_acc.relationship, attr.relationship),\n }\n : _acc;\n }\n return _acc;\n },\n { layoutConcepts: [], relationship: [] },\n comb.concepts || [],\n );\n if (R.isEmpty(relationship)) {\n return acc;\n }\n return R.append({ ...comb, relationship, concepts: layoutConcepts }, acc);\n },\n [],\n combinations,\n );\n};\n\nconst extractConcepts = (ids, indexedCombinations, layoutDimsIds) => {\n const entry = R.find(id => {\n if (R.has(id, indexedCombinations)) {\n const dimId = R.find(i => layoutDimsIds.has(i), R.pathOr([], [id, 'concepts'], indexedCombinations));\n return !R.isNil(dimId);\n }\n return true;\n }, ids);\n\n const getRelationship = id => {\n if (R.has(id, indexedCombinations)) {\n return R.append(id, R.path([id, 'relationship'], indexedCombinations));\n }\n return [id];\n };\n let indexedRels = R.reduce((acc, id) =>\n R.assoc(id, getRelationship(id), acc)\n , {}, ids);\n \n let relationship = [entry];\n while (!R.isEmpty(indexedRels)) {\n const related = R.pickBy(rels => !R.isEmpty(R.intersection(relationship, rels)), indexedRels);\n if (R.isEmpty(related)) {\n break;\n }\n indexedRels = R.omit(R.keys(related), indexedRels);\n relationship = R.concat(relationship, R.unnest(R.values(related)));\n }\n const set = new Set(relationship);\n return R.partition(id => set.has(id), ids);\n}\n\nexport const injectRemainingDimensionsInLayout = (layoutIds, remainingDims, indexedCombinations, layoutDimsIds) => {\n let _layout = layoutIds;\n let _remaining = remainingDims;\n\n const dimInRows = R.find(id => {\n if (layoutDimsIds.has(id)) {\n return true;\n }\n const dimId = R.find(i => layoutDimsIds.has(i), R.pathOr([], [id, 'concepts'], indexedCombinations));\n return !R.isNil(dimId);\n }, _layout.rows);\n\n if (R.isNil(dimInRows)) {\n if (R.isEmpty(_remaining)) {\n const toTakeIn = R.isEmpty(_layout.sections) ? 'header' : 'sections';\n const [extracted, remains] = extractConcepts(R.prop(toTakeIn, _layout), indexedCombinations, layoutDimsIds);\n _layout = ({ ..._layout, rows: R.concat(_layout.rows, extracted), [toTakeIn]: remains });\n }\n else {\n _layout = R.over(R.lensProp('rows'), R.append(R.head(_remaining)))(_layout);\n _remaining = R.tail(_remaining)\n }\n }\n if (!R.isEmpty(_remaining)) {\n const hasNoHeader = R.isEmpty(_layout.header);\n const firstRemaining = R.head(_remaining);\n _remaining = hasNoHeader ? R.tail(_remaining) : _remaining;\n _layout = {\n ..._layout,\n sections: R.concat(_layout.sections, _remaining),\n header: hasNoHeader ? [firstRemaining] : _layout.header,\n };\n }\n return _layout;\n};\n\nexport const getTableLayoutIds = (\n defaultLayoutIds,\n currentLayoutIds,\n dimensions,\n attributes,\n combinations\n) => {\n const layoutDimsIds = getLayoutDimsIds(dimensions);\n const layoutCombinations = getLayoutCombinations(\n combinations,\n layoutDimsIds,\n attributes,\n );\n const isBlank = R.pipe(R.values, R.all(R.isEmpty))(currentLayoutIds);\n\n const combinationsConcepts = R.pipe(R.pluck('_concepts'), R.unnest, ids => new Set(ids))(combinations);\n const obsAttributes = R.filter(a => \n a.series && R.isEmpty(a.relationship || []) && a.display && !combinationsConcepts.has(a)\n , attributes);\n const indexedCombinations = R.indexBy(R.prop('id'), layoutCombinations);\n const filteredLayoutIds = filterLayoutIds(indexedCombinations, layoutDimsIds, obsAttributes)\n (isBlank ? defaultLayoutIds : currentLayoutIds);\n\n const layoutWithCombs = injectCombinationsInLayout(layoutCombinations, filteredLayoutIds, defaultLayoutIds);\n const layoutRelationshipsSets = R.map(R.pipe(\n ids => R.pick(ids, indexedCombinations),\n R.values,\n R.pluck('relationship'),\n R.unnest,\n i => new Set(i)\n ), layoutWithCombs);\n const layoutConceptsSets = R.pipe(\n R.map(\n R.reduce((acc, id) => {\n if (R.has(id, indexedCombinations)) {\n return R.concat(acc, R.path([id, 'concepts'], indexedCombinations));\n }\n return R.append(id, acc);\n }, []),\n ),\n R.values,\n R.unnest,\n ids => new Set(ids)\n )(layoutWithCombs);\n const defaultLayoutConceptsSets = R.map(\n ids => new Set(ids),\n defaultLayoutIds\n );\n\n const { nextLayout, remaining } = R.reduce((acc, dim) => {\n if (layoutConceptsSets.has(dim.id) || dim.header) {\n return acc;\n }\n if (layoutRelationshipsSets.header.has(dim.id) || defaultLayoutConceptsSets.header.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout', 'header']), R.append(dim.id))(acc);\n }\n if (layoutRelationshipsSets.sections.has(dim.id) || defaultLayoutConceptsSets.sections.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout', 'sections']), R.append(dim.id))(acc);\n }\n if (layoutRelationshipsSets.rows.has(dim.id) || defaultLayoutConceptsSets.rows.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout','rows']), R.append(dim.id))(acc);\n }\n if (isTimePeriodDimension(dim)) {\n return R.over(R.lensPath(['nextLayout','header']), R.append(dim.id))(acc);\n }\n if (isRefAreaDimension(dim)) {\n return R.over(R.lensPath(['nextLayout','rows']), R.append(dim.id))(acc);\n }\n return R.over(R.lensProp('remaining'), R.append(dim.id))(acc);\n }, { nextLayout: layoutWithCombs, remaining: [] }, dimensions);\n\n return injectRemainingDimensionsInLayout(nextLayout, remaining, indexedCombinations, layoutDimsIds);\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getTableLayoutIds.js","sources":["../../../../src/rules2/src/table/getTableLayoutIds.js"],"sourcesContent":["import * as R from 'ramda';\nimport { isTimePeriodDimension, isRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';\n\nconst getCombinationsNotInLayout = (combinations, layoutIds) => {\n const { header=[], sections=[], rows=[] } = layoutIds;\n const idsInLayout = new Set([...header, ...sections, ...rows]);\n return R.reject(comb => idsInLayout.has(comb.id), combinations);\n};\n\nconst indexCombsRelationships = (combinations) => R.reduce((acc, comb) => {\n const { id, relationship=[] } = comb;\n return R.assoc(id, relationship, acc);\n}, {}, combinations);\n\nconst getLayoutLevelRelationship = indexedRelationships => ids => R.reduce((acc, id) => {\n if (R.has(id, indexedRelationships)) {\n return R.concat(acc, R.prop(id, indexedRelationships));\n }\n return R.append(id, acc);\n}, [], ids);\n\nconst getLayoutRelationships = (indexedRelationships, layoutIds) => R.map(\n getLayoutLevelRelationship(indexedRelationships),\n layoutIds\n);\n\nconst injectCombination = combination => ids => {\n const { id, concepts=[] } = combination;\n const conceptsSet = new Set(concepts);\n let inject = true;\n const refined = R.reduce((acc, i) => {\n if (!conceptsSet.has(i)) {\n return R.append(i, acc);\n }\n if (inject) {\n inject = false;\n return R.append(id, acc);\n }\n return acc;\n }, [], ids);\n return inject ? R.append(id, refined) : refined;\n};\n\nconst getCombinationLevelCompatibility = (layoutRelationships, combination) => {\n const { relationship=[] } = combination;\n const idsInHeaderSet = new Set(layoutRelationships.header);\n const idsInSectionsSet = new Set(layoutRelationships.sections);\n const idsInRowsSet = new Set(layoutRelationships.rows);\n const [idsInHeader, rest] = R.partition(\n i => idsInHeaderSet.has(i),\n relationship\n );\n const [idsInSections, idsInRows] = R.reduce((_acc, id) => {\n if (idsInSectionsSet.has(id))\n return R.over(R.lensIndex(0), R.append(id), _acc);\n if (idsInRowsSet.has(id))\n return R.over(R.lensIndex(1), R.append(id), _acc);\n return R.over(R.lensIndex(2), R.append(id), _acc);\n }, [[], [], []], rest);\n if (!R.isEmpty(idsInHeader) && R.isEmpty(idsInSections) && R.isEmpty(idsInRows)) {\n return 'header';\n }\n if (!R.isEmpty(idsInHeader)) {\n return null;\n }\n if (!R.isEmpty(idsInSections) && R.isEmpty(idsInRows)) {\n return 'sections';\n }\n if (!R.isEmpty(idsInRows)) {\n return 'rows';\n }\n return 'blank';\n}\n\nconst filterLayoutIds = (indexedCombinations, layoutDimsIds, obsAttributes) => (layoutIds) => {\n const layoutConcepts = R.map(\n R.reduce((acc, id) => {\n if (R.has(id, indexedCombinations)) {\n return R.concat(acc, R.path([id, 'concepts'], indexedCombinations));\n }\n return R.append(id, acc);\n }, []),\n layoutIds\n );\n\n return R.mapObjIndexed(\n (ids, level) => R.filter(id => {\n if (id === 'OBS_ATTRIBUTES') {\n return !R.isEmpty(obsAttributes);\n }\n if (R.has(id, indexedCombinations)) {\n const comb = R.prop(id, indexedCombinations);\n const dims = R.filter(i => layoutDimsIds.has(i), comb.concepts);\n if (!R.isEmpty(dims)) {\n return true;\n }\n const oppositeIds = level === 'header'\n ? R.concat(R.prop('sections', layoutConcepts), R.prop('rows', layoutConcepts))\n : R.prop('header', layoutConcepts);\n return R.isEmpty(R.intersection(comb.relationship, oppositeIds));\n }\n return layoutDimsIds.has(id);\n }, ids),\n layoutIds\n );\n};\n\nexport const injectCombinationsInLayout = (combinations, layoutIds, defaultLayoutIds = {}) => {\n const notInLayoutCombs = getCombinationsNotInLayout(combinations, layoutIds);\n if (R.isEmpty(notInLayoutCombs)) {\n return layoutIds;\n }\n const indexedCombsRelationships = indexCombsRelationships(combinations);\n let layoutRelationships = getLayoutRelationships(indexedCombsRelationships, layoutIds);\n const defaultLayoutRelationships = getLayoutRelationships(indexedCombsRelationships, defaultLayoutIds);\n return R.reduce((acc, comb) => {\n let levelCompatibility = getCombinationLevelCompatibility(layoutRelationships, comb);\n if (R.isNil(levelCompatibility)) {\n return acc;\n }\n if (R.equals('blank', levelCompatibility)) {\n levelCompatibility = getCombinationLevelCompatibility(defaultLayoutRelationships, comb);\n if (R.isNil(levelCompatibility)) {\n return acc;\n }\n levelCompatibility = R.equals('blank', levelCompatibility) ? 'rows' : levelCompatibility;\n }\n\n layoutRelationships[levelCompatibility] = R.concat(layoutRelationships[levelCompatibility], comb.relationship);\n const ids = injectCombination(comb)(acc[levelCompatibility]);\n return R.assoc(levelCompatibility, ids)(acc);\n }, layoutIds, notInLayoutCombs);\n};\n\nconst getLayoutDimsIds = dimensions => R.reduce(\n (acc, d) => (d.header ? acc : acc.add(d.id)),\n new Set([]),\n dimensions,\n);\n\nconst getLayoutCombinations = (combinations, layoutDimsIds, attributes) => {\n const indexedAttributes = R.indexBy(R.prop('id'), attributes);\n return R.reduce(\n (acc, comb) => {\n const { layoutConcepts, relationship } = R.reduce(\n (_acc, concept) => {\n if (layoutDimsIds.has(concept)) {\n return R.map(R.append(concept), _acc);\n }\n if (R.has(concept, indexedAttributes)) {\n const attr = R.prop(concept, indexedAttributes);\n return attr.series\n ? {\n ..._acc,\n relationship: R.concat(_acc.relationship, attr.relationship),\n }\n : _acc;\n }\n return _acc;\n },\n { layoutConcepts: [], relationship: [] },\n comb.concepts || [],\n );\n if (R.isEmpty(relationship)) {\n return acc;\n }\n return R.append({ ...comb, relationship, concepts: layoutConcepts }, acc);\n },\n [],\n combinations,\n );\n};\n\nconst extractConcepts = (ids, indexedCombinations, layoutDimsIds) => {\n const entry = R.find(id => {\n if (R.has(id, indexedCombinations)) {\n const dimId = R.find(i => layoutDimsIds.has(i), R.pathOr([], [id, 'concepts'], indexedCombinations));\n return !R.isNil(dimId);\n }\n return true;\n }, ids);\n\n const getRelationship = id => {\n if (R.has(id, indexedCombinations)) {\n return R.append(id, R.path([id, 'relationship'], indexedCombinations));\n }\n return [id];\n };\n let indexedRels = R.reduce((acc, id) =>\n R.assoc(id, getRelationship(id), acc)\n , {}, ids);\n \n let relationship = [entry];\n while (!R.isEmpty(indexedRels)) {\n const related = R.pickBy(rels => !R.isEmpty(R.intersection(relationship, rels)), indexedRels);\n if (R.isEmpty(related)) {\n break;\n }\n indexedRels = R.omit(R.keys(related), indexedRels);\n relationship = R.concat(relationship, R.unnest(R.values(related)));\n }\n const set = new Set(relationship);\n return R.partition(id => set.has(id), ids);\n}\n\nconst injectRemainingDimensionsInLayout = (layoutIds, remainingDims, indexedCombinations, layoutDimsIds) => {\n let _layout = layoutIds;\n let _remaining = remainingDims;\n\n const dimInRows = R.find(id => {\n if (layoutDimsIds.has(id)) {\n return true;\n }\n const dimId = R.find(i => layoutDimsIds.has(i), R.pathOr([], [id, 'concepts'], indexedCombinations));\n return !R.isNil(dimId);\n }, _layout.rows);\n\n if (R.isNil(dimInRows)) {\n if (R.isEmpty(_remaining)) {\n const toTakeIn = R.isEmpty(_layout.sections) ? 'header' : 'sections';\n const [extracted, remains] = extractConcepts(R.prop(toTakeIn, _layout), indexedCombinations, layoutDimsIds);\n _layout = ({ ..._layout, rows: R.concat(_layout.rows, extracted), [toTakeIn]: remains });\n }\n else {\n _layout = R.over(R.lensProp('rows'), R.append(R.head(_remaining)))(_layout);\n _remaining = R.tail(_remaining)\n }\n }\n if (!R.isEmpty(_remaining)) {\n const hasNoHeader = R.isEmpty(_layout.header);\n const firstRemaining = R.head(_remaining);\n _remaining = hasNoHeader ? R.tail(_remaining) : _remaining;\n _layout = {\n ..._layout,\n sections: R.concat(_layout.sections, _remaining),\n header: hasNoHeader ? [firstRemaining] : _layout.header,\n };\n }\n return _layout;\n};\n\nexport const getTableLayoutIds = (\n defaultLayoutIds,\n currentLayoutIds,\n dimensions,\n attributes,\n combinations\n) => {\n const layoutDimsIds = getLayoutDimsIds(dimensions);\n const layoutCombinations = getLayoutCombinations(\n combinations,\n layoutDimsIds,\n attributes,\n );\n const isBlank = R.pipe(R.values, R.all(R.isEmpty))(currentLayoutIds);\n\n const combinationsConcepts = R.pipe(R.pluck('_concepts'), R.unnest, ids => new Set(ids))(combinations);\n const obsAttributes = R.filter(a => \n a.series && R.isEmpty(a.relationship || []) && a.display && !combinationsConcepts.has(a)\n , attributes);\n const indexedCombinations = R.indexBy(R.prop('id'), layoutCombinations);\n const filteredLayoutIds = filterLayoutIds(indexedCombinations, layoutDimsIds, obsAttributes)\n (isBlank ? defaultLayoutIds : currentLayoutIds);\n\n const layoutWithCombs = injectCombinationsInLayout(layoutCombinations, filteredLayoutIds, defaultLayoutIds);\n const layoutRelationshipsSets = R.map(R.pipe(\n ids => R.pick(ids, indexedCombinations),\n R.values,\n R.pluck('relationship'),\n R.unnest,\n i => new Set(i)\n ), layoutWithCombs);\n const layoutConceptsSets = R.pipe(\n R.map(\n R.reduce((acc, id) => {\n if (R.has(id, indexedCombinations)) {\n return R.concat(acc, R.path([id, 'concepts'], indexedCombinations));\n }\n return R.append(id, acc);\n }, []),\n ),\n R.values,\n R.unnest,\n ids => new Set(ids)\n )(layoutWithCombs);\n const defaultLayoutConceptsSets = R.map(\n ids => new Set(ids),\n defaultLayoutIds\n );\n\n const { nextLayout, remaining } = R.reduce((acc, dim) => {\n if (layoutConceptsSets.has(dim.id) || dim.header) {\n return acc;\n }\n if (layoutRelationshipsSets.header.has(dim.id) || defaultLayoutConceptsSets.header.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout', 'header']), R.append(dim.id))(acc);\n }\n if (layoutRelationshipsSets.sections.has(dim.id) || defaultLayoutConceptsSets.sections.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout', 'sections']), R.append(dim.id))(acc);\n }\n if (layoutRelationshipsSets.rows.has(dim.id) || defaultLayoutConceptsSets.rows.has(dim.id)) {\n return R.over(R.lensPath(['nextLayout','rows']), R.append(dim.id))(acc);\n }\n if (isTimePeriodDimension(dim)) {\n return R.over(R.lensPath(['nextLayout','header']), R.append(dim.id))(acc);\n }\n if (isRefAreaDimension(dim)) {\n return R.over(R.lensPath(['nextLayout','rows']), R.append(dim.id))(acc);\n }\n return R.over(R.lensProp('remaining'), R.append(dim.id))(acc);\n }, { nextLayout: layoutWithCombs, remaining: [] }, dimensions);\n\n return injectRemainingDimensionsInLayout(nextLayout, remaining, indexedCombinations, layoutDimsIds);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,6 @@ const getTableProps = ({ data, layoutIds, customAttributes, limit, isTimeInverte
|
|
|
72
72
|
const indexedCombinations = getIndexedCombinationsByDisplay(layout, seriesCombinations);
|
|
73
73
|
const cellsMetadataCoordinates = getCellsMetadataCoordinates(metadataCoordinates, oneValueDimensions, layoutDimsIds);
|
|
74
74
|
const cells = getCells(customAttributes, cellsAttributesIds, indexedCombinations, attributesSeries, cellsMetadataCoordinates)(dupObs);
|
|
75
|
-
//console.log({ cellsAttributesIds, customAttributes, indexedCombinations });
|
|
76
75
|
|
|
77
76
|
return ({
|
|
78
77
|
...layoutData,
|