@sis-cc/dotstatsuite-components 22.6.0 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/bridge-d3-react/src/index.js +1 -2
  2. package/dist/bridge-d3-react/src/index.js.map +1 -1
  3. package/dist/rules/src/chart/getChartOptions.js +1 -1
  4. package/dist/rules/src/chart/getChartOptions.js.map +1 -1
  5. package/dist/rules/src/constants.js +1 -35
  6. package/dist/rules/src/constants.js.map +1 -1
  7. package/dist/rules/src/dimension-utils.js +26 -24
  8. package/dist/rules/src/dimension-utils.js.map +1 -1
  9. package/dist/rules/src/factories/choro-series.js +43 -32
  10. package/dist/rules/src/factories/choro-series.js.map +1 -1
  11. package/dist/rules/src/factories/focus.js +20 -0
  12. package/dist/rules/src/factories/focus.js.map +1 -0
  13. package/dist/rules/src/factories/getChartSeries.js +11 -0
  14. package/dist/rules/src/factories/getChartSeries.js.map +1 -0
  15. package/dist/rules/src/factories/sample-focus.js +14 -18
  16. package/dist/rules/src/factories/sample-focus.js.map +1 -1
  17. package/dist/rules/src/factories/sample-series.js +20 -20
  18. package/dist/rules/src/factories/sample-series.js.map +1 -1
  19. package/dist/rules/src/factories/scatter-focus.js +21 -35
  20. package/dist/rules/src/factories/scatter-focus.js.map +1 -1
  21. package/dist/rules/src/factories/scatter-series.js +5 -5
  22. package/dist/rules/src/factories/scatter-series.js.map +1 -1
  23. package/dist/rules/src/factories/series.js +48 -0
  24. package/dist/rules/src/factories/series.js.map +1 -0
  25. package/dist/rules/src/factories/stacked-series.js +6 -7
  26. package/dist/rules/src/factories/stacked-series.js.map +1 -1
  27. package/dist/rules/src/factories/symbol-series.js +39 -46
  28. package/dist/rules/src/factories/symbol-series.js.map +1 -1
  29. package/dist/rules/src/factories/timeline-focus.js +10 -14
  30. package/dist/rules/src/factories/timeline-focus.js.map +1 -1
  31. package/dist/rules/src/factories/timeline-series.js +37 -41
  32. package/dist/rules/src/factories/timeline-series.js.map +1 -1
  33. package/dist/rules/src/get-values-enhanced.js +6 -0
  34. package/dist/rules/src/get-values-enhanced.js.map +1 -1
  35. package/dist/rules/src/index.js +6 -371
  36. package/dist/rules/src/index.js.map +1 -1
  37. package/dist/rules/src/layout.js +4 -2
  38. package/dist/rules/src/layout.js.map +1 -1
  39. package/dist/rules/src/observation-formater.js +8 -14
  40. package/dist/rules/src/observation-formater.js.map +1 -1
  41. package/dist/rules/src/properties/focus.js +51 -3
  42. package/dist/rules/src/properties/focus.js.map +1 -1
  43. package/dist/rules/src/properties/getHeaderProps.js +2 -53
  44. package/dist/rules/src/properties/getHeaderProps.js.map +1 -1
  45. package/dist/rules/src/properties/index.js +3 -94
  46. package/dist/rules/src/properties/index.js.map +1 -1
  47. package/dist/rules/src/properties/linear.js +4 -4
  48. package/dist/rules/src/properties/linear.js.map +1 -1
  49. package/dist/rules/src/properties/scatter.js +4 -4
  50. package/dist/rules/src/properties/scatter.js.map +1 -1
  51. package/dist/rules/src/properties/stacked.js +5 -7
  52. package/dist/rules/src/properties/stacked.js.map +1 -1
  53. package/dist/rules/src/properties/symbol.js.map +1 -1
  54. package/dist/rules/src/properties/utils.js +11 -12
  55. package/dist/rules/src/properties/utils.js.map +1 -1
  56. package/dist/rules/src/sdmx-data/index.js +2 -27
  57. package/dist/rules/src/sdmx-data/index.js.map +1 -1
  58. package/dist/rules2/src/combinedValuesDisplay.js +2 -2
  59. package/dist/rules2/src/combinedValuesDisplay.js.map +1 -1
  60. package/dist/rules2/src/getAttributes.js +37 -0
  61. package/dist/rules2/src/getAttributes.js.map +1 -0
  62. package/dist/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
  63. package/dist/rules2/src/getDataflowTooltipAttributesIds.js.map +1 -1
  64. package/dist/rules2/src/getHeaderCombinations.js +1 -1
  65. package/dist/rules2/src/getHeaderCombinations.js.map +1 -1
  66. package/dist/rules2/src/getHeaderSubtitle.js +1 -1
  67. package/dist/rules2/src/getHeaderSubtitle.js.map +1 -1
  68. package/dist/rules2/src/getHeaderTitle.js +1 -1
  69. package/dist/rules2/src/getHeaderTitle.js.map +1 -1
  70. package/dist/rules2/src/getMetadataCoordinates.js +1 -1
  71. package/dist/rules2/src/getMetadataCoordinates.js.map +1 -1
  72. package/dist/rules2/src/getNotDisplayedIds.js +1 -1
  73. package/dist/rules2/src/getNotDisplayedIds.js.map +1 -1
  74. package/dist/rules2/src/index.js +1 -0
  75. package/dist/rules2/src/index.js.map +1 -1
  76. package/dist/rules2/src/parseAttributes.js +2 -2
  77. package/dist/rules2/src/parseAttributes.js.map +1 -1
  78. package/dist/rules2/src/parseHierarchicalCodelist.js +1 -1
  79. package/dist/rules2/src/parseHierarchicalCodelist.js.map +1 -1
  80. package/dist/rules2/src/parseMetadataSeries.js +1 -1
  81. package/dist/rules2/src/parseMetadataSeries.js.map +1 -1
  82. package/dist/rules2/src/prepareData.js +10 -3
  83. package/dist/rules2/src/prepareData.js.map +1 -1
  84. package/dist/rules2/src/refineDimensions.js +53 -8
  85. package/dist/rules2/src/refineDimensions.js.map +1 -1
  86. package/dist/rules2/src/table/getCells.js +1 -1
  87. package/dist/rules2/src/table/getCells.js.map +1 -1
  88. package/dist/rules2/src/table/getLayout.js +1 -1
  89. package/dist/rules2/src/table/getLayout.js.map +1 -1
  90. package/dist/rules2/src/table/getTableLayoutIds.js +1 -1
  91. package/dist/rules2/src/table/getTableLayoutIds.js.map +1 -1
  92. package/dist/rules2/src/table/getTableProps.js +0 -1
  93. package/dist/rules2/src/table/getTableProps.js.map +1 -1
  94. package/dist/rules2/src/table/parseValueHierarchy.js.map +1 -1
  95. package/dist/rules2/src/table/refineLayoutSize2.js +1 -1
  96. package/dist/rules2/src/table/refineLayoutSize2.js.map +1 -1
  97. package/dist/rules2/src/utils.js.map +1 -1
  98. package/dist/viewer/src/chart.js +13 -2
  99. package/dist/viewer/src/chart.js.map +1 -1
  100. package/dist/viewer/src/legends/FocusLegend.js +1 -1
  101. package/dist/viewer/src/legends/FocusLegend.js.map +1 -1
  102. package/package.json +6 -5
  103. package/src/bridge-d3-react/src/index.js +0 -1
  104. package/src/rules/src/chart/getChartOptions.js +2 -2
  105. package/src/rules/src/constants.js +0 -35
  106. package/src/rules/src/dimension-utils.js +25 -23
  107. package/src/rules/src/factories/choro-series.js +41 -30
  108. package/src/rules/src/factories/focus.js +17 -0
  109. package/src/rules/src/factories/getChartSeries.js +8 -0
  110. package/src/rules/src/factories/sample-focus.js +14 -18
  111. package/src/rules/src/factories/sample-series.js +20 -20
  112. package/src/rules/src/factories/scatter-focus.js +22 -36
  113. package/src/rules/src/factories/scatter-series.js +8 -8
  114. package/src/rules/src/factories/series.js +45 -0
  115. package/src/rules/src/factories/stacked-series.js +4 -5
  116. package/src/rules/src/factories/symbol-series.js +37 -44
  117. package/src/rules/src/factories/timeline-focus.js +10 -14
  118. package/src/rules/src/factories/timeline-series.js +35 -39
  119. package/src/rules/src/get-values-enhanced.js +6 -0
  120. package/src/rules/src/index.js +7 -384
  121. package/src/rules/src/layout.js +4 -2
  122. package/src/rules/src/observation-formater.js +14 -20
  123. package/src/rules/src/properties/focus.js +50 -2
  124. package/src/rules/src/properties/getHeaderProps.js +1 -53
  125. package/src/rules/src/properties/index.js +2 -93
  126. package/src/rules/src/properties/linear.js +2 -2
  127. package/src/rules/src/properties/scatter.js +4 -4
  128. package/src/rules/src/properties/stacked.js +4 -6
  129. package/src/rules/src/properties/symbol.js +0 -1
  130. package/src/rules/src/properties/utils.js +11 -22
  131. package/src/rules/src/sdmx-data/index.js +2 -31
  132. package/src/rules2/src/combinedValuesDisplay.js +2 -2
  133. package/src/rules2/src/getAttributes.js +34 -0
  134. package/src/rules2/src/getDataflowTooltipAttributesIds.js +2 -2
  135. package/src/rules2/src/getHeaderCombinations.js +1 -1
  136. package/src/rules2/src/getHeaderSubtitle.js +2 -2
  137. package/src/rules2/src/getHeaderTitle.js +1 -1
  138. package/src/rules2/src/getMetadataCoordinates.js +1 -1
  139. package/src/rules2/src/getNotDisplayedIds.js +1 -1
  140. package/src/rules2/src/index.js +1 -0
  141. package/src/rules2/src/parseAttributes.js +2 -2
  142. package/src/rules2/src/parseHierarchicalCodelist.js +1 -1
  143. package/src/rules2/src/parseMetadataSeries.js +1 -1
  144. package/src/rules2/src/prepareData.js +10 -3
  145. package/src/rules2/src/refineDimensions.js +53 -8
  146. package/src/rules2/src/table/getCells.js +2 -2
  147. package/src/rules2/src/table/getLayout.js +2 -2
  148. package/src/rules2/src/table/getTableLayoutIds.js +9 -9
  149. package/src/rules2/src/table/getTableProps.js +0 -1
  150. package/src/rules2/src/table/parseValueHierarchy.js +0 -7
  151. package/src/rules2/src/table/refineLayoutSize2.js +5 -5
  152. package/src/rules2/src/utils.js +0 -11
  153. package/src/viewer/src/app/leg.js +0 -1
  154. package/src/viewer/src/chart.jsx +23 -1
  155. package/src/viewer/src/legends/FocusLegend.jsx +1 -1
  156. package/dist/rules/src/factories/scatter-dimension.js +0 -35
  157. package/dist/rules/src/factories/scatter-dimension.js.map +0 -1
  158. package/dist/rules/src/factories/stacked-dimension.js +0 -32
  159. package/dist/rules/src/factories/stacked-dimension.js.map +0 -1
  160. package/dist/rules/src/factories/symbol-dimension.js +0 -32
  161. package/dist/rules/src/factories/symbol-dimension.js.map +0 -1
  162. package/dist/rules/src/header/getDefaultSubtitle.js +0 -44
  163. package/dist/rules/src/header/getDefaultSubtitle.js.map +0 -1
  164. package/dist/rules/src/header/getHeaderUnits.js +0 -21
  165. package/dist/rules/src/header/getHeaderUnits.js.map +0 -1
  166. package/dist/rules/src/header/getSubtitleFlags.js +0 -47
  167. package/dist/rules/src/header/getSubtitleFlags.js.map +0 -1
  168. package/dist/rules/src/header/getTitleFlags.js +0 -12
  169. package/dist/rules/src/header/getTitleFlags.js.map +0 -1
  170. package/dist/rules/src/properties/errors.js +0 -22
  171. package/dist/rules/src/properties/errors.js.map +0 -1
  172. package/dist/rules/src/properties/getInformationsStateFromNewProps.js +0 -50
  173. package/dist/rules/src/properties/getInformationsStateFromNewProps.js.map +0 -1
  174. package/dist/rules/src/v8-transformer.js +0 -174
  175. package/dist/rules/src/v8-transformer.js.map +0 -1
  176. package/src/bridge-d3-react/src/app.js +0 -64
  177. package/src/bridge-d3-react/src/mock-choro.js +0 -394
  178. package/src/rules/src/factories/scatter-dimension.js +0 -32
  179. package/src/rules/src/factories/stacked-dimension.js +0 -29
  180. package/src/rules/src/factories/symbol-dimension.js +0 -29
  181. package/src/rules/src/header/getDefaultSubtitle.js +0 -40
  182. package/src/rules/src/header/getHeaderUnits.js +0 -17
  183. package/src/rules/src/header/getSubtitleFlags.js +0 -43
  184. package/src/rules/src/header/getTitleFlags.js +0 -8
  185. package/src/rules/src/header/index.js +0 -4
  186. package/src/rules/src/preparators/enhanceObservations.js +0 -152
  187. package/src/rules/src/properties/errors.js +0 -19
  188. package/src/rules/src/properties/getInformationsStateFromNewProps.js +0 -47
  189. package/src/rules/src/properties/information.js +0 -84
  190. package/src/rules/src/v8-transformer.js +0 -177
  191. package/src/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -29
  192. package/src/rules2/src/getMetadataStructureFromData.js +0 -17
  193. package/src/rules2/src/refineMetadataCoordinates.js +0 -28
  194. package/src/rules2/src/table/getCombinationDimensionsData.js +0 -39
@@ -5,7 +5,6 @@ import * as rcwCharts from '@sis-cc/dotstatsuite-d3-charts';
5
5
  const BarChart = createFactory(factory(rcwCharts.BarChart));
6
6
  const RowChart = createFactory(factory(rcwCharts.RowChart));
7
7
  const ScatterChart = createFactory(factory(rcwCharts.ScatterChart));
8
- const LineChart = createFactory(factory(rcwCharts.LineChart));
9
8
  const TimelineChart = createFactory(factory(rcwCharts.TimelineChart));
10
9
  const VerticalSymbolChart = createFactory(factory(rcwCharts.VerticalSymbolChart));
11
10
  const HorizontalSymbolChart = createFactory(factory(rcwCharts.HorizontalSymbolChart));
@@ -14,5 +13,5 @@ const StackedRowChart = createFactory(factory(rcwCharts.StackedRowChart));
14
13
  const ChoroplethChart = createFactory(factory(rcwCharts.ChoroplethChart));
15
14
  const ChoroplethLegend = createFactory(factory(rcwCharts.ChoroplethLegend));
16
15
 
17
- export { BarChart, ChoroplethChart, ChoroplethLegend, HorizontalSymbolChart, LineChart, RowChart, ScatterChart, StackedBarChart, StackedRowChart, TimelineChart, VerticalSymbolChart };
16
+ export { BarChart, ChoroplethChart, ChoroplethLegend, HorizontalSymbolChart, RowChart, ScatterChart, StackedBarChart, StackedRowChart, TimelineChart, VerticalSymbolChart };
18
17
  //# sourceMappingURL=index.js.map
@@ -1 +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;;;;"}
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 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,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;;;;"}
@@ -116,5 +116,5 @@ const getChartOptions = (data, type, options, tooltipFonts, timeFormats, locale)
116
116
  });
117
117
  };
118
118
 
119
- export { FOCUS_COLORS, getChartOptions, symbolMarkers };
119
+ export { getChartOptions };
120
120
  //# sourceMappingURL=getChartOptions.js.map
@@ -1 +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":"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"}
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\nconst FOCUS_COLORS = {\n highlightColors: ['#E73741', '#0F8FD9', '#993484', '#DF521E', '#719E24', '#E1B400', '#32A674', '#0B68AF'],\n baselineColors: ['#0B1E2D']\n};\n\nconst 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":"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"}
@@ -20,40 +20,6 @@ const TYPES = {
20
20
  [STACKED_ROW]: STACKED_ROW,
21
21
  [CHORO]: CHORO,
22
22
  };
23
- const FREQ_A = 'annual';
24
- const FREQ_Q = 'quarterly';
25
- const FREQ_M = 'monthly';
26
- const DEFAULT_UPR_IDS = {
27
- U: ['UNIT', 'UNIT_MEASURE', 'UNIT_MEAS', 'UNITS'],
28
- P: ['UNIT_MULT', 'POWERCODE', 'POWER', 'MAGNITUDE', 'SCALE'],
29
- R: ['REF_PERIOD', 'REFERENCEPERIOD', 'BASE_PER']
30
- };
31
-
32
- const DEFAULT_REJECTED_UPR_VALUES_IDS = {
33
- U: [],
34
- P: ['0'],
35
- R: []
36
- };
37
-
38
- const DEFAULT_REJECTED_SUBTITLE_IDS = ['_L', '_T', '_Z'];
39
-
40
- const DIMENSION_DISPLAY_PARTS = {
41
- DESCRIPTION: 'description',
42
- CODE: 'code',
43
- BOTH: 'both',
44
- };
45
-
46
- const DEFAULT_MAJOR_ATTRIBUTES = {
47
- DECIMALS: {
48
- ID: 'DECIMALS',
49
- ROLE: 'DECIMALS'
50
- },
51
- SCALE: {
52
- ID: 'SCALE'
53
- }
54
- };
55
-
56
- const V8_SDMX_JSON = "application/vnd.sdmx.data+json;version=1.0.0-wd";
57
23
 
58
24
  const OBS_TYPE_NUMBER = 'OBS_TYPE_NUMBER';
59
25
  const OBS_TYPE_NUMERICAL_STRING = 'OBS_TYPE_NUMERICAL_STRING';
@@ -61,5 +27,5 @@ const OBS_TYPE_STRING = 'OBS_TYPE_STRING';
61
27
  const REPORTING_YEAR_START_DAY = 'REPORTING_YEAR_START_DAY';
62
28
  const REPYEARSTART = 'REPYEARSTART';
63
29
 
64
- export { BAR, CHORO, DEFAULT_MAJOR_ATTRIBUTES, DEFAULT_REJECTED_SUBTITLE_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS, DEFAULT_UPR_IDS, DIMENSION_DISPLAY_PARTS, FREQ_A, FREQ_M, FREQ_Q, H_SYMBOL, OBS_TYPE_NUMBER, OBS_TYPE_NUMERICAL_STRING, OBS_TYPE_STRING, PERCENT, REPORTING_YEAR_START_DAY, REPYEARSTART, ROW, SCATTER, STACKED_BAR, STACKED_ROW, TIMELINE, TYPES, V8_SDMX_JSON, VALUES, V_SYMBOL };
30
+ export { BAR, CHORO, H_SYMBOL, OBS_TYPE_NUMBER, OBS_TYPE_NUMERICAL_STRING, OBS_TYPE_STRING, PERCENT, REPORTING_YEAR_START_DAY, REPYEARSTART, ROW, SCATTER, STACKED_BAR, STACKED_ROW, TIMELINE, TYPES, VALUES, V_SYMBOL };
65
31
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../src/rules/src/constants.js"],"sourcesContent":["export const BAR = 'BarChart';\nexport const ROW = 'RowChart';\nexport const SCATTER = 'ScatterChart';\nexport const TIMELINE = 'TimelineChart';\nexport const H_SYMBOL = 'HorizontalSymbolChart';\nexport const V_SYMBOL = 'VerticalSymbolChart';\nexport const STACKED_BAR = 'StackedBarChart';\nexport const STACKED_ROW = 'StackedRowChart';\nexport const CHORO = 'ChoroplethChart';\nexport const PERCENT = 'percent';\nexport const VALUES = 'values';\nexport const TYPES = {\n [BAR]: BAR,\n [ROW]: ROW,\n [SCATTER]: SCATTER,\n [TIMELINE]: TIMELINE,\n [H_SYMBOL]: H_SYMBOL,\n [V_SYMBOL]: V_SYMBOL,\n [STACKED_BAR]: STACKED_BAR,\n [STACKED_ROW]: STACKED_ROW,\n [CHORO]: CHORO,\n};\nexport const FREQ_A = 'annual';\nexport const FREQ_S = 'semesterly';\nexport const FREQ_Q = 'quarterly';\nexport const FREQ_M = 'monthly';\nexport const DEFAULT_UPR_IDS = {\n U: ['UNIT', 'UNIT_MEASURE', 'UNIT_MEAS', 'UNITS'],\n P: ['UNIT_MULT', 'POWERCODE', 'POWER', 'MAGNITUDE', 'SCALE'],\n R: ['REF_PERIOD', 'REFERENCEPERIOD', 'BASE_PER']\n};\n\nexport const DEFAULT_REJECTED_UPR_VALUES_IDS = {\n U: [],\n P: ['0'],\n R: []\n};\n\nexport const DEFAULT_REJECTED_SUBTITLE_IDS = ['_L', '_T', '_Z'];\n\nexport const DIMENSION_DISPLAY_PARTS = {\n DESCRIPTION: 'description',\n CODE: 'code',\n BOTH: 'both',\n};\n\nexport const DEFAULT_MAJOR_ATTRIBUTES = {\n DECIMALS: {\n ID: 'DECIMALS',\n ROLE: 'DECIMALS'\n },\n SCALE: {\n ID: 'SCALE'\n }\n};\n\nexport const V8_SDMX_JSON = \"application/vnd.sdmx.data+json;version=1.0.0-wd\";\n\nexport const OBS_TYPE_NUMBER = 'OBS_TYPE_NUMBER';\nexport const OBS_TYPE_NUMERICAL_STRING = 'OBS_TYPE_NUMERICAL_STRING';\nexport const OBS_TYPE_STRING = 'OBS_TYPE_STRING';\nexport const REPORTING_YEAR_START_DAY = 'REPORTING_YEAR_START_DAY';\nexport const REPYEARSTART = 'REPYEARSTART';\n\n"],"names":[],"mappings":"AAAY,MAAC,GAAG,GAAG;AACP,MAAC,GAAG,GAAG;AACP,MAAC,OAAO,GAAG;AACX,MAAC,QAAQ,GAAG;AACZ,MAAC,QAAQ,GAAG;AACZ,MAAC,QAAQ,GAAG;AACZ,MAAC,WAAW,GAAG;AACf,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG;AACX,MAAC,MAAM,GAAG;AACV,MAAC,KAAK,GAAG;AACrB,EAAE,CAAC,GAAG,GAAG,GAAG;AACZ,EAAE,CAAC,GAAG,GAAG,GAAG;AACZ,EAAE,CAAC,OAAO,GAAG,OAAO;AACpB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,WAAW,GAAG,WAAW;AAC5B,EAAE,CAAC,WAAW,GAAG,WAAW;AAC5B,EAAE,CAAC,KAAK,GAAG,KAAK;AAChB;AACY,MAAC,MAAM,GAAG;AAEV,MAAC,MAAM,GAAG;AACV,MAAC,MAAM,GAAG;AACV,MAAC,eAAe,GAAG;AAC/B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC;AACnD,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;AAC9D,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU;AACjD;;AAEY,MAAC,+BAA+B,GAAG;AAC/C,EAAE,CAAC,EAAE,EAAE;AACP,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;AACV,EAAE,CAAC,EAAE;AACL;;AAEY,MAAC,6BAA6B,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI;;AAElD,MAAC,uBAAuB,GAAG;AACvC,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,IAAI,EAAE,MAAM;AACd;;AAEY,MAAC,wBAAwB,GAAG;AACxC,EAAE,QAAQ,EAAE;AACZ,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,IAAI,EAAE;AACV,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR;AACA;;AAEY,MAAC,YAAY,GAAG;;AAEhB,MAAC,eAAe,GAAG;AACnB,MAAC,yBAAyB,GAAG;AAC7B,MAAC,eAAe,GAAG;AACnB,MAAC,wBAAwB,GAAG;AAC5B,MAAC,YAAY,GAAG;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../src/rules/src/constants.js"],"sourcesContent":["export const BAR = 'BarChart';\nexport const ROW = 'RowChart';\nexport const SCATTER = 'ScatterChart';\nexport const TIMELINE = 'TimelineChart';\nexport const H_SYMBOL = 'HorizontalSymbolChart';\nexport const V_SYMBOL = 'VerticalSymbolChart';\nexport const STACKED_BAR = 'StackedBarChart';\nexport const STACKED_ROW = 'StackedRowChart';\nexport const CHORO = 'ChoroplethChart';\nexport const PERCENT = 'percent';\nexport const VALUES = 'values';\nexport const TYPES = {\n [BAR]: BAR,\n [ROW]: ROW,\n [SCATTER]: SCATTER,\n [TIMELINE]: TIMELINE,\n [H_SYMBOL]: H_SYMBOL,\n [V_SYMBOL]: V_SYMBOL,\n [STACKED_BAR]: STACKED_BAR,\n [STACKED_ROW]: STACKED_ROW,\n [CHORO]: CHORO,\n};\n\nexport const OBS_TYPE_NUMBER = 'OBS_TYPE_NUMBER';\nexport const OBS_TYPE_NUMERICAL_STRING = 'OBS_TYPE_NUMERICAL_STRING';\nexport const OBS_TYPE_STRING = 'OBS_TYPE_STRING';\nexport const REPORTING_YEAR_START_DAY = 'REPORTING_YEAR_START_DAY';\nexport const REPYEARSTART = 'REPYEARSTART';\n\n"],"names":[],"mappings":"AAAY,MAAC,GAAG,GAAG;AACP,MAAC,GAAG,GAAG;AACP,MAAC,OAAO,GAAG;AACX,MAAC,QAAQ,GAAG;AACZ,MAAC,QAAQ,GAAG;AACZ,MAAC,QAAQ,GAAG;AACZ,MAAC,WAAW,GAAG;AACf,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;AACT,MAAC,OAAO,GAAG;AACX,MAAC,MAAM,GAAG;AACV,MAAC,KAAK,GAAG;AACrB,EAAE,CAAC,GAAG,GAAG,GAAG;AACZ,EAAE,CAAC,GAAG,GAAG,GAAG;AACZ,EAAE,CAAC,OAAO,GAAG,OAAO;AACpB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,QAAQ,GAAG,QAAQ;AACtB,EAAE,CAAC,WAAW,GAAG,WAAW;AAC5B,EAAE,CAAC,WAAW,GAAG,WAAW;AAC5B,EAAE,CAAC,KAAK,GAAG,KAAK;AAChB;;AAEY,MAAC,eAAe,GAAG;AACnB,MAAC,yBAAyB,GAAG;AAC7B,MAAC,eAAe,GAAG;AACnB,MAAC,wBAAwB,GAAG;AAC5B,MAAC,YAAY,GAAG;;;;"}
@@ -1,22 +1,29 @@
1
- import { get, isEmpty, isNil, reduce, has } from 'lodash';
1
+ import * as R from 'ramda';
2
+
3
+ const parseDisplay = (display) =>
4
+ (R.isNil(display) || !(R.includes(display, ['both', 'code'])))
5
+ ? 'label' : display;
2
6
 
3
7
  const dimensionValueDisplay =
4
8
  (display, accessors = {}) =>
5
9
  (dimensionValue) => {
6
- const id = get(dimensionValue, accessors.id || 'id', '');
7
- const name = get(dimensionValue, accessors.name || 'name', '');
10
+ const id = R.propOr('', accessors.id || 'id', dimensionValue);
11
+ const name = R.propOr('', accessors.name || 'name', dimensionValue);
8
12
  // a non-coded component (dim | attr) has no name, names nor label
9
13
  // the only valid thing to display is the id
10
- if (get(dimensionValue, 'isNonCoded', false)) return id;
14
+ if (R.propOr(false, 'isNonCoded', dimensionValue))
15
+ return id;
11
16
  //auto-generated flags have no id nor name
12
- if (isEmpty(id) && isEmpty(name)) return ''
17
+ if (R.isEmpty(id) && R.isEmpty(name))
18
+ return ''
13
19
  switch (display) {
14
20
  case 'label':
15
- return isEmpty(name) ? `[${id}]` : name;
21
+ return R.isEmpty(name) ? `[${id}]` : name;
16
22
  case 'code':
17
23
  return id;
18
24
  case 'both':
19
- if (isNil(id) || isEmpty(id)) return name;
25
+ if (R.isNil(id) || R.isEmpty(id))
26
+ return name;
20
27
  return `(${id}) ${name}`;
21
28
  default:
22
29
  return null;
@@ -24,7 +31,7 @@ const dimensionValueDisplay =
24
31
  };
25
32
 
26
33
  const dimensionValueDisplayAt = (dimension, index, display) => {
27
- const dimensionValue = get(dimension, `values[${Number(index)}]`, {});
34
+ const dimensionValue = R.pathOr({}, ['values', Number(index)], dimension);
28
35
  return dimensionValueDisplay(display)(dimensionValue);
29
36
  };
30
37
 
@@ -35,23 +42,18 @@ const categoryDisplay = (
35
42
  rejectedId,
36
43
  display,
37
44
  ) => {
38
- return reduce(
39
- splitObservationKey,
40
- (memo, dimensionValueIndex, dimensionIndex) => {
41
- const dimension = get(dimensions, `[${dimensionIndex}]`, {});
42
- if (
43
- has(dimensionsWithValuesIndexedById, dimension.id) &&
44
- dimension.id !== rejectedId
45
- ) {
46
- memo.push(
47
- dimensionValueDisplayAt(dimension, dimensionValueIndex, display),
48
- );
45
+ return R.pipe(
46
+ R.addIndex(R.reduce)((acc, dimensionValueIndex, dimensionIndex) => {
47
+ const dimension = R.nth(dimensionIndex, dimensions) || {};
48
+ if (R.has(dimension.id, dimensionsWithValuesIndexedById)
49
+ && dimension.id !== rejectedId) {
50
+ return R.append(dimensionValueDisplayAt(dimension, dimensionValueIndex, display), acc);
49
51
  }
50
- return memo;
51
- },
52
- [],
53
- ).join(' - ');
52
+ return acc;
53
+ }, []),
54
+ R.join(' - ')
55
+ )(splitObservationKey);
54
56
  };
55
57
 
56
- export { categoryDisplay, dimensionValueDisplay, dimensionValueDisplayAt };
58
+ export { categoryDisplay, dimensionValueDisplay, dimensionValueDisplayAt, parseDisplay };
57
59
  //# sourceMappingURL=dimension-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dimension-utils.js","sources":["../../../src/rules/src/dimension-utils.js"],"sourcesContent":["import { isEmpty, isNil, get, has, reduce } from 'lodash';\n\nexport const dimensionValueDisplay =\n (display, accessors = {}) =>\n (dimensionValue) => {\n const id = get(dimensionValue, accessors.id || 'id', '');\n const name = get(dimensionValue, accessors.name || 'name', '');\n // a non-coded component (dim | attr) has no name, names nor label\n // the only valid thing to display is the id\n if (get(dimensionValue, 'isNonCoded', false)) return id;\n //auto-generated flags have no id nor name\n if (isEmpty(id) && isEmpty(name)) return ''\n switch (display) {\n case 'label':\n return isEmpty(name) ? `[${id}]` : name;\n case 'code':\n return id;\n case 'both':\n if (isNil(id) || isEmpty(id)) return name;\n return `(${id}) ${name}`;\n default:\n return null;\n }\n };\n\nexport const dimensionValueDisplayAt = (dimension, index, display) => {\n const dimensionValue = get(dimension, `values[${Number(index)}]`, {});\n return dimensionValueDisplay(display)(dimensionValue);\n};\n\nexport const categoryDisplay = (\n splitObservationKey,\n dimensions,\n dimensionsWithValuesIndexedById,\n rejectedId,\n display,\n) => {\n return reduce(\n splitObservationKey,\n (memo, dimensionValueIndex, dimensionIndex) => {\n const dimension = get(dimensions, `[${dimensionIndex}]`, {});\n if (\n has(dimensionsWithValuesIndexedById, dimension.id) &&\n dimension.id !== rejectedId\n ) {\n memo.push(\n dimensionValueDisplayAt(dimension, dimensionValueIndex, display),\n );\n }\n return memo;\n },\n [],\n ).join(' - ');\n};\n"],"names":[],"mappings":";;AAEY,MAAC,qBAAqB;AAClC,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,EAAE;AAC1B,EAAE,CAAC,cAAc,KAAK;AACtB,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;AAC5D,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC;AAClE;AACA;AACA,IAAI,IAAI,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE;AAC3D;AACA,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;AAC7C,IAAI,QAAQ,OAAO;AACnB,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;AAC/C,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,EAAE;AACjB,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI;AACjD,QAAQ,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,MAAM;AACN,QAAQ,OAAO,IAAI;AACnB;AACA,EAAE;;AAEU,MAAC,uBAAuB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK;AACtE,EAAE,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACvE,EAAE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;AACvD;;AAEY,MAAC,eAAe,GAAG;AAC/B,EAAE,mBAAmB;AACrB,EAAE,UAAU;AACZ,EAAE,+BAA+B;AACjC,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,KAAK;AACL,EAAE,OAAO,MAAM;AACf,IAAI,mBAAmB;AACvB,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,KAAK;AACnD,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClE,MAAM;AACN,QAAQ,GAAG,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAE,CAAC;AAC1D,QAAQ,SAAS,CAAC,EAAE,KAAK;AACzB,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI;AACjB,UAAU,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC;AAC1E,SAAS;AACT,MAAM;AACN,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC;AACL,IAAI,EAAE;AACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"dimension-utils.js","sources":["../../../src/rules/src/dimension-utils.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport const parseDisplay = (display) =>\n (R.isNil(display) || !(R.includes(display, ['both', 'code'])))\n ? 'label' : display;\n\nexport const dimensionValueDisplay =\n (display, accessors = {}) =>\n (dimensionValue) => {\n const id = R.propOr('', accessors.id || 'id', dimensionValue);\n const name = R.propOr('', accessors.name || 'name', dimensionValue);\n // a non-coded component (dim | attr) has no name, names nor label\n // the only valid thing to display is the id\n if (R.propOr(false, 'isNonCoded', dimensionValue))\n return id;\n //auto-generated flags have no id nor name\n if (R.isEmpty(id) && R.isEmpty(name))\n return ''\n switch (display) {\n case 'label':\n return R.isEmpty(name) ? `[${id}]` : name;\n case 'code':\n return id;\n case 'both':\n if (R.isNil(id) || R.isEmpty(id))\n return name;\n return `(${id}) ${name}`;\n default:\n return null;\n }\n };\n\nexport const dimensionValueDisplayAt = (dimension, index, display) => {\n const dimensionValue = R.pathOr({}, ['values', Number(index)], dimension);\n return dimensionValueDisplay(display)(dimensionValue);\n};\n\nexport const categoryDisplay = (\n splitObservationKey,\n dimensions,\n dimensionsWithValuesIndexedById,\n rejectedId,\n display,\n) => {\n return R.pipe(\n R.addIndex(R.reduce)((acc, dimensionValueIndex, dimensionIndex) => {\n const dimension = R.nth(dimensionIndex, dimensions) || {};\n if (R.has(dimension.id, dimensionsWithValuesIndexedById)\n && dimension.id !== rejectedId) {\n return R.append(dimensionValueDisplayAt(dimension, dimensionValueIndex, display), acc);\n }\n return acc;\n }, []),\n R.join(' - ')\n )(splitObservationKey);\n};\n"],"names":[],"mappings":";;AAEY,MAAC,YAAY,GAAG,CAAC,OAAO;AACpC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,MAAM,OAAO,GAAG;;AAEJ,MAAC,qBAAqB;AAClC,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,EAAE;AAC1B,EAAE,CAAC,cAAc,KAAK;AACtB,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,IAAI,EAAE,cAAc,CAAC;AACjE,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,MAAM,EAAE,cAAc,CAAC;AACvE;AACA;AACA,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC;AACrD,MAAM,OAAO,EAAE;AACf;AACA,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC,MAAM,OAAO;AACb,IAAI,QAAQ,OAAO;AACnB,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;AACjD,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,EAAE;AACjB,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AACxC,UAAU,OAAO,IAAI;AACrB,QAAQ,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,MAAM;AACN,QAAQ,OAAO,IAAI;AACnB;AACA,EAAE;;AAEU,MAAC,uBAAuB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK;AACtE,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;AAC3E,EAAE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;AACvD;;AAEY,MAAC,eAAe,GAAG;AAC/B,EAAE,mBAAmB;AACrB,EAAE,UAAU;AACZ,EAAE,+BAA+B;AACjC,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,KAAK;AACL,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,mBAAmB,EAAE,cAAc,KAAK;AACvE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE;AAC/D,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,+BAA+B;AAC7D,WAAW,SAAS,CAAC,EAAE,KAAK,UAAU,EAAE;AACxC,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC;AAC9F,MAAM;AACN,MAAM,OAAO,GAAG;AAChB,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK;AAChB,GAAG,CAAC,mBAAmB,CAAC;AACxB;;;;"}
@@ -1,55 +1,66 @@
1
- import { get, map, head, isUndefined, transform, split, has } from 'lodash';
1
+ import * as R from 'ramda';
2
2
  import { getRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';
3
3
  import { categoryDisplay, dimensionValueDisplay } from '../dimension-utils.js';
4
4
 
5
5
  const parseByAreas = (observations, refAreaDimension) => {
6
- if (isUndefined(refAreaDimension)) {
6
+ if (R.isNil(refAreaDimension)) {
7
7
  return null;
8
8
  }
9
- const refAreaDimIndex = get(refAreaDimension, 'index');
10
- const refAreaValues = refAreaDimension.values;
9
+ const { __index, values=[] } = refAreaDimension;
11
10
 
12
- return transform(
13
- observations,
14
- (acc, value, key) => {
15
- const splitedKey = split(key, ':');
16
- const areaValueIndex = get(splitedKey, `[${refAreaDimIndex}]`, null);
17
- const areaValue = get(refAreaValues, `[${areaValueIndex}]`, null);
18
- const areaId = get(areaValue, 'id', null);
19
- if (!has(acc, areaId)) {
20
- acc[areaId] = [];
21
- }
22
- acc[areaId].push({ splitedKey, value, areaValueIndex });
23
- },
24
- {}
25
- );
11
+ return R.pipe(
12
+ R.keys,
13
+ R.reduce((acc, key) => {
14
+ const value = observations[key];
15
+ const splitedKey = R.split(':', key);
16
+ const areaValueIndex = Number(R.nth(__index, splitedKey));
17
+ const areaValue = isNaN(areaValueIndex)
18
+ ? null : R.nth(areaValueIndex, values);
19
+ const areaId = R.prop('id', areaValue || {});
20
+ return R.over(
21
+ R.lensProp(areaId),
22
+ vals => R.append({ splitedKey, value, areaValueIndex }, vals || []),
23
+ acc
24
+ );
25
+ }, {})
26
+ )(observations);
26
27
  };
27
28
 
28
- var __choroSeries = ({ observations, dimensions }, dimensionsWithValuesIndexedById, topoMap, display) => {
29
+ var choroSeries = ({ observations, dimensions }, dimensionsWithValuesIndexedById, topoMap, display) => {
29
30
  const refAreaDimension = getRefAreaDimension({ dimensions });
30
31
  const observationsByAreas = parseByAreas(observations, refAreaDimension);
31
- const topology = get(topoMap, 'topology', {});
32
- const areaSelection = get(topoMap, 'areaSelection', null);
33
- const topoAreas = get(topology, `objects.${areaSelection}`, null);
32
+ const topology = R.propOr({}, 'topology', topoMap);
33
+ const areaSelection = R.propOr(null, 'areaSelection', topoMap);
34
+ const topoAreas = R.pathOr(null, ['objects', areaSelection], topology);
34
35
  if (!observationsByAreas || !topoAreas) {
35
36
  return null;
36
37
  }
37
- const topoAreasWithData = map(
38
- topoAreas.geometries,
38
+ const topoAreasWithData = R.map(
39
39
  (areaGeometry) => {
40
- const areaObservation = head(get(observationsByAreas, get(areaGeometry, 'properties.id', null), []));
41
- const areaValueIndex = get(areaObservation, 'areaValueIndex', null);
42
- const areaValue = get(refAreaDimension, `values[${areaValueIndex}]`, null);
40
+ const areaObservation = R.pipe(
41
+ R.pathOr(null, ['properties', 'id']),
42
+ id => R.propOr([], id, observationsByAreas),
43
+ R.head
44
+ )(areaGeometry);
45
+ const areaValueIndex = R.propOr(null, 'areaValueIndex', areaObservation);
46
+ const areaValue = R.pathOr(null, ['values', areaValueIndex], refAreaDimension);
43
47
  return {
44
48
  ...areaGeometry,
45
49
  properties: {
46
- ...get(areaGeometry, 'properties', {}),
50
+ ...R.propOr({}, 'properties', areaGeometry),
47
51
  label: dimensionValueDisplay(display)(areaValue),
48
- value: head(get(areaObservation, 'value', [])),
49
- category: categoryDisplay(get(areaObservation, 'splitedKey', null), dimensions, dimensionsWithValuesIndexedById, refAreaDimension.id, display),
52
+ value: R.head(R.propOr([], 'value', areaObservation)),
53
+ category: categoryDisplay(
54
+ R.propOr([], 'splitedKey', areaObservation),
55
+ dimensions,
56
+ dimensionsWithValuesIndexedById,
57
+ refAreaDimension.id,
58
+ display
59
+ ),
50
60
  }
51
61
  };
52
- }
62
+ },
63
+ topoAreas.geometries,
53
64
  );
54
65
  return ({
55
66
  objects: {
@@ -64,5 +75,5 @@ var __choroSeries = ({ observations, dimensions }, dimensionsWithValuesIndexedBy
64
75
  });
65
76
  };
66
77
 
67
- export { __choroSeries as default };
78
+ export { choroSeries as default };
68
79
  //# sourceMappingURL=choro-series.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"choro-series.js","sources":["../../../../src/rules/src/factories/choro-series.js"],"sourcesContent":["import { get, has, head, isUndefined, map, split, transform } from 'lodash';\nimport { getRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';\nimport { categoryDisplay, dimensionValueDisplay } from '../dimension-utils';\n\nconst parseByAreas = (observations, refAreaDimension) => {\n if (isUndefined(refAreaDimension)) {\n return null;\n }\n const refAreaDimIndex = get(refAreaDimension, 'index');\n const refAreaValues = refAreaDimension.values;\n\n return transform(\n observations,\n (acc, value, key) => {\n const splitedKey = split(key, ':');\n const areaValueIndex = get(splitedKey, `[${refAreaDimIndex}]`, null);\n const areaValue = get(refAreaValues, `[${areaValueIndex}]`, null);\n const areaId = get(areaValue, 'id', null);\n if (!has(acc, areaId)) {\n acc[areaId] = [];\n }\n acc[areaId].push({ splitedKey, value, areaValueIndex });\n },\n {}\n );\n};\n\nexport default ({ observations, dimensions }, dimensionsWithValuesIndexedById, topoMap, display) => {\n const refAreaDimension = getRefAreaDimension({ dimensions });\n const observationsByAreas = parseByAreas(observations, refAreaDimension);\n const topology = get(topoMap, 'topology', {});\n const areaSelection = get(topoMap, 'areaSelection', null);\n const topoAreas = get(topology, `objects.${areaSelection}`, null);\n if (!observationsByAreas || !topoAreas) {\n return null;\n }\n const topoAreasWithData = map(\n topoAreas.geometries,\n (areaGeometry) => {\n const areaObservation = head(get(observationsByAreas, get(areaGeometry, 'properties.id', null), []));\n const areaValueIndex = get(areaObservation, 'areaValueIndex', null);\n const areaValue = get(refAreaDimension, `values[${areaValueIndex}]`, null);\n return {\n ...areaGeometry,\n properties: {\n ...get(areaGeometry, 'properties', {}),\n label: dimensionValueDisplay(display)(areaValue),\n value: head(get(areaObservation, 'value', [])),\n category: categoryDisplay(get(areaObservation, 'splitedKey', null), dimensions, dimensionsWithValuesIndexedById, refAreaDimension.id, display),\n }\n };\n }\n );\n return ({\n objects: {\n areas: {\n type: topoAreas.type,\n geometries: topoAreasWithData\n }\n },\n arcs: topology.arcs,\n bbox: topology.bbox,\n transform: topology.transform\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"choro-series.js","sources":["../../../../src/rules/src/factories/choro-series.js"],"sourcesContent":["import * as R from 'ramda';\nimport { getRefAreaDimension } from '@sis-cc/dotstatsuite-sdmxjs';\nimport { categoryDisplay, dimensionValueDisplay } from '../dimension-utils';\n\nconst parseByAreas = (observations, refAreaDimension) => {\n if (R.isNil(refAreaDimension)) {\n return null;\n }\n const { __index, values=[] } = refAreaDimension;\n\n return R.pipe(\n R.keys,\n R.reduce((acc, key) => {\n const value = observations[key];\n const splitedKey = R.split(':', key);\n const areaValueIndex = Number(R.nth(__index, splitedKey));\n const areaValue = isNaN(areaValueIndex)\n ? null : R.nth(areaValueIndex, values);\n const areaId = R.prop('id', areaValue || {});\n return R.over(\n R.lensProp(areaId),\n vals => R.append({ splitedKey, value, areaValueIndex }, vals || []),\n acc\n ); \n }, {})\n )(observations);\n};\n\nexport default ({ observations, dimensions }, dimensionsWithValuesIndexedById, topoMap, display) => {\n const refAreaDimension = getRefAreaDimension({ dimensions });\n const observationsByAreas = parseByAreas(observations, refAreaDimension);\n const topology = R.propOr({}, 'topology', topoMap);\n const areaSelection = R.propOr(null, 'areaSelection', topoMap);\n const topoAreas = R.pathOr(null, ['objects', areaSelection], topology);\n if (!observationsByAreas || !topoAreas) {\n return null;\n }\n const topoAreasWithData = R.map(\n (areaGeometry) => {\n const areaObservation = R.pipe(\n R.pathOr(null, ['properties', 'id']),\n id => R.propOr([], id, observationsByAreas),\n R.head\n )(areaGeometry);\n const areaValueIndex = R.propOr(null, 'areaValueIndex', areaObservation);\n const areaValue = R.pathOr(null, ['values', areaValueIndex], refAreaDimension);\n return {\n ...areaGeometry,\n properties: {\n ...R.propOr({}, 'properties', areaGeometry),\n label: dimensionValueDisplay(display)(areaValue),\n value: R.head(R.propOr([], 'value', areaObservation)),\n category: categoryDisplay(\n R.propOr([], 'splitedKey', areaObservation),\n dimensions,\n dimensionsWithValuesIndexedById,\n refAreaDimension.id,\n display\n ),\n }\n };\n },\n topoAreas.geometries,\n );\n return ({\n objects: {\n areas: {\n type: topoAreas.type,\n geometries: topoAreasWithData\n }\n },\n arcs: topology.arcs,\n bbox: topology.bbox,\n transform: topology.transform\n });\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import focus from './sample-focus.js';
2
+ import focus$2 from './scatter-focus.js';
3
+ import focus$1 from './timeline-focus.js';
4
+
5
+ var getFocusedSeries = ({ type, series, focusOptions }) => {
6
+ switch(type) {
7
+ case 'ScatterChart':
8
+ return focus$2(series, focusOptions);
9
+ case 'TimelineChart':
10
+ return focus$1(series, focusOptions);
11
+ case 'BarChart': case 'RowChart': case 'StackedBarChart':
12
+ case 'StackedRowChart': case 'HorizontalSymbolChart': case 'VerticalSymbolChart':
13
+ return focus(series, focusOptions);
14
+ default:
15
+ return series;
16
+ }
17
+ };
18
+
19
+ export { getFocusedSeries as default };
20
+ //# sourceMappingURL=focus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.js","sources":["../../../../src/rules/src/factories/focus.js"],"sourcesContent":["import sampleFocus from './sample-focus';\nimport scatterFocus from './scatter-focus';\nimport timelineFocus from './timeline-focus';\n\nexport default ({ type, series, focusOptions }) => {\n switch(type) {\n case 'ScatterChart':\n return scatterFocus(series, focusOptions);\n case 'TimelineChart':\n return timelineFocus(series, focusOptions);\n case 'BarChart': case 'RowChart': case 'StackedBarChart':\n case 'StackedRowChart': case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n return sampleFocus(series, focusOptions);\n default:\n return series;\n }\n};"],"names":["scatterFocus","timelineFocus","sampleFocus"],"mappings":";;;;AAIA,uBAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK;AACnD,EAAE,OAAO,IAAI;AACb,IAAI,KAAK,cAAc;AACvB,MAAM,OAAOA,OAAY,CAAC,MAAM,EAAE,YAAY,CAAC;AAC/C,IAAI,KAAK,eAAe;AACxB,MAAM,OAAOC,OAAa,CAAC,MAAM,EAAE,YAAY,CAAC;AAChD,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,iBAAiB;AAC5D,IAAI,KAAK,iBAAiB,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,KAAK,qBAAqB;AACpF,MAAM,OAAOC,KAAW,CAAC,MAAM,EAAE,YAAY,CAAC;AAC9C,IAAI;AACJ,MAAM,OAAO,MAAM;AACnB;AACA,CAAC;;;;"}
@@ -0,0 +1,11 @@
1
+ import getFocusedSeries from './focus.js';
2
+ import getSeries from './series.js';
3
+
4
+ const getChartSeries = ({ type, data, options, singularity, focusOptions }) => {
5
+ const chartSeries = getSeries({ type, data, options, singularity });
6
+ const focusedSeries = getFocusedSeries({ type, series: chartSeries, focusOptions });
7
+ return focusedSeries;
8
+ };
9
+
10
+ export { getChartSeries };
11
+ //# sourceMappingURL=getChartSeries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getChartSeries.js","sources":["../../../../src/rules/src/factories/getChartSeries.js"],"sourcesContent":["import getFocusedSeries from './focus';\nimport getSeries from './series';\n\nexport const getChartSeries = ({ type, data, options, singularity, focusOptions }) => {\n const chartSeries = getSeries({ type, data, options, singularity });\n const focusedSeries = getFocusedSeries({ type, series: chartSeries, focusOptions });\n return focusedSeries;\n};\n"],"names":[],"mappings":";;;AAGY,MAAC,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK;AACtF,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACrE,EAAE,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACrF,EAAE,OAAO,aAAa;AACtB;;;;"}
@@ -1,24 +1,20 @@
1
- import { head, get, map, omit, keys, each, isArray } from 'lodash';
1
+ import * as R from 'ramda';
2
2
 
3
3
  function focus(series, focusSelections) {
4
- const serie = head(series);
5
- const datapoints = get(serie, 'datapoints', []);
4
+ const { highlight = [], baseline = [] } = focusSelections || {};
5
+ if (R.isEmpty(highlight) && R.isEmpty(baseline)) {
6
+ return series;
7
+ }
6
8
 
7
- const _datapoints = map(datapoints, (datapoint) => {
8
- let _datapoint = omit(datapoint, map(keys(focusSelections), focusKey => `${focusKey}Index`));
9
-
10
- each(focusSelections, (focusSelection, focusKey) => {
11
- const _focusKey = `${focusKey}Index`;
12
-
13
- each(isArray(focusSelection) ? focusSelection : [focusSelection], (focus, index) => {
14
- if (get(focus, 'value') === _datapoint.key) _datapoint[_focusKey] = index;
15
- });
16
- });
17
-
18
- return _datapoint;
19
- });
20
-
21
- return [{ ...serie, datapoints: _datapoints }];
9
+ return R.over(
10
+ R.lensPath([0, 'datapoints']),
11
+ R.map(dp => ({
12
+ ...dp,
13
+ highlightIndex: R.findIndex(R.propEq(dp.key, 'value'), highlight),
14
+ baselineIndex: R.path([0, 'value'], baseline) === dp.key ? 0 : -1
15
+ })),
16
+ series || []
17
+ );
22
18
  }
23
19
 
24
20
  export { focus as default };
@@ -1 +1 @@
1
- {"version":3,"file":"sample-focus.js","sources":["../../../../src/rules/src/factories/sample-focus.js"],"sourcesContent":["import { map, each, get, omit, isArray, keys, head } from 'lodash';\n\nexport default function focus(series, focusSelections) {\n const serie = head(series);\n const datapoints = get(serie, 'datapoints', []);\n\n const _datapoints = map(datapoints, (datapoint) => {\n let _datapoint = omit(datapoint, map(keys(focusSelections), focusKey => `${focusKey}Index`));\n \n each(focusSelections, (focusSelection, focusKey) => {\n const _focusKey = `${focusKey}Index`;\n\n each(isArray(focusSelection) ? focusSelection : [focusSelection], (focus, index) => {\n if (get(focus, 'value') === _datapoint.key) _datapoint[_focusKey] = index;\n });\n });\n\n return _datapoint;\n });\n\n return [{ ...serie, datapoints: _datapoints }];\n}\n"],"names":[],"mappings":";;AAEe,SAAS,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE;AACvD,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;;AAEjD,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,SAAS,KAAK;AACrD,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG;AACA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,EAAE,QAAQ,KAAK;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;;AAE1C,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;AAC1F,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK;AACjF,MAAM,CAAC,CAAC;AACR,IAAI,CAAC,CAAC;;AAEN,IAAI,OAAO,UAAU;AACrB,EAAE,CAAC,CAAC;;AAEJ,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAChD;;;;"}
1
+ {"version":3,"file":"sample-focus.js","sources":["../../../../src/rules/src/factories/sample-focus.js"],"sourcesContent":["import * as R from 'ramda';\n\nexport default function focus(series, focusSelections) {\n const { highlight = [], baseline = [] } = focusSelections || {};\n if (R.isEmpty(highlight) && R.isEmpty(baseline)) {\n return series;\n }\n\n return R.over(\n R.lensPath([0, 'datapoints']),\n R.map(dp => ({\n ...dp,\n highlightIndex: R.findIndex(R.propEq(dp.key, 'value'), highlight),\n baselineIndex: R.path([0, 'value'], baseline) === dp.key ? 0 : -1\n })),\n series || []\n );\n}\n"],"names":[],"mappings":";;AAEe,SAAS,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE;AACvD,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,eAAe,IAAI,EAAE;AACjE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnD,IAAI,OAAO,MAAM;AACjB,EAAE;;AAEF,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE;AACX,MAAM,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC;AACvE,MAAM,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG;AACrE,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,IAAI;AACd,GAAG;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import { sortBy, map, head, split, isNil, isEmpty } from 'lodash';
1
+ import * as R from 'ramda';
2
2
  import { categoryDisplay } from '../dimension-utils.js';
3
3
  import { getFormatedObservation } from '../observation-formater.js';
4
4
 
@@ -8,25 +8,25 @@ const getDatapoints = (
8
8
  const [categoryKey, valueKey] = keys;
9
9
  const sortFunc = dp => dp[valueKey] * sortDirection;
10
10
 
11
- return sortBy(
12
- map(
13
- observations,
14
- (observationValue, observationKey) => {
15
- const value = head(observationValue);
16
- const category = categoryDisplay(split(observationKey, ':'), dimensions, dimensionsWithValuesIndexedById, null, display);
17
- const categoryIds = categoryDisplay(split(observationKey, ':'), dimensions, dimensionsWithValuesIndexedById, null, 'code');
18
- const formatedValue = getFormatedObservation(observationValue, formaterAttrs);
11
+ return R.pipe(
12
+ R.keys,
13
+ R.map((observationKey) => {
14
+ const observationValue = R.prop(observationKey, observations);
15
+ const value = R.head(observationValue);
16
+ const splitKey = R.split(':', observationKey);
17
+ const category = categoryDisplay(splitKey, dimensions, dimensionsWithValuesIndexedById, null, display);
18
+ const categoryIds = categoryDisplay(splitKey, dimensions, dimensionsWithValuesIndexedById, null, 'code');
19
+ const formatedValue = getFormatedObservation(observationValue, formaterAttrs);
19
20
 
20
- let key = categoryIds;
21
- if (isNil(key) || isEmpty(key)) {
22
- key = 'uniq-dp';
23
- }
24
-
25
- return { value, category, [valueKey]: value, [categoryKey]: category, key, formatedValue };
21
+ let key = categoryIds;
22
+ if (R.isNil(key) || R.isEmpty(key)) {
23
+ key = 'uniq-dp';
26
24
  }
27
- ),
28
- sortFunc
29
- );
25
+
26
+ return { value, category, [valueKey]: value, [categoryKey]: category, key, formatedValue };
27
+ }),
28
+ R.sortBy(sortFunc)
29
+ )(observations);
30
30
  };
31
31
 
32
32
  const series = (
@@ -39,7 +39,7 @@ const series = (
39
39
  }]
40
40
  };
41
41
 
42
- var __sampleSeries = (chartType, { observations, dimensions }, dimensionsWithValuesIndexedById, display, formaterAttrs) => {
42
+ var sampleSeries = (chartType, { observations, dimensions }, dimensionsWithValuesIndexedById, display, formaterAttrs) => {
43
43
  switch(chartType) {
44
44
  case 'BarChart':
45
45
  return series(['x', 'y'], observations, dimensions, dimensionsWithValuesIndexedById, 1, display, formaterAttrs);
@@ -50,5 +50,5 @@ var __sampleSeries = (chartType, { observations, dimensions }, dimensionsWithVal
50
50
  }
51
51
  };
52
52
 
53
- export { __sampleSeries as default, getDatapoints, series };
53
+ export { sampleSeries as default };
54
54
  //# sourceMappingURL=sample-series.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sample-series.js","sources":["../../../../src/rules/src/factories/sample-series.js"],"sourcesContent":["import { map, sortBy, head, isEmpty, isNil, split } from 'lodash';\nimport { categoryDisplay } from '../dimension-utils';\nimport { getFormatedObservation } from '../observation-formater';\n\nexport const getDatapoints = (\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n) => {\n const [categoryKey, valueKey] = keys;\n const sortFunc = dp => dp[valueKey] * sortDirection;\n\n return sortBy(\n map(\n observations,\n (observationValue, observationKey) => {\n const value = head(observationValue);\n const category = categoryDisplay(split(observationKey, ':'), dimensions, dimensionsWithValuesIndexedById, null, display);\n const categoryIds = categoryDisplay(split(observationKey, ':'), dimensions, dimensionsWithValuesIndexedById, null, 'code');\n const formatedValue = getFormatedObservation(observationValue, formaterAttrs);\n\n let key = categoryIds;\n if (isNil(key) || isEmpty(key)) {\n key = 'uniq-dp';\n }\n\n return { value, category, [valueKey]: value, [categoryKey]: category, key, formatedValue };\n }\n ),\n sortFunc\n );\n};\n\nexport const series = (\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n) => {\n return [{\n datapoints: getDatapoints(\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n )\n }]\n};\n\nexport default (chartType, { observations, dimensions }, dimensionsWithValuesIndexedById, display, formaterAttrs) => {\n switch(chartType) {\n case 'BarChart':\n return series(['x', 'y'], observations, dimensions, dimensionsWithValuesIndexedById, 1, display, formaterAttrs);\n case 'RowChart':\n return series(['y', 'x'], observations, dimensions, dimensionsWithValuesIndexedById, -1, display, formaterAttrs);\n default:\n return [];\n }\n};\n"],"names":[],"mappings":";;;;AAIY,MAAC,aAAa,GAAG;AAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC3F,KAAK;AACL,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI;AACtC,EAAE,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,aAAa;;AAEtD,EAAE,OAAO,MAAM;AACf,IAAI,GAAG;AACP,MAAM,YAAY;AAClB,MAAM,CAAC,gBAAgB,EAAE,cAAc,KAAK;AAC5C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,QAAQ,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,IAAI,EAAE,OAAO,CAAC;AAChI,QAAQ,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,CAAC;AAClI,QAAQ,MAAM,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC;;AAErF,QAAQ,IAAI,GAAG,GAAG,WAAW;AAC7B,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACxC,UAAU,GAAG,GAAG,SAAS;AACzB,QAAQ;;AAER,QAAQ,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,WAAW,GAAG,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE;AAClG,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG;AACH;;AAEY,MAAC,MAAM,GAAG;AACtB,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC3F,KAAK;AACL,EAAE,OAAO,CAAC;AACV,IAAI,UAAU,EAAE,aAAa;AAC7B,MAAM,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC/F;AACA,GAAG;AACH;;AAEA,qBAAe,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,+BAA+B,EAAE,OAAO,EAAE,aAAa,KAAK;AACrH,EAAE,OAAO,SAAS;AAClB,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC;AACrH,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC;AACtH,IAAI;AACJ,MAAM,OAAO,EAAE;AACf;AACA,CAAC;;;;"}
1
+ {"version":3,"file":"sample-series.js","sources":["../../../../src/rules/src/factories/sample-series.js"],"sourcesContent":["import * as R from 'ramda';\nimport { categoryDisplay } from '../dimension-utils';\nimport { getFormatedObservation } from '../observation-formater';\n\nconst getDatapoints = (\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n) => {\n const [categoryKey, valueKey] = keys;\n const sortFunc = dp => dp[valueKey] * sortDirection;\n\n return R.pipe(\n R.keys,\n R.map((observationKey) => {\n const observationValue = R.prop(observationKey, observations);\n const value = R.head(observationValue);\n const splitKey = R.split(':', observationKey);\n const category = categoryDisplay(splitKey, dimensions, dimensionsWithValuesIndexedById, null, display);\n const categoryIds = categoryDisplay(splitKey, dimensions, dimensionsWithValuesIndexedById, null, 'code');\n const formatedValue = getFormatedObservation(observationValue, formaterAttrs);\n\n let key = categoryIds;\n if (R.isNil(key) || R.isEmpty(key)) {\n key = 'uniq-dp';\n }\n\n return { value, category, [valueKey]: value, [categoryKey]: category, key, formatedValue };\n }),\n R.sortBy(sortFunc)\n )(observations);\n};\n\nconst series = (\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n) => {\n return [{\n datapoints: getDatapoints(\n keys, observations, dimensions, dimensionsWithValuesIndexedById, sortDirection, display, formaterAttrs\n )\n }]\n};\n\nexport default (chartType, { observations, dimensions }, dimensionsWithValuesIndexedById, display, formaterAttrs) => {\n switch(chartType) {\n case 'BarChart':\n return series(['x', 'y'], observations, dimensions, dimensionsWithValuesIndexedById, 1, display, formaterAttrs);\n case 'RowChart':\n return series(['y', 'x'], observations, dimensions, dimensionsWithValuesIndexedById, -1, display, formaterAttrs);\n default:\n return [];\n }\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,aAAa,GAAG;AACtB,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC3F,KAAK;AACL,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI;AACtC,EAAE,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,aAAa;;AAEtD,EAAE,OAAO,CAAC,CAAC,IAAI;AACf,IAAI,CAAC,CAAC,IAAI;AACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK;AAC9B,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC;AACnE,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5G,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,CAAC;AAC9G,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC;;AAEnF,MAAM,IAAI,GAAG,GAAG,WAAW;AAC3B,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC1C,QAAQ,GAAG,GAAG,SAAS;AACvB,MAAM;;AAEN,MAAM,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,WAAW,GAAG,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE;AAChG,IAAI,CAAC,CAAC;AACN,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ;AACrB,GAAG,CAAC,YAAY,CAAC;AACjB,CAAC;;AAED,MAAM,MAAM,GAAG;AACf,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC3F,KAAK;AACL,EAAE,OAAO,CAAC;AACV,IAAI,UAAU,EAAE,aAAa;AAC7B,MAAM,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,aAAa,EAAE,OAAO,EAAE;AAC/F;AACA,GAAG;AACH,CAAC;;AAED,mBAAe,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,+BAA+B,EAAE,OAAO,EAAE,aAAa,KAAK;AACrH,EAAE,OAAO,SAAS;AAClB,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC;AACrH,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC;AACtH,IAAI;AACJ,MAAM,OAAO,EAAE;AACf;AACA,CAAC;;;;"}