@sis-cc/dotstatsuite-components 13.5.0 → 13.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,14 +120,14 @@ var getReportedTimePeriodLabel = exports.getReportedTimePeriodLabel = function g
120
120
  };
121
121
 
122
122
  var getReportedTimePeriod = exports.getReportedTimePeriod = function getReportedTimePeriod(reportYearStart, value, freq) {
123
+ var start = new Date(R.prop('start', value));
124
+ var end = new Date(R.prop('end', value));
123
125
  if (reportYearStart.month === '01' && reportYearStart.day === '01') {
124
- return value;
126
+ return { start: start, end: end };
125
127
  }
126
- var start = new Date(R.prop('start', value));
127
128
  start = _dateFns2.default.addMinutes(start, start.getTimezoneOffset());
128
129
  start = _dateFns2.default.addMonths(start, reportYearStart.month - 1);
129
130
  start = _dateFns2.default.addDays(start, reportYearStart.day - 1);
130
- var end = void 0;
131
131
  if (freq === 'A') {
132
132
  end = _dateFns2.default.addYears(start, 1);
133
133
  }
@@ -70,14 +70,6 @@ var dataTransformer = exports.dataTransformer = function dataTransformer(dataNew
70
70
  var start = null;
71
71
  var end = null;
72
72
  if (isTimeDimension) {
73
- /*start = new Date(R.prop('start', value));
74
- start = Date.UTC(dateFns.getYear(start), dateFns.getMonth(start), dateFns.getDate(start), dateFns.getHours(start), dateFns.getMinutes(start), dateFns.getSeconds(start));
75
- start = dateFns.addMonths(start, reportYearStart.month - 1);
76
- start = dateFns.addDays(start, reportYearStart.day - 1);
77
- end = new Date(R.prop('end', value));
78
- end = Date.UTC(dateFns.getYear(end), dateFns.getMonth(end), dateFns.getDate(end), dateFns.getHours(end), dateFns.getMinutes(end), dateFns.getSeconds(end));
79
- end = dateFns.addMonths(end, reportYearStart.month - 1);
80
- end = dateFns.addDays(end, reportYearStart.day - 1);*/
81
73
  var reported = (0, _date.getReportedTimePeriod)(reportYearStart, value, options.frequency);
82
74
  start = reported.start;
83
75
  end = reported.end;
@@ -23,17 +23,19 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
 
24
24
  var getMSDInformations = exports.getMSDInformations = function getMSDInformations(msdJson) {
25
25
  var attributesDefinitions = R.pathOr([], ['data', 'metadataStructures', 0, 'metadataStructureComponents', 'reportStructures', 0, 'metadataAttributes'], msdJson);
26
+ var indexedConcepts = R.pipe(R.pathOr([], ['data', 'conceptSchemes', 0, 'concepts']), R.indexBy(R.prop('id')))(msdJson);
26
27
 
27
28
  var parseAttributes = function parseAttributes(parent) {
28
29
  return R.reduce(function (acc, attribute) {
29
30
  var id = attribute.id;
31
+ var name = R.path([id, 'name'], indexedConcepts);
30
32
  var hierarchicalId = parent === '#ROOT' ? id : parent + '.' + id;
31
33
  var format = R.path(['localRepresentation', 'textFormat', 'textType'], attribute);
32
34
  if (R.has('metadataAttributes', attribute)) {
33
35
  var collection = parseAttributes(hierarchicalId)(attribute.metadataAttributes);
34
- return (0, _extends4.default)({}, acc, collection, (0, _defineProperty3.default)({}, hierarchicalId, { format: format, parent: parent, id: id }));
36
+ return (0, _extends4.default)({}, acc, collection, (0, _defineProperty3.default)({}, hierarchicalId, { format: format, parent: parent, id: id, name: name }));
35
37
  }
36
- return R.assoc(hierarchicalId, { format: format, parent: parent, id: id }, acc);
38
+ return R.assoc(hierarchicalId, { format: format, parent: parent, id: id, name: name }, acc);
37
39
  }, {});
38
40
  };
39
41
 
@@ -16,7 +16,9 @@ var getMetadataCoordinates = exports.getMetadataCoordinates = function getMetada
16
16
  var annotations = R.pathOr([], ['data', 'structure', 'annotations'], sdmxJson);
17
17
  var metadataAvailKeys = R.pipe(R.pathOr([], ['data', 'dataSets', 0, 'dimensionGroupAttributes']), R.map(function (indexes) {
18
18
  return R.props(indexes, annotations);
19
- }), R.filter(R.find(R.propEq('type', 'HAS_METADATA'))), R.keys)(sdmxJson);
19
+ }), R.filter(R.find(function (a) {
20
+ return a && R.propEq('type', 'HAS_METADATA', a);
21
+ })), R.keys)(sdmxJson);
20
22
 
21
23
  return R.map(function (key) {
22
24
  var indexes = R.split(':', key);
@@ -94,7 +94,7 @@ var parseMetadataSeries = exports.parseMetadataSeries = function parseMetadataSe
94
94
  }
95
95
  return R.append({
96
96
  id: id,
97
- label: dimensionValueDisplay(options.display)({ id: id }),
97
+ label: dimensionValueDisplay(options.display)({ id: id, name: R.path(['attributes', id, 'name'], options) }),
98
98
  handlerProps: R.omit(['id'], R.pathOr({}, ['attributes', id], options))
99
99
  }, acc);
100
100
  }, attributes, R.keys(groupedAttrs));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-components",
3
3
  "description": "Set components based on React.",
4
- "version": "13.5.0",
4
+ "version": "13.5.3",
5
5
  "main": "lib/index.js",
6
6
  "author": "OECD",
7
7
  "license": "MIT",
@@ -58,14 +58,14 @@ export const getReportedTimePeriodLabel = (freq, _format, locale) => (reportYear
58
58
  };
59
59
 
60
60
  export const getReportedTimePeriod = (reportYearStart, value, freq) => {
61
+ let start = new Date(R.prop('start', value));
62
+ let end = new Date(R.prop('end', value));
61
63
  if(reportYearStart.month === '01' && reportYearStart.day === '01') {
62
- return value;
64
+ return ({ start, end });
63
65
  }
64
- let start = new Date(R.prop('start', value));
65
66
  start = dateFns.addMinutes(start, start.getTimezoneOffset());
66
67
  start = dateFns.addMonths(start, reportYearStart.month - 1);
67
68
  start = dateFns.addDays(start, reportYearStart.day - 1);
68
- let end;
69
69
  if (freq === 'A') {
70
70
  end = dateFns.addYears(start, 1);
71
71
  }
@@ -47,14 +47,6 @@ export const dataTransformer = (dataNew, options = {}) => {
47
47
  let start = null;
48
48
  let end = null;
49
49
  if (isTimeDimension) {
50
- /*start = new Date(R.prop('start', value));
51
- start = Date.UTC(dateFns.getYear(start), dateFns.getMonth(start), dateFns.getDate(start), dateFns.getHours(start), dateFns.getMinutes(start), dateFns.getSeconds(start));
52
- start = dateFns.addMonths(start, reportYearStart.month - 1);
53
- start = dateFns.addDays(start, reportYearStart.day - 1);
54
- end = new Date(R.prop('end', value));
55
- end = Date.UTC(dateFns.getYear(end), dateFns.getMonth(end), dateFns.getDate(end), dateFns.getHours(end), dateFns.getMinutes(end), dateFns.getSeconds(end));
56
- end = dateFns.addMonths(end, reportYearStart.month - 1);
57
- end = dateFns.addDays(end, reportYearStart.day - 1);*/
58
50
  const reported = getReportedTimePeriod(reportYearStart, value, options.frequency);
59
51
  start = reported.start;
60
52
  end = reported.end;
@@ -1,18 +1,20 @@
1
1
  import * as R from 'ramda';
2
2
 
3
- export const getMSDInformations = (msdJson) => {
3
+ export const getMSDInformations = msdJson => {
4
4
  const attributesDefinitions = R.pathOr([], ['data', 'metadataStructures', 0, 'metadataStructureComponents', 'reportStructures', 0, 'metadataAttributes'], msdJson);
5
+ const indexedConcepts = R.pipe(R.pathOr([], ['data', 'conceptSchemes', 0, 'concepts']), R.indexBy(R.prop('id')))(msdJson);
5
6
 
6
7
  const parseAttributes = (parent) => R.reduce(
7
8
  (acc, attribute) => {
8
9
  const id = attribute.id;
10
+ const name = R.path([id, 'name'], indexedConcepts);
9
11
  const hierarchicalId = parent === '#ROOT' ? id : `${parent}.${id}`;
10
12
  const format = R.path(['localRepresentation', 'textFormat', 'textType'], attribute);
11
13
  if (R.has('metadataAttributes', attribute)) {
12
14
  const collection = parseAttributes(hierarchicalId)(attribute.metadataAttributes);
13
- return ({ ...acc, ...collection, [hierarchicalId]: { format, parent, id } });
15
+ return ({ ...acc, ...collection, [hierarchicalId]: { format, parent, id, name } });
14
16
  }
15
- return R.assoc(hierarchicalId, { format, parent, id }, acc);
17
+ return R.assoc(hierarchicalId, { format, parent, id, name }, acc);
16
18
  },
17
19
  {}
18
20
  )
@@ -6,7 +6,7 @@ export const getMetadataCoordinates = (sdmxJson) => {
6
6
  const metadataAvailKeys = R.pipe(
7
7
  R.pathOr([], ['data', 'dataSets', 0, 'dimensionGroupAttributes']),
8
8
  R.map(indexes => R.props(indexes, annotations)),
9
- R.filter(R.find(R.propEq('type', 'HAS_METADATA'))),
9
+ R.filter(R.find(a => a && R.propEq('type', 'HAS_METADATA', a))),
10
10
  R.keys
11
11
  )(sdmxJson);
12
12
 
@@ -85,7 +85,7 @@ export const parseMetadataSeries = (metadataJson, options) => {
85
85
  }
86
86
  return R.append({
87
87
  id,
88
- label: dimensionValueDisplay(options.display)({ id }),
88
+ label: dimensionValueDisplay(options.display)({ id, name: R.path(['attributes', id, 'name'], options) }),
89
89
  handlerProps: R.omit(['id'], R.pathOr({}, ['attributes', id], options))
90
90
  }, acc);
91
91
  },
@@ -6,27 +6,27 @@ describe('getMSDInformations tests', () => {
6
6
  it('complete test', () => {
7
7
  const expected = {
8
8
  attributes: {
9
- STRING_TYPE: { format: 'String', parent: '#ROOT', id: 'STRING_TYPE' },
10
- STRING_MULTILANG_TYPE: { format: 'String', parent: '#ROOT', id: 'STRING_MULTILANG_TYPE' },
11
- ALPHANUMERIC_TYPE: { format: 'AlphaNumeric', parent: '#ROOT', id: 'ALPHANUMERIC_TYPE' },
12
- ALPHANUMERIC_MULTILANG_TYPE: { format: 'AlphaNumeric', parent: '#ROOT', id: 'ALPHANUMERIC_MULTILANG_TYPE' },
13
- BOOLEAN_TYPE: { format: 'Boolean', parent: '#ROOT', id: 'BOOLEAN_TYPE' },
14
- XHTML_TYPE: { format: 'XHTML', parent: '#ROOT', id: 'XHTML_TYPE' },
15
- XHTML_MULTILANG_TYPE: { format: 'XHTML', parent: '#ROOT', id: 'XHTML_MULTILANG_TYPE' },
16
- INTEGER_TYPE: { format: 'Integer', parent: '#ROOT', id: 'INTEGER_TYPE' },
17
- INTEGER_MULTILANG_TYPE: { format: 'Integer', parent: '#ROOT', id: 'INTEGER_MULTILANG_TYPE' },
18
- DECIMAL_TYPE: { format: 'Decimal', parent: '#ROOT', id: 'DECIMAL_TYPE' },
19
- DECIMAL_MULTILANG_TYPE: { format: 'Decimal', parent: '#ROOT', id: 'DECIMAL_MULTILANG_TYPE' },
20
- DATETIME_TYPE: { format: 'DateTime', parent: '#ROOT', id: 'DATETIME_TYPE' },
21
- TIME_TYPE: { format: 'Time', parent: '#ROOT', id: 'TIME_TYPE' },
22
- GREGORIANDAY_TYPE: { format: 'GregorianDay', parent: '#ROOT', id: 'GREGORIANDAY_TYPE' },
23
- GREGORIAN_YEAR_TYPE: { format: 'GregorianYear', parent: '#ROOT', id: 'GREGORIAN_YEAR_TYPE' },
24
- GREGORIAN_YEARMONTH_TYPE: { format: 'GregorianYearMonth', parent: '#ROOT', id: 'GREGORIAN_YEARMONTH_TYPE' },
25
- CONTACT: { format: 'String', parent: '#ROOT', id: 'CONTACT' },
26
- 'CONTACT.CONTACT_NAME': { format: 'String', parent: 'CONTACT', id: 'CONTACT_NAME' },
27
- 'CONTACT.CONTACT_EMAIL': { format: 'String', parent: 'CONTACT', id: 'CONTACT_EMAIL' },
28
- 'CONTACT.CONTACT_PHONE': { format: 'Numeric', parent: 'CONTACT', id: 'CONTACT_PHONE' },
29
- 'CONTACT.CONTACT_ORGANISATION': { format: 'String', parent: 'CONTACT', id: 'CONTACT_ORGANISATION' }
9
+ STRING_TYPE: { format: 'String', parent: '#ROOT', id: 'STRING_TYPE', name: 'STRING_TYPE en' },
10
+ STRING_MULTILANG_TYPE: { format: 'String', parent: '#ROOT', id: 'STRING_MULTILANG_TYPE', name: [undefined] },
11
+ ALPHANUMERIC_TYPE: { format: 'AlphaNumeric', parent: '#ROOT', id: 'ALPHANUMERIC_TYPE', name: [undefined] },
12
+ ALPHANUMERIC_MULTILANG_TYPE: { format: 'AlphaNumeric', parent: '#ROOT', id: 'ALPHANUMERIC_MULTILANG_TYPE', name: [undefined] },
13
+ BOOLEAN_TYPE: { format: 'Boolean', parent: '#ROOT', id: 'BOOLEAN_TYPE', name: [undefined] },
14
+ XHTML_TYPE: { format: 'XHTML', parent: '#ROOT', id: 'XHTML_TYPE', name: [undefined] },
15
+ XHTML_MULTILANG_TYPE: { format: 'XHTML', parent: '#ROOT', id: 'XHTML_MULTILANG_TYPE', name: [undefined] },
16
+ INTEGER_TYPE: { format: 'Integer', parent: '#ROOT', id: 'INTEGER_TYPE', name: [undefined] },
17
+ INTEGER_MULTILANG_TYPE: { format: 'Integer', parent: '#ROOT', id: 'INTEGER_MULTILANG_TYPE', name: [undefined] },
18
+ DECIMAL_TYPE: { format: 'Decimal', parent: '#ROOT', id: 'DECIMAL_TYPE', name: [undefined] },
19
+ DECIMAL_MULTILANG_TYPE: { format: 'Decimal', parent: '#ROOT', id: 'DECIMAL_MULTILANG_TYPE', name: [undefined] },
20
+ DATETIME_TYPE: { format: 'DateTime', parent: '#ROOT', id: 'DATETIME_TYPE', name: [undefined] },
21
+ TIME_TYPE: { format: 'Time', parent: '#ROOT', id: 'TIME_TYPE', name: [undefined] },
22
+ GREGORIANDAY_TYPE: { format: 'GregorianDay', parent: '#ROOT', id: 'GREGORIANDAY_TYPE', name: [undefined] },
23
+ GREGORIAN_YEAR_TYPE: { format: 'GregorianYear', parent: '#ROOT', id: 'GREGORIAN_YEAR_TYPE', name: [undefined] },
24
+ GREGORIAN_YEARMONTH_TYPE: { format: 'GregorianYearMonth', parent: '#ROOT', id: 'GREGORIAN_YEARMONTH_TYPE', name: [undefined] },
25
+ CONTACT: { format: 'String', parent: '#ROOT', id: 'CONTACT', name: [undefined] },
26
+ 'CONTACT.CONTACT_NAME': { format: 'String', parent: 'CONTACT', id: 'CONTACT_NAME', name: [undefined] },
27
+ 'CONTACT.CONTACT_EMAIL': { format: 'String', parent: 'CONTACT', id: 'CONTACT_EMAIL', name: [undefined] },
28
+ 'CONTACT.CONTACT_PHONE': { format: 'Numeric', parent: 'CONTACT', id: 'CONTACT_PHONE', name: [undefined] },
29
+ 'CONTACT.CONTACT_ORGANISATION': { format: 'String', parent: 'CONTACT', id: 'CONTACT_ORGANISATION', name: [undefined] }
30
30
  }
31
31
  };
32
32
 
@@ -1,5 +1,11 @@
1
1
  {
2
2
  "data": {
3
+ "conceptSchemes": [{
4
+ "concepts": [{
5
+ "id": "STRING_TYPE",
6
+ "name": "STRING_TYPE en"
7
+ }]
8
+ }],
3
9
  "metadataStructures": [
4
10
  {
5
11
  "id": "MSD_TEST",
@@ -19,12 +19,12 @@ const dimensions = [
19
19
  ];
20
20
 
21
21
  const attributes = {
22
- DIRECT_SOURCE: { id: 'DIRECT_SOURCE', prop: 'test', parent: '#ROOT' },
23
- KEY_STATISTICAL_CONCEPT: { id: 'KEY_STATISTICAL_CONCEPT', parent: '#ROOT' },
24
- UNIT_OF_MEASURE_USED: { id: 'UNIT_OF_MEASURE_USED', parent: '#ROOT' },
25
- POWER_CODE: { id: 'POWER_CODE', parent: '#ROOT' },
26
- POREFERENCE_PERIODWER_CODE: { id: 'POREFERENCE_PERIODWER_CODE', parent: '#ROOT' },
27
- RANDOM: { prop: 'invalid' }
22
+ DIRECT_SOURCE: { id: 'DIRECT_SOURCE', prop: 'test', parent: '#ROOT', name: 'DIRECT_SOURCE' },
23
+ KEY_STATISTICAL_CONCEPT: { id: 'KEY_STATISTICAL_CONCEPT', parent: '#ROOT', name: 'KEY_STATISTICAL_CONCEPT' },
24
+ UNIT_OF_MEASURE_USED: { id: 'UNIT_OF_MEASURE_USED', parent: '#ROOT', name: 'UNIT_OF_MEASURE_USED' },
25
+ POWER_CODE: { id: 'POWER_CODE', parent: '#ROOT', name: 'POWER_CODE' },
26
+ POREFERENCE_PERIODWER_CODE: { id: 'POREFERENCE_PERIODWER_CODE', parent: '#ROOT', name: 'POREFERENCE_PERIODWER_CODE' },
27
+ RANDOM: { prop: 'invalid', name: 'RANDOM' }
28
28
  }
29
29
 
30
30
  describe('parseMetadataSeries test', () => {
@@ -35,13 +35,13 @@ describe('parseMetadataSeries test', () => {
35
35
  id: 'DIRECT_SOURCE',
36
36
  label: 'DIRECT_SOURCE: Direct source',
37
37
  value: "Reply to the National Accounts Questionnaire from the Australian Bureau of Statistics, Canberra. The official estimates are published in 'Australian system of national accounts', ABS, catalogue 5204.0.",
38
- handlerProps: { prop: 'test', parent: '#ROOT' }
38
+ handlerProps: { prop: 'test', parent: '#ROOT', name: 'DIRECT_SOURCE' },
39
39
  },
40
40
  {
41
41
  id: 'KEY_STATISTICAL_CONCEPT',
42
42
  label: 'KEY_STATISTICAL_CONCEPT: Key statistical concept',
43
43
  value: "As from December 2009, national accounts estimates are compiled according to the 2008 SNA ('System of National Accounts 2008', Commission of the European Communities-Eurostat, International Monetary Fund, Organisation for Economic Co-operation and Development, United Nations and World Bank, 2009).<br><br>Detailed information about the implementation of the 2008 SNA in Australian national accounts could be found in ABS website: <br><br><a href=\"http://www.abs.gov.au/ausstats/abs@.nsf/mf/5310.0.55.002\">ABS website</a><br><br>All the data refer to fiscal years beginning on the 1st July of the year indicated.<br><br>The financial intermediation services indirectly measured (FISIM) are allocated to industries and institutional sectors. <br><br>Original chain constant price estimates for main aggregates are referenced to fiscal year 2019-2020.",
44
- handlerProps: { parent: '#ROOT' }
44
+ handlerProps: { parent: '#ROOT', name: 'KEY_STATISTICAL_CONCEPT' },
45
45
  }
46
46
  ],
47
47
  '0::0:': [
@@ -49,33 +49,33 @@ describe('parseMetadataSeries test', () => {
49
49
  id: 'UNIT_OF_MEASURE_USED',
50
50
  label: 'UNIT_OF_MEASURE_USED: Unit of measure used',
51
51
  value: 'Australian Dollar',
52
- handlerProps: { parent: '#ROOT' }
52
+ handlerProps: { parent: '#ROOT', name: 'UNIT_OF_MEASURE_USED' },
53
53
  },
54
54
  {
55
55
  id: 'POWER_CODE',
56
56
  label: 'POWER_CODE: Power code',
57
57
  value: 6,
58
- handlerProps: { parent: '#ROOT' }
58
+ handlerProps: { parent: '#ROOT', name: 'POWER_CODE' },
59
59
  },
60
60
  {
61
61
  id: 'POREFERENCE_PERIODWER_CODE',
62
62
  label: 'POREFERENCE_PERIODWER_CODE: Reference period',
63
63
  value: '2019',
64
- handlerProps: { parent: '#ROOT' }
64
+ handlerProps: { parent: '#ROOT', name: 'POREFERENCE_PERIODWER_CODE' },
65
65
  }
66
66
  ]
67
67
  });
68
68
  });
69
69
  it('hierarchy test', () => {
70
70
  const attributes = {
71
- ROOT1: { id: 'ROOT1', parent: '#ROOT' },
72
- ROOT2: { id: 'ROOT2', parent: '#ROOT' },
73
- PARENT1: { id: 'PARENT1', parent: '#ROOT' },
74
- 'PARENT1.CHILD1': { id: 'CHILD1', parent: 'PARENT1' },
75
- 'PARENT1.CHILD2': { id: 'CHILD2', parent: 'PARENT1' },
76
- PARENT2: { id: 'PARENT1', parent: '#ROOT' },
77
- 'PARENT2.CHILD3': { id: 'CHILD3', parent: 'PARENT2' },
78
- 'PARENT2.CHILD4': { id: 'CHILD4', parent: 'PARENT2' },
71
+ ROOT1: { id: 'ROOT1', parent: '#ROOT', name: 'ROOT1' },
72
+ ROOT2: { id: 'ROOT2', parent: '#ROOT', name: 'ROOT2' },
73
+ PARENT1: { id: 'PARENT1', parent: '#ROOT', name: 'PARENT1' },
74
+ 'PARENT1.CHILD1': { id: 'CHILD1', parent: 'PARENT1', name: 'CHILD1' },
75
+ 'PARENT1.CHILD2': { id: 'CHILD2', parent: 'PARENT1', name: 'CHILD2' },
76
+ PARENT2: { id: 'PARENT1', parent: '#ROOT', name: 'PARENT2' },
77
+ 'PARENT2.CHILD3': { id: 'CHILD3', parent: 'PARENT2', name: 'CHILD3' },
78
+ 'PARENT2.CHILD4': { id: 'CHILD4', parent: 'PARENT2', name: 'CHILD4' },
79
79
  };
80
80
  const metadata = {
81
81
  data: {
@@ -102,24 +102,24 @@ describe('parseMetadataSeries test', () => {
102
102
 
103
103
  expect(parseMetadataSeries(metadata, { display: 'name', locale: 'en', dimensions: [], attributes })).to.deep.equal({
104
104
  '::': [
105
- { id: 'ROOT1', label: 'Root 1', value: 'v', handlerProps: { parent: '#ROOT' } },
106
- { id: 'ROOT2', label: 'Root 2', value: 'v', handlerProps: { parent: '#ROOT' } },
105
+ { id: 'ROOT1', label: 'Root 1', value: 'v', handlerProps: { parent: '#ROOT', name: 'ROOT1' } },
106
+ { id: 'ROOT2', label: 'Root 2', value: 'v', handlerProps: { parent: '#ROOT', name: 'ROOT2' } },
107
107
  {
108
108
  id: 'PARENT1',
109
109
  label: 'Parent 1',
110
- handlerProps: { parent: '#ROOT' },
110
+ handlerProps: { parent: '#ROOT', name: 'PARENT1' },
111
111
  children: [
112
- { id: 'PARENT1.CHILD1', label: 'Child 1', value: 'v', handlerProps: { parent: 'PARENT1' } },
113
- { id: 'PARENT1.CHILD2', label: 'Child 2', value: 'v', handlerProps: { parent: 'PARENT1' } },
112
+ { id: 'PARENT1.CHILD1', label: 'Child 1', value: 'v', handlerProps: { parent: 'PARENT1', name: 'CHILD1' } },
113
+ { id: 'PARENT1.CHILD2', label: 'Child 2', value: 'v', handlerProps: { parent: 'PARENT1', name: 'CHILD2' } },
114
114
  ]
115
115
  },
116
116
  {
117
117
  id: 'PARENT2',
118
- label: '[PARENT2]',
119
- handlerProps: { parent: '#ROOT' },
118
+ label: 'PARENT2',
119
+ handlerProps: { parent: '#ROOT', name: 'PARENT2' },
120
120
  children: [
121
- { id: 'PARENT2.CHILD3', label: 'Child 3', value: 'v', handlerProps: { parent: 'PARENT2' } },
122
- { id: 'PARENT2.CHILD4', label: 'Child 4', value: 'v', handlerProps: { parent: 'PARENT2' } },
121
+ { id: 'PARENT2.CHILD3', label: 'Child 3', value: 'v', handlerProps: { parent: 'PARENT2', name: 'CHILD3' } },
122
+ { id: 'PARENT2.CHILD4', label: 'Child 4', value: 'v', handlerProps: { parent: 'PARENT2', name: 'CHILD4' } },
123
123
  ]
124
124
  }
125
125
  ]