@sis-cc/dotstatsuite-components 22.0.1 → 22.0.3

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 +379 -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 +400 -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,18 @@
1
+ import { createFactory } from 'react';
2
+ import factory from './react-chart-factory.js';
3
+ import * as rcwCharts from '@sis-cc/dotstatsuite-d3-charts';
4
+
5
+ const BarChart = createFactory(factory(rcwCharts.BarChart));
6
+ const RowChart = createFactory(factory(rcwCharts.RowChart));
7
+ const ScatterChart = createFactory(factory(rcwCharts.ScatterChart));
8
+ const LineChart = createFactory(factory(rcwCharts.LineChart));
9
+ const TimelineChart = createFactory(factory(rcwCharts.TimelineChart));
10
+ const VerticalSymbolChart = createFactory(factory(rcwCharts.VerticalSymbolChart));
11
+ const HorizontalSymbolChart = createFactory(factory(rcwCharts.HorizontalSymbolChart));
12
+ const StackedBarChart = createFactory(factory(rcwCharts.StackedBarChart));
13
+ const StackedRowChart = createFactory(factory(rcwCharts.StackedRowChart));
14
+ const ChoroplethChart = createFactory(factory(rcwCharts.ChoroplethChart));
15
+ const ChoroplethLegend = createFactory(factory(rcwCharts.ChoroplethLegend));
16
+
17
+ export { BarChart, ChoroplethChart, ChoroplethLegend, HorizontalSymbolChart, LineChart, RowChart, ScatterChart, StackedBarChart, StackedRowChart, TimelineChart, VerticalSymbolChart };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/bridge-d3-react/src/index.js"],"sourcesContent":["import { createFactory } from 'react';\n\nimport factory from './react-chart-factory.jsx';\nimport * as rcwCharts from '@sis-cc/dotstatsuite-d3-charts';\n\nexport const BarChart = createFactory(factory(rcwCharts.BarChart));\nexport const RowChart = createFactory(factory(rcwCharts.RowChart));\nexport const ScatterChart = createFactory(factory(rcwCharts.ScatterChart));\nexport const LineChart = createFactory(factory(rcwCharts.LineChart));\nexport const TimelineChart = createFactory(factory(rcwCharts.TimelineChart));\nexport const VerticalSymbolChart = createFactory(factory(rcwCharts.VerticalSymbolChart));\nexport const HorizontalSymbolChart = createFactory(factory(rcwCharts.HorizontalSymbolChart));\nexport const StackedBarChart = createFactory(factory(rcwCharts.StackedBarChart));\nexport const StackedRowChart = createFactory(factory(rcwCharts.StackedRowChart));\nexport const ChoroplethChart = createFactory(factory(rcwCharts.ChoroplethChart));\nexport const ChoroplethLegend = createFactory(factory(rcwCharts.ChoroplethLegend));\n"],"names":[],"mappings":";;;;AAKY,MAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACrD,MAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACrD,MAAC,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;AAC7D,MAAC,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;AACvD,MAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC;AAC/D,MAAC,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC;AAC3E,MAAC,qBAAqB,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC;AAC/E,MAAC,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;AACnE,MAAC,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;AACnE,MAAC,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;AACnE,MAAC,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;;"}
@@ -0,0 +1,44 @@
1
+ import React__default, { Component } from 'react';
2
+
3
+ var factory = D3Chart => class ReactChart extends Component {
4
+ constructor(props) {
5
+ super(props);
6
+ // shouldComponentUpdate is useful to determine isDirty
7
+ // but can't be used alone since we still want to update meta
8
+ this.needD3Update = true;
9
+ this.chart = null;
10
+ }
11
+ componentDidMount() {
12
+ super.componentDidMount && super.componentDidMount();
13
+ if (!this.needD3Update) return;
14
+ this.chart = new D3Chart(this.refs.chart, this.props.options, this.props.data, this.props.getInitialOptions, this.props.getAxisOptions);
15
+ this.needD3Update = false;
16
+
17
+ /*if (isFunction(this.props.getInitialOptions)) {
18
+ this.props.getInitialOptions(cloneDeep(this.chart.options));
19
+ }*/
20
+ }
21
+ componentDidUpdate() {
22
+ super.componentDidUpdate && super.componentDidUpdate();
23
+ if (!this.needD3Update) return;
24
+ this.chart && this.chart.update && this.chart.update(this.refs.chart, this.props.options, this.props.data, this.props.getInitialOptions, this.props.getAxisOptions);
25
+ this.needD3Update = false;
26
+ }
27
+ componentWillUnmount() {
28
+ super.componentWillUnmount && super.componentWillUnmount();
29
+ this.chart && this.chart.destroy && this.chart.destroy(this.refs.chart);
30
+ }
31
+ shouldComponentUpdate(nextProps) {
32
+ super.shouldComponentUpdate && super.shouldComponentUpdate(nextProps);
33
+ this.needD3Update = this.props.data !== nextProps.data || this.props.options !== nextProps.options;
34
+ return true;
35
+ }
36
+ render() {
37
+ return /*#__PURE__*/React__default.createElement("div", {
38
+ ref: "chart"
39
+ });
40
+ }
41
+ };
42
+
43
+ export { factory as default };
44
+ //# sourceMappingURL=react-chart-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-chart-factory.js","sources":["../../../src/bridge-d3-react/src/react-chart-factory.jsx"],"sourcesContent":["import React, { Component } from 'react';\n\nexport default D3Chart => class ReactChart extends Component {\n constructor(props) {\n super(props);\n // shouldComponentUpdate is useful to determine isDirty\n // but can't be used alone since we still want to update meta\n this.needD3Update = true;\n this.chart = null;\n }\n\n componentDidMount() {\n super.componentDidMount && super.componentDidMount();\n\n if (!this.needD3Update) return;\n\n this.chart = new D3Chart(\n this.refs.chart,\n this.props.options,\n this.props.data,\n this.props.getInitialOptions,\n this.props.getAxisOptions\n );\n\n this.needD3Update = false;\n\n /*if (isFunction(this.props.getInitialOptions)) {\n this.props.getInitialOptions(cloneDeep(this.chart.options));\n }*/\n }\n\n componentDidUpdate() {\n super.componentDidUpdate && super.componentDidUpdate();\n\n if (!this.needD3Update) return;\n\n this.chart && this.chart.update && this.chart.update(\n this.refs.chart,\n this.props.options,\n this.props.data,\n this.props.getInitialOptions,\n this.props.getAxisOptions\n );\n\n this.needD3Update = false;\n }\n\n componentWillUnmount() {\n super.componentWillUnmount && super.componentWillUnmount();\n\n this.chart && this.chart.destroy && this.chart.destroy(this.refs.chart);\n }\n\n shouldComponentUpdate(nextProps) {\n super.shouldComponentUpdate && super.shouldComponentUpdate(nextProps);\n\n this.needD3Update = this.props.data !== nextProps.data || this.props.options !== nextProps.options;\n\n return true;\n }\n\n render() {\n return <div ref=\"chart\"></div>;\n }\n};\n"],"names":["D3Chart","ReactChart","Component","constructor","props","needD3Update","chart","componentDidMount","refs","options","data","getInitialOptions","getAxisOptions","componentDidUpdate","update","componentWillUnmount","destroy","shouldComponentUpdate","nextProps","render","React","createElement","ref"],"mappings":";;AAEA,cAAeA,OAAO,IAAI,MAAMC,UAAU,SAASC,SAAS,CAAC;EAC3DC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;AACZ;AACA;IACA,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,KAAK,GAAG,IAAI;AACnB,EAAA;AAEAC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,KAAK,CAACA,iBAAiB,IAAI,KAAK,CAACA,iBAAiB,EAAE;AAEpD,IAAA,IAAI,CAAC,IAAI,CAACF,YAAY,EAAE;AAExB,IAAA,IAAI,CAACC,KAAK,GAAG,IAAIN,OAAO,CACtB,IAAI,CAACQ,IAAI,CAACF,KAAK,EACf,IAAI,CAACF,KAAK,CAACK,OAAO,EAClB,IAAI,CAACL,KAAK,CAACM,IAAI,EACf,IAAI,CAACN,KAAK,CAACO,iBAAiB,EAC5B,IAAI,CAACP,KAAK,CAACQ,cACb,CAAC;IAED,IAAI,CAACP,YAAY,GAAG,KAAK;;AAEzB;AACJ;AACA;AACE,EAAA;AAEAQ,EAAAA,kBAAkBA,GAAG;AACnB,IAAA,KAAK,CAACA,kBAAkB,IAAI,KAAK,CAACA,kBAAkB,EAAE;AAEtD,IAAA,IAAI,CAAC,IAAI,CAACR,YAAY,EAAE;IAExB,IAAI,CAACC,KAAK,IAAI,IAAI,CAACA,KAAK,CAACQ,MAAM,IAAI,IAAI,CAACR,KAAK,CAACQ,MAAM,CAClD,IAAI,CAACN,IAAI,CAACF,KAAK,EACf,IAAI,CAACF,KAAK,CAACK,OAAO,EAClB,IAAI,CAACL,KAAK,CAACM,IAAI,EACf,IAAI,CAACN,KAAK,CAACO,iBAAiB,EAC5B,IAAI,CAACP,KAAK,CAACQ,cACb,CAAC;IAED,IAAI,CAACP,YAAY,GAAG,KAAK;AAC3B,EAAA;AAEAU,EAAAA,oBAAoBA,GAAG;AACrB,IAAA,KAAK,CAACA,oBAAoB,IAAI,KAAK,CAACA,oBAAoB,EAAE;IAE1D,IAAI,CAACT,KAAK,IAAI,IAAI,CAACA,KAAK,CAACU,OAAO,IAAI,IAAI,CAACV,KAAK,CAACU,OAAO,CAAC,IAAI,CAACR,IAAI,CAACF,KAAK,CAAC;AACzE,EAAA;EAEAW,qBAAqBA,CAACC,SAAS,EAAE;IAC/B,KAAK,CAACD,qBAAqB,IAAI,KAAK,CAACA,qBAAqB,CAACC,SAAS,CAAC;IAErE,IAAI,CAACb,YAAY,GAAG,IAAI,CAACD,KAAK,CAACM,IAAI,KAAKQ,SAAS,CAACR,IAAI,IAAI,IAAI,CAACN,KAAK,CAACK,OAAO,KAAKS,SAAS,CAACT,OAAO;AAElG,IAAA,OAAO,IAAI;AACb,EAAA;AAEAU,EAAAA,MAAMA,GAAG;IACP,oBAAOC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,GAAG,EAAC;AAAO,KAAM,CAAC;AAChC,EAAA;AACF,CAAC;;;;"}
@@ -0,0 +1,256 @@
1
+ import * as R from 'ramda';
2
+ import numeral from 'numeral';
3
+ import dateFns__default from 'date-fns';
4
+ import isMonday from '../../../_virtual/index9.js';
5
+ import isTuesday from '../../../_virtual/index10.js';
6
+ import isWednesday from '../../../_virtual/index11.js';
7
+ import isThursday from '../../../_virtual/index12.js';
8
+ import isFriday from '../../../_virtual/index13.js';
9
+ import isSaturday from '../../../_virtual/index14.js';
10
+ import isSunday from '../../../_virtual/index15.js';
11
+ import getISOWeek from '../../../_virtual/index16.js';
12
+ import { getLocale, dateWithoutTZ } from '../date.js';
13
+ import { BAR, ROW, SCATTER, TIMELINE, H_SYMBOL, V_SYMBOL, STACKED_BAR, STACKED_ROW } from '../constants.js';
14
+
15
+ const defaultTimeFormats = {
16
+ A: 'YYYY',
17
+ S: 'YYYY-[S][SEMESTER]',
18
+ Q: 'YYYY-[Q]Q',
19
+ M: 'YYYY-MMM',
20
+ W: 'YYYY-[W]WW',
21
+ B: 'YYYY-[W]WW',
22
+ D: 'YYYY-MM-DD',
23
+ H: 'YYYY-MM-DD[T]HH:mm:ss',
24
+ N: 'YYYY-MM-DD[T]HH:mm:ss',
25
+ };
26
+
27
+ const getTimeProc = (frequency, timeFormats = {}, locale) => {
28
+ if (frequency === 'W' || frequency === 'B') {
29
+ return datum => {
30
+ const isoWeek = getISOWeek(datum);
31
+ if (isoWeek !== 1) {
32
+ return dateFns__default.format(datum, 'YYYY-[W]WW', { locale: getLocale(locale) })
33
+ }
34
+ const seventhDay = dateFns__default.endOfWeek(datum, { weekStartsOn: 1 });
35
+ return dateFns__default.format(seventhDay, 'YYYY-[W]WW', { locale: getLocale(locale) })
36
+ }
37
+ }
38
+ const format = R.pipe(
39
+ R.mergeRight(defaultTimeFormats),
40
+ R.ifElse(
41
+ R.has(frequency),
42
+ R.prop(frequency),
43
+ R.prop('A')
44
+ )
45
+ )(timeFormats);
46
+ return datum => dateFns__default.format(dateWithoutTZ(new Date(datum)), format, { locale: getLocale(locale) });
47
+ };
48
+
49
+ const getTimeFrequency = (data) => {
50
+ const frequency = R.prop('frequency', data);
51
+ if (frequency === 'W' || frequency === 'B') {
52
+ const date = R.pathOr(['series', 0, 'datapoints', 'x']);
53
+ return R.cond([
54
+ [isMonday, R.always('monday')],
55
+ [isTuesday, R.always('tueday')],
56
+ [isWednesday, R.always('wednesday')],
57
+ [isThursday, R.always('thursday')],
58
+ [isFriday, R.always('friday')],
59
+ [isSaturday, R.always('saturday')],
60
+ [isSunday, R.always('sunday')],
61
+ [R.T, R.always('monday')],
62
+ ])(date);
63
+ }
64
+ return R.cond([
65
+ [R.equals('A'), R.always('year')],
66
+ [R.equals('S'), R.always('month')],
67
+ [R.equals('Q'), R.always('month')],
68
+ [R.equals('M'), R.always('month')],
69
+ [R.equals('D'), R.always('day')],
70
+ [R.equals('H'), R.always('hour')],
71
+ [R.equals('N'), R.always('minute')],
72
+ [R.T, R.always('year')],
73
+ ])(frequency);
74
+ };
75
+
76
+ const getTimeStep = R.cond([
77
+ [R.equals('A'), R.always(1)],
78
+ [R.equals('S'), R.always(6)],
79
+ [R.equals('Q'), R.always(3)],
80
+ [R.equals('M'), R.always(1)],
81
+ [R.equals('W'), R.always(1)],
82
+ [R.equals('B'), R.always(1)],
83
+ [R.equals('D'), R.always(1)],
84
+ [R.equals('H'), R.always(1)],
85
+ [R.equals('N'), R.always(1)],
86
+ [R.T, R.always(1)],
87
+ ]);
88
+
89
+ const getAxisOptions = (data, type, options, timeFormats, locale) => {
90
+
91
+ const axis = {
92
+ linear: { pivot: { color: 'white' } },
93
+ ordinal: { gap: .3, padding: .3 },
94
+ thickness: 0,
95
+ };
96
+
97
+ const linearProc = d => {
98
+ if (Math.abs(d) < 0.01 && d) {
99
+ return numeral(d).format('0.[00]e+0');
100
+ }
101
+ return numeral(d).format('0,0.[00]');
102
+ };
103
+
104
+ return R.pipe(
105
+ R.propOr({}, 'axis'),
106
+ R.mergeDeepRight({ x: axis, y: axis }),
107
+ R.cond([
108
+ [
109
+ R.always(R.equals(BAR, type)),
110
+ R.pipe(
111
+ R.mergeDeepRight({
112
+ x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },
113
+ y: {
114
+ font: { baseline: 'ideographic' },
115
+ format: { proc: linearProc },
116
+ padding: 10,
117
+ tick: { thickness: 0 },
118
+ }
119
+ }),
120
+ R.over(R.lensPath(['y', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))
121
+ )
122
+ ],
123
+ [
124
+ R.always(R.equals(ROW, type)),
125
+ R.pipe(
126
+ R.mergeDeepRight({
127
+ x: {
128
+ format: { proc: linearProc },
129
+ orient: 'top',
130
+ padding: 10,
131
+ tick: { thickness: 0 },
132
+ },
133
+ y: {
134
+ format: { proc: R.identity },
135
+ ordinal: { minDisplaySize: 300 },
136
+ tick: { thickness: 0, size: 0 },
137
+ }
138
+ }),
139
+ R.over(R.lensPath(['x', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))
140
+ )
141
+ ],
142
+ [
143
+ R.always(R.equals(SCATTER, type)),
144
+ R.mergeDeepRight({
145
+ x: {
146
+ format: { proc: linearProc },
147
+ tick: { thickness: 0, size: 0 },
148
+ },
149
+ y: {
150
+ font: { baseline: 'ideographic' },
151
+ format: { proc: linearProc },
152
+ padding: 10,
153
+ tick: { thickness: 0 },
154
+ }
155
+ })
156
+ ],
157
+ [
158
+ R.always(R.equals(TIMELINE, type)),
159
+ R.pipe(
160
+ R.mergeDeepRight({
161
+ x: {
162
+ format: {
163
+ isTime: true,
164
+ pattern: null,
165
+ proc: getTimeProc(R.prop('frequency', data), timeFormats, locale)
166
+ },
167
+ tick: { size: -6, minorSize: -3, thickness: 2, minorThickness: 2, color: 'white' },
168
+ },
169
+ y: {
170
+ font: { baseline: 'ideographic' },
171
+ format: { proc: d => numeral(d).format('0,0.[00]') },
172
+ padding: 10,
173
+ tick: { thickness: 0 },
174
+ }
175
+ }),
176
+ R.evolve({
177
+ x: R.pipe(
178
+ R.set(R.lensPath(['linear', 'frequency']), getTimeFrequency(data)),
179
+ R.set(R.lensPath(['linear', 'step']), getTimeStep(R.prop('frequency', data))),
180
+ R.over(
181
+ R.lensPath(['tick', 'step']),
182
+ R.pipe(R.when(R.isNil, R.always(1)), R.multiply(getTimeStep(R.prop('frequency', data))))
183
+ )
184
+ )
185
+ })
186
+ )
187
+ ],
188
+ [
189
+ R.always(R.equals(H_SYMBOL, type)),
190
+ R.mergeDeepRight({
191
+ x: {
192
+ format: { proc: linearProc },
193
+ orient: 'top',
194
+ padding: 10,
195
+ tick: { thickness: 0 },
196
+ },
197
+ y: {
198
+ format: { proc: R.identity },
199
+ ordinal: { minDisplaySize: 300 },
200
+ tick: { thickness: 0, size: 5 },
201
+ }
202
+ })
203
+ ],
204
+ [
205
+ R.always(R.equals(V_SYMBOL, type)),
206
+ R.mergeDeepRight({
207
+ x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },
208
+ y: {
209
+ font: { baseline: 'ideographic' },
210
+ format: { proc: linearProc },
211
+ padding: 10,
212
+ tick: { thickness: 0 },
213
+ }
214
+ })
215
+ ],
216
+ [
217
+ R.always(R.equals(STACKED_BAR, type)),
218
+ R.pipe(
219
+ R.mergeDeepRight({
220
+ x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },
221
+ y: {
222
+ font: { baseline: 'ideographic' },
223
+ format: { proc: linearProc },
224
+ padding: 10,
225
+ tick: { thickness: 0 },
226
+ }
227
+ }),
228
+ R.over(R.lensPath(['y', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))
229
+ )
230
+ ],
231
+ [
232
+ R.always(R.equals(STACKED_ROW, type)),
233
+ R.pipe(
234
+ R.mergeDeepRight({
235
+ x: {
236
+ format: { proc: linearProc },
237
+ orient: 'top',
238
+ padding: 10,
239
+ tick: { thickness: 0 },
240
+ },
241
+ y: {
242
+ format: { proc: R.identity },
243
+ ordinal: { minDisplaySize: 300 },
244
+ tick: { thickness: 0, size: 0 }
245
+ }
246
+ }),
247
+ R.over(R.lensPath(['x', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))
248
+ )
249
+ ],
250
+ [R.T, R.identity]
251
+ ])
252
+ )(options);
253
+ };
254
+
255
+ export { getAxisOptions, getTimeProc };
256
+ //# sourceMappingURL=getAxisOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAxisOptions.js","sources":["../../../../src/rules/src/chart/getAxisOptions.js"],"sourcesContent":["import * as R from 'ramda';\nimport numeral from 'numeral';\nimport dateFns from 'date-fns';\nimport isMonday from 'date-fns/is_monday';\nimport isTuesday from 'date-fns/is_tuesday';\nimport isWednesday from 'date-fns/is_wednesday';\nimport isThursday from 'date-fns/is_thursday';\nimport isFriday from 'date-fns/is_friday';\nimport isSaturday from 'date-fns/is_saturday';\nimport isSunday from 'date-fns/is_sunday';\nimport getISOWeek from 'date-fns/get_iso_week';\nimport { getLocale, dateWithoutTZ } from '../date';\nimport {\n BAR,\n CHORO,\n H_SYMBOL,\n ROW,\n SCATTER,\n STACKED_BAR,\n STACKED_ROW,\n TIMELINE,\n V_SYMBOL\n} from '../constants';\n\nconst defaultTimeFormats = {\n A: 'YYYY',\n S: 'YYYY-[S][SEMESTER]',\n Q: 'YYYY-[Q]Q',\n M: 'YYYY-MMM',\n W: 'YYYY-[W]WW',\n B: 'YYYY-[W]WW',\n D: 'YYYY-MM-DD',\n H: 'YYYY-MM-DD[T]HH:mm:ss',\n N: 'YYYY-MM-DD[T]HH:mm:ss',\n};\n\nexport const getTimeProc = (frequency, timeFormats = {}, locale) => {\n if (frequency === 'W' || frequency === 'B') {\n return datum => {\n const isoWeek = getISOWeek(datum);\n if (isoWeek !== 1) {\n return dateFns.format(datum, 'YYYY-[W]WW', { locale: getLocale(locale) })\n }\n const seventhDay = dateFns.endOfWeek(datum, { weekStartsOn: 1 });\n return dateFns.format(seventhDay, 'YYYY-[W]WW', { locale: getLocale(locale) })\n }\n }\n const format = R.pipe(\n R.mergeRight(defaultTimeFormats),\n R.ifElse(\n R.has(frequency),\n R.prop(frequency),\n R.prop('A')\n )\n )(timeFormats);\n return datum => dateFns.format(dateWithoutTZ(new Date(datum)), format, { locale: getLocale(locale) });\n};\n\nconst getTimeFrequency = (data) => {\n const frequency = R.prop('frequency', data);\n if (frequency === 'W' || frequency === 'B') {\n const date = R.pathOr(['series', 0, 'datapoints', 'x']);\n return R.cond([\n [isMonday, R.always('monday')],\n [isTuesday, R.always('tueday')],\n [isWednesday, R.always('wednesday')],\n [isThursday, R.always('thursday')],\n [isFriday, R.always('friday')],\n [isSaturday, R.always('saturday')],\n [isSunday, R.always('sunday')],\n [R.T, R.always('monday')],\n ])(date);\n }\n return R.cond([\n [R.equals('A'), R.always('year')],\n [R.equals('S'), R.always('month')],\n [R.equals('Q'), R.always('month')],\n [R.equals('M'), R.always('month')],\n [R.equals('D'), R.always('day')],\n [R.equals('H'), R.always('hour')],\n [R.equals('N'), R.always('minute')],\n [R.T, R.always('year')],\n ])(frequency);\n};\n\nconst getTimeStep = R.cond([\n [R.equals('A'), R.always(1)],\n [R.equals('S'), R.always(6)],\n [R.equals('Q'), R.always(3)],\n [R.equals('M'), R.always(1)],\n [R.equals('W'), R.always(1)],\n [R.equals('B'), R.always(1)],\n [R.equals('D'), R.always(1)],\n [R.equals('H'), R.always(1)],\n [R.equals('N'), R.always(1)],\n [R.T, R.always(1)],\n]);\n\nexport const getAxisOptions = (data, type, options, timeFormats, locale) => {\n\n const axis = {\n linear: { pivot: { color: 'white' } },\n ordinal: { gap: .3, padding: .3 },\n thickness: 0,\n };\n\n const linearProc = d => {\n if (Math.abs(d) < 0.01 && d) {\n return numeral(d).format('0.[00]e+0');\n }\n return numeral(d).format('0,0.[00]');\n };\n\n return R.pipe(\n R.propOr({}, 'axis'),\n R.mergeDeepRight({ x: axis, y: axis }),\n R.cond([\n [\n R.always(R.equals(BAR, type)),\n R.pipe(\n R.mergeDeepRight({\n x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },\n y: {\n font: { baseline: 'ideographic' },\n format: { proc: linearProc },\n padding: 10,\n tick: { thickness: 0 },\n }\n }),\n R.over(R.lensPath(['y', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))\n )\n ],\n [\n R.always(R.equals(ROW, type)),\n R.pipe(\n R.mergeDeepRight({\n x: {\n format: { proc: linearProc },\n orient: 'top',\n padding: 10,\n tick: { thickness: 0 },\n },\n y: {\n format: { proc: R.identity },\n ordinal: { minDisplaySize: 300 },\n tick: { thickness: 0, size: 0 },\n }\n }),\n R.over(R.lensPath(['x', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))\n )\n ],\n [\n R.always(R.equals(SCATTER, type)),\n R.mergeDeepRight({\n x: {\n format: { proc: linearProc },\n tick: { thickness: 0, size: 0 },\n },\n y: {\n font: { baseline: 'ideographic' },\n format: { proc: linearProc },\n padding: 10,\n tick: { thickness: 0 },\n }\n })\n ],\n [\n R.always(R.equals(TIMELINE, type)),\n R.pipe(\n R.mergeDeepRight({\n x: {\n format: {\n isTime: true,\n pattern: null,\n proc: getTimeProc(R.prop('frequency', data), timeFormats, locale)\n },\n tick: { size: -6, minorSize: -3, thickness: 2, minorThickness: 2, color: 'white' },\n },\n y: {\n font: { baseline: 'ideographic' },\n format: { proc: d => numeral(d).format('0,0.[00]') },\n padding: 10,\n tick: { thickness: 0 },\n }\n }),\n R.evolve({\n x: R.pipe(\n R.set(R.lensPath(['linear', 'frequency']), getTimeFrequency(data)),\n R.set(R.lensPath(['linear', 'step']), getTimeStep(R.prop('frequency', data))),\n R.over(\n R.lensPath(['tick', 'step']),\n R.pipe(R.when(R.isNil, R.always(1)), R.multiply(getTimeStep(R.prop('frequency', data))))\n )\n )\n })\n )\n ],\n [\n R.always(R.equals(H_SYMBOL, type)),\n R.mergeDeepRight({\n x: {\n format: { proc: linearProc },\n orient: 'top',\n padding: 10,\n tick: { thickness: 0 },\n },\n y: {\n format: { proc: R.identity },\n ordinal: { minDisplaySize: 300 },\n tick: { thickness: 0, size: 5 },\n }\n })\n ],\n [\n R.always(R.equals(V_SYMBOL, type)),\n R.mergeDeepRight({\n x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },\n y: {\n font: { baseline: 'ideographic' },\n format: { proc: linearProc },\n padding: 10,\n tick: { thickness: 0 },\n }\n })\n ],\n [\n R.always(R.equals(STACKED_BAR, type)),\n R.pipe(\n R.mergeDeepRight({\n x: { format: { proc: R.identity }, tick: { thickness: 0, size: 0 } },\n y: {\n font: { baseline: 'ideographic' },\n format: { proc: linearProc },\n padding: 10,\n tick: { thickness: 0 },\n }\n }),\n R.over(R.lensPath(['y', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))\n )\n ],\n [\n R.always(R.equals(STACKED_ROW, type)),\n R.pipe(\n R.mergeDeepRight({\n x: {\n format: { proc: linearProc },\n orient: 'top',\n padding: 10,\n tick: { thickness: 0 },\n },\n y: {\n format: { proc: R.identity },\n ordinal: { minDisplaySize: 300 },\n tick: { thickness: 0, size: 0 }\n }\n }),\n R.over(R.lensPath(['x', 'linear', 'pivot', 'value']), R.when(R.isNil, R.always(0)))\n )\n ],\n [R.T, R.identity]\n ])\n )(options);\n};\n"],"names":["dateFns"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import * as R from 'ramda';
2
+ import { BAR, ROW, SCATTER, TIMELINE, H_SYMBOL, V_SYMBOL, STACKED_BAR, STACKED_ROW } from '../constants.js';
3
+
4
+ const getBaseOptions = (type, options) => R.pipe(
5
+ R.propOr({}, 'base'),
6
+ R.cond([
7
+ [
8
+ R.always(R.equals(BAR, type)),
9
+ R.mergeDeepRight({
10
+ minDisplayHeight: 100,
11
+ minDisplayWidth: 300,
12
+ padding: { top: 20 },
13
+ innerPadding: { left: 20, right: 20, bottom: 10 }
14
+ })
15
+ ],
16
+ [
17
+ R.always(R.equals(ROW, type)),
18
+ R.mergeDeepRight({
19
+ minDisplayHeight: 300,
20
+ minDisplayWidth: 100,
21
+ padding: { top: 10, left: 10, right: 20 }
22
+ })
23
+ ],
24
+ [
25
+ R.always(R.equals(SCATTER, type)),
26
+ R.mergeDeepRight({
27
+ minDisplayHeight: 100,
28
+ minDisplayWidth: 100,
29
+ padding: { top: 40, right: 10 }
30
+ })
31
+ ],
32
+ [
33
+ R.always(R.equals(TIMELINE, type)),
34
+ R.mergeDeepRight({
35
+ minDisplayHeight: 300,
36
+ minDisplayWidth: 100,
37
+ isAnnotated: false,
38
+ padding: { top: 20 },
39
+ innerPadding: { left: 40, right: 40 }
40
+ })
41
+ ],
42
+ [
43
+ R.always(R.equals(H_SYMBOL, type)),
44
+ R.mergeDeepRight({
45
+ minDisplayHeight: 300,
46
+ minDisplayWidth: 100,
47
+ padding: { top: 10, left: 10, right: 20 }
48
+ })
49
+ ],
50
+ [
51
+ R.always(R.equals(V_SYMBOL, type)),
52
+ R.mergeDeepRight({
53
+ minDisplayHeight: 100,
54
+ minDisplayWidth: 300,
55
+ padding: { top: 20 },
56
+ innerPadding: { left: 20, right: 20, bottom: 10 }
57
+ })
58
+ ],
59
+ [
60
+ R.always(R.equals(STACKED_BAR, type)),
61
+ R.mergeDeepRight({
62
+ minDisplayHeight: 100,
63
+ minDisplayWidth: 300,
64
+ padding: { top: 20 },
65
+ innerPadding: { left: 20, right: 20, bottom: 10 }
66
+ })
67
+ ],
68
+ [
69
+ R.always(R.equals(STACKED_ROW, type)),
70
+ R.mergeDeepRight({ padding: { top: 10, left: 10, right: 20 } })
71
+ ],
72
+ [R.T, R.identity]
73
+ ])
74
+ )(options);
75
+
76
+ export { getBaseOptions };
77
+ //# sourceMappingURL=getBaseOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBaseOptions.js","sources":["../../../../src/rules/src/chart/getBaseOptions.js"],"sourcesContent":["import * as R from 'ramda';\nimport {\n BAR,\n CHORO,\n H_SYMBOL,\n ROW,\n SCATTER,\n STACKED_BAR,\n STACKED_ROW,\n TIMELINE,\n V_SYMBOL\n} from '../constants';\n\nexport const getBaseOptions = (type, options) => R.pipe(\n R.propOr({}, 'base'),\n R.cond([\n [\n R.always(R.equals(BAR, type)),\n R.mergeDeepRight({\n minDisplayHeight: 100,\n minDisplayWidth: 300,\n padding: { top: 20 },\n innerPadding: { left: 20, right: 20, bottom: 10 }\n })\n ],\n [\n R.always(R.equals(ROW, type)),\n R.mergeDeepRight({\n minDisplayHeight: 300,\n minDisplayWidth: 100,\n padding: { top: 10, left: 10, right: 20 }\n })\n ],\n [\n R.always(R.equals(SCATTER, type)),\n R.mergeDeepRight({\n minDisplayHeight: 100,\n minDisplayWidth: 100,\n padding: { top: 40, right: 10 }\n })\n ],\n [\n R.always(R.equals(TIMELINE, type)),\n R.mergeDeepRight({\n minDisplayHeight: 300,\n minDisplayWidth: 100,\n isAnnotated: false,\n padding: { top: 20 },\n innerPadding: { left: 40, right: 40 }\n })\n ],\n [\n R.always(R.equals(H_SYMBOL, type)),\n R.mergeDeepRight({\n minDisplayHeight: 300,\n minDisplayWidth: 100,\n padding: { top: 10, left: 10, right: 20 }\n })\n ],\n [\n R.always(R.equals(V_SYMBOL, type)),\n R.mergeDeepRight({\n minDisplayHeight: 100,\n minDisplayWidth: 300,\n padding: { top: 20 },\n innerPadding: { left: 20, right: 20, bottom: 10 }\n })\n ],\n [\n R.always(R.equals(STACKED_BAR, type)),\n R.mergeDeepRight({\n minDisplayHeight: 100,\n minDisplayWidth: 300,\n padding: { top: 20 },\n innerPadding: { left: 20, right: 20, bottom: 10 }\n })\n ],\n [\n R.always(R.equals(STACKED_ROW, type)),\n R.mergeDeepRight({ padding: { top: 10, left: 10, right: 20 } })\n ],\n [R.T, R.identity]\n ])\n)(options);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import * as R from 'ramda';
2
+ import numeral from 'numeral';
3
+ import { getAxisOptions } from './getAxisOptions.js';
4
+ import { getBaseOptions } from './getBaseOptions.js';
5
+ import { getGridOptions } from './getGridOptions.js';
6
+ import { getTooltipOptions } from './getTooltipOptions.js';
7
+ import { STACKED_BAR, STACKED_ROW, SCATTER, TIMELINE } from '../constants.js';
8
+
9
+ const FOCUS_COLORS = {
10
+ highlightColors: ['#E73741', '#0F8FD9', '#993484', '#DF521E', '#719E24', '#E1B400', '#32A674', '#0B68AF'],
11
+ baselineColors: ['#0B1E2D']
12
+ };
13
+
14
+ const symbolMarkers = () => {
15
+ const paths = {
16
+ circle: size => {
17
+ const r = Math.sqrt(size) / 2;
18
+ return `M0,${r} A${r},${r} 0 1,1 0,${-r} A${r},${r} 0 1,1 0,${r} Z`;
19
+ },
20
+ square: size => {
21
+ const r = Math.sqrt(size) / 2;
22
+ return `M${-r},${-r} L${r},${-r} ${r},${r} ${-r},${r} Z`;
23
+ },
24
+ cross: size => {
25
+ const r = Math.sqrt(size) / 2;
26
+ return `M${-r},${r} L${r},${-r} M${r},${r} L${-r},${-r}`;
27
+ },
28
+ 'triangle': size => {
29
+ const rx = Math.sqrt(size) / Math.sqrt(3);
30
+ const ry = Math.sqrt(size) / 2;
31
+ return `M0,${-ry} L${rx},${ry} ${-rx},${ry} Z`;
32
+ }
33
+ };
34
+ return ([
35
+ { style: { stroke: '#39617D', fill: '#39617D' }, path: paths.circle },
36
+ { style: { stroke: '#39617D', fill: '#DBEBF2' }, rotate: 45, path: paths.square },
37
+ { style: { stroke: '#39617D', fill: '#39617D', strokeWidth: 2 }, path: paths.cross },
38
+ { style: { stroke: '#39617D', fill: '#DBEBF2' }, path: paths.square },
39
+ { style: { stroke: '#39617D', fill: '#39617D' }, path: paths.triangle }
40
+ ]);
41
+ };
42
+
43
+ const getAnnotationOptions = (type, options) => R.pipe(
44
+ R.pathOr({}, ['serie', 'annotation']),
45
+ R.mergeRight({
46
+ format: {
47
+ datapoint: { proc: d => numeral(d).format('0,0.[00]') }
48
+ }
49
+ }),
50
+ R.cond([
51
+ [
52
+ R.always(R.equals(SCATTER, type)),
53
+ R.mergeRight({ display: 'never' })
54
+ ],
55
+ [
56
+ R.always(R.equals(TIMELINE, type)),
57
+ R.mergeDeepRight({ format: { datapoint: { pattern: '.2f' } } })
58
+ ],
59
+ [R.T, R.identity]
60
+ ])
61
+ )(options);
62
+
63
+ const getChartOptions = (data, type, options, tooltipFonts, timeFormats, locale) => {
64
+ const defaultSerieColors = R.ifElse(
65
+ R.anyPass([R.equals(STACKED_BAR), R.equals(STACKED_ROW)]),
66
+ R.always(['#607D8B']),
67
+ R.always(['#8EA4B1'])
68
+ )(type);
69
+
70
+ return ({
71
+ axis: getAxisOptions(data, type, options, timeFormats, locale),
72
+ background: R.pipe(
73
+ R.propOr({}, 'background'),
74
+ R.mergeRight({ color: '#DBEBF2' })
75
+ )(options),
76
+ base: getBaseOptions(type, options),
77
+ grid: getGridOptions(type, options),
78
+ map: R.pipe(
79
+ R.propOr({}, 'map'),
80
+ R.mergeRight({ intBoundariesColor: '#8EA4B1' })
81
+ )(options),
82
+ serie: {
83
+ ...R.propOr({}, 'serie', options),
84
+ annotation: getAnnotationOptions(type, options),
85
+ choropleth: R.pipe(
86
+ R.pathOr({}, ['serie', 'choropleth']),
87
+ R.mergeRight({
88
+ divisions: 4,
89
+ domain: 'YlorRd',
90
+ invert: false,
91
+ labelDisplay: 'none',
92
+ })
93
+ )(options),
94
+ stacked: R.pipe(
95
+ R.pathOr({}, ['serie', 'stacked']),
96
+ R.mergeRight({ strokeThickness: 1, strokeColor: '#F8FAFC' })
97
+ )(options),
98
+ symbol: R.pipe(
99
+ R.pathOr({}, ['serie', 'symbol']),
100
+ R.mergeRight({
101
+ markers: symbolMarkers(),
102
+ markerDefaultSize: 60,
103
+ markerDefaultStrokeWidth: 1,
104
+ gapMinMaxColor: '#607D8B',
105
+ gapMinMaxThickness: 1,
106
+ gapAxisMinColor: 'white',
107
+ gapAxisMinThickness: 1
108
+ })
109
+ )(options),
110
+ colors: R.pathOr(defaultSerieColors, ['serie', 'colors'], options),
111
+ overColors: R.pathOr(['#39617D'], ['serie', 'overColors'], options),
112
+ highlightColors: R.pathOr(FOCUS_COLORS.highlightColors, ['serie', 'highlightColors'], options),
113
+ baselineColors: R.pathOr(FOCUS_COLORS.baselineColors, ['serie', 'baselineColors'], options),
114
+ tooltip: getTooltipOptions(data, type, options, tooltipFonts, timeFormats, locale)
115
+ }
116
+ });
117
+ };
118
+
119
+ export { FOCUS_COLORS, getChartOptions, symbolMarkers };
120
+ //# sourceMappingURL=getChartOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getChartOptions.js","sources":["../../../../src/rules/src/chart/getChartOptions.js"],"sourcesContent":["import * as R from 'ramda'; \nimport numeral from 'numeral';\nimport { getAxisOptions } from './getAxisOptions';\nimport { getBaseOptions } from './getBaseOptions';\nimport { getGridOptions } from './getGridOptions';\nimport { getTooltipOptions } from './getTooltipOptions';\nimport { SCATTER, STACKED_BAR, STACKED_ROW, TIMELINE } from '../constants';\n\nexport const FOCUS_COLORS = {\n highlightColors: ['#E73741', '#0F8FD9', '#993484', '#DF521E', '#719E24', '#E1B400', '#32A674', '#0B68AF'],\n baselineColors: ['#0B1E2D']\n};\n\nexport const symbolMarkers = () => {\n const paths = {\n circle: size => {\n const r = Math.sqrt(size) / 2;\n return `M0,${r} A${r},${r} 0 1,1 0,${-r} A${r},${r} 0 1,1 0,${r} Z`;\n },\n square: size => {\n const r = Math.sqrt(size) / 2;\n return `M${-r},${-r} L${r},${-r} ${r},${r} ${-r},${r} Z`;\n },\n cross: size => {\n const r = Math.sqrt(size) / 2;\n return `M${-r},${r} L${r},${-r} M${r},${r} L${-r},${-r}`;\n },\n 'triangle': size => {\n const rx = Math.sqrt(size) / Math.sqrt(3);\n const ry = Math.sqrt(size) / 2;\n return `M0,${-ry} L${rx},${ry} ${-rx},${ry} Z`;\n }\n }\n return ([\n { style: { stroke: '#39617D', fill: '#39617D' }, path: paths.circle },\n { style: { stroke: '#39617D', fill: '#DBEBF2' }, rotate: 45, path: paths.square },\n { style: { stroke: '#39617D', fill: '#39617D', strokeWidth: 2 }, path: paths.cross },\n { style: { stroke: '#39617D', fill: '#DBEBF2' }, path: paths.square },\n { style: { stroke: '#39617D', fill: '#39617D' }, path: paths.triangle }\n ]);\n};\n\nconst getAnnotationOptions = (type, options) => R.pipe(\n R.pathOr({}, ['serie', 'annotation']),\n R.mergeRight({\n format: {\n datapoint: { proc: d => numeral(d).format('0,0.[00]') }\n }\n }),\n R.cond([\n [\n R.always(R.equals(SCATTER, type)),\n R.mergeRight({ display: 'never' })\n ],\n [\n R.always(R.equals(TIMELINE, type)),\n R.mergeDeepRight({ format: { datapoint: { pattern: '.2f' } } })\n ],\n [R.T, R.identity]\n ])\n)(options);\n\nexport const getChartOptions = (data, type, options, tooltipFonts, timeFormats, locale) => {\n const defaultSerieColors = R.ifElse(\n R.anyPass([R.equals(STACKED_BAR), R.equals(STACKED_ROW)]),\n R.always(['#607D8B']),\n R.always(['#8EA4B1'])\n )(type);\n\n return ({\n axis: getAxisOptions(data, type, options, timeFormats, locale),\n background: R.pipe(\n R.propOr({}, 'background'),\n R.mergeRight({ color: '#DBEBF2' })\n )(options),\n base: getBaseOptions(type, options),\n grid: getGridOptions(type, options),\n map: R.pipe(\n R.propOr({}, 'map'),\n R.mergeRight({ intBoundariesColor: '#8EA4B1' })\n )(options),\n serie: {\n ...R.propOr({}, 'serie', options),\n annotation: getAnnotationOptions(type, options),\n choropleth: R.pipe(\n R.pathOr({}, ['serie', 'choropleth']),\n R.mergeRight({\n divisions: 4,\n domain: 'YlorRd',\n invert: false,\n labelDisplay: 'none',\n })\n )(options),\n stacked: R.pipe(\n R.pathOr({}, ['serie', 'stacked']),\n R.mergeRight({ strokeThickness: 1, strokeColor: '#F8FAFC' })\n )(options),\n symbol: R.pipe(\n R.pathOr({}, ['serie', 'symbol']),\n R.mergeRight({\n markers: symbolMarkers(),\n markerDefaultSize: 60,\n markerDefaultStrokeWidth: 1,\n gapMinMaxColor: '#607D8B',\n gapMinMaxThickness: 1,\n gapAxisMinColor: 'white',\n gapAxisMinThickness: 1\n })\n )(options),\n colors: R.pathOr(defaultSerieColors, ['serie', 'colors'], options),\n overColors: R.pathOr(['#39617D'], ['serie', 'overColors'], options),\n highlightColors: R.pathOr(FOCUS_COLORS.highlightColors, ['serie', 'highlightColors'], options),\n baselineColors: R.pathOr(FOCUS_COLORS.baselineColors, ['serie', 'baselineColors'], options),\n tooltip: getTooltipOptions(data, type, options, tooltipFonts, timeFormats, locale)\n }\n });\n};\n\n"],"names":[],"mappings":";;;;;;;;AAQY,MAAC,YAAY,GAAG;AAC5B,EAAE,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC3G,EAAE,cAAc,EAAE,CAAC,SAAS;AAC5B;;AAEY,MAAC,aAAa,GAAG,MAAM;AACnC,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,MAAM,EAAE,IAAI,IAAI;AACpB,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;AACzE,IAAI,CAAC;AACL,IAAI,MAAM,EAAE,IAAI,IAAI;AACpB,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9D,IAAI,CAAC;AACL,IAAI,KAAK,EAAE,IAAI,IAAI;AACnB,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,IAAI,IAAI;AACxB,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpD,IAAI;AACJ;AACA,EAAE,QAAQ;AACV,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;AACzE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;AACrF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE;AACxF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;AACzE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ;AACzE,GAAG;AACH;;AAEA,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC,IAAI;AACtD,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACvC,EAAE,CAAC,CAAC,UAAU,CAAC;AACf,IAAI,MAAM,EAAE;AACZ,MAAM,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3D;AACA,GAAG,CAAC;AACJ,EAAE,CAAC,CAAC,IAAI,CAAC;AACT,IAAI;AACJ,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;AACvC,KAAK;AACL,IAAI;AACJ,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;AACpE,KAAK;AACL,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ;AACpB,GAAG;AACH,CAAC,CAAC,OAAO,CAAC;;AAEE,MAAC,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,KAAK;AAC3F,EAAE,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM;AACrC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AACzB,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACxB,GAAG,CAAC,IAAI,CAAC;;AAET,EAAE,QAAQ;AACV,IAAI,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;AAClE,IAAI,UAAU,EAAE,CAAC,CAAC,IAAI;AACtB,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC;AAChC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AACvC,KAAK,CAAC,OAAO,CAAC;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC,IAAI,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI;AACf,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;AACzB,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE;AACpD,KAAK,CAAC,OAAO,CAAC;AACd,IAAI,KAAK,EAAE;AACX,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;AACvC,MAAM,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC;AACrD,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI;AACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC7C,QAAQ,CAAC,CAAC,UAAU,CAAC;AACrB,UAAU,SAAS,EAAE,CAAC;AACtB,UAAU,MAAM,EAAE,QAAQ;AAC1B,UAAU,MAAM,EAAE,KAAK;AACvB,UAAU,YAAY,EAAE,MAAM;AAC9B,SAAS;AACT,OAAO,CAAC,OAAO,CAAC;AAChB,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI;AACrB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1C,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE;AACnE,OAAO,CAAC,OAAO,CAAC;AAChB,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;AACpB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzC,QAAQ,CAAC,CAAC,UAAU,CAAC;AACrB,UAAU,OAAO,EAAE,aAAa,EAAE;AAClC,UAAU,iBAAiB,EAAE,EAAE;AAC/B,UAAU,wBAAwB,EAAE,CAAC;AACrC,UAAU,cAAc,EAAE,SAAS;AACnC,UAAU,kBAAkB,EAAE,CAAC;AAC/B,UAAU,eAAe,EAAE,OAAO;AAClC,UAAU,mBAAmB,EAAE;AAC/B,SAAS;AACT,OAAO,CAAC,OAAO,CAAC;AAChB,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;AACxE,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AACzE,MAAM,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;AACpG,MAAM,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;AACjG,MAAM,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM;AACvF;AACA,GAAG;AACH;;;;"}
@@ -0,0 +1,46 @@
1
+ import * as R from 'ramda';
2
+ import { BAR, ROW, TIMELINE, H_SYMBOL, V_SYMBOL, STACKED_BAR, STACKED_ROW } from '../constants.js';
3
+
4
+ const getGridOptions = (type, options) => {
5
+ const grid = { baselines: [0], color: 'white' };
6
+ R.assoc('thickness', 0);
7
+
8
+ return R.pipe(
9
+ R.propOr({}, 'grid'),
10
+ R.mergeDeepRight({ x: grid, y: grid }),
11
+ R.cond([
12
+ [
13
+ R.always(R.equals(BAR, type)),
14
+ R.mergeDeepRight({ x: { thickness: 0 } })
15
+ ],
16
+ [
17
+ R.always(R.equals(ROW, type)),
18
+ R.mergeDeepRight({ y: { thickness: 0 } })
19
+ ],
20
+ [
21
+ R.always(R.equals(TIMELINE, type)),
22
+ R.mergeDeepRight({ x: { thickness: 0 } })
23
+ ],
24
+ [
25
+ R.always(R.equals(H_SYMBOL, type)),
26
+ R.mergeDeepRight({ y: { thickness: 0 } })
27
+ ],
28
+ [
29
+ R.always(R.equals(V_SYMBOL, type)),
30
+ R.mergeDeepRight({ x: { thickness: 0 } })
31
+ ],
32
+ [
33
+ R.always(R.equals(STACKED_BAR, type)),
34
+ R.mergeDeepRight({ x: { thickness: 0 } })
35
+ ],
36
+ [
37
+ R.always(R.equals(STACKED_ROW, type)),
38
+ R.mergeDeepRight({ y: { thickness: 0 } })
39
+ ],
40
+ [R.T, R.identity]
41
+ ])
42
+ )(options);
43
+ };
44
+
45
+ export { getGridOptions };
46
+ //# sourceMappingURL=getGridOptions.js.map