@dbmx/toasts 0.0.103 → 0.0.108

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 (54) hide show
  1. package/cjs/components/SdmxDatagrid/utils/index.cjs +7 -9
  2. package/cjs/fake-ZW05emqw.js +35 -0
  3. package/cjs/fake-ZW05emqw.js.map +1 -0
  4. package/cjs/index-IlPWvcP8.js +257 -0
  5. package/cjs/{index-KfYx_fhj.js → index-QtOGpOOi.js} +16 -16
  6. package/cjs/index.cjs +1 -1
  7. package/cjs/index.cjs.map +1 -0
  8. package/esm/fake-JHdVf8lQ.js +14 -0
  9. package/esm/fake-JHdVf8lQ.js.map +1 -0
  10. package/esm/index-kSxvArVu.js +258 -0
  11. package/esm/index-kSxvArVu.js.map +1 -0
  12. package/esm/index-lo-MKsEb.js +556 -0
  13. package/esm/index-lo-MKsEb.js.map +1 -0
  14. package/esm/{index-yhLCk6qZ.js → index-qfIAtqZ-.js} +3 -3
  15. package/esm/{index-yhLCk6qZ.js.map → index-qfIAtqZ-.js.map} +1 -1
  16. package/esm/index.js +1 -1
  17. package/package.json +3 -3
  18. package/rollup_stats/sunburst_stats.html +1 -3
  19. package/rollup_stats/treemap_stats.html +1 -1
  20. package/yarn-error.log +7136 -0
  21. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/concat.cjs +0 -69
  22. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/equals.cjs +0 -42
  23. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/filter.cjs +0 -63
  24. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_arrayFromIterator.cjs +0 -13
  25. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_complement.cjs +0 -10
  26. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_equals.cjs +0 -143
  27. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_filter.cjs +0 -17
  28. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_functionName.cjs +0 -10
  29. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_includes.cjs +0 -11
  30. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_includesWith.cjs +0 -16
  31. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_indexOf.cjs +0 -61
  32. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isFunction.cjs +0 -9
  33. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isObject.cjs +0 -8
  34. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_objectIs.cjs +0 -18
  35. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_quote.cjs +0 -10
  36. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_toISOString.cjs +0 -17
  37. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_toString.cjs +0 -62
  38. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xfilter.cjs +0 -26
  39. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/reject.cjs +0 -43
  40. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/times.cjs +0 -49
  41. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/toString.cjs +0 -53
  42. package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/type.cjs +0 -41
  43. package/esm/index-FCPRKLj2.js +0 -720
  44. package/esm/index-FCPRKLj2.js.map +0 -1
  45. package/esm/index-Mh78z9aW.js +0 -562
  46. package/esm/index-Mh78z9aW.js.map +0 -1
  47. package/esm/index-T2bcfyHI.js +0 -8510
  48. package/esm/index-T2bcfyHI.js.map +0 -1
  49. package/esm/index-W7MLRHBf.js +0 -87
  50. package/esm/index-W7MLRHBf.js.map +0 -1
  51. package/esm/index-gBe37Ynf.js +0 -8438
  52. package/esm/index-gBe37Ynf.js.map +0 -1
  53. package/esm/index-ndYjFD6I.js +0 -8438
  54. package/esm/index-ndYjFD6I.js.map +0 -1
@@ -0,0 +1,556 @@
1
+ import { _ as _asyncToGenerator, a as _objectSpread2, b as _defineProperty, c as _regeneratorRuntime, d as _createForOfIteratorHelper, e as _slicedToArray, f as _toConsumableArray, g as _inherits, h as _createSuper, i as _createClass, j as _classCallCheck, k as _assertThisInitialized, l as createRoot, m as _wrapNativeSuper } from './client-gw8asYiR.js';
2
+ import React, { useMemo, useState, useEffect, useReducer } from 'react';
3
+ import { defineMessages, useIntl, IntlProvider } from 'react-intl';
4
+ import { createStyles, Box, Loader, rem, Text, createEmotionCache, MantineProvider } from '@mantine/core';
5
+ import PropTypes from 'prop-types';
6
+ import { IconAlertCircleFilled, IconThumbDown } from '@tabler/icons-react';
7
+ import { getObservations } from '@dbmx/sdmx/cjs/data';
8
+ import { MantineReactTable, MRT_ShowHideColumnsButton, MRT_ToggleFullScreenButton } from 'mantine-react-table';
9
+ import { ID, urn2FullRef, resolveResourceFromStructure, getComponents, dataQueryUrl, getRef } from '@dbmx/sdmx';
10
+ import urljoin from 'url-join';
11
+ import 'react-dom';
12
+
13
+ var messages = defineMessages({
14
+ urlIsRequired: {
15
+ id: 'components.SdmxComponent.urlIsRequired',
16
+ defaultMessage: 'URL Is Required!'
17
+ },
18
+ noData: {
19
+ id: 'components.SdmxComponent.noData',
20
+ defaultMessage: 'No Data Available!'
21
+ },
22
+ dimension: {
23
+ id: 'components.SdmxComponent.dimension',
24
+ defaultMessage: 'Dimension'
25
+ },
26
+ timeDimension: {
27
+ id: 'components.SdmxComponent.timeDimension',
28
+ defaultMessage: 'Time Dimension'
29
+ },
30
+ measure: {
31
+ id: 'components.SdmxComponent.measure',
32
+ defaultMessage: 'Measure'
33
+ },
34
+ invalidComProps: {
35
+ id: 'components.SdmxComponent.invalidComProps',
36
+ defaultMessage: 'Invalid component props!'
37
+ }
38
+ });
39
+
40
+ var useStyles$1 = createStyles(function () {
41
+ return {
42
+ loadingContainer: {
43
+ width: '100%',
44
+ height: '100%',
45
+ display: 'flex',
46
+ justifyContent: 'center',
47
+ alignItems: 'center'
48
+ }
49
+ };
50
+ });
51
+ var LoadingBox = function LoadingBox() {
52
+ var _useStyles = useStyles$1(),
53
+ classes = _useStyles.classes;
54
+ return /*#__PURE__*/React.createElement(Box, {
55
+ className: classes.loadingContainer
56
+ }, /*#__PURE__*/React.createElement(Loader, {
57
+ color: "blue",
58
+ size: "lg"
59
+ }));
60
+ };
61
+
62
+ function sortByKey(array, key) {
63
+ return array.sort(function (a, b) {
64
+ var x = a[key];
65
+ var y = b[key];
66
+ return x < y ? -1 : x > y ? 1 : 0;
67
+ });
68
+ }
69
+ var getStructure = /*#__PURE__*/function () {
70
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(url) {
71
+ var headers,
72
+ response,
73
+ data,
74
+ responseHeaders,
75
+ _iterator,
76
+ _step,
77
+ pair,
78
+ _args = arguments;
79
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
80
+ while (1) switch (_context.prev = _context.next) {
81
+ case 0:
82
+ headers = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
83
+ _context.next = 3;
84
+ return fetch(url, {
85
+ method: 'GET',
86
+ headers: _objectSpread2({
87
+ 'Content-Type': 'application/json'
88
+ }, headers)
89
+ });
90
+ case 3:
91
+ response = _context.sent;
92
+ _context.next = 6;
93
+ return response.json();
94
+ case 6:
95
+ data = _context.sent;
96
+ responseHeaders = {};
97
+ _iterator = _createForOfIteratorHelper(response.headers.entries());
98
+ try {
99
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
100
+ pair = _step.value;
101
+ responseHeaders[pair[0]] = pair[1];
102
+ }
103
+ } catch (err) {
104
+ _iterator.e(err);
105
+ } finally {
106
+ _iterator.f();
107
+ }
108
+ return _context.abrupt("return", {
109
+ data: data,
110
+ responseHeaders: responseHeaders
111
+ });
112
+ case 11:
113
+ case "end":
114
+ return _context.stop();
115
+ }
116
+ }, _callee);
117
+ }));
118
+ return function getStructure(_x) {
119
+ return _ref.apply(this, arguments);
120
+ };
121
+ }();
122
+ var getDataStructure = function getDataStructure(dataflow, structure) {
123
+ if (!(dataflow !== null && dataflow !== void 0 && dataflow.structure)) throw new Error("Cannot get dataStructure from dataflow ".concat(ID(dataflow)));
124
+ var dsRef = urn2FullRef(dataflow.structure);
125
+ return resolveResourceFromStructure(structure, dataflow, dsRef, {
126
+ noError: true
127
+ });
128
+ };
129
+ var getColumns = function getColumns() {
130
+ var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
131
+ var comps = Object.values(components);
132
+ var dimensions = comps.filter(function (comp) {
133
+ return comp.type === 'dimension';
134
+ });
135
+ var timeDimension = comps.filter(function (comp) {
136
+ return comp.type === 'timeDimension';
137
+ })[0];
138
+ var measures = comps.filter(function (comp) {
139
+ return comp.type === 'measure';
140
+ });
141
+ var sortedDimensions = sortByKey(dimensions, 'position');
142
+ var sortedMesures = sortByKey(measures, 'id');
143
+ return {
144
+ dimensions: sortedDimensions,
145
+ timeDimension: timeDimension,
146
+ measures: sortedMesures
147
+ };
148
+ };
149
+ var getSelectedComponents = function getSelectedComponents(resource) {
150
+ var components = getComponents(resource);
151
+ return components.reduce(function (acc, component) {
152
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty({}, component.id, component));
153
+ }, {});
154
+ };
155
+ var getData = /*#__PURE__*/function () {
156
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(dataflow, endpoint) {
157
+ var range,
158
+ dataUrl,
159
+ min,
160
+ max,
161
+ _args2 = arguments;
162
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
163
+ while (1) switch (_context2.prev = _context2.next) {
164
+ case 0:
165
+ range = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {
166
+ min: 1,
167
+ max: 100
168
+ };
169
+ dataUrl = dataQueryUrl(_objectSpread2(_objectSpread2({
170
+ context: 'dataflow'
171
+ }, getRef(dataflow)), {}, {
172
+ endpoint: endpoint
173
+ }));
174
+ min = range.min, max = range.max;
175
+ return _context2.abrupt("return", getStructure(dataUrl, {
176
+ 'x-Range': "values=".concat(min, "-").concat(max)
177
+ }));
178
+ case 4:
179
+ case "end":
180
+ return _context2.stop();
181
+ }
182
+ }, _callee2);
183
+ }));
184
+ return function getData(_x2, _x3) {
185
+ return _ref2.apply(this, arguments);
186
+ };
187
+ }();
188
+ var getCellValue = function getCellValue(cell) {
189
+ var cellValue = cell.getValue();
190
+ return (cellValue === null || cellValue === void 0 ? void 0 : cellValue.name) || (cellValue === null || cellValue === void 0 ? void 0 : cellValue.id) || (cellValue === null || cellValue === void 0 ? void 0 : cellValue.value);
191
+ };
192
+ var getSdmxUrl = function getSdmxUrl(_ref3) {
193
+ var endpoint = _ref3.endpoint,
194
+ resourceType = _ref3.resourceType,
195
+ _ref3$agencyID = _ref3.agencyID,
196
+ agencyID = _ref3$agencyID === void 0 ? '*' : _ref3$agencyID,
197
+ _ref3$id = _ref3.id,
198
+ id = _ref3$id === void 0 ? '*' : _ref3$id,
199
+ _ref3$version = _ref3.version,
200
+ version = _ref3$version === void 0 ? '~' : _ref3$version;
201
+ if (!endpoint || !resourceType) throw new Error('endpoint & resourceType are required');
202
+ var url = urljoin(endpoint, 'structure', resourceType, agencyID, id, version, '?detail=full&references=all');
203
+ return url;
204
+ };
205
+ var getRange = function getRange(pagination) {
206
+ var pageIndex = pagination.pageIndex,
207
+ pageSize = pagination.pageSize;
208
+ var min = pageSize * pageIndex;
209
+ var max = pageSize * pageIndex + pageSize - 1;
210
+ return {
211
+ min: min,
212
+ max: max
213
+ };
214
+ };
215
+ var getObservationsCount = function getObservationsCount(responseHeaders) {
216
+ var contentRange = responseHeaders['content-range'];
217
+ return parseInt(contentRange.split('/')[1]);
218
+ };
219
+
220
+ var SDMXGrid = function SDMXGrid(_ref) {
221
+ var dataStructure = _ref.dataStructure,
222
+ data = _ref.data,
223
+ pagination = _ref.pagination,
224
+ onPaginationChange = _ref.onPaginationChange,
225
+ observationCount = _ref.observationCount,
226
+ isLoading = _ref.isLoading;
227
+ if (!data) return /*#__PURE__*/React.createElement(LoadingBox, null);
228
+ var intl = useIntl();
229
+ var components = useMemo(function () {
230
+ return getSelectedComponents(dataStructure);
231
+ }, [dataStructure]);
232
+ var columns = useMemo(function () {
233
+ var _getColumns = getColumns(components),
234
+ dimensions = _getColumns.dimensions,
235
+ timeDimension = _getColumns.timeDimension,
236
+ measures = _getColumns.measures;
237
+ return [{
238
+ accessorKey: 'dimension',
239
+ header: intl.formatMessage(messages.dimension),
240
+ columns: dimensions.map(function (col) {
241
+ return {
242
+ accessorKey: col.id,
243
+ header: col.id || col.name,
244
+ Cell: function Cell(_ref2) {
245
+ var cell = _ref2.cell;
246
+ return getCellValue(cell);
247
+ }
248
+ };
249
+ })
250
+ }, {
251
+ accessorKey: 'timeDimension',
252
+ header: intl.formatMessage(messages.timeDimension),
253
+ columns: [{
254
+ accessorKey: timeDimension.id,
255
+ header: timeDimension.id || timeDimension.name,
256
+ Cell: function Cell(_ref3) {
257
+ var cell = _ref3.cell;
258
+ return getCellValue(cell);
259
+ }
260
+ }]
261
+ }, {
262
+ accessorKey: 'measure',
263
+ header: intl.formatMessage(messages.measure),
264
+ columns: measures.map(function (col) {
265
+ return {
266
+ accessorKey: col.id,
267
+ header: col.id || col.name,
268
+ Cell: function Cell(_ref4) {
269
+ var cell = _ref4.cell;
270
+ return getCellValue(cell);
271
+ }
272
+ };
273
+ })
274
+ }];
275
+ }, [components]);
276
+ return /*#__PURE__*/React.createElement(MantineReactTable, {
277
+ data: data,
278
+ columns: columns,
279
+ initialState: {
280
+ density: 'xs'
281
+ },
282
+ mantineTableProps: {
283
+ striped: true
284
+ },
285
+ enableStickyHeader: true,
286
+ enableColumnFilterModes: false,
287
+ enableColumnActions: false,
288
+ enableSorting: false,
289
+ enablePinning: true,
290
+ manualPagination: true,
291
+ rowCount: observationCount,
292
+ onPaginationChange: onPaginationChange,
293
+ state: {
294
+ pagination: pagination,
295
+ isLoading: isLoading
296
+ },
297
+ mantinePaginationProps: {
298
+ rowsPerPageOptions: ['100', '500', '1000', '2000'],
299
+ withEdges: true
300
+ },
301
+ renderToolbarInternalActions: function renderToolbarInternalActions(_ref5) {
302
+ var table = _ref5.table;
303
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MRT_ShowHideColumnsButton, {
304
+ table: table
305
+ }), /*#__PURE__*/React.createElement(MRT_ToggleFullScreenButton, {
306
+ table: table
307
+ }));
308
+ },
309
+ mantineTableContainerProps: {
310
+ sx: {
311
+ height: 'calc(100% - 110px)'
312
+ }
313
+ },
314
+ mantinePaperProps: {
315
+ sx: {
316
+ height: '100%'
317
+ }
318
+ }
319
+ });
320
+ };
321
+ SDMXGrid.propTypes = {
322
+ dataStructure: PropTypes.object,
323
+ data: PropTypes.array,
324
+ pagination: PropTypes.object.isRequired,
325
+ onPaginationChange: PropTypes.func.isRequired,
326
+ observationCount: PropTypes.number.isRequired,
327
+ isLoading: PropTypes.bool.isRequired
328
+ };
329
+
330
+ var useStyles = createStyles(function (theme) {
331
+ return {
332
+ wrongContainer: {
333
+ width: '100%',
334
+ height: '100%',
335
+ display: 'flex',
336
+ flexDirection: 'column',
337
+ justifyContent: 'center',
338
+ alignItems: 'center',
339
+ backgroundColor: theme.colors.gray[0]
340
+ },
341
+ alertIcon: {
342
+ width: rem(80),
343
+ height: rem(80),
344
+ color: theme.colors.gray[4]
345
+ },
346
+ alertMsg: {
347
+ marginTop: theme.spacing.sm,
348
+ color: theme.colors.gray[6]
349
+ }
350
+ };
351
+ });
352
+ var SdmxDatagrid = function SdmxDatagrid(_ref) {
353
+ var endpoint = _ref.endpoint,
354
+ resourceType = _ref.resourceType,
355
+ agencyID = _ref.agencyID,
356
+ id = _ref.id,
357
+ version = _ref.version;
358
+ var _useStyles = useStyles(),
359
+ classes = _useStyles.classes;
360
+ var intl = useIntl();
361
+ var _useState = useState(false),
362
+ _useState2 = _slicedToArray(_useState, 2),
363
+ isLoading = _useState2[0],
364
+ setIsLoading = _useState2[1];
365
+ var _useState3 = useState(false),
366
+ _useState4 = _slicedToArray(_useState3, 2),
367
+ isError = _useState4[0],
368
+ setIsError = _useState4[1];
369
+ var _useState5 = useState(),
370
+ _useState6 = _slicedToArray(_useState5, 2),
371
+ dataflow = _useState6[0],
372
+ setDataflow = _useState6[1];
373
+ var _useState7 = useState(),
374
+ _useState8 = _slicedToArray(_useState7, 2),
375
+ dataStructure = _useState8[0],
376
+ setDataStructure = _useState8[1];
377
+ var _useState9 = useState(),
378
+ _useState10 = _slicedToArray(_useState9, 2),
379
+ data = _useState10[0],
380
+ setData = _useState10[1];
381
+ var url = useMemo(function () {
382
+ if (!endpoint || !resourceType || !agencyID || !id || !version) return null;else return getSdmxUrl({
383
+ endpoint: endpoint,
384
+ resourceType: resourceType,
385
+ agencyID: agencyID,
386
+ id: id,
387
+ version: version
388
+ });
389
+ }, [endpoint, resourceType, agencyID, id, version]);
390
+ var _useState11 = useState({
391
+ pageIndex: 0,
392
+ pageSize: 100
393
+ }),
394
+ _useState12 = _slicedToArray(_useState11, 2),
395
+ pagination = _useState12[0],
396
+ setPagination = _useState12[1];
397
+ var range = useMemo(function () {
398
+ return getRange(pagination);
399
+ }, [pagination]);
400
+ var _useState13 = useState(0),
401
+ _useState14 = _slicedToArray(_useState13, 2),
402
+ observationCount = _useState14[0],
403
+ setObservationCount = _useState14[1];
404
+
405
+ // Initializing
406
+ useEffect(function () {
407
+ setDataflow();
408
+ setDataStructure();
409
+ setData();
410
+ setIsLoading(false);
411
+ setIsError(false);
412
+ if (url) {
413
+ setIsLoading(true);
414
+ getStructure(url).then(function (_ref2) {
415
+ var _structure$data;
416
+ var structure = _ref2.data;
417
+ var df = (_structure$data = structure.data) === null || _structure$data === void 0 || (_structure$data = _structure$data.dataflows) === null || _structure$data === void 0 ? void 0 : _structure$data[0];
418
+ var ds = getDataStructure(df, structure);
419
+ setDataflow(df);
420
+ setDataStructure(ds);
421
+ })["catch"](function () {
422
+ setIsError(true);
423
+ setIsLoading(false);
424
+ });
425
+ }
426
+ }, [url]);
427
+
428
+ // getting data
429
+ useEffect(function () {
430
+ if (dataflow) {
431
+ setIsLoading(true);
432
+ setIsError(false);
433
+ getData(dataflow, endpoint, range).then(function (_ref3) {
434
+ var dataStructure = _ref3.data,
435
+ responseHeaders = _ref3.responseHeaders;
436
+ setObservationCount(getObservationsCount(responseHeaders));
437
+ setData(_toConsumableArray(getObservations(dataStructure)));
438
+ setIsLoading(false);
439
+ })["catch"](function () {
440
+ setIsError(true);
441
+ setIsLoading(false);
442
+ });
443
+ }
444
+ }, [range, dataflow]);
445
+ var handlePaginationChange = function handlePaginationChange(options) {
446
+ return setPagination(options);
447
+ };
448
+ if (isLoading && !dataStructure) return /*#__PURE__*/React.createElement(LoadingBox, null);
449
+ if (!url) return /*#__PURE__*/React.createElement(Box, {
450
+ className: classes.wrongContainer
451
+ }, /*#__PURE__*/React.createElement(IconAlertCircleFilled, {
452
+ className: classes.alertIcon
453
+ }), /*#__PURE__*/React.createElement(Text, {
454
+ size: "sm",
455
+ className: classes.alertMsg
456
+ }, intl.formatMessage(messages.invalidComProps)));
457
+ if (isError && !data) {
458
+ return /*#__PURE__*/React.createElement(Box, {
459
+ className: classes.wrongContainer
460
+ }, /*#__PURE__*/React.createElement(IconThumbDown, {
461
+ className: classes.alertIcon
462
+ }), /*#__PURE__*/React.createElement(Text, {
463
+ size: "sm",
464
+ className: classes.alertMsg
465
+ }, intl.formatMessage(messages.noData)));
466
+ }
467
+ return /*#__PURE__*/React.createElement(SDMXGrid, {
468
+ dataStructure: dataStructure,
469
+ data: data,
470
+ pagination: pagination,
471
+ onPaginationChange: handlePaginationChange,
472
+ observationCount: observationCount,
473
+ isLoading: isLoading
474
+ });
475
+ };
476
+ SdmxDatagrid.propTypes = {
477
+ endpoint: PropTypes.string.isRequired,
478
+ resourceType: PropTypes.string.isRequired,
479
+ agencyID: PropTypes.string.isRequired,
480
+ id: PropTypes.string.isRequired,
481
+ version: PropTypes.string.isRequired
482
+ };
483
+
484
+ var SDMXDatagrid = /*#__PURE__*/function (_HTMLElement) {
485
+ _inherits(SDMXDatagrid, _HTMLElement);
486
+ var _super = _createSuper(SDMXDatagrid);
487
+ function SDMXDatagrid() {
488
+ var _this;
489
+ _classCallCheck(this, SDMXDatagrid);
490
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
491
+ args[_key] = arguments[_key];
492
+ }
493
+ _this = _super.call.apply(_super, [this].concat(args));
494
+ _defineProperty(_assertThisInitialized(_this), "forceUpdateComponent", void 0);
495
+ _defineProperty(_assertThisInitialized(_this), "container", function () {
496
+ var forceUpdate = useReducer(function () {
497
+ return {};
498
+ }, {})[1];
499
+ _this.forceUpdateComponent = forceUpdate;
500
+ var props = {
501
+ endpoint: _this.getAttribute('endpoint'),
502
+ resourceType: _this.getAttribute('resourceType'),
503
+ agencyID: _this.getAttribute('agencyID'),
504
+ id: _this.getAttribute('id'),
505
+ version: _this.getAttribute('version')
506
+ };
507
+ var containerProps = _this.getAttribute('containerProps') || {};
508
+ var containerPropsValue = typeof containerProps === 'string' ? JSON.parse(containerProps) : {};
509
+ return /*#__PURE__*/React.createElement(IntlProvider, {
510
+ defaultLocale: "en",
511
+ locale: "en",
512
+ messages: {}
513
+ }, /*#__PURE__*/React.createElement("div", containerPropsValue, /*#__PURE__*/React.createElement(SdmxDatagrid, props)));
514
+ });
515
+ return _this;
516
+ }
517
+ _createClass(SDMXDatagrid, [{
518
+ key: "connectedCallback",
519
+ value: function connectedCallback() {
520
+ var shadowRoot = this.attachShadow({
521
+ mode: 'open'
522
+ });
523
+ var mountPoint = document.createElement('div');
524
+ var emotionRoot = document.createElement('div');
525
+ shadowRoot.appendChild(mountPoint);
526
+ shadowRoot.appendChild(emotionRoot);
527
+ var appendCache = createEmotionCache({
528
+ key: 'mantine-wc',
529
+ container: emotionRoot
530
+ });
531
+ var root = createRoot(mountPoint);
532
+ root.render( /*#__PURE__*/React.createElement(MantineProvider, {
533
+ emotionCache: appendCache,
534
+ withGlobalStyles: true,
535
+ withNormalizeCSS: true
536
+ }, /*#__PURE__*/React.createElement(IntlProvider, {
537
+ defaultLocale: "en",
538
+ locale: "en",
539
+ messages: {}
540
+ }, /*#__PURE__*/React.createElement(this.container, null))));
541
+ }
542
+ }, {
543
+ key: "attributeChangedCallback",
544
+ value: function attributeChangedCallback() {
545
+ if (typeof this.forceUpdateComponent === 'function') this.forceUpdateComponent();
546
+ }
547
+ }], [{
548
+ key: "observedAttributes",
549
+ get: function get() {
550
+ return ['endpoint', 'resourceType', 'agencyID', 'id', 'version'];
551
+ }
552
+ }]);
553
+ return SDMXDatagrid;
554
+ }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
555
+ customElements.define('sdmx-datagrid', SDMXDatagrid);
556
+ //# sourceMappingURL=index-lo-MKsEb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-lo-MKsEb.js","sources":["../src/components/SdmxDatagrid/messages.js","../src/components/SdmxDatagrid/LoadingBox.jsx","../src/components/SdmxDatagrid/utils/index.js","../src/components/SdmxDatagrid/SDMXGrid.jsx","../src/components/SdmxDatagrid/index.jsx","../src/webComponents/SDMXDatagrid/index.js"],"sourcesContent":["import { defineMessages } from 'react-intl'\n\nexport default defineMessages({\n urlIsRequired: {\n id: 'components.SdmxComponent.urlIsRequired',\n defaultMessage: 'URL Is Required!',\n },\n noData: {\n id: 'components.SdmxComponent.noData',\n defaultMessage: 'No Data Available!',\n },\n\n dimension: {\n id: 'components.SdmxComponent.dimension',\n defaultMessage: 'Dimension',\n },\n timeDimension: {\n id: 'components.SdmxComponent.timeDimension',\n defaultMessage: 'Time Dimension',\n },\n measure: {\n id: 'components.SdmxComponent.measure',\n defaultMessage: 'Measure',\n },\n invalidComProps: {\n id: 'components.SdmxComponent.invalidComProps',\n defaultMessage: 'Invalid component props!',\n },\n})\n","import React from 'react'\nimport { Box, Loader, createStyles } from '@mantine/core'\n\nconst useStyles = createStyles(() => ({\n loadingContainer: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n}))\n\nconst LoadingBox = () => {\n const { classes } = useStyles()\n\n return (\n <Box className={classes.loadingContainer}>\n <Loader color=\"blue\" size=\"lg\" />\n </Box>\n )\n}\n\nexport default LoadingBox\n","import { getComponents, dataQueryUrl, resolveResourceFromStructure, urn2FullRef, ID, getRef } from '@dbmx/sdmx'\nimport urljoin from 'url-join'\n\nfunction sortByKey(array, key) {\n return array.sort((a, b) => {\n let x = a[key]\n let y = b[key]\n return x < y ? -1 : x > y ? 1 : 0\n })\n}\n\nexport const getStructure = async (url, headers = {}) => {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n })\n\n const data = await response.json()\n const responseHeaders = {}\n\n for (const pair of response.headers.entries()) responseHeaders[pair[0]] = pair[1]\n\n return { data, responseHeaders }\n}\n\nexport const getDataStructure = (dataflow, structure) => {\n if (!dataflow?.structure) throw new Error(`Cannot get dataStructure from dataflow ${ID(dataflow)}`)\n const dsRef = urn2FullRef(dataflow.structure)\n return resolveResourceFromStructure(structure, dataflow, dsRef, { noError: true })\n}\n\nexport const getColumns = (components = {}) => {\n const comps = Object.values(components)\n const dimensions = comps.filter(comp => comp.type === 'dimension')\n const timeDimension = comps.filter(comp => comp.type === 'timeDimension')[0]\n const measures = comps.filter(comp => comp.type === 'measure')\n\n const sortedDimensions = sortByKey(dimensions, 'position')\n const sortedMesures = sortByKey(measures, 'id')\n\n return { dimensions: sortedDimensions, timeDimension, measures: sortedMesures }\n}\n\nexport const getSelectedComponents = resource => {\n const components = getComponents(resource)\n return components.reduce((acc, component) => ({ ...acc, [component.id]: component }), {})\n}\n\nexport const getData = async (dataflow, endpoint, range = { min: 1, max: 100 }) => {\n const dataUrl = dataQueryUrl({\n context: 'dataflow',\n ...getRef(dataflow),\n endpoint,\n })\n const { min, max } = range\n return getStructure(dataUrl, { 'x-Range': `values=${min}-${max}` })\n}\n\nexport const getCellValue = cell => {\n const cellValue = cell.getValue()\n return cellValue?.name || cellValue?.id || cellValue?.value\n}\n\nconst artifacts = {\n dataflow: {\n id: 'dataflow',\n resourceName: 'dataflows',\n },\n datastructure: {\n id: 'datastructure',\n resourceName: 'dataStructures',\n },\n dataproviderscheme: {\n id: 'dataflow',\n resourceName: 'dataProviderSchemes',\n },\n}\n\nexport const getFieldOptions = (resources, resourceTypeValue, defaults, fieldName = 'id') => {\n const resourcesData = resources.data[`${artifacts[resourceTypeValue].resourceName}`]\n const fieldItemsSet = new Set()\n resourcesData.forEach(resource => fieldItemsSet.add(resource[fieldName]))\n const fieldItems = Array.from(fieldItemsSet)\n const fieldOptions = fieldItems.map(item => ({ label: item, value: item }))\n const sortedFieldOptions = sortByKey(fieldOptions, 'label')\n return [...defaults, ...sortedFieldOptions]\n}\n\nexport const getSdmxUrl = ({ endpoint, resourceType, agencyID = '*', id = '*', version = '~' }) => {\n if (!endpoint || !resourceType) throw new Error('endpoint & resourceType are required')\n const url = urljoin(endpoint, 'structure', resourceType, agencyID, id, version, '?detail=full&references=all')\n return url\n}\n\nexport const getRange = pagination => {\n const { pageIndex, pageSize } = pagination\n const min = pageSize * pageIndex\n const max = pageSize * pageIndex + pageSize - 1\n return { min, max }\n}\n\nexport const getObservationsCount = responseHeaders => {\n const contentRange = responseHeaders['content-range']\n return parseInt(contentRange.split('/')[1])\n}\n","import React, { useMemo } from 'react'\nimport PropTypes from 'prop-types'\nimport { MRT_ShowHideColumnsButton, MRT_ToggleFullScreenButton, MantineReactTable } from 'mantine-react-table'\nimport { useIntl } from 'react-intl'\n\nimport messages from './messages'\nimport LoadingBox from './LoadingBox'\nimport { getCellValue, getColumns, getSelectedComponents } from './utils'\n\nconst SDMXGrid = ({ dataStructure, data, pagination, onPaginationChange, observationCount, isLoading }) => {\n if (!data) return <LoadingBox />\n\n const intl = useIntl()\n const components = useMemo(() => getSelectedComponents(dataStructure), [dataStructure])\n\n const columns = useMemo(() => {\n const { dimensions, timeDimension, measures } = getColumns(components)\n return [\n {\n accessorKey: 'dimension',\n header: intl.formatMessage(messages.dimension),\n columns: dimensions.map(col => ({\n accessorKey: col.id,\n header: col.id || col.name,\n Cell: ({ cell }) => getCellValue(cell),\n })),\n },\n {\n accessorKey: 'timeDimension',\n header: intl.formatMessage(messages.timeDimension),\n columns: [\n {\n accessorKey: timeDimension.id,\n header: timeDimension.id || timeDimension.name,\n Cell: ({ cell }) => getCellValue(cell),\n },\n ],\n },\n {\n accessorKey: 'measure',\n header: intl.formatMessage(messages.measure),\n columns: measures.map(col => ({\n accessorKey: col.id,\n header: col.id || col.name,\n Cell: ({ cell }) => getCellValue(cell),\n })),\n },\n ]\n }, [components])\n\n return (\n <MantineReactTable\n data={data}\n columns={columns}\n initialState={{ density: 'xs' }}\n mantineTableProps={{ striped: true }}\n enableStickyHeader\n enableColumnFilterModes={false}\n enableColumnActions={false}\n enableSorting={false}\n enablePinning={true}\n manualPagination={true}\n rowCount={observationCount}\n onPaginationChange={onPaginationChange}\n state={{ pagination, isLoading }}\n mantinePaginationProps={{\n rowsPerPageOptions: ['100', '500', '1000', '2000'],\n withEdges: true,\n }}\n renderToolbarInternalActions={({ table }) => {\n return (\n <>\n <MRT_ShowHideColumnsButton table={table} />\n <MRT_ToggleFullScreenButton table={table} />\n </>\n )\n }}\n mantineTableContainerProps={{ sx: { height: 'calc(100% - 110px)' } }}\n mantinePaperProps={{ sx: { height: '100%' } }}\n />\n )\n}\n\nSDMXGrid.propTypes = {\n dataStructure: PropTypes.object,\n data: PropTypes.array,\n pagination: PropTypes.object.isRequired,\n onPaginationChange: PropTypes.func.isRequired,\n observationCount: PropTypes.number.isRequired,\n isLoading: PropTypes.bool.isRequired,\n}\n\nexport default SDMXGrid\n","import React, { useEffect, useMemo, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { Box, Text, createStyles, rem } from '@mantine/core'\nimport { IconAlertCircleFilled, IconThumbDown } from '@tabler/icons-react'\nimport { useIntl } from 'react-intl'\nimport { getObservations } from '@dbmx/sdmx/cjs/data'\n\nimport messages from './messages'\nimport SDMXGrid from './SDMXGrid'\nimport { getData, getDataStructure, getObservationsCount, getRange, getSdmxUrl, getStructure } from './utils'\nimport LoadingBox from './LoadingBox'\n\nconst useStyles = createStyles(theme => ({\n wrongContainer: {\n width: '100%',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.colors.gray[0],\n },\n alertIcon: {\n width: rem(80),\n height: rem(80),\n color: theme.colors.gray[4],\n },\n alertMsg: {\n marginTop: theme.spacing.sm,\n color: theme.colors.gray[6],\n },\n}))\n\nconst SdmxDatagrid = ({ endpoint, resourceType, agencyID, id, version }) => {\n const { classes } = useStyles()\n const intl = useIntl()\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n\n const [dataflow, setDataflow] = useState()\n const [dataStructure, setDataStructure] = useState()\n const [data, setData] = useState()\n\n const url = useMemo(() => {\n if (!endpoint || !resourceType || !agencyID || !id || !version) return null\n else return getSdmxUrl({ endpoint, resourceType, agencyID, id, version })\n }, [endpoint, resourceType, agencyID, id, version])\n\n const [pagination, setPagination] = useState({\n pageIndex: 0,\n pageSize: 100,\n })\n\n const range = useMemo(() => getRange(pagination), [pagination])\n const [observationCount, setObservationCount] = useState(0)\n\n // Initializing\n useEffect(() => {\n setDataflow()\n setDataStructure()\n setData()\n setIsLoading(false)\n setIsError(false)\n\n if (url) {\n setIsLoading(true)\n getStructure(url)\n .then(({ data: structure }) => {\n const df = structure.data?.dataflows?.[0]\n const ds = getDataStructure(df, structure)\n setDataflow(df)\n setDataStructure(ds)\n })\n .catch(() => {\n setIsError(true)\n setIsLoading(false)\n })\n }\n }, [url])\n\n // getting data\n useEffect(() => {\n if (dataflow) {\n setIsLoading(true)\n setIsError(false)\n getData(dataflow, endpoint, range)\n .then(({ data: dataStructure, responseHeaders }) => {\n setObservationCount(getObservationsCount(responseHeaders))\n setData([...getObservations(dataStructure)])\n setIsLoading(false)\n })\n .catch(() => {\n setIsError(true)\n setIsLoading(false)\n })\n }\n }, [range, dataflow])\n\n const handlePaginationChange = options => setPagination(options)\n\n if (isLoading && !dataStructure) return <LoadingBox />\n\n if (!url)\n return (\n <Box className={classes.wrongContainer}>\n <IconAlertCircleFilled className={classes.alertIcon} />\n <Text size=\"sm\" className={classes.alertMsg}>\n {intl.formatMessage(messages.invalidComProps)}\n </Text>\n </Box>\n )\n\n if (isError && !data) {\n return (\n <Box className={classes.wrongContainer}>\n <IconThumbDown className={classes.alertIcon} />\n <Text size=\"sm\" className={classes.alertMsg}>\n {intl.formatMessage(messages.noData)}\n </Text>\n </Box>\n )\n }\n\n return (\n <SDMXGrid\n dataStructure={dataStructure}\n data={data}\n pagination={pagination}\n onPaginationChange={handlePaginationChange}\n observationCount={observationCount}\n isLoading={isLoading}\n />\n )\n}\n\nSdmxDatagrid.propTypes = {\n endpoint: PropTypes.string.isRequired,\n resourceType: PropTypes.string.isRequired,\n agencyID: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n version: PropTypes.string.isRequired,\n}\n\nexport default SdmxDatagrid\n","import React, { useReducer } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { IntlProvider } from 'react-intl'\nimport { MantineProvider, createEmotionCache } from '@mantine/core'\nimport Component from '../../components/SdmxDatagrid'\n\nclass SDMXDatagrid extends HTMLElement {\n forceUpdateComponent\n\n container = () => {\n const forceUpdate = useReducer(() => ({}), {})[1]\n this.forceUpdateComponent = forceUpdate\n const props = {\n endpoint: this.getAttribute('endpoint'),\n resourceType: this.getAttribute('resourceType'),\n agencyID: this.getAttribute('agencyID'),\n id: this.getAttribute('id'),\n version: this.getAttribute('version'),\n }\n const containerProps = this.getAttribute('containerProps') || {}\n const containerPropsValue = typeof containerProps === 'string' ? JSON.parse(containerProps) : {}\n\n return (\n <IntlProvider defaultLocale=\"en\" locale=\"en\" messages={{}}>\n <div {...containerPropsValue}>\n <Component {...props} />\n </div>\n </IntlProvider>\n )\n }\n\n connectedCallback() {\n const shadowRoot = this.attachShadow({ mode: 'open' })\n const mountPoint = document.createElement('div')\n const emotionRoot = document.createElement('div')\n\n shadowRoot.appendChild(mountPoint)\n shadowRoot.appendChild(emotionRoot)\n\n const appendCache = createEmotionCache({ key: 'mantine-wc', container: emotionRoot })\n\n const root = createRoot(mountPoint)\n root.render(\n <MantineProvider emotionCache={appendCache} withGlobalStyles withNormalizeCSS>\n <IntlProvider defaultLocale=\"en\" locale=\"en\" messages={{}}>\n <this.container></this.container>\n </IntlProvider>\n </MantineProvider>,\n )\n }\n\n static get observedAttributes() {\n return ['endpoint', 'resourceType', 'agencyID', 'id', 'version']\n }\n\n attributeChangedCallback() {\n if (typeof this.forceUpdateComponent === 'function') this.forceUpdateComponent()\n }\n}\n\ncustomElements.define('sdmx-datagrid', SDMXDatagrid)\n"],"names":["defineMessages","urlIsRequired","id","defaultMessage","noData","dimension","timeDimension","measure","invalidComProps","useStyles","createStyles","loadingContainer","width","height","display","justifyContent","alignItems","LoadingBox","_useStyles","classes","React","createElement","Box","className","Loader","color","size","sortByKey","array","key","sort","a","b","x","y","getStructure","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","headers","response","data","responseHeaders","_iterator","_step","pair","_args","arguments","wrap","_callee$","_context","prev","next","length","undefined","fetch","method","_objectSpread","sent","json","_createForOfIteratorHelper","entries","s","n","done","value","err","e","f","abrupt","stop","_x","apply","getDataStructure","dataflow","structure","Error","concat","ID","dsRef","urn2FullRef","resolveResourceFromStructure","noError","getColumns","components","comps","Object","values","dimensions","filter","comp","type","measures","sortedDimensions","sortedMesures","getSelectedComponents","resource","getComponents","reduce","acc","component","_defineProperty","getData","_ref2","_callee2","endpoint","range","dataUrl","min","max","_args2","_callee2$","_context2","dataQueryUrl","context","getRef","_x2","_x3","getCellValue","cell","cellValue","getValue","name","getSdmxUrl","_ref3","resourceType","_ref3$agencyID","agencyID","_ref3$id","_ref3$version","version","urljoin","getRange","pagination","pageIndex","pageSize","getObservationsCount","contentRange","parseInt","split","SDMXGrid","dataStructure","onPaginationChange","observationCount","isLoading","intl","useIntl","useMemo","columns","_getColumns","accessorKey","header","formatMessage","messages","map","col","Cell","_ref4","MantineReactTable","initialState","density","mantineTableProps","striped","enableStickyHeader","enableColumnFilterModes","enableColumnActions","enableSorting","enablePinning","manualPagination","rowCount","state","mantinePaginationProps","rowsPerPageOptions","withEdges","renderToolbarInternalActions","_ref5","table","Fragment","MRT_ShowHideColumnsButton","MRT_ToggleFullScreenButton","mantineTableContainerProps","sx","mantinePaperProps","propTypes","PropTypes","object","isRequired","func","number","bool","theme","wrongContainer","flexDirection","backgroundColor","colors","gray","alertIcon","rem","alertMsg","marginTop","spacing","sm","SdmxDatagrid","_useState","useState","_useState2","_slicedToArray","setIsLoading","_useState3","_useState4","isError","setIsError","_useState5","_useState6","setDataflow","_useState7","_useState8","setDataStructure","_useState9","_useState10","setData","_useState11","_useState12","setPagination","_useState13","_useState14","setObservationCount","useEffect","then","_structure$data","df","dataflows","ds","_toConsumableArray","getObservations","handlePaginationChange","options","IconAlertCircleFilled","Text","IconThumbDown","string","SDMXDatagrid","_HTMLElement","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","_assertThisInitialized","forceUpdate","useReducer","forceUpdateComponent","props","getAttribute","containerProps","containerPropsValue","JSON","parse","IntlProvider","defaultLocale","locale","Component","_createClass","connectedCallback","shadowRoot","attachShadow","mode","mountPoint","document","emotionRoot","appendChild","appendCache","createEmotionCache","container","root","createRoot","render","MantineProvider","emotionCache","withGlobalStyles","withNormalizeCSS","attributeChangedCallback","get","_wrapNativeSuper","HTMLElement","customElements","define"],"mappings":"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"}