@sis-cc/dotstatsuite-components 22.6.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/bridge-d3-react/src/index.js +1 -2
- package/dist/bridge-d3-react/src/index.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/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 +6 -0
- 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/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 +6 -5
- package/src/bridge-d3-react/src/index.js +0 -1
- package/src/rules/src/chart/getChartOptions.js +2 -2
- package/src/rules/src/constants.js +0 -35
- 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 +6 -0
- 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/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/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":"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":";;;AAGY,MAAC,0BAA0B,GAAG,CAAC,YAAY,EAAE,SAAS,KAAK;AACvE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS;AACvD,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AAChE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;AACjE;;AAEY,MAAC,uBAAuB,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACjF,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,IAAI;AACtC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC;AACvC,CAAC,EAAE,EAAE,EAAE,YAAY;;AAEP,MAAC,0BAA0B,GAAG,oBAAoB,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK;AAC/F,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,oBAAoB,CAAC,EAAE;AACvC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC1D,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAC1B,CAAC,EAAE,EAAE,EAAE,GAAG;;AAEE,MAAC,sBAAsB,GAAG,CAAC,oBAAoB,EAAE,SAAS,KAAK,CAAC,CAAC,GAAG;AAChF,EAAE,0BAA0B,CAAC,oBAAoB,CAAC;AAClD,EAAE;AACF;;AAEY,MAAC,iBAAiB,GAAG,WAAW,IAAI,GAAG,IAAI;AACvD,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,WAAW;AACzC,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;AACvC,EAAE,IAAI,MAAM,GAAG,IAAI;AACnB,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AACvC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC7B,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7B,IAAI;AACJ,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,GAAG,KAAK;AACpB,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;AACb,EAAE,OAAO,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO;AACjD;;AAEY,MAAC,gCAAgC,GAAG,CAAC,mBAAmB,EAAE,WAAW,KAAK;AACtF,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,WAAW;AACzC,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAC5D,EAAE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAChE,EAAE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACxD,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AACzC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK;AAC5D,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACvD,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5B,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACvD,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACrD,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACxB,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnF,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACzD,IAAI,OAAO,UAAU;AACrB,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC7B,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;;AAEA,MAAM,eAAe,GAAG,CAAC,mBAAmB,EAAE,aAAa,EAAE,aAAa,KAAK,CAAC,SAAS,KAAK;AAC9F,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG;AAC9B,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK;AAC1B,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AAC1C,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC3E,MAAM;AACN,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,IAAI;AACJ,GAAG;;AAEH,EAAE,OAAO,CAAC,CAAC,aAAa;AACxB,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI;AACnC,MAAM,IAAI,EAAE,KAAK,gBAAgB,EAAE;AACnC,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AACxC,MAAM;AACN,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AAC1C,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC;AACpD,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvE,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,UAAU,OAAO,IAAI;AACrB,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,KAAK,KAAK;AACtC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC;AACvF,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;AAC5C,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACxE,MAAM;AACN,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,IAAI,CAAC,EAAE,GAAG,CAAC;AACX,IAAI;AACJ,GAAG;AACH,CAAC;;AAEW,MAAC,0BAA0B,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,EAAE,KAAK;AAC9F,EAAE,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,YAAY,EAAE,SAAS,CAAC;AAC9E,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACnC,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,YAAY,CAAC;AACzE,EAAE,IAAI,mBAAmB,GAAG,sBAAsB,CAAC,yBAAyB,EAAE,SAAS,CAAC;AACxF,EAAE,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,yBAAyB,EAAE,gBAAgB,CAAC;AACxG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACjC,IAAI,IAAI,kBAAkB,GAAG,gCAAgC,CAAC,mBAAmB,EAAE,IAAI,CAAC;AACxF,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;AACrC,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE;AAC/C,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,0BAA0B,EAAE,IAAI,CAAC;AAC7F,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;AACvC,QAAQ,OAAO,GAAG;AAClB,MAAM;AACN,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,MAAM,GAAG,kBAAkB;AAC9F,IAAI;;AAEJ,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;AAClH,IAAI,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAChE,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AAChD,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC;AACjC;;AAEY,MAAC,gBAAgB,GAAG,UAAU,IAAI,CAAC,CAAC,MAAM;AACtD,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9C,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,UAAU;AACZ;;AAEY,MAAC,qBAAqB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,KAAK;AAClF,EAAE,MAAM,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;AAC/D,EAAE,OAAO,CAAC,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK;AACnB,MAAM,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM;AACvD,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK;AAC3B,UAAU,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC1C,YAAY,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACjD,UAAU;AACV,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE;AACjD,YAAY,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AAC3D,YAAY,OAAO,IAAI,CAAC;AACxB,gBAAgB;AAChB,kBAAkB,GAAG,IAAI;AACzB,kBAAkB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;AAC9E;AACA,gBAAgB,IAAI;AACpB,UAAU;AACV,UAAU,OAAO,IAAI;AACrB,QAAQ,CAAC;AACT,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,QAAQ,IAAI,EAAE;AAC3B,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnC,QAAQ,OAAO,GAAG;AAClB,MAAM;AACN,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC;AAC/E,IAAI,CAAC;AACL,IAAI,EAAE;AACN,IAAI,YAAY;AAChB,GAAG;AACH;;AAEA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,mBAAmB,EAAE,aAAa,KAAK;AACrE,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI;AAC7B,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AACxC,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC1G,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5B,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE,CAAC,EAAE,GAAG,CAAC;;AAET,EAAE,MAAM,eAAe,GAAG,EAAE,IAAI;AAChC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AACxC,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,CAAC;AACf,EAAE,CAAC;AACH,EAAE,IAAI,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;AACrC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG;AACxC,IAAI,EAAE,EAAE,GAAG,CAAC;AACZ;AACA,EAAE,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAClC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC;AACjG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC5B,MAAM;AACN,IAAI;AACJ,IAAI,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;AACtD,IAAI,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC;AACnC,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5C;;AAEY,MAAC,iCAAiC,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,KAAK;AACnH,EAAE,IAAI,OAAO,GAAG,SAAS;AACzB,EAAE,IAAI,UAAU,GAAG,aAAa;;AAEhC,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI;AACjC,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACxG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;;AAElB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AAC1B,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC/B,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,UAAU;AAC1E,MAAM,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACjH,MAAM,OAAO,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,EAAE,CAAC;AAC9F,IAAI;AACJ,SAAS;AACT,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACjF,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU;AACpC,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC9B,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACjD,IAAI,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7C,IAAI,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU;AAC9D,IAAI,OAAO,GAAG;AACd,MAAM,GAAG,OAAO;AAChB,MAAM,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;AACtD,MAAM,MAAM,EAAE,WAAW,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM;AAC7D,KAAK;AACL,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;;AAEY,MAAC,iBAAiB,GAAG;AACjC,EAAE,gBAAgB;AAClB,EAAE,gBAAgB;AAClB,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE;AACF,KAAK;AACL,EAAE,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC;AACpD,EAAE,MAAM,kBAAkB,GAAG,qBAAqB;AAClD,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;;AAEtE,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;AACxG,EAAE,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC3F,IAAI,UAAU,CAAC;AACf,EAAE,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;AACzE,EAAE,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,EAAE,aAAa,EAAE,aAAa;AAC7F,KAAK,OAAO,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;;AAEnD,EAAE,MAAM,eAAe,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAC7G,EAAE,MAAM,uBAAuB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;AAC9C,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC;AAC3C,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;AAC3B,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AAClB,GAAG,EAAE,eAAe,CAAC;AACrB,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI;AACnC,IAAI,CAAC,CAAC,GAAG;AACT,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK;AAC5B,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AAC5C,UAAU,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAChC,MAAM,CAAC,EAAE,EAAE,CAAC;AACZ,KAAK;AACL,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG;AACtB,GAAG,CAAC,eAAe,CAAC;AACpB,EAAE,MAAM,yBAAyB,GAAG,CAAC,CAAC,GAAG;AACzC,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;AACvB,IAAI;AACJ,GAAG;;AAEH,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC3D,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;AACtD,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,IAAI,IAAI,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACpG,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAChF,IAAI;AACJ,IAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACxG,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAClF,IAAI;AACJ,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACjG,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7E,IAAI;AACJ,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;AACpC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/E,IAAI;AACJ,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE;AACjC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7E,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC;;AAEhE,EAAE,OAAO,iCAAiC,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACrG;;;;"}
|
|
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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableProps.js","sources":["../../../../src/rules2/src/table/getTableProps.js"],"sourcesContent":["import * as R from 'ramda';\nimport { declineObservationsOverAttributes } from './declineObservationsOverAttributes';\nimport { getLayout } from './getLayout';\nimport { getSortedLayoutIndexes } from './getSortedLayoutIndexes';\nimport { parseLayoutIndexesHierarchies } from './parseSeriesIndexesHierarchies';\nimport { refineLayoutSize } from './refineLayoutSize2';\nimport { getLayoutData } from './getLayoutData2';\nimport { getCellsAttributesIds } from './getCellsAttributesIds';\nimport { getIndexedCombinationsByDisplay } from './getIndexedCombinationsByDisplay';\nimport { getCells } from './getCells';\nimport { getCuratedCells } from './getCuratedCells';\nimport { getSeriesCombinations } from '../getSeriesCombinations';\nimport { getCellsMetadataCoordinates } from './getCellsMetadataCoordinates';\n\nexport const getTableProps = ({ data, layoutIds, customAttributes, limit, isTimeInverted }) => {\n const {\n observations,\n dimensions,\n combinations,\n oneValueDimensions,\n attributesSeries,\n metadataCoordinates,\n attributes,\n header,\n rejectedDimensions=[]\n } = data;\n\n const obsAttributes = R.filter(\n a => a.series && R.isEmpty(a.relationship) && a.display && !a.combined,\n attributes\n );\n let dupObs = observations;\n const hasDuplicatedCells = R.pipe(\n R.values,\n R.unnest,\n R.find(R.equals('OBS_ATTRIBUTES')),\n )(layoutIds);\n if (hasDuplicatedCells) {\n const attrsIds = R.pluck('id', obsAttributes);\n dupObs = declineObservationsOverAttributes(attrsIds, observations);\n }\n const seriesCombinations = getSeriesCombinations(combinations, oneValueDimensions);\n const _dims = R.append(\n {\n id: 'OBS_ATTRIBUTES',\n values: R.prepend({ id: 'OBS_VALUE' }, obsAttributes),\n },\n dimensions,\n );\n const layout = getLayout(layoutIds, _dims, seriesCombinations, isTimeInverted);\n const layoutDimsIds = R.map(R.reduce((acc, entry) => {\n if (R.has('dimensions', entry)) {\n return R.concat(acc, R.pluck('id', entry.dimensions));\n }\n return R.append(entry.id, acc);\n }, []), layout);\n const layoutIndexes = getSortedLayoutIndexes(layout, dupObs, rejectedDimensions);\n const enhancedLayoutIndexes = parseLayoutIndexesHierarchies(\n layoutIndexes,\n layout,\n );\n const refinedLayoutIndexes = refineLayoutSize({ layout, observations: dupObs, limit })(enhancedLayoutIndexes);\n const layoutData = getLayoutData(refinedLayoutIndexes, layout, {\n metadataCoordinates,\n attributesSeries,\n customAttributes,\n topCoordinates: header.coordinates,\n rejectedDimensions\n });\n\n const cellsAttributesIds = getCellsAttributesIds(layoutDimsIds, attributes);\n const indexedCombinations = getIndexedCombinationsByDisplay(layout, seriesCombinations);\n const cellsMetadataCoordinates = getCellsMetadataCoordinates(metadataCoordinates, oneValueDimensions, layoutDimsIds);\n const cells = getCells(customAttributes, cellsAttributesIds, indexedCombinations, attributesSeries, cellsMetadataCoordinates)(dupObs);\n
|
|
1
|
+
{"version":3,"file":"getTableProps.js","sources":["../../../../src/rules2/src/table/getTableProps.js"],"sourcesContent":["import * as R from 'ramda';\nimport { declineObservationsOverAttributes } from './declineObservationsOverAttributes';\nimport { getLayout } from './getLayout';\nimport { getSortedLayoutIndexes } from './getSortedLayoutIndexes';\nimport { parseLayoutIndexesHierarchies } from './parseSeriesIndexesHierarchies';\nimport { refineLayoutSize } from './refineLayoutSize2';\nimport { getLayoutData } from './getLayoutData2';\nimport { getCellsAttributesIds } from './getCellsAttributesIds';\nimport { getIndexedCombinationsByDisplay } from './getIndexedCombinationsByDisplay';\nimport { getCells } from './getCells';\nimport { getCuratedCells } from './getCuratedCells';\nimport { getSeriesCombinations } from '../getSeriesCombinations';\nimport { getCellsMetadataCoordinates } from './getCellsMetadataCoordinates';\n\nexport const getTableProps = ({ data, layoutIds, customAttributes, limit, isTimeInverted }) => {\n const {\n observations,\n dimensions,\n combinations,\n oneValueDimensions,\n attributesSeries,\n metadataCoordinates,\n attributes,\n header,\n rejectedDimensions=[]\n } = data;\n\n const obsAttributes = R.filter(\n a => a.series && R.isEmpty(a.relationship) && a.display && !a.combined,\n attributes\n );\n let dupObs = observations;\n const hasDuplicatedCells = R.pipe(\n R.values,\n R.unnest,\n R.find(R.equals('OBS_ATTRIBUTES')),\n )(layoutIds);\n if (hasDuplicatedCells) {\n const attrsIds = R.pluck('id', obsAttributes);\n dupObs = declineObservationsOverAttributes(attrsIds, observations);\n }\n const seriesCombinations = getSeriesCombinations(combinations, oneValueDimensions);\n const _dims = R.append(\n {\n id: 'OBS_ATTRIBUTES',\n values: R.prepend({ id: 'OBS_VALUE' }, obsAttributes),\n },\n dimensions,\n );\n const layout = getLayout(layoutIds, _dims, seriesCombinations, isTimeInverted);\n const layoutDimsIds = R.map(R.reduce((acc, entry) => {\n if (R.has('dimensions', entry)) {\n return R.concat(acc, R.pluck('id', entry.dimensions));\n }\n return R.append(entry.id, acc);\n }, []), layout);\n const layoutIndexes = getSortedLayoutIndexes(layout, dupObs, rejectedDimensions);\n const enhancedLayoutIndexes = parseLayoutIndexesHierarchies(\n layoutIndexes,\n layout,\n );\n const refinedLayoutIndexes = refineLayoutSize({ layout, observations: dupObs, limit })(enhancedLayoutIndexes);\n const layoutData = getLayoutData(refinedLayoutIndexes, layout, {\n metadataCoordinates,\n attributesSeries,\n customAttributes,\n topCoordinates: header.coordinates,\n rejectedDimensions\n });\n\n const cellsAttributesIds = getCellsAttributesIds(layoutDimsIds, attributes);\n const indexedCombinations = getIndexedCombinationsByDisplay(layout, seriesCombinations);\n const cellsMetadataCoordinates = getCellsMetadataCoordinates(metadataCoordinates, oneValueDimensions, layoutDimsIds);\n const cells = getCells(customAttributes, cellsAttributesIds, indexedCombinations, attributesSeries, cellsMetadataCoordinates)(dupObs);\n\n return ({\n ...layoutData,\n cells: getCuratedCells(cells, layout),\n layout,\n combinations: seriesCombinations\n });\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseValueHierarchy.js","sources":["../../../../src/rules2/src/table/parseValueHierarchy.js"],"sourcesContent":["import * as R from 'ramda';\r\n\r\nexport const
|
|
1
|
+
{"version":3,"file":"parseValueHierarchy.js","sources":["../../../../src/rules2/src/table/parseValueHierarchy.js"],"sourcesContent":["import * as R from 'ramda';\r\n\r\nexport const parseValueHierarchy = (value, previousValue, indexedValues) => {\r\n const parentsIds = R.propOr([], 'parents', value);\r\n if (R.isEmpty(parentsIds)) {\r\n return value;\r\n }\r\n const _previousParentsIds = R.propOr([], 'parentsIds', previousValue);\r\n const previousParentsIds = R.isNil(previousValue) ? [] : R.append(R.prop('id', previousValue), _previousParentsIds);\r\n const [presentIds, _missingIds] = R.addIndex(R.splitWhen)((val, ind) => R.nth(ind, previousParentsIds) !== val, parentsIds);\r\n const __previousParentsIds = R.pipe(R.propOr([], 'parents'), R.pluck('id'))(previousValue);\r\n const missingIds = R.pipe(\r\n R.takeLastWhile(id => !R.includes(id, __previousParentsIds) && id !== R.prop('id', previousValue)),\r\n ids => R.concat(ids, _missingIds)\r\n )(presentIds);\r\n const _previousParents = R.propOr([], 'parents', previousValue);\r\n const previousParents = R.isNil(previousValue) ? [] : R.append(R.pick(['id', 'name'], previousValue), _previousParents);\r\n const parents = R.takeWhile(p => R.includes(p.id, presentIds), previousParents);\r\n const missingParents = R.props(missingIds, indexedValues);\r\n return ({\r\n ...value,\r\n parents,\r\n parentsIds,\r\n missingParents\r\n });\r\n};\r\n"],"names":[],"mappings":";;AAEY,MAAC,mBAAmB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,KAAK;AAC5E,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE,CAAC;AACH,EAAE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AACxE,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACtH,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC;AAC9H,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AAC7F,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI;AAC3B,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACtG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC;AACrC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChB,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAClE,EAAE,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC1H,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;AAClF,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5D,EAAE,QAAQ;AACV,IAAI,GAAG,KAAK;AACZ,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,GAAG,EAAE;AACL;;;;"}
|
|
@@ -320,5 +320,5 @@ const refineLayoutSize = ({ layout, observations, limit }) => layoutIndexes => {
|
|
|
320
320
|
)(result);
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
-
export {
|
|
323
|
+
export { refineLayoutSize };
|
|
324
324
|
//# sourceMappingURL=refineLayoutSize2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refineLayoutSize2.js","sources":["../../../../src/rules2/src/table/refineLayoutSize2.js"],"sourcesContent":["import * as R from 'ramda';\n\nconst toKey = indexes => R.reduce(\n (acc, _ind) => {\n const ind = R.is(Array, _ind) ? toKey(_ind) : String(Math.abs(_ind));\n if (R.isEmpty(ind)) {\n return acc;\n }\n return R.isEmpty(acc) ? ind : `${acc}:${ind}`\n },\n '',\n indexes\n);\n\nconst getPivotKey = indexes => R.pipe(\n R.props(indexes),\n R.join(':')\n);\n\nconst getPivots = (layout, shape) => R.pipe(\n R.props(shape),\n R.map(\n R.pipe(\n R.map(entry => R.has('dimensions', entry) ? R.pluck('__index', entry.dimensions || []) : entry.__index),\n R.unnest,\n getPivotKey\n )\n )\n)(layout);\n\nconst indexWithPivots = (pivots, observations) => R.pipe(\n R.values,\n R.reduce(\n (acc, obs) => {\n const path = R.map(\n pivot => pivot(obs.orderedDimIndexes),\n pivots\n );\n return R.over(\n R.lensPath(path),\n R.ifElse(R.isNil, R.always([obs]), R.append(obs))\n )(acc);\n },\n {}\n )\n)(observations);\n\nexport const getCuratedCells = ({ layout, observations, shape }) => {\n const pivots = getPivots(layout, shape);\n return indexWithPivots(pivots, observations);\n};\n\nconst filterSeries = (series, getHasStillData) => {\n let removedMissingIndexes = [];\n return R.reduce((acc, serie) => {\n const hasStillData = getHasStillData(serie);\n const serieParentsSets = R.map(p => new Set(p), R.propOr([], 'parentsIndexes', serie));\n if (!hasStillData) {\n removedMissingIndexes = R.addIndex(R.map)((mIs, ind) => {\n const filtered = R.filter(i => serieParentsSets[ind].has(i), R.nth(ind, removedMissingIndexes) || []);\n return R.concat(filtered, mIs);\n }, serie.missingIndexes || []);\n return acc;\n }\n const _serie = R.pipe(\n R.over(\n R.lensProp('missingIndexes'),\n (missingIndexes = []) => R.addIndex(R.map)((mIs, ind) => {\n const removed = R.nth(ind, removedMissingIndexes) || [];\n if (R.isEmpty(removed)) {\n return mIs;\n }\n const filteredRemoved = R.filter(i => serieParentsSets[ind].has(i), removed);\n return R.concat(filteredRemoved, mIs || []);\n }, missingIndexes)\n ),\n R.over(\n R.lensProp('parentsIndexes'),\n (parentsIndexes = []) => R.addIndex(R.map)((p, ind) => {\n return R.reject(i => R.includes(i, R.nth(ind, removedMissingIndexes) || []), p || []);\n }, parentsIndexes)\n )\n )(serie);\n removedMissingIndexes = [];\n return R.append(_serie, acc);\n }, [], series);\n};\n\nexport const refineSections = (sections, extractedKeys, curatedObs) => R.pipe(\n R.map(\n (section) => {\n const sectionKey = toKey(R.propOr([], 'indexes', R.head(section)));\n const getHasRowStillData = (row) => {\n const rowKey = toKey(R.prop('indexes', row));\n return R.pipe(\n R.path([sectionKey, rowKey]),\n R.omit(extractedKeys),\n R.isEmpty,\n R.not\n )(curatedObs);\n };\n return R.over(\n R.lensIndex(1),\n rows => filterSeries(rows, getHasRowStillData)\n )(section);\n }\n ),\n R.filter(\n R.pipe(R.nth(1), R.isEmpty, R.not)\n )\n)(sections);\n\nexport const refineHeader = (headers, extractedKeys, curatedObs) => {\n const getHasHeaderStillData = (header) => {\n const headerKey = toKey(R.prop('indexes', header));\n return R.pipe(\n R.prop(headerKey),\n (sections) => {\n return R.pickBy(\n (rows, section) => R.pipe(\n R.omit(R.propOr([], section, extractedKeys)),\n R.isEmpty,\n R.not\n )(rows),\n sections\n );\n },\n R.isEmpty,\n R.not\n )(curatedObs);\n };\n return filterSeries(headers, getHasHeaderStillData);\n};\n\nconst getSerieLinesCount = serie => {\n const missingParents = R.propOr([], 'missingParents', serie);\n const missingParentsRowsCount = R.pipe(R.flatten, R.length)(missingParents);\n return missingParentsRowsCount + 1;\n}\n\nexport const truncateSectionRows = (n, sectionsData) => {\n let truncated = sectionsData;\n let extractedKeys = {};\n let _n = n;\n while (_n > 0) {\n const lastSection = R.last(truncated);\n const rows = lastSection[1];\n const rowsLength = R.length(rows);\n let truncatedRowsCount = 0;\n while (_n > 0 && truncatedRowsCount !== rowsLength) {\n const rowsCount = getSerieLinesCount(R.nth(-1 * truncatedRowsCount, rows));\n _n = _n - rowsCount;\n truncatedRowsCount++;\n }\n const sectionKey = R.pipe(R.head, R.prop('indexes'), toKey)(lastSection);\n extractedKeys = {\n ...extractedKeys,\n [sectionKey]: R.pipe(\n R.takeLast(truncatedRowsCount),\n R.map(r => toKey(R.prop('indexes', r)))\n )(rows)\n };\n if (_n > 0) {\n truncated = R.dropLast(1, truncated);\n }\n else {\n truncated = R.over(R.lensIndex(-1), R.over(R.lensIndex(1), R.dropLast(truncatedRowsCount)))(truncated);\n }\n }\n return ({ truncated, extractedKeys });\n};\n\nexport const truncateHeader = (n, headerData) => {\n let { truncated, extractedKeys } = { truncated: headerData, extractedKeys: [] };\n let _n = n;\n while (_n > 0) {\n const lastHeader = R.last(truncated);\n const columnsCount = getSerieLinesCount(lastHeader);\n const extractedKey = toKey(R.prop('indexes', lastHeader));\n extractedKeys = R.append(extractedKey, extractedKeys);\n truncated = R.dropLast(1, truncated);\n _n = _n - columnsCount;\n }\n return ({ truncated, extractedKeys });\n};\n\nconst truncateLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n truncateSectionRows,\n truncateHeader,\n);\n\nconst refineLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n refineHeader,\n refineSections\n)\n\nconst getShape = isVertical => isVertical ? ['header', 'sections', 'rows'] : ['sections', 'rows', 'header'];\n\nconst getRefinedLayout = (isVertical, truncated, refined) => R.ifElse(\n R.always(isVertical),\n R.pipe(R.assoc('sections', truncated), R.assoc('header', refined)),\n R.pipe(R.assoc('header', truncated), R.assoc('sections', refined)),\n)({});\n\nconst segregateLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n R.props(['sections', 'header']),\n R.props(['header', 'sections'])\n);\n\nexport const refineLayoutSize = ({ layout, observations, limit }) => layoutIndexes => {\n const { header, sections } = layoutIndexes;\n if (R.isNil(limit) || limit === 0 || R.all(R.isEmpty, [header, sections])) {\n return R.pipe(\n R.set(R.lensProp('truncated'), false), \n R.set(R.lensProp('totalCells'), null), \n )(layoutIndexes);\n }\n\n //number of dimensions in header\n const headerDimCount = R.pipe(\n R.head, // first column\n R.when(R.isNil, R.always({})),\n R.propOr([], 'indexes'),\n R.length // number of dims\n )(header);\n\n //number of columns for values\n const headerValuesCount = R.pipe(\n R.reduce((acc, header) => {\n const columnsCount = getSerieLinesCount(header);\n return acc + columnsCount;\n }, 0),\n R.when(R.equals(0), R.always(1))\n )(header);\n\n //total of cells in header\n const headerCellsCount = headerDimCount * (headerValuesCount + 1);\n\n // number of dimensions in a row\n const rowDimCount = R.pipe(\n R.head, // firstSection\n R.last, // rows,\n R.head, // first row\n R.propOr([], 'indexes'),\n R.length\n )(sections);\n\n // number of cells in a row\n const rowCellsCount = rowDimCount + headerValuesCount + 1;\n\n // number of rows\n const rowsCount = R.pipe(\n R.map(R.last),\n R.unnest,\n R.reduce((acc, row) => {\n const rowsCount = getSerieLinesCount(row);\n return acc + rowsCount;\n }, 1)\n )(sections);\n\n // total of cells in all rows\n const rowsCellsCount = rowCellsCount * rowsCount;\n\n // number of sections cells\n const sectionsCellsCount = R.ifElse(\n R.pipe(R.head, R.head, R.propOr([], 'indexes'), R.length, R.equals(0)),\n R.always(0),\n R.length\n )(sections);\n\n const total = rowsCellsCount + sectionsCellsCount + headerCellsCount;\n\n const excess = total - limit;\n if (excess <= 0) {\n return R.pipe(\n R.set(R.lensProp('truncated'), false), \n R.set(R.lensProp('totalCells'), total), \n )(layoutIndexes);\n }\n\n // total of cells in one column\n const columnCellsCount = headerDimCount + rowsCount;\n\n const isVertical = columnCellsCount > rowCellsCount;\n\n const [toTruncate, toRefine] = segregateLayout(isVertical)(layoutIndexes);\n\n let cutLength = R.pipe(\n R.ifElse(R.identity, R.always(rowCellsCount), R.always(columnCellsCount)),\n R.divide(excess),\n Math.ceil\n )(isVertical);\n\n const maxCutLength = isVertical ? rowsCount - 2 : headerValuesCount - 1;\n cutLength = cutLength > maxCutLength ? maxCutLength : cutLength;\n\n const { truncated, extractedKeys } = truncateLayout(isVertical)(cutLength, toTruncate);\n\n const dimsLength = R.pipe(R.values, R.head, R.propOr([], 'orderedDimIndexes'), R.length)(observations);\n const _layout = R.map( \n R.map(entry => entry.id === 'OBS_ATTRIBUTES' ? R.assoc('__index', dimsLength - 1, entry) : entry),\n layout\n );\n const curatedObs = R.pipe(\n getShape,\n (shape) => getCuratedCells({ layout: _layout, observations, shape })\n )(isVertical);\n\n\n const refined = refineLayout(isVertical)(toRefine, extractedKeys, curatedObs);\n\n const result = getRefinedLayout(isVertical, truncated, refined);\n\n return R.pipe(\n R.set(R.lensProp('truncated'), true), \n R.set(R.lensProp('totalCells'), total), \n )(result);\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"refineLayoutSize2.js","sources":["../../../../src/rules2/src/table/refineLayoutSize2.js"],"sourcesContent":["import * as R from 'ramda';\n\nconst toKey = indexes => R.reduce(\n (acc, _ind) => {\n const ind = R.is(Array, _ind) ? toKey(_ind) : String(Math.abs(_ind));\n if (R.isEmpty(ind)) {\n return acc;\n }\n return R.isEmpty(acc) ? ind : `${acc}:${ind}`\n },\n '',\n indexes\n);\n\nconst getPivotKey = indexes => R.pipe(\n R.props(indexes),\n R.join(':')\n);\n\nconst getPivots = (layout, shape) => R.pipe(\n R.props(shape),\n R.map(\n R.pipe(\n R.map(entry => R.has('dimensions', entry) ? R.pluck('__index', entry.dimensions || []) : entry.__index),\n R.unnest,\n getPivotKey\n )\n )\n)(layout);\n\nconst indexWithPivots = (pivots, observations) => R.pipe(\n R.values,\n R.reduce(\n (acc, obs) => {\n const path = R.map(\n pivot => pivot(obs.orderedDimIndexes),\n pivots\n );\n return R.over(\n R.lensPath(path),\n R.ifElse(R.isNil, R.always([obs]), R.append(obs))\n )(acc);\n },\n {}\n )\n)(observations);\n\nconst getCuratedCells = ({ layout, observations, shape }) => {\n const pivots = getPivots(layout, shape);\n return indexWithPivots(pivots, observations);\n};\n\nconst filterSeries = (series, getHasStillData) => {\n let removedMissingIndexes = [];\n return R.reduce((acc, serie) => {\n const hasStillData = getHasStillData(serie);\n const serieParentsSets = R.map(p => new Set(p), R.propOr([], 'parentsIndexes', serie));\n if (!hasStillData) {\n removedMissingIndexes = R.addIndex(R.map)((mIs, ind) => {\n const filtered = R.filter(i => serieParentsSets[ind].has(i), R.nth(ind, removedMissingIndexes) || []);\n return R.concat(filtered, mIs);\n }, serie.missingIndexes || []);\n return acc;\n }\n const _serie = R.pipe(\n R.over(\n R.lensProp('missingIndexes'),\n (missingIndexes = []) => R.addIndex(R.map)((mIs, ind) => {\n const removed = R.nth(ind, removedMissingIndexes) || [];\n if (R.isEmpty(removed)) {\n return mIs;\n }\n const filteredRemoved = R.filter(i => serieParentsSets[ind].has(i), removed);\n return R.concat(filteredRemoved, mIs || []);\n }, missingIndexes)\n ),\n R.over(\n R.lensProp('parentsIndexes'),\n (parentsIndexes = []) => R.addIndex(R.map)((p, ind) => {\n return R.reject(i => R.includes(i, R.nth(ind, removedMissingIndexes) || []), p || []);\n }, parentsIndexes)\n )\n )(serie);\n removedMissingIndexes = [];\n return R.append(_serie, acc);\n }, [], series);\n};\n\nconst refineSections = (sections, extractedKeys, curatedObs) => R.pipe(\n R.map(\n (section) => {\n const sectionKey = toKey(R.propOr([], 'indexes', R.head(section)));\n const getHasRowStillData = (row) => {\n const rowKey = toKey(R.prop('indexes', row));\n return R.pipe(\n R.path([sectionKey, rowKey]),\n R.omit(extractedKeys),\n R.isEmpty,\n R.not\n )(curatedObs);\n };\n return R.over(\n R.lensIndex(1),\n rows => filterSeries(rows, getHasRowStillData)\n )(section);\n }\n ),\n R.filter(\n R.pipe(R.nth(1), R.isEmpty, R.not)\n )\n)(sections);\n\nconst refineHeader = (headers, extractedKeys, curatedObs) => {\n const getHasHeaderStillData = (header) => {\n const headerKey = toKey(R.prop('indexes', header));\n return R.pipe(\n R.prop(headerKey),\n (sections) => {\n return R.pickBy(\n (rows, section) => R.pipe(\n R.omit(R.propOr([], section, extractedKeys)),\n R.isEmpty,\n R.not\n )(rows),\n sections\n );\n },\n R.isEmpty,\n R.not\n )(curatedObs);\n };\n return filterSeries(headers, getHasHeaderStillData);\n};\n\nconst getSerieLinesCount = serie => {\n const missingParents = R.propOr([], 'missingParents', serie);\n const missingParentsRowsCount = R.pipe(R.flatten, R.length)(missingParents);\n return missingParentsRowsCount + 1;\n}\n\nconst truncateSectionRows = (n, sectionsData) => {\n let truncated = sectionsData;\n let extractedKeys = {};\n let _n = n;\n while (_n > 0) {\n const lastSection = R.last(truncated);\n const rows = lastSection[1];\n const rowsLength = R.length(rows);\n let truncatedRowsCount = 0;\n while (_n > 0 && truncatedRowsCount !== rowsLength) {\n const rowsCount = getSerieLinesCount(R.nth(-1 * truncatedRowsCount, rows));\n _n = _n - rowsCount;\n truncatedRowsCount++;\n }\n const sectionKey = R.pipe(R.head, R.prop('indexes'), toKey)(lastSection);\n extractedKeys = {\n ...extractedKeys,\n [sectionKey]: R.pipe(\n R.takeLast(truncatedRowsCount),\n R.map(r => toKey(R.prop('indexes', r)))\n )(rows)\n };\n if (_n > 0) {\n truncated = R.dropLast(1, truncated);\n }\n else {\n truncated = R.over(R.lensIndex(-1), R.over(R.lensIndex(1), R.dropLast(truncatedRowsCount)))(truncated);\n }\n }\n return ({ truncated, extractedKeys });\n};\n\nconst truncateHeader = (n, headerData) => {\n let { truncated, extractedKeys } = { truncated: headerData, extractedKeys: [] };\n let _n = n;\n while (_n > 0) {\n const lastHeader = R.last(truncated);\n const columnsCount = getSerieLinesCount(lastHeader);\n const extractedKey = toKey(R.prop('indexes', lastHeader));\n extractedKeys = R.append(extractedKey, extractedKeys);\n truncated = R.dropLast(1, truncated);\n _n = _n - columnsCount;\n }\n return ({ truncated, extractedKeys });\n};\n\nconst truncateLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n truncateSectionRows,\n truncateHeader,\n);\n\nconst refineLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n refineHeader,\n refineSections\n)\n\nconst getShape = isVertical => isVertical ? ['header', 'sections', 'rows'] : ['sections', 'rows', 'header'];\n\nconst getRefinedLayout = (isVertical, truncated, refined) => R.ifElse(\n R.always(isVertical),\n R.pipe(R.assoc('sections', truncated), R.assoc('header', refined)),\n R.pipe(R.assoc('header', truncated), R.assoc('sections', refined)),\n)({});\n\nconst segregateLayout = (isVertical) => R.ifElse(\n R.always(isVertical),\n R.props(['sections', 'header']),\n R.props(['header', 'sections'])\n);\n\nexport const refineLayoutSize = ({ layout, observations, limit }) => layoutIndexes => {\n const { header, sections } = layoutIndexes;\n if (R.isNil(limit) || limit === 0 || R.all(R.isEmpty, [header, sections])) {\n return R.pipe(\n R.set(R.lensProp('truncated'), false), \n R.set(R.lensProp('totalCells'), null), \n )(layoutIndexes);\n }\n\n //number of dimensions in header\n const headerDimCount = R.pipe(\n R.head, // first column\n R.when(R.isNil, R.always({})),\n R.propOr([], 'indexes'),\n R.length // number of dims\n )(header);\n\n //number of columns for values\n const headerValuesCount = R.pipe(\n R.reduce((acc, header) => {\n const columnsCount = getSerieLinesCount(header);\n return acc + columnsCount;\n }, 0),\n R.when(R.equals(0), R.always(1))\n )(header);\n\n //total of cells in header\n const headerCellsCount = headerDimCount * (headerValuesCount + 1);\n\n // number of dimensions in a row\n const rowDimCount = R.pipe(\n R.head, // firstSection\n R.last, // rows,\n R.head, // first row\n R.propOr([], 'indexes'),\n R.length\n )(sections);\n\n // number of cells in a row\n const rowCellsCount = rowDimCount + headerValuesCount + 1;\n\n // number of rows\n const rowsCount = R.pipe(\n R.map(R.last),\n R.unnest,\n R.reduce((acc, row) => {\n const rowsCount = getSerieLinesCount(row);\n return acc + rowsCount;\n }, 1)\n )(sections);\n\n // total of cells in all rows\n const rowsCellsCount = rowCellsCount * rowsCount;\n\n // number of sections cells\n const sectionsCellsCount = R.ifElse(\n R.pipe(R.head, R.head, R.propOr([], 'indexes'), R.length, R.equals(0)),\n R.always(0),\n R.length\n )(sections);\n\n const total = rowsCellsCount + sectionsCellsCount + headerCellsCount;\n\n const excess = total - limit;\n if (excess <= 0) {\n return R.pipe(\n R.set(R.lensProp('truncated'), false), \n R.set(R.lensProp('totalCells'), total), \n )(layoutIndexes);\n }\n\n // total of cells in one column\n const columnCellsCount = headerDimCount + rowsCount;\n\n const isVertical = columnCellsCount > rowCellsCount;\n\n const [toTruncate, toRefine] = segregateLayout(isVertical)(layoutIndexes);\n\n let cutLength = R.pipe(\n R.ifElse(R.identity, R.always(rowCellsCount), R.always(columnCellsCount)),\n R.divide(excess),\n Math.ceil\n )(isVertical);\n\n const maxCutLength = isVertical ? rowsCount - 2 : headerValuesCount - 1;\n cutLength = cutLength > maxCutLength ? maxCutLength : cutLength;\n\n const { truncated, extractedKeys } = truncateLayout(isVertical)(cutLength, toTruncate);\n\n const dimsLength = R.pipe(R.values, R.head, R.propOr([], 'orderedDimIndexes'), R.length)(observations);\n const _layout = R.map( \n R.map(entry => entry.id === 'OBS_ATTRIBUTES' ? R.assoc('__index', dimsLength - 1, entry) : entry),\n layout\n );\n const curatedObs = R.pipe(\n getShape,\n (shape) => getCuratedCells({ layout: _layout, observations, shape })\n )(isVertical);\n\n\n const refined = refineLayout(isVertical)(toRefine, extractedKeys, curatedObs);\n\n const result = getRefinedLayout(isVertical, truncated, refined);\n\n return R.pipe(\n R.set(R.lensProp('truncated'), true), \n R.set(R.lensProp('totalCells'), total), \n )(result);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/rules2/src/utils.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/rules2/src/utils.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getLayoutCoordinatesValidator = (layoutCoordinates, topCoordinates={}) => (coordinates) => {\n if (R.isEmpty(coordinates)) {\n return false;\n }\n if (R.has('OBS_ATTRIBUTES', layoutCoordinates) || R.has('OBS_ATTRIBUTES', topCoordinates)) {\n const obsAttrCoord = R.prop('OBS_ATTRIBUTES', layoutCoordinates)\n || R.prop('OBS_ATTRIBUTES', topCoordinates);\n if (obsAttrCoord !== 'OBS_VALUE') {\n return false;\n }\n }\n const keys = R.keys(coordinates);\n let res = true;\n let notInTop = {};\n R.forEach(key => {\n if (R.prop(key, layoutCoordinates) !== R.prop(key, coordinates)) {\n res = false;\n }\n if (!R.has(key, topCoordinates)) {\n notInTop[key] = key;\n }\n }, keys);\n return res && !R.isEmpty(notInTop);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,6BAA6B,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,WAAW,KAAK;AACxG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE;AAC7F,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB;AACnE,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC;AAC/C,IAAI,IAAI,YAAY,KAAK,WAAW,EAAE;AACtC,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC,EAAE,IAAI,GAAG,GAAG,IAAI;AAChB,EAAE,IAAI,QAAQ,GAAG,EAAE;AACnB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACnB,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;AACrE,MAAM,GAAG,GAAG,KAAK;AACjB,IAAI;AACJ,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE;AACrC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG;AACzB,IAAI;AACJ,EAAE,CAAC,EAAE,IAAI,CAAC;AACV,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpC;;;;"}
|
package/dist/viewer/src/chart.js
CHANGED
|
@@ -2,11 +2,22 @@ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import * as R from 'ramda';
|
|
4
4
|
import { NoData } from '@sis-cc/dotstatsuite-visions';
|
|
5
|
-
import
|
|
5
|
+
import { ChoroplethChart, StackedRowChart, StackedBarChart, VerticalSymbolChart, HorizontalSymbolChart, TimelineChart, ScatterChart, RowChart, BarChart } from '../../bridge-d3-react/src/index.js';
|
|
6
6
|
import filterSeriesRegardingDimensions from './chartUtils/series.js';
|
|
7
7
|
import AxisLegend from './legends/AxisLegend.js';
|
|
8
8
|
import { isChartNoData } from './utils.js';
|
|
9
9
|
|
|
10
|
+
const charts = {
|
|
11
|
+
BarChart,
|
|
12
|
+
RowChart,
|
|
13
|
+
ScatterChart,
|
|
14
|
+
TimelineChart,
|
|
15
|
+
HorizontalSymbolChart,
|
|
16
|
+
VerticalSymbolChart,
|
|
17
|
+
StackedBarChart,
|
|
18
|
+
StackedRowChart,
|
|
19
|
+
ChoroplethChart
|
|
20
|
+
};
|
|
10
21
|
const Chart = ({
|
|
11
22
|
options,
|
|
12
23
|
series,
|
|
@@ -14,7 +25,7 @@ const Chart = ({
|
|
|
14
25
|
width,
|
|
15
26
|
getAxisOptions
|
|
16
27
|
}) => {
|
|
17
|
-
const ChartClass =
|
|
28
|
+
const ChartClass = charts[type];
|
|
18
29
|
return /*#__PURE__*/React__default.createElement("div", null, R.is(Number, width) && width < 370 ? null : /*#__PURE__*/React__default.createElement(AxisLegend, {
|
|
19
30
|
axis: "y",
|
|
20
31
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.js","sources":["../../../src/viewer/src/chart.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport { NoData } from '@sis-cc/dotstatsuite-visions';\nimport
|
|
1
|
+
{"version":3,"file":"chart.js","sources":["../../../src/viewer/src/chart.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport { NoData } from '@sis-cc/dotstatsuite-visions';\nimport {\n BarChart,\n RowChart,\n ScatterChart,\n TimelineChart,\n HorizontalSymbolChart,\n VerticalSymbolChart,\n StackedBarChart,\n StackedRowChart,\n ChoroplethChart,\n} from '../../bridge-d3-react/src';\nimport filterSeriesRegardingDimensions from './chartUtils/series';\nimport AxisLegend from './legends/AxisLegend.jsx';\nimport { isChartNoData } from './utils';\n\nconst charts = {\n BarChart,\n RowChart,\n ScatterChart,\n TimelineChart,\n HorizontalSymbolChart,\n VerticalSymbolChart,\n StackedBarChart,\n StackedRowChart,\n ChoroplethChart,\n};\n\nconst Chart = ({ options, series, type, width, getAxisOptions }) => {\n const ChartClass = charts[type];\n return (\n <div>\n {\n (R.is(Number, width) && width < 370)\n ? null\n : <AxisLegend axis=\"y\" data={{ series }} type={type} />\n }\n <ChartClass\n data={series}\n options={options}\n getAxisOptions={getAxisOptions}\n />\n </div>\n );\n};\n\nconst ChartWrapper = (props = {}) => {\n const options = R.over(\n R.lensPath(['base', 'height']),\n R.when(h => h < 0, R.always(300))\n )(props.options);\n\n if (isChartNoData(props)) {\n const height = R.path(['base', 'height'], options);\n const style = { height };\n return (\n <div style={style}>\n <NoData message={props.noData || 'No Data'} />\n </div>\n );\n }\n\n return (\n <Chart\n {...props}\n options={options}\n series={filterSeriesRegardingDimensions(props.data.series, props.type, options)} // responsive rule only display highlighted data\n />\n );\n};\n\nexport default ChartWrapper;\n"],"names":["charts","BarChart","RowChart","ScatterChart","TimelineChart","HorizontalSymbolChart","VerticalSymbolChart","StackedBarChart","StackedRowChart","ChoroplethChart","Chart","options","series","type","width","getAxisOptions","ChartClass","React","createElement","R","is","Number","AxisLegend","axis","data","ChartWrapper","props","over","lensPath","when","h","always","isChartNoData","height","path","style","NoData","message","noData","_extends","filterSeriesRegardingDimensions"],"mappings":";;;;;;;;;AAkBA,MAAMA,MAAM,GAAG;EACbC,QAAQ;EACRC,QAAQ;EACRC,YAAY;EACZC,aAAa;EACbC,qBAAqB;EACrBC,mBAAmB;EACnBC,eAAe;EACfC,eAAe;AACfC,EAAAA;AACF,CAAC;AAED,MAAMC,KAAK,GAAGA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC,IAAI;EAAEC,KAAK;AAAEC,EAAAA;AAAe,CAAC,KAAK;AAClE,EAAA,MAAMC,UAAU,GAAGhB,MAAM,CAACa,IAAI,CAAC;EAC/B,oBACEI,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,EAEKC,CAAC,CAACC,EAAE,CAACC,MAAM,EAAEP,KAAK,CAAC,IAAIA,KAAK,GAAG,GAAG,GACjC,IAAI,gBACJG,cAAA,CAAAC,aAAA,CAACI,UAAU,EAAA;AAACC,IAAAA,IAAI,EAAC,GAAG;AAACC,IAAAA,IAAI,EAAE;AAAEZ,MAAAA;KAAS;AAACC,IAAAA,IAAI,EAAEA;AAAK,GAAE,CAAC,eAEzDI,cAAA,CAAAC,aAAA,CAACF,UAAU,EAAA;AACTQ,IAAAA,IAAI,EAAEZ,MAAO;AACbD,IAAAA,OAAO,EAAEA,OAAQ;AACjBI,IAAAA,cAAc,EAAEA;AAAe,GAChC,CACE,CAAC;AAEV,CAAC;AAED,MAAMU,YAAY,GAAGA,CAACC,KAAK,GAAG,EAAE,KAAK;AACnC,EAAA,MAAMf,OAAO,GAAGQ,CAAC,CAACQ,IAAI,CACpBR,CAAC,CAACS,QAAQ,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAC9BT,CAAC,CAACU,IAAI,CAACC,CAAC,IAAIA,CAAC,GAAG,CAAC,EAAEX,CAAC,CAACY,MAAM,CAAC,GAAG,CAAC,CAClC,CAAC,CAACL,KAAK,CAACf,OAAO,CAAC;AAEhB,EAAA,IAAIqB,aAAa,CAACN,KAAK,CAAC,EAAE;AACxB,IAAA,MAAMO,MAAM,GAAGd,CAAC,CAACe,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAEvB,OAAO,CAAC;AAClD,IAAA,MAAMwB,KAAK,GAAG;AAAEF,MAAAA;KAAQ;IACxB,oBACEhB,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKiB,MAAAA,KAAK,EAAEA;AAAM,KAAA,eAChBlB,cAAA,CAAAC,aAAA,CAACkB,MAAM,EAAA;AAACC,MAAAA,OAAO,EAAEX,KAAK,CAACY,MAAM,IAAI;AAAU,KAAE,CAC1C,CAAC;AAEV,EAAA;EAEA,oBACErB,cAAA,CAAAC,aAAA,CAACR,KAAK,EAAA6B,QAAA,KACAb,KAAK,EAAA;AACTf,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,MAAM,EAAE4B,+BAA+B,CAACd,KAAK,CAACF,IAAI,CAACZ,MAAM,EAAEc,KAAK,CAACb,IAAI,EAAEF,OAAO,CAAE;AAAC,GAAA,CAClF,CAAC;AAEN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusLegend.js","sources":["../../../../src/viewer/src/legends/FocusLegend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport Legend from './Legend.jsx';\nimport { SCATTER, TIMELINE } from '../../../rules/src/constants';\n\
|
|
1
|
+
{"version":3,"file":"FocusLegend.js","sources":["../../../../src/viewer/src/legends/FocusLegend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport Legend from './Legend.jsx';\nimport { SCATTER, TIMELINE } from '../../../rules/src/constants';\n\nconst REDUCED_THRESHOLD = 160;\n\nconst scatterRenderer = ({ color }) => (\n <svg width='12' height='14'>\n <circle cx='7' cy='7' r='4' stroke={color} fill={color} />\n </svg>\n);\n\nconst lineRenderer = ({ color }) => (\n <svg width='12' height='14'>\n <line x1='0' y1='7' x2='11' y2='7' stroke={color} strokeWidth='2' />\n </svg>\n);\n\nconst FocusLegend = ({ data, options, type, width }) => {\n if (width < REDUCED_THRESHOLD) {\n return null;\n }\n\n const itemRenderer = R.pipe(\n R.when(R.always(type === SCATTER), R.always(scatterRenderer)),\n R.when(R.always(type === TIMELINE), R.always(lineRenderer)),\n )(null);\n\n const getItemLabel = R.ifElse(\n R.equals(SCATTER),\n R.always(R.pipe(R.prop('label'), R.split(' - '), R.last)),\n R.always(R.prop('label'))\n )(type);\n\n const items = R.pipe(\n R.pathOr({}, ['share', 'focused']),\n R.mapObjIndexed((selection, key) => {\n if (R.isNil(selection)) {\n return null;\n }\n const colors = R.pathOr([], ['serie', `${key}Colors`], options);\n const nColors = R.length(colors);\n return R.pipe(\n R.addIndex(R.map)((entry, index) => {\n if (entry.value === 'uniq-dp') {\n return null;\n }\n const color = R.nth(index % nColors, colors);\n return ({ color, label: getItemLabel(entry) });\n }),\n R.filter(R.identity)\n )(selection);\n }),\n R.props(['baseline', 'highlight']),\n R.filter(R.identity),\n R.unnest\n )(data)\n\n return (<Legend items={items} itemRenderer={itemRenderer} />);\n}\n\nexport default FocusLegend;\n"],"names":["REDUCED_THRESHOLD","scatterRenderer","color","React","createElement","width","height","cx","cy","r","stroke","fill","lineRenderer","x1","y1","x2","y2","strokeWidth","FocusLegend","data","options","type","itemRenderer","R","pipe","when","always","SCATTER","TIMELINE","getItemLabel","ifElse","equals","prop","split","last","items","pathOr","mapObjIndexed","selection","key","isNil","colors","nColors","length","addIndex","map","entry","index","value","nth","label","filter","identity","props","unnest","Legend"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sis-cc/dotstatsuite-components",
|
|
3
3
|
"description": "Set components based on React.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "23.0.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"scripts": {
|
|
28
28
|
"peers": "install-peers --force-run",
|
|
29
29
|
"build": "rollup -c",
|
|
30
|
-
"test": "wce test"
|
|
30
|
+
"test": "wce test",
|
|
31
|
+
"knip": "knip"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@babel/core": "^7.28.5",
|
|
@@ -36,15 +37,15 @@
|
|
|
36
37
|
"@rollup/plugin-commonjs": "^28.0.8",
|
|
37
38
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
38
39
|
"install-peers-cli": "^2.2.0",
|
|
40
|
+
"knip": "^5.78.0",
|
|
39
41
|
"rollup": "^4.52.5",
|
|
42
|
+
"typescript": "^5.9.3",
|
|
40
43
|
"web-component-env": "^2.9.10"
|
|
41
44
|
},
|
|
42
45
|
"dependencies": {
|
|
43
46
|
"@react-hook/size": "^2.1.1",
|
|
44
47
|
"@sis-cc/dotstatsuite-d3-charts": "^10.2.0",
|
|
45
|
-
"
|
|
46
|
-
"memoizee": "^0.4.4",
|
|
47
|
-
"ramda": "^0.26.1"
|
|
48
|
+
"ramda": "^0.30.1"
|
|
48
49
|
},
|
|
49
50
|
"peerDependencies": {
|
|
50
51
|
"@emotion/react": "^11",
|
|
@@ -6,7 +6,6 @@ import * as rcwCharts from '@sis-cc/dotstatsuite-d3-charts';
|
|
|
6
6
|
export const BarChart = createFactory(factory(rcwCharts.BarChart));
|
|
7
7
|
export const RowChart = createFactory(factory(rcwCharts.RowChart));
|
|
8
8
|
export const ScatterChart = createFactory(factory(rcwCharts.ScatterChart));
|
|
9
|
-
export const LineChart = createFactory(factory(rcwCharts.LineChart));
|
|
10
9
|
export const TimelineChart = createFactory(factory(rcwCharts.TimelineChart));
|
|
11
10
|
export const VerticalSymbolChart = createFactory(factory(rcwCharts.VerticalSymbolChart));
|
|
12
11
|
export const HorizontalSymbolChart = createFactory(factory(rcwCharts.HorizontalSymbolChart));
|
|
@@ -6,12 +6,12 @@ import { getGridOptions } from './getGridOptions';
|
|
|
6
6
|
import { getTooltipOptions } from './getTooltipOptions';
|
|
7
7
|
import { SCATTER, STACKED_BAR, STACKED_ROW, TIMELINE } from '../constants';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
const FOCUS_COLORS = {
|
|
10
10
|
highlightColors: ['#E73741', '#0F8FD9', '#993484', '#DF521E', '#719E24', '#E1B400', '#32A674', '#0B68AF'],
|
|
11
11
|
baselineColors: ['#0B1E2D']
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const symbolMarkers = () => {
|
|
15
15
|
const paths = {
|
|
16
16
|
circle: size => {
|
|
17
17
|
const r = Math.sqrt(size) / 2;
|
|
@@ -20,41 +20,6 @@ export const TYPES = {
|
|
|
20
20
|
[STACKED_ROW]: STACKED_ROW,
|
|
21
21
|
[CHORO]: CHORO,
|
|
22
22
|
};
|
|
23
|
-
export const FREQ_A = 'annual';
|
|
24
|
-
export const FREQ_S = 'semesterly';
|
|
25
|
-
export const FREQ_Q = 'quarterly';
|
|
26
|
-
export const FREQ_M = 'monthly';
|
|
27
|
-
export const DEFAULT_UPR_IDS = {
|
|
28
|
-
U: ['UNIT', 'UNIT_MEASURE', 'UNIT_MEAS', 'UNITS'],
|
|
29
|
-
P: ['UNIT_MULT', 'POWERCODE', 'POWER', 'MAGNITUDE', 'SCALE'],
|
|
30
|
-
R: ['REF_PERIOD', 'REFERENCEPERIOD', 'BASE_PER']
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const DEFAULT_REJECTED_UPR_VALUES_IDS = {
|
|
34
|
-
U: [],
|
|
35
|
-
P: ['0'],
|
|
36
|
-
R: []
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export const DEFAULT_REJECTED_SUBTITLE_IDS = ['_L', '_T', '_Z'];
|
|
40
|
-
|
|
41
|
-
export const DIMENSION_DISPLAY_PARTS = {
|
|
42
|
-
DESCRIPTION: 'description',
|
|
43
|
-
CODE: 'code',
|
|
44
|
-
BOTH: 'both',
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export const DEFAULT_MAJOR_ATTRIBUTES = {
|
|
48
|
-
DECIMALS: {
|
|
49
|
-
ID: 'DECIMALS',
|
|
50
|
-
ROLE: 'DECIMALS'
|
|
51
|
-
},
|
|
52
|
-
SCALE: {
|
|
53
|
-
ID: 'SCALE'
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const V8_SDMX_JSON = "application/vnd.sdmx.data+json;version=1.0.0-wd";
|
|
58
23
|
|
|
59
24
|
export const OBS_TYPE_NUMBER = 'OBS_TYPE_NUMBER';
|
|
60
25
|
export const OBS_TYPE_NUMERICAL_STRING = 'OBS_TYPE_NUMERICAL_STRING';
|
|
@@ -1,22 +1,29 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as R from 'ramda';
|
|
2
|
+
|
|
3
|
+
export const parseDisplay = (display) =>
|
|
4
|
+
(R.isNil(display) || !(R.includes(display, ['both', 'code'])))
|
|
5
|
+
? 'label' : display;
|
|
2
6
|
|
|
3
7
|
export const dimensionValueDisplay =
|
|
4
8
|
(display, accessors = {}) =>
|
|
5
9
|
(dimensionValue) => {
|
|
6
|
-
const id =
|
|
7
|
-
const name =
|
|
10
|
+
const id = R.propOr('', accessors.id || 'id', dimensionValue);
|
|
11
|
+
const name = R.propOr('', accessors.name || 'name', dimensionValue);
|
|
8
12
|
// a non-coded component (dim | attr) has no name, names nor label
|
|
9
13
|
// the only valid thing to display is the id
|
|
10
|
-
if (
|
|
14
|
+
if (R.propOr(false, 'isNonCoded', dimensionValue))
|
|
15
|
+
return id;
|
|
11
16
|
//auto-generated flags have no id nor name
|
|
12
|
-
if (isEmpty(id) && isEmpty(name))
|
|
17
|
+
if (R.isEmpty(id) && R.isEmpty(name))
|
|
18
|
+
return ''
|
|
13
19
|
switch (display) {
|
|
14
20
|
case 'label':
|
|
15
|
-
return isEmpty(name) ? `[${id}]` : name;
|
|
21
|
+
return R.isEmpty(name) ? `[${id}]` : name;
|
|
16
22
|
case 'code':
|
|
17
23
|
return id;
|
|
18
24
|
case 'both':
|
|
19
|
-
if (isNil(id) || isEmpty(id))
|
|
25
|
+
if (R.isNil(id) || R.isEmpty(id))
|
|
26
|
+
return name;
|
|
20
27
|
return `(${id}) ${name}`;
|
|
21
28
|
default:
|
|
22
29
|
return null;
|
|
@@ -24,7 +31,7 @@ export const dimensionValueDisplay =
|
|
|
24
31
|
};
|
|
25
32
|
|
|
26
33
|
export const dimensionValueDisplayAt = (dimension, index, display) => {
|
|
27
|
-
const dimensionValue =
|
|
34
|
+
const dimensionValue = R.pathOr({}, ['values', Number(index)], dimension);
|
|
28
35
|
return dimensionValueDisplay(display)(dimensionValue);
|
|
29
36
|
};
|
|
30
37
|
|
|
@@ -35,20 +42,15 @@ export const categoryDisplay = (
|
|
|
35
42
|
rejectedId,
|
|
36
43
|
display,
|
|
37
44
|
) => {
|
|
38
|
-
return
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
dimension.id !== rejectedId
|
|
45
|
-
) {
|
|
46
|
-
memo.push(
|
|
47
|
-
dimensionValueDisplayAt(dimension, dimensionValueIndex, display),
|
|
48
|
-
);
|
|
45
|
+
return R.pipe(
|
|
46
|
+
R.addIndex(R.reduce)((acc, dimensionValueIndex, dimensionIndex) => {
|
|
47
|
+
const dimension = R.nth(dimensionIndex, dimensions) || {};
|
|
48
|
+
if (R.has(dimension.id, dimensionsWithValuesIndexedById)
|
|
49
|
+
&& dimension.id !== rejectedId) {
|
|
50
|
+
return R.append(dimensionValueDisplayAt(dimension, dimensionValueIndex, display), acc);
|
|
49
51
|
}
|
|
50
|
-
return
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
)
|
|
52
|
+
return acc;
|
|
53
|
+
}, []),
|
|
54
|
+
R.join(' - ')
|
|
55
|
+
)(splitObservationKey);
|
|
54
56
|
};
|