@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,379 +1,14 @@
1
- import { get, reduce, map, filter, size, partition, reject, isEmpty, keyBy, isNil, includes, omit, flatten, compact, find, isArray, findIndex, isEqual, pick } from 'lodash';
2
- import * as R from 'ramda';
3
- import memoizee from 'memoizee';
4
- import __sampleSeries from './factories/sample-series.js';
5
- import focus$1 from './factories/sample-focus.js';
6
- import __scatterSeries from './factories/scatter-series.js';
7
- import focus$3 from './factories/scatter-focus.js';
8
- import __scatterDimension from './factories/scatter-dimension.js';
9
- import __symbolSeries from './factories/symbol-series.js';
10
- import __symbolDimension from './factories/symbol-dimension.js';
11
- import __timelineSeries from './factories/timeline-series.js';
12
- import focus$2 from './factories/timeline-focus.js';
13
- import __stackedSeries from './factories/stacked-series.js';
14
- import __stackedDimension from './factories/stacked-dimension.js';
15
- import __choroSeries from './factories/choro-series.js';
16
- import { FREQ_A, FREQ_Q, FREQ_M, DEFAULT_REJECTED_SUBTITLE_IDS, DEFAULT_UPR_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS } from './constants.js';
17
- export { DEFAULT_MAJOR_ATTRIBUTES, DIMENSION_DISPLAY_PARTS, V8_SDMX_JSON, TYPES as chartTypes } from './constants.js';
18
- import { dimensionValueDisplay } from './dimension-utils.js';
19
- import { getObservationsFormaterAttributes } from './observation-formater.js';
20
- export { getErrors, initialState, onChangeProperties, stateFromNewProps, toChartData, toChartOptions, toProperties, toSingularity } from './properties/index.js';
21
- export { dataTransformer as v8Transformer } from './v8-transformer.js';
1
+ export { dimensionValueDisplay, parseDisplay } from './dimension-utils.js';
2
+ export { stateFromNewProps, toChartOptions, toProperties, toSingularity } from './properties/index.js';
3
+ export { parseFocus } from './properties/focus.js';
22
4
  export { getFullName } from './sdmx-data/index.js';
23
5
  export { getTimePeriodLabel } from './date.js';
24
- export { getFooterProps, getHeaderProps } from './properties/getHeaderProps.js';
25
- export { getInformationsStateFromNewProps } from './properties/getInformationsStateFromNewProps.js';
26
- export { getObservationsType } from './properties/getObservationsType.js';
6
+ export { getFooterProps } from './properties/getHeaderProps.js';
27
7
  export { getAvailableChartTypes } from './properties/getAvailableChartTypes.js';
28
8
  export { isSharedLayoutCompatible } from './layout.js';
29
9
  export { getObservations } from './preparators/getObservations.js';
30
10
  export { getChartOptions } from './chart/getChartOptions.js';
11
+ export { getReportingYearStart } from './preparators/getReportingYearStart.js';
12
+ export { getChartSeries } from './factories/getChartSeries.js';
31
13
  export { getCellValue } from './table/factories/getCellValue.js';
32
-
33
- const freqA = FREQ_A;
34
- const freqQ = FREQ_Q;
35
- const freqM = FREQ_M;
36
-
37
- // --------------------------------------------------------------------------------extractSdmxErrors
38
- const _extractSdmxErrors = (data) => R.compose(
39
- (errors) => map(errors, (error) => ({ label: error.code, description: error.message })),
40
- (data) => get(data, 'errors', [])
41
- );
42
- const extractSdmxErrors = memoizee(_extractSdmxErrors);
43
-
44
- const extractDataName = (data) => R.pathOr(null, ['structure', 'name'], data);
45
-
46
- // -----------------------------------------------------------------------------extractSdmxArtefacts
47
- const _extractSdmxArtefacts = (data) => {
48
- const parseStructure = (data) => get(data, 'structure', {});
49
- const parseItem = (item) => parseComponents(get(item, 'observation', []));
50
- const parseDimensions = (structure) => parseItem(get(structure, 'dimensions', {}));
51
- const parseAttributes = (structure) => parseItem(get(structure, 'attributes', {}));
52
- const parseComponents = (components) => map(components, parseComponent);
53
- const parseComponent = (component, index) => {
54
- let parsed = { ...pick(component, 'id', 'name', 'values', 'role', 'isHidden'), index };
55
- if (isEmpty(parsed))
56
- return parsed;
57
- if (isNil(parsed.role))
58
- parsed.role = parsed.id;
59
- parsed.values = R.sortBy(R.prop('__index'))(parsed.values);
60
- return parsed;
61
- };
62
- const parseDatasetItem = (item) => parseComponents(get(item, 'dataSet', []));
63
- const parseDatasetAttributes = (structure) => parseDatasetItem(get(structure, 'attributes', {}));
64
-
65
- return {
66
- attributes: parseAttributes(parseStructure(data)),
67
- datasetAttributes: parseDatasetAttributes(parseStructure(data)),
68
- dimensions: parseDimensions(parseStructure(data)),
69
- id: get(data, 'header.id', null),
70
- name: extractDataName(data),
71
- observations: R.pipe(
72
- R.pathOr({}, ['dataSets', 0, 'observations']),
73
- R.mapObjIndexed(obs => R.over(R.lensIndex(0), val => R.isNil(val) ? null : Number(val))(obs)),
74
- R.reject(R.pipe(R.head, R.anyPass([R.isNil, isNaN]))),
75
- )(data),
76
- source: get(data, 'header.links[0].href', null),
77
- };
78
- };
79
- const extractSdmxArtefacts = memoizee(_extractSdmxArtefacts);
80
-
81
- const _getRelevantsDatasetAttributes = (data) => {
82
- const { datasetAttributes } = extractSdmxArtefacts(data);
83
- return filter(datasetAttributes, attr => size(attr.values) === 1);
84
- };
85
- const getRelevantsDatasetAttributes = memoizee(_getRelevantsDatasetAttributes);
86
-
87
- // -------------------------------------------------------------------------------getDimensionValues
88
- const getDimensionValues = (dimension) => get(dimension, 'values', []);
89
-
90
- // ----------------------------------------------------------------------------------splitDimensions
91
- const _splitDimensions = (data) => {
92
- const { dimensions } = extractSdmxArtefacts(data);
93
- const [value, values] = partition(
94
- reject(dimensions, R.compose(isEmpty, getDimensionValues)),
95
- R.compose((values) => size(values) === 1, getDimensionValues)
96
- );
97
- return { value, values };
98
- };
99
- const splitDimensions = memoizee(_splitDimensions);
100
-
101
- // ------------------------------------------------------------------dimensionsWithValuesIndexedById
102
- const _dimensionsWithValuesIndexedById = (data) => R.compose(
103
- (dimensionsWithValues) => keyBy(dimensionsWithValues, 'id'),
104
- (split) => split.values,
105
- splitDimensions
106
- )(data);
107
- const dimensionsWithValuesIndexedById = memoizee(_dimensionsWithValuesIndexedById);
108
-
109
- // -------------------------------------------------------------------------------------parseDisplay
110
- const _parseDisplay = (display) =>
111
- (isNil(display) || !(includes(['both', 'code'], display)))
112
- ? 'label' : display;
113
- const parseDisplay = memoizee(_parseDisplay);
114
-
115
- // -------------------------------------------------------------------------------------sampleSeries
116
- const _sampleSeries = (data, type, display, formaterIds) => __sampleSeries(
117
- type,
118
- extractSdmxArtefacts(data),
119
- dimensionsWithValuesIndexedById(data),
120
- parseDisplay(display),
121
- getObservationsFormaterAttributes(data, formaterIds)
122
- );
123
- const sampleSeries = memoizee(_sampleSeries);
124
-
125
- // ---------------------------------------------------------------------------------scatterDimension
126
- const _scatterDimension = (data, ids) => {
127
- const { values } = splitDimensions(data);
128
- return __scatterDimension(values, ids);
129
- };
130
- const scatterDimension = memoizee(_scatterDimension);
131
-
132
- // ----------------------------------------------------------------------------------symbolDimension
133
- const _symbolDimension = (data, ids) => {
134
- const { values } = splitDimensions(data);
135
- return __symbolDimension(values, ids);
136
- };
137
- const symbolDimension = memoizee(_symbolDimension);
138
-
139
- const _stackedDimension = (data, singularity) => {
140
- return __stackedDimension(splitDimensions(data), singularity);
141
- };
142
- const stackedDimension = memoizee(_stackedDimension);
143
-
144
- // ------------------------------------------------------------------------------------scatterSeries
145
- const _scatterSeries = (data, ids, display, formaterIds) => __scatterSeries(
146
- extractSdmxArtefacts(data),
147
- dimensionsWithValuesIndexedById(data),
148
- scatterDimension(data, ids),
149
- parseDisplay(display),
150
- getObservationsFormaterAttributes(data, formaterIds)
151
- );
152
- const scatterSeries = memoizee(_scatterSeries);
153
-
154
- // -------------------------------------------------------------------------------------symbolSeries
155
- const _symbolSeries = (data, type, ids, display, formaterIds) => __symbolSeries(
156
- extractSdmxArtefacts(data),
157
- type,
158
- dimensionsWithValuesIndexedById(data),
159
- symbolDimension(data, ids),
160
- parseDisplay(display),
161
- getObservationsFormaterAttributes(data, formaterIds)
162
- );
163
- const symbolSeries = memoizee(_symbolSeries);
164
-
165
- // -----------------------------------------------------------------------------------timelineSeries
166
- const _timelineSeries = (data, display, formaterIds) => __timelineSeries(
167
- extractSdmxArtefacts(data),
168
- dimensionsWithValuesIndexedById(data),
169
- parseDisplay(display),
170
- getObservationsFormaterAttributes(data, formaterIds)
171
- );
172
- const timelineSeries = memoizee(_timelineSeries);
173
-
174
- const _stackedSeries = (data, singularity, display, formaterIds, [stackKey, categoryKey]) => __stackedSeries(
175
- extractSdmxArtefacts(data),
176
- dimensionsWithValuesIndexedById(data),
177
- stackedDimension(data, singularity),
178
- parseDisplay(display),
179
- getObservationsFormaterAttributes(data, formaterIds),
180
- [stackKey, categoryKey]
181
- );
182
- const stackedSeries = memoizee(_stackedSeries);
183
-
184
- // --------------------------------------------------------------------------------------choroSeries
185
- const _choroSeries = (data, map, display) => __choroSeries(
186
- extractSdmxArtefacts(data),
187
- dimensionsWithValuesIndexedById(data),
188
- map,
189
- parseDisplay(display)
190
- );
191
- const choroSeries = memoizee(_choroSeries);
192
-
193
- // -------------------------------------------------------------------------------------------series
194
- const _series = (data, type, focus, singularity, map, display, formaterIds) => {
195
- switch(type) {
196
- case 'RowChart': case 'BarChart':
197
- return focus$1(sampleSeries(data, type, display, formaterIds), focus);
198
- case 'ScatterChart':
199
- return focus$3(scatterSeries(data, singularity, display, formaterIds), focus);
200
- case 'HorizontalSymbolChart': case 'VerticalSymbolChart':
201
- return focus$1(symbolSeries(data, type, singularity, display, formaterIds), focus);
202
- case 'TimelineChart':
203
- return focus$2(timelineSeries(data, display, formaterIds), focus);
204
- case 'StackedBarChart':
205
- return focus$1(stackedSeries(data, singularity, display, formaterIds, ['y', 'x']), focus);
206
- case 'StackedRowChart':
207
- return focus$1(stackedSeries(data, singularity, display, formaterIds, ['x', 'y']), focus);
208
- case 'ChoroplethChart':
209
- return choroSeries(data, map, display);
210
- }
211
- };
212
- const series = memoizee(_series);
213
-
214
- // -------------------------------------------------------------------------------------------source
215
- const _source = (data, config, meta) => {
216
- const hasSource = get(meta, 'hasSource', true);
217
- if (!hasSource)
218
- return null;
219
- const source = get(config, 'source', null);
220
- if (source && !(isEmpty(source)))
221
- return source;
222
- const artefacts = extractSdmxArtefacts(data);
223
- const uri = get(artefacts, 'source');
224
- if (!uri)
225
- return get(config, 'defaultSource', null);
226
- const match = uri.match(/(^http.*)\/SDMX-JSON\/data\/([^\/]+)\//);
227
- if (size(match) !== 3)
228
- return null;
229
- const [m, domain, dataset] = match;
230
- return `${domain}/Index.aspx?DataSetCode=${dataset}`; //tmp
231
- };
232
- const source = memoizee(_source);
233
-
234
- // --------------------------------------------------------------------------------------------focus
235
- const _focus = (data, type, dimension, _display) => {
236
- const display = parseDisplay(_display);
237
- switch(type) {
238
- case 'RowChart': case 'BarChart':
239
- case 'HorizontalSymbolChart': case 'VerticalSymbolChart':
240
- case 'StackedBarChart': case 'StackedRowChart':
241
- return R.compose(
242
- (datapoints) => map(datapoints, (dp) => ({ label: dp.category, value: dp.key })),
243
- (series) => series[0].datapoints,
244
- series
245
- )(data, type, null, dimension, null, display);
246
- case 'TimelineChart':
247
- return R.compose(
248
- (series) => map(series, (serie) => ({ label: serie.category, value: serie.key })),
249
- series
250
- )(data, type, null, dimension, null, display)
251
- case 'ScatterChart':
252
- const id = get(dimension, 'id');
253
- if (isNil(id)) return [];
254
- const dimensions = R.compose(
255
- (dimensions) => omit(dimensions, id),
256
- dimensionsWithValuesIndexedById
257
- )(data);
258
- return flatten(map(
259
- dimensions,
260
- (dimension) => {
261
- return map(
262
- get(dimension, 'values'),
263
- (value) => ({
264
- label: `${dimensionValueDisplay(display)(dimension)} - ${dimensionValueDisplay(display)(value)}`,
265
- options: { dimensionId: dimension.id, dimensionValueId: value.id },
266
- value: `${dimension.id}-${value.id}`
267
- })
268
- )
269
- }
270
- ));
271
- }
272
- };
273
- const focus = memoizee(_focus);
274
-
275
- const _parseFocus = (data, type, dimension, display, { baseline, highlight }) => {
276
- const options = focus(data, type, dimension, display);
277
-
278
- const parseSelection = selection => compact(map(selection, ({ value }) => find(options, option => isEqual(option.value, value))));
279
- return ({ baseline: parseSelection(baseline), highlight: parseSelection(highlight) });
280
- };
281
- const parseFocus = memoizee(_parseFocus);
282
-
283
- const _defaultSubtitle = (data, display, REJECTED_SUBTITLE_IDS = DEFAULT_REJECTED_SUBTITLE_IDS) => {
284
- const { value } = splitDimensions(data);
285
- const values = reduce(
286
- R.reject(R.prop('isHidden'))(value),
287
- (memo, d) => {
288
- const dvId = get(d, 'values[0].id');
289
- if (!includes(REJECTED_SUBTITLE_IDS, dvId)) {
290
- memo.push(`${dimensionValueDisplay(display)(d)}: ${dimensionValueDisplay(display)(get(d, 'values[0]'))}`);
291
- }
292
- return memo;
293
- },
294
- []
295
- );
296
- return values;
297
- };
298
- const defaultSubtitle = memoizee(_defaultSubtitle);
299
-
300
- const _uprAttributes = (attributes, UPR_IDS = DEFAULT_UPR_IDS) => (
301
- reduce(
302
- UPR_IDS,
303
- (memo, ids, uprKey) => {
304
- const attr = find(attributes, attribute => includes(ids, get(attribute, 'id')));
305
- if (attr) {
306
- memo[uprKey] = attr;
307
- }
308
- return memo;
309
- },
310
- {}
311
- )
312
- );
313
- const uprAttributes = memoizee(_uprAttributes);
314
-
315
- const _uprAttributesWithOneRelevantValue = (uprAttributes, UPR_IDS = DEFAULT_UPR_IDS, REJECTED_UPR_VALUES_IDS = DEFAULT_REJECTED_UPR_VALUES_IDS) => reduce(
316
- uprAttributes,
317
- (memo, attr, key) => {
318
- if (size(get(attr, 'values', [])) === 1 && !(includes(REJECTED_UPR_VALUES_IDS[key], get(attr, 'values[0].id', ''))))
319
- memo[key] = attr;
320
- return memo;
321
- },
322
- {}
323
- );
324
- const uprAttributesWithOneRelevantValue = memoizee(_uprAttributesWithOneRelevantValue);
325
-
326
- const headerUprsLabel = display => uprAttributes => {
327
- return map(
328
- uprAttributes,
329
- attr => dimensionValueDisplay(display)(get(attr, 'values[0]'))
330
- ).join(', ');
331
- };
332
-
333
- const getUprs = (data, display) => R.compose(
334
- headerUprsLabel(parseDisplay(display)),
335
- uprAttributesWithOneRelevantValue,
336
- ({ attributes }) => uprAttributes(attributes),
337
- extractSdmxArtefacts
338
- )(data);
339
-
340
- const _header = (data, _title, _subtitle, _display) => {
341
- const display = parseDisplay(_display);
342
- const title = (isNil(_title) || isEmpty(_title)) ? get(data, 'structure.name') : _title;
343
- const subtitle = (isNil(_subtitle) || isEmpty(_subtitle)) ? defaultSubtitle(data, display) : _subtitle;
344
- return ({
345
- title,
346
- subtitle: isArray(subtitle) ? subtitle : [subtitle],
347
- uprs: R.compose(
348
- headerUprsLabel(display),
349
- uprAttributesWithOneRelevantValue,
350
- ({ attributes }) => uprAttributes(attributes),
351
- extractSdmxArtefacts
352
- )(data)
353
- });
354
- };
355
- const header = memoizee(_header);
356
-
357
- const _sourceLabel = (data, label) => (
358
- (isNil(label) || isEmpty(label)) ? extractSdmxArtefacts(data).name : label
359
- );
360
- const sourceLabel = memoizee(_sourceLabel);
361
-
362
- const _getTopologyAreasCollections = (topology) => map(topology.objects, (entry, key) => key);
363
- const getTopologyAreasCollections = memoizee(_getTopologyAreasCollections);
364
-
365
- const _isNonIdealState = (data, type, map) => {
366
- const defaultSeries = series(data, type, null, null, map);
367
- if (type === 'ChoroplethChart')
368
- {
369
- return findIndex(get(defaultSeries, 'objects.areas.geometries', []), geometry => get(geometry, 'properties.value', null)) === -1;
370
- }
371
- return isEmpty(get(defaultSeries, '[0].datapoints', []));
372
- };
373
- const isNonIdealState = memoizee(_isNonIdealState);
374
-
375
- const getFlags = R.identity;
376
- const prepareData = R.identity;
377
-
378
- export { DEFAULT_UPR_IDS, choroSeries, defaultSubtitle, dimensionValueDisplay, dimensionsWithValuesIndexedById, extractDataName, extractSdmxArtefacts, extractSdmxErrors, focus, freqA, freqM, freqQ, getDimensionValues, getFlags, getRelevantsDatasetAttributes, getTopologyAreasCollections, getUprs, header, headerUprsLabel, isNonIdealState, parseDisplay, parseFocus, prepareData, sampleSeries, scatterDimension, scatterSeries, series, source, sourceLabel, splitDimensions, stackedDimension, stackedSeries, symbolDimension, symbolSeries, timelineSeries, uprAttributes, uprAttributesWithOneRelevantValue };
379
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/rules/src/index.js"],"sourcesContent":["import {\n get, partition, reject, isEmpty, map, compact, size, keyBy, pick, omit, isNil, flatten, reduce,\n filter, find, includes, isArray, findIndex, isEqual\n} from 'lodash';\nimport * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport __sampleSeries from './factories/sample-series';\nimport __sampleFocus from './factories/sample-focus';\nimport __scatterSeries from './factories/scatter-series';\nimport __scatterFocus from './factories/scatter-focus';\nimport __scatterDimension from './factories/scatter-dimension';\nimport __symbolSeries from './factories/symbol-series';\nimport __symbolDimension from './factories/symbol-dimension';\nimport __timelineSeries from './factories/timeline-series';\nimport __timelineFocus from './factories/timeline-focus';\nimport __stackedSeries from './factories/stacked-series';\nimport __stackedDimension from './factories/stacked-dimension';\nimport __choroSeries from './factories/choro-series';\nimport {\n DEFAULT_UPR_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS, DEFAULT_REJECTED_SUBTITLE_IDS,\n FREQ_A, FREQ_Q, FREQ_M\n} from './constants';\nimport { dimensionValueDisplay } from './dimension-utils';\nimport { getObservationsFormaterAttributes } from './observation-formater';\n\nexport const freqA = FREQ_A;\nexport const freqQ = FREQ_Q;\nexport const freqM = FREQ_M;\n\n// --------------------------------------------------------------------------------extractSdmxErrors\nconst _extractSdmxErrors = (data) => R.compose(\n (errors) => map(errors, (error) => ({ label: error.code, description: error.message })),\n (data) => get(data, 'errors', [])\n);\nexport const extractSdmxErrors = memoizee(_extractSdmxErrors);\n\nexport const extractDataName = (data) => R.pathOr(null, ['structure', 'name'], data);\n\n// -----------------------------------------------------------------------------extractSdmxArtefacts\nconst _extractSdmxArtefacts = (data) => {\n const parseStructure = (data) => get(data, 'structure', {});\n const parseItem = (item) => parseComponents(get(item, 'observation', []));\n const parseDimensions = (structure) => parseItem(get(structure, 'dimensions', {}));\n const parseAttributes = (structure) => parseItem(get(structure, 'attributes', {}));\n const parseComponents = (components) => map(components, parseComponent);\n const parseComponent = (component, index) => {\n let parsed = { ...pick(component, 'id', 'name', 'values', 'role', 'isHidden'), index };\n if (isEmpty(parsed))\n return parsed;\n if (isNil(parsed.role))\n parsed.role = parsed.id;\n parsed.values = R.sortBy(R.prop('__index'))(parsed.values);\n return parsed;\n };\n const parseDatasetItem = (item) => parseComponents(get(item, 'dataSet', []));\n const parseDatasetAttributes = (structure) => parseDatasetItem(get(structure, 'attributes', {}));\n\n return {\n attributes: parseAttributes(parseStructure(data)),\n datasetAttributes: parseDatasetAttributes(parseStructure(data)),\n dimensions: parseDimensions(parseStructure(data)),\n id: get(data, 'header.id', null),\n name: extractDataName(data),\n observations: R.pipe(\n R.pathOr({}, ['dataSets', 0, 'observations']),\n R.mapObjIndexed(obs => R.over(R.lensIndex(0), val => R.isNil(val) ? null : Number(val))(obs)),\n R.reject(R.pipe(R.head, R.anyPass([R.isNil, isNaN]))),\n )(data),\n source: get(data, 'header.links[0].href', null),\n };\n};\nexport const extractSdmxArtefacts = memoizee(_extractSdmxArtefacts);\n\nconst _getRelevantsDatasetAttributes = (data) => {\n const { datasetAttributes } = extractSdmxArtefacts(data);\n return filter(datasetAttributes, attr => size(attr.values) === 1);\n};\nexport const getRelevantsDatasetAttributes = memoizee(_getRelevantsDatasetAttributes);\n\n// -------------------------------------------------------------------------------getDimensionValues\nexport const getDimensionValues = (dimension) => get(dimension, 'values', []);\n\n// ----------------------------------------------------------------------------------splitDimensions\nconst _splitDimensions = (data) => {\n const { dimensions } = extractSdmxArtefacts(data);\n const [value, values] = partition(\n reject(dimensions, R.compose(isEmpty, getDimensionValues)),\n R.compose((values) => size(values) === 1, getDimensionValues)\n );\n return { value, values };\n}\nexport const splitDimensions = memoizee(_splitDimensions);\n\n// ------------------------------------------------------------------dimensionsWithValuesIndexedById\nconst _dimensionsWithValuesIndexedById = (data) => R.compose(\n (dimensionsWithValues) => keyBy(dimensionsWithValues, 'id'),\n (split) => split.values,\n splitDimensions\n)(data);\nexport const dimensionsWithValuesIndexedById = memoizee(_dimensionsWithValuesIndexedById);\n\n// -------------------------------------------------------------------------------------parseDisplay\nconst _parseDisplay = (display) =>\n (isNil(display) || !(includes(['both', 'code'], display)))\n ? 'label' : display;\nexport const parseDisplay = memoizee(_parseDisplay);\n\n// -------------------------------------------------------------------------------------sampleSeries\nconst _sampleSeries = (data, type, display, formaterIds) => __sampleSeries(\n type,\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const sampleSeries = memoizee(_sampleSeries);\n\n// ---------------------------------------------------------------------------------scatterDimension\nconst _scatterDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __scatterDimension(values, ids);\n};\nexport const scatterDimension = memoizee(_scatterDimension);\n\n// ----------------------------------------------------------------------------------symbolDimension\nconst _symbolDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __symbolDimension(values, ids);\n};\nexport const symbolDimension = memoizee(_symbolDimension);\n\nconst _stackedDimension = (data, singularity) => {\n return __stackedDimension(splitDimensions(data), singularity);\n}\nexport const stackedDimension = memoizee(_stackedDimension);\n\n// ------------------------------------------------------------------------------------scatterSeries\nconst _scatterSeries = (data, ids, display, formaterIds) => __scatterSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n scatterDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const scatterSeries = memoizee(_scatterSeries);\n\n// -------------------------------------------------------------------------------------symbolSeries\nconst _symbolSeries = (data, type, ids, display, formaterIds) => __symbolSeries(\n extractSdmxArtefacts(data),\n type,\n dimensionsWithValuesIndexedById(data),\n symbolDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const symbolSeries = memoizee(_symbolSeries);\n\n// -----------------------------------------------------------------------------------timelineSeries\nconst _timelineSeries = (data, display, formaterIds) => __timelineSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const timelineSeries = memoizee(_timelineSeries);\n\nconst _stackedSeries = (data, singularity, display, formaterIds, [stackKey, categoryKey]) => __stackedSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n stackedDimension(data, singularity),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds),\n [stackKey, categoryKey]\n);\nexport const stackedSeries = memoizee(_stackedSeries);\n\n// --------------------------------------------------------------------------------------choroSeries\nconst _choroSeries = (data, map, display) => __choroSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n map,\n parseDisplay(display)\n);\nexport const choroSeries = memoizee(_choroSeries);\n\n// -------------------------------------------------------------------------------------------series\nconst _series = (data, type, focus, singularity, map, display, formaterIds) => {\n switch(type) {\n case 'RowChart': case 'BarChart':\n return __sampleFocus(sampleSeries(data, type, display, formaterIds), focus);\n case 'ScatterChart':\n return __scatterFocus(scatterSeries(data, singularity, display, formaterIds), focus);\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n return __sampleFocus(symbolSeries(data, type, singularity, display, formaterIds), focus);\n case 'TimelineChart':\n return __timelineFocus(timelineSeries(data, display, formaterIds), focus);\n case 'StackedBarChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['y', 'x']), focus);\n case 'StackedRowChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['x', 'y']), focus);\n case 'ChoroplethChart':\n return choroSeries(data, map, display);\n }\n};\nexport const series = memoizee(_series);\n\n// -------------------------------------------------------------------------------------------source\nconst _source = (data, config, meta) => {\n const hasSource = get(meta, 'hasSource', true);\n if (!hasSource)\n return null;\n const source = get(config, 'source', null);\n if (source && !(isEmpty(source)))\n return source;\n const artefacts = extractSdmxArtefacts(data);\n const uri = get(artefacts, 'source');\n if (!uri)\n return get(config, 'defaultSource', null);\n const match = uri.match(/(^http.*)\\/SDMX-JSON\\/data\\/([^\\/]+)\\//);\n if (size(match) !== 3)\n return null;\n const [m, domain, dataset] = match;\n return `${domain}/Index.aspx?DataSetCode=${dataset}`; //tmp\n};\nexport const source = memoizee(_source);\n\n// --------------------------------------------------------------------------------------------focus\nconst _focus = (data, type, dimension, _display) => {\n const display = parseDisplay(_display);\n switch(type) {\n case 'RowChart': case 'BarChart':\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n case 'StackedBarChart': case 'StackedRowChart':\n return R.compose(\n (datapoints) => map(datapoints, (dp) => ({ label: dp.category, value: dp.key })),\n (series) => series[0].datapoints,\n series\n )(data, type, null, dimension, null, display);\n case 'TimelineChart':\n return R.compose(\n (series) => map(series, (serie) => ({ label: serie.category, value: serie.key })),\n series\n )(data, type, null, dimension, null, display)\n case 'ScatterChart':\n const id = get(dimension, 'id');\n if (isNil(id)) return [];\n const dimensions = R.compose(\n (dimensions) => omit(dimensions, id),\n dimensionsWithValuesIndexedById\n )(data);\n return flatten(map(\n dimensions,\n (dimension) => {\n return map(\n get(dimension, 'values'),\n (value) => ({\n label: `${dimensionValueDisplay(display)(dimension)} - ${dimensionValueDisplay(display)(value)}`,\n options: { dimensionId: dimension.id, dimensionValueId: value.id },\n value: `${dimension.id}-${value.id}`\n })\n )\n }\n ));\n }\n};\nexport const focus = memoizee(_focus);\n\nconst _parseFocus = (data, type, dimension, display, { baseline, highlight }) => {\n const options = focus(data, type, dimension, display);\n\n const parseSelection = selection => compact(map(selection, ({ value }) => find(options, option => isEqual(option.value, value))));\n return ({ baseline: parseSelection(baseline), highlight: parseSelection(highlight) });\n};\nexport const parseFocus = memoizee(_parseFocus);\n\nconst _defaultSubtitle = (data, display, REJECTED_SUBTITLE_IDS = DEFAULT_REJECTED_SUBTITLE_IDS) => {\n const { value } = splitDimensions(data);\n const values = reduce(\n R.reject(R.prop('isHidden'))(value),\n (memo, d) => {\n const dvId = get(d, 'values[0].id');\n if (!includes(REJECTED_SUBTITLE_IDS, dvId)) {\n memo.push(`${dimensionValueDisplay(display)(d)}: ${dimensionValueDisplay(display)(get(d, 'values[0]'))}`);\n }\n return memo;\n },\n []\n );\n return values;\n}\nexport const defaultSubtitle = memoizee(_defaultSubtitle);\n\nconst _uprAttributes = (attributes, UPR_IDS = DEFAULT_UPR_IDS) => (\n reduce(\n UPR_IDS,\n (memo, ids, uprKey) => {\n const attr = find(attributes, attribute => includes(ids, get(attribute, 'id')));\n if (attr) {\n memo[uprKey] = attr;\n }\n return memo;\n },\n {}\n )\n);\nexport const uprAttributes = memoizee(_uprAttributes);\n\nconst _uprAttributesWithOneRelevantValue = (uprAttributes, UPR_IDS = DEFAULT_UPR_IDS, REJECTED_UPR_VALUES_IDS = DEFAULT_REJECTED_UPR_VALUES_IDS) => reduce(\n uprAttributes,\n (memo, attr, key) => {\n if (size(get(attr, 'values', [])) === 1 && !(includes(REJECTED_UPR_VALUES_IDS[key], get(attr, 'values[0].id', ''))))\n memo[key] = attr;\n return memo;\n },\n {}\n);\nexport const uprAttributesWithOneRelevantValue = memoizee(_uprAttributesWithOneRelevantValue);\n\nexport const headerUprsLabel = display => uprAttributes => {\n return map(\n uprAttributes,\n attr => dimensionValueDisplay(display)(get(attr, 'values[0]'))\n ).join(', ');\n}\n\nexport const getUprs = (data, display) => R.compose(\n headerUprsLabel(parseDisplay(display)),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n)(data);\n\nconst _header = (data, _title, _subtitle, _display) => {\n const display = parseDisplay(_display);\n const title = (isNil(_title) || isEmpty(_title)) ? get(data, 'structure.name') : _title;\n const subtitle = (isNil(_subtitle) || isEmpty(_subtitle)) ? defaultSubtitle(data, display) : _subtitle;\n return ({\n title,\n subtitle: isArray(subtitle) ? subtitle : [subtitle],\n uprs: R.compose(\n headerUprsLabel(display),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n )(data)\n });\n};\nexport const header = memoizee(_header);\n\nconst _sourceLabel = (data, label) => (\n (isNil(label) || isEmpty(label)) ? extractSdmxArtefacts(data).name : label\n);\nexport const sourceLabel = memoizee(_sourceLabel);\n\nconst _getTopologyAreasCollections = (topology) => map(topology.objects, (entry, key) => key);\nexport const getTopologyAreasCollections = memoizee(_getTopologyAreasCollections);\n\nconst _isNonIdealState = (data, type, map) => {\n const defaultSeries = series(data, type, null, null, map);\n if (type === 'ChoroplethChart')\n {\n return findIndex(get(defaultSeries, 'objects.areas.geometries', []), geometry => get(geometry, 'properties.value', null)) === -1;\n }\n return isEmpty(get(defaultSeries, '[0].datapoints', []));\n}\nexport const isNonIdealState = memoizee(_isNonIdealState);\n\nexport { dimensionValueDisplay } from './dimension-utils';\nexport { DEFAULT_UPR_IDS, DIMENSION_DISPLAY_PARTS, DEFAULT_MAJOR_ATTRIBUTES, V8_SDMX_JSON,\n TYPES as chartTypes } from './constants';\nexport {\n initialState,\n stateFromNewProps,\n onChangeProperties,\n toChartData,\n toChartOptions,\n toProperties,\n getErrors,\n toSingularity\n} from './properties';\nexport { dataTransformer as v8Transformer } from './v8-transformer';\nexport {\n getCellValue,\n} from './table';\nexport {\n getFullName,\n} from './sdmx-data';\nexport { getTimePeriodLabel } from './date';\nexport { getHeaderProps, getFooterProps, } from './properties/getHeaderProps';\nexport { getInformationsStateFromNewProps } from './properties/getInformationsStateFromNewProps';\nexport { getObservationsType } from './properties/getObservationsType';\nexport { getAvailableChartTypes } from './properties/getAvailableChartTypes';\nexport { isSharedLayoutCompatible } from './layout';\n\nexport { getObservations } from './preparators/getObservations';\n\nexport const getFlags = R.identity;\nexport const prepareData = R.identity;\n\nexport { getChartOptions } from './chart/getChartOptions';"],"names":["__sampleFocus","__scatterFocus","__timelineFocus"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,13 +1,15 @@
1
1
  import * as R from 'ramda';
2
2
  import { SCATTER, H_SYMBOL, V_SYMBOL, STACKED_BAR, STACKED_ROW } from './constants.js';
3
+ import { getReportingYearStart } from './preparators/getReportingYearStart.js';
3
4
  import { parseCombinationDefinition, getCombinationDefinitions } from '../../rules2/src/getCombinationDefinitions.js';
4
5
  import { refineDimensions } from '../../rules2/src/refineDimensions.js';
5
6
 
6
7
  const isTableLayoutCompatible = (data, layout, combinationsDefinitions = [], dataquery = '') => {
7
8
  const indexedCombinations = R.indexBy(R.prop('id'), combinationsDefinitions);
9
+ const reportYearStart = getReportingYearStart(data);
8
10
  const indexedManyValuesDimensions = R.pipe(
9
11
  R.pathOr([], ['structure', 'dimensions', 'observation']),
10
- dimensions => refineDimensions(dimensions, dataquery),
12
+ dimensions => refineDimensions({ dimensions, options: { dataquery, reportYearStart } }),
11
13
  R.reject(d => R.prop('header', d) || !R.length(d.values || [])),
12
14
  R.indexBy(R.prop('id'))
13
15
  )(data);
@@ -34,7 +36,7 @@ const isScatterLayoutCompatible = (data, chartDimension) => {
34
36
 
35
37
  const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);
36
38
 
37
- const dimension = R.find(R.propEq('id', id), dimensions);
39
+ const dimension = R.find(R.propEq(id, 'id'), dimensions);
38
40
  if (R.isNil(dimension)) {
39
41
  return false;
40
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../../src/rules/src/layout.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n H_SYMBOL,\n SCATTER,\n STACKED_BAR,\n STACKED_ROW,\n V_SYMBOL\n} from './constants';\nimport {\n getCombinationDefinitions,\n refineDimensions,\n parseCombinationDefinition\n} from '../../rules2/src';\n\nconst isTableLayoutCompatible = (data, layout, combinationsDefinitions = [], dataquery = '') => {\n const indexedCombinations = R.indexBy(R.prop('id'), combinationsDefinitions);\n const indexedManyValuesDimensions = R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n dimensions => refineDimensions(dimensions, dataquery),\n R.reject(d => R.prop('header', d) || !R.length(d.values || [])),\n R.indexBy(R.prop('id'))\n )(data);\n let remainings = indexedManyValuesDimensions;\n const layoutIds = R.pipe(R.values, R.unnest)(layout);\n let hasFoundIrrelevant = false;\n R.forEach(id => {\n if (R.has(id, indexedManyValuesDimensions)) {\n remainings = R.dissoc(id, remainings);\n }\n else if (R.has(id, indexedCombinations)) {\n remainings = R.omit(R.pathOr([], [id, 'concepts'], indexedCombinations), remainings);\n }\n else if (id !== 'OBS_ATTRIBUTES') {\n hasFoundIrrelevant = true;\n }\n }, layoutIds);\n return R.isEmpty(remainings) && !hasFoundIrrelevant;\n};\n\n\nconst isScatterLayoutCompatible = (data, chartDimension) => {\n const { id, xId, yId } = chartDimension;\n\n const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);\n\n const dimension = R.find(R.propEq('id', id), dimensions);\n if (R.isNil(dimension)) {\n return false;\n }\n return R.pipe(\n R.propOr([], 'values'),\n R.indexBy(R.prop('id')),\n R.pick([xId, yId]),\n R.values,\n R.length,\n R.equals(2)\n )(dimension);\n};\n\nconst isSymbolLayoutCompatible = (data, chartDimension) => {\n const { id, serie } = chartDimension;\n const serieIds = R.pluck('id',serie);\n\n return R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n R.indexBy(R.prop('id')),\n R.pathOr([], [id, 'values']),\n R.indexBy(R.prop('id')),\n R.pick(serieIds),\n R.values,\n R.length,\n R.equals(R.length(serieIds))\n )(data);\n};\n\nconst isStackedLayoutCompatible = (data, chartDimension) => {\n const { id } = chartDimension;\n\n return R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n R.filter(R.pipe(R.propOr([], 'values'), R.length, R.lt(1))),\n R.indexBy(R.prop('id')),\n R.has(id)\n )(data);\n};\n\nconst isChartLayoutCompatible = (data, type, chartDimension) => {\n return R.cond([\n [R.always(R.equals(SCATTER, type)), isScatterLayoutCompatible],\n [R.always(R.equals(H_SYMBOL, type) || R.equals(V_SYMBOL, type)), isSymbolLayoutCompatible],\n [R.always(R.anyPass([R.equals(STACKED_BAR), R.equals(STACKED_ROW)])(type)), isStackedLayoutCompatible],\n [R.T, R.T]\n ])(data, chartDimension);\n};\n\nexport const isSharedLayoutCompatible = (sdmxData, sharedData) => {\n const type = R.prop('type', sharedData);\n if (type === 'table') {\n const layoutIds = R.pathOr({}, ['config', 'table', 'layoutIds'], sharedData);\n const dataquery = R.path(['config', 'sdmxSource', 'dataquery'], sharedData);\n const annotations = R.pathOr({}, ['structure', 'annotations'], sdmxData)\n const locale = R.pathOr({}, ['config', 'table', 'locale'], sharedData);\n const rawDefaultCombinationsDefinition = R.pathOr({}, ['config', 'defaultCombinations'], sharedData);\n const { concepts='', names='' } = rawDefaultCombinationsDefinition;\n const defaultCombinationsDefinition = parseCombinationDefinition(locale)(concepts, names);\n const customCombinationsDefinitions = getCombinationDefinitions(annotations, locale);\n const combinationsDefinitions = R.isNil(customCombinationsDefinitions) || R.isEmpty(customCombinationsDefinitions)\n ? defaultCombinationsDefinition : customCombinationsDefinitions;\n return isTableLayoutCompatible(sdmxData, layoutIds, combinationsDefinitions, dataquery);\n }\n const chartDimension = R.pathOr({}, ['config', 'chart', 'chartDimension'], sharedData);\n return isChartLayoutCompatible(sdmxData, type, chartDimension);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sources":["../../../src/rules/src/layout.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n H_SYMBOL,\n SCATTER,\n STACKED_BAR,\n STACKED_ROW,\n V_SYMBOL\n} from './constants';\nimport {\n getCombinationDefinitions,\n refineDimensions,\n parseCombinationDefinition\n} from '../../rules2/src';\nimport { getReportingYearStart } from './/preparators/getReportingYearStart';\n\nconst isTableLayoutCompatible = (data, layout, combinationsDefinitions = [], dataquery = '') => {\n const indexedCombinations = R.indexBy(R.prop('id'), combinationsDefinitions);\n const reportYearStart = getReportingYearStart(data);\n const indexedManyValuesDimensions = R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n dimensions => refineDimensions({ dimensions, options: { dataquery, reportYearStart } }),\n R.reject(d => R.prop('header', d) || !R.length(d.values || [])),\n R.indexBy(R.prop('id'))\n )(data);\n let remainings = indexedManyValuesDimensions;\n const layoutIds = R.pipe(R.values, R.unnest)(layout);\n let hasFoundIrrelevant = false;\n R.forEach(id => {\n if (R.has(id, indexedManyValuesDimensions)) {\n remainings = R.dissoc(id, remainings);\n }\n else if (R.has(id, indexedCombinations)) {\n remainings = R.omit(R.pathOr([], [id, 'concepts'], indexedCombinations), remainings);\n }\n else if (id !== 'OBS_ATTRIBUTES') {\n hasFoundIrrelevant = true;\n }\n }, layoutIds);\n return R.isEmpty(remainings) && !hasFoundIrrelevant;\n};\n\n\nconst isScatterLayoutCompatible = (data, chartDimension) => {\n const { id, xId, yId } = chartDimension;\n\n const dimensions = R.pathOr([], ['structure', 'dimensions', 'observation'], data);\n\n const dimension = R.find(R.propEq(id, 'id'), dimensions);\n if (R.isNil(dimension)) {\n return false;\n }\n return R.pipe(\n R.propOr([], 'values'),\n R.indexBy(R.prop('id')),\n R.pick([xId, yId]),\n R.values,\n R.length,\n R.equals(2)\n )(dimension);\n};\n\nconst isSymbolLayoutCompatible = (data, chartDimension) => {\n const { id, serie } = chartDimension;\n const serieIds = R.pluck('id',serie);\n\n return R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n R.indexBy(R.prop('id')),\n R.pathOr([], [id, 'values']),\n R.indexBy(R.prop('id')),\n R.pick(serieIds),\n R.values,\n R.length,\n R.equals(R.length(serieIds))\n )(data);\n};\n\nconst isStackedLayoutCompatible = (data, chartDimension) => {\n const { id } = chartDimension;\n\n return R.pipe(\n R.pathOr([], ['structure', 'dimensions', 'observation']),\n R.filter(R.pipe(R.propOr([], 'values'), R.length, R.lt(1))),\n R.indexBy(R.prop('id')),\n R.has(id)\n )(data);\n};\n\nconst isChartLayoutCompatible = (data, type, chartDimension) => {\n return R.cond([\n [R.always(R.equals(SCATTER, type)), isScatterLayoutCompatible],\n [R.always(R.equals(H_SYMBOL, type) || R.equals(V_SYMBOL, type)), isSymbolLayoutCompatible],\n [R.always(R.anyPass([R.equals(STACKED_BAR), R.equals(STACKED_ROW)])(type)), isStackedLayoutCompatible],\n [R.T, R.T]\n ])(data, chartDimension);\n};\n\nexport const isSharedLayoutCompatible = (sdmxData, sharedData) => {\n const type = R.prop('type', sharedData);\n if (type === 'table') {\n const layoutIds = R.pathOr({}, ['config', 'table', 'layoutIds'], sharedData);\n const dataquery = R.path(['config', 'sdmxSource', 'dataquery'], sharedData);\n const annotations = R.pathOr({}, ['structure', 'annotations'], sdmxData)\n const locale = R.pathOr({}, ['config', 'table', 'locale'], sharedData);\n const rawDefaultCombinationsDefinition = R.pathOr({}, ['config', 'defaultCombinations'], sharedData);\n const { concepts='', names='' } = rawDefaultCombinationsDefinition;\n const defaultCombinationsDefinition = parseCombinationDefinition(locale)(concepts, names);\n const customCombinationsDefinitions = getCombinationDefinitions(annotations, locale);\n const combinationsDefinitions = R.isNil(customCombinationsDefinitions) || R.isEmpty(customCombinationsDefinitions)\n ? defaultCombinationsDefinition : customCombinationsDefinitions;\n return isTableLayoutCompatible(sdmxData, layoutIds, combinationsDefinitions, dataquery);\n }\n const chartDimension = R.pathOr({}, ['config', 'chart', 'chartDimension'], sharedData);\n return isChartLayoutCompatible(sdmxData, type, chartDimension);\n};\n"],"names":[],"mappings":";;;;;;AAeA,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,uBAAuB,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,KAAK;AAChG,EAAE,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;AAC9E,EAAE,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACrD,EAAE,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI;AAC5C,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC5D,IAAI,UAAU,IAAI,gBAAgB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC;AAC3F,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACnE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,GAAG,CAAC,IAAI,CAAC;AACT,EAAE,IAAI,UAAU,GAAG,2BAA2B;AAC9C,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;AACtD,EAAE,IAAI,kBAAkB,GAAG,KAAK;AAChC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI;AAClB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC,EAAE;AAChD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC;AAC3C,IAAI;AACJ,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AAC7C,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,mBAAmB,CAAC,EAAE,UAAU,CAAC;AAC1F,IAAI;AACJ,SAAS,IAAI,EAAE,KAAK,gBAAgB,EAAE;AACtC,MAAM,kBAAkB,GAAG,IAAI;AAC/B,IAAI;AACJ,EAAE,CAAC,EAAE,SAAS,CAAC;AACf,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB;AACrD,CAAC;;;AAGD,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK;AAC5D,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc;;AAEzC,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC;;AAEnF,EAAE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC;AAC1D,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AAC1B,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC1B,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtB,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACd,GAAG,CAAC,SAAS,CAAC;AACd,CAAC;;AAED,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK;AAC3D,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,cAAc;AACtC,EAAE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEtC,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC5D,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpB,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/B,GAAG,CAAC,IAAI,CAAC;AACT,CAAC;;AAED,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK;AAC5D,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,cAAc;;AAE/B,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC5D,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AACZ,GAAG,CAAC,IAAI,CAAC;AACT,CAAC;;AAED,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,KAAK;AAChE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,yBAAyB,CAAC;AAClE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,wBAAwB,CAAC;AAC9F,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,yBAAyB,CAAC;AAC1G,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACb,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC;AAC1B,CAAC;;AAEW,MAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAK;AAClE,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;AACzC,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACxB,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC;AAChF,IAAI,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC;AAC/E,IAAI,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,QAAQ;AAC3E,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;AAC1E,IAAI,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,UAAU,CAAC;AACxG,IAAI,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,gCAAgC;AACtE,IAAI,MAAM,6BAA6B,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC7F,IAAI,MAAM,6BAA6B,GAAG,yBAAyB,CAAC,WAAW,EAAE,MAAM,CAAC;AACxF,IAAI,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,6BAA6B;AACrH,QAAQ,6BAA6B,GAAG,6BAA6B;AACrE,IAAI,OAAO,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,uBAAuB,EAAE,SAAS,CAAC;AAC3F,EAAE;AACF,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;AACxF,EAAE,OAAO,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC;AAChE;;;;"}
@@ -1,7 +1,5 @@
1
- import memoizee from 'memoizee';
2
1
  import numeral from 'numeral';
3
2
  import * as R from 'ramda';
4
- import { extractSdmxArtefacts } from './index.js';
5
3
 
6
4
  const DEFAULT_PREFSCALE_ATTR_IDS = ["PREF_SCALE"];
7
5
 
@@ -23,17 +21,13 @@ const parseAttributeFormaterIds = (ids = {}) => {
23
21
  });
24
22
  };
25
23
 
26
- 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
- const getObservationsFormaterAttributes = memoizee(_getObservationsFormaterAttributes);
24
+ 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
32
  const getObservationFormaterValue = (observation, attribute) => {
39
33
  const attributeIndex = R.prop('index', attribute);
@@ -82,5 +76,5 @@ const getFormatedObservation = (observation, formaterAttributes) => {
82
76
  return formater(R.head(observation));
83
77
  };
84
78
 
85
- export { DEFAULT_DECIMALS_ATTR_IDS, DEFAULT_PREFSCALE_ATTR_IDS, _getObservationsFormaterAttributes, getFormatedObservation, getFormaterAttribute, getObservationFormater, getObservationFormaterValue, getObservationFormaterValues, getObservationsFormaterAttributes, makeObservationFormater, parseAttributeFormaterIds };
79
+ export { getFormatedObservation, getObservationFormater, getObservationsFormaterAttributes };
86
80
  //# sourceMappingURL=observation-formater.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observation-formater.js","sources":["../../../src/rules/src/observation-formater.js"],"sourcesContent":["import memoizee from 'memoizee';\nimport numeral from 'numeral';\nimport * as R from 'ramda';\nimport { extractSdmxArtefacts } from './';\n\nexport const DEFAULT_PREFSCALE_ATTR_IDS = [\"PREF_SCALE\"];\n\nexport const DEFAULT_DECIMALS_ATTR_IDS = [\"DECIMALS\"];\n\nexport const getFormaterAttribute = (ids, attributes) => R.find(\n (attr) => R.includes(attr.id, ids),\n attributes\n);\n\nexport const parseAttributeFormaterIds = (ids = {}) => {\n let prefscale = R.prop('prefscale', ids);\n let decimals = R.prop('decimals', ids);\n decimals = R.isNil(decimals) ? DEFAULT_DECIMALS_ATTR_IDS : decimals;\n prefscale = R.isNil(prefscale) ? DEFAULT_PREFSCALE_ATTR_IDS : prefscale;\n return ({\n decimals: R.is(Array, decimals) ? decimals : [decimals],\n prefscale: R.is(Array, prefscale) ? prefscale : [prefscale],\n });\n}\n\nexport const _getObservationsFormaterAttributes = (data, ids) => R.pipe(\n extractSdmxArtefacts,\n ({ attributes }) => {\n const { decimals, prefscale } = parseAttributeFormaterIds(ids);\n return ({\n decimals: getFormaterAttribute(decimals, attributes),\n prefscale: getFormaterAttribute(prefscale, attributes)\n });\n }\n)(data);\nexport const getObservationsFormaterAttributes = memoizee(_getObservationsFormaterAttributes);\n\nexport const getObservationFormaterValue = (observation, attribute) => {\n const attributeIndex = R.prop('index', attribute);\n const attributeValueIndex = R.nth(attributeIndex, observation);\n return R.nth(attributeValueIndex, R.propOr([], 'values', attribute));\n}\n\nexport const getObservationFormaterValues = (formaterAttributes) => (observation) => ({\n decimals: getObservationFormaterValue(observation, R.prop('decimals', formaterAttributes)),\n prefscale: getObservationFormaterValue(observation, R.prop('prefscale', formaterAttributes)),\n});\n\nexport const makeObservationFormater = (formaterValues) => {\n let prefscale = 0;\n if (!R.isNil(R.prop('prefscale', formaterValues))) {\n prefscale = Number(R.propOr('0', 'id', formaterValues.prefscale));\n }\n let decimals = null;\n if (!R.isNil(R.prop('decimals', formaterValues))) {\n let _decimals = Number(R.prop('id', formaterValues.decimals));\n decimals = R.is(Number, _decimals) && !Number.isNaN(_decimals)\n ? _decimals : null;\n }\n let format = '0,0';\n if (R.isNil(decimals)) {\n format = R.concat(format, '.[0000000]');\n }\n else if (decimals > 0) {\n format = R.concat(format, `.[${'0'.repeat(decimals)}]`);\n }\n return value => numeral(Number(value))\n .multiply(Math.pow(10, R.negate(prefscale)))\n .format(format);\n};\n\nexport const getObservationFormater = (observation, formaterAttributes) => {\n return R.pipe(\n R.tail,\n getObservationFormaterValues(formaterAttributes),\n makeObservationFormater\n )(observation);\n}\n\nexport const getFormatedObservation = (observation, formaterAttributes) => {\n const formater = getObservationFormater(observation, formaterAttributes);\n return formater(R.head(observation));\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observation-formater.js","sources":["../../../src/rules/src/observation-formater.js"],"sourcesContent":["import numeral from 'numeral';\nimport * as R from 'ramda';\n\nconst DEFAULT_PREFSCALE_ATTR_IDS = [\"PREF_SCALE\"];\n\nconst DEFAULT_DECIMALS_ATTR_IDS = [\"DECIMALS\"];\n\nconst getFormaterAttribute = (ids, attributes) => R.find(\n (attr) => R.includes(attr.id, ids),\n attributes\n);\n\nconst parseAttributeFormaterIds = (ids = {}) => {\n let prefscale = R.prop('prefscale', ids);\n let decimals = R.prop('decimals', ids);\n decimals = R.isNil(decimals) ? DEFAULT_DECIMALS_ATTR_IDS : decimals;\n prefscale = R.isNil(prefscale) ? DEFAULT_PREFSCALE_ATTR_IDS : prefscale;\n return ({\n decimals: R.is(Array, decimals) ? decimals : [decimals],\n prefscale: R.is(Array, prefscale) ? prefscale : [prefscale],\n });\n}\n\nexport const getObservationsFormaterAttributes = (attributes = [], ids = {}) => {\n const { decimals, prefscale } = parseAttributeFormaterIds(ids);\n return ({\n decimals: getFormaterAttribute(decimals, attributes),\n prefscale: getFormaterAttribute(prefscale, attributes)\n });\n};\n\nconst getObservationFormaterValue = (observation, attribute) => {\n const attributeIndex = R.prop('index', attribute);\n const attributeValueIndex = R.nth(attributeIndex, observation);\n return R.nth(attributeValueIndex, R.propOr([], 'values', attribute));\n}\n\nconst getObservationFormaterValues = (formaterAttributes) => (observation) => ({\n decimals: getObservationFormaterValue(observation, R.prop('decimals', formaterAttributes)),\n prefscale: getObservationFormaterValue(observation, R.prop('prefscale', formaterAttributes)),\n});\n\nconst makeObservationFormater = (formaterValues) => {\n let prefscale = 0;\n if (!R.isNil(R.prop('prefscale', formaterValues))) {\n prefscale = Number(R.propOr('0', 'id', formaterValues.prefscale));\n }\n let decimals = null;\n if (!R.isNil(R.prop('decimals', formaterValues))) {\n let _decimals = Number(R.prop('id', formaterValues.decimals));\n decimals = R.is(Number, _decimals) && !Number.isNaN(_decimals)\n ? _decimals : null;\n }\n let format = '0,0';\n if (R.isNil(decimals)) {\n format = R.concat(format, '.[0000000]');\n }\n else if (decimals > 0) {\n format = R.concat(format, `.[${'0'.repeat(decimals)}]`);\n }\n return value => numeral(Number(value))\n .multiply(Math.pow(10, R.negate(prefscale)))\n .format(format);\n};\n\nexport const getObservationFormater = (observation, formaterAttributes) => {\n return R.pipe(\n R.tail,\n getObservationFormaterValues(formaterAttributes),\n makeObservationFormater\n )(observation);\n}\n\nexport const getFormatedObservation = (observation, formaterAttributes) => {\n const formater = getObservationFormater(observation, formaterAttributes);\n return formater(R.head(observation));\n};\n"],"names":[],"mappings":"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"}