@sis-cc/dotstatsuite-components 20.5.0 → 21.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 (165) hide show
  1. package/.gitlab-ci.yml +3 -2
  2. package/LICENSE +1 -1
  3. package/README.md +1 -17
  4. package/package.json +20 -14
  5. package/src/bridge-d3-react/src/react-chart-factory.js +1 -2
  6. package/src/rules/src/factories/sample-series.js +1 -1
  7. package/src/rules/src/index.js +14 -13
  8. package/src/rules/src/observation-formater.js +0 -1
  9. package/src/rules/src/properties/focus.js +3 -3
  10. package/src/rules/src/sdmx-data/index.js +2 -0
  11. package/src/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +5 -1
  12. package/src/rules2/src/table/getLayoutData2.js +4 -1
  13. package/src/viewer/src/index.js +4 -5
  14. package/src/viewer/src/legends/AxisLegend.js +0 -7
  15. package/src/viewer/src/legends/FocusLegend.js +2 -10
  16. package/src/viewer/src/legends/Legend.js +0 -6
  17. package/src/viewer/src/legends/SeriesLegend.js +0 -7
  18. package/test/hierarchiseDimensionWithNativeHierarchy2.test.js +59 -32
  19. package/vite.config.mjs +51 -0
  20. package/lib/app.js +0 -22
  21. package/lib/bridge-d3-react/src/app.js +0 -98
  22. package/lib/bridge-d3-react/src/index.js +0 -33
  23. package/lib/bridge-d3-react/src/mock-choro.js +0 -41
  24. package/lib/bridge-d3-react/src/react-chart-factory.js +0 -103
  25. package/lib/index.js +0 -41
  26. package/lib/rules/src/chart/getAxisOptions.js +0 -206
  27. package/lib/rules/src/chart/getBaseOptions.js +0 -51
  28. package/lib/rules/src/chart/getChartOptions.js +0 -106
  29. package/lib/rules/src/chart/getGridOptions.js +0 -21
  30. package/lib/rules/src/chart/getTooltipOptions.js +0 -84
  31. package/lib/rules/src/constants.js +0 -68
  32. package/lib/rules/src/date.js +0 -180
  33. package/lib/rules/src/dimension-utils.js +0 -67
  34. package/lib/rules/src/factories/choro-series.js +0 -99
  35. package/lib/rules/src/factories/sample-focus.js +0 -64
  36. package/lib/rules/src/factories/sample-series.js +0 -90
  37. package/lib/rules/src/factories/scatter-dimension.js +0 -72
  38. package/lib/rules/src/factories/scatter-focus.js +0 -77
  39. package/lib/rules/src/factories/scatter-series.js +0 -145
  40. package/lib/rules/src/factories/stacked-dimension.js +0 -42
  41. package/lib/rules/src/factories/stacked-series.js +0 -166
  42. package/lib/rules/src/factories/symbol-dimension.js +0 -69
  43. package/lib/rules/src/factories/symbol-series.js +0 -119
  44. package/lib/rules/src/factories/timeline-focus.js +0 -38
  45. package/lib/rules/src/factories/timeline-series.js +0 -121
  46. package/lib/rules/src/get-values-enhanced.js +0 -141
  47. package/lib/rules/src/header/getDefaultSubtitle.js +0 -50
  48. package/lib/rules/src/header/getHeaderUnits.js +0 -26
  49. package/lib/rules/src/header/getSubtitleFlags.js +0 -53
  50. package/lib/rules/src/header/getTitleFlags.js +0 -24
  51. package/lib/rules/src/header/index.js +0 -41
  52. package/lib/rules/src/index.js +0 -714
  53. package/lib/rules/src/layout.js +0 -98
  54. package/lib/rules/src/observation-formater.js +0 -112
  55. package/lib/rules/src/preparators/enhanceObservations.js +0 -142
  56. package/lib/rules/src/preparators/formatValue.js +0 -83
  57. package/lib/rules/src/preparators/getObservations.js +0 -27
  58. package/lib/rules/src/preparators/getReportingYearStart.js +0 -52
  59. package/lib/rules/src/properties/errors.js +0 -31
  60. package/lib/rules/src/properties/focus.js +0 -90
  61. package/lib/rules/src/properties/getAvailableChartTypes.js +0 -30
  62. package/lib/rules/src/properties/getHeaderProps.js +0 -83
  63. package/lib/rules/src/properties/getInformationsStateFromNewProps.js +0 -61
  64. package/lib/rules/src/properties/getObservationsType.js +0 -31
  65. package/lib/rules/src/properties/getStringifiedSubtitle.js +0 -18
  66. package/lib/rules/src/properties/index.js +0 -401
  67. package/lib/rules/src/properties/information.js +0 -79
  68. package/lib/rules/src/properties/linear.js +0 -158
  69. package/lib/rules/src/properties/scatter.js +0 -174
  70. package/lib/rules/src/properties/stacked.js +0 -133
  71. package/lib/rules/src/properties/symbol.js +0 -96
  72. package/lib/rules/src/properties/utils.js +0 -126
  73. package/lib/rules/src/sdmx-data/index.js +0 -55
  74. package/lib/rules/src/table/factories/getCellValue.js +0 -57
  75. package/lib/rules/src/table/index.js +0 -14
  76. package/lib/rules/src/v8-transformer.js +0 -184
  77. package/lib/rules/test/extractSdmxArtefacts.js +0 -37
  78. package/lib/rules/test/get-values-enhanced.test.js +0 -128
  79. package/lib/rules/test/oecd-HEALTH_PROT-parsed.js +0 -303
  80. package/lib/rules/test/scatter-property.js +0 -403
  81. package/lib/rules/test/stacked-property.js +0 -244
  82. package/lib/rules/test/symbol-property.js +0 -234
  83. package/lib/rules/test/v8-transformer.test.js +0 -82
  84. package/lib/rules2/src/applyHierarchicalCodesToDim.js +0 -175
  85. package/lib/rules2/src/combinedValuesDisplay.js +0 -71
  86. package/lib/rules2/src/constants.js +0 -11
  87. package/lib/rules2/src/duplicateObservations.js +0 -39
  88. package/lib/rules2/src/enhanceObservations.js +0 -103
  89. package/lib/rules2/src/getAdvAttrSeriesAtCoordinates.js +0 -39
  90. package/lib/rules2/src/getAttributesSeries.js +0 -40
  91. package/lib/rules2/src/getCombinationDefinitions.js +0 -72
  92. package/lib/rules2/src/getDataflowAttributes.js +0 -34
  93. package/lib/rules2/src/getDataflowTooltipAttributesIds.js +0 -38
  94. package/lib/rules2/src/getDimensionValuesIndexes.js +0 -19
  95. package/lib/rules2/src/getHCodelistsRefsInData.js +0 -49
  96. package/lib/rules2/src/getHeaderCombinations.js +0 -51
  97. package/lib/rules2/src/getHeaderCoordinates.js +0 -18
  98. package/lib/rules2/src/getHeaderSubtitle.js +0 -41
  99. package/lib/rules2/src/getHeaderTitle.js +0 -29
  100. package/lib/rules2/src/getMSDInformations.js +0 -43
  101. package/lib/rules2/src/getManyValuesDimensions.js +0 -39
  102. package/lib/rules2/src/getMetadataCoordinates.js +0 -40
  103. package/lib/rules2/src/getMetadataStructureFromData.js +0 -23
  104. package/lib/rules2/src/getNotDisplayedIds.js +0 -58
  105. package/lib/rules2/src/getOneValueDimensions.js +0 -48
  106. package/lib/rules2/src/getSeriesCombinations.js +0 -33
  107. package/lib/rules2/src/hasCellMetadata.js +0 -22
  108. package/lib/rules2/src/hierarchiseDimensionWithAdvancedHierarchy2.js +0 -65
  109. package/lib/rules2/src/hierarchiseDimensionWithNativeHierarchy2.js +0 -36
  110. package/lib/rules2/src/index.js +0 -443
  111. package/lib/rules2/src/parseAttributes.js +0 -51
  112. package/lib/rules2/src/parseCombinations.js +0 -96
  113. package/lib/rules2/src/parseHierarchicalCodelist.js +0 -57
  114. package/lib/rules2/src/parseMetadataSeries.js +0 -119
  115. package/lib/rules2/src/prepareData.js +0 -113
  116. package/lib/rules2/src/refineAttributes.js +0 -32
  117. package/lib/rules2/src/refineDimensions.js +0 -38
  118. package/lib/rules2/src/refineMetadataCoordinates.js +0 -35
  119. package/lib/rules2/src/refineTimePeriod.js +0 -154
  120. package/lib/rules2/src/sdmx3.0DataFormatPatch.js +0 -20
  121. package/lib/rules2/src/table/declineObservationsOverAttributes.js +0 -43
  122. package/lib/rules2/src/table/getCells.js +0 -90
  123. package/lib/rules2/src/table/getCellsAttributesIds.js +0 -63
  124. package/lib/rules2/src/table/getCellsMetadataCoordinates.js +0 -30
  125. package/lib/rules2/src/table/getCombinationDimensionsData.js +0 -48
  126. package/lib/rules2/src/table/getCuratedCells.js +0 -28
  127. package/lib/rules2/src/table/getFlagsAndNotes.js +0 -30
  128. package/lib/rules2/src/table/getIndexedCombinationsByDisplay.js +0 -31
  129. package/lib/rules2/src/table/getLayout.js +0 -105
  130. package/lib/rules2/src/table/getLayoutData2.js +0 -269
  131. package/lib/rules2/src/table/getSortedLayoutIndexes.js +0 -136
  132. package/lib/rules2/src/table/getTableLabelAccessor.js +0 -20
  133. package/lib/rules2/src/table/getTableLayoutIds.js +0 -365
  134. package/lib/rules2/src/table/getTableProps.js +0 -96
  135. package/lib/rules2/src/table/parseSeriesIndexesHierarchies.js +0 -124
  136. package/lib/rules2/src/table/parseValueHierarchy.js +0 -63
  137. package/lib/rules2/src/table/refineLayoutSize2.js +0 -293
  138. package/lib/rules2/src/utils.js +0 -48
  139. package/lib/viewer/mocks/bar.js +0 -21
  140. package/lib/viewer/mocks/gpp-symbol.js +0 -55
  141. package/lib/viewer/mocks/gpp-time.js +0 -1023
  142. package/lib/viewer/mocks/row.js +0 -26
  143. package/lib/viewer/mocks/scatter.js +0 -84
  144. package/lib/viewer/mocks/stack.js +0 -93
  145. package/lib/viewer/src/app/leg.js +0 -101
  146. package/lib/viewer/src/app/nodata-res.js +0 -40
  147. package/lib/viewer/src/app/nodata-sized.js +0 -41
  148. package/lib/viewer/src/app/one-table-cell.js +0 -75
  149. package/lib/viewer/src/app/table.js +0 -300
  150. package/lib/viewer/src/app/use-case-1.js +0 -60
  151. package/lib/viewer/src/app/use-case-2.js +0 -82
  152. package/lib/viewer/src/app/use-case-3.js +0 -52
  153. package/lib/viewer/src/app.js +0 -162
  154. package/lib/viewer/src/chart.js +0 -82
  155. package/lib/viewer/src/chartUtils/options.js +0 -30
  156. package/lib/viewer/src/chartUtils/series.js +0 -63
  157. package/lib/viewer/src/footer.js +0 -54
  158. package/lib/viewer/src/header.js +0 -29
  159. package/lib/viewer/src/index.js +0 -243
  160. package/lib/viewer/src/legends/AxisLegend.js +0 -84
  161. package/lib/viewer/src/legends/ChartLegends.js +0 -100
  162. package/lib/viewer/src/legends/FocusLegend.js +0 -89
  163. package/lib/viewer/src/legends/Legend.js +0 -88
  164. package/lib/viewer/src/legends/SeriesLegend.js +0 -108
  165. 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
- };