@sis-cc/dotstatsuite-components 22.5.0 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/dist/_virtual/index.js +4 -5
  2. package/dist/_virtual/index.js.map +1 -1
  3. package/dist/_virtual/index2.js +4 -5
  4. package/dist/_virtual/index2.js.map +1 -1
  5. package/dist/_virtual/index3.js +4 -4
  6. package/dist/_virtual/index4.js +2 -6
  7. package/dist/_virtual/index4.js.map +1 -1
  8. package/dist/_virtual/index5.js +3 -5
  9. package/dist/_virtual/index5.js.map +1 -1
  10. package/dist/_virtual/index6.js +2 -6
  11. package/dist/_virtual/index6.js.map +1 -1
  12. package/dist/_virtual/index7.js +2 -6
  13. package/dist/_virtual/index7.js.map +1 -1
  14. package/dist/bridge-d3-react/src/index.js +1 -2
  15. package/dist/bridge-d3-react/src/index.js.map +1 -1
  16. package/dist/node_modules/@mui/styles/StylesProvider/StylesProvider.js +1 -1
  17. package/dist/node_modules/@mui/system/colorManipulator.js +2 -2
  18. package/dist/node_modules/@mui/system/esm/responsivePropType.js +1 -1
  19. package/dist/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js +1 -1
  20. package/dist/node_modules/@mui/utils/node_modules/react-is/index.js +1 -1
  21. package/dist/node_modules/date-fns/esm/_lib/defaultOptions/index.js +7 -0
  22. package/dist/node_modules/date-fns/esm/_lib/defaultOptions/index.js.map +1 -0
  23. package/dist/node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js +12 -0
  24. package/dist/node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js.map +1 -0
  25. package/dist/node_modules/date-fns/esm/_lib/requiredArgs/index.js +8 -0
  26. package/dist/node_modules/date-fns/esm/_lib/requiredArgs/index.js.map +1 -0
  27. package/dist/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js +25 -0
  28. package/dist/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js.map +1 -0
  29. package/dist/node_modules/date-fns/esm/_lib/toInteger/index.js +13 -0
  30. package/dist/node_modules/date-fns/esm/_lib/toInteger/index.js.map +1 -0
  31. package/dist/node_modules/date-fns/esm/getISOWeek/index.js +39 -0
  32. package/dist/node_modules/date-fns/esm/getISOWeek/index.js.map +1 -0
  33. package/dist/node_modules/date-fns/esm/getISOWeekYear/index.js +47 -0
  34. package/dist/node_modules/date-fns/esm/getISOWeekYear/index.js.map +1 -0
  35. package/dist/node_modules/date-fns/esm/getTime/index.js +29 -0
  36. package/dist/node_modules/date-fns/esm/getTime/index.js.map +1 -0
  37. package/dist/node_modules/date-fns/esm/isFriday/index.js +27 -0
  38. package/dist/node_modules/date-fns/esm/isFriday/index.js.map +1 -0
  39. package/dist/node_modules/date-fns/esm/isMonday/index.js +27 -0
  40. package/dist/node_modules/date-fns/esm/isMonday/index.js.map +1 -0
  41. package/dist/node_modules/date-fns/esm/isSaturday/index.js +27 -0
  42. package/dist/node_modules/date-fns/esm/isSaturday/index.js.map +1 -0
  43. package/dist/node_modules/date-fns/esm/isSunday/index.js +27 -0
  44. package/dist/node_modules/date-fns/esm/isSunday/index.js.map +1 -0
  45. package/dist/node_modules/date-fns/esm/isThursday/index.js +27 -0
  46. package/dist/node_modules/date-fns/esm/isThursday/index.js.map +1 -0
  47. package/dist/node_modules/date-fns/esm/isTuesday/index.js +27 -0
  48. package/dist/node_modules/date-fns/esm/isTuesday/index.js.map +1 -0
  49. package/dist/node_modules/date-fns/esm/isWednesday/index.js +27 -0
  50. package/dist/node_modules/date-fns/esm/isWednesday/index.js.map +1 -0
  51. package/dist/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js +12 -0
  52. package/dist/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js.map +1 -0
  53. package/dist/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js +21 -0
  54. package/dist/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js.map +1 -0
  55. package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js +45 -0
  56. package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js.map +1 -0
  57. package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js +20 -0
  58. package/dist/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js.map +1 -0
  59. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js +119 -0
  60. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js.map +1 -0
  61. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js +37 -0
  62. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js.map +1 -0
  63. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js +14 -0
  64. package/dist/node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js.map +1 -0
  65. package/dist/node_modules/date-fns/esm/locale/ar/_lib/localize/index.js +121 -0
  66. package/dist/node_modules/date-fns/esm/locale/ar/_lib/localize/index.js.map +1 -0
  67. package/dist/node_modules/date-fns/esm/locale/ar/_lib/match/index.js +102 -0
  68. package/dist/node_modules/date-fns/esm/locale/ar/_lib/match/index.js.map +1 -0
  69. package/dist/node_modules/date-fns/esm/locale/ar/index.js +30 -0
  70. package/dist/node_modules/date-fns/esm/locale/ar/index.js.map +1 -0
  71. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js +178 -0
  72. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js.map +1 -0
  73. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js +42 -0
  74. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js.map +1 -0
  75. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js +14 -0
  76. package/dist/node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js.map +1 -0
  77. package/dist/node_modules/date-fns/esm/locale/de/_lib/localize/index.js +137 -0
  78. package/dist/node_modules/date-fns/esm/locale/de/_lib/localize/index.js.map +1 -0
  79. package/dist/node_modules/date-fns/esm/locale/de/_lib/match/index.js +103 -0
  80. package/dist/node_modules/date-fns/esm/locale/de/_lib/match/index.js.map +1 -0
  81. package/dist/node_modules/date-fns/esm/locale/de/index.js +33 -0
  82. package/dist/node_modules/date-fns/esm/locale/de/index.js.map +1 -0
  83. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js +85 -0
  84. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js.map +1 -0
  85. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js +37 -0
  86. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js.map +1 -0
  87. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js +14 -0
  88. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js.map +1 -0
  89. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js +146 -0
  90. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js.map +1 -0
  91. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js +101 -0
  92. package/dist/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js.map +1 -0
  93. package/dist/node_modules/date-fns/esm/locale/en-US/index.js +30 -0
  94. package/dist/node_modules/date-fns/esm/locale/en-US/index.js.map +1 -0
  95. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js +85 -0
  96. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js.map +1 -0
  97. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js +37 -0
  98. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js.map +1 -0
  99. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js +26 -0
  100. package/dist/node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js.map +1 -0
  101. package/dist/node_modules/date-fns/esm/locale/es/_lib/localize/index.js +122 -0
  102. package/dist/node_modules/date-fns/esm/locale/es/_lib/localize/index.js.map +1 -0
  103. package/dist/node_modules/date-fns/esm/locale/es/_lib/match/index.js +102 -0
  104. package/dist/node_modules/date-fns/esm/locale/es/_lib/match/index.js.map +1 -0
  105. package/dist/node_modules/date-fns/esm/locale/es/index.js +33 -0
  106. package/dist/node_modules/date-fns/esm/locale/es/index.js.map +1 -0
  107. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js +85 -0
  108. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js.map +1 -0
  109. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js +37 -0
  110. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js.map +1 -0
  111. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js +14 -0
  112. package/dist/node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js.map +1 -0
  113. package/dist/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js +97 -0
  114. package/dist/node_modules/date-fns/esm/locale/fr/_lib/localize/index.js.map +1 -0
  115. package/dist/node_modules/date-fns/esm/locale/fr/_lib/match/index.js +101 -0
  116. package/dist/node_modules/date-fns/esm/locale/fr/_lib/match/index.js.map +1 -0
  117. package/dist/node_modules/date-fns/esm/locale/fr/index.js +30 -0
  118. package/dist/node_modules/date-fns/esm/locale/fr/index.js.map +1 -0
  119. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js +85 -0
  120. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js.map +1 -0
  121. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js +37 -0
  122. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js.map +1 -0
  123. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js +54 -0
  124. package/dist/node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js.map +1 -0
  125. package/dist/node_modules/date-fns/esm/locale/it/_lib/localize/index.js +122 -0
  126. package/dist/node_modules/date-fns/esm/locale/it/_lib/localize/index.js.map +1 -0
  127. package/dist/node_modules/date-fns/esm/locale/it/_lib/match/index.js +101 -0
  128. package/dist/node_modules/date-fns/esm/locale/it/_lib/match/index.js.map +1 -0
  129. package/dist/node_modules/date-fns/esm/locale/it/index.js +31 -0
  130. package/dist/node_modules/date-fns/esm/locale/it/index.js.map +1 -0
  131. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js +85 -0
  132. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js.map +1 -0
  133. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js +37 -0
  134. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js.map +1 -0
  135. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js +14 -0
  136. package/dist/node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js.map +1 -0
  137. package/dist/node_modules/date-fns/esm/locale/nl/_lib/localize/index.js +88 -0
  138. package/dist/node_modules/date-fns/esm/locale/nl/_lib/localize/index.js.map +1 -0
  139. package/dist/node_modules/date-fns/esm/locale/nl/_lib/match/index.js +100 -0
  140. package/dist/node_modules/date-fns/esm/locale/nl/_lib/match/index.js.map +1 -0
  141. package/dist/node_modules/date-fns/esm/locale/nl/index.js +34 -0
  142. package/dist/node_modules/date-fns/esm/locale/nl/index.js.map +1 -0
  143. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatDistance/index.js +89 -0
  144. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatDistance/index.js.map +1 -0
  145. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatLong/index.js +37 -0
  146. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatLong/index.js.map +1 -0
  147. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatRelative/index.js +14 -0
  148. package/dist/node_modules/date-fns/esm/locale/th/_lib/formatRelative/index.js.map +1 -0
  149. package/dist/node_modules/date-fns/esm/locale/th/_lib/localize/index.js +121 -0
  150. package/dist/node_modules/date-fns/esm/locale/th/_lib/localize/index.js.map +1 -0
  151. package/dist/node_modules/date-fns/esm/locale/th/_lib/match/index.js +100 -0
  152. package/dist/node_modules/date-fns/esm/locale/th/_lib/match/index.js.map +1 -0
  153. package/dist/node_modules/date-fns/esm/locale/th/index.js +31 -0
  154. package/dist/node_modules/date-fns/esm/locale/th/index.js.map +1 -0
  155. package/dist/node_modules/date-fns/esm/startOfISOWeek/index.js +32 -0
  156. package/dist/node_modules/date-fns/esm/startOfISOWeek/index.js.map +1 -0
  157. package/dist/node_modules/date-fns/esm/startOfISOWeekYear/index.js +37 -0
  158. package/dist/node_modules/date-fns/esm/startOfISOWeekYear/index.js.map +1 -0
  159. package/dist/node_modules/date-fns/esm/startOfWeek/index.js +52 -0
  160. package/dist/node_modules/date-fns/esm/startOfWeek/index.js.map +1 -0
  161. package/dist/node_modules/date-fns/esm/toDate/index.js +56 -0
  162. package/dist/node_modules/date-fns/esm/toDate/index.js.map +1 -0
  163. package/dist/node_modules/prop-types/index.js +1 -1
  164. package/dist/node_modules/react-is/index.js +1 -1
  165. package/dist/rules/src/chart/getAxisOptions.js +22 -22
  166. package/dist/rules/src/chart/getAxisOptions.js.map +1 -1
  167. package/dist/rules/src/chart/getChartOptions.js +1 -1
  168. package/dist/rules/src/chart/getChartOptions.js.map +1 -1
  169. package/dist/rules/src/constants.js +1 -35
  170. package/dist/rules/src/constants.js.map +1 -1
  171. package/dist/rules/src/date.js +40 -40
  172. package/dist/rules/src/date.js.map +1 -1
  173. package/dist/rules/src/dimension-utils.js +26 -24
  174. package/dist/rules/src/dimension-utils.js.map +1 -1
  175. package/dist/rules/src/factories/choro-series.js +43 -32
  176. package/dist/rules/src/factories/choro-series.js.map +1 -1
  177. package/dist/rules/src/factories/focus.js +20 -0
  178. package/dist/rules/src/factories/focus.js.map +1 -0
  179. package/dist/rules/src/factories/getChartSeries.js +11 -0
  180. package/dist/rules/src/factories/getChartSeries.js.map +1 -0
  181. package/dist/rules/src/factories/sample-focus.js +14 -18
  182. package/dist/rules/src/factories/sample-focus.js.map +1 -1
  183. package/dist/rules/src/factories/sample-series.js +20 -20
  184. package/dist/rules/src/factories/sample-series.js.map +1 -1
  185. package/dist/rules/src/factories/scatter-focus.js +21 -35
  186. package/dist/rules/src/factories/scatter-focus.js.map +1 -1
  187. package/dist/rules/src/factories/scatter-series.js +5 -5
  188. package/dist/rules/src/factories/scatter-series.js.map +1 -1
  189. package/dist/rules/src/factories/series.js +48 -0
  190. package/dist/rules/src/factories/series.js.map +1 -0
  191. package/dist/rules/src/factories/stacked-series.js +6 -7
  192. package/dist/rules/src/factories/stacked-series.js.map +1 -1
  193. package/dist/rules/src/factories/symbol-series.js +39 -46
  194. package/dist/rules/src/factories/symbol-series.js.map +1 -1
  195. package/dist/rules/src/factories/timeline-focus.js +10 -14
  196. package/dist/rules/src/factories/timeline-focus.js.map +1 -1
  197. package/dist/rules/src/factories/timeline-series.js +37 -41
  198. package/dist/rules/src/factories/timeline-series.js.map +1 -1
  199. package/dist/rules/src/get-values-enhanced.js +8 -2
  200. package/dist/rules/src/get-values-enhanced.js.map +1 -1
  201. package/dist/rules/src/index.js +6 -371
  202. package/dist/rules/src/index.js.map +1 -1
  203. package/dist/rules/src/layout.js +4 -2
  204. package/dist/rules/src/layout.js.map +1 -1
  205. package/dist/rules/src/observation-formater.js +8 -14
  206. package/dist/rules/src/observation-formater.js.map +1 -1
  207. package/dist/rules/src/properties/focus.js +51 -3
  208. package/dist/rules/src/properties/focus.js.map +1 -1
  209. package/dist/rules/src/properties/getHeaderProps.js +2 -53
  210. package/dist/rules/src/properties/getHeaderProps.js.map +1 -1
  211. package/dist/rules/src/properties/index.js +3 -94
  212. package/dist/rules/src/properties/index.js.map +1 -1
  213. package/dist/rules/src/properties/linear.js +4 -4
  214. package/dist/rules/src/properties/linear.js.map +1 -1
  215. package/dist/rules/src/properties/scatter.js +4 -4
  216. package/dist/rules/src/properties/scatter.js.map +1 -1
  217. package/dist/rules/src/properties/stacked.js +5 -7
  218. package/dist/rules/src/properties/stacked.js.map +1 -1
  219. package/dist/rules/src/properties/symbol.js.map +1 -1
  220. package/dist/rules/src/properties/utils.js +11 -12
  221. package/dist/rules/src/properties/utils.js.map +1 -1
  222. package/dist/rules/src/sdmx-data/index.js +2 -27
  223. package/dist/rules/src/sdmx-data/index.js.map +1 -1
  224. package/dist/rules2/src/combinedValuesDisplay.js +2 -2
  225. package/dist/rules2/src/combinedValuesDisplay.js.map +1 -1
  226. package/dist/rules2/src/getAttributes.js +37 -0
  227. package/dist/rules2/src/getAttributes.js.map +1 -0
  228. package/dist/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
  229. package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -1
  230. package/dist/rules2/src/getHeaderCombinations.js +1 -1
  231. package/dist/rules2/src/getHeaderCombinations.js.map +1 -1
  232. package/dist/rules2/src/getHeaderSubtitle.js +1 -1
  233. package/dist/rules2/src/getHeaderSubtitle.js.map +1 -1
  234. package/dist/rules2/src/getHeaderTitle.js +1 -1
  235. package/dist/rules2/src/getHeaderTitle.js.map +1 -1
  236. package/dist/rules2/src/getMetadataCoordinates.js +1 -1
  237. package/dist/rules2/src/getMetadataCoordinates.js.map +1 -1
  238. package/dist/rules2/src/getNotDisplayedIds.js +1 -1
  239. package/dist/rules2/src/getNotDisplayedIds.js.map +1 -1
  240. package/dist/rules2/src/index.js +1 -0
  241. package/dist/rules2/src/index.js.map +1 -1
  242. package/dist/rules2/src/parseAttributes.js +2 -2
  243. package/dist/rules2/src/parseAttributes.js.map +1 -1
  244. package/dist/rules2/src/parseHierarchicalCodelist.js +1 -1
  245. package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -1
  246. package/dist/rules2/src/parseMetadataSeries.js +1 -1
  247. package/dist/rules2/src/parseMetadataSeries.js.map +1 -1
  248. package/dist/rules2/src/prepareData.js +10 -3
  249. package/dist/rules2/src/prepareData.js.map +1 -1
  250. package/dist/rules2/src/refineDimensions.js +53 -8
  251. package/dist/rules2/src/refineDimensions.js.map +1 -1
  252. package/dist/rules2/src/refineTimePeriod.js +12 -16
  253. package/dist/rules2/src/refineTimePeriod.js.map +1 -1
  254. package/dist/rules2/src/table/getCells.js +1 -1
  255. package/dist/rules2/src/table/getCells.js.map +1 -1
  256. package/dist/rules2/src/table/getLayout.js +1 -1
  257. package/dist/rules2/src/table/getLayout.js.map +1 -1
  258. package/dist/rules2/src/table/getTableLayoutIds.js +1 -1
  259. package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -1
  260. package/dist/rules2/src/table/getTableProps.js +0 -1
  261. package/dist/rules2/src/table/getTableProps.js.map +1 -1
  262. package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -1
  263. package/dist/rules2/src/table/refineLayoutSize2.js +1 -1
  264. package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -1
  265. package/dist/rules2/src/utils.js.map +1 -1
  266. package/dist/viewer/src/chart.js +13 -2
  267. package/dist/viewer/src/chart.js.map +1 -1
  268. package/dist/viewer/src/legends/FocusLegend.js +1 -1
  269. package/dist/viewer/src/legends/FocusLegend.js.map +1 -1
  270. package/package.json +7 -6
  271. package/src/bridge-d3-react/src/index.js +0 -1
  272. package/src/rules/src/chart/getAxisOptions.js +33 -21
  273. package/src/rules/src/chart/getChartOptions.js +2 -2
  274. package/src/rules/src/constants.js +0 -35
  275. package/src/rules/src/date.js +6 -12
  276. package/src/rules/src/dimension-utils.js +25 -23
  277. package/src/rules/src/factories/choro-series.js +41 -30
  278. package/src/rules/src/factories/focus.js +17 -0
  279. package/src/rules/src/factories/getChartSeries.js +8 -0
  280. package/src/rules/src/factories/sample-focus.js +14 -18
  281. package/src/rules/src/factories/sample-series.js +20 -20
  282. package/src/rules/src/factories/scatter-focus.js +22 -36
  283. package/src/rules/src/factories/scatter-series.js +8 -8
  284. package/src/rules/src/factories/series.js +45 -0
  285. package/src/rules/src/factories/stacked-series.js +4 -5
  286. package/src/rules/src/factories/symbol-series.js +37 -44
  287. package/src/rules/src/factories/timeline-focus.js +10 -14
  288. package/src/rules/src/factories/timeline-series.js +35 -39
  289. package/src/rules/src/get-values-enhanced.js +8 -2
  290. package/src/rules/src/index.js +7 -384
  291. package/src/rules/src/layout.js +4 -2
  292. package/src/rules/src/observation-formater.js +14 -20
  293. package/src/rules/src/properties/focus.js +50 -2
  294. package/src/rules/src/properties/getHeaderProps.js +1 -53
  295. package/src/rules/src/properties/index.js +2 -93
  296. package/src/rules/src/properties/linear.js +2 -2
  297. package/src/rules/src/properties/scatter.js +4 -4
  298. package/src/rules/src/properties/stacked.js +4 -6
  299. package/src/rules/src/properties/symbol.js +0 -1
  300. package/src/rules/src/properties/utils.js +11 -22
  301. package/src/rules/src/sdmx-data/index.js +2 -31
  302. package/src/rules2/src/combinedValuesDisplay.js +2 -2
  303. package/src/rules2/src/getAttributes.js +34 -0
  304. package/src/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
  305. package/src/rules2/src/getHeaderCombinations.js +1 -1
  306. package/src/rules2/src/getHeaderSubtitle.js +2 -2
  307. package/src/rules2/src/getHeaderTitle.js +1 -1
  308. package/src/rules2/src/getMetadataCoordinates.js +1 -1
  309. package/src/rules2/src/getNotDisplayedIds.js +1 -1
  310. package/src/rules2/src/index.js +1 -0
  311. package/src/rules2/src/parseAttributes.js +2 -2
  312. package/src/rules2/src/parseHierarchicalCodelist.js +1 -1
  313. package/src/rules2/src/parseMetadataSeries.js +1 -1
  314. package/src/rules2/src/prepareData.js +10 -3
  315. package/src/rules2/src/refineDimensions.js +53 -8
  316. package/src/rules2/src/refineTimePeriod.js +12 -16
  317. package/src/rules2/src/table/getCells.js +2 -2
  318. package/src/rules2/src/table/getLayout.js +2 -2
  319. package/src/rules2/src/table/getTableLayoutIds.js +9 -9
  320. package/src/rules2/src/table/getTableProps.js +0 -1
  321. package/src/rules2/src/table/parseValueHierarchy.js +0 -7
  322. package/src/rules2/src/table/refineLayoutSize2.js +5 -5
  323. package/src/rules2/src/utils.js +0 -11
  324. package/src/viewer/src/app/leg.js +0 -1
  325. package/src/viewer/src/chart.jsx +23 -1
  326. package/src/viewer/src/legends/FocusLegend.jsx +1 -1
  327. package/dist/_virtual/index10.js +0 -8
  328. package/dist/_virtual/index10.js.map +0 -1
  329. package/dist/_virtual/index11.js +0 -8
  330. package/dist/_virtual/index11.js.map +0 -1
  331. package/dist/_virtual/index12.js +0 -8
  332. package/dist/_virtual/index12.js.map +0 -1
  333. package/dist/_virtual/index13.js +0 -8
  334. package/dist/_virtual/index13.js.map +0 -1
  335. package/dist/_virtual/index14.js +0 -8
  336. package/dist/_virtual/index14.js.map +0 -1
  337. package/dist/_virtual/index15.js +0 -8
  338. package/dist/_virtual/index15.js.map +0 -1
  339. package/dist/_virtual/index16.js +0 -8
  340. package/dist/_virtual/index16.js.map +0 -1
  341. package/dist/_virtual/index17.js +0 -7
  342. package/dist/_virtual/index17.js.map +0 -1
  343. package/dist/_virtual/index18.js +0 -7
  344. package/dist/_virtual/index18.js.map +0 -1
  345. package/dist/_virtual/index19.js +0 -8
  346. package/dist/_virtual/index19.js.map +0 -1
  347. package/dist/_virtual/index20.js +0 -4
  348. package/dist/_virtual/index20.js.map +0 -1
  349. package/dist/_virtual/index21.js +0 -6
  350. package/dist/_virtual/index21.js.map +0 -1
  351. package/dist/_virtual/index22.js +0 -4
  352. package/dist/_virtual/index22.js.map +0 -1
  353. package/dist/_virtual/index23.js +0 -4
  354. package/dist/_virtual/index23.js.map +0 -1
  355. package/dist/_virtual/index8.js +0 -8
  356. package/dist/_virtual/index8.js.map +0 -1
  357. package/dist/_virtual/index9.js +0 -8
  358. package/dist/_virtual/index9.js.map +0 -1
  359. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js +0 -32
  360. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js.map +0 -1
  361. package/dist/node_modules/date-fns/get_iso_week/index.js +0 -49
  362. package/dist/node_modules/date-fns/get_iso_week/index.js.map +0 -1
  363. package/dist/node_modules/date-fns/get_iso_year/index.js +0 -59
  364. package/dist/node_modules/date-fns/get_iso_year/index.js.map +0 -1
  365. package/dist/node_modules/date-fns/is_date/index.js +0 -32
  366. package/dist/node_modules/date-fns/is_date/index.js.map +0 -1
  367. package/dist/node_modules/date-fns/is_friday/index.js +0 -35
  368. package/dist/node_modules/date-fns/is_friday/index.js.map +0 -1
  369. package/dist/node_modules/date-fns/is_monday/index.js +0 -35
  370. package/dist/node_modules/date-fns/is_monday/index.js.map +0 -1
  371. package/dist/node_modules/date-fns/is_saturday/index.js +0 -35
  372. package/dist/node_modules/date-fns/is_saturday/index.js.map +0 -1
  373. package/dist/node_modules/date-fns/is_sunday/index.js +0 -35
  374. package/dist/node_modules/date-fns/is_sunday/index.js.map +0 -1
  375. package/dist/node_modules/date-fns/is_thursday/index.js +0 -35
  376. package/dist/node_modules/date-fns/is_thursday/index.js.map +0 -1
  377. package/dist/node_modules/date-fns/is_tuesday/index.js +0 -35
  378. package/dist/node_modules/date-fns/is_tuesday/index.js.map +0 -1
  379. package/dist/node_modules/date-fns/is_wednesday/index.js +0 -35
  380. package/dist/node_modules/date-fns/is_wednesday/index.js.map +0 -1
  381. package/dist/node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js +0 -39
  382. package/dist/node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js.map +0 -1
  383. package/dist/node_modules/date-fns/locale/ar/build_distance_in_words_locale/index.js +0 -110
  384. package/dist/node_modules/date-fns/locale/ar/build_distance_in_words_locale/index.js.map +0 -1
  385. package/dist/node_modules/date-fns/locale/ar/build_format_locale/index.js +0 -86
  386. package/dist/node_modules/date-fns/locale/ar/build_format_locale/index.js.map +0 -1
  387. package/dist/node_modules/date-fns/locale/ar/index.js +0 -26
  388. package/dist/node_modules/date-fns/locale/ar/index.js.map +0 -1
  389. package/dist/node_modules/date-fns/locale/de/build_distance_in_words_locale/index.js +0 -196
  390. package/dist/node_modules/date-fns/locale/de/build_distance_in_words_locale/index.js.map +0 -1
  391. package/dist/node_modules/date-fns/locale/de/build_format_locale/index.js +0 -90
  392. package/dist/node_modules/date-fns/locale/de/build_format_locale/index.js.map +0 -1
  393. package/dist/node_modules/date-fns/locale/de/index.js +0 -27
  394. package/dist/node_modules/date-fns/locale/de/index.js.map +0 -1
  395. package/dist/node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js +0 -110
  396. package/dist/node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js.map +0 -1
  397. package/dist/node_modules/date-fns/locale/en/build_format_locale/index.js +0 -101
  398. package/dist/node_modules/date-fns/locale/en/build_format_locale/index.js.map +0 -1
  399. package/dist/node_modules/date-fns/locale/en/index.js +0 -25
  400. package/dist/node_modules/date-fns/locale/en/index.js.map +0 -1
  401. package/dist/node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js +0 -110
  402. package/dist/node_modules/date-fns/locale/es/build_distance_in_words_locale/index.js.map +0 -1
  403. package/dist/node_modules/date-fns/locale/es/build_format_locale/index.js +0 -86
  404. package/dist/node_modules/date-fns/locale/es/build_format_locale/index.js.map +0 -1
  405. package/dist/node_modules/date-fns/locale/es/index.js +0 -28
  406. package/dist/node_modules/date-fns/locale/es/index.js.map +0 -1
  407. package/dist/node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js +0 -110
  408. package/dist/node_modules/date-fns/locale/fr/build_distance_in_words_locale/index.js.map +0 -1
  409. package/dist/node_modules/date-fns/locale/fr/build_format_locale/index.js +0 -135
  410. package/dist/node_modules/date-fns/locale/fr/build_format_locale/index.js.map +0 -1
  411. package/dist/node_modules/date-fns/locale/fr/index.js +0 -27
  412. package/dist/node_modules/date-fns/locale/fr/index.js.map +0 -1
  413. package/dist/node_modules/date-fns/locale/it/build_distance_in_words_locale/index.js +0 -110
  414. package/dist/node_modules/date-fns/locale/it/build_distance_in_words_locale/index.js.map +0 -1
  415. package/dist/node_modules/date-fns/locale/it/build_format_locale/index.js +0 -86
  416. package/dist/node_modules/date-fns/locale/it/build_format_locale/index.js.map +0 -1
  417. package/dist/node_modules/date-fns/locale/it/index.js +0 -26
  418. package/dist/node_modules/date-fns/locale/it/index.js.map +0 -1
  419. package/dist/node_modules/date-fns/locale/nl/build_distance_in_words_locale/index.js +0 -110
  420. package/dist/node_modules/date-fns/locale/nl/build_distance_in_words_locale/index.js.map +0 -1
  421. package/dist/node_modules/date-fns/locale/nl/build_format_locale/index.js +0 -86
  422. package/dist/node_modules/date-fns/locale/nl/build_format_locale/index.js.map +0 -1
  423. package/dist/node_modules/date-fns/locale/nl/index.js +0 -27
  424. package/dist/node_modules/date-fns/locale/nl/index.js.map +0 -1
  425. package/dist/node_modules/date-fns/locale/th/build_distance_in_words_locale/index.js +0 -114
  426. package/dist/node_modules/date-fns/locale/th/build_distance_in_words_locale/index.js.map +0 -1
  427. package/dist/node_modules/date-fns/locale/th/build_format_locale/index.js +0 -74
  428. package/dist/node_modules/date-fns/locale/th/build_format_locale/index.js.map +0 -1
  429. package/dist/node_modules/date-fns/locale/th/index.js +0 -26
  430. package/dist/node_modules/date-fns/locale/th/index.js.map +0 -1
  431. package/dist/node_modules/date-fns/parse/index.js +0 -346
  432. package/dist/node_modules/date-fns/parse/index.js.map +0 -1
  433. package/dist/node_modules/date-fns/start_of_iso_week/index.js +0 -38
  434. package/dist/node_modules/date-fns/start_of_iso_week/index.js.map +0 -1
  435. package/dist/node_modules/date-fns/start_of_iso_year/index.js +0 -46
  436. package/dist/node_modules/date-fns/start_of_iso_year/index.js.map +0 -1
  437. package/dist/node_modules/date-fns/start_of_week/index.js +0 -51
  438. package/dist/node_modules/date-fns/start_of_week/index.js.map +0 -1
  439. package/dist/rules/src/factories/scatter-dimension.js +0 -35
  440. package/dist/rules/src/factories/scatter-dimension.js.map +0 -1
  441. package/dist/rules/src/factories/stacked-dimension.js +0 -32
  442. package/dist/rules/src/factories/stacked-dimension.js.map +0 -1
  443. package/dist/rules/src/factories/symbol-dimension.js +0 -32
  444. package/dist/rules/src/factories/symbol-dimension.js.map +0 -1
  445. package/dist/rules/src/header/getDefaultSubtitle.js +0 -44
  446. package/dist/rules/src/header/getDefaultSubtitle.js.map +0 -1
  447. package/dist/rules/src/header/getHeaderUnits.js +0 -21
  448. package/dist/rules/src/header/getHeaderUnits.js.map +0 -1
  449. package/dist/rules/src/header/getSubtitleFlags.js +0 -47
  450. package/dist/rules/src/header/getSubtitleFlags.js.map +0 -1
  451. package/dist/rules/src/header/getTitleFlags.js +0 -12
  452. package/dist/rules/src/header/getTitleFlags.js.map +0 -1
  453. package/dist/rules/src/properties/errors.js +0 -22
  454. package/dist/rules/src/properties/errors.js.map +0 -1
  455. package/dist/rules/src/properties/getInformationsStateFromNewProps.js +0 -50
  456. package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +0 -1
  457. package/dist/rules/src/v8-transformer.js +0 -174
  458. package/dist/rules/src/v8-transformer.js.map +0 -1
  459. package/src/bridge-d3-react/src/app.js +0 -64
  460. package/src/bridge-d3-react/src/mock-choro.js +0 -394
  461. package/src/rules/src/factories/scatter-dimension.js +0 -32
  462. package/src/rules/src/factories/stacked-dimension.js +0 -29
  463. package/src/rules/src/factories/symbol-dimension.js +0 -29
  464. package/src/rules/src/header/getDefaultSubtitle.js +0 -40
  465. package/src/rules/src/header/getHeaderUnits.js +0 -17
  466. package/src/rules/src/header/getSubtitleFlags.js +0 -43
  467. package/src/rules/src/header/getTitleFlags.js +0 -8
  468. package/src/rules/src/header/index.js +0 -4
  469. package/src/rules/src/preparators/enhanceObservations.js +0 -152
  470. package/src/rules/src/properties/errors.js +0 -19
  471. package/src/rules/src/properties/getInformationsStateFromNewProps.js +0 -47
  472. package/src/rules/src/properties/information.js +0 -84
  473. package/src/rules/src/v8-transformer.js +0 -177
  474. package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -29
  475. package/src/rules2/src/getMetadataStructureFromData.js +0 -17
  476. package/src/rules2/src/refineMetadataCoordinates.js +0 -28
  477. package/src/rules2/src/table/getCombinationDimensionsData.js +0 -39
@@ -1,23 +1,24 @@
1
- import { findIndex, get, has, head, isEmpty, isNil, map, reduce, sortBy, split } from 'lodash';
1
+ import * as R from 'ramda';
2
2
  import { getTimePeriodDimension } from '@sis-cc/dotstatsuite-sdmxjs';
3
3
  import { categoryDisplay, dimensionValueDisplayAt } from '../dimension-utils';
4
4
  import { getFormatedObservation } from '../observation-formater';
5
5
 
6
6
  const getDimensionValues = (splitObservationKey, dimensions, dimensionsWithValuesIndexedById, rejectedId, display) => (
7
- reduce(
8
- splitObservationKey,
9
- (memo, dimensionValueIndex, dimensionIndex) => {
10
- const dimension = get(dimensions, `[${dimensionIndex}]`, {});
11
- if (has(dimensionsWithValuesIndexedById, dimension.id) && dimension.id !== rejectedId) {
12
- const dimensionValue = get(dimension, `values[${dimensionValueIndex}]`, {});
13
- memo[dimensionValue.id] = {
14
- ...dimensionValue,
15
- name: dimensionValueDisplayAt(dimension, dimensionValueIndex, display)
16
- }
7
+ R.addIndex(R.reduce)(
8
+ (acc, dimensionValueIndex, dimensionIndex) => {
9
+ const dimension = R.nth(dimensionIndex, dimensions) || {};
10
+ if (R.has(dimension.id, dimensionsWithValuesIndexedById) && dimension.id !== rejectedId) {
11
+ const dimensionValue = R.pathOr({}, ['values', dimensionValueIndex], dimension);
12
+ return R.set(
13
+ R.lensPath([dimensionValue.id, 'name']),
14
+ dimensionValueDisplayAt(dimension, dimensionValueIndex, display),
15
+ acc
16
+ );
17
17
  }
18
- return memo;
18
+ return acc;
19
19
  },
20
- {}
20
+ {},
21
+ splitObservationKey,
21
22
  )
22
23
  );
23
24
 
@@ -27,24 +28,23 @@ const series = (
27
28
  timePeriodDimensionIndex,
28
29
  display, formaterAttrs
29
30
  ) => {
30
- const rawSeries = reduce(
31
- observations,
32
- (memo, o, k) => {
33
- const oDimensionValuesIndexes = split(k, ':');
31
+ const rawSeries = R.reduce(
32
+ (acc, k) => {
33
+ const o = observations[k];
34
+ const oDimensionValuesIndexes = R.split(':', k);
34
35
 
35
- const timePeriodDimension = get(dimensions, `[${timePeriodDimensionIndex}]`);
36
- const timePeriodDimensionValueIndex = oDimensionValuesIndexes[timePeriodDimensionIndex];
37
- const timePeriod = get(timePeriodDimension, `values[${timePeriodDimensionValueIndex}]`);
36
+ const timePeriodDimension = R.nth(timePeriodDimensionIndex, dimensions);
37
+ const timePeriodDimensionValueIndex = R.nth(timePeriodDimensionIndex, oDimensionValuesIndexes);
38
+ const timePeriod = R.path(['values', timePeriodDimensionValueIndex], timePeriodDimension);
38
39
 
39
40
  const datapoint = {
40
41
  x: timePeriod.start,
41
- y: head(o),
42
+ y: R.head(o),
42
43
  timeLabel: timePeriod.name,
43
44
  formatedValue: getFormatedObservation(o, formaterAttrs),
44
45
  dimensionValues: getDimensionValues(
45
46
  oDimensionValuesIndexes, dimensions, dimensionsWithValuesIndexedById, timePeriodDimension.id, display
46
47
  ),
47
- //index: Number(timePeriodDimensionValueIndex)
48
48
  };
49
49
 
50
50
  const category = categoryDisplay(
@@ -53,35 +53,31 @@ const series = (
53
53
  let key = categoryDisplay(
54
54
  oDimensionValuesIndexes, dimensions, dimensionsWithValuesIndexedById, timePeriodDimension.id, 'code'
55
55
  );
56
- if (isNil(key) || isEmpty(key)) {
56
+ if (R.isNil(key) || R.isEmpty(key)) {
57
57
  key = 'uniq-dp';
58
58
  }
59
- const serieIndex = findIndex(memo, serie => serie.key === key);
59
+ const serieIndex = R.findIndex(serie => serie.key === key, acc);
60
60
 
61
- if (serieIndex !== -1) memo[serieIndex].datapoints.push(datapoint);
62
- else memo.push({ datapoints: [datapoint], category, key });
61
+ if (serieIndex !== -1)
62
+ return R.over(R.lensPath([serieIndex, 'datapoints']), R.append(datapoint), acc);
63
63
 
64
- return memo;
64
+ return R.append({ datapoints: [datapoint], category, key }, acc);
65
65
  },
66
- []
66
+ [],
67
+ R.keys(observations),
67
68
  );
68
- return map(
69
+ return R.map(
70
+ serie => ({ ...serie, datapoints: R.sortBy(R.prop('x'), serie.datapoints) }),
69
71
  rawSeries,
70
- serie => ({
71
- ...serie,
72
- datapoints: sortBy(
73
- serie.datapoints,
74
- datapoint => datapoint.x
75
- )
76
- })
77
72
  );
78
73
  };
79
74
 
80
75
  export default ({ observations, dimensions }, dimensionsWithValuesIndexedById, display, formaterAttrs) => {
81
76
  const timePeriodDimension = getTimePeriodDimension({ dimensions });
82
- const timePeriodDimensionIndex = timePeriodDimension ? timePeriodDimension.index : -1;
83
- const timePeriodDimensionHasManyPeriods = !has(dimensionsWithValuesIndexedById, get(timePeriodDimension, 'id'));
84
- if ((timePeriodDimensionIndex === -1) || timePeriodDimensionHasManyPeriods) return [];
77
+ const timePeriodDimensionIndex = timePeriodDimension ? timePeriodDimension.__index : -1;
78
+ const timePeriodDimensionHasManyPeriods = !R.has(R.prop('id', timePeriodDimension), dimensionsWithValuesIndexedById);
79
+ if (!timePeriodDimensionIndex || (timePeriodDimensionIndex === -1) || timePeriodDimensionHasManyPeriods)
80
+ return [];
85
81
 
86
82
  return series(
87
83
  observations, dimensions,
@@ -1,5 +1,5 @@
1
1
  import * as R from 'ramda';
2
- import dateFns from 'date-fns';
2
+ import getTime from 'date-fns/getTime'
3
3
  import { getCodeOrder } from '@sis-cc/dotstatsuite-sdmxjs';
4
4
  import { getIsHidden } from './sdmx-data';
5
5
  import {
@@ -42,7 +42,9 @@ export const getValuesEnhanced = ({
42
42
  reportYearStart,
43
43
  hiddenIds = {},
44
44
  options = {},
45
+ selection = []
45
46
  }) => {
47
+ const selectionSet = new Set(selection);
46
48
  return R.pipe(
47
49
  R.addIndex(R.map)((value, __index) => {
48
50
  const id = getId(value, `${parent}-${__index}`);
@@ -63,12 +65,16 @@ export const getValuesEnhanced = ({
63
65
  if (isNaN(__indexPosition)) {
64
66
  __indexPosition = getCodeOrder({ annotations: valueAnnotations });
65
67
  }
68
+ const isSelected = selectionSet.has(value.id) || R.isNil(selection)
69
+ || R.isEmpty(selection) || R.isEmpty(R.head(selection));
66
70
  let res = {
67
71
  // names is explicitely skipped because of metadata "standard"
68
72
  // not completely aligned with NSI "standard"
69
73
  // value is explicitely skipped (non-coded) into id
70
74
  ...R.omit(['names', 'value'], value),
71
75
  id,
76
+ isSelected,
77
+ empty: !isSelected,
72
78
  display: !isHidden,
73
79
  start: start ? start.toISOString() : null,
74
80
  flags: notes,
@@ -102,7 +108,7 @@ export const getValuesEnhanced = ({
102
108
  );
103
109
  };
104
110
 
105
- const getDateForSort = (key) => (val) => dateFns.getTime(new Date(R.prop(key, val)));
111
+ const getDateForSort = (key) => (val) => getTime(new Date(R.prop(key, val)));
106
112
  const byStartDate = R.ascend(getDateForSort('start'));
107
113
  const byEndDate = R.descend(getDateForSort('end'));
108
114
  const timeDimensionSorts = [byStartDate, byEndDate];
@@ -1,400 +1,23 @@
1
- import {
2
- get, partition, reject, isEmpty, map, compact, size, keyBy, pick, omit, isNil, flatten, reduce,
3
- filter, find, includes, isArray, findIndex, isEqual
4
- } from 'lodash';
5
- import * as R from 'ramda';
6
- import memoizee from 'memoizee';
7
- import __sampleSeries from './factories/sample-series';
8
- import __sampleFocus from './factories/sample-focus';
9
- import __scatterSeries from './factories/scatter-series';
10
- import __scatterFocus from './factories/scatter-focus';
11
- import __scatterDimension from './factories/scatter-dimension';
12
- import __symbolSeries from './factories/symbol-series';
13
- import __symbolDimension from './factories/symbol-dimension';
14
- import __timelineSeries from './factories/timeline-series';
15
- import __timelineFocus from './factories/timeline-focus';
16
- import __stackedSeries from './factories/stacked-series';
17
- import __stackedDimension from './factories/stacked-dimension';
18
- import __choroSeries from './factories/choro-series';
19
- import {
20
- DEFAULT_UPR_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS, DEFAULT_REJECTED_SUBTITLE_IDS,
21
- FREQ_A, FREQ_Q, FREQ_M
22
- } from './constants';
23
- import { dimensionValueDisplay } from './dimension-utils';
24
- import { getObservationsFormaterAttributes } from './observation-formater';
25
-
26
- export const freqA = FREQ_A;
27
- export const freqQ = FREQ_Q;
28
- export const freqM = FREQ_M;
29
-
30
- // --------------------------------------------------------------------------------extractSdmxErrors
31
- const _extractSdmxErrors = (data) => R.compose(
32
- (errors) => map(errors, (error) => ({ label: error.code, description: error.message })),
33
- (data) => get(data, 'errors', [])
34
- );
35
- export const extractSdmxErrors = memoizee(_extractSdmxErrors);
36
-
37
- export const extractDataName = (data) => R.pathOr(null, ['structure', 'name'], data);
38
-
39
- // -----------------------------------------------------------------------------extractSdmxArtefacts
40
- const _extractSdmxArtefacts = (data) => {
41
- const parseStructure = (data) => get(data, 'structure', {});
42
- const parseItem = (item) => parseComponents(get(item, 'observation', []));
43
- const parseDimensions = (structure) => parseItem(get(structure, 'dimensions', {}));
44
- const parseAttributes = (structure) => parseItem(get(structure, 'attributes', {}));
45
- const parseComponents = (components) => map(components, parseComponent);
46
- const parseComponent = (component, index) => {
47
- let parsed = { ...pick(component, 'id', 'name', 'values', 'role', 'isHidden'), index };
48
- if (isEmpty(parsed))
49
- return parsed;
50
- if (isNil(parsed.role))
51
- parsed.role = parsed.id;
52
- parsed.values = R.sortBy(R.prop('__index'))(parsed.values);
53
- return parsed;
54
- };
55
- const parseDatasetItem = (item) => parseComponents(get(item, 'dataSet', []));
56
- const parseDatasetAttributes = (structure) => parseDatasetItem(get(structure, 'attributes', {}));
57
-
58
- return {
59
- attributes: parseAttributes(parseStructure(data)),
60
- datasetAttributes: parseDatasetAttributes(parseStructure(data)),
61
- dimensions: parseDimensions(parseStructure(data)),
62
- id: get(data, 'header.id', null),
63
- name: extractDataName(data),
64
- observations: R.pipe(
65
- R.pathOr({}, ['dataSets', 0, 'observations']),
66
- R.mapObjIndexed(obs => R.over(R.lensIndex(0), val => R.isNil(val) ? null : Number(val))(obs)),
67
- R.reject(R.pipe(R.head, R.anyPass([R.isNil, isNaN]))),
68
- )(data),
69
- source: get(data, 'header.links[0].href', null),
70
- };
71
- };
72
- export const extractSdmxArtefacts = memoizee(_extractSdmxArtefacts);
73
-
74
- const _getRelevantsDatasetAttributes = (data) => {
75
- const { datasetAttributes } = extractSdmxArtefacts(data);
76
- return filter(datasetAttributes, attr => size(attr.values) === 1);
77
- };
78
- export const getRelevantsDatasetAttributes = memoizee(_getRelevantsDatasetAttributes);
79
-
80
- // -------------------------------------------------------------------------------getDimensionValues
81
- export const getDimensionValues = (dimension) => get(dimension, 'values', []);
82
-
83
- // ----------------------------------------------------------------------------------splitDimensions
84
- const _splitDimensions = (data) => {
85
- const { dimensions } = extractSdmxArtefacts(data);
86
- const [value, values] = partition(
87
- reject(dimensions, R.compose(isEmpty, getDimensionValues)),
88
- R.compose((values) => size(values) === 1, getDimensionValues)
89
- );
90
- return { value, values };
91
- }
92
- export const splitDimensions = memoizee(_splitDimensions);
93
-
94
- // ------------------------------------------------------------------dimensionsWithValuesIndexedById
95
- const _dimensionsWithValuesIndexedById = (data) => R.compose(
96
- (dimensionsWithValues) => keyBy(dimensionsWithValues, 'id'),
97
- (split) => split.values,
98
- splitDimensions
99
- )(data);
100
- export const dimensionsWithValuesIndexedById = memoizee(_dimensionsWithValuesIndexedById);
101
-
102
- // -------------------------------------------------------------------------------------parseDisplay
103
- const _parseDisplay = (display) =>
104
- (isNil(display) || !(includes(['both', 'code'], display)))
105
- ? 'label' : display;
106
- export const parseDisplay = memoizee(_parseDisplay);
107
-
108
- // -------------------------------------------------------------------------------------sampleSeries
109
- const _sampleSeries = (data, type, display, formaterIds) => __sampleSeries(
110
- type,
111
- extractSdmxArtefacts(data),
112
- dimensionsWithValuesIndexedById(data),
113
- parseDisplay(display),
114
- getObservationsFormaterAttributes(data, formaterIds)
115
- );
116
- export const sampleSeries = memoizee(_sampleSeries);
117
-
118
- // ---------------------------------------------------------------------------------scatterDimension
119
- const _scatterDimension = (data, ids) => {
120
- const { values } = splitDimensions(data);
121
- return __scatterDimension(values, ids);
122
- };
123
- export const scatterDimension = memoizee(_scatterDimension);
124
-
125
- // ----------------------------------------------------------------------------------symbolDimension
126
- const _symbolDimension = (data, ids) => {
127
- const { values } = splitDimensions(data);
128
- return __symbolDimension(values, ids);
129
- };
130
- export const symbolDimension = memoizee(_symbolDimension);
131
-
132
- const _stackedDimension = (data, singularity) => {
133
- return __stackedDimension(splitDimensions(data), singularity);
134
- }
135
- export const stackedDimension = memoizee(_stackedDimension);
136
-
137
- // ------------------------------------------------------------------------------------scatterSeries
138
- const _scatterSeries = (data, ids, display, formaterIds) => __scatterSeries(
139
- extractSdmxArtefacts(data),
140
- dimensionsWithValuesIndexedById(data),
141
- scatterDimension(data, ids),
142
- parseDisplay(display),
143
- getObservationsFormaterAttributes(data, formaterIds)
144
- );
145
- export const scatterSeries = memoizee(_scatterSeries);
146
-
147
- // -------------------------------------------------------------------------------------symbolSeries
148
- const _symbolSeries = (data, type, ids, display, formaterIds) => __symbolSeries(
149
- extractSdmxArtefacts(data),
150
- type,
151
- dimensionsWithValuesIndexedById(data),
152
- symbolDimension(data, ids),
153
- parseDisplay(display),
154
- getObservationsFormaterAttributes(data, formaterIds)
155
- );
156
- export const symbolSeries = memoizee(_symbolSeries);
157
-
158
- // -----------------------------------------------------------------------------------timelineSeries
159
- const _timelineSeries = (data, display, formaterIds) => __timelineSeries(
160
- extractSdmxArtefacts(data),
161
- dimensionsWithValuesIndexedById(data),
162
- parseDisplay(display),
163
- getObservationsFormaterAttributes(data, formaterIds)
164
- );
165
- export const timelineSeries = memoizee(_timelineSeries);
166
-
167
- const _stackedSeries = (data, singularity, display, formaterIds, [stackKey, categoryKey]) => __stackedSeries(
168
- extractSdmxArtefacts(data),
169
- dimensionsWithValuesIndexedById(data),
170
- stackedDimension(data, singularity),
171
- parseDisplay(display),
172
- getObservationsFormaterAttributes(data, formaterIds),
173
- [stackKey, categoryKey]
174
- );
175
- export const stackedSeries = memoizee(_stackedSeries);
176
-
177
- // --------------------------------------------------------------------------------------choroSeries
178
- const _choroSeries = (data, map, display) => __choroSeries(
179
- extractSdmxArtefacts(data),
180
- dimensionsWithValuesIndexedById(data),
181
- map,
182
- parseDisplay(display)
183
- );
184
- export const choroSeries = memoizee(_choroSeries);
185
-
186
- // -------------------------------------------------------------------------------------------series
187
- const _series = (data, type, focus, singularity, map, display, formaterIds) => {
188
- switch(type) {
189
- case 'RowChart': case 'BarChart':
190
- return __sampleFocus(sampleSeries(data, type, display, formaterIds), focus);
191
- case 'ScatterChart':
192
- return __scatterFocus(scatterSeries(data, singularity, display, formaterIds), focus);
193
- case 'HorizontalSymbolChart': case 'VerticalSymbolChart':
194
- return __sampleFocus(symbolSeries(data, type, singularity, display, formaterIds), focus);
195
- case 'TimelineChart':
196
- return __timelineFocus(timelineSeries(data, display, formaterIds), focus);
197
- case 'StackedBarChart':
198
- return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['y', 'x']), focus);
199
- case 'StackedRowChart':
200
- return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['x', 'y']), focus);
201
- case 'ChoroplethChart':
202
- return choroSeries(data, map, display);
203
- }
204
- };
205
- export const series = memoizee(_series);
206
-
207
- // -------------------------------------------------------------------------------------------source
208
- const _source = (data, config, meta) => {
209
- const hasSource = get(meta, 'hasSource', true);
210
- if (!hasSource)
211
- return null;
212
- const source = get(config, 'source', null);
213
- if (source && !(isEmpty(source)))
214
- return source;
215
- const artefacts = extractSdmxArtefacts(data);
216
- const uri = get(artefacts, 'source');
217
- if (!uri)
218
- return get(config, 'defaultSource', null);
219
- const match = uri.match(/(^http.*)\/SDMX-JSON\/data\/([^\/]+)\//);
220
- if (size(match) !== 3)
221
- return null;
222
- const [m, domain, dataset] = match;
223
- return `${domain}/Index.aspx?DataSetCode=${dataset}`; //tmp
224
- };
225
- export const source = memoizee(_source);
226
-
227
- // --------------------------------------------------------------------------------------------focus
228
- const _focus = (data, type, dimension, _display) => {
229
- const display = parseDisplay(_display);
230
- switch(type) {
231
- case 'RowChart': case 'BarChart':
232
- case 'HorizontalSymbolChart': case 'VerticalSymbolChart':
233
- case 'StackedBarChart': case 'StackedRowChart':
234
- return R.compose(
235
- (datapoints) => map(datapoints, (dp) => ({ label: dp.category, value: dp.key })),
236
- (series) => series[0].datapoints,
237
- series
238
- )(data, type, null, dimension, null, display);
239
- case 'TimelineChart':
240
- return R.compose(
241
- (series) => map(series, (serie) => ({ label: serie.category, value: serie.key })),
242
- series
243
- )(data, type, null, dimension, null, display)
244
- case 'ScatterChart':
245
- const id = get(dimension, 'id');
246
- if (isNil(id)) return [];
247
- const dimensions = R.compose(
248
- (dimensions) => omit(dimensions, id),
249
- dimensionsWithValuesIndexedById
250
- )(data);
251
- return flatten(map(
252
- dimensions,
253
- (dimension) => {
254
- return map(
255
- get(dimension, 'values'),
256
- (value) => ({
257
- label: `${dimensionValueDisplay(display)(dimension)} - ${dimensionValueDisplay(display)(value)}`,
258
- options: { dimensionId: dimension.id, dimensionValueId: value.id },
259
- value: `${dimension.id}-${value.id}`
260
- })
261
- )
262
- }
263
- ));
264
- }
265
- };
266
- export const focus = memoizee(_focus);
267
-
268
- const _parseFocus = (data, type, dimension, display, { baseline, highlight }) => {
269
- const options = focus(data, type, dimension, display);
270
-
271
- const parseSelection = selection => compact(map(selection, ({ value }) => find(options, option => isEqual(option.value, value))));
272
- return ({ baseline: parseSelection(baseline), highlight: parseSelection(highlight) });
273
- };
274
- export const parseFocus = memoizee(_parseFocus);
275
-
276
- const _defaultSubtitle = (data, display, REJECTED_SUBTITLE_IDS = DEFAULT_REJECTED_SUBTITLE_IDS) => {
277
- const { value } = splitDimensions(data);
278
- const values = reduce(
279
- R.reject(R.prop('isHidden'))(value),
280
- (memo, d) => {
281
- const dvId = get(d, 'values[0].id');
282
- if (!includes(REJECTED_SUBTITLE_IDS, dvId)) {
283
- memo.push(`${dimensionValueDisplay(display)(d)}: ${dimensionValueDisplay(display)(get(d, 'values[0]'))}`);
284
- }
285
- return memo;
286
- },
287
- []
288
- );
289
- return values;
290
- }
291
- export const defaultSubtitle = memoizee(_defaultSubtitle);
292
-
293
- const _uprAttributes = (attributes, UPR_IDS = DEFAULT_UPR_IDS) => (
294
- reduce(
295
- UPR_IDS,
296
- (memo, ids, uprKey) => {
297
- const attr = find(attributes, attribute => includes(ids, get(attribute, 'id')));
298
- if (attr) {
299
- memo[uprKey] = attr;
300
- }
301
- return memo;
302
- },
303
- {}
304
- )
305
- );
306
- export const uprAttributes = memoizee(_uprAttributes);
307
-
308
- const _uprAttributesWithOneRelevantValue = (uprAttributes, UPR_IDS = DEFAULT_UPR_IDS, REJECTED_UPR_VALUES_IDS = DEFAULT_REJECTED_UPR_VALUES_IDS) => reduce(
309
- uprAttributes,
310
- (memo, attr, key) => {
311
- if (size(get(attr, 'values', [])) === 1 && !(includes(REJECTED_UPR_VALUES_IDS[key], get(attr, 'values[0].id', ''))))
312
- memo[key] = attr;
313
- return memo;
314
- },
315
- {}
316
- );
317
- export const uprAttributesWithOneRelevantValue = memoizee(_uprAttributesWithOneRelevantValue);
318
-
319
- export const headerUprsLabel = display => uprAttributes => {
320
- return map(
321
- uprAttributes,
322
- attr => dimensionValueDisplay(display)(get(attr, 'values[0]'))
323
- ).join(', ');
324
- }
325
-
326
- export const getUprs = (data, display) => R.compose(
327
- headerUprsLabel(parseDisplay(display)),
328
- uprAttributesWithOneRelevantValue,
329
- ({ attributes }) => uprAttributes(attributes),
330
- extractSdmxArtefacts
331
- )(data);
332
-
333
- const _header = (data, _title, _subtitle, _display) => {
334
- const display = parseDisplay(_display);
335
- const title = (isNil(_title) || isEmpty(_title)) ? get(data, 'structure.name') : _title;
336
- const subtitle = (isNil(_subtitle) || isEmpty(_subtitle)) ? defaultSubtitle(data, display) : _subtitle;
337
- return ({
338
- title,
339
- subtitle: isArray(subtitle) ? subtitle : [subtitle],
340
- uprs: R.compose(
341
- headerUprsLabel(display),
342
- uprAttributesWithOneRelevantValue,
343
- ({ attributes }) => uprAttributes(attributes),
344
- extractSdmxArtefacts
345
- )(data)
346
- });
347
- };
348
- export const header = memoizee(_header);
349
-
350
- const _sourceLabel = (data, label) => (
351
- (isNil(label) || isEmpty(label)) ? extractSdmxArtefacts(data).name : label
352
- );
353
- export const sourceLabel = memoizee(_sourceLabel);
354
-
355
- const _getTopologyAreasCollections = (topology) => map(topology.objects, (entry, key) => key);
356
- export const getTopologyAreasCollections = memoizee(_getTopologyAreasCollections);
357
-
358
- const _isNonIdealState = (data, type, map) => {
359
- const defaultSeries = series(data, type, null, null, map);
360
- if (type === 'ChoroplethChart')
361
- {
362
- return findIndex(get(defaultSeries, 'objects.areas.geometries', []), geometry => get(geometry, 'properties.value', null)) === -1;
363
- }
364
- return isEmpty(get(defaultSeries, '[0].datapoints', []));
365
- }
366
- export const isNonIdealState = memoizee(_isNonIdealState);
367
-
368
- export { dimensionValueDisplay } from './dimension-utils';
369
- export { DEFAULT_UPR_IDS, DIMENSION_DISPLAY_PARTS, DEFAULT_MAJOR_ATTRIBUTES, V8_SDMX_JSON,
370
- TYPES as chartTypes } from './constants';
1
+ export { dimensionValueDisplay, parseDisplay } from './dimension-utils';
371
2
  export {
372
- initialState,
373
3
  stateFromNewProps,
374
- onChangeProperties,
375
- toChartData,
376
4
  toChartOptions,
377
5
  toProperties,
378
- getErrors,
379
6
  toSingularity
380
7
  } from './properties';
381
- export { dataTransformer as v8Transformer } from './v8-transformer';
382
- export {
383
- getCellValue,
384
- } from './table';
8
+ export { parseFocus } from './properties/focus';
385
9
  export {
386
10
  getFullName,
387
11
  } from './sdmx-data';
388
12
  export { getTimePeriodLabel } from './date';
389
- export { getHeaderProps, getFooterProps, } from './properties/getHeaderProps';
390
- export { getInformationsStateFromNewProps } from './properties/getInformationsStateFromNewProps';
391
- export { getObservationsType } from './properties/getObservationsType';
13
+ export { getFooterProps } from './properties/getHeaderProps';
392
14
  export { getAvailableChartTypes } from './properties/getAvailableChartTypes';
393
15
  export { isSharedLayoutCompatible } from './layout';
394
16
 
395
17
  export { getObservations } from './preparators/getObservations';
396
18
 
397
- export const getFlags = R.identity;
398
- export const prepareData = R.identity;
399
19
 
400
- export { getChartOptions } from './chart/getChartOptions';
20
+ export { getCellValue } from './table';
21
+ export { getChartOptions } from './chart/getChartOptions';
22
+ export { getReportingYearStart } from './preparators/getReportingYearStart';
23
+ export { getChartSeries } from './factories/getChartSeries';
@@ -11,12 +11,14 @@ import {
11
11
  refineDimensions,
12
12
  parseCombinationDefinition
13
13
  } from '../../rules2/src';
14
+ import { getReportingYearStart } from './/preparators/getReportingYearStart';
14
15
 
15
16
  const isTableLayoutCompatible = (data, layout, combinationsDefinitions = [], dataquery = '') => {
16
17
  const indexedCombinations = R.indexBy(R.prop('id'), combinationsDefinitions);
18
+ const reportYearStart = getReportingYearStart(data);
17
19
  const indexedManyValuesDimensions = R.pipe(
18
20
  R.pathOr([], ['structure', 'dimensions', 'observation']),
19
- dimensions => refineDimensions(dimensions, dataquery),
21
+ dimensions => refineDimensions({ dimensions, options: { dataquery, reportYearStart } }),
20
22
  R.reject(d => R.prop('header', d) || !R.length(d.values || [])),
21
23
  R.indexBy(R.prop('id'))
22
24
  )(data);
@@ -43,7 +45,7 @@ const isScatterLayoutCompatible = (data, chartDimension) => {
43
45
 
44
46
  const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);
45
47
 
46
- const dimension = R.find(R.propEq('id', id), dimensions);
48
+ const dimension = R.find(R.propEq(id, 'id'), dimensions);
47
49
  if (R.isNil(dimension)) {
48
50
  return false;
49
51
  }
@@ -1,18 +1,16 @@
1
- import memoizee from 'memoizee';
2
1
  import numeral from 'numeral';
3
2
  import * as R from 'ramda';
4
- import { extractSdmxArtefacts } from './';
5
3
 
6
- export const DEFAULT_PREFSCALE_ATTR_IDS = ["PREF_SCALE"];
4
+ const DEFAULT_PREFSCALE_ATTR_IDS = ["PREF_SCALE"];
7
5
 
8
- export const DEFAULT_DECIMALS_ATTR_IDS = ["DECIMALS"];
6
+ const DEFAULT_DECIMALS_ATTR_IDS = ["DECIMALS"];
9
7
 
10
- export const getFormaterAttribute = (ids, attributes) => R.find(
8
+ const getFormaterAttribute = (ids, attributes) => R.find(
11
9
  (attr) => R.includes(attr.id, ids),
12
10
  attributes
13
11
  );
14
12
 
15
- export const parseAttributeFormaterIds = (ids = {}) => {
13
+ const parseAttributeFormaterIds = (ids = {}) => {
16
14
  let prefscale = R.prop('prefscale', ids);
17
15
  let decimals = R.prop('decimals', ids);
18
16
  decimals = R.isNil(decimals) ? DEFAULT_DECIMALS_ATTR_IDS : decimals;
@@ -23,30 +21,26 @@ export const parseAttributeFormaterIds = (ids = {}) => {
23
21
  });
24
22
  }
25
23
 
26
- export const _getObservationsFormaterAttributes = (data, ids) => R.pipe(
27
- extractSdmxArtefacts,
28
- ({ attributes }) => {
29
- const { decimals, prefscale } = parseAttributeFormaterIds(ids);
30
- return ({
31
- decimals: getFormaterAttribute(decimals, attributes),
32
- prefscale: getFormaterAttribute(prefscale, attributes)
33
- });
34
- }
35
- )(data);
36
- export const getObservationsFormaterAttributes = memoizee(_getObservationsFormaterAttributes);
24
+ export const getObservationsFormaterAttributes = (attributes = [], ids = {}) => {
25
+ const { decimals, prefscale } = parseAttributeFormaterIds(ids);
26
+ return ({
27
+ decimals: getFormaterAttribute(decimals, attributes),
28
+ prefscale: getFormaterAttribute(prefscale, attributes)
29
+ });
30
+ };
37
31
 
38
- export const getObservationFormaterValue = (observation, attribute) => {
32
+ const getObservationFormaterValue = (observation, attribute) => {
39
33
  const attributeIndex = R.prop('index', attribute);
40
34
  const attributeValueIndex = R.nth(attributeIndex, observation);
41
35
  return R.nth(attributeValueIndex, R.propOr([], 'values', attribute));
42
36
  }
43
37
 
44
- export const getObservationFormaterValues = (formaterAttributes) => (observation) => ({
38
+ const getObservationFormaterValues = (formaterAttributes) => (observation) => ({
45
39
  decimals: getObservationFormaterValue(observation, R.prop('decimals', formaterAttributes)),
46
40
  prefscale: getObservationFormaterValue(observation, R.prop('prefscale', formaterAttributes)),
47
41
  });
48
42
 
49
- export const makeObservationFormater = (formaterValues) => {
43
+ const makeObservationFormater = (formaterValues) => {
50
44
  let prefscale = 0;
51
45
  if (!R.isNil(R.prop('prefscale', formaterValues))) {
52
46
  prefscale = Number(R.propOr('0', 'id', formaterValues.prefscale));