@sis-cc/dotstatsuite-components 22.0.1 → 22.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/bridge-d3-react/src/index.js +18 -0
  2. package/dist/bridge-d3-react/src/index.js.map +1 -0
  3. package/dist/bridge-d3-react/src/react-chart-factory.js +44 -0
  4. package/dist/bridge-d3-react/src/react-chart-factory.js.map +1 -0
  5. package/dist/rules/src/chart/getAxisOptions.js +256 -0
  6. package/dist/rules/src/chart/getAxisOptions.js.map +1 -0
  7. package/dist/rules/src/chart/getBaseOptions.js +77 -0
  8. package/dist/rules/src/chart/getBaseOptions.js.map +1 -0
  9. package/dist/rules/src/chart/getChartOptions.js +120 -0
  10. package/dist/rules/src/chart/getChartOptions.js.map +1 -0
  11. package/dist/rules/src/chart/getGridOptions.js +46 -0
  12. package/dist/rules/src/chart/getGridOptions.js.map +1 -0
  13. package/dist/rules/src/chart/getTooltipOptions.js +223 -0
  14. package/dist/rules/src/chart/getTooltipOptions.js.map +1 -0
  15. package/dist/rules/src/constants.js +65 -0
  16. package/dist/rules/src/constants.js.map +1 -0
  17. package/dist/rules/src/date.js +121 -0
  18. package/dist/rules/src/date.js.map +1 -0
  19. package/dist/rules/src/dimension-utils.js +57 -0
  20. package/dist/rules/src/dimension-utils.js.map +1 -0
  21. package/dist/rules/src/factories/choro-series.js +68 -0
  22. package/dist/rules/src/factories/choro-series.js.map +1 -0
  23. package/dist/rules/src/factories/sample-focus.js +25 -0
  24. package/dist/rules/src/factories/sample-focus.js.map +1 -0
  25. package/dist/rules/src/factories/sample-series.js +53 -0
  26. package/dist/rules/src/factories/sample-series.js.map +1 -0
  27. package/dist/rules/src/factories/scatter-dimension.js +35 -0
  28. package/dist/rules/src/factories/scatter-dimension.js.map +1 -0
  29. package/dist/rules/src/factories/scatter-focus.js +42 -0
  30. package/dist/rules/src/factories/scatter-focus.js.map +1 -0
  31. package/dist/rules/src/factories/scatter-series.js +91 -0
  32. package/dist/rules/src/factories/scatter-series.js.map +1 -0
  33. package/dist/rules/src/factories/stacked-dimension.js +32 -0
  34. package/dist/rules/src/factories/stacked-dimension.js.map +1 -0
  35. package/dist/rules/src/factories/stacked-series.js +188 -0
  36. package/dist/rules/src/factories/stacked-series.js.map +1 -0
  37. package/dist/rules/src/factories/symbol-dimension.js +32 -0
  38. package/dist/rules/src/factories/symbol-dimension.js.map +1 -0
  39. package/dist/rules/src/factories/symbol-series.js +65 -0
  40. package/dist/rules/src/factories/symbol-series.js.map +1 -0
  41. package/dist/rules/src/factories/timeline-focus.js +21 -0
  42. package/dist/rules/src/factories/timeline-focus.js.map +1 -0
  43. package/dist/rules/src/factories/timeline-series.js +94 -0
  44. package/dist/rules/src/factories/timeline-series.js.map +1 -0
  45. package/dist/rules/src/get-values-enhanced.js +133 -0
  46. package/dist/rules/src/get-values-enhanced.js.map +1 -0
  47. package/dist/rules/src/header/getDefaultSubtitle.js +44 -0
  48. package/dist/rules/src/header/getDefaultSubtitle.js.map +1 -0
  49. package/dist/rules/src/header/getHeaderUnits.js +21 -0
  50. package/dist/rules/src/header/getHeaderUnits.js.map +1 -0
  51. package/dist/rules/src/header/getSubtitleFlags.js +47 -0
  52. package/dist/rules/src/header/getSubtitleFlags.js.map +1 -0
  53. package/dist/rules/src/header/getTitleFlags.js +12 -0
  54. package/dist/rules/src/header/getTitleFlags.js.map +1 -0
  55. package/dist/rules/src/index.js +378 -0
  56. package/dist/rules/src/index.js.map +1 -0
  57. package/dist/rules/src/layout.js +107 -0
  58. package/dist/rules/src/layout.js.map +1 -0
  59. package/dist/rules/src/observation-formater.js +86 -0
  60. package/dist/rules/src/observation-formater.js.map +1 -0
  61. package/dist/rules/src/preparators/formatValue.js +96 -0
  62. package/dist/rules/src/preparators/formatValue.js.map +1 -0
  63. package/dist/rules/src/preparators/getObservations.js +22 -0
  64. package/dist/rules/src/preparators/getObservations.js.map +1 -0
  65. package/dist/rules/src/preparators/getReportingYearStart.js +19 -0
  66. package/dist/rules/src/preparators/getReportingYearStart.js.map +1 -0
  67. package/dist/rules/src/properties/errors.js +22 -0
  68. package/dist/rules/src/properties/errors.js.map +1 -0
  69. package/dist/rules/src/properties/focus.js +72 -0
  70. package/dist/rules/src/properties/focus.js.map +1 -0
  71. package/dist/rules/src/properties/getAvailableChartTypes.js +31 -0
  72. package/dist/rules/src/properties/getAvailableChartTypes.js.map +1 -0
  73. package/dist/rules/src/properties/getHeaderProps.js +76 -0
  74. package/dist/rules/src/properties/getHeaderProps.js.map +1 -0
  75. package/dist/rules/src/properties/getInformationsStateFromNewProps.js +50 -0
  76. package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +1 -0
  77. package/dist/rules/src/properties/getObservationsType.js +28 -0
  78. package/dist/rules/src/properties/getObservationsType.js.map +1 -0
  79. package/dist/rules/src/properties/getStringifiedSubtitle.js +9 -0
  80. package/dist/rules/src/properties/getStringifiedSubtitle.js.map +1 -0
  81. package/dist/rules/src/properties/index.js +384 -0
  82. package/dist/rules/src/properties/index.js.map +1 -0
  83. package/dist/rules/src/properties/linear.js +123 -0
  84. package/dist/rules/src/properties/linear.js.map +1 -0
  85. package/dist/rules/src/properties/scatter.js +156 -0
  86. package/dist/rules/src/properties/scatter.js.map +1 -0
  87. package/dist/rules/src/properties/stacked.js +96 -0
  88. package/dist/rules/src/properties/stacked.js.map +1 -0
  89. package/dist/rules/src/properties/symbol.js +76 -0
  90. package/dist/rules/src/properties/symbol.js.map +1 -0
  91. package/dist/rules/src/properties/utils.js +86 -0
  92. package/dist/rules/src/properties/utils.js.map +1 -0
  93. package/dist/rules/src/sdmx-data/index.js +38 -0
  94. package/dist/rules/src/sdmx-data/index.js.map +1 -0
  95. package/dist/rules/src/table/factories/getCellValue.js +53 -0
  96. package/dist/rules/src/table/factories/getCellValue.js.map +1 -0
  97. package/dist/rules/src/v8-transformer.js +174 -0
  98. package/dist/rules/src/v8-transformer.js.map +1 -0
  99. package/dist/rules2/src/applyHierarchicalCodesToDim.js +126 -0
  100. package/dist/rules2/src/applyHierarchicalCodesToDim.js.map +1 -0
  101. package/dist/rules2/src/combinedValuesDisplay.js +77 -0
  102. package/dist/rules2/src/combinedValuesDisplay.js.map +1 -0
  103. package/dist/rules2/src/constants.js +9 -0
  104. package/dist/rules2/src/constants.js.map +1 -0
  105. package/dist/rules2/src/duplicateObservations.js +38 -0
  106. package/dist/rules2/src/duplicateObservations.js.map +1 -0
  107. package/dist/rules2/src/enhanceObservations.js +98 -0
  108. package/dist/rules2/src/enhanceObservations.js.map +1 -0
  109. package/dist/rules2/src/getAttributesSeries.js +39 -0
  110. package/dist/rules2/src/getAttributesSeries.js.map +1 -0
  111. package/dist/rules2/src/getCombinationDefinitions.js +50 -0
  112. package/dist/rules2/src/getCombinationDefinitions.js.map +1 -0
  113. package/dist/rules2/src/getDataflowAttributes.js +25 -0
  114. package/dist/rules2/src/getDataflowAttributes.js.map +1 -0
  115. package/dist/rules2/src/getDataflowTooltipAttributesIds.js +33 -0
  116. package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -0
  117. package/dist/rules2/src/getDimensionValuesIndexes.js +16 -0
  118. package/dist/rules2/src/getDimensionValuesIndexes.js.map +1 -0
  119. package/dist/rules2/src/getHCodelistsRefsInData.js +35 -0
  120. package/dist/rules2/src/getHCodelistsRefsInData.js.map +1 -0
  121. package/dist/rules2/src/getHeaderCombinations.js +51 -0
  122. package/dist/rules2/src/getHeaderCombinations.js.map +1 -0
  123. package/dist/rules2/src/getHeaderCoordinates.js +10 -0
  124. package/dist/rules2/src/getHeaderCoordinates.js.map +1 -0
  125. package/dist/rules2/src/getHeaderSubtitle.js +37 -0
  126. package/dist/rules2/src/getHeaderSubtitle.js.map +1 -0
  127. package/dist/rules2/src/getHeaderTitle.js +18 -0
  128. package/dist/rules2/src/getHeaderTitle.js.map +1 -0
  129. package/dist/rules2/src/getMSDInformations.js +26 -0
  130. package/dist/rules2/src/getMSDInformations.js.map +1 -0
  131. package/dist/rules2/src/getManyValuesDimensions.js +37 -0
  132. package/dist/rules2/src/getManyValuesDimensions.js.map +1 -0
  133. package/dist/rules2/src/getMetadataCoordinates.js +40 -0
  134. package/dist/rules2/src/getMetadataCoordinates.js.map +1 -0
  135. package/dist/rules2/src/getNotDisplayedIds.js +56 -0
  136. package/dist/rules2/src/getNotDisplayedIds.js.map +1 -0
  137. package/dist/rules2/src/getOneValueDimensions.js +37 -0
  138. package/dist/rules2/src/getOneValueDimensions.js.map +1 -0
  139. package/dist/rules2/src/getSeriesCombinations.js +27 -0
  140. package/dist/rules2/src/getSeriesCombinations.js.map +1 -0
  141. package/dist/rules2/src/hasCellMetadata.js +17 -0
  142. package/dist/rules2/src/hasCellMetadata.js.map +1 -0
  143. package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +60 -0
  144. package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js.map +1 -0
  145. package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +38 -0
  146. package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js.map +1 -0
  147. package/dist/rules2/src/index.js +47 -0
  148. package/dist/rules2/src/index.js.map +1 -0
  149. package/dist/rules2/src/parseAttributes.js +44 -0
  150. package/dist/rules2/src/parseAttributes.js.map +1 -0
  151. package/dist/rules2/src/parseCombinations.js +105 -0
  152. package/dist/rules2/src/parseCombinations.js.map +1 -0
  153. package/dist/rules2/src/parseHierarchicalCodelist.js +34 -0
  154. package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -0
  155. package/dist/rules2/src/parseMetadataSeries.js +124 -0
  156. package/dist/rules2/src/parseMetadataSeries.js.map +1 -0
  157. package/dist/rules2/src/prepareData.js +78 -0
  158. package/dist/rules2/src/prepareData.js.map +1 -0
  159. package/dist/rules2/src/refineAttributes.js +19 -0
  160. package/dist/rules2/src/refineAttributes.js.map +1 -0
  161. package/dist/rules2/src/refineDimensions.js +21 -0
  162. package/dist/rules2/src/refineDimensions.js.map +1 -0
  163. package/dist/rules2/src/refineTimePeriod.js +130 -0
  164. package/dist/rules2/src/refineTimePeriod.js.map +1 -0
  165. package/dist/rules2/src/sdmx3.0DataFormatPatch.js +12 -0
  166. package/dist/rules2/src/sdmx3.0DataFormatPatch.js.map +1 -0
  167. package/dist/rules2/src/table/declineObservationsOverAttributes.js +35 -0
  168. package/dist/rules2/src/table/declineObservationsOverAttributes.js.map +1 -0
  169. package/dist/rules2/src/table/getCells.js +96 -0
  170. package/dist/rules2/src/table/getCells.js.map +1 -0
  171. package/dist/rules2/src/table/getCellsAttributesIds.js +41 -0
  172. package/dist/rules2/src/table/getCellsAttributesIds.js.map +1 -0
  173. package/dist/rules2/src/table/getCellsMetadataCoordinates.js +16 -0
  174. package/dist/rules2/src/table/getCellsMetadataCoordinates.js.map +1 -0
  175. package/dist/rules2/src/table/getCuratedCells.js +36 -0
  176. package/dist/rules2/src/table/getCuratedCells.js.map +1 -0
  177. package/dist/rules2/src/table/getFlagsAndNotes.js +26 -0
  178. package/dist/rules2/src/table/getFlagsAndNotes.js.map +1 -0
  179. package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js +19 -0
  180. package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js.map +1 -0
  181. package/dist/rules2/src/table/getLayout.js +87 -0
  182. package/dist/rules2/src/table/getLayout.js.map +1 -0
  183. package/dist/rules2/src/table/getLayoutData2.js +205 -0
  184. package/dist/rules2/src/table/getLayoutData2.js.map +1 -0
  185. package/dist/rules2/src/table/getSortedLayoutIndexes.js +141 -0
  186. package/dist/rules2/src/table/getSortedLayoutIndexes.js.map +1 -0
  187. package/dist/rules2/src/table/getTableLabelAccessor.js +11 -0
  188. package/dist/rules2/src/table/getTableLabelAccessor.js.map +1 -0
  189. package/dist/rules2/src/table/getTableLayoutIds.js +317 -0
  190. package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -0
  191. package/dist/rules2/src/table/getTableProps.js +85 -0
  192. package/dist/rules2/src/table/getTableProps.js.map +1 -0
  193. package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js +82 -0
  194. package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js.map +1 -0
  195. package/dist/rules2/src/table/parseValueHierarchy.js +29 -0
  196. package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -0
  197. package/dist/rules2/src/table/refineLayoutSize2.js +324 -0
  198. package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -0
  199. package/dist/rules2/src/utils.js +29 -0
  200. package/dist/rules2/src/utils.js.map +1 -0
  201. package/dist/viewer/src/chart.js +50 -0
  202. package/dist/viewer/src/chart.js.map +1 -0
  203. package/dist/viewer/src/chartUtils/options.js +33 -0
  204. package/dist/viewer/src/chartUtils/options.js.map +1 -0
  205. package/dist/viewer/src/chartUtils/series.js +54 -0
  206. package/dist/viewer/src/chartUtils/series.js.map +1 -0
  207. package/dist/viewer/src/footer.js +39 -0
  208. package/dist/viewer/src/footer.js.map +1 -0
  209. package/dist/viewer/src/header.js +12 -0
  210. package/dist/viewer/src/header.js.map +1 -0
  211. package/dist/viewer/src/index.js +160 -0
  212. package/dist/viewer/src/index.js.map +1 -0
  213. package/dist/viewer/src/legends/AxisLegend.js +42 -0
  214. package/dist/viewer/src/legends/AxisLegend.js.map +1 -0
  215. package/dist/viewer/src/legends/ChartLegends.js +80 -0
  216. package/dist/viewer/src/legends/ChartLegends.js.map +1 -0
  217. package/dist/viewer/src/legends/FocusLegend.js +67 -0
  218. package/dist/viewer/src/legends/FocusLegend.js.map +1 -0
  219. package/dist/viewer/src/legends/Legend.js +51 -0
  220. package/dist/viewer/src/legends/Legend.js.map +1 -0
  221. package/dist/viewer/src/legends/SeriesLegend.js +77 -0
  222. package/dist/viewer/src/legends/SeriesLegend.js.map +1 -0
  223. package/dist/viewer/src/utils.js +24 -0
  224. package/dist/viewer/src/utils.js.map +1 -0
  225. package/package.json +1 -1
  226. package/src/app.js +13 -0
  227. package/src/bridge-d3-react/README.md +42 -0
  228. package/src/bridge-d3-react/src/app.js +64 -0
  229. package/src/bridge-d3-react/src/index.js +16 -0
  230. package/src/bridge-d3-react/src/mock-choro.js +394 -0
  231. package/src/bridge-d3-react/src/react-chart-factory.jsx +65 -0
  232. package/src/index.js +10 -0
  233. package/src/rules/README.md +23 -0
  234. package/src/rules/src/chart/getAxisOptions.js +263 -0
  235. package/src/rules/src/chart/getBaseOptions.js +84 -0
  236. package/src/rules/src/chart/getChartOptions.js +118 -0
  237. package/src/rules/src/chart/getGridOptions.js +52 -0
  238. package/src/rules/src/chart/getTooltipOptions.js +230 -0
  239. package/src/rules/src/constants.js +64 -0
  240. package/src/rules/src/date.js +118 -0
  241. package/src/rules/src/dimension-utils.js +54 -0
  242. package/src/rules/src/factories/choro-series.js +65 -0
  243. package/src/rules/src/factories/sample-focus.js +22 -0
  244. package/src/rules/src/factories/sample-series.js +50 -0
  245. package/src/rules/src/factories/scatter-dimension.js +32 -0
  246. package/src/rules/src/factories/scatter-focus.js +39 -0
  247. package/src/rules/src/factories/scatter-series.js +92 -0
  248. package/src/rules/src/factories/stacked-dimension.js +29 -0
  249. package/src/rules/src/factories/stacked-series.js +185 -0
  250. package/src/rules/src/factories/symbol-dimension.js +29 -0
  251. package/src/rules/src/factories/symbol-series.js +62 -0
  252. package/src/rules/src/factories/timeline-focus.js +18 -0
  253. package/src/rules/src/factories/timeline-series.js +91 -0
  254. package/src/rules/src/get-values-enhanced.js +134 -0
  255. package/src/rules/src/header/getDefaultSubtitle.js +40 -0
  256. package/src/rules/src/header/getHeaderUnits.js +17 -0
  257. package/src/rules/src/header/getSubtitleFlags.js +43 -0
  258. package/src/rules/src/header/getTitleFlags.js +8 -0
  259. package/src/rules/src/header/index.js +4 -0
  260. package/src/rules/src/index.js +398 -0
  261. package/src/rules/src/layout.js +113 -0
  262. package/src/rules/src/observation-formater.js +83 -0
  263. package/src/rules/src/preparators/enhanceObservations.js +152 -0
  264. package/src/rules/src/preparators/formatValue.js +93 -0
  265. package/src/rules/src/preparators/getObservations.js +19 -0
  266. package/src/rules/src/preparators/getReportingYearStart.js +16 -0
  267. package/src/rules/src/properties/errors.js +19 -0
  268. package/src/rules/src/properties/focus.js +69 -0
  269. package/src/rules/src/properties/getAvailableChartTypes.js +34 -0
  270. package/src/rules/src/properties/getHeaderProps.js +74 -0
  271. package/src/rules/src/properties/getInformationsStateFromNewProps.js +47 -0
  272. package/src/rules/src/properties/getObservationsType.js +29 -0
  273. package/src/rules/src/properties/getStringifiedSubtitle.js +6 -0
  274. package/src/rules/src/properties/index.js +424 -0
  275. package/src/rules/src/properties/information.js +84 -0
  276. package/src/rules/src/properties/linear.js +129 -0
  277. package/src/rules/src/properties/scatter.js +158 -0
  278. package/src/rules/src/properties/stacked.js +98 -0
  279. package/src/rules/src/properties/symbol.js +79 -0
  280. package/src/rules/src/properties/utils.js +110 -0
  281. package/src/rules/src/sdmx-data/index.js +39 -0
  282. package/src/rules/src/table/factories/getCellValue.js +50 -0
  283. package/src/rules/src/table/index.js +1 -0
  284. package/src/rules/src/v8-transformer.js +177 -0
  285. package/src/rules2/src/applyHierarchicalCodesToDim.js +123 -0
  286. package/src/rules2/src/combinedValuesDisplay.js +74 -0
  287. package/src/rules2/src/constants.js +6 -0
  288. package/src/rules2/src/duplicateObservations.js +35 -0
  289. package/src/rules2/src/enhanceObservations.js +95 -0
  290. package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +29 -0
  291. package/src/rules2/src/getAttributesSeries.js +36 -0
  292. package/src/rules2/src/getCombinationDefinitions.js +47 -0
  293. package/src/rules2/src/getDataflowAttributes.js +23 -0
  294. package/src/rules2/src/getDataflowTooltipAttributesIds.js +31 -0
  295. package/src/rules2/src/getDimensionValuesIndexes.js +13 -0
  296. package/src/rules2/src/getHCodelistsRefsInData.js +32 -0
  297. package/src/rules2/src/getHeaderCombinations.js +48 -0
  298. package/src/rules2/src/getHeaderCoordinates.js +7 -0
  299. package/src/rules2/src/getHeaderSubtitle.js +34 -0
  300. package/src/rules2/src/getHeaderTitle.js +15 -0
  301. package/src/rules2/src/getMSDInformations.js +23 -0
  302. package/src/rules2/src/getManyValuesDimensions.js +34 -0
  303. package/src/rules2/src/getMetadataCoordinates.js +37 -0
  304. package/src/rules2/src/getMetadataStructureFromData.js +17 -0
  305. package/src/rules2/src/getNotDisplayedIds.js +53 -0
  306. package/src/rules2/src/getOneValueDimensions.js +34 -0
  307. package/src/rules2/src/getSeriesCombinations.js +24 -0
  308. package/src/rules2/src/hasCellMetadata.js +14 -0
  309. package/src/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +57 -0
  310. package/src/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +35 -0
  311. package/src/rules2/src/index.js +50 -0
  312. package/src/rules2/src/parseAttributes.js +41 -0
  313. package/src/rules2/src/parseCombinations.js +102 -0
  314. package/src/rules2/src/parseHierarchicalCodelist.js +48 -0
  315. package/src/rules2/src/parseMetadataSeries.js +121 -0
  316. package/src/rules2/src/prepareData.js +75 -0
  317. package/src/rules2/src/refineAttributes.js +16 -0
  318. package/src/rules2/src/refineDimensions.js +18 -0
  319. package/src/rules2/src/refineMetadataCoordinates.js +28 -0
  320. package/src/rules2/src/refineTimePeriod.js +127 -0
  321. package/src/rules2/src/sdmx3.0DataFormatPatch.js +9 -0
  322. package/src/rules2/src/table/declineObservationsOverAttributes.js +32 -0
  323. package/src/rules2/src/table/getCells.js +93 -0
  324. package/src/rules2/src/table/getCellsAttributesIds.js +38 -0
  325. package/src/rules2/src/table/getCellsMetadataCoordinates.js +13 -0
  326. package/src/rules2/src/table/getCombinationDimensionsData.js +39 -0
  327. package/src/rules2/src/table/getCuratedCells.js +33 -0
  328. package/src/rules2/src/table/getFlagsAndNotes.js +23 -0
  329. package/src/rules2/src/table/getIndexedCombinationsByDisplay.js +16 -0
  330. package/src/rules2/src/table/getLayout.js +84 -0
  331. package/src/rules2/src/table/getLayoutData2.js +202 -0
  332. package/src/rules2/src/table/getSortedLayoutIndexes.js +138 -0
  333. package/src/rules2/src/table/getTableLabelAccessor.js +9 -0
  334. package/src/rules2/src/table/getTableLayoutIds.js +314 -0
  335. package/src/rules2/src/table/getTableProps.js +82 -0
  336. package/src/rules2/src/table/parseSeriesIndexesHierarchies.js +79 -0
  337. package/src/rules2/src/table/parseValueHierarchy.js +33 -0
  338. package/src/rules2/src/table/refineLayoutSize2.js +321 -0
  339. package/src/rules2/src/utils.js +37 -0
  340. package/src/viewer/mocks/bar.js +33 -0
  341. package/src/viewer/mocks/gpp-symbol.js +93 -0
  342. package/src/viewer/mocks/gpp-time.js +1103 -0
  343. package/src/viewer/mocks/row.js +39 -0
  344. package/src/viewer/mocks/scatter.js +93 -0
  345. package/src/viewer/mocks/stack.js +161 -0
  346. package/src/viewer/src/app/leg.js +36 -0
  347. package/src/viewer/src/app/nodata-res.js +22 -0
  348. package/src/viewer/src/app/nodata-sized.js +23 -0
  349. package/src/viewer/src/app/one-table-cell.js +70 -0
  350. package/src/viewer/src/app/table.js +423 -0
  351. package/src/viewer/src/app/use-case-1.js +33 -0
  352. package/src/viewer/src/app/use-case-2.js +38 -0
  353. package/src/viewer/src/app/use-case-3.js +18 -0
  354. package/src/viewer/src/app.js +116 -0
  355. package/src/viewer/src/chart.jsx +52 -0
  356. package/src/viewer/src/chartUtils/options.js +30 -0
  357. package/src/viewer/src/chartUtils/series.js +51 -0
  358. package/src/viewer/src/footer.jsx +23 -0
  359. package/src/viewer/src/header.jsx +10 -0
  360. package/src/viewer/src/index.jsx +158 -0
  361. package/src/viewer/src/legends/AxisLegend.jsx +41 -0
  362. package/src/viewer/src/legends/ChartLegends.jsx +66 -0
  363. package/src/viewer/src/legends/FocusLegend.jsx +63 -0
  364. package/src/viewer/src/legends/Legend.jsx +46 -0
  365. package/src/viewer/src/legends/SeriesLegend.jsx +78 -0
  366. package/src/viewer/src/utils.js +21 -0
@@ -0,0 +1,78 @@
1
+ import * as R from 'ramda';
2
+ import { refineDimensions } from './refineDimensions.js';
3
+ import { enhanceObservations } from './enhanceObservations.js';
4
+ import { parseAttributes } from './parseAttributes.js';
5
+ import { getCombinationDefinitions, parseCombinationDefinition } from './getCombinationDefinitions.js';
6
+ import { parseCombinations } from './parseCombinations.js';
7
+ import { refineAttributes } from './refineAttributes.js';
8
+ import { duplicateObs } from './duplicateObservations.js';
9
+ import { getMetadataCoordinates } from './getMetadataCoordinates.js';
10
+ import { getAttributesSeries } from './getAttributesSeries.js';
11
+ import { getManyValuesDimensions } from './getManyValuesDimensions.js';
12
+ import { getOneValueDimensions } from './getOneValueDimensions.js';
13
+ import { hierarchiseDimensionWithNativeHierarchy } from './hierarchiseDimensionWithNativeHierarchy2.js';
14
+ import { getDataflowAttributes } from './getDataflowAttributes.js';
15
+ import { getHeaderTitle } from './getHeaderTitle.js';
16
+ import { getHeaderSubtitle } from './getHeaderSubtitle.js';
17
+ import { getHeaderCombinations } from './getHeaderCombinations.js';
18
+ import { getHeaderCoordinates } from './getHeaderCoordinates.js';
19
+ import { applyHierarchicalCodesToDim } from './applyHierarchicalCodesToDim.js';
20
+ import { getObservations } from '../../rules/src/preparators/getObservations.js';
21
+
22
+ const prepareData = (sdmxJson, { customAttributes, locale, hierarchies, dataflow, display, defaultCombinations, dataquery }) => {
23
+ const dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], sdmxJson);
24
+ const refinedDimensions = refineDimensions(dimensions, dataquery);
25
+ const attributes = R.pathOr([], ['data', 'structure', 'attributes', 'observation'], sdmxJson);
26
+ const annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);
27
+ const observations = getObservations(sdmxJson);
28
+ let combinations = getCombinationDefinitions(annotations, locale);
29
+ if (R.isEmpty(combinations) && !R.isEmpty(defaultCombinations)) {
30
+ const { concepts, names } = defaultCombinations;
31
+ combinations = parseCombinationDefinition(locale)(concepts, names);
32
+ }
33
+ const metadataCoordinates = getMetadataCoordinates(sdmxJson);
34
+
35
+ const parsedAttributes = parseAttributes(attributes, refinedDimensions, customAttributes);
36
+ const parsedCombinations = parseCombinations(combinations, parsedAttributes, refinedDimensions);
37
+ const seriesCombinations = R.filter(R.prop('series'), parsedCombinations);
38
+ const refinedAttributes = refineAttributes(parsedAttributes, seriesCombinations);
39
+
40
+ const enhancedObservations = enhanceObservations(refinedDimensions, observations, refinedAttributes, { customAttributes });
41
+ const attributesSeries = getAttributesSeries(enhancedObservations);
42
+ const manyValuesDimensions = getManyValuesDimensions(refinedDimensions, attributesSeries, customAttributes, seriesCombinations);
43
+ const oneValueDimensions = getOneValueDimensions(refinedDimensions, parsedAttributes);
44
+ const rejectedDimensions = R.filter(R.prop('rejected', dimensions));
45
+ const headerCoordinates = getHeaderCoordinates(oneValueDimensions);
46
+ const hierarchisedDimensions = R.map(dim => {
47
+ if (R.isEmpty(R.propOr({}, dim.id, hierarchies))) {
48
+ return hierarchiseDimensionWithNativeHierarchy(dim);
49
+ }
50
+ return applyHierarchicalCodesToDim(R.prop(dim.id, hierarchies), dim);
51
+ }, manyValuesDimensions);
52
+ const duplicatedObservations = duplicateObs(R.values(hierarchisedDimensions), enhancedObservations);
53
+
54
+ const dataflowAttributes = getDataflowAttributes(parsedAttributes, parsedCombinations);
55
+ const headerTitle = getHeaderTitle(dataflow, dataflowAttributes, display, customAttributes);
56
+ const headerSubtitle = getHeaderSubtitle(oneValueDimensions, parsedCombinations, customAttributes, display);
57
+ const headerCombinations = getHeaderCombinations(parsedCombinations, oneValueDimensions, refinedAttributes, display);
58
+
59
+ return ({
60
+ observations: duplicatedObservations,
61
+ dimensions: hierarchisedDimensions,
62
+ combinations: parsedCombinations,
63
+ oneValueDimensions,
64
+ attributesSeries,
65
+ metadataCoordinates,
66
+ attributes: refinedAttributes,
67
+ rejectedDimensions,
68
+ header: {
69
+ title: headerTitle,
70
+ subtitle: headerSubtitle,
71
+ combinations: headerCombinations,
72
+ coordinates: headerCoordinates
73
+ }
74
+ });
75
+ };
76
+
77
+ export { prepareData };
78
+ //# sourceMappingURL=prepareData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareData.js","sources":["../../../src/rules2/src/prepareData.js"],"sourcesContent":["import * as R from 'ramda';\nimport { getObservations } from '../../rules/src';\nimport { refineDimensions } from './refineDimensions';\nimport { enhanceObservations } from './enhanceObservations';\nimport { parseAttributes } from './parseAttributes';\nimport { getCombinationDefinitions, parseCombinationDefinition } from './getCombinationDefinitions';\nimport { parseCombinations } from './parseCombinations';\nimport { refineAttributes } from './refineAttributes';\nimport { duplicateObs } from './duplicateObservations';\nimport { getMetadataCoordinates } from './getMetadataCoordinates';\nimport { getAttributesSeries } from './getAttributesSeries';\nimport { getManyValuesDimensions } from './getManyValuesDimensions';\nimport { getOneValueDimensions } from './getOneValueDimensions';\nimport { hierarchiseDimensionWithNativeHierarchy } from './hierarchiseDimensionWithNativeHierarchy2';\nimport { getDataflowAttributes } from './getDataflowAttributes';\nimport { getHeaderTitle } from './getHeaderTitle';\nimport { getHeaderSubtitle } from './getHeaderSubtitle';\nimport { getHeaderCombinations } from './getHeaderCombinations';\nimport { getHeaderCoordinates } from './getHeaderCoordinates';\nimport { applyHierarchicalCodesToDim } from './applyHierarchicalCodesToDim';\n\nexport const prepareData = (sdmxJson, { customAttributes, locale, hierarchies, dataflow, display, defaultCombinations, dataquery }) => {\n const dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], sdmxJson);\n const refinedDimensions = refineDimensions(dimensions, dataquery);\n const attributes = R.pathOr([], ['data', 'structure', 'attributes', 'observation'], sdmxJson);\n const annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);\n const observations = getObservations(sdmxJson);\n let combinations = getCombinationDefinitions(annotations, locale);\n if (R.isEmpty(combinations) && !R.isEmpty(defaultCombinations)) {\n const { concepts, names } = defaultCombinations;\n combinations = parseCombinationDefinition(locale)(concepts, names);\n }\n const metadataCoordinates = getMetadataCoordinates(sdmxJson);\n\n const parsedAttributes = parseAttributes(attributes, refinedDimensions, customAttributes);\n const parsedCombinations = parseCombinations(combinations, parsedAttributes, refinedDimensions);\n const seriesCombinations = R.filter(R.prop('series'), parsedCombinations);\n const refinedAttributes = refineAttributes(parsedAttributes, seriesCombinations);\n\n const enhancedObservations = enhanceObservations(refinedDimensions, observations, refinedAttributes, { customAttributes });\n const attributesSeries = getAttributesSeries(enhancedObservations);\n const manyValuesDimensions = getManyValuesDimensions(refinedDimensions, attributesSeries, customAttributes, seriesCombinations);\n const oneValueDimensions = getOneValueDimensions(refinedDimensions, parsedAttributes);\n const rejectedDimensions = R.filter(R.prop('rejected', dimensions));\n const headerCoordinates = getHeaderCoordinates(oneValueDimensions);\n const hierarchisedDimensions = R.map(dim => {\n if (R.isEmpty(R.propOr({}, dim.id, hierarchies))) {\n return hierarchiseDimensionWithNativeHierarchy(dim);\n }\n return applyHierarchicalCodesToDim(R.prop(dim.id, hierarchies), dim);\n }, manyValuesDimensions)\n const duplicatedObservations = duplicateObs(R.values(hierarchisedDimensions), enhancedObservations);\n\n const dataflowAttributes = getDataflowAttributes(parsedAttributes, parsedCombinations);\n const headerTitle = getHeaderTitle(dataflow, dataflowAttributes, display, customAttributes);\n const headerSubtitle = getHeaderSubtitle(oneValueDimensions, parsedCombinations, customAttributes, display);\n const headerCombinations = getHeaderCombinations(parsedCombinations, oneValueDimensions, refinedAttributes, display);\n \n return ({\n observations: duplicatedObservations,\n dimensions: hierarchisedDimensions,\n combinations: parsedCombinations,\n oneValueDimensions,\n attributesSeries,\n metadataCoordinates,\n attributes: refinedAttributes,\n rejectedDimensions,\n header: {\n title: headerTitle,\n subtitle: headerSubtitle,\n combinations: headerCombinations,\n coordinates: headerCoordinates\n }\n });\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as R from 'ramda';
2
+
3
+ const refineAttributes = (parsedAttributes, seriesCombinations) => {
4
+ const indexedRelationships = R.reduce(
5
+ (acc, comb) =>
6
+ R.reduce((_acc, concept) => R.assoc(concept, comb.relationship, _acc), acc, comb.concepts),
7
+ {},
8
+ seriesCombinations,
9
+ );
10
+ return R.map(attr => {
11
+ if (R.has(attr.id, indexedRelationships)) {
12
+ return { ...attr, series: true, relationship: R.prop(attr.id, indexedRelationships), combined: true };
13
+ }
14
+ return attr;
15
+ }, parsedAttributes);
16
+ };
17
+
18
+ export { refineAttributes };
19
+ //# sourceMappingURL=refineAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refineAttributes.js","sources":["../../../src/rules2/src/refineAttributes.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const refineAttributes = (parsedAttributes, seriesCombinations) => {\n const indexedRelationships = R.reduce(\n (acc, comb) =>\n R.reduce((_acc, concept) => R.assoc(concept, comb.relationship, _acc), acc, comb.concepts),\n {},\n seriesCombinations,\n );\n return R.map(attr => {\n if (R.has(attr.id, indexedRelationships)) {\n return { ...attr, series: true, relationship: R.prop(attr.id, indexedRelationships), combined: true };\n }\n return attr;\n }, parsedAttributes);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,KAAK;AAC1E,EAAE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM;AACvC,IAAI,CAAC,GAAG,EAAE,IAAI;AACd,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;AAChG,IAAI,EAAE;AACN,IAAI,kBAAkB;AACtB,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI;AACvB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,EAAE;AAC9C,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3G,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE,CAAC,EAAE,gBAAgB,CAAC;AACtB;;;;"}
@@ -0,0 +1,21 @@
1
+ import * as R from 'ramda';
2
+
3
+ const refineDimensions = (dimensions=[], dataquery='') => {
4
+ const selectionIds = R.pipe(R.split('.'), R.map(R.split('+')))(dataquery);
5
+
6
+ return R.addIndex(R.map)((dim, index) => {
7
+ const selection = R.nth(index, selectionIds);
8
+ const values = R.map(val => {
9
+ if (R.includes(val.id, selection || []) || R.isNil(selection) || R.length(selection) === 0 || R.isEmpty(R.head(selection))) {
10
+ return R.assoc('isSelected', true, val);
11
+ }
12
+ return R.assoc('empty', true, val);
13
+ }, dim.values || []);
14
+
15
+ const size = R.length(values);
16
+ return { ...dim, values, header: size === 1 || (size > 1 && R.length(selection) === 1 && !R.isEmpty(R.head(selection))) };
17
+ }, dimensions);
18
+ };
19
+
20
+ export { refineDimensions };
21
+ //# sourceMappingURL=refineDimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refineDimensions.js","sources":["../../../src/rules2/src/refineDimensions.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const refineDimensions = (dimensions=[], dataquery='') => {\n const selectionIds = R.pipe(R.split('.'), R.map(R.split('+')))(dataquery);\n\n return R.addIndex(R.map)((dim, index) => {\n const selection = R.nth(index, selectionIds);\n const values = R.map(val => {\n if (R.includes(val.id, selection || []) || R.isNil(selection) || R.length(selection) === 0 || R.isEmpty(R.head(selection))) {\n return R.assoc('isSelected', true, val);\n }\n return R.assoc('empty', true, val);\n }, dim.values || []);\n\n const size = R.length(values);\n return { ...dim, values, header: size === 1 || (size > 1 && R.length(selection) === 1 && !R.isEmpty(R.head(selection))) };\n }, dimensions);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,gBAAgB,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK;AACjE,EAAE,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;;AAE3E,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK;AAC3C,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;AAChD,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;AAChC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;AAClI,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC;AAC/C,MAAM;AACN,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;;AAExB,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AAC7H,EAAE,CAAC,EAAE,UAAU,CAAC;AAChB;;;;"}
@@ -0,0 +1,130 @@
1
+ import * as R from 'ramda';
2
+ import * as dateFns from 'date-fns';
3
+ import { dateWithoutTZ, getLocale } from '../../rules/src/date.js';
4
+
5
+ const computeDisplayFreq = (start, duration) => {
6
+ const startMinute = dateFns.startOfMinute(start);
7
+ const startHour = dateFns.startOfHour(start);
8
+ const startDay = dateFns.startOfDay(start);
9
+ if (!dateFns.isEqual(start, startMinute) || duration === 'S') {
10
+ return 'S';
11
+ }
12
+ else if (!dateFns.isEqual(start, startHour) || !dateFns.isEqual(start, startDay)
13
+ || duration === 'H' || duration === 'm') {
14
+ return 'm';
15
+ }
16
+ else if (!dateFns.isFirstDayOfMonth(start) || duration === 'D') {
17
+ return 'D';
18
+ }
19
+ else if (dateFns.getMonth(start) !== 0 || duration === 'M') {
20
+ return 'M';
21
+ }
22
+ return 'Y';
23
+ };
24
+
25
+ const getAdder = (duration) => {
26
+ if (duration === 'S')
27
+ return dateFns.addSeconds;
28
+ if (duration === 'm')
29
+ return dateFns.addMinutes;
30
+ if (duration === 'H')
31
+ return dateFns.addHours;
32
+ if (duration === 'D')
33
+ return dateFns.addDays;
34
+ if (duration === 'M')
35
+ return dateFns.addMonths;
36
+ return dateFns.addYears;
37
+ };
38
+
39
+ const getFormat = (freqDisplay) => {
40
+ if (freqDisplay === 'Y')
41
+ return 'YYYY';
42
+ if (freqDisplay === 'D')
43
+ return 'YYYY-MM-DD';
44
+ if (freqDisplay === 'H' || freqDisplay === 'm') {
45
+ return 'HH:mm';
46
+ }
47
+ if (freqDisplay === 'S') {
48
+ return 'HH:mm:ss';
49
+ }
50
+ return 'YYYY-MMM';
51
+ };
52
+
53
+ const getEndDate = (start, mult, duration) => {
54
+ const adder = getAdder(duration);
55
+ const endDate = adder(start, Number(mult));
56
+ return dateFns.subSeconds(endDate, 1);
57
+ };
58
+
59
+ const computeName = (start, end, freqDisplay, locale, format) => {
60
+ const opts = { locale: getLocale(locale) };
61
+ const isSameDay = dateFns.isSameDay(start, end);
62
+ const isSameYear = dateFns.isSameYear(start, end);
63
+ if (freqDisplay === 'H' || freqDisplay === 'm' || freqDisplay === 'S') {
64
+ const dayFormat = getFormat('D');
65
+ if (isSameDay)
66
+ return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
67
+ return `${dateFns.format(start, `${dayFormat} ${format}`, opts)} - ${dateFns.format(end, `${dayFormat} ${format}`, opts)}`;
68
+ }
69
+ if (freqDisplay !== 'M') {
70
+ return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
71
+ }
72
+
73
+ if (isSameYear && !R.includes('-', format)) {
74
+ const yearFormatMatch = R.match(/([Y]+)/, format);
75
+ const monthFormatMatch = R.match(/([M]+|Mo)/, format);
76
+ const yearFormat = R.length(yearFormatMatch) >= 2 ? R.nth(1, yearFormatMatch) : null;
77
+ const monthFormat = R.length(monthFormatMatch) >= 2 ? R.nth(1, monthFormatMatch) : null;
78
+ const formattedYear = yearFormat ? dateFns.format(start, yearFormat, opts) : null;
79
+ const formattedMonths = monthFormat ? `${dateFns.format(start, monthFormat, opts)} - ${dateFns.format(end, monthFormat, opts)}` : null;
80
+ if (monthFormat) {
81
+ return R.pipe(
82
+ format => yearFormat ? R.replace(yearFormat, formattedYear, format) : format,
83
+ R.replace(monthFormat, formattedMonths)
84
+ )(format);
85
+ }
86
+ }
87
+ return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;
88
+ };
89
+
90
+ const getStartDate = (start) => {
91
+ if (!R.includes('T', start) && !R.endsWith('Z', start)) {
92
+ return dateWithoutTZ(new Date(start));
93
+ }
94
+ return new Date(start);
95
+ };
96
+
97
+ const dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());
98
+
99
+ const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM' }) => {
100
+ const { id } = timePeriod;
101
+ const split = R.split('/', id);
102
+ if (R.length(split) !== 2) {
103
+ const start = getStartDate(R.prop('start', timePeriod));
104
+ const end = getStartDate(R.prop('end', timePeriod));
105
+ return ({ ...timePeriod, start: dateWithTZ(start).toISOString(), end: dateWithTZ(end).toISOString() });
106
+ }
107
+ const [start, range] = split;
108
+ const startDate = getStartDate(start);
109
+ const match = R.match(/^P(T?)(\d+)([YMDHS])$/, range);
110
+ if (R.isEmpty(match) || !dateFns.isValid(startDate)) {
111
+ return timePeriod;
112
+ }
113
+ const [timeIndicator, mult, _duration] = R.tail(match);
114
+ const duration = !R.isEmpty(timeIndicator) && _duration === 'M' ? 'm' : _duration;
115
+ const endDate = getEndDate(startDate, mult, duration);
116
+ const freqDisplay = computeDisplayFreq(start, duration);
117
+ const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);
118
+ const name = computeName(startDate, endDate, freqDisplay, locale, format);
119
+
120
+ return ({
121
+ ...timePeriod,
122
+ id,
123
+ name,
124
+ start: dateWithTZ(startDate).toISOString(),
125
+ end: dateWithTZ(endDate).toISOString()
126
+ })
127
+ };
128
+
129
+ export { getStartDate, refineTimePeriod };
130
+ //# sourceMappingURL=refineTimePeriod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refineTimePeriod.js","sources":["../../../src/rules2/src/refineTimePeriod.js"],"sourcesContent":["import * as R from 'ramda';\nimport * as dateFns from 'date-fns';\nimport { getLocale, dateWithoutTZ } from '../../rules/src/date';\n\nconst computeDisplayFreq = (start, duration) => {\n const startMinute = dateFns.startOfMinute(start);\n const startHour = dateFns.startOfHour(start);\n const startDay = dateFns.startOfDay(start);\n if (!dateFns.isEqual(start, startMinute) || duration === 'S') {\n return 'S';\n }\n else if (!dateFns.isEqual(start, startHour) || !dateFns.isEqual(start, startDay)\n || duration === 'H' || duration === 'm') {\n return 'm';\n }\n else if (!dateFns.isFirstDayOfMonth(start) || duration === 'D') {\n return 'D';\n }\n else if (dateFns.getMonth(start) !== 0 || duration === 'M') {\n return 'M';\n }\n return 'Y';\n};\n\nconst getAdder = (duration) => {\n if (duration === 'S')\n return dateFns.addSeconds;\n if (duration === 'm')\n return dateFns.addMinutes;\n if (duration === 'H')\n return dateFns.addHours;\n if (duration === 'D')\n return dateFns.addDays;\n if (duration === 'M')\n return dateFns.addMonths;\n return dateFns.addYears;\n};\n\nconst getFormat = (freqDisplay) => {\n if (freqDisplay === 'Y')\n return 'YYYY';\n if (freqDisplay === 'D')\n return 'YYYY-MM-DD';\n if (freqDisplay === 'H' || freqDisplay === 'm') {\n return 'HH:mm';\n }\n if (freqDisplay === 'S') {\n return 'HH:mm:ss';\n }\n return 'YYYY-MMM';\n}\n\nconst getEndDate = (start, mult, duration) => {\n const adder = getAdder(duration);\n const endDate = adder(start, Number(mult));\n return dateFns.subSeconds(endDate, 1);\n};\n\nconst computeName = (start, end, freqDisplay, locale, format) => {\n const opts = { locale: getLocale(locale) };\n const isSameDay = dateFns.isSameDay(start, end);\n const isSameYear = dateFns.isSameYear(start, end);\n if (freqDisplay === 'H' || freqDisplay === 'm' || freqDisplay === 'S') {\n const dayFormat = getFormat('D');\n if (isSameDay)\n return `${dateFns.format(start, dayFormat, opts)} ${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n return `${dateFns.format(start, `${dayFormat} ${format}`, opts)} - ${dateFns.format(end, `${dayFormat} ${format}`, opts)}`;\n }\n if (freqDisplay !== 'M') {\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n }\n\n if (isSameYear && !R.includes('-', format)) {\n const yearFormatMatch = R.match(/([Y]+)/, format);\n const monthFormatMatch = R.match(/([M]+|Mo)/, format);\n const yearFormat = R.length(yearFormatMatch) >= 2 ? R.nth(1, yearFormatMatch) : null;\n const monthFormat = R.length(monthFormatMatch) >= 2 ? R.nth(1, monthFormatMatch) : null;\n const formattedYear = yearFormat ? dateFns.format(start, yearFormat, opts) : null;\n const formattedMonths = monthFormat ? `${dateFns.format(start, monthFormat, opts)} - ${dateFns.format(end, monthFormat, opts)}` : null;\n if (monthFormat) {\n return R.pipe(\n format => yearFormat ? R.replace(yearFormat, formattedYear, format) : format,\n R.replace(monthFormat, formattedMonths)\n )(format);\n }\n }\n return `${dateFns.format(start, format, opts)} - ${dateFns.format(end, format, opts)}`;\n};\n\nexport const getStartDate = (start) => {\n if (!R.includes('T', start) && !R.endsWith('Z', start)) {\n return dateWithoutTZ(new Date(start));\n }\n return new Date(start);\n};\n\nconst dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());\n\nexport const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM' }) => {\n const { id } = timePeriod;\n const split = R.split('/', id);\n if (R.length(split) !== 2) {\n const start = getStartDate(R.prop('start', timePeriod));\n const end = getStartDate(R.prop('end', timePeriod))\n return ({ ...timePeriod, start: dateWithTZ(start).toISOString(), end: dateWithTZ(end).toISOString() });\n }\n const [start, range] = split;\n const startDate = getStartDate(start);\n const match = R.match(/^P(T?)(\\d+)([YMDHS])$/, range);\n if (R.isEmpty(match) || !dateFns.isValid(startDate)) {\n return timePeriod;\n }\n const [timeIndicator, mult, _duration] = R.tail(match);\n const duration = !R.isEmpty(timeIndicator) && _duration === 'M' ? 'm' : _duration;\n const endDate = getEndDate(startDate, mult, duration);\n const freqDisplay = computeDisplayFreq(start, duration);\n const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);\n const name = computeName(startDate, endDate, freqDisplay, locale, format);\n\n return ({\n ...timePeriod,\n id,\n name,\n start: dateWithTZ(startDate).toISOString(),\n end: dateWithTZ(endDate).toISOString()\n })\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as R from 'ramda';
2
+
3
+ const sdmx_3_0_DataFormatPatch = (sdmxJson) => {
4
+ const dataSet = R.pipe(R.pathOr({}, ['data', 'dataSets']), R.head)(sdmxJson);
5
+ const structureIndex = R.prop('structure', dataSet);
6
+ const structure = R.pipe(R.pathOr([], ['data', 'structures']), R.nth(structureIndex))(sdmxJson);
7
+
8
+ return R.set(R.lensPath(['data', 'structure']), structure)(sdmxJson);
9
+ };
10
+
11
+ export { sdmx_3_0_DataFormatPatch };
12
+ //# sourceMappingURL=sdmx3.0DataFormatPatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdmx3.0DataFormatPatch.js","sources":["../../../src/rules2/src/sdmx3.0DataFormatPatch.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const sdmx_3_0_DataFormatPatch = (sdmxJson) => {\n const dataSet = R.pipe(R.pathOr({}, ['data', 'dataSets']), R.head)(sdmxJson);\n const structureIndex = R.prop('structure', dataSet);\n const structure = R.pipe(R.pathOr([], ['data', 'structures']), R.nth(structureIndex))(sdmxJson);\n\n return R.set(R.lensPath(['data', 'structure']), structure)(sdmxJson);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,wBAAwB,GAAG,CAAC,QAAQ,KAAK;AACtD,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AAC9E,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;AACrD,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;;AAEjG,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC;AACtE;;;;"}
@@ -0,0 +1,35 @@
1
+ import * as R from 'ramda';
2
+
3
+ const declineObservationsOverAttributes = (attrsIds, observations) => {
4
+ const obsKeys = R.keys(observations);
5
+ return R.reduce((acc, obsKey) => {
6
+ const obs = R.prop(obsKey, observations);
7
+ const enhancedObs = R.pipe(
8
+ R.over(R.lensProp('orderedDimIndexes'), R.append(0)),
9
+ R.over(R.lensProp('attributes'), R.omit(attrsIds)),
10
+ R.assocPath(['indexedDimValIds', 'OBS_ATTRIBUTES'], 'OBS_VALUE')
11
+ )(obs);
12
+ return R.addIndex(R.reduce)((_acc, attrId, attrIndex) => {
13
+ const attr = R.pathOr({}, ['attributes', attrId], obs);
14
+ if (R.isEmpty(attr) || R.isNil(R.prop('value', attr)) || !R.pathOr(true, ['value', 'display'], attr)) {
15
+ return _acc;
16
+ }
17
+ const declinedKey = `${obsKey}:${attrIndex+1}`;
18
+ const declined = {
19
+ ...obs,
20
+ attributes: {},
21
+ value: R.prop('value', attr),
22
+ formattedValue: R.prop('value', attr),
23
+ orderedDimIndexes: R.append(attrIndex+1, obs.orderedDimIndexes),
24
+ indexedDimValIds: {
25
+ ...obs.indexedDimValIds,
26
+ OBS_ATTRIBUTES: attr.id
27
+ }
28
+ };
29
+ return R.assoc(declinedKey, declined, _acc);
30
+ }, R.assoc(`${obsKey}:0`, enhancedObs, acc), attrsIds);
31
+ }, {}, obsKeys);
32
+ };
33
+
34
+ export { declineObservationsOverAttributes };
35
+ //# sourceMappingURL=declineObservationsOverAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declineObservationsOverAttributes.js","sources":["../../../../src/rules2/src/table/declineObservationsOverAttributes.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const declineObservationsOverAttributes = (attrsIds, observations) => {\n const obsKeys = R.keys(observations);\n return R.reduce((acc, obsKey) => {\n const obs = R.prop(obsKey, observations);\n const enhancedObs = R.pipe(\n R.over(R.lensProp('orderedDimIndexes'), R.append(0)),\n R.over(R.lensProp('attributes'), R.omit(attrsIds)),\n R.assocPath(['indexedDimValIds', 'OBS_ATTRIBUTES'], 'OBS_VALUE')\n )(obs);\n return R.addIndex(R.reduce)((_acc, attrId, attrIndex) => {\n const attr = R.pathOr({}, ['attributes', attrId], obs);\n if (R.isEmpty(attr) || R.isNil(R.prop('value', attr)) || !R.pathOr(true, ['value', 'display'], attr)) {\n return _acc;\n }\n const declinedKey = `${obsKey}:${attrIndex+1}`;\n const declined = {\n ...obs,\n attributes: {},\n value: R.prop('value', attr),\n formattedValue: R.prop('value', attr),\n orderedDimIndexes: R.append(attrIndex+1, obs.orderedDimIndexes),\n indexedDimValIds: {\n ...obs.indexedDimValIds,\n OBS_ATTRIBUTES: attr.id\n }\n };\n return R.assoc(declinedKey, declined, _acc);\n }, R.assoc(`${obsKey}:0`, enhancedObs, acc), attrsIds);\n }, {}, obsKeys);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,iCAAiC,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK;AAC7E,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK;AACnC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AAC5C,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI;AAC9B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,WAAW;AACrE,KAAK,CAAC,GAAG,CAAC;AACV,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK;AAC7D,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;AAC5D,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE;AAC5G,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG;AACvB,QAAQ,GAAG,GAAG;AACd,QAAQ,UAAU,EAAE,EAAE;AACtB,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACpC,QAAQ,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AAC7C,QAAQ,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC;AACvE,QAAQ,gBAAgB,EAAE;AAC1B,UAAU,GAAG,GAAG,CAAC,gBAAgB;AACjC,UAAU,cAAc,EAAE,IAAI,CAAC;AAC/B;AACA,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;AACjD,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC1D,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC;AACjB;;;;"}
@@ -0,0 +1,96 @@
1
+ import * as R from 'ramda';
2
+ import { getFlagsAndNotes } from './getFlagsAndNotes.js';
3
+ import { hasCellMetadata } from '../hasCellMetadata.js';
4
+
5
+ const getCellRelevantAttributes = (attributes, attributesSeries, cellAttributeIds) => R.filter(
6
+ (attr) => {
7
+ if (R.isNil(attr.value)) {
8
+ return false;
9
+ }
10
+ if (R.has(attr.id, cellAttributeIds)) {
11
+ return true;
12
+ }
13
+ const attrInSerie = R.path([attr.serieKey, attr.id], attributesSeries);
14
+ return R.isNil(attrInSerie);
15
+ },
16
+ attributes
17
+ );
18
+
19
+ const getCellCombinedSeries = (attributes, combinations) => R.reduce(
20
+ (acc, comb) => {
21
+ const values = R.reduce(
22
+ (acc, concept) => {
23
+ if (R.has(concept, comb.fixedDimValues || {})) {
24
+ return R.append(R.prop(concept, comb.fixedDimValues), acc);
25
+ }
26
+ if (R.has(concept, attributes || {})) {
27
+ return R.append(R.path([concept, 'value'], attributes), acc);
28
+ }
29
+ return acc;
30
+ },
31
+ [],
32
+ comb.concepts
33
+ );
34
+
35
+ if (R.isEmpty(values)) {
36
+ return acc;
37
+ }
38
+ return R.append({ ...R.pick(['id', 'name'], comb), values }, acc);
39
+ },
40
+ [],
41
+ combinations
42
+ );
43
+
44
+ // combinations = { cells, layout };
45
+ const getCells = (customAttributes, cellsAttributesId, combinations, attributesSeries, metadataCoordinates) => observations => {
46
+ const attributesInLayoutCombination = R.pipe(
47
+ R.propOr([], 'layout'),
48
+ R.pluck('concepts'),
49
+ R.unnest
50
+ )(combinations);
51
+
52
+ const attributesInCellsCombination = R.pipe(
53
+ R.propOr([], 'cells'),
54
+ R.pluck('concepts'),
55
+ R.unnest
56
+ )(combinations);
57
+
58
+ const _customAttributes = R.over(
59
+ R.lensProp('notes'),
60
+ notes => R.pipe(R.concat, R.uniq)(notes || [], attributesInLayoutCombination)
61
+ )(customAttributes);
62
+
63
+ return R.mapObjIndexed(
64
+ obs => {
65
+ const isAttrCell = R.pathOr('OBS_VAL', ['indexedDimValIds', 'OBS_ATTR'], obs) !== 'OBS_VAL';
66
+ const relevantAttributes = isAttrCell ? [] : getCellRelevantAttributes(obs.attributes, attributesSeries, cellsAttributesId);
67
+ const flagsAndNotes = isAttrCell ? [] : getFlagsAndNotes(R.omit(attributesInCellsCombination, relevantAttributes), _customAttributes);
68
+ const combinedSeries = isAttrCell ? [] : getCellCombinedSeries(relevantAttributes, combinations.cells || []);
69
+ const hasAdvancedAttributes = isAttrCell
70
+ ? false : R.pipe(
71
+ R.omit(R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination])),
72
+ res => !R.isEmpty(res)
73
+ )(relevantAttributes);
74
+
75
+ const advancedAttributes = R.omit(
76
+ R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination]),
77
+ R.filter(attr => !R.isNil(attr.value), obs.attributes),
78
+ );
79
+
80
+ const hasMetadata = isAttrCell ? false : hasCellMetadata(metadataCoordinates, obs.indexedDimValIds);
81
+
82
+ return ({
83
+ ...R.pick(['indexedDimValIds', 'key'], obs),
84
+ flags: R.concat(flagsAndNotes, combinedSeries),
85
+ sideProps: hasAdvancedAttributes || hasMetadata
86
+ ? { hasMetadata, coordinates: obs.indexedDimValIds, advancedAttributes } : null,
87
+ intValue: R.is(Number, obs.value) ? obs.value : null,
88
+ value: obs.formattedValue,
89
+ });
90
+ },
91
+ observations
92
+ );
93
+ };
94
+
95
+ export { getCellCombinedSeries, getCellRelevantAttributes, getCells };
96
+ //# sourceMappingURL=getCells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCells.js","sources":["../../../../src/rules2/src/table/getCells.js"],"sourcesContent":["import * as R from 'ramda';\r\nimport { getFlagsAndNotes } from './getFlagsAndNotes';\r\nimport { hasCellMetadata } from '../hasCellMetadata';\r\n\r\nexport const getCellRelevantAttributes = (attributes, attributesSeries, cellAttributeIds) => R.filter(\r\n (attr) => {\r\n if (R.isNil(attr.value)) {\r\n return false;\r\n }\r\n if (R.has(attr.id, cellAttributeIds)) {\r\n return true;\r\n }\r\n const attrInSerie = R.path([attr.serieKey, attr.id], attributesSeries);\r\n return R.isNil(attrInSerie);\r\n },\r\n attributes\r\n);\r\n\r\nexport const getCellCombinedSeries = (attributes, combinations) => R.reduce(\r\n (acc, comb) => {\r\n const values = R.reduce(\r\n (acc, concept) => {\r\n if (R.has(concept, comb.fixedDimValues || {})) {\r\n return R.append(R.prop(concept, comb.fixedDimValues), acc);\r\n }\r\n if (R.has(concept, attributes || {})) {\r\n return R.append(R.path([concept, 'value'], attributes), acc);\r\n }\r\n return acc;\r\n },\r\n [],\r\n comb.concepts\r\n );\r\n\r\n if (R.isEmpty(values)) {\r\n return acc;\r\n }\r\n return R.append({ ...R.pick(['id', 'name'], comb), values }, acc);\r\n },\r\n [],\r\n combinations\r\n);\r\n\r\n// combinations = { cells, layout };\r\nexport const getCells = (customAttributes, cellsAttributesId, combinations, attributesSeries, metadataCoordinates) => observations => {\r\n const attributesInLayoutCombination = R.pipe(\r\n R.propOr([], 'layout'),\r\n R.pluck('concepts'),\r\n R.unnest\r\n )(combinations);\r\n\r\n const attributesInCellsCombination = R.pipe(\r\n R.propOr([], 'cells'),\r\n R.pluck('concepts'),\r\n R.unnest\r\n )(combinations);\r\n\r\n const _customAttributes = R.over(\r\n R.lensProp('notes'),\r\n notes => R.pipe(R.concat, R.uniq)(notes || [], attributesInLayoutCombination)\r\n )(customAttributes);\r\n\r\n return R.mapObjIndexed(\r\n obs => {\r\n const isAttrCell = R.pathOr('OBS_VAL', ['indexedDimValIds', 'OBS_ATTR'], obs) !== 'OBS_VAL';\r\n const relevantAttributes = isAttrCell ? [] : getCellRelevantAttributes(obs.attributes, attributesSeries, cellsAttributesId);\r\n const flagsAndNotes = isAttrCell ? [] : getFlagsAndNotes(R.omit(attributesInCellsCombination, relevantAttributes), _customAttributes);\r\n const combinedSeries = isAttrCell ? [] : getCellCombinedSeries(relevantAttributes, combinations.cells || []);\r\n const hasAdvancedAttributes = isAttrCell\r\n ? false : R.pipe(\r\n R.omit(R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination])),\r\n res => !R.isEmpty(res)\r\n )(relevantAttributes);\r\n\r\n const advancedAttributes = R.omit(\r\n R.unnest([_customAttributes.flags || [], _customAttributes.notes || [], attributesInCellsCombination]),\r\n R.filter(attr => !R.isNil(attr.value), obs.attributes), \r\n );\r\n\r\n const hasMetadata = isAttrCell ? false : hasCellMetadata(metadataCoordinates, obs.indexedDimValIds);\r\n\r\n return ({\r\n ...R.pick(['indexedDimValIds', 'key'], obs),\r\n flags: R.concat(flagsAndNotes, combinedSeries),\r\n sideProps: hasAdvancedAttributes || hasMetadata\r\n ? { hasMetadata, coordinates: obs.indexedDimValIds, advancedAttributes } : null,\r\n intValue: R.is(Number, obs.value) ? obs.value : null,\r\n value: obs.formattedValue,\r\n });\r\n },\r\n observations\r\n );\r\n};\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import * as R from 'ramda';
2
+
3
+ const getCellsAttributesIds = (layoutIds, attributes) => {
4
+ return R.reduce(
5
+ (acc, attr) => {
6
+ if (!attr.series) {
7
+ return acc;
8
+ }
9
+ if (R.isEmpty(attr.relationship || [])) {
10
+ return R.assoc(attr.id, attr.id, acc);
11
+ }
12
+ const indexedHeaderIds = R.indexBy(R.identity, layoutIds.header);
13
+ const indexedSectionsIds = R.indexBy(R.identity, layoutIds.sections);
14
+ const indexedRowsIds = { ...indexedSectionsIds, ...R.indexBy(R.identity, layoutIds.rows) };
15
+ const [idsInHeader, rest] = R.partition(
16
+ id => R.has(id, indexedHeaderIds),
17
+ attr.relationship,
18
+ );
19
+ if (R.isEmpty(rest)) {
20
+ return acc;
21
+ } else if (!R.isEmpty(idsInHeader)) {
22
+ return R.assoc(attr.id, attr.id, acc);
23
+ } else {
24
+ const idsNotInSections = R.reject(id => R.has(id, indexedSectionsIds), attr.relationship);
25
+ if (R.isEmpty(idsNotInSections)) {
26
+ return acc;
27
+ }
28
+ const idsNotInRows = R.reject(id => R.has(id, indexedRowsIds), idsNotInSections);
29
+ if (R.isEmpty(idsNotInRows)) {
30
+ return acc;
31
+ }
32
+ }
33
+ return R.assoc(attr.id, attr.id, acc);
34
+ },
35
+ {},
36
+ attributes,
37
+ );
38
+ };
39
+
40
+ export { getCellsAttributesIds };
41
+ //# sourceMappingURL=getCellsAttributesIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCellsAttributesIds.js","sources":["../../../../src/rules2/src/table/getCellsAttributesIds.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getCellsAttributesIds = (layoutIds, attributes) => {\n return R.reduce(\n (acc, attr) => {\n if (!attr.series) {\n return acc;\n }\n if (R.isEmpty(attr.relationship || [])) {\n return R.assoc(attr.id, attr.id, acc);\n }\n const indexedHeaderIds = R.indexBy(R.identity, layoutIds.header);\n const indexedSectionsIds = R.indexBy(R.identity, layoutIds.sections);\n const indexedRowsIds = { ...indexedSectionsIds, ...R.indexBy(R.identity, layoutIds.rows) };\n const [idsInHeader, rest] = R.partition(\n id => R.has(id, indexedHeaderIds),\n attr.relationship,\n );\n if (R.isEmpty(rest)) {\n return acc;\n } else if (!R.isEmpty(idsInHeader)) {\n return R.assoc(attr.id, attr.id, acc);\n } else {\n const idsNotInSections = R.reject(id => R.has(id, indexedSectionsIds), attr.relationship);\n if (R.isEmpty(idsNotInSections)) {\n return acc;\n }\n const idsNotInRows = R.reject(id => R.has(id, indexedRowsIds), idsNotInSections);\n if (R.isEmpty(idsNotInRows)) {\n return acc;\n }\n }\n return R.assoc(attr.id, attr.id, acc);\n },\n {},\n attributes,\n );\n};\n"],"names":[],"mappings":";;AAEY,MAAC,qBAAqB,GAAG,CAAC,SAAS,EAAE,UAAU,KAAK;AAChE,EAAE,OAAO,CAAC,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,OAAO,GAAG;AAClB,MAAM;AACN,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;AAC9C,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;AAC7C,MAAM;AACN,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;AAChG,MAAM,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AAC7C,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC;AACzC,QAAQ,IAAI,CAAC,YAAY;AACzB,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3B,QAAQ,OAAO,GAAG;AAClB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1C,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM;AACb,QAAQ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;AACjG,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACzC,UAAU,OAAO,GAAG;AACpB,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC;AACxF,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACrC,UAAU,OAAO,GAAG;AACpB,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;AAC3C,IAAI,CAAC;AACL,IAAI,EAAE;AACN,IAAI,UAAU;AACd,GAAG;AACH;;;;"}
@@ -0,0 +1,16 @@
1
+ import * as R from 'ramda';
2
+
3
+ const getCellsMetadataCoordinates = (metadataCoordinates, oneValueDimensions, layoutIds) => {
4
+ const oneValueDimsIds = R.pluck('id', oneValueDimensions);
5
+ return R.reject(coordinates => {
6
+ const columnIds = R.concat(layoutIds.header, oneValueDimsIds);
7
+ if (R.isEmpty(R.omit(columnIds, coordinates))) {
8
+ return true;
9
+ }
10
+ const rowsIds = [...layoutIds.sections, ...layoutIds.rows, ...oneValueDimsIds];
11
+ return R.isEmpty(R.omit(rowsIds, coordinates));
12
+ }, metadataCoordinates);
13
+ };
14
+
15
+ export { getCellsMetadataCoordinates };
16
+ //# sourceMappingURL=getCellsMetadataCoordinates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCellsMetadataCoordinates.js","sources":["../../../../src/rules2/src/table/getCellsMetadataCoordinates.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getCellsMetadataCoordinates = (metadataCoordinates, oneValueDimensions, layoutIds) => {\n const oneValueDimsIds = R.pluck('id', oneValueDimensions);\n return R.reject(coordinates => {\n const columnIds = R.concat(layoutIds.header, oneValueDimsIds);\n if (R.isEmpty(R.omit(columnIds, coordinates))) {\n return true;\n }\n const rowsIds = [...layoutIds.sections, ...layoutIds.rows, ...oneValueDimsIds];\n return R.isEmpty(R.omit(rowsIds, coordinates));\n }, metadataCoordinates);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,2BAA2B,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,KAAK;AACnG,EAAE,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC;AAC3D,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI;AACjC,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;AACjE,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE;AACnD,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,eAAe,CAAC;AAClF,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAClD,EAAE,CAAC,EAAE,mBAAmB,CAAC;AACzB;;;;"}
@@ -0,0 +1,36 @@
1
+ import * as R from 'ramda';
2
+
3
+ const getCuratedCells = (cells, layout) => {
4
+ const layoutIds = R.map(
5
+ R.pipe(
6
+ R.map(entry =>
7
+ R.has('dimensions', entry) ? R.pluck('id', entry.dimensions || []) : entry.id,
8
+ ),
9
+ R.unnest,
10
+ ),
11
+ )(layout);
12
+ return R.pipe(
13
+ R.values,
14
+ R.reduce((acc, cell) => {
15
+ const keys = R.map(
16
+ R.pipe(
17
+ R.map(dim => {
18
+ const val = R.prop(dim, cell.indexedDimValIds);
19
+ return `${dim}=${val}`;
20
+ }),
21
+ R.join(':'),
22
+ ),
23
+ layoutIds,
24
+ );
25
+
26
+ return R.over(
27
+ R.lensPath(R.props(['header', 'sections', 'rows'], keys)),
28
+ cells => (R.isNil(cells) ? [cell] : R.append(cell, cells)),
29
+ acc,
30
+ );
31
+ }, {}),
32
+ )(cells);
33
+ };
34
+
35
+ export { getCuratedCells };
36
+ //# sourceMappingURL=getCuratedCells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCuratedCells.js","sources":["../../../../src/rules2/src/table/getCuratedCells.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getCuratedCells = (cells, layout) => {\n const layoutIds = R.map(\n R.pipe(\n R.map(entry =>\n R.has('dimensions', entry) ? R.pluck('id', entry.dimensions || []) : entry.id,\n ),\n R.unnest,\n ),\n )(layout);\n return R.pipe(\n R.values,\n R.reduce((acc, cell) => {\n const keys = R.map(\n R.pipe(\n R.map(dim => {\n const val = R.prop(dim, cell.indexedDimValIds);\n return `${dim}=${val}`;\n }),\n R.join(':'),\n ),\n layoutIds,\n );\n\n return R.over(\n R.lensPath(R.props(['header', 'sections', 'rows'], keys)),\n cells => (R.isNil(cells) ? [cell] : R.append(cell, cells)),\n acc,\n );\n }, {}),\n )(cells);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAClD,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG;AACzB,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK;AACjB,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE;AACrF,OAAO;AACP,MAAM,CAAC,CAAC,MAAM;AACd,KAAK;AACL,GAAG,CAAC,MAAM,CAAC;AACX,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AAC5B,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG;AACxB,QAAQ,CAAC,CAAC,IAAI;AACd,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;AACvB,YAAY,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC1D,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,UAAU,CAAC,CAAC;AACZ,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrB,SAAS;AACT,QAAQ,SAAS;AACjB,OAAO;;AAEP,MAAM,OAAO,CAAC,CAAC,IAAI;AACnB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,QAAQ,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClE,QAAQ,GAAG;AACX,OAAO;AACP,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,GAAG,CAAC,KAAK,CAAC;AACV;;;;"}
@@ -0,0 +1,26 @@
1
+ import * as R from 'ramda';
2
+ import { REJECTED_VALUE_IDS } from '../constants.js';
3
+
4
+ const getFlagsAndNotes = (attributesValues, customAttributes) => {
5
+ const flagsIds = R.propOr([], 'flags', customAttributes);
6
+ const notesIds = R.propOr([], 'notes', customAttributes);
7
+
8
+ return R.addIndex(R.reduce)(
9
+ (acc, id, index) => {
10
+ if (!R.has(id, attributesValues)) {
11
+ return acc;
12
+ }
13
+ const attr = R.pick(['id', 'name', 'value', 'display'], R.prop(id, attributesValues));
14
+ if (R.isNil(attr.value) || !R.pathOr(true, ['value', 'display'], attr) || !R.propOr(true, 'display', attr)
15
+ || R.includes(R.path(['value', 'id'], attr), REJECTED_VALUE_IDS)) {
16
+ return acc;
17
+ }
18
+ return R.append(index < flagsIds.length ? R.assoc('code', R.path(['value', 'id'], attr), attr) : attr, acc);
19
+ },
20
+ [],
21
+ R.concat(flagsIds, notesIds)
22
+ );
23
+ };
24
+
25
+ export { getFlagsAndNotes };
26
+ //# sourceMappingURL=getFlagsAndNotes.js.map