@sis-cc/dotstatsuite-visions 7.15.1 → 7.17.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.
@@ -0,0 +1,463 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _extends = Object.assign || 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; };
6
+
7
+ var _react = require('react');
8
+
9
+ var _react2 = _interopRequireDefault(_react);
10
+
11
+ var _propTypes = require('prop-types');
12
+
13
+ var _propTypes2 = _interopRequireDefault(_propTypes);
14
+
15
+ var _ramda = require('ramda');
16
+
17
+ var R = _interopRequireWildcard(_ramda);
18
+
19
+ var _core = require('@material-ui/core');
20
+
21
+ var _styles = require('@material-ui/styles');
22
+
23
+ var _Input = require('./Input');
24
+
25
+ var _Input2 = _interopRequireDefault(_Input);
26
+
27
+ var _Button = require('../Button');
28
+
29
+ var _Button2 = _interopRequireDefault(_Button);
30
+
31
+ var _Select = require('../Select');
32
+
33
+ var _Select2 = _interopRequireDefault(_Select);
34
+
35
+ var _PermsissionsTabs = require('./PermsissionsTabs');
36
+
37
+ var _PermsissionsTabs2 = _interopRequireDefault(_PermsissionsTabs);
38
+
39
+ 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; } }
40
+
41
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
+
43
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
44
+ return {
45
+ paper: {
46
+ backgroundColor: theme.palette.background.paper,
47
+ padding: theme.spacing(2)
48
+ },
49
+ label: {
50
+ color: theme.palette.primary.main
51
+ },
52
+ textarea: {
53
+ width: '100%',
54
+ padding: theme.spacing(1)
55
+ },
56
+ submitButton: {
57
+ margin: theme.spacing(1)
58
+ },
59
+ contentLabel: {
60
+ fontSize: '14px'
61
+ }
62
+ };
63
+ });
64
+
65
+ var UserRightForm = function UserRightForm(_ref) {
66
+ var labels = _ref.labels,
67
+ artefactTypes = _ref.artefactTypes,
68
+ dataSpaces = _ref.dataSpaces,
69
+ permissionTabs = _ref.permissionTabs,
70
+ apply = _ref.apply,
71
+ onCancel = _ref.onCancel,
72
+ user = _ref.user,
73
+ artefactID = _ref.artefactID,
74
+ artefactType = _ref.artefactType,
75
+ artefactVersion = _ref.artefactVersion,
76
+ maintenanceAgencyID = _ref.maintenanceAgencyID,
77
+ dataspace = _ref.dataspace;
78
+
79
+ var classes = useStyles();
80
+
81
+ var _useState = (0, _react.useState)(R.propOr('*', 'value')(user)),
82
+ userValue = _useState[0],
83
+ setUserValue = _useState[1];
84
+
85
+ var _useState2 = (0, _react.useState)(R.propOr('*', 'value')(dataspace)),
86
+ dataspaceValue = _useState2[0],
87
+ setDataspaceValue = _useState2[1];
88
+
89
+ var _useState3 = (0, _react.useState)(R.propOr('*', 'value')(artefactType)),
90
+ artefactTypeValue = _useState3[0],
91
+ setArtefactTypeValue = _useState3[1];
92
+
93
+ var _useState4 = (0, _react.useState)(R.propOr('*', 'value')(maintenanceAgencyID)),
94
+ maintenanceAgencyIDValue = _useState4[0],
95
+ setMaintenanceAgencyIDValue = _useState4[1];
96
+
97
+ var _useState5 = (0, _react.useState)(R.propOr('*', 'value')(artefactID)),
98
+ artefactIDValue = _useState5[0],
99
+ setArtefactIDValue = _useState5[1];
100
+
101
+ var _useState6 = (0, _react.useState)(R.propOr('*', 'value')(artefactVersion)),
102
+ artefactVersionValue = _useState6[0],
103
+ setArtefactVersionValue = _useState6[1];
104
+
105
+ var initialSelectedPermissions = R.pipe(R.pathOr([], ['options', 'data']), R.filter(R.prop('isSelected')), R.reduce(function (acc, _ref2) {
106
+ var id = _ref2.id;
107
+ return R.assoc(id, id, acc);
108
+ }, {}))(permissionTabs);
109
+
110
+ var _useState7 = (0, _react.useState)(initialSelectedPermissions),
111
+ selectedPermissions = _useState7[0],
112
+ setSelectedPermissions = _useState7[1];
113
+
114
+ var onCheckPermission = function onCheckPermission(id) {
115
+ if (R.has(id, selectedPermissions)) {
116
+ setSelectedPermissions(R.dissoc(id, selectedPermissions));
117
+ } else {
118
+ setSelectedPermissions(R.assoc(id, id, selectedPermissions));
119
+ }
120
+ };
121
+ var permissionsIdsIndexedByGroups = R.reduce(function (acc, group) {
122
+ return R.assoc(group.id, group.options, acc);
123
+ }, {}, R.pathOr([], ['permissions', 'data'], permissionTabs));
124
+ var selectedPermissionsGroups = R.pipe(R.pathOr([], ['permissions', 'data']), R.filter(function (group) {
125
+ return group.options && R.all(function (id) {
126
+ return R.has(id, selectedPermissions);
127
+ }, group.options || []);
128
+ }), R.reduce(function (acc, _ref3) {
129
+ var id = _ref3.id;
130
+ return R.assoc(id, id, acc);
131
+ }, {}))(permissionTabs);
132
+
133
+ var onCheckPermissionGroup = function onCheckPermissionGroup(id) {
134
+ if (R.has(id, selectedPermissionsGroups)) {
135
+ setSelectedPermissions(R.omit(permissionsIdsIndexedByGroups[id], selectedPermissions));
136
+ } else {
137
+ setSelectedPermissions(_extends({}, selectedPermissions, R.indexBy(R.identity, permissionsIdsIndexedByGroups[id])));
138
+ }
139
+ };
140
+ var evolvedPermissions = R.pipe(R.over(R.lensPath(['options', 'data']), R.map(function (opt) {
141
+ return R.assoc('isSelected', R.has(opt.id, selectedPermissions), opt);
142
+ })), R.over(R.lensPath(['permissions', 'data']), R.map(function (opt) {
143
+ return R.assoc('isSelected', R.has(opt.id, selectedPermissionsGroups), opt);
144
+ })))(permissionTabs);
145
+
146
+ var onChangeDataspace = function onChangeDataspace(value) {
147
+ return setDataspaceValue(value);
148
+ };
149
+ var onChangeArtefactType = function onChangeArtefactType(value) {
150
+ return setArtefactTypeValue(value);
151
+ };
152
+
153
+ var handleCancel = function handleCancel() {
154
+ if (R.is(Function)(onCancel)) return onCancel();
155
+ };
156
+ var handleSubmit = function handleSubmit() {
157
+ if (R.is(Function)(apply)) return apply({
158
+ user: userValue,
159
+ dataspace: dataspaceValue,
160
+ artefactType: artefactTypeValue,
161
+ maintenanceAgencyID: maintenanceAgencyIDValue,
162
+ artefactID: artefactIDValue,
163
+ artefactVersion: artefactVersionValue,
164
+ checkedPermissions: R.values(selectedPermissions)
165
+ });
166
+ };
167
+
168
+ var isErrorDataspace = R.pipe(R.find(R.propEq('value', dataspaceValue)), R.isNil)(dataSpaces);
169
+ var isErrorArtefactType = R.pipe(R.find(R.propEq('value', artefactTypeValue)), R.isNil)(artefactTypes);
170
+ var isValidPermissions = !R.isEmpty(selectedPermissions) && !R.equals(selectedPermissions, initialSelectedPermissions);
171
+ var isValidFields = R.all(function (value) {
172
+ return !R.isEmpty(value) && !R.isNil(value);
173
+ }, [userValue, maintenanceAgencyIDValue, artefactIDValue, artefactVersionValue, dataspaceValue, artefactTypeValue]);
174
+
175
+ return _react2.default.createElement(
176
+ _core.Grid,
177
+ { container: true, className: classes.paper, 'data-testid': 'permission-test-id' },
178
+ _react2.default.createElement(
179
+ _core.Grid,
180
+ { item: true, container: true, xs: 12, md: 12, justifyContent: 'space-between' },
181
+ _react2.default.createElement(
182
+ _core.Grid,
183
+ { item: true, container: true, xs: 12, sm: 12, md: 5, 'flex-direction': 'column' },
184
+ _react2.default.createElement(
185
+ _core.Grid,
186
+ { item: true, container: true, xs: 12, alignItems: 'center' },
187
+ _react2.default.createElement(
188
+ _core.Grid,
189
+ { item: true, xs: 12, md: 4 },
190
+ _react2.default.createElement(
191
+ _core.Typography,
192
+ { variant: 'h6', className: classes.contentLabel },
193
+ R.prop('user')(labels)
194
+ )
195
+ ),
196
+ _react2.default.createElement(
197
+ _core.Grid,
198
+ { item: true, xs: 12, md: 8 },
199
+ _react2.default.createElement(_Input2.default, {
200
+ variant: 'outlined',
201
+ name: 'User',
202
+ type: 'text',
203
+ fullWidth: true,
204
+ value: userValue,
205
+ onChange: function onChange(e) {
206
+ return setUserValue(e.target.value);
207
+ },
208
+ isControlled: true,
209
+ textFieldProps: { disabled: R.propOr(false, 'disabled')(user) }
210
+ })
211
+ )
212
+ ),
213
+ _react2.default.createElement(
214
+ _core.Grid,
215
+ { item: true, container: true, xs: 12, alignItems: 'center' },
216
+ _react2.default.createElement(
217
+ _core.Grid,
218
+ { item: true, xs: 12, md: 4 },
219
+ _react2.default.createElement(
220
+ _core.Typography,
221
+ { variant: 'h6', className: classes.contentLabel, style: { paddingTop: 8 } },
222
+ R.prop('dataspace')(labels)
223
+ )
224
+ ),
225
+ _react2.default.createElement(
226
+ _core.Grid,
227
+ { item: true, xs: 12, md: 8 },
228
+ _react2.default.createElement(_Select2.default, {
229
+ value: R.defaultTo('*', dataspaceValue),
230
+ items: dataSpaces,
231
+ onChange: onChangeDataspace,
232
+ textFieldProps: {
233
+ disabled: R.propOr(false, 'disabled')(dataspace),
234
+ error: isErrorDataspace
235
+ }
236
+ })
237
+ )
238
+ ),
239
+ _react2.default.createElement(
240
+ _core.Grid,
241
+ { item: true, container: true, xs: 12, alignItems: 'center' },
242
+ _react2.default.createElement(
243
+ _core.Grid,
244
+ { item: true, xs: 12, md: 4 },
245
+ _react2.default.createElement(
246
+ _core.Typography,
247
+ { variant: 'h6', className: classes.contentLabel, style: { paddingTop: 8 } },
248
+ R.prop('artefactType')(labels)
249
+ )
250
+ ),
251
+ _react2.default.createElement(
252
+ _core.Grid,
253
+ { item: true, xs: 12, md: 8 },
254
+ _react2.default.createElement(_Select2.default, {
255
+ value: R.defaultTo('*', artefactTypeValue),
256
+ items: artefactTypes,
257
+ onChange: onChangeArtefactType,
258
+ textFieldProps: {
259
+ disabled: R.propOr(false, 'disabled')(artefactType),
260
+ error: isErrorArtefactType
261
+ }
262
+ })
263
+ )
264
+ )
265
+ ),
266
+ _react2.default.createElement(
267
+ _core.Grid,
268
+ { item: true, container: true, xs: 12, sm: 12, md: 5, 'flex-direction': 'column' },
269
+ _react2.default.createElement(
270
+ _core.Grid,
271
+ { item: true, container: true, xs: 12, alignItems: 'center' },
272
+ _react2.default.createElement(
273
+ _core.Grid,
274
+ { item: true, xs: 12, md: 4 },
275
+ _react2.default.createElement(
276
+ _core.Typography,
277
+ { variant: 'h6', className: classes.contentLabel, style: { paddingTop: 8 } },
278
+ R.prop('maintenanceAgencyID')(labels)
279
+ )
280
+ ),
281
+ _react2.default.createElement(
282
+ _core.Grid,
283
+ { item: true, xs: 12, md: 8 },
284
+ _react2.default.createElement(_Input2.default, {
285
+ variant: 'outlined',
286
+ name: 'title',
287
+ type: 'text',
288
+ fullWidth: true,
289
+ value: maintenanceAgencyIDValue,
290
+ onChange: function onChange(e) {
291
+ return setMaintenanceAgencyIDValue(e.target.value);
292
+ },
293
+ isControlled: true,
294
+ textFieldProps: {
295
+ disabled: R.propOr(false, 'disabled')(maintenanceAgencyID)
296
+ }
297
+ })
298
+ )
299
+ ),
300
+ _react2.default.createElement(
301
+ _core.Grid,
302
+ { item: true, container: true, xs: 12, alignItems: 'center' },
303
+ _react2.default.createElement(
304
+ _core.Grid,
305
+ { item: true, xs: 12, md: 4 },
306
+ _react2.default.createElement(
307
+ _core.Typography,
308
+ { variant: 'h6', className: classes.contentLabel, style: { paddingTop: 8 } },
309
+ R.prop('artefactID')(labels)
310
+ )
311
+ ),
312
+ _react2.default.createElement(
313
+ _core.Grid,
314
+ { item: true, xs: 12, md: 8 },
315
+ _react2.default.createElement(_Input2.default, {
316
+ variant: 'outlined',
317
+ name: 'title',
318
+ type: 'text',
319
+ fullWidth: true,
320
+ value: artefactIDValue,
321
+ onChange: function onChange(e) {
322
+ return setArtefactIDValue(e.target.value);
323
+ },
324
+ isControlled: true,
325
+ textFieldProps: { disabled: R.propOr(false, 'disabled')(artefactID) }
326
+ })
327
+ )
328
+ ),
329
+ _react2.default.createElement(
330
+ _core.Grid,
331
+ { item: true, container: true, xs: 12, alignItems: 'center' },
332
+ _react2.default.createElement(
333
+ _core.Grid,
334
+ { item: true, xs: 12, md: 4 },
335
+ _react2.default.createElement(
336
+ _core.Typography,
337
+ { variant: 'h6', className: classes.contentLabel, style: { paddingTop: 8 } },
338
+ R.prop('artefactVersion')(labels)
339
+ )
340
+ ),
341
+ _react2.default.createElement(
342
+ _core.Grid,
343
+ { item: true, xs: 12, md: 8 },
344
+ _react2.default.createElement(_Input2.default, {
345
+ variant: 'outlined',
346
+ name: 'title',
347
+ type: 'text',
348
+ fullWidth: true,
349
+ value: artefactVersionValue,
350
+ onChange: function onChange(e) {
351
+ return setArtefactVersionValue(e.target.value);
352
+ },
353
+ isControlled: true,
354
+ textFieldProps: {
355
+ disabled: R.propOr(false, 'disabled')(artefactVersion)
356
+ }
357
+ })
358
+ )
359
+ )
360
+ )
361
+ ),
362
+ _react2.default.createElement(
363
+ _core.Grid,
364
+ { item: true, container: true },
365
+ _react2.default.createElement(_PermsissionsTabs2.default, {
366
+ data: evolvedPermissions,
367
+ labels: labels,
368
+ onCheckPermission: onCheckPermission,
369
+ onCheckPermissionGroup: onCheckPermissionGroup
370
+ })
371
+ ),
372
+ _react2.default.createElement(
373
+ _core.Grid,
374
+ { item: true, container: true, justifyContent: 'flex-end', alignItems: 'center' },
375
+ _react2.default.createElement(
376
+ _core.Grid,
377
+ { item: true },
378
+ _react2.default.createElement(
379
+ _Button2.default,
380
+ {
381
+ 'aria-label': R.prop('cancel')(labels),
382
+ type: 'submit',
383
+ disabled: false,
384
+ variant: 'contained',
385
+ color: 'default',
386
+ alternative: 'siscc',
387
+ onClick: handleCancel,
388
+ size: 'medium',
389
+ className: classes.submitButton
390
+ },
391
+ R.prop('cancel')(labels)
392
+ )
393
+ ),
394
+ _react2.default.createElement(
395
+ _core.Grid,
396
+ { item: true },
397
+ _react2.default.createElement(
398
+ _Button2.default,
399
+ {
400
+ 'aria-label': R.prop('submit')(labels),
401
+ type: 'submit',
402
+ disabled: !isValidPermissions || !isValidFields || isErrorArtefactType || isErrorDataspace,
403
+ variant: 'contained',
404
+ color: 'primary',
405
+ alternative: 'siscc',
406
+ onClick: handleSubmit,
407
+ size: 'medium',
408
+ className: classes.submitButton
409
+ },
410
+ R.prop('submit')(labels)
411
+ )
412
+ )
413
+ )
414
+ );
415
+ };
416
+ UserRightForm.propTypes = process.env.NODE_ENV !== "production" ? {
417
+ apply: _propTypes2.default.func,
418
+ onCancel: _propTypes2.default.func,
419
+ artefactTypes: _propTypes2.default.arrayOf(_propTypes2.default.shape({
420
+ value: _propTypes2.default.string,
421
+ label: _propTypes2.default.string
422
+ })),
423
+ dataSpaces: _propTypes2.default.arrayOf(_propTypes2.default.shape({
424
+ value: _propTypes2.default.string,
425
+ label: _propTypes2.default.string
426
+ })),
427
+ permissionTabs: _propTypes2.default.object,
428
+ user: _propTypes2.default.shape({
429
+ value: _propTypes2.default.string,
430
+ disabled: _propTypes2.default.bool
431
+ }),
432
+ dataspace: _propTypes2.default.shape({
433
+ value: _propTypes2.default.string,
434
+ disabled: _propTypes2.default.bool
435
+ }),
436
+ artefactType: _propTypes2.default.shape({
437
+ value: _propTypes2.default.string,
438
+ disabled: _propTypes2.default.bool
439
+ }),
440
+ maintenanceAgencyID: _propTypes2.default.shape({
441
+ value: _propTypes2.default.string,
442
+ disabled: _propTypes2.default.bool
443
+ }),
444
+ artefactID: _propTypes2.default.shape({
445
+ value: _propTypes2.default.string,
446
+ disabled: _propTypes2.default.bool
447
+ }),
448
+ artefactVersion: _propTypes2.default.shape({
449
+ value: _propTypes2.default.string,
450
+ disabled: _propTypes2.default.bool
451
+ }),
452
+ labels: _propTypes2.default.shape({
453
+ title: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
454
+ user: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
455
+ dataspace: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
456
+ artefactType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
457
+ maintenanceAgencyID: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
458
+ artefactID: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),
459
+ artefactVersion: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element])
460
+ })
461
+ } : {};
462
+ exports.default = UserRightForm;
463
+ module.exports = exports['default'];
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _UserRightForm = require('./UserRightForm');
6
+
7
+ Object.defineProperty(exports, 'default', {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _interopRequireDefault(_UserRightForm).default;
11
+ }
12
+ });
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ module.exports = exports['default'];
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.T4_BREAKPOINTS = exports.innerPalette = exports.sisccTheme = exports.AuthDialog = exports.VerticalButton = exports.Tooltip = exports.ToggleButton = exports.Tag = exports.TablePreview = exports.TableLayout = exports.Cell = exports.TableHtml5 = exports.TableHeader = exports.TableFooter = exports.Spotlight = exports.SisccFooter = exports.Share = exports.Select = exports.ScopeList = exports.reduceChildren = exports.spotlightScopeListEngine = exports.PeriodPicker = exports.Pagination = exports.NoData = exports.Logo = exports.Loading = exports.LabelDivider = exports.InputNumber = exports.Input = exports.ExpansionPanel = exports.DataFooter = exports.DataHeader = exports.Dataflow = exports.DataEdit = exports.CollapsibleTree = exports.CollapseButtons = exports.Chips = exports.ChartsConfig = exports.Button = exports.Breadcrumbs = exports.ApiQueries = exports.Alert = undefined;
4
+ exports.T4_BREAKPOINTS = exports.innerPalette = exports.sisccTheme = exports.AuthDialog = exports.VerticalButton = exports.UserRightForm = exports.Tooltip = exports.ToggleButton = exports.Tag = exports.TablePreview = exports.TableLayout = exports.Cell = exports.TableHtml5 = exports.TableHeader = exports.TableFooter = exports.Spotlight = exports.SisccFooter = exports.Share = exports.Select = exports.ScopeList = exports.reduceChildren = exports.spotlightScopeListEngine = exports.PeriodPicker = exports.Pagination = exports.NoData = exports.Logo = exports.Loading = exports.LabelDivider = exports.InputNumber = exports.Input = exports.ExpansionPanel = exports.DataFooter = exports.DataHeader = exports.Dataflow = exports.DataEdit = exports.Contact = exports.CollapsibleTree = exports.CollapseButtons = exports.Chips = exports.ChartsConfig = exports.Button = exports.Breadcrumbs = exports.ApiQueries = exports.Alert = undefined;
5
5
 
6
6
  var _Alert = require('./Alert');
7
7
 
@@ -75,6 +75,15 @@ Object.defineProperty(exports, 'CollapsibleTree', {
75
75
  }
76
76
  });
77
77
 
78
+ var _Contact = require('./Contact');
79
+
80
+ Object.defineProperty(exports, 'Contact', {
81
+ enumerable: true,
82
+ get: function get() {
83
+ return _interopRequireDefault(_Contact).default;
84
+ }
85
+ });
86
+
78
87
  var _DataEdit = require('./DataEdit');
79
88
 
80
89
  Object.defineProperty(exports, 'DataEdit', {
@@ -342,6 +351,15 @@ Object.defineProperty(exports, 'Tooltip', {
342
351
  }
343
352
  });
344
353
 
354
+ var _UserRightForm = require('./UserRightForm');
355
+
356
+ Object.defineProperty(exports, 'UserRightForm', {
357
+ enumerable: true,
358
+ get: function get() {
359
+ return _interopRequireDefault(_UserRightForm).default;
360
+ }
361
+ });
362
+
345
363
  var _VerticalButton = require('./VerticalButton');
346
364
 
347
365
  Object.defineProperty(exports, 'VerticalButton', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sis-cc/dotstatsuite-visions",
3
- "version": "7.15.1",
3
+ "version": "7.17.0",
4
4
  "description": "Library of visual components",
5
5
  "author": "OECD",
6
6
  "homepage": "https://visions-qa.siscc.org/#o",
@@ -36,6 +36,7 @@
36
36
  "@react-hook/size": "^2.1.1",
37
37
  "classnames": "^2.2.6",
38
38
  "date-fns": "^1.30.1",
39
+ "isemail": "^3.2.0",
39
40
  "numeral": "^2.0.6",
40
41
  "prop-types": "^15.7.2",
41
42
  "ramda": "^0.27.0",
@@ -161,7 +162,7 @@
161
162
  ],
162
163
  "rules": {
163
164
  "no-console": "warn",
164
- "no-unused-vars": "warn",
165
+ "no-unused-vars": "error",
165
166
  "react/display-name": "off",
166
167
  "react-hooks/rules-of-hooks": "error",
167
168
  "react-hooks/exhaustive-deps": "warn",