@sis-cc/dotstatsuite-components 20.6.0 → 21.0.1

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 (161) hide show
  1. package/.gitlab-ci.yml +4 -5
  2. package/README.md +1 -17
  3. package/package.json +20 -14
  4. package/src/bridge-d3-react/src/react-chart-factory.js +1 -2
  5. package/src/rules/src/factories/sample-series.js +1 -1
  6. package/src/rules/src/index.js +14 -13
  7. package/src/rules/src/observation-formater.js +0 -1
  8. package/src/rules/src/properties/focus.js +3 -3
  9. package/src/rules/src/sdmx-data/index.js +2 -0
  10. package/src/viewer/src/index.js +4 -5
  11. package/src/viewer/src/legends/AxisLegend.js +0 -7
  12. package/src/viewer/src/legends/FocusLegend.js +2 -10
  13. package/src/viewer/src/legends/Legend.js +0 -6
  14. package/src/viewer/src/legends/SeriesLegend.js +0 -7
  15. package/vite.config.mjs +51 -0
  16. package/lib/app.js +0 -22
  17. package/lib/bridge-d3-react/src/app.js +0 -98
  18. package/lib/bridge-d3-react/src/index.js +0 -33
  19. package/lib/bridge-d3-react/src/mock-choro.js +0 -41
  20. package/lib/bridge-d3-react/src/react-chart-factory.js +0 -103
  21. package/lib/index.js +0 -41
  22. package/lib/rules/src/chart/getAxisOptions.js +0 -206
  23. package/lib/rules/src/chart/getBaseOptions.js +0 -51
  24. package/lib/rules/src/chart/getChartOptions.js +0 -106
  25. package/lib/rules/src/chart/getGridOptions.js +0 -21
  26. package/lib/rules/src/chart/getTooltipOptions.js +0 -84
  27. package/lib/rules/src/constants.js +0 -68
  28. package/lib/rules/src/date.js +0 -180
  29. package/lib/rules/src/dimension-utils.js +0 -67
  30. package/lib/rules/src/factories/choro-series.js +0 -99
  31. package/lib/rules/src/factories/sample-focus.js +0 -64
  32. package/lib/rules/src/factories/sample-series.js +0 -90
  33. package/lib/rules/src/factories/scatter-dimension.js +0 -72
  34. package/lib/rules/src/factories/scatter-focus.js +0 -77
  35. package/lib/rules/src/factories/scatter-series.js +0 -145
  36. package/lib/rules/src/factories/stacked-dimension.js +0 -42
  37. package/lib/rules/src/factories/stacked-series.js +0 -166
  38. package/lib/rules/src/factories/symbol-dimension.js +0 -69
  39. package/lib/rules/src/factories/symbol-series.js +0 -119
  40. package/lib/rules/src/factories/timeline-focus.js +0 -38
  41. package/lib/rules/src/factories/timeline-series.js +0 -121
  42. package/lib/rules/src/get-values-enhanced.js +0 -141
  43. package/lib/rules/src/header/getDefaultSubtitle.js +0 -50
  44. package/lib/rules/src/header/getHeaderUnits.js +0 -26
  45. package/lib/rules/src/header/getSubtitleFlags.js +0 -53
  46. package/lib/rules/src/header/getTitleFlags.js +0 -24
  47. package/lib/rules/src/header/index.js +0 -41
  48. package/lib/rules/src/index.js +0 -714
  49. package/lib/rules/src/layout.js +0 -98
  50. package/lib/rules/src/observation-formater.js +0 -112
  51. package/lib/rules/src/preparators/enhanceObservations.js +0 -142
  52. package/lib/rules/src/preparators/formatValue.js +0 -83
  53. package/lib/rules/src/preparators/getObservations.js +0 -27
  54. package/lib/rules/src/preparators/getReportingYearStart.js +0 -52
  55. package/lib/rules/src/properties/errors.js +0 -31
  56. package/lib/rules/src/properties/focus.js +0 -90
  57. package/lib/rules/src/properties/getAvailableChartTypes.js +0 -30
  58. package/lib/rules/src/properties/getHeaderProps.js +0 -83
  59. package/lib/rules/src/properties/getInformationsStateFromNewProps.js +0 -61
  60. package/lib/rules/src/properties/getObservationsType.js +0 -31
  61. package/lib/rules/src/properties/getStringifiedSubtitle.js +0 -18
  62. package/lib/rules/src/properties/index.js +0 -401
  63. package/lib/rules/src/properties/information.js +0 -79
  64. package/lib/rules/src/properties/linear.js +0 -158
  65. package/lib/rules/src/properties/scatter.js +0 -174
  66. package/lib/rules/src/properties/stacked.js +0 -133
  67. package/lib/rules/src/properties/symbol.js +0 -96
  68. package/lib/rules/src/properties/utils.js +0 -126
  69. package/lib/rules/src/sdmx-data/index.js +0 -55
  70. package/lib/rules/src/table/factories/getCellValue.js +0 -57
  71. package/lib/rules/src/table/index.js +0 -14
  72. package/lib/rules/src/v8-transformer.js +0 -184
  73. package/lib/rules/test/extractSdmxArtefacts.js +0 -37
  74. package/lib/rules/test/get-values-enhanced.test.js +0 -128
  75. package/lib/rules/test/oecd-HEALTH_PROT-parsed.js +0 -303
  76. package/lib/rules/test/scatter-property.js +0 -403
  77. package/lib/rules/test/stacked-property.js +0 -244
  78. package/lib/rules/test/symbol-property.js +0 -234
  79. package/lib/rules/test/v8-transformer.test.js +0 -82
  80. package/lib/rules2/src/applyHierarchicalCodesToDim.js +0 -175
  81. package/lib/rules2/src/combinedValuesDisplay.js +0 -71
  82. package/lib/rules2/src/constants.js +0 -11
  83. package/lib/rules2/src/duplicateObservations.js +0 -39
  84. package/lib/rules2/src/enhanceObservations.js +0 -103
  85. package/lib/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -39
  86. package/lib/rules2/src/getAttributesSeries.js +0 -40
  87. package/lib/rules2/src/getCombinationDefinitions.js +0 -72
  88. package/lib/rules2/src/getDataflowAttributes.js +0 -34
  89. package/lib/rules2/src/getDataflowTooltipAttributesIds.js +0 -38
  90. package/lib/rules2/src/getDimensionValuesIndexes.js +0 -19
  91. package/lib/rules2/src/getHCodelistsRefsInData.js +0 -49
  92. package/lib/rules2/src/getHeaderCombinations.js +0 -51
  93. package/lib/rules2/src/getHeaderCoordinates.js +0 -18
  94. package/lib/rules2/src/getHeaderSubtitle.js +0 -41
  95. package/lib/rules2/src/getHeaderTitle.js +0 -29
  96. package/lib/rules2/src/getMSDInformations.js +0 -43
  97. package/lib/rules2/src/getManyValuesDimensions.js +0 -39
  98. package/lib/rules2/src/getMetadataCoordinates.js +0 -40
  99. package/lib/rules2/src/getMetadataStructureFromData.js +0 -23
  100. package/lib/rules2/src/getNotDisplayedIds.js +0 -58
  101. package/lib/rules2/src/getOneValueDimensions.js +0 -48
  102. package/lib/rules2/src/getSeriesCombinations.js +0 -33
  103. package/lib/rules2/src/hasCellMetadata.js +0 -22
  104. package/lib/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +0 -65
  105. package/lib/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +0 -39
  106. package/lib/rules2/src/index.js +0 -443
  107. package/lib/rules2/src/parseAttributes.js +0 -51
  108. package/lib/rules2/src/parseCombinations.js +0 -96
  109. package/lib/rules2/src/parseHierarchicalCodelist.js +0 -57
  110. package/lib/rules2/src/parseMetadataSeries.js +0 -119
  111. package/lib/rules2/src/prepareData.js +0 -113
  112. package/lib/rules2/src/refineAttributes.js +0 -32
  113. package/lib/rules2/src/refineDimensions.js +0 -38
  114. package/lib/rules2/src/refineMetadataCoordinates.js +0 -35
  115. package/lib/rules2/src/refineTimePeriod.js +0 -154
  116. package/lib/rules2/src/sdmx3.0DataFormatPatch.js +0 -20
  117. package/lib/rules2/src/table/declineObservationsOverAttributes.js +0 -43
  118. package/lib/rules2/src/table/getCells.js +0 -90
  119. package/lib/rules2/src/table/getCellsAttributesIds.js +0 -63
  120. package/lib/rules2/src/table/getCellsMetadataCoordinates.js +0 -30
  121. package/lib/rules2/src/table/getCombinationDimensionsData.js +0 -48
  122. package/lib/rules2/src/table/getCuratedCells.js +0 -28
  123. package/lib/rules2/src/table/getFlagsAndNotes.js +0 -30
  124. package/lib/rules2/src/table/getIndexedCombinationsByDisplay.js +0 -31
  125. package/lib/rules2/src/table/getLayout.js +0 -105
  126. package/lib/rules2/src/table/getLayoutData2.js +0 -269
  127. package/lib/rules2/src/table/getSortedLayoutIndexes.js +0 -136
  128. package/lib/rules2/src/table/getTableLabelAccessor.js +0 -20
  129. package/lib/rules2/src/table/getTableLayoutIds.js +0 -365
  130. package/lib/rules2/src/table/getTableProps.js +0 -96
  131. package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +0 -124
  132. package/lib/rules2/src/table/parseValueHierarchy.js +0 -63
  133. package/lib/rules2/src/table/refineLayoutSize2.js +0 -293
  134. package/lib/rules2/src/utils.js +0 -48
  135. package/lib/viewer/mocks/bar.js +0 -21
  136. package/lib/viewer/mocks/gpp-symbol.js +0 -55
  137. package/lib/viewer/mocks/gpp-time.js +0 -1023
  138. package/lib/viewer/mocks/row.js +0 -26
  139. package/lib/viewer/mocks/scatter.js +0 -84
  140. package/lib/viewer/mocks/stack.js +0 -93
  141. package/lib/viewer/src/app/leg.js +0 -101
  142. package/lib/viewer/src/app/nodata-res.js +0 -40
  143. package/lib/viewer/src/app/nodata-sized.js +0 -41
  144. package/lib/viewer/src/app/one-table-cell.js +0 -75
  145. package/lib/viewer/src/app/table.js +0 -300
  146. package/lib/viewer/src/app/use-case-1.js +0 -60
  147. package/lib/viewer/src/app/use-case-2.js +0 -82
  148. package/lib/viewer/src/app/use-case-3.js +0 -52
  149. package/lib/viewer/src/app.js +0 -162
  150. package/lib/viewer/src/chart.js +0 -82
  151. package/lib/viewer/src/chartUtils/options.js +0 -30
  152. package/lib/viewer/src/chartUtils/series.js +0 -63
  153. package/lib/viewer/src/footer.js +0 -54
  154. package/lib/viewer/src/header.js +0 -29
  155. package/lib/viewer/src/index.js +0 -243
  156. package/lib/viewer/src/legends/AxisLegend.js +0 -84
  157. package/lib/viewer/src/legends/ChartLegends.js +0 -100
  158. package/lib/viewer/src/legends/FocusLegend.js +0 -89
  159. package/lib/viewer/src/legends/Legend.js +0 -88
  160. package/lib/viewer/src/legends/SeriesLegend.js +0 -108
  161. package/lib/viewer/src/utils.js +0 -36
@@ -1,83 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getFooterProps = exports.getHeaderProps = exports.getSourceLabel = exports.getSubtitle = exports.getTitleLabel = undefined;
7
-
8
- var _ramda = require('ramda');
9
-
10
- var R = _interopRequireWildcard(_ramda);
11
-
12
- var _header = require('../header');
13
-
14
- var _ = require('../');
15
-
16
- var _utils = require('./utils');
17
-
18
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
19
-
20
- var isCustomInvalid = function isCustomInvalid(_ref) {
21
- var type = _ref.type;
22
- return function (value) {
23
- return R.isNil(value) || !(0, _utils.isChart)(type);
24
- };
25
- };
26
-
27
- var getDataflowName = function getDataflowName(props) {
28
- var dataflow = R.propOr({}, 'dataflow', props);
29
- var display = (0, _.parseDisplay)(props.display);
30
- return (0, _.dimensionValueDisplay)(display)(dataflow);
31
- };
32
-
33
- var getTitleLabel = exports.getTitleLabel = function getTitleLabel(props, state) {
34
- return R.when(isCustomInvalid({ type: props.type }), R.always(getDataflowName(props)))(state.title);
35
- };
36
-
37
- var getSubtitle = exports.getSubtitle = function getSubtitle(props, state) {
38
- return R.ifElse(isCustomInvalid({ type: props.type }), R.always((0, _header.getDefaultSubtitle)({
39
- customAttributes: props.customAttributes,
40
- dimensions: state.dimensions,
41
- display: props.display,
42
- units: state.units
43
- })), function (label) {
44
- var flags = (0, _header.getSubtitleFlags)({
45
- customAttributes: props.customAttributes,
46
- dimensions: state.dimensions,
47
- display: props.display,
48
- units: state.units
49
- });
50
- return [{ label: label, flags: flags }];
51
- })(state.subtitle);
52
- };
53
-
54
- var getSourceLabel = exports.getSourceLabel = function getSourceLabel(props, state) {
55
- return R.when(isCustomInvalid({ type: props.type }), R.always(getDataflowName(props)))(state.sourceLabel);
56
- };
57
-
58
- var getHeaderProps = exports.getHeaderProps = function getHeaderProps(props, state) {
59
- var title = {
60
- label: getTitleLabel(props, state),
61
- flags: (0, _header.getTitleFlags)({
62
- customAttributes: props.customAttributes,
63
- dataflowAttributes: state.dataflowAttributes,
64
- display: props.display
65
- })
66
- };
67
-
68
- var subtitle = getSubtitle(props, state);
69
-
70
- var uprs = (0, _header.getHeaderUnits)({
71
- display: props.display,
72
- units: R.assoc('values', R.pathOr([], ['units', 'headerUnits'], state))(R.pathOr({}, ['units', 'unitDimension'], props))
73
- });
74
- return { subtitle: subtitle, title: title, uprs: uprs };
75
- };
76
-
77
- var getFooterProps = exports.getFooterProps = function getFooterProps(props, state) {
78
- return {
79
- withCopyright: (0, _utils.isChart)(props.type) ? state.withCopyright : true,
80
- withLogo: (0, _utils.isChart)(props.type) ? state.withLogo : true,
81
- sourceLabel: getSourceLabel(props, state)
82
- };
83
- };
@@ -1,61 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getInformationsStateFromNewProps = undefined;
7
-
8
- var _extends2 = require('babel-runtime/helpers/extends');
9
-
10
- var _extends3 = _interopRequireDefault(_extends2);
11
-
12
- var _ramda = require('ramda');
13
-
14
- var R = _interopRequireWildcard(_ramda);
15
-
16
- var _ = require('../');
17
-
18
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- var initialState = {
23
- dataflow: null,
24
- dataflowAttributes: null,
25
- dimensions: null,
26
- units: null,
27
- id: null,
28
- sourceLabel: null,
29
- subtitle: null,
30
- title: null,
31
- withCopyright: true,
32
- withLogo: true
33
- };
34
-
35
- var getInformationsStateFromNewProps = exports.getInformationsStateFromNewProps = function getInformationsStateFromNewProps(props, state) {
36
- if (R.isNil(props.data)) {
37
- return initialState;
38
- }
39
- var id = R.pipe(R.prop('data'), _.extractSdmxArtefacts, R.prop('id'))(props);
40
- if (id === state.id && props.display === state.display) {
41
- return {};
42
- }
43
-
44
- var _prepareData = (0, _.prepareData)({ data: props.data }, props.customAttributes, props.units),
45
- dataflowAttributes = _prepareData.dataflowAttributes,
46
- dataflowName = _prepareData.dataflowName,
47
- dimensions = _prepareData.dimensions,
48
- units = _prepareData.units;
49
-
50
- return (0, _extends3.default)({}, initialState, {
51
- dataflow: {
52
- id: props.dataflowId,
53
- name: dataflowName
54
- },
55
- dataflowAttributes: dataflowAttributes,
56
- dimensions: dimensions,
57
- display: props.display,
58
- id: id,
59
- units: units
60
- });
61
- };
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getObservationsType = undefined;
7
-
8
- var _ramda = require('ramda');
9
-
10
- var R = _interopRequireWildcard(_ramda);
11
-
12
- var _constants = require('../constants');
13
-
14
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15
-
16
- var getObservationsType = exports.getObservationsType = function getObservationsType(data) {
17
- if (R.isNil(data)) {
18
- return undefined;
19
- }
20
- var firstObs = R.pipe(R.pathOr({}, ['dataSets', 0, 'observations']), R.values, R.find(function (obs) {
21
- return R.not(R.either(R.isNil, R.isEmpty)(R.head(obs)));
22
- }))(data);
23
- if (R.isNil(firstObs)) {
24
- return undefined;
25
- }
26
- var firstObsValue = R.head(firstObs);
27
- if (R.is(Number, firstObsValue)) {
28
- return _constants.OBS_TYPE_NUMBER;
29
- }
30
- return R.ifElse(R.equals(NaN), R.always(_constants.OBS_TYPE_STRING), R.always(_constants.OBS_TYPE_NUMERICAL_STRING))(Number(firstObsValue));
31
- };
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.stringifySubtitle = undefined;
7
-
8
- var _ramda = require('ramda');
9
-
10
- var R = _interopRequireWildcard(_ramda);
11
-
12
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
13
-
14
- var stringifySubtitle = exports.stringifySubtitle = R.pipe(R.map(function (_ref) {
15
- var header = _ref.header,
16
- label = _ref.label;
17
- return R.isNil(header) ? label : header + ' ' + label;
18
- }), R.join(' · '));
@@ -1,401 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.toProperties = exports.onChangeProperties = exports.stateFromNewProps = exports.initialState = exports.toChartOptions = exports.getErrors = exports.toChartData = exports.toSingularity = undefined;
7
-
8
- var _extends2 = require('babel-runtime/helpers/extends');
9
-
10
- var _extends3 = _interopRequireDefault(_extends2);
11
-
12
- var _ramda = require('ramda');
13
-
14
- var R = _interopRequireWildcard(_ramda);
15
-
16
- var _dotstatsuiteSdmxjs = require('@sis-cc/dotstatsuite-sdmxjs');
17
-
18
- var _ = require('../');
19
-
20
- var _constants = require('../constants');
21
-
22
- var _focus = require('./focus');
23
-
24
- var _scatter = require('./scatter');
25
-
26
- var _symbol = require('./symbol');
27
-
28
- var _stacked = require('./stacked');
29
-
30
- var _linear = require('./linear');
31
-
32
- var _utils = require('./utils');
33
-
34
- var _getHeaderProps = require('./getHeaderProps');
35
-
36
- var _getStringifiedSubtitle = require('./getStringifiedSubtitle');
37
-
38
- var _errors = require('./errors');
39
-
40
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
41
-
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
-
44
- /*
45
- - width/height -> initial undefined, if undefined or blank, replaced by options.base
46
- */
47
-
48
- var toSingularity = exports.toSingularity = function toSingularity(_ref, state) {
49
- var data = _ref.data,
50
- type = _ref.type;
51
-
52
- switch (type) {
53
- case _constants.SCATTER:
54
- return (0, _scatter.toScatterSingularity)(state);
55
- case _constants.H_SYMBOL:case _constants.V_SYMBOL:
56
- return (0, _symbol.toSymbolSingularity)(data, state);
57
- case _constants.STACKED_BAR:case _constants.STACKED_ROW:
58
- return (0, _stacked.toStackedSingularity)(state);
59
- default:
60
- return null;
61
- }
62
- };
63
-
64
- var toChartData = exports.toChartData = function toChartData(props, state) {
65
- var dimensions = R.pathOr([], ['data', 'structure', 'dimensions', 'observation'], props);
66
- var attributes = R.pathOr([], ['data', 'structure', 'attributes', 'observation'], props);
67
- var frequency = props.type === _constants.TIMELINE ? (0, _dotstatsuiteSdmxjs.getDataFrequency)({ dimensions: dimensions, attributes: attributes }) : null;
68
- return {
69
- frequency: frequency,
70
- series: (0, _.series)(props.data, props.type, R.pick(['highlight', 'baseline'], state), toSingularity(props, state), props.map, props.display, props.formaterIds),
71
- share: {
72
- focused: R.pick(['highlight', 'baseline'], state),
73
- chartDimension: toSingularity(props, state)
74
- }
75
- };
76
- };
77
-
78
- var getErrors = exports.getErrors = function getErrors(props, state) {
79
- return {
80
- noTime: (0, _errors.getHasNoTimePeriodError)(props)
81
- };
82
- };
83
-
84
- var toFloat = function toFloat(value) {
85
- var float = parseFloat(value);
86
- return isNaN(float) ? undefined : float;
87
- };
88
-
89
- var toOption = function toOption(stateValue, optionValue) {
90
- return R.isNil(stateValue) ? optionValue : toFloat(stateValue);
91
- };
92
-
93
- var getFreqStepOption = function getFreqStepOption(props, state) {
94
- if (props.type !== _constants.TIMELINE) {
95
- return null;
96
- }
97
- var inputState = toFloat(state.freqStep);
98
- return R.isNil(inputState) ? 1 : inputState;
99
- };
100
-
101
- var toChartOptions = exports.toChartOptions = function toChartOptions(props, state) {
102
- var options = R.propOr({}, 'options', props);
103
- var base = R.propOr({}, 'base', options);
104
- var axis = R.propOr({}, 'axis', options);
105
- var axeX = R.propOr({}, 'x', axis);
106
- var axeY = R.propOr({}, 'y', axis);
107
- var linearX = R.propOr({}, 'linear', axeX);
108
- var linearY = R.propOr({}, 'linear', axeY);
109
- var tickX = R.propOr({}, 'tick', axeX);
110
- var pivotX = R.propOr({}, 'pivot', linearX);
111
- var pivotY = R.propOr({}, 'pivot', linearY);
112
- var map = R.propOr({}, 'map', props);
113
- return (0, _extends3.default)({}, options, {
114
- axis: (0, _extends3.default)({}, axis, {
115
- x: (0, _extends3.default)({}, axeX, {
116
- tick: (0, _extends3.default)({}, tickX, {
117
- step: getFreqStepOption(props, state)
118
- }),
119
- linear: (0, _extends3.default)({}, linearX, {
120
- max: toOption(state.maxX, linearX.max),
121
- min: toOption(state.minX, linearX.min),
122
- pivot: {
123
- value: toOption(state.pivotX, pivotX.value)
124
- },
125
- step: toOption(props.type === _constants.TIMELINE ? 1 : state.stepX, linearX.step)
126
- })
127
- }),
128
- y: (0, _extends3.default)({}, axeY, {
129
- linear: (0, _extends3.default)({}, linearY, {
130
- max: toOption(state.maxY, linearY.max),
131
- min: toOption(state.minY, linearY.min),
132
- pivot: {
133
- value: toOption(state.pivotY, pivotY.value)
134
- },
135
- step: toOption(state.stepY, linearY.step)
136
- })
137
- })
138
- }),
139
- map: R.pick(['projection', 'scale'], map),
140
- base: (0, _extends3.default)({}, base, {
141
- height: toOption(state.fixedHeight, base.height),
142
- width: toOption(state.fixedWidth, base.width)
143
- })
144
- });
145
- };
146
-
147
- var initialState = exports.initialState = (0, _extends3.default)({
148
- highlight: [],
149
- baseline: [],
150
- fixedWidth: undefined,
151
- fixedHeight: undefined,
152
- freqStep: undefined,
153
- responsiveWidth: undefined,
154
- responsiveHeight: undefined,
155
- scatterDimension: undefined,
156
- scatterX: undefined,
157
- scatterY: undefined,
158
- symbolDimension: undefined,
159
- stackedDimension: undefined,
160
- stackedMode: undefined,
161
- id: undefined,
162
- type: undefined
163
- }, _linear.initialState);
164
-
165
- var stateFromNewProps = exports.stateFromNewProps = function stateFromNewProps(props, state) {
166
- var focusState = (0, _focus.sampleFocusStateFromNewProps)(props, state);
167
- var scatterState = (0, _scatter.scatterStateFromNewProps)(props, state);
168
- var symbolState = (0, _symbol.symbolStateFromNewProps)(props, state);
169
- var stackedState = (0, _stacked.stackedStateFromNewProps)(props, state);
170
- var linearState = (0, _linear.linearStateFromNewProps)(props.type);
171
- return (0, _extends3.default)({}, focusState, scatterState, symbolState, stackedState, linearState, {
172
- fixedWidth: R.prop('fixedWidth', state),
173
- fixedHeight: R.prop('fixedHeight', state),
174
- responsiveWidth: R.prop('responsiveWidth', state),
175
- responsiveHeight: R.prop('responsiveHeight', state),
176
- freqStep: props.type === _constants.TIMELINE ? R.prop('freqStep', state) || '1' : undefined,
177
- type: R.prop('type', props)
178
- });
179
- };
180
-
181
- var propertiesParsers = {
182
- highlight: _focus.onChangeFocusSelection,
183
- baseline: _focus.onChangeFocusSelection,
184
- fixedWidth: function fixedWidth(value) {
185
- return (0, _utils.isNaturalInt)(value) ? value : undefined;
186
- },
187
- fixedHeight: function fixedHeight(value) {
188
- return (0, _utils.isNaturalInt)(value) ? value : undefined;
189
- },
190
- responsiveWidth: function responsiveWidth(value) {
191
- return (0, _utils.isNumber)(value) ? value : undefined;
192
- },
193
- responsiveHeight: function responsiveHeight(value) {
194
- return (0, _utils.isNumber)(value) ? value : undefined;
195
- },
196
- freqStep: function freqStep(value) {
197
- return (0, _utils.isNaturalInt)(value) ? value : undefined;
198
- },
199
- title: R.identity,
200
- subtitle: R.identity,
201
- sourceLabel: R.identity,
202
- scatterDimension: _utils.optionParser,
203
- scatterX: _utils.optionParser,
204
- scatterY: _utils.optionParser,
205
- symbolDimension: _utils.optionParser,
206
- stackedDimension: _utils.optionParser,
207
- stackedMode: _utils.optionParser,
208
- maxX: function maxX(value) {
209
- return (0, _utils.isNumber)(value) ? value : undefined;
210
- },
211
- maxY: function maxY(value) {
212
- return (0, _utils.isNumber)(value) ? value : undefined;
213
- },
214
- minX: function minX(value) {
215
- return (0, _utils.isNumber)(value) ? value : undefined;
216
- },
217
- minY: function minY(value) {
218
- return (0, _utils.isNumber)(value) ? value : undefined;
219
- },
220
- pivotX: function pivotX(value) {
221
- return (0, _utils.isNumber)(value) ? value : undefined;
222
- },
223
- pivotY: function pivotY(value) {
224
- return (0, _utils.isNumber)(value) ? value : undefined;
225
- },
226
- stepX: function stepX(value) {
227
- return (0, _utils.isNaturalInt)(value) ? value : undefined;
228
- },
229
- stepY: function stepY(value) {
230
- return (0, _utils.isNaturalInt)(value) ? value : undefined;
231
- }
232
- };
233
-
234
- var onChangeProperties = exports.onChangeProperties = function onChangeProperties(state, onChange) {
235
- return function (newProperties) {
236
- var apply = R.is(Function, onChange) ? onChange : R.identity;
237
- var refined = R.pipe(R.mapObjIndexed(function (value, key) {
238
- var _parser = R.prop(key, propertiesParsers);
239
- var parser = R.is(Function, _parser) ? _parser : R.identity;
240
- return parser(value);
241
- }), R.pickBy(function (value, key) {
242
- return value !== R.prop(key, state);
243
- }))(newProperties);
244
- if (R.isEmpty(refined)) {
245
- return;
246
- }
247
- apply(refined);
248
- };
249
- };
250
-
251
- var toProperties = exports.toProperties = function toProperties(props, state, _onChange) {
252
- return (0, _extends3.default)({}, (0, _linear.toProperties)(props, state, _onChange), {
253
- highlight: {
254
- id: 'highlight',
255
- isActive: (0, _utils.hasFocus)(props.type),
256
- onChange: R.pipe(_focus.onChangeFocusSelection, function (selection) {
257
- _onChange({ highlight: selection });
258
- }),
259
- options: (0, _focus.focusOptions)(props, state, 'baseline', toSingularity(props, state)),
260
- value: R.prop('highlight', state)
261
- },
262
- baseline: {
263
- id: 'baseline',
264
- isActive: (0, _utils.hasFocus)(props.type),
265
- onChange: R.pipe(_focus.onChangeFocusSelection, function (selection) {
266
- return _onChange({ baseline: selection });
267
- }),
268
- options: (0, _focus.focusOptions)(props, state, 'highlight', toSingularity(props, state)),
269
- value: R.prop('baseline', state)
270
- },
271
- width: {
272
- id: 'width',
273
- isActive: (0, _utils.isChart)(props.type),
274
- onChange: function onChange(value) {
275
- return _onChange({
276
- fixedWidth: (0, _utils.isNaturalInt)(value) ? value : undefined
277
- });
278
- },
279
- placeholder: R.when(R.complement(R.isNil), function (value) {
280
- return String(Math.floor(Number(value)));
281
- })(state.responsiveWidth),
282
- value: R.prop('fixedWidth', state)
283
- },
284
- height: {
285
- id: 'height',
286
- isActive: (0, _utils.isChart)(props.type),
287
- onChange: function onChange(value) {
288
- return _onChange({
289
- fixedHeight: (0, _utils.isNaturalInt)(value) ? value : undefined
290
- });
291
- },
292
- placeholder: R.when(R.complement(R.isNil), function (value) {
293
- return String(Math.floor(Number(value)));
294
- })(state.responsiveHeight)
295
- },
296
- freqStep: {
297
- id: 'freqStep',
298
- isActive: props.type === _constants.TIMELINE,
299
- onChange: function onChange(value) {
300
- return _onChange({
301
- freqStep: (0, _utils.isNaturalInt)(value) ? String(value) : undefined
302
- });
303
- },
304
- value: R.prop('freqStep', state)
305
- },
306
- title: {
307
- id: 'title',
308
- isActive: (0, _utils.isChart)(props.type),
309
- isDefault: R.isNil(state.title),
310
- onChange: function onChange(value) {
311
- return _onChange({ title: value });
312
- },
313
- value: R.isNil(state.title) || R.isEmpty(state.title) ? R.pathOr('', ['title', 'label'], props) : state.title,
314
- onReset: R.isNil(state.title) ? null : function () {
315
- return _onChange({ title: null });
316
- }
317
- },
318
- subtitle: {
319
- id: 'subtitle',
320
- isActive: (0, _utils.isChart)(props.type),
321
- isDefault: R.isNil(state.subtitle),
322
- onChange: function onChange(value) {
323
- return _onChange({ subtitle: value });
324
- },
325
- value: R.isNil(state.subtitle) || R.isEmpty(state.subtitle) ? (0, _getStringifiedSubtitle.stringifySubtitle)(props.subtitle || []) : state.subtitle,
326
- onReset: R.isNil(state.subtitle) ? null : function () {
327
- return _onChange({ subtitle: null });
328
- }
329
- },
330
- source: {
331
- id: 'source',
332
- isActive: (0, _utils.isChart)(props.type),
333
- isDefault: R.isNil(state.sourceLabel),
334
- onChange: function onChange(value) {
335
- return _onChange({ sourceLabel: value });
336
- },
337
- value: (0, _getHeaderProps.getSourceLabel)(props, state),
338
- onReset: R.isNil(state.sourceLabel) ? null : function () {
339
- return _onChange({ sourceLabel: null });
340
- }
341
- },
342
- scatterDimension: {
343
- id: 'scatterDimension',
344
- isActive: (0, _scatter.isScatter)(props.type),
345
- onChange: R.pipe(_utils.optionParser, (0, _scatter.onChangeScatterDim)(props, state), _onChange),
346
- options: (0, _utils.chartDimensionOptions)(props, _scatter.isScatter),
347
- value: (0, _utils.chartDimensionToOption)('scatterDimension')(props, state)
348
- },
349
- scatterX: {
350
- id: 'scatterX',
351
- isActive: (0, _scatter.isScatter)(props.type),
352
- onChange: R.pipe(_utils.optionParser, (0, _scatter.onChangeScatterVal)(props, state, 'scatterX', 'scatterY'), _onChange),
353
- options: (0, _scatter.scatterValueOptions)(props, state),
354
- value: (0, _scatter.scatterStateValueToOption)('scatterX', props, state)
355
- },
356
- scatterY: {
357
- id: 'scatterY',
358
- isActive: (0, _scatter.isScatter)(props.type),
359
- onChange: R.pipe(_utils.optionParser, (0, _scatter.onChangeScatterVal)(props, state, 'scatterY', 'scatterX'), _onChange),
360
- options: (0, _scatter.scatterValueOptions)(props, state),
361
- value: (0, _scatter.scatterStateValueToOption)('scatterY', props, state)
362
- },
363
- symbolDimension: {
364
- id: 'symbolDimension',
365
- isActive: (0, _symbol.isSymbol)(props.type),
366
- options: (0, _utils.chartDimensionOptions)(props, _symbol.isSymbol),
367
- onChange: R.pipe(_utils.optionParser, (0, _symbol.onChangeSymbolDim)(props), _onChange),
368
- value: (0, _utils.chartDimensionToOption)('symbolDimension')(props, state)
369
- },
370
- stackedDimension: {
371
- id: 'stackedDimension',
372
- isActive: (0, _stacked.isStackedDimActive)(props),
373
- options: (0, _utils.chartDimensionOptions)(props, _stacked.isStacked),
374
- onChange: R.pipe(_utils.optionParser, (0, _stacked.onChangeStackedDimension)(props, state), _onChange),
375
- value: (0, _utils.chartDimensionToOption)('stackedDimension')(props, state)
376
- },
377
- stackedMode: {
378
- id: 'stackedMode',
379
- isActive: (0, _stacked.isStacked)(props.type),
380
- options: _stacked.stackedModeOptions,
381
- onChange: R.pipe(_utils.optionParser, _stacked.onChangeStackedMode, _onChange),
382
- value: R.prop('stackedMode', state)
383
- },
384
- logo: {
385
- id: 'logo',
386
- isActive: (0, _utils.isChart)(props.type),
387
- checked: !state.withLogo,
388
- onChange: function onChange() {
389
- return _onChange({ withLogo: !state.withLogo });
390
- }
391
- },
392
- copyright: {
393
- id: 'copyright',
394
- isActive: (0, _utils.isChart)(props.type),
395
- checked: !state.withCopyright,
396
- onChange: function onChange() {
397
- return _onChange({ withCopyright: !state.withCopyright });
398
- }
399
- }
400
- });
401
- };
@@ -1,79 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.toHeader = exports.informationStateFromNewProps = exports.initialState = undefined;
7
-
8
- var _ramda = require('ramda');
9
-
10
- var _ = require('../');
11
-
12
- var _dimensionUtils = require('../dimension-utils');
13
-
14
- var initialState = exports.initialState = {
15
- subtitle: undefined,
16
- title: undefined,
17
- sourceLabel: undefined
18
- };
19
-
20
- var informationStateFromNewProps = exports.informationStateFromNewProps = function informationStateFromNewProps(props, state) {
21
- var _extractSdmxArtefacts = (0, _.extractSdmxArtefacts)(props.data),
22
- id = _extractSdmxArtefacts.id;
23
-
24
- if (id !== state.id) {
25
- return initialState;
26
- }
27
- return {};
28
- };
29
-
30
- var getDataflowCode = function getDataflowCode(url) {
31
- if ((0, _ramda.isNil)(url) || (0, _ramda.isEmpty)(url)) {
32
- return null;
33
- }
34
- var match = url.match(/[\w\/]+\/data\/([^\/]+)\//);
35
- if (!(0, _ramda.is)(Array, match)) {
36
- return null;
37
- }
38
- //v8 case: 'AGENCY,CODE,VERSION'
39
- var id = match[1];
40
- var splitId = (0, _ramda.split)(',', id);
41
- if ((0, _ramda.length)(splitId) === 1) {
42
- return splitId[0];
43
- }
44
- return splitId[1];
45
- };
46
-
47
- var defaultTitle = function defaultTitle(props, display) {
48
- var name = (0, _ramda.path)(['data', 'structure', 'name'], props);
49
- var code = getDataflowCode(props.sdmxUrl);
50
- return (0, _dimensionUtils.dimensionValueDisplay)(display)({ id: code, name: name });
51
- };
52
-
53
- var defaultSourceLabel = function defaultSourceLabel(props, title) {
54
- var propsLabel = (0, _ramda.path)(['source', 'label'], props);
55
- return (0, _ramda.isNil)(propsLabel) || (0, _ramda.isEmpty)(propsLabel) ? title : propsLabel;
56
- };
57
-
58
- var toHeader = exports.toHeader = function toHeader(props, state) {
59
- var display = (0, _.parseDisplay)(props.display);
60
- var stateTitle = (0, _ramda.prop)('title', state);
61
- var stateSubtitle = (0, _ramda.prop)('subtitle', state);
62
- var stateSourceLabel = (0, _ramda.prop)('sourceLabel', state);
63
- var propsSourceLink = (0, _ramda.path)(['source', 'link'], props);
64
- var title = (0, _ramda.isNil)(stateTitle) || (0, _ramda.isEmpty)(stateTitle) ? defaultTitle(props, display) : stateTitle;
65
- var subtitle = (0, _ramda.isNil)(stateSubtitle) || (0, _ramda.isEmpty)(stateSubtitle) ? (0, _.defaultSubtitle)(props.data, display) : stateSubtitle;
66
- var sourceLink = (0, _ramda.isNil)(propsSourceLink) || (0, _ramda.isEmpty)(propsSourceLink) ? props.sdmxUrl : propsSourceLink;
67
- var sourceLabel = (0, _ramda.isNil)(stateSourceLabel) || (0, _ramda.isEmpty)(stateSourceLabel) ? defaultSourceLabel(props, title) : stateSourceLabel;
68
- return {
69
- footnotes: { source: sourceLink, sourceLabel: sourceLabel },
70
- title: { label: title },
71
- subtitle: (0, _ramda.pipe)((0, _ramda.when)((0, _ramda.pipe)((0, _ramda.is)(Array), _ramda.not), _ramda.of), (0, _ramda.map)(function (entry) {
72
- return { label: entry };
73
- }))(subtitle),
74
- uprs: (0, _ramda.pipe)(_.extractSdmxArtefacts, function (_ref) {
75
- var attributes = _ref.attributes;
76
- return (0, _.uprAttributes)(attributes);
77
- }, _.uprAttributesWithOneRelevantValue, (0, _.headerUprsLabel)(display))(props.data)
78
- };
79
- };