@gridsuite/commons-ui 0.32.1 → 0.33.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.
@@ -69,14 +69,14 @@ function extractDefault(paramDescription) {
69
69
  }
70
70
  return d !== null && d !== void 0 ? d : null;
71
71
  }
72
- function longestCommonPrefix(strs) {
73
- if (!(strs === null || strs === void 0 ? void 0 : strs.length)) {
72
+ function longestCommonPrefix(stringList) {
73
+ if (!(stringList === null || stringList === void 0 ? void 0 : stringList.length)) {
74
74
  return '';
75
75
  }
76
- var prefix = strs.reduce(function (acc, str) {
76
+ var prefix = stringList.reduce(function (acc, str) {
77
77
  return str.length < acc.length ? str : acc;
78
78
  });
79
- for (var _iterator = _createForOfIteratorHelperLoose(strs), _step; !(_step = _iterator()).done;) {
79
+ for (var _iterator = _createForOfIteratorHelperLoose(stringList), _step; !(_step = _iterator()).done;) {
80
80
  var str = _step.value;
81
81
  while (str.slice(0, prefix.length) !== prefix) {
82
82
  prefix = prefix.slice(0, -1);
@@ -139,14 +139,14 @@ var FlatParameters = function FlatParameters(_ref) {
139
139
  setUncommitted(value);
140
140
  }
141
141
  if (onChange) {
142
- if (Array.isArray(value)) {
143
- onChange(paramName, [].concat(value), isInEdition);
142
+ if (param.type === 'STRING_LIST') {
143
+ onChange(paramName, value ? value.toString() : null, isInEdition);
144
144
  } else {
145
145
  onChange(paramName, value, isInEdition);
146
146
  }
147
147
  }
148
148
  }, [inEditionParam, onChange]);
149
- var onUncommited = (0, _react.useCallback)(function (param, inEdit) {
149
+ var onUncommitted = (0, _react.useCallback)(function (param, inEdit) {
150
150
  if (inEdit) {
151
151
  setInEditionParam(param.name);
152
152
  } else {
@@ -168,11 +168,26 @@ var FlatParameters = function FlatParameters(_ref) {
168
168
  if (param.name === inEditionParam && uncommitted !== null) {
169
169
  return uncommitted;
170
170
  } else if (initValues && initValues.hasOwnProperty(param.name)) {
171
- return initValues[param.name];
171
+ if (param.type !== 'STRING_LIST') {
172
+ return initValues[param.name];
173
+ }
174
+ var valueList = initValues[param.name];
175
+ if (Array.isArray(valueList)) {
176
+ return valueList;
177
+ }
178
+ // otherwise split string into array
179
+ return valueList ? valueList.split(',').map(function (s) {
180
+ return s.trim();
181
+ }).filter(function (s) {
182
+ return !!s;
183
+ }) : [];
172
184
  } else {
173
185
  return extractDefault(param);
174
186
  }
175
187
  }
188
+ var outputTransformFloatString = function outputTransformFloatString(value) {
189
+ return (value === null || value === void 0 ? void 0 : value.replace(',', '.')) || '';
190
+ };
176
191
  var renderField = function renderField(param) {
177
192
  var fieldValue = mixInitAndDefault(param);
178
193
  switch (param.type) {
@@ -194,15 +209,15 @@ var FlatParameters = function FlatParameters(_ref) {
194
209
  },
195
210
  value: fieldValue,
196
211
  onFocus: function onFocus() {
197
- return onUncommited(param, true);
212
+ return onUncommitted(param, true);
198
213
  },
199
214
  onBlur: function onBlur() {
200
- return onUncommited(param, false);
215
+ return onUncommitted(param, false);
201
216
  },
202
217
  onChange: function onChange(e) {
203
218
  var m = FloatRE.exec(e.target.value);
204
219
  if (m) {
205
- onFieldChange(e.target.value, param);
220
+ onFieldChange(outputTransformFloatString(e.target.value), param);
206
221
  }
207
222
  },
208
223
  error: err,
@@ -218,10 +233,10 @@ var FlatParameters = function FlatParameters(_ref) {
218
233
  },
219
234
  value: fieldValue,
220
235
  onFocus: function onFocus() {
221
- return onUncommited(param, true);
236
+ return onUncommitted(param, true);
222
237
  },
223
238
  onBlur: function onBlur() {
224
- return onUncommited(param, false);
239
+ return onUncommitted(param, false);
225
240
  },
226
241
  onChange: function onChange(e) {
227
242
  var m = IntegerRE.exec(e.target.value);
@@ -261,14 +276,42 @@ var FlatParameters = function FlatParameters(_ref) {
261
276
  }));
262
277
  }
263
278
  });
279
+ } else {
280
+ // no possible values => free user inputs
281
+ return /*#__PURE__*/_react["default"].createElement(_material.Autocomplete, {
282
+ fullWidth: true,
283
+ multiple: true,
284
+ freeSolo: true,
285
+ autoSelect: true,
286
+ options: [],
287
+ onChange: function onChange(e, value) {
288
+ return onFieldChange(value, param);
289
+ },
290
+ value: fieldValue,
291
+ renderTags: function renderTags(values, getTagProps) {
292
+ return values.map(function (value, index) {
293
+ return /*#__PURE__*/_react["default"].createElement(_material.Chip, _extends({
294
+ id: 'chip_' + value,
295
+ size: 'small',
296
+ label: value
297
+ }, getTagProps({
298
+ index: index
299
+ })));
300
+ });
301
+ },
302
+ renderInput: function renderInput(inputProps) {
303
+ return /*#__PURE__*/_react["default"].createElement(_material.TextField, _extends({}, inputProps, {
304
+ variant: variant
305
+ }));
306
+ }
307
+ });
264
308
  }
265
- // else fallthrough to default
266
309
  case 'STRING':
267
310
  if (param.possibleValues) {
268
311
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_material.Select, {
269
312
  labelId: param.name,
270
313
  value: fieldValue !== null && fieldValue !== void 0 ? fieldValue : '',
271
- onChange: function onChange(ev, may) {
314
+ onChange: function onChange(ev) {
272
315
  onFieldChange(ev.target.value, param);
273
316
  },
274
317
  size: "small",
@@ -287,12 +330,12 @@ var FlatParameters = function FlatParameters(_ref) {
287
330
  default:
288
331
  return /*#__PURE__*/_react["default"].createElement(_material.TextField, {
289
332
  fullWidth: true,
290
- defaultValue: fieldValue,
333
+ value: fieldValue || '',
291
334
  onFocus: function onFocus() {
292
- return onUncommited(param, true);
335
+ return onUncommitted(param, true);
293
336
  },
294
337
  onBlur: function onBlur() {
295
- return onUncommited(param, false);
338
+ return onUncommitted(param, false);
296
339
  },
297
340
  onChange: function onChange(e) {
298
341
  return onFieldChange(e.target.value, param);
@@ -304,22 +347,22 @@ var FlatParameters = function FlatParameters(_ref) {
304
347
  return /*#__PURE__*/_react["default"].createElement(_material.List, {
305
348
  className: classes.paramList
306
349
  }, paramsAsArray.map(function (param) {
307
- return /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
350
+ return /*#__PURE__*/_react["default"].createElement(_material.ListItem, {
351
+ key: param.name,
352
+ className: classes.paramListItem
353
+ }, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
308
354
  title: /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
309
355
  id: param.name + '.desc',
310
356
  defaultMessage: param.description
311
357
  }),
312
358
  enterDelay: 1200,
313
359
  key: param.name
314
- }, /*#__PURE__*/_react["default"].createElement(_material.ListItem, {
315
- key: param.name,
316
- className: classes.paramListItem
317
360
  }, /*#__PURE__*/_react["default"].createElement(_material.Typography, {
318
361
  className: classes.paramName
319
362
  }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
320
363
  id: param.name,
321
364
  defaultMessage: param.name.slice(prefix.length)
322
- })), renderField(param)));
365
+ }))), renderField(param));
323
366
  }));
324
367
  };
325
368
  exports.FlatParameters = FlatParameters;
@@ -46,16 +46,6 @@ var Login = function Login(_ref) {
46
46
  var onLoginClick = _ref.onLoginClick,
47
47
  disabled = _ref.disabled;
48
48
  var classes = useStyles();
49
- function Copyright() {
50
- return /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
51
- variant: "body2",
52
- color: "textSecondary",
53
- align: "center"
54
- }, 'Copyright © ', /*#__PURE__*/_react["default"].createElement(_Link["default"], {
55
- color: "inherit",
56
- href: "#"
57
- }, "GridSuite"), ' ', new Date().getFullYear(), '.');
58
- }
59
49
  return /*#__PURE__*/_react["default"].createElement(_Container["default"], {
60
50
  component: "main",
61
51
  maxWidth: "xs"
@@ -80,7 +70,14 @@ var Login = function Login(_ref) {
80
70
  defaultMessage: 'connection'
81
71
  }))), /*#__PURE__*/_react["default"].createElement(_Box["default"], {
82
72
  mt: 2
83
- }, /*#__PURE__*/_react["default"].createElement(Copyright, null)));
73
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
74
+ variant: "body2",
75
+ color: "textSecondary",
76
+ align: "center"
77
+ }, 'Copyright © ', /*#__PURE__*/_react["default"].createElement(_Link["default"], {
78
+ color: "inherit",
79
+ href: "#"
80
+ }, "GridSuite"), ' ', new Date().getFullYear(), '.')));
84
81
  };
85
82
  var _default = Login;
86
83
  exports["default"] = _default;
@@ -364,11 +364,15 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
364
364
  var prefiltered = preFilterData(columns, _this.props.rows, _this.props.filter, indexer, indexer.filterVersion);
365
365
  var colStat = prefiltered === null || prefiltered === void 0 ? void 0 : (_prefiltered$colsStat2 = prefiltered.colsStats) === null || _prefiltered$colsStat2 === void 0 ? void 0 : _prefiltered$colsStat2[colKey];
366
366
  var filterLevel = 0;
367
- if (colStat === null || colStat === void 0 ? void 0 : colStat.seen) {
368
- var countSeen = Object.getOwnPropertyNames(colStat.seen).length;
369
- var userSelectedCount = userParams === null || userParams === void 0 ? void 0 : userParams.length;
370
- filterLevel += userSelectedCount ? 1 : 0;
371
- filterLevel += userSelectedCount >= countSeen ? 2 : 0;
367
+ if (userParams === null || userParams === void 0 ? void 0 : userParams.length) {
368
+ filterLevel += 1;
369
+ if (!(colStat === null || colStat === void 0 ? void 0 : colStat.seen)) {
370
+ filterLevel += 2;
371
+ } else if (userParams.filter(function (v) {
372
+ return !colStat.seen[v];
373
+ }).length) {
374
+ filterLevel += 2;
375
+ }
372
376
  }
373
377
 
374
378
  // disable filtering when either:
@@ -401,13 +405,13 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
401
405
  }, label);
402
406
  });
403
407
  _defineProperty(_assertThisInitialized(_this), "getRowClassName", function (_ref5) {
404
- var _rowGetter, _rowGetter2, _clsx;
408
+ var _rowGetter, _clsx;
405
409
  var index = _ref5.index,
406
410
  rowGetter = _ref5.rowGetter;
407
411
  var _this$props = _this.props,
408
412
  classes = _this$props.classes,
409
413
  onRowClick = _this$props.onRowClick;
410
- return (0, _clsx3["default"])(classes.tableRow, classes.flexContainer, index % 2 === 0 && classes.rowBackgroundDark, index % 2 !== 0 && classes.rowBackgroundLight, ((_rowGetter = rowGetter(index)) === null || _rowGetter === void 0 ? void 0 : _rowGetter.notClickable) === true && classes.noClick, (_clsx = {}, _clsx[classes.tableRowHover] = index !== -1 && onRowClick != null && !(((_rowGetter2 = rowGetter(index)) === null || _rowGetter2 === void 0 ? void 0 : _rowGetter2.notClickable) === true), _clsx));
414
+ return (0, _clsx3["default"])(classes.tableRow, classes.flexContainer, index % 2 === 0 && classes.rowBackgroundDark, index % 2 !== 0 && classes.rowBackgroundLight, ((_rowGetter = rowGetter(index)) === null || _rowGetter === void 0 ? void 0 : _rowGetter.notClickable) === true && classes.noClick, (_clsx = {}, _clsx[classes.tableRowHover] = index !== -1 && onRowClick != null, _clsx));
411
415
  });
412
416
  _defineProperty(_assertThisInitialized(_this), "onClickableRowClick", function (event) {
413
417
  var _event$rowData;
@@ -447,7 +451,7 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
447
451
  tooltipStyle: classes.cellTooltip
448
452
  }));
449
453
  });
450
- _defineProperty(_assertThisInitialized(_this), "makeSizedTable", function (height, width, sizes, reorderedIndex, _rowGetter3) {
454
+ _defineProperty(_assertThisInitialized(_this), "makeSizedTable", function (height, width, sizes, reorderedIndex, _rowGetter2) {
451
455
  var _reorderedIndex$lengt;
452
456
  var _this$props3 = _this.props,
453
457
  sort = _this$props3.sort,
@@ -468,12 +472,12 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
468
472
  var index = _ref7.index;
469
473
  return _this.getRowClassName({
470
474
  index: index,
471
- rowGetter: _rowGetter3
475
+ rowGetter: _rowGetter2
472
476
  });
473
477
  },
474
478
  rowGetter: function rowGetter(_ref8) {
475
479
  var index = _ref8.index;
476
- return _rowGetter3(index);
480
+ return _rowGetter2(index);
477
481
  }
478
482
  }), otherProps.columns.map(function (_ref9, index) {
479
483
  var dataKey = _ref9.dataKey,
@@ -9,6 +9,7 @@ var _TreeItem = _interopRequireDefault(require("@mui/lab/TreeItem"));
9
9
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
10
10
  var _Label = _interopRequireDefault(require("@mui/icons-material/Label"));
11
11
  var _reportTreeViewContext = _interopRequireDefault(require("./report-tree-view-context"));
12
+ var _system = require("@mui/system");
12
13
  var _excluded = ["labelText", "labelIconColor"];
13
14
  /**
14
15
  * Copyright (c) 2021, RTE (http://www.rte-france.com)
@@ -27,23 +28,30 @@ var useReportItemStyles = (0, _makeStyles["default"])(function (theme) {
27
28
  color: theme.palette.text.secondary,
28
29
  '&:hover > $content': {
29
30
  backgroundColor: theme.palette.action.hover
30
- },
31
- '&:focus > $content, &$selected > $content': {
32
- backgroundColor: "var(--tree-view-bg-color, " + theme.palette.grey[400] + ")",
33
- color: 'var(--tree-view-color)'
34
- },
35
- '&:focus > $content $label, &:hover > $content $label, &$selected > $content $label': {
36
- backgroundColor: 'transparent'
37
31
  }
38
32
  },
39
33
  content: {
40
34
  color: theme.palette.text.secondary,
41
- borderTopRightRadius: theme.spacing(2),
42
- borderBottomRightRadius: theme.spacing(2),
35
+ borderRadius: theme.spacing(2),
36
+ width: 'fit-content',
43
37
  paddingRight: theme.spacing(1),
44
38
  fontWeight: theme.typography.fontWeightMedium,
45
- '$expanded > &': {
39
+ '&$expanded': {
46
40
  fontWeight: theme.typography.fontWeightRegular
41
+ },
42
+ /* &&.Mui-focused to increase specifity because mui5 has a rule for &.Mui-selected.Mui-focused */
43
+ /* &&$selected to increase specifity because we have a rule for &:hover > $content on root */
44
+ '&&.Mui-focused, &&$selected': {
45
+ backgroundColor: "var(--tree-view-bg-color, " + theme.palette.action.selected + ")",
46
+ color: 'var(--tree-view-color)'
47
+ },
48
+ // same as mui v4 behavior on label text only right after clicking in contrast to after moving away with arrow keys.
49
+ '&$selected $label:hover, &$selected.Mui-focused $label': {
50
+ borderRadius: theme.spacing(2),
51
+ backgroundColor: (0, _system.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)
52
+ },
53
+ '&.Mui-focused $label, &:hover $label, &$selected $label': {
54
+ backgroundColor: 'transparent'
47
55
  }
48
56
  },
49
57
  group: {
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useDebounce = void 0;
5
+ var _react = require("react");
6
+ var _utils = require("@mui/material/utils");
7
+ /**
8
+ * Copyright (c) 2023, RTE (http://www.rte-france.com)
9
+ * This Source Code Form is subject to the terms of the Mozilla Public
10
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
11
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
+ */
13
+
14
+ var useDebounce = function useDebounce(func, delay) {
15
+ if (delay === void 0) {
16
+ delay = 700;
17
+ }
18
+ var debouncedChangeHandler = (0, _react.useMemo)(function () {
19
+ return (0, _utils.debounce)(func, delay);
20
+ }, [func, delay]);
21
+
22
+ // Stop the invocation of the debounced function after unmounting
23
+
24
+ (0, _react.useEffect)(function () {
25
+ return function () {
26
+ debouncedChangeHandler.clear();
27
+ };
28
+ }, [debouncedChangeHandler]);
29
+ return debouncedChangeHandler;
30
+ };
31
+ exports.useDebounce = useDebounce;
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.useSnackMessage = exports.useIntlRef = exports.useImportExportParams = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.setLoggedUser = exports.report_viewer_fr = exports.report_viewer_en = exports.makeDeltaMap = exports.logout = exports.login_fr = exports.login_en = exports.initializeAuthenticationProd = exports.initializeAuthenticationDev = exports.getPreLoginPath = exports.getFileIcon = exports.getEquipmentsInfosForSearchBar = exports.extractDefaultMap = exports.equipment_search_fr = exports.equipment_search_en = exports.equipmentStyles = exports.element_search_fr = exports.element_search_en = exports.elementType = exports.dispatchUser = exports.card_error_boundary_fr = exports.card_error_boundary_en = exports.USER_VALIDATION_ERROR = exports.USER = exports.UNAUTHORIZED_USER_INFO = exports.TreeViewFinder = exports.TopBar = exports.TagRenderer = exports.SnackbarProvider = exports.SIGNIN_CALLBACK_ERROR = exports.SHOW_AUTH_INFO_LOGIN = exports.ReportViewerDialog = exports.ReportViewer = exports.RESET_AUTHENTICATION_ROUTER_ERROR = exports.OverflowableText = exports.MuiVirtualizedTable = exports.LOGOUT_ERROR = exports.LIGHT_THEME = exports.LANG_SYSTEM = exports.LANG_FRENCH = exports.LANG_ENGLISH = exports.KeyedColumnsRowIndexer = exports.FlatParameters = exports.EquipmentItem = exports.ElementSearchDialog = exports.EQUIPMENT_TYPE = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT = exports.DEFAULT_CELL_PADDING = exports.DARK_THEME = exports.CardErrorBoundary = exports.CHANGE_WAYS = exports.AuthenticationRouter = void 0;
4
+ exports.useSnackMessage = exports.useIntlRef = exports.useDebounce = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.setLoggedUser = exports.report_viewer_fr = exports.report_viewer_en = exports.logout = exports.login_fr = exports.login_en = exports.initializeAuthenticationProd = exports.initializeAuthenticationDev = exports.getPreLoginPath = exports.getFileIcon = exports.getEquipmentsInfosForSearchBar = exports.equipment_search_fr = exports.equipment_search_en = exports.equipmentStyles = exports.element_search_fr = exports.element_search_en = exports.elementType = exports.dispatchUser = exports.card_error_boundary_fr = exports.card_error_boundary_en = exports.USER_VALIDATION_ERROR = exports.USER = exports.UNAUTHORIZED_USER_INFO = exports.TreeViewFinder = exports.TopBar = exports.TagRenderer = exports.SnackbarProvider = exports.SIGNIN_CALLBACK_ERROR = exports.SHOW_AUTH_INFO_LOGIN = exports.ReportViewerDialog = exports.ReportViewer = exports.RESET_AUTHENTICATION_ROUTER_ERROR = exports.OverflowableText = exports.MuiVirtualizedTable = exports.LOGOUT_ERROR = exports.LIGHT_THEME = exports.LANG_SYSTEM = exports.LANG_FRENCH = exports.LANG_ENGLISH = exports.KeyedColumnsRowIndexer = exports.FlatParameters = exports.EquipmentItem = exports.ElementSearchDialog = exports.EQUIPMENT_TYPE = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT = exports.DEFAULT_CELL_PADDING = exports.DARK_THEME = exports.CardErrorBoundary = exports.CHANGE_WAYS = exports.AuthenticationRouter = void 0;
5
5
  var _TreeViewFinder = _interopRequireDefault(require("./components/TreeViewFinder"));
6
6
  exports.TreeViewFinder = _TreeViewFinder["default"];
7
7
  var _TopBar = _interopRequireDefault(require("./components/TopBar"));
@@ -94,14 +94,12 @@ var _equipmentItem = require("./components/ElementSearchDialog/equipment-item");
94
94
  exports.EquipmentItem = _equipmentItem.EquipmentItem;
95
95
  var _CardErrorBoundary = _interopRequireDefault(require("./components/CardErrorBoundary"));
96
96
  exports.CardErrorBoundary = _CardErrorBoundary["default"];
97
- var _useImportExportParams = require("./hooks/useImportExportParams");
98
- exports.useImportExportParams = _useImportExportParams.useImportExportParams;
99
- exports.makeDeltaMap = _useImportExportParams.makeDeltaMap;
100
- exports.extractDefaultMap = _useImportExportParams.extractDefaultMap;
101
97
  var _useIntlRef = require("./hooks/useIntlRef");
102
98
  exports.useIntlRef = _useIntlRef.useIntlRef;
103
99
  var _useSnackMessage = require("./hooks/useSnackMessage");
104
100
  exports.useSnackMessage = _useSnackMessage.useSnackMessage;
101
+ var _useDebounce = require("./hooks/useDebounce");
102
+ exports.useDebounce = _useDebounce.useDebounce;
105
103
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
106
104
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
107
105
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.32.1",
3
+ "version": "0.33.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "engines": {
6
6
  "npm": "<=6",
@@ -1,144 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.extractDefaultMap = extractDefaultMap;
5
- exports.makeDeltaMap = makeDeltaMap;
6
- exports.useImportExportParams = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _FlatParameters = _interopRequireWildcard(require("../components/FlatParameters/FlatParameters"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /**
12
- * Copyright (c) 2022, RTE (http://www.rte-france.com)
13
- * This Source Code Form is subject to the terms of the Mozilla Public
14
- * License, v. 2.0. If a copy of the MPL was not distributed with this
15
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
16
- */ // Hook taking an array of parameters with this format
17
- // [{"name":"nameOfParam","type":"typeOfParam","description":"descriptionOfParam","defaultValue":"defaultValue","possibleValues":[arrayOfPossibleValue]}]
18
- // Returns :
19
- // - an object containing those modified values to be able to send them to a backend
20
- // - a render of a form allowing to modify those values
21
- // - a function allowing to reset the fields
22
- function areEquivDeeply(a, b) {
23
- if (a === b) {
24
- return true;
25
- }
26
- var aIsArray = Array.isArray(a);
27
- var bIsArray = Array.isArray(b);
28
- if (aIsArray || bIsArray) {
29
- if (aIsArray && bIsArray && a.length === b.length) {
30
- var i = 0;
31
- while (i < a.length && areEquivDeeply(a[i], b[i])) {
32
- ++i;
33
- }
34
- if (i >= a.length) {
35
- return true;
36
- }
37
- }
38
- return false;
39
- }
40
- if (typeof a !== 'object' || typeof b !== 'object') {
41
- return false;
42
- }
43
- return areEquivDeeply(Object.entries(a), Object.entries(b));
44
- }
45
- function extractDefaultMap(paramsAsArray) {
46
- return Object.fromEntries(paramsAsArray.map(function (paramDescription) {
47
- return [paramDescription.name, (0, _FlatParameters.extractDefault)(paramDescription)];
48
- }));
49
- }
50
- function makeDeltaMap(defaultMap, changingMap) {
51
- if (!changingMap) {
52
- return null;
53
- }
54
- var delta = {};
55
- Object.entries(defaultMap).forEach(function (_ref) {
56
- var k = _ref[0],
57
- v = _ref[1];
58
- var m = changingMap[k];
59
- if (!areEquivDeeply(v, m)) {
60
- delta[k] = m;
61
- }
62
- });
63
- return Object.keys(delta).length ? delta : null;
64
- }
65
- function makeFullMap(defaultMap, changingMap) {
66
- if (!changingMap) {
67
- return _extends({}, defaultMap);
68
- }
69
- var full = {};
70
- Object.entries(defaultMap).forEach(function (_ref2) {
71
- var k = _ref2[0],
72
- v = _ref2[1];
73
- if (!changingMap.hasOwnProperty(k)) {
74
- full[k] = v;
75
- } else {
76
- var m = changingMap[k];
77
- if (!areEquivDeeply(v, m)) {
78
- full[k] = m;
79
- } else {
80
- full[k] = v;
81
- }
82
- }
83
- });
84
- return full;
85
- }
86
- var useImportExportParams = function useImportExportParams(paramsAsArray, initValues, returnsDelta, variant) {
87
- if (returnsDelta === void 0) {
88
- returnsDelta = true;
89
- }
90
- if (variant === void 0) {
91
- variant = 'outlined';
92
- }
93
- var defaultValues = (0, _react.useMemo)(function () {
94
- return extractDefaultMap(paramsAsArray);
95
- }, [paramsAsArray]);
96
- var baseValues = (0, _react.useMemo)(function () {
97
- return makeFullMap(defaultValues, initValues);
98
- }, [defaultValues, initValues]);
99
- var _useState = (0, _react.useState)(baseValues),
100
- currentValues = _useState[0],
101
- setCurrentValues = _useState[1];
102
- var prevRef = (0, _react.useRef)();
103
- var onChange = (0, _react.useCallback)(function (paramName, value, isEdit) {
104
- if (!isEdit) {
105
- setCurrentValues(function (prevCurrentValues) {
106
- var _extends2;
107
- return _extends({}, prevCurrentValues, (_extends2 = {}, _extends2[paramName] = value, _extends2));
108
- });
109
- }
110
- }, []);
111
- var resetValuesToDefault = (0, _react.useCallback)(function (isToInit) {
112
- if (isToInit === void 0) {
113
- isToInit = true;
114
- }
115
- setCurrentValues(isToInit ? baseValues : defaultValues);
116
- }, [defaultValues, baseValues]);
117
- var jsx = (0, _react.useMemo)(function () {
118
- return /*#__PURE__*/_react["default"].createElement(_FlatParameters["default"], {
119
- paramsAsArray: paramsAsArray,
120
- initValues: currentValues,
121
- onChange: onChange,
122
- variant: variant
123
- });
124
- }, [paramsAsArray, currentValues, onChange, variant]);
125
- var ret;
126
- if (prevRef.current && areEquivDeeply(prevRef.current.currentValues, currentValues)) {
127
- if (!returnsDelta) {
128
- ret = [prevRef.current.currentValues, jsx, resetValuesToDefault];
129
- } else if (!prevRef.current.deltaValues) {
130
- ret = [makeDeltaMap(defaultValues, currentValues), jsx, resetValuesToDefault];
131
- } else {
132
- ret = [prevRef.current.deltaValues, jsx, resetValuesToDefault];
133
- }
134
- } else {
135
- ret = [returnsDelta ? makeDeltaMap(defaultValues, currentValues) : currentValues, jsx, resetValuesToDefault];
136
- }
137
- prevRef.current = {
138
- currentValues: currentValues,
139
- jsx: ret[1],
140
- deltaValues: returnsDelta ? ret[0] : null
141
- };
142
- return ret;
143
- };
144
- exports.useImportExportParams = useImportExportParams;