@sis-cc/dotstatsuite-components 22.0.1 → 22.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/bridge-d3-react/src/index.js +18 -0
  2. package/dist/bridge-d3-react/src/index.js.map +1 -0
  3. package/dist/bridge-d3-react/src/react-chart-factory.js +44 -0
  4. package/dist/bridge-d3-react/src/react-chart-factory.js.map +1 -0
  5. package/dist/rules/src/chart/getAxisOptions.js +256 -0
  6. package/dist/rules/src/chart/getAxisOptions.js.map +1 -0
  7. package/dist/rules/src/chart/getBaseOptions.js +77 -0
  8. package/dist/rules/src/chart/getBaseOptions.js.map +1 -0
  9. package/dist/rules/src/chart/getChartOptions.js +120 -0
  10. package/dist/rules/src/chart/getChartOptions.js.map +1 -0
  11. package/dist/rules/src/chart/getGridOptions.js +46 -0
  12. package/dist/rules/src/chart/getGridOptions.js.map +1 -0
  13. package/dist/rules/src/chart/getTooltipOptions.js +223 -0
  14. package/dist/rules/src/chart/getTooltipOptions.js.map +1 -0
  15. package/dist/rules/src/constants.js +65 -0
  16. package/dist/rules/src/constants.js.map +1 -0
  17. package/dist/rules/src/date.js +121 -0
  18. package/dist/rules/src/date.js.map +1 -0
  19. package/dist/rules/src/dimension-utils.js +57 -0
  20. package/dist/rules/src/dimension-utils.js.map +1 -0
  21. package/dist/rules/src/factories/choro-series.js +68 -0
  22. package/dist/rules/src/factories/choro-series.js.map +1 -0
  23. package/dist/rules/src/factories/sample-focus.js +25 -0
  24. package/dist/rules/src/factories/sample-focus.js.map +1 -0
  25. package/dist/rules/src/factories/sample-series.js +53 -0
  26. package/dist/rules/src/factories/sample-series.js.map +1 -0
  27. package/dist/rules/src/factories/scatter-dimension.js +35 -0
  28. package/dist/rules/src/factories/scatter-dimension.js.map +1 -0
  29. package/dist/rules/src/factories/scatter-focus.js +42 -0
  30. package/dist/rules/src/factories/scatter-focus.js.map +1 -0
  31. package/dist/rules/src/factories/scatter-series.js +91 -0
  32. package/dist/rules/src/factories/scatter-series.js.map +1 -0
  33. package/dist/rules/src/factories/stacked-dimension.js +32 -0
  34. package/dist/rules/src/factories/stacked-dimension.js.map +1 -0
  35. package/dist/rules/src/factories/stacked-series.js +188 -0
  36. package/dist/rules/src/factories/stacked-series.js.map +1 -0
  37. package/dist/rules/src/factories/symbol-dimension.js +32 -0
  38. package/dist/rules/src/factories/symbol-dimension.js.map +1 -0
  39. package/dist/rules/src/factories/symbol-series.js +65 -0
  40. package/dist/rules/src/factories/symbol-series.js.map +1 -0
  41. package/dist/rules/src/factories/timeline-focus.js +21 -0
  42. package/dist/rules/src/factories/timeline-focus.js.map +1 -0
  43. package/dist/rules/src/factories/timeline-series.js +94 -0
  44. package/dist/rules/src/factories/timeline-series.js.map +1 -0
  45. package/dist/rules/src/get-values-enhanced.js +133 -0
  46. package/dist/rules/src/get-values-enhanced.js.map +1 -0
  47. package/dist/rules/src/header/getDefaultSubtitle.js +44 -0
  48. package/dist/rules/src/header/getDefaultSubtitle.js.map +1 -0
  49. package/dist/rules/src/header/getHeaderUnits.js +21 -0
  50. package/dist/rules/src/header/getHeaderUnits.js.map +1 -0
  51. package/dist/rules/src/header/getSubtitleFlags.js +47 -0
  52. package/dist/rules/src/header/getSubtitleFlags.js.map +1 -0
  53. package/dist/rules/src/header/getTitleFlags.js +12 -0
  54. package/dist/rules/src/header/getTitleFlags.js.map +1 -0
  55. package/dist/rules/src/index.js +378 -0
  56. package/dist/rules/src/index.js.map +1 -0
  57. package/dist/rules/src/layout.js +107 -0
  58. package/dist/rules/src/layout.js.map +1 -0
  59. package/dist/rules/src/observation-formater.js +86 -0
  60. package/dist/rules/src/observation-formater.js.map +1 -0
  61. package/dist/rules/src/preparators/formatValue.js +96 -0
  62. package/dist/rules/src/preparators/formatValue.js.map +1 -0
  63. package/dist/rules/src/preparators/getObservations.js +22 -0
  64. package/dist/rules/src/preparators/getObservations.js.map +1 -0
  65. package/dist/rules/src/preparators/getReportingYearStart.js +19 -0
  66. package/dist/rules/src/preparators/getReportingYearStart.js.map +1 -0
  67. package/dist/rules/src/properties/errors.js +22 -0
  68. package/dist/rules/src/properties/errors.js.map +1 -0
  69. package/dist/rules/src/properties/focus.js +72 -0
  70. package/dist/rules/src/properties/focus.js.map +1 -0
  71. package/dist/rules/src/properties/getAvailableChartTypes.js +31 -0
  72. package/dist/rules/src/properties/getAvailableChartTypes.js.map +1 -0
  73. package/dist/rules/src/properties/getHeaderProps.js +76 -0
  74. package/dist/rules/src/properties/getHeaderProps.js.map +1 -0
  75. package/dist/rules/src/properties/getInformationsStateFromNewProps.js +50 -0
  76. package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +1 -0
  77. package/dist/rules/src/properties/getObservationsType.js +28 -0
  78. package/dist/rules/src/properties/getObservationsType.js.map +1 -0
  79. package/dist/rules/src/properties/getStringifiedSubtitle.js +9 -0
  80. package/dist/rules/src/properties/getStringifiedSubtitle.js.map +1 -0
  81. package/dist/rules/src/properties/index.js +384 -0
  82. package/dist/rules/src/properties/index.js.map +1 -0
  83. package/dist/rules/src/properties/linear.js +123 -0
  84. package/dist/rules/src/properties/linear.js.map +1 -0
  85. package/dist/rules/src/properties/scatter.js +156 -0
  86. package/dist/rules/src/properties/scatter.js.map +1 -0
  87. package/dist/rules/src/properties/stacked.js +96 -0
  88. package/dist/rules/src/properties/stacked.js.map +1 -0
  89. package/dist/rules/src/properties/symbol.js +76 -0
  90. package/dist/rules/src/properties/symbol.js.map +1 -0
  91. package/dist/rules/src/properties/utils.js +86 -0
  92. package/dist/rules/src/properties/utils.js.map +1 -0
  93. package/dist/rules/src/sdmx-data/index.js +38 -0
  94. package/dist/rules/src/sdmx-data/index.js.map +1 -0
  95. package/dist/rules/src/table/factories/getCellValue.js +53 -0
  96. package/dist/rules/src/table/factories/getCellValue.js.map +1 -0
  97. package/dist/rules/src/v8-transformer.js +174 -0
  98. package/dist/rules/src/v8-transformer.js.map +1 -0
  99. package/dist/rules2/src/applyHierarchicalCodesToDim.js +126 -0
  100. package/dist/rules2/src/applyHierarchicalCodesToDim.js.map +1 -0
  101. package/dist/rules2/src/combinedValuesDisplay.js +77 -0
  102. package/dist/rules2/src/combinedValuesDisplay.js.map +1 -0
  103. package/dist/rules2/src/constants.js +9 -0
  104. package/dist/rules2/src/constants.js.map +1 -0
  105. package/dist/rules2/src/duplicateObservations.js +38 -0
  106. package/dist/rules2/src/duplicateObservations.js.map +1 -0
  107. package/dist/rules2/src/enhanceObservations.js +98 -0
  108. package/dist/rules2/src/enhanceObservations.js.map +1 -0
  109. package/dist/rules2/src/getAttributesSeries.js +39 -0
  110. package/dist/rules2/src/getAttributesSeries.js.map +1 -0
  111. package/dist/rules2/src/getCombinationDefinitions.js +50 -0
  112. package/dist/rules2/src/getCombinationDefinitions.js.map +1 -0
  113. package/dist/rules2/src/getDataflowAttributes.js +25 -0
  114. package/dist/rules2/src/getDataflowAttributes.js.map +1 -0
  115. package/dist/rules2/src/getDataflowTooltipAttributesIds.js +33 -0
  116. package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -0
  117. package/dist/rules2/src/getDimensionValuesIndexes.js +16 -0
  118. package/dist/rules2/src/getDimensionValuesIndexes.js.map +1 -0
  119. package/dist/rules2/src/getHCodelistsRefsInData.js +35 -0
  120. package/dist/rules2/src/getHCodelistsRefsInData.js.map +1 -0
  121. package/dist/rules2/src/getHeaderCombinations.js +51 -0
  122. package/dist/rules2/src/getHeaderCombinations.js.map +1 -0
  123. package/dist/rules2/src/getHeaderCoordinates.js +10 -0
  124. package/dist/rules2/src/getHeaderCoordinates.js.map +1 -0
  125. package/dist/rules2/src/getHeaderSubtitle.js +37 -0
  126. package/dist/rules2/src/getHeaderSubtitle.js.map +1 -0
  127. package/dist/rules2/src/getHeaderTitle.js +18 -0
  128. package/dist/rules2/src/getHeaderTitle.js.map +1 -0
  129. package/dist/rules2/src/getMSDInformations.js +26 -0
  130. package/dist/rules2/src/getMSDInformations.js.map +1 -0
  131. package/dist/rules2/src/getManyValuesDimensions.js +37 -0
  132. package/dist/rules2/src/getManyValuesDimensions.js.map +1 -0
  133. package/dist/rules2/src/getMetadataCoordinates.js +40 -0
  134. package/dist/rules2/src/getMetadataCoordinates.js.map +1 -0
  135. package/dist/rules2/src/getNotDisplayedIds.js +56 -0
  136. package/dist/rules2/src/getNotDisplayedIds.js.map +1 -0
  137. package/dist/rules2/src/getOneValueDimensions.js +37 -0
  138. package/dist/rules2/src/getOneValueDimensions.js.map +1 -0
  139. package/dist/rules2/src/getSeriesCombinations.js +27 -0
  140. package/dist/rules2/src/getSeriesCombinations.js.map +1 -0
  141. package/dist/rules2/src/hasCellMetadata.js +17 -0
  142. package/dist/rules2/src/hasCellMetadata.js.map +1 -0
  143. package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +60 -0
  144. package/dist/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js.map +1 -0
  145. package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +38 -0
  146. package/dist/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js.map +1 -0
  147. package/dist/rules2/src/index.js +47 -0
  148. package/dist/rules2/src/index.js.map +1 -0
  149. package/dist/rules2/src/parseAttributes.js +44 -0
  150. package/dist/rules2/src/parseAttributes.js.map +1 -0
  151. package/dist/rules2/src/parseCombinations.js +105 -0
  152. package/dist/rules2/src/parseCombinations.js.map +1 -0
  153. package/dist/rules2/src/parseHierarchicalCodelist.js +34 -0
  154. package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -0
  155. package/dist/rules2/src/parseMetadataSeries.js +124 -0
  156. package/dist/rules2/src/parseMetadataSeries.js.map +1 -0
  157. package/dist/rules2/src/prepareData.js +78 -0
  158. package/dist/rules2/src/prepareData.js.map +1 -0
  159. package/dist/rules2/src/refineAttributes.js +19 -0
  160. package/dist/rules2/src/refineAttributes.js.map +1 -0
  161. package/dist/rules2/src/refineDimensions.js +21 -0
  162. package/dist/rules2/src/refineDimensions.js.map +1 -0
  163. package/dist/rules2/src/refineTimePeriod.js +130 -0
  164. package/dist/rules2/src/refineTimePeriod.js.map +1 -0
  165. package/dist/rules2/src/sdmx3.0DataFormatPatch.js +12 -0
  166. package/dist/rules2/src/sdmx3.0DataFormatPatch.js.map +1 -0
  167. package/dist/rules2/src/table/declineObservationsOverAttributes.js +35 -0
  168. package/dist/rules2/src/table/declineObservationsOverAttributes.js.map +1 -0
  169. package/dist/rules2/src/table/getCells.js +96 -0
  170. package/dist/rules2/src/table/getCells.js.map +1 -0
  171. package/dist/rules2/src/table/getCellsAttributesIds.js +41 -0
  172. package/dist/rules2/src/table/getCellsAttributesIds.js.map +1 -0
  173. package/dist/rules2/src/table/getCellsMetadataCoordinates.js +16 -0
  174. package/dist/rules2/src/table/getCellsMetadataCoordinates.js.map +1 -0
  175. package/dist/rules2/src/table/getCuratedCells.js +36 -0
  176. package/dist/rules2/src/table/getCuratedCells.js.map +1 -0
  177. package/dist/rules2/src/table/getFlagsAndNotes.js +26 -0
  178. package/dist/rules2/src/table/getFlagsAndNotes.js.map +1 -0
  179. package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js +19 -0
  180. package/dist/rules2/src/table/getIndexedCombinationsByDisplay.js.map +1 -0
  181. package/dist/rules2/src/table/getLayout.js +87 -0
  182. package/dist/rules2/src/table/getLayout.js.map +1 -0
  183. package/dist/rules2/src/table/getLayoutData2.js +205 -0
  184. package/dist/rules2/src/table/getLayoutData2.js.map +1 -0
  185. package/dist/rules2/src/table/getSortedLayoutIndexes.js +141 -0
  186. package/dist/rules2/src/table/getSortedLayoutIndexes.js.map +1 -0
  187. package/dist/rules2/src/table/getTableLabelAccessor.js +11 -0
  188. package/dist/rules2/src/table/getTableLabelAccessor.js.map +1 -0
  189. package/dist/rules2/src/table/getTableLayoutIds.js +317 -0
  190. package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -0
  191. package/dist/rules2/src/table/getTableProps.js +85 -0
  192. package/dist/rules2/src/table/getTableProps.js.map +1 -0
  193. package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js +82 -0
  194. package/dist/rules2/src/table/parseSeriesIndexesHierarchies.js.map +1 -0
  195. package/dist/rules2/src/table/parseValueHierarchy.js +29 -0
  196. package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -0
  197. package/dist/rules2/src/table/refineLayoutSize2.js +324 -0
  198. package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -0
  199. package/dist/rules2/src/utils.js +29 -0
  200. package/dist/rules2/src/utils.js.map +1 -0
  201. package/dist/viewer/src/chart.js +50 -0
  202. package/dist/viewer/src/chart.js.map +1 -0
  203. package/dist/viewer/src/chartUtils/options.js +33 -0
  204. package/dist/viewer/src/chartUtils/options.js.map +1 -0
  205. package/dist/viewer/src/chartUtils/series.js +54 -0
  206. package/dist/viewer/src/chartUtils/series.js.map +1 -0
  207. package/dist/viewer/src/footer.js +39 -0
  208. package/dist/viewer/src/footer.js.map +1 -0
  209. package/dist/viewer/src/header.js +12 -0
  210. package/dist/viewer/src/header.js.map +1 -0
  211. package/dist/viewer/src/index.js +160 -0
  212. package/dist/viewer/src/index.js.map +1 -0
  213. package/dist/viewer/src/legends/AxisLegend.js +42 -0
  214. package/dist/viewer/src/legends/AxisLegend.js.map +1 -0
  215. package/dist/viewer/src/legends/ChartLegends.js +80 -0
  216. package/dist/viewer/src/legends/ChartLegends.js.map +1 -0
  217. package/dist/viewer/src/legends/FocusLegend.js +67 -0
  218. package/dist/viewer/src/legends/FocusLegend.js.map +1 -0
  219. package/dist/viewer/src/legends/Legend.js +51 -0
  220. package/dist/viewer/src/legends/Legend.js.map +1 -0
  221. package/dist/viewer/src/legends/SeriesLegend.js +77 -0
  222. package/dist/viewer/src/legends/SeriesLegend.js.map +1 -0
  223. package/dist/viewer/src/utils.js +24 -0
  224. package/dist/viewer/src/utils.js.map +1 -0
  225. package/package.json +1 -1
  226. package/src/app.js +13 -0
  227. package/src/bridge-d3-react/README.md +42 -0
  228. package/src/bridge-d3-react/src/app.js +64 -0
  229. package/src/bridge-d3-react/src/index.js +16 -0
  230. package/src/bridge-d3-react/src/mock-choro.js +394 -0
  231. package/src/bridge-d3-react/src/react-chart-factory.jsx +65 -0
  232. package/src/index.js +10 -0
  233. package/src/rules/README.md +23 -0
  234. package/src/rules/src/chart/getAxisOptions.js +263 -0
  235. package/src/rules/src/chart/getBaseOptions.js +84 -0
  236. package/src/rules/src/chart/getChartOptions.js +118 -0
  237. package/src/rules/src/chart/getGridOptions.js +52 -0
  238. package/src/rules/src/chart/getTooltipOptions.js +230 -0
  239. package/src/rules/src/constants.js +64 -0
  240. package/src/rules/src/date.js +118 -0
  241. package/src/rules/src/dimension-utils.js +54 -0
  242. package/src/rules/src/factories/choro-series.js +65 -0
  243. package/src/rules/src/factories/sample-focus.js +22 -0
  244. package/src/rules/src/factories/sample-series.js +50 -0
  245. package/src/rules/src/factories/scatter-dimension.js +32 -0
  246. package/src/rules/src/factories/scatter-focus.js +39 -0
  247. package/src/rules/src/factories/scatter-series.js +92 -0
  248. package/src/rules/src/factories/stacked-dimension.js +29 -0
  249. package/src/rules/src/factories/stacked-series.js +185 -0
  250. package/src/rules/src/factories/symbol-dimension.js +29 -0
  251. package/src/rules/src/factories/symbol-series.js +62 -0
  252. package/src/rules/src/factories/timeline-focus.js +18 -0
  253. package/src/rules/src/factories/timeline-series.js +91 -0
  254. package/src/rules/src/get-values-enhanced.js +134 -0
  255. package/src/rules/src/header/getDefaultSubtitle.js +40 -0
  256. package/src/rules/src/header/getHeaderUnits.js +17 -0
  257. package/src/rules/src/header/getSubtitleFlags.js +43 -0
  258. package/src/rules/src/header/getTitleFlags.js +8 -0
  259. package/src/rules/src/header/index.js +4 -0
  260. package/src/rules/src/index.js +398 -0
  261. package/src/rules/src/layout.js +113 -0
  262. package/src/rules/src/observation-formater.js +83 -0
  263. package/src/rules/src/preparators/enhanceObservations.js +152 -0
  264. package/src/rules/src/preparators/formatValue.js +93 -0
  265. package/src/rules/src/preparators/getObservations.js +19 -0
  266. package/src/rules/src/preparators/getReportingYearStart.js +16 -0
  267. package/src/rules/src/properties/errors.js +19 -0
  268. package/src/rules/src/properties/focus.js +69 -0
  269. package/src/rules/src/properties/getAvailableChartTypes.js +34 -0
  270. package/src/rules/src/properties/getHeaderProps.js +74 -0
  271. package/src/rules/src/properties/getInformationsStateFromNewProps.js +47 -0
  272. package/src/rules/src/properties/getObservationsType.js +29 -0
  273. package/src/rules/src/properties/getStringifiedSubtitle.js +6 -0
  274. package/src/rules/src/properties/index.js +424 -0
  275. package/src/rules/src/properties/information.js +84 -0
  276. package/src/rules/src/properties/linear.js +129 -0
  277. package/src/rules/src/properties/scatter.js +158 -0
  278. package/src/rules/src/properties/stacked.js +98 -0
  279. package/src/rules/src/properties/symbol.js +79 -0
  280. package/src/rules/src/properties/utils.js +110 -0
  281. package/src/rules/src/sdmx-data/index.js +39 -0
  282. package/src/rules/src/table/factories/getCellValue.js +50 -0
  283. package/src/rules/src/table/index.js +1 -0
  284. package/src/rules/src/v8-transformer.js +177 -0
  285. package/src/rules2/src/applyHierarchicalCodesToDim.js +123 -0
  286. package/src/rules2/src/combinedValuesDisplay.js +74 -0
  287. package/src/rules2/src/constants.js +6 -0
  288. package/src/rules2/src/duplicateObservations.js +35 -0
  289. package/src/rules2/src/enhanceObservations.js +95 -0
  290. package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +29 -0
  291. package/src/rules2/src/getAttributesSeries.js +36 -0
  292. package/src/rules2/src/getCombinationDefinitions.js +47 -0
  293. package/src/rules2/src/getDataflowAttributes.js +23 -0
  294. package/src/rules2/src/getDataflowTooltipAttributesIds.js +31 -0
  295. package/src/rules2/src/getDimensionValuesIndexes.js +13 -0
  296. package/src/rules2/src/getHCodelistsRefsInData.js +32 -0
  297. package/src/rules2/src/getHeaderCombinations.js +48 -0
  298. package/src/rules2/src/getHeaderCoordinates.js +7 -0
  299. package/src/rules2/src/getHeaderSubtitle.js +34 -0
  300. package/src/rules2/src/getHeaderTitle.js +15 -0
  301. package/src/rules2/src/getMSDInformations.js +23 -0
  302. package/src/rules2/src/getManyValuesDimensions.js +34 -0
  303. package/src/rules2/src/getMetadataCoordinates.js +37 -0
  304. package/src/rules2/src/getMetadataStructureFromData.js +17 -0
  305. package/src/rules2/src/getNotDisplayedIds.js +53 -0
  306. package/src/rules2/src/getOneValueDimensions.js +34 -0
  307. package/src/rules2/src/getSeriesCombinations.js +24 -0
  308. package/src/rules2/src/hasCellMetadata.js +14 -0
  309. package/src/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +57 -0
  310. package/src/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +35 -0
  311. package/src/rules2/src/index.js +50 -0
  312. package/src/rules2/src/parseAttributes.js +41 -0
  313. package/src/rules2/src/parseCombinations.js +102 -0
  314. package/src/rules2/src/parseHierarchicalCodelist.js +48 -0
  315. package/src/rules2/src/parseMetadataSeries.js +121 -0
  316. package/src/rules2/src/prepareData.js +75 -0
  317. package/src/rules2/src/refineAttributes.js +16 -0
  318. package/src/rules2/src/refineDimensions.js +18 -0
  319. package/src/rules2/src/refineMetadataCoordinates.js +28 -0
  320. package/src/rules2/src/refineTimePeriod.js +127 -0
  321. package/src/rules2/src/sdmx3.0DataFormatPatch.js +9 -0
  322. package/src/rules2/src/table/declineObservationsOverAttributes.js +32 -0
  323. package/src/rules2/src/table/getCells.js +93 -0
  324. package/src/rules2/src/table/getCellsAttributesIds.js +38 -0
  325. package/src/rules2/src/table/getCellsMetadataCoordinates.js +13 -0
  326. package/src/rules2/src/table/getCombinationDimensionsData.js +39 -0
  327. package/src/rules2/src/table/getCuratedCells.js +33 -0
  328. package/src/rules2/src/table/getFlagsAndNotes.js +23 -0
  329. package/src/rules2/src/table/getIndexedCombinationsByDisplay.js +16 -0
  330. package/src/rules2/src/table/getLayout.js +84 -0
  331. package/src/rules2/src/table/getLayoutData2.js +202 -0
  332. package/src/rules2/src/table/getSortedLayoutIndexes.js +138 -0
  333. package/src/rules2/src/table/getTableLabelAccessor.js +9 -0
  334. package/src/rules2/src/table/getTableLayoutIds.js +314 -0
  335. package/src/rules2/src/table/getTableProps.js +82 -0
  336. package/src/rules2/src/table/parseSeriesIndexesHierarchies.js +79 -0
  337. package/src/rules2/src/table/parseValueHierarchy.js +33 -0
  338. package/src/rules2/src/table/refineLayoutSize2.js +321 -0
  339. package/src/rules2/src/utils.js +37 -0
  340. package/src/viewer/mocks/bar.js +33 -0
  341. package/src/viewer/mocks/gpp-symbol.js +93 -0
  342. package/src/viewer/mocks/gpp-time.js +1103 -0
  343. package/src/viewer/mocks/row.js +39 -0
  344. package/src/viewer/mocks/scatter.js +93 -0
  345. package/src/viewer/mocks/stack.js +161 -0
  346. package/src/viewer/src/app/leg.js +36 -0
  347. package/src/viewer/src/app/nodata-res.js +22 -0
  348. package/src/viewer/src/app/nodata-sized.js +23 -0
  349. package/src/viewer/src/app/one-table-cell.js +70 -0
  350. package/src/viewer/src/app/table.js +423 -0
  351. package/src/viewer/src/app/use-case-1.js +33 -0
  352. package/src/viewer/src/app/use-case-2.js +38 -0
  353. package/src/viewer/src/app/use-case-3.js +18 -0
  354. package/src/viewer/src/app.js +116 -0
  355. package/src/viewer/src/chart.jsx +52 -0
  356. package/src/viewer/src/chartUtils/options.js +30 -0
  357. package/src/viewer/src/chartUtils/series.js +51 -0
  358. package/src/viewer/src/footer.jsx +23 -0
  359. package/src/viewer/src/header.jsx +10 -0
  360. package/src/viewer/src/index.jsx +158 -0
  361. package/src/viewer/src/legends/AxisLegend.jsx +41 -0
  362. package/src/viewer/src/legends/ChartLegends.jsx +66 -0
  363. package/src/viewer/src/legends/FocusLegend.jsx +63 -0
  364. package/src/viewer/src/legends/Legend.jsx +46 -0
  365. package/src/viewer/src/legends/SeriesLegend.jsx +78 -0
  366. package/src/viewer/src/utils.js +21 -0
@@ -0,0 +1,160 @@
1
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React__default, { useState, useEffect } from 'react';
3
+ import * as R from 'ramda';
4
+ import useSize from '@react-hook/size';
5
+ import { Loading, NoData, TableHtml5 } from '@sis-cc/dotstatsuite-visions';
6
+ import { useTheme, makeStyles } from '@mui/styles';
7
+ import getChartOptions from './chartUtils/options.js';
8
+ import Header from './header.js';
9
+ import ChartWrapper from './chart.js';
10
+ import Footer from './footer.js';
11
+ import { isChartDataNotReady } from './utils.js';
12
+
13
+ const useStyles = makeStyles(() => ({
14
+ container: {
15
+ borderColor: '#007bc7',
16
+ borderBottomWidth: 1,
17
+ borderLeftWidth: 0,
18
+ borderTopWidth: 1,
19
+ borderRightWidth: 0,
20
+ borderStyle: 'solid',
21
+ '& svg text::selection': {
22
+ background: 'none'
23
+ }
24
+ },
25
+ tableContainer: {
26
+ minWidth: '100%',
27
+ minHeight: '100%',
28
+ willChange: 'transform, opacity'
29
+ },
30
+ chartContainer: {
31
+ width: ({
32
+ fixedWidth
33
+ }) => fixedWidth || '100%',
34
+ height: ({
35
+ fixedHeight
36
+ }) => fixedHeight || '100%',
37
+ overflow: 'hidden',
38
+ position: 'relative'
39
+ }
40
+ }));
41
+ const ViewContent = ({
42
+ loading,
43
+ loadingProps = {},
44
+ type,
45
+ width,
46
+ errorMessage,
47
+ ...rest
48
+ }) => {
49
+ if (loading) return /*#__PURE__*/React__default.createElement(Loading, _extends({
50
+ message: loading
51
+ }, loadingProps));
52
+ if (errorMessage) return /*#__PURE__*/React__default.createElement(NoData, {
53
+ message: errorMessage
54
+ });
55
+ if (type === 'table') {
56
+ const tableProps = R.propOr({}, 'tableProps', rest);
57
+ const hasNoObs = R.pipe(R.prop('cells'), R.anyPass([R.isNil, R.isEmpty]))(tableProps);
58
+ if (hasNoObs) return /*#__PURE__*/React__default.createElement(Loading, null);
59
+ return /*#__PURE__*/React__default.createElement(TableHtml5, _extends({
60
+ isRtl: R.prop('isRtl', rest)
61
+ }, tableProps));
62
+ }
63
+ if (isChartDataNotReady({
64
+ data: R.prop('chartData', rest)
65
+ }) || !width) {
66
+ return /*#__PURE__*/React__default.createElement(Loading, null);
67
+ }
68
+ return /*#__PURE__*/React__default.createElement(ChartWrapper, {
69
+ data: R.prop('chartData', rest),
70
+ getAxisOptions: R.prop('getAxisOptions', rest),
71
+ heightOffsets: R.prop('heightOffsets', rest),
72
+ options: R.prop('chartOptions', rest),
73
+ type: type,
74
+ width: width
75
+ });
76
+ };
77
+ const Viewer = ({
78
+ type,
79
+ targets = {},
80
+ width,
81
+ ...rest
82
+ }) => {
83
+ const classes = useStyles({
84
+ fixedWidth: rest.fixedWidth,
85
+ fixedHeight: rest.fixedHeight
86
+ });
87
+ return /*#__PURE__*/React__default.createElement("div", _extends({}, targets.viewer ? {
88
+ ref: targets.viewer
89
+ } : {}, {
90
+ className: R.join(' ')([classes.container, type === 'table' ? classes.tableContainer : classes.chartContainer])
91
+ }), /*#__PURE__*/React__default.createElement(Header, _extends({
92
+ target: targets.header
93
+ }, R.propOr({}, 'headerProps', rest))), /*#__PURE__*/React__default.createElement(ViewContent, _extends({
94
+ type: type,
95
+ width: width
96
+ }, rest)), /*#__PURE__*/React__default.createElement(Footer, _extends({
97
+ width: width,
98
+ target: targets.footer,
99
+ type: type,
100
+ chartData: R.prop('chartData', rest),
101
+ chartOptions: R.prop('chartOptions', rest)
102
+ }, R.prop('footerProps', rest))));
103
+ };
104
+ const defaultChartHeight = chartOptions => R.pipe(R.path(['base', 'height']), h => R.isNil(h) || isNaN(h) ? 0 : h)(chartOptions);
105
+ const ViewerWrapper = ({
106
+ chartOptions,
107
+ type,
108
+ getResponsiveSize,
109
+ ...props
110
+ }) => {
111
+ const theme = useTheme();
112
+ const viewerTarget = React__default.useRef(null);
113
+ const headerTarget = React__default.useRef(null);
114
+ const footerTarget = React__default.useRef(null);
115
+ const [viewerWidth, viewerHeight] = useSize(viewerTarget);
116
+ const [_, headerHeight] = useSize(headerTarget, {
117
+ initialHeight: -1
118
+ });
119
+ const [___, footerHeight] = useSize(footerTarget, {
120
+ initialHeight: -1
121
+ });
122
+ const [chartSvgHeight, setChartSvgHeight] = useState(0);
123
+ const defChartHeight = defaultChartHeight(chartOptions);
124
+ useEffect(() => {
125
+ if (R.is(Function, getResponsiveSize) && viewerWidth && headerHeight !== -1 && footerHeight !== -1) {
126
+ getResponsiveSize({
127
+ responsiveWidth: viewerWidth,
128
+ responsiveHeight: viewerHeight
129
+ });
130
+ }
131
+ }, [viewerWidth, viewerHeight]);
132
+ useEffect(() => {
133
+ if (headerHeight !== -1 && footerHeight !== -1 && !isNaN(headerHeight) && !isNaN(footerHeight)) {
134
+ const nextHeight = defChartHeight - headerHeight - footerHeight - 2;
135
+ setChartSvgHeight(nextHeight);
136
+ }
137
+ }, [headerHeight, footerHeight, defChartHeight]);
138
+ if (type === 'table') {
139
+ return /*#__PURE__*/React__default.createElement(Viewer, _extends({}, props, {
140
+ width: viewerWidth,
141
+ type: type
142
+ }));
143
+ }
144
+ const preparedChartOptions = R.pipe(R.over(R.lensPath(['base', 'width']), R.when(R.anyPass([R.isNil, isNaN]), R.always(viewerWidth || 0))), R.set(R.lensPath(['base', 'height']), chartSvgHeight), chartOptions => getChartOptions(chartOptions, props.chartData, type, theme, props.timeFormats, props.locale))(chartOptions);
145
+ return /*#__PURE__*/React__default.createElement(Viewer, _extends({}, props, {
146
+ type: type,
147
+ chartOptions: preparedChartOptions,
148
+ fixedWidth: R.path(['base', 'width'], chartOptions),
149
+ fixedHeight: defChartHeight,
150
+ targets: {
151
+ viewer: viewerTarget,
152
+ header: headerTarget,
153
+ footer: footerTarget
154
+ },
155
+ width: viewerWidth
156
+ }));
157
+ };
158
+
159
+ export { ViewerWrapper as default };
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/viewer/src/index.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport * as R from 'ramda';\nimport useSize from '@react-hook/size';\nimport { Loading, NoData, TableHtml5 } from '@sis-cc/dotstatsuite-visions';\nimport { makeStyles, useTheme } from '@mui/styles';\nimport getChartOptions from './chartUtils/options.js';\nimport Header from './header.jsx';\nimport Chart from './chart.jsx';\nimport Footer from './footer.jsx';\nimport { isChartDataNotReady } from './utils.js';\n\nconst useStyles = makeStyles(() => ({\n container: {\n borderColor: '#007bc7',\n borderBottomWidth: 1,\n borderLeftWidth: 0,\n borderTopWidth: 1,\n borderRightWidth: 0,\n borderStyle: 'solid',\n '& svg text::selection': {\n background: 'none'\n }\n },\n tableContainer: {\n minWidth: '100%',\n minHeight: '100%',\n willChange: 'transform, opacity'\n },\n chartContainer: {\n width: ({ fixedWidth }) => fixedWidth || '100%',\n height: ({ fixedHeight }) => fixedHeight || '100%',\n overflow: 'hidden',\n position: 'relative'\n }\n}));\n\nconst ViewContent = ({ loading, loadingProps = {}, type, width, errorMessage, ...rest }) => {\n if (loading)\n return <Loading message={loading} {...loadingProps} />;\n if (errorMessage)\n return <NoData message={errorMessage} />;\n\n if (type === 'table') {\n const tableProps = R.propOr({}, 'tableProps', rest);\n const hasNoObs = R.pipe(R.prop('cells'), R.anyPass([R.isNil, R.isEmpty]))(tableProps);\n if (hasNoObs) return <Loading />;\n\n return <TableHtml5 isRtl={R.prop('isRtl', rest)} {...tableProps} />;\n }\n if (isChartDataNotReady({ data: R.prop('chartData', rest) }) || !width) {\n return <Loading />;\n }\n return (\n <Chart\n data={R.prop('chartData', rest)}\n getAxisOptions={R.prop('getAxisOptions', rest)}\n heightOffsets={R.prop('heightOffsets', rest)}\n options={R.prop('chartOptions', rest)}\n type={type}\n width={width}\n />\n );\n};\n\nconst Viewer = ({ type, targets = {}, width, ...rest }) => {\n const classes = useStyles({\n fixedWidth: rest.fixedWidth,\n fixedHeight: rest.fixedHeight\n });\n\n return (\n <div\n {...(targets.viewer ? { ref: targets.viewer } : {})}\n className={R.join(' ')(\n [classes.container,\n type === 'table' ? classes.tableContainer : classes.chartContainer]\n )}\n >\n <Header\n target={targets.header}\n {...R.propOr({}, 'headerProps', rest)}\n />\n <ViewContent type={type} width={width} {...rest} />\n <Footer\n width={width}\n target={targets.footer}\n type={type}\n chartData={R.prop('chartData', rest)}\n chartOptions={R.prop('chartOptions', rest)}\n {...R.prop('footerProps', rest)}\n />\n </div>\n );\n};\n\nconst defaultChartHeight = chartOptions => R.pipe(\n R.path(['base', 'height']),\n h => (R.isNil(h) || isNaN(h)) ? 0 : h\n)(chartOptions);\n\nconst ViewerWrapper = ({ chartOptions, type, getResponsiveSize, ...props }) => {\n const theme = useTheme();\n const viewerTarget = React.useRef(null);\n const headerTarget = React.useRef(null);\n const footerTarget = React.useRef(null);\n const [viewerWidth, viewerHeight] = useSize(viewerTarget);\n const [_, headerHeight] = useSize(headerTarget, { initialHeight: -1 });\n const [___, footerHeight] = useSize(footerTarget, { initialHeight: -1 });\n const [chartSvgHeight, setChartSvgHeight] = useState(0);\n const defChartHeight = defaultChartHeight(chartOptions);\n\n useEffect(() => {\n if (R.is(Function, getResponsiveSize) && viewerWidth && headerHeight !== -1 && footerHeight !== -1) {\n getResponsiveSize({\n responsiveWidth: viewerWidth,\n responsiveHeight: viewerHeight\n });\n }\n }, [viewerWidth, viewerHeight]);\n\n useEffect(() => {\n if (headerHeight !== -1 && footerHeight !== -1 && !isNaN(headerHeight) && !isNaN(footerHeight)) {\n const nextHeight = defChartHeight - headerHeight - footerHeight - 2;\n setChartSvgHeight(nextHeight);\n }\n }, [headerHeight, footerHeight, defChartHeight]);\n\n\n if (type === 'table') {\n return <Viewer\n {...props}\n width={viewerWidth}\n type={type}\n />;\n }\n\n const preparedChartOptions = R.pipe(\n R.over(R.lensPath(['base', 'width']), R.when(R.anyPass([R.isNil, isNaN]), R.always(viewerWidth || 0))),\n R.set(R.lensPath(['base', 'height']), chartSvgHeight),\n chartOptions => getChartOptions(chartOptions, props.chartData, type, theme, props.timeFormats, props.locale),\n )(chartOptions);\n\n return <Viewer\n {...props}\n type={type}\n chartOptions={preparedChartOptions}\n fixedWidth={R.path(['base', 'width'], chartOptions)}\n fixedHeight={defChartHeight}\n targets={{\n viewer: viewerTarget,\n header: headerTarget,\n footer: footerTarget\n }}\n width={viewerWidth}\n />;\n};\n\nexport default ViewerWrapper;\n"],"names":["useStyles","makeStyles","container","borderColor","borderBottomWidth","borderLeftWidth","borderTopWidth","borderRightWidth","borderStyle","background","tableContainer","minWidth","minHeight","willChange","chartContainer","width","fixedWidth","height","fixedHeight","overflow","position","ViewContent","loading","loadingProps","type","errorMessage","rest","React","createElement","Loading","_extends","message","NoData","tableProps","R","propOr","hasNoObs","pipe","prop","anyPass","isNil","isEmpty","TableHtml5","isRtl","isChartDataNotReady","data","Chart","getAxisOptions","heightOffsets","options","Viewer","targets","classes","viewer","ref","className","join","Header","target","header","Footer","footer","chartData","chartOptions","defaultChartHeight","path","h","isNaN","ViewerWrapper","getResponsiveSize","props","theme","useTheme","viewerTarget","useRef","headerTarget","footerTarget","viewerWidth","viewerHeight","useSize","_","headerHeight","initialHeight","___","footerHeight","chartSvgHeight","setChartSvgHeight","useState","defChartHeight","useEffect","is","Function","responsiveWidth","responsiveHeight","nextHeight","preparedChartOptions","over","lensPath","when","always","set","getChartOptions","timeFormats","locale"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import React__default from 'react';
2
+ import * as R from 'ramda';
3
+ import { SCATTER } from '../../../rules/src/constants.js';
4
+ import { getFontFromTheme } from '../utils.js';
5
+ import makeStyles from '../../../node_modules/@mui/styles/makeStyles/makeStyles.js';
6
+
7
+ const useStyles = makeStyles(theme => {
8
+ const legendFont = getFontFromTheme(['axisLegend'])(theme);
9
+ return {
10
+ xLegend: legendFont,
11
+ yLegend: {
12
+ ...legendFont,
13
+ left: 10,
14
+ position: 'absolute',
15
+ zIndex: 1
16
+ }
17
+ };
18
+ });
19
+ const getAxisLabel = axis => R.pipe(R.propOr([], 'series'), R.head, R.when(R.isNil, R.always({})), R.path(['dimensionValues', axis, 'name']));
20
+ const AxisLegend = ({
21
+ axis,
22
+ data,
23
+ type
24
+ }) => {
25
+ const classes = useStyles();
26
+ if (!R.equals(SCATTER, type)) return null;
27
+ switch (axis) {
28
+ case 'x':
29
+ return /*#__PURE__*/React__default.createElement("span", {
30
+ className: classes.xLegend
31
+ }, "\u2192 ", getAxisLabel('x')(data));
32
+ case 'y':
33
+ return /*#__PURE__*/React__default.createElement("span", {
34
+ className: classes.yLegend
35
+ }, "\u2191 ", getAxisLabel('y')(data));
36
+ default:
37
+ return null;
38
+ }
39
+ };
40
+
41
+ export { AxisLegend as default };
42
+ //# sourceMappingURL=AxisLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AxisLegend.js","sources":["../../../../src/viewer/src/legends/AxisLegend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { SCATTER } from '../../../rules/src/constants';\nimport { getFontFromTheme } from '../utils';\n\nconst useStyles = makeStyles(theme => {\n const legendFont = getFontFromTheme(['axisLegend'])(theme);\n return ({\n xLegend: legendFont,\n yLegend: {\n ...legendFont,\n left: 10,\n position: 'absolute',\n zIndex: 1,\n }\n })\n});\n\nconst getAxisLabel = axis => R.pipe(\n R.propOr([], 'series'),\n R.head,\n R.when(R.isNil, R.always({})),\n R.path(['dimensionValues', axis, 'name'])\n);\n\nconst AxisLegend = ({ axis, data, type }) => {\n const classes = useStyles();\n if (!R.equals(SCATTER, type))\n return null;\n switch (axis) {\n case 'x':\n return <span className={classes.xLegend}>→ {getAxisLabel('x')(data)}</span>;\n case 'y':\n return <span className={classes.yLegend}>↑ {getAxisLabel('y')(data)}</span>;\n default:\n return null;\n }\n};\n\nexport default AxisLegend;\n"],"names":["useStyles","makeStyles","theme","legendFont","getFontFromTheme","xLegend","yLegend","left","position","zIndex","getAxisLabel","axis","R","pipe","propOr","head","when","isNil","always","path","AxisLegend","data","type","classes","equals","SCATTER","React","createElement","className"],"mappings":";;;;;;AAMA,MAAMA,SAAS,GAAGC,UAAU,CAACC,KAAK,IAAI;EACpC,MAAMC,UAAU,GAAGC,gBAAgB,CAAC,CAAC,YAAY,CAAC,CAAC,CAACF,KAAK,CAAC;EAC1D,OAAQ;AACNG,IAAAA,OAAO,EAAEF,UAAU;AACnBG,IAAAA,OAAO,EAAE;AACP,MAAA,GAAGH,UAAU;AACbI,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,QAAQ,EAAE,UAAU;AACpBC,MAAAA,MAAM,EAAE;AACV;GACD;AACH,CAAC,CAAC;AAEF,MAAMC,YAAY,GAAGC,IAAI,IAAIC,CAAC,CAACC,IAAI,CACjCD,CAAC,CAACE,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EACtBF,CAAC,CAACG,IAAI,EACNH,CAAC,CAACI,IAAI,CAACJ,CAAC,CAACK,KAAK,EAAEL,CAAC,CAACM,MAAM,CAAC,EAAE,CAAC,CAAC,EAC7BN,CAAC,CAACO,IAAI,CAAC,CAAC,iBAAiB,EAAER,IAAI,EAAE,MAAM,CAAC,CAC1C,CAAC;AAED,MAAMS,UAAU,GAAGA,CAAC;EAAET,IAAI;EAAEU,IAAI;AAAEC,EAAAA;AAAK,CAAC,KAAK;AAC3C,EAAA,MAAMC,OAAO,GAAGvB,SAAS,EAAE;EAC3B,IAAI,CAACY,CAAC,CAACY,MAAM,CAACC,OAAO,EAAEH,IAAI,CAAC,EAC1B,OAAO,IAAI;AACb,EAAA,QAAQX,IAAI;AACV,IAAA,KAAK,GAAG;MACN,oBAAOe,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;QAAMC,SAAS,EAAEL,OAAO,CAAClB;OAAQ,EAAC,SAAE,EAACK,YAAY,CAAC,GAAG,CAAC,CAACW,IAAI,CAAQ,CAAC;AAC7E,IAAA,KAAK,GAAG;MACN,oBAAOK,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;QAAMC,SAAS,EAAEL,OAAO,CAACjB;OAAQ,EAAC,SAAE,EAACI,YAAY,CAAC,GAAG,CAAC,CAACW,IAAI,CAAQ,CAAC;AAC7E,IAAA;AACE,MAAA,OAAO,IAAI;AACf;AACF;;;;"}
@@ -0,0 +1,80 @@
1
+ import React__default from 'react';
2
+ import * as R from 'ramda';
3
+ import numeral from 'numeral';
4
+ import { computeOptions } from '@sis-cc/dotstatsuite-d3-charts';
5
+ import { ChoroplethLegend } from '../../../bridge-d3-react/src/index.js';
6
+ import AxisLegend from './AxisLegend.js';
7
+ import FocusLegend from './FocusLegend.js';
8
+ import SeriesLegend from './SeriesLegend.js';
9
+ import { CHORO } from '../../../rules/src/constants.js';
10
+ import { getFontFromTheme, getOptionsFromFont } from '../utils.js';
11
+ import useTheme from '../../../node_modules/@mui/material/styles/useTheme.js';
12
+
13
+ const ChoroLegend = ({
14
+ type,
15
+ options,
16
+ data
17
+ }) => {
18
+ if (type !== CHORO) {
19
+ return null;
20
+ }
21
+ const theme = useTheme();
22
+ const fontOptions = R.pipe(getFontFromTheme(['mapLegend']), getOptionsFromFont)(theme);
23
+ const legendOptions = R.mergeDeepLeft(options, {
24
+ legend: {
25
+ choropleth: {
26
+ width: 300,
27
+ height: 30,
28
+ margin: {
29
+ left: 15,
30
+ right: 15
31
+ },
32
+ axis: {
33
+ thickness: 0,
34
+ orient: 'bottom',
35
+ font: fontOptions,
36
+ tick: {
37
+ size: 5,
38
+ thickness: 0
39
+ },
40
+ format: {
41
+ proc: d => numeral(d).format('0,0.[00]')
42
+ }
43
+ }
44
+ }
45
+ }
46
+ });
47
+ return /*#__PURE__*/React__default.createElement(ChoroplethLegend, {
48
+ options: legendOptions,
49
+ data: data.series
50
+ });
51
+ };
52
+ const ChartLegends = ({
53
+ data,
54
+ options,
55
+ type,
56
+ width
57
+ }) => {
58
+ const engineOptions = R.pipe(R.assocPath(['serie', 'stacked', 'layerSeries'], R.pathOr([], ['series', 0, 'layerSeries'], data)), computeOptions)(options);
59
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(AxisLegend, {
60
+ axis: "x",
61
+ data: data,
62
+ type: type
63
+ }), /*#__PURE__*/React__default.createElement(FocusLegend, {
64
+ data: data,
65
+ options: engineOptions,
66
+ type: type,
67
+ width: width
68
+ }), /*#__PURE__*/React__default.createElement(SeriesLegend, {
69
+ data: data,
70
+ options: engineOptions,
71
+ type: type
72
+ }), /*#__PURE__*/React__default.createElement(ChoroLegend, {
73
+ data: data,
74
+ options: options,
75
+ type: type
76
+ }));
77
+ };
78
+
79
+ export { ChartLegends as default };
80
+ //# sourceMappingURL=ChartLegends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartLegends.js","sources":["../../../../src/viewer/src/legends/ChartLegends.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport numeral from 'numeral';\nimport { computeOptions } from '@sis-cc/dotstatsuite-d3-charts';\nimport { ChoroplethLegend } from '../../../bridge-d3-react/src';\nimport { useTheme } from '@mui/material/styles';\nimport AxisLegend from './AxisLegend.jsx';\nimport FocusLegend from './FocusLegend.jsx';\nimport SeriesLegend from './SeriesLegend.jsx';\nimport { CHORO } from '../../../rules/src/constants';\nimport { getFontFromTheme, getOptionsFromFont } from '../utils';\n\n\nconst ChoroLegend = ({ type, options, data }) => {\n if (type !== CHORO) {\n return null;\n }\n const theme = useTheme();\n const fontOptions = R.pipe(getFontFromTheme(['mapLegend']), getOptionsFromFont)(theme);\n const legendOptions = R.mergeDeepLeft(\n options,\n {\n legend: {\n choropleth: {\n width: 300,\n height: 30,\n margin: { left: 15, right: 15 },\n axis: {\n thickness: 0,\n orient: 'bottom',\n font: fontOptions,\n tick: {\n size: 5,\n thickness: 0\n },\n format: {\n proc: d => numeral(d).format('0,0.[00]')\n }\n }\n }\n }\n }\n );\n\n return (\n <ChoroplethLegend options={legendOptions} data={data.series} />\n );\n}\n\nconst ChartLegends = ({ data, options, type, width }) => {\n const engineOptions = R.pipe(\n R.assocPath(['serie', 'stacked', 'layerSeries'], R.pathOr([], ['series', 0, 'layerSeries'], data)),\n computeOptions\n )(options);\n\n return (\n <div>\n <AxisLegend axis=\"x\" data={data} type={type} />\n <FocusLegend data={data} options ={engineOptions} type={type} width={width} />\n <SeriesLegend data={data} options={engineOptions} type={type} />\n <ChoroLegend data={data} options={options} type={type} />\n </div>\n );\n};\n\nexport default ChartLegends;\n"],"names":["ChoroLegend","type","options","data","CHORO","theme","useTheme","fontOptions","R","pipe","getFontFromTheme","getOptionsFromFont","legendOptions","mergeDeepLeft","legend","choropleth","width","height","margin","left","right","axis","thickness","orient","font","tick","size","format","proc","d","numeral","React","createElement","ChoroplethLegend","series","ChartLegends","engineOptions","assocPath","pathOr","computeOptions","AxisLegend","FocusLegend","SeriesLegend"],"mappings":";;;;;;;;;;;;AAaA,MAAMA,WAAW,GAAGA,CAAC;EAAEC,IAAI;EAAEC,OAAO;AAAEC,EAAAA;AAAK,CAAC,KAAK;EAC/C,IAAIF,IAAI,KAAKG,KAAK,EAAE;AAClB,IAAA,OAAO,IAAI;AACb,EAAA;AACA,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE;AACxB,EAAA,MAAMC,WAAW,GAAGC,CAAC,CAACC,IAAI,CAACC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAEC,kBAAkB,CAAC,CAACN,KAAK,CAAC;AACtF,EAAA,MAAMO,aAAa,GAAGJ,CAAC,CAACK,aAAa,CACnCX,OAAO,EACP;AACEY,IAAAA,MAAM,EAAE;AACNC,MAAAA,UAAU,EAAE;AACVC,QAAAA,KAAK,EAAE,GAAG;AACVC,QAAAA,MAAM,EAAE,EAAE;AACVC,QAAAA,MAAM,EAAE;AAAEC,UAAAA,IAAI,EAAE,EAAE;AAAEC,UAAAA,KAAK,EAAE;SAAI;AAC/BC,QAAAA,IAAI,EAAE;AACJC,UAAAA,SAAS,EAAE,CAAC;AACZC,UAAAA,MAAM,EAAE,QAAQ;AAChBC,UAAAA,IAAI,EAAEjB,WAAW;AACjBkB,UAAAA,IAAI,EAAE;AACJC,YAAAA,IAAI,EAAE,CAAC;AACPJ,YAAAA,SAAS,EAAE;WACZ;AACDK,UAAAA,MAAM,EAAE;YACNC,IAAI,EAAEC,CAAC,IAAIC,OAAO,CAACD,CAAC,CAAC,CAACF,MAAM,CAAC,UAAU;AACzC;AACF;AACF;AACF;AACF,GACF,CAAC;AAED,EAAA,oBACEI,cAAA,CAAAC,aAAA,CAACC,gBAAgB,EAAA;AAAC/B,IAAAA,OAAO,EAAEU,aAAc;IAACT,IAAI,EAAEA,IAAI,CAAC+B;AAAO,GAAE,CAAC;AAEnE,CAAC;AAED,MAAMC,YAAY,GAAGA,CAAC;EAAEhC,IAAI;EAAED,OAAO;EAAED,IAAI;AAAEe,EAAAA;AAAM,CAAC,KAAK;AACvD,EAAA,MAAMoB,aAAa,GAAG5B,CAAC,CAACC,IAAI,CAC1BD,CAAC,CAAC6B,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE7B,CAAC,CAAC8B,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,CAAC,EAAEnC,IAAI,CAAC,CAAC,EAClGoC,cACF,CAAC,CAACrC,OAAO,CAAC;EAEV,oBACE6B,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAACQ,UAAU,EAAA;AAACnB,IAAAA,IAAI,EAAC,GAAG;AAAClB,IAAAA,IAAI,EAAEA,IAAK;AAACF,IAAAA,IAAI,EAAEA;AAAK,GAAE,CAAC,eAC/C8B,cAAA,CAAAC,aAAA,CAACS,WAAW,EAAA;AAACtC,IAAAA,IAAI,EAAEA,IAAK;AAACD,IAAAA,OAAO,EAAGkC,aAAc;AAACnC,IAAAA,IAAI,EAAEA,IAAK;AAACe,IAAAA,KAAK,EAAEA;AAAM,GAAE,CAAC,eAC9Ee,cAAA,CAAAC,aAAA,CAACU,YAAY,EAAA;AAACvC,IAAAA,IAAI,EAAEA,IAAK;AAACD,IAAAA,OAAO,EAAEkC,aAAc;AAACnC,IAAAA,IAAI,EAAEA;AAAK,GAAE,CAAC,eAChE8B,cAAA,CAAAC,aAAA,CAAChC,WAAW,EAAA;AAACG,IAAAA,IAAI,EAAEA,IAAK;AAACD,IAAAA,OAAO,EAAEA,OAAQ;AAACD,IAAAA,IAAI,EAAEA;AAAK,GAAE,CACrD,CAAC;AAEV;;;;"}
@@ -0,0 +1,67 @@
1
+ import React__default from 'react';
2
+ import * as R from 'ramda';
3
+ import Legend from './Legend.js';
4
+ import { SCATTER, TIMELINE } from '../../../rules/src/constants.js';
5
+
6
+ const REDUCED_THRESHOLD = 160;
7
+ const scatterRenderer = ({
8
+ color
9
+ }) => /*#__PURE__*/React__default.createElement("svg", {
10
+ width: "12",
11
+ height: "14"
12
+ }, /*#__PURE__*/React__default.createElement("circle", {
13
+ cx: "7",
14
+ cy: "7",
15
+ r: "4",
16
+ stroke: color,
17
+ fill: color
18
+ }));
19
+ const lineRenderer = ({
20
+ color
21
+ }) => /*#__PURE__*/React__default.createElement("svg", {
22
+ width: "12",
23
+ height: "14"
24
+ }, /*#__PURE__*/React__default.createElement("line", {
25
+ x1: "0",
26
+ y1: "7",
27
+ x2: "11",
28
+ y2: "7",
29
+ stroke: color,
30
+ strokeWidth: "2"
31
+ }));
32
+ const FocusLegend = ({
33
+ data,
34
+ options,
35
+ type,
36
+ width
37
+ }) => {
38
+ if (width < REDUCED_THRESHOLD) {
39
+ return null;
40
+ }
41
+ const itemRenderer = R.pipe(R.when(R.always(type === SCATTER), R.always(scatterRenderer)), R.when(R.always(type === TIMELINE), R.always(lineRenderer)))(null);
42
+ const getItemLabel = R.ifElse(R.equals(SCATTER), R.always(R.pipe(R.prop('label'), R.split(' - '), R.last)), R.always(R.prop('label')))(type);
43
+ const items = R.pipe(R.pathOr({}, ['share', 'focused']), R.mapObjIndexed((selection, key) => {
44
+ if (R.isNil(selection)) {
45
+ return null;
46
+ }
47
+ const colors = R.pathOr([], ['serie', `${key}Colors`], options);
48
+ const nColors = R.length(colors);
49
+ return R.pipe(R.addIndex(R.map)((entry, index) => {
50
+ if (entry.value === 'uniq-dp') {
51
+ return null;
52
+ }
53
+ const color = R.nth(index % nColors, colors);
54
+ return {
55
+ color,
56
+ label: getItemLabel(entry)
57
+ };
58
+ }), R.filter(R.identity))(selection);
59
+ }), R.props(['baseline', 'highlight']), R.filter(R.identity), R.unnest)(data);
60
+ return /*#__PURE__*/React__default.createElement(Legend, {
61
+ items: items,
62
+ itemRenderer: itemRenderer
63
+ });
64
+ };
65
+
66
+ export { REDUCED_THRESHOLD, FocusLegend as default };
67
+ //# sourceMappingURL=FocusLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusLegend.js","sources":["../../../../src/viewer/src/legends/FocusLegend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport Legend from './Legend.jsx';\nimport { SCATTER, TIMELINE } from '../../../rules/src/constants';\n\nexport const REDUCED_THRESHOLD = 160;\n\nconst scatterRenderer = ({ color }) => (\n <svg width='12' height='14'>\n <circle cx='7' cy='7' r='4' stroke={color} fill={color} />\n </svg>\n);\n\nconst lineRenderer = ({ color }) => (\n <svg width='12' height='14'>\n <line x1='0' y1='7' x2='11' y2='7' stroke={color} strokeWidth='2' />\n </svg>\n);\n\nconst FocusLegend = ({ data, options, type, width }) => {\n if (width < REDUCED_THRESHOLD) {\n return null;\n }\n\n const itemRenderer = R.pipe(\n R.when(R.always(type === SCATTER), R.always(scatterRenderer)),\n R.when(R.always(type === TIMELINE), R.always(lineRenderer)),\n )(null);\n\n const getItemLabel = R.ifElse(\n R.equals(SCATTER),\n R.always(R.pipe(R.prop('label'), R.split(' - '), R.last)),\n R.always(R.prop('label'))\n )(type);\n\n const items = R.pipe(\n R.pathOr({}, ['share', 'focused']),\n R.mapObjIndexed((selection, key) => {\n if (R.isNil(selection)) {\n return null;\n }\n const colors = R.pathOr([], ['serie', `${key}Colors`], options);\n const nColors = R.length(colors);\n return R.pipe(\n R.addIndex(R.map)((entry, index) => {\n if (entry.value === 'uniq-dp') {\n return null;\n }\n const color = R.nth(index % nColors, colors);\n return ({ color, label: getItemLabel(entry) });\n }),\n R.filter(R.identity)\n )(selection);\n }),\n R.props(['baseline', 'highlight']),\n R.filter(R.identity),\n R.unnest\n )(data)\n\n return (<Legend items={items} itemRenderer={itemRenderer} />);\n}\n\nexport default FocusLegend;\n"],"names":["REDUCED_THRESHOLD","scatterRenderer","color","React","createElement","width","height","cx","cy","r","stroke","fill","lineRenderer","x1","y1","x2","y2","strokeWidth","FocusLegend","data","options","type","itemRenderer","R","pipe","when","always","SCATTER","TIMELINE","getItemLabel","ifElse","equals","prop","split","last","items","pathOr","mapObjIndexed","selection","key","isNil","colors","nColors","length","addIndex","map","entry","index","value","nth","label","filter","identity","props","unnest","Legend"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import React__default from 'react';
2
+ import * as R from 'ramda';
3
+ import { getFontFromTheme } from '../utils.js';
4
+ import makeStyles from '../../../node_modules/@mui/styles/makeStyles/makeStyles.js';
5
+
6
+ const useStyles = makeStyles(theme => ({
7
+ legend: {
8
+ ...getFontFromTheme(['chartLegend'])(theme),
9
+ display: 'flex',
10
+ flexDirection: 'row',
11
+ flexWrap: 'wrap',
12
+ justifyContent: 'flex-start'
13
+ },
14
+ entry: {
15
+ alignItems: 'center',
16
+ display: 'flex',
17
+ flexDirection: 'row',
18
+ flexWrap: 'wrap',
19
+ marginLeft: 10
20
+ },
21
+ text: {
22
+ marginLeft: 5
23
+ }
24
+ }));
25
+ const Legend = ({
26
+ items,
27
+ itemRenderer
28
+ }) => {
29
+ if (!R.is(Function, itemRenderer) || R.isNil(items) || R.isEmpty(items)) {
30
+ return null;
31
+ }
32
+ const classes = useStyles();
33
+ const legendEntries = R.addIndex(R.map)((entry, index) => {
34
+ const style = R.isNil(entry.color) ? {} : {
35
+ color: entry.color
36
+ };
37
+ return /*#__PURE__*/React__default.createElement("div", {
38
+ className: classes.entry,
39
+ style: style,
40
+ key: index
41
+ }, itemRenderer(entry), /*#__PURE__*/React__default.createElement("div", {
42
+ className: classes.text
43
+ }, R.prop('label', entry)));
44
+ })(items);
45
+ return /*#__PURE__*/React__default.createElement("div", {
46
+ className: classes.legend
47
+ }, legendEntries);
48
+ };
49
+
50
+ export { Legend as default };
51
+ //# sourceMappingURL=Legend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Legend.js","sources":["../../../../src/viewer/src/legends/Legend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { getFontFromTheme } from '../utils';\n\nconst useStyles = makeStyles(theme => ({\n legend: {\n ...getFontFromTheme(['chartLegend'])(theme),\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n },\n entry: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n marginLeft: 10,\n },\n text: { marginLeft: 5 }\n}));\n\nconst Legend = ({ items, itemRenderer }) => {\n if (!R.is(Function, (itemRenderer)) || R.isNil(items) || R.isEmpty(items)) {\n return null;\n }\n\n const classes = useStyles();\n\n const legendEntries = R.addIndex(R.map)(\n (entry, index) => {\n const style = R.isNil(entry.color) ? {} : { color: entry.color };\n return (\n <div className={classes.entry} style={style} key={index}>\n {itemRenderer(entry)}\n <div className={classes.text} >{R.prop('label', entry)}</div>\n </div>\n );\n }\n )(items);\n\n return (<div className={classes.legend} >{legendEntries}</div>);\n};\n\nexport default Legend;\n"],"names":["useStyles","makeStyles","theme","legend","getFontFromTheme","display","flexDirection","flexWrap","justifyContent","entry","alignItems","marginLeft","text","Legend","items","itemRenderer","R","is","Function","isNil","isEmpty","classes","legendEntries","addIndex","map","index","style","color","React","createElement","className","key","prop"],"mappings":";;;;;AAKA,MAAMA,SAAS,GAAGC,UAAU,CAACC,KAAK,KAAK;AACrCC,EAAAA,MAAM,EAAE;IACN,GAAGC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC,CAACF,KAAK,CAAC;AAC3CG,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,KAAK;AACpBC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,cAAc,EAAE;GACjB;AACDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,UAAU,EAAE,QAAQ;AACpBL,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,aAAa,EAAE,KAAK;AACpBC,IAAAA,QAAQ,EAAE,MAAM;AAChBI,IAAAA,UAAU,EAAE;GACb;AACDC,EAAAA,IAAI,EAAE;AAAED,IAAAA,UAAU,EAAE;AAAE;AACxB,CAAC,CAAC,CAAC;AAEH,MAAME,MAAM,GAAGA,CAAC;EAAEC,KAAK;AAAEC,EAAAA;AAAa,CAAC,KAAK;EAC1C,IAAI,CAACC,CAAC,CAACC,EAAE,CAACC,QAAQ,EAAGH,YAAa,CAAC,IAAIC,CAAC,CAACG,KAAK,CAACL,KAAK,CAAC,IAAIE,CAAC,CAACI,OAAO,CAACN,KAAK,CAAC,EAAE;AACzE,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,MAAMO,OAAO,GAAGrB,SAAS,EAAE;AAE3B,EAAA,MAAMsB,aAAa,GAAGN,CAAC,CAACO,QAAQ,CAACP,CAAC,CAACQ,GAAG,CAAC,CACrC,CAACf,KAAK,EAAEgB,KAAK,KAAK;AAChB,IAAA,MAAMC,KAAK,GAAGV,CAAC,CAACG,KAAK,CAACV,KAAK,CAACkB,KAAK,CAAC,GAAG,EAAE,GAAG;MAAEA,KAAK,EAAElB,KAAK,CAACkB;KAAO;IAChE,oBACEC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKC,SAAS,EAAET,OAAO,CAACZ,KAAM;AAACiB,MAAAA,KAAK,EAAEA,KAAM;AAAEK,MAAAA,GAAG,EAAEN;AAAM,KAAA,EACtDV,YAAY,CAACN,KAAK,CAAC,eACpBmB,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKC,SAAS,EAAET,OAAO,CAACT;KAAK,EAAGI,CAAC,CAACgB,IAAI,CAAC,OAAO,EAAEvB,KAAK,CAAO,CACzD,CAAC;EAEV,CACF,CAAC,CAACK,KAAK,CAAC;EAET,oBAAQc,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKC,SAAS,EAAET,OAAO,CAAClB;AAAO,GAAA,EAAGmB,aAAmB,CAAC;AAC/D;;;;"}
@@ -0,0 +1,77 @@
1
+ import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React__default from 'react';
3
+ import * as R from 'ramda';
4
+ import Legend from './Legend.js';
5
+ import { H_SYMBOL, V_SYMBOL, STACKED_BAR, STACKED_ROW } from '../../../rules/src/constants.js';
6
+
7
+ const getSymbolSeriesItems = ({
8
+ data,
9
+ options
10
+ }) => {
11
+ const symbolMarkers = R.path(['serie', 'symbol', 'markers'], options);
12
+ const nMarkers = R.length(symbolMarkers);
13
+ const markerSize = Number(R.path(['serie', 'symbol', 'markerDefaultSize'], options));
14
+ const strokeWidth = R.path(['serie', 'symbol', 'markerDefaultStrokeWidth'], options);
15
+ const size = Math.round(Math.sqrt(markerSize)) + 8;
16
+ return R.pipe(R.pathOr([], ['series', 0, 'symbolValues']), R.addIndex(R.map)((label, serieIndex) => {
17
+ const marker = R.nth(serieIndex % nMarkers, symbolMarkers);
18
+ return {
19
+ d: marker.path(markerSize),
20
+ transform: `translate(${size / 2}, ${size / 2}) rotate(${R.propOr(0, 'rotate', marker)})`,
21
+ style: R.pipe(R.mergeRight({
22
+ strokeWidth
23
+ }), R.when(s => s.fill !== s.stroke, R.assoc('fill', 'white')))(marker.style),
24
+ size,
25
+ label
26
+ };
27
+ }))(data);
28
+ };
29
+ const getStackedSeriesItems = R.pipe(R.pathOr([], ['options', 'serie', 'stacked', 'layerSeries']), R.when(s => R.length(s) === 1, R.always([])));
30
+ const stackedLayerRenderer = ({
31
+ baseColor
32
+ }) => /*#__PURE__*/React__default.createElement("svg", {
33
+ width: "21",
34
+ height: "14"
35
+ }, /*#__PURE__*/React__default.createElement("rect", {
36
+ x: "0",
37
+ y: "0",
38
+ width: "21",
39
+ height: "14",
40
+ fill: baseColor
41
+ }));
42
+ const symbolRenderer = ({
43
+ d,
44
+ size,
45
+ style,
46
+ transform
47
+ }) => /*#__PURE__*/React__default.createElement("svg", {
48
+ width: size,
49
+ height: size
50
+ }, /*#__PURE__*/React__default.createElement("path", _extends({
51
+ d: d,
52
+ transform: transform
53
+ }, style)));
54
+
55
+ // stacked entries = [{ label, color }];
56
+
57
+ const SeriesLegend = ({
58
+ data,
59
+ options,
60
+ type
61
+ }) => {
62
+ const itemRenderer = R.pipe(R.when(R.always(type === H_SYMBOL || type === V_SYMBOL), R.always(symbolRenderer)), R.when(R.always(type === STACKED_BAR || type === STACKED_ROW), R.always(stackedLayerRenderer)))(null);
63
+ if (R.isNil(itemRenderer)) {
64
+ return null;
65
+ }
66
+ const seriesItems = R.pipe(R.when(R.always(type === H_SYMBOL || type === V_SYMBOL), getSymbolSeriesItems), R.when(R.always(type === STACKED_BAR || type === STACKED_ROW), getStackedSeriesItems))({
67
+ data,
68
+ options
69
+ });
70
+ return /*#__PURE__*/React__default.createElement(Legend, {
71
+ items: seriesItems,
72
+ itemRenderer: itemRenderer
73
+ });
74
+ };
75
+
76
+ export { SeriesLegend as default };
77
+ //# sourceMappingURL=SeriesLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeriesLegend.js","sources":["../../../../src/viewer/src/legends/SeriesLegend.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport Legend from './Legend.jsx';\nimport { H_SYMBOL, STACKED_BAR, STACKED_ROW, V_SYMBOL } from '../../../rules/src/constants';\n\nconst getSymbolSeriesItems = ({ data, options }) => {\n const symbolMarkers = R.path(['serie', 'symbol', 'markers'], options);\n const nMarkers = R.length(symbolMarkers);\n const markerSize = Number(R.path(['serie', 'symbol', 'markerDefaultSize'], options));\n const strokeWidth = R.path(['serie', 'symbol', 'markerDefaultStrokeWidth'], options);\n const size = Math.round(Math.sqrt(markerSize)) + 8;\n return R.pipe(\n R.pathOr([], ['series', 0, 'symbolValues']),\n R.addIndex(R.map)(\n (label, serieIndex) => {\n const marker = R.nth(serieIndex % nMarkers, symbolMarkers);\n return ({\n d: marker.path(markerSize),\n transform: `translate(${size / 2}, ${size / 2}) rotate(${R.propOr(0, 'rotate', marker)})`,\n style: R.pipe(\n R.mergeRight({ strokeWidth }),\n R.when(\n s => s.fill !== s.stroke,\n R.assoc('fill', 'white')\n )\n )(marker.style),\n size,\n label\n })\n }\n )\n )(data);\n};\n\nconst getStackedSeriesItems = R.pipe(\n R.pathOr([], ['options', 'serie', 'stacked', 'layerSeries']),\n R.when(s => R.length(s) === 1, R.always([]))\n);\n\nconst stackedLayerRenderer = ({ baseColor }) => (\n <svg width=\"21\" height=\"14\">\n <rect x='0' y='0' width='21' height='14' fill={baseColor} />\n </svg>\n);\n\nconst symbolRenderer = ({ d, size, style, transform }) => (\n <svg width={size} height={size}>\n <path\n d={d}\n transform={transform}\n {...style}\n />\n </svg>\n);\n\n// stacked entries = [{ label, color }];\n\nconst SeriesLegend = ({ data, options, type }) => {\n const itemRenderer = R.pipe(\n R.when(R.always(type === H_SYMBOL || type === V_SYMBOL), R.always(symbolRenderer)),\n R.when(R.always(type === STACKED_BAR || type === STACKED_ROW), R.always(stackedLayerRenderer))\n )(null);\n\n if (R.isNil(itemRenderer)) {\n return null;\n }\n\n const seriesItems = R.pipe(\n R.when(R.always(type === H_SYMBOL || type === V_SYMBOL), getSymbolSeriesItems),\n R.when(R.always(type === STACKED_BAR || type === STACKED_ROW), getStackedSeriesItems)\n )({ data, options });\n\n return (\n <Legend items={seriesItems} itemRenderer={itemRenderer} />\n );\n};\n\nexport default SeriesLegend;\n"],"names":["getSymbolSeriesItems","data","options","symbolMarkers","R","path","nMarkers","length","markerSize","Number","strokeWidth","size","Math","round","sqrt","pipe","pathOr","addIndex","map","label","serieIndex","marker","nth","d","transform","propOr","style","mergeRight","when","s","fill","stroke","assoc","getStackedSeriesItems","always","stackedLayerRenderer","baseColor","React","createElement","width","height","x","y","symbolRenderer","_extends","SeriesLegend","type","itemRenderer","H_SYMBOL","V_SYMBOL","STACKED_BAR","STACKED_ROW","isNil","seriesItems","Legend","items"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import * as R from 'ramda';
2
+
3
+ const isChartNoData = R.anyPass([
4
+ R.pipe(R.path(['data', 'series']), R.isEmpty),
5
+ R.allPass([
6
+ R.pipe(R.prop('type'), R.equals('ChoroplethChart'), R.not),
7
+ R.pipe(R.path(['data', 'series', 0, 'datapoints']), R.anyPass([R.isNil, R.isEmpty]))
8
+ ])
9
+ ]);
10
+
11
+ const isChartDataNotReady = R.pipe(R.path(['data', 'series']), R.isNil);
12
+
13
+ const getFontFromTheme = customPath => R.converge(
14
+ R.mergeRight,
15
+ [R.pathOr({}, ['mixins', 'chart', 'main']), R.pathOr({}, R.concat(['mixins', 'chart'], customPath))]
16
+ );
17
+
18
+ const getOptionsFromFont = R.pipe(
19
+ R.props(['color', 'fontFamily', 'fontSize', 'fontWeight']),
20
+ ([color, family, size, weight]) => ({ color, size, family, weight })
21
+ );
22
+
23
+ export { getFontFromTheme, getOptionsFromFont, isChartDataNotReady, isChartNoData };
24
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/viewer/src/utils.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const isChartNoData = R.anyPass([\n R.pipe(R.path(['data', 'series']), R.isEmpty),\n R.allPass([\n R.pipe(R.prop('type'), R.equals('ChoroplethChart'), R.not),\n R.pipe(R.path(['data', 'series', 0, 'datapoints']), R.anyPass([R.isNil, R.isEmpty]))\n ])\n]);\n\nexport const isChartDataNotReady = R.pipe(R.path(['data', 'series']), R.isNil);\n\nexport const getFontFromTheme = customPath => R.converge(\n R.mergeRight,\n [R.pathOr({}, ['mixins', 'chart', 'main']), R.pathOr({}, R.concat(['mixins', 'chart'], customPath))]\n);\n\nexport const getOptionsFromFont = R.pipe(\n R.props(['color', 'fontFamily', 'fontSize', 'fontWeight']),\n ([color, family, size, weight]) => ({ color, size, family, weight })\n);\n"],"names":[],"mappings":";;AAEY,MAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;AACvC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;AAC/C,EAAE,CAAC,CAAC,OAAO,CAAC;AACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC9D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACvF,GAAG;AACH,CAAC;;AAEW,MAAC,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;;AAEjE,MAAC,gBAAgB,GAAG,UAAU,IAAI,CAAC,CAAC,QAAQ;AACxD,EAAE,CAAC,CAAC,UAAU;AACd,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;AACrG;;AAEY,MAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI;AACxC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAC5D,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AACrE;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-components",
3
3
  "description": "Set components based on React.",
4
- "version": "22.0.1",
4
+ "version": "22.0.2",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
7
7
  "sideEffects": false,
package/src/app.js ADDED
@@ -0,0 +1,13 @@
1
+ import React, { StrictMode } from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+
4
+ const container = document.getElementById('root');
5
+ const root = createRoot(container);
6
+
7
+ const App = () => (
8
+ <StrictMode>
9
+ I'm not groot, I'm component
10
+ </StrictMode>
11
+ );
12
+
13
+ root.render(<App />);