flipper-ui 0.25.0 → 0.25.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.
Files changed (119) hide show
  1. package/core/Advertise.d.ts +4 -11
  2. package/core/AutoComplete.d.ts +3 -3
  3. package/core/Avatar.d.ts +3 -3
  4. package/core/Badge.d.ts +4 -4
  5. package/core/Box.d.ts +3 -3
  6. package/core/Button.d.ts +3 -3
  7. package/core/Card.d.ts +7 -7
  8. package/core/Checkbox.d.ts +3 -3
  9. package/core/Chip.d.ts +3 -3
  10. package/core/ChipField.d.ts +2 -2
  11. package/core/Collapse.d.ts +3 -3
  12. package/core/Container.d.ts +2 -2
  13. package/core/Content.d.ts +2 -2
  14. package/core/DateTime.d.ts +3 -3
  15. package/core/Dialog.d.ts +3 -3
  16. package/core/Divider.d.ts +3 -3
  17. package/core/Drawer.d.ts +4 -4
  18. package/core/EditableTable.d.ts +2 -2
  19. package/core/ExpansionPanel.d.ts +3 -3
  20. package/core/Fab.d.ts +3 -3
  21. package/core/Fade.d.ts +3 -3
  22. package/core/Grow.d.ts +3 -3
  23. package/core/Header.d.ts +3 -3
  24. package/core/IconButton.d.ts +3 -3
  25. package/core/InputAdornment.d.ts +3 -3
  26. package/core/InputBase.d.ts +3 -3
  27. package/core/Line.d.ts +3 -3
  28. package/core/List.d.ts +3 -3
  29. package/core/ListItem.d.ts +3 -3
  30. package/core/MaskField.d.ts +4 -4
  31. package/core/Menu.d.ts +4 -4
  32. package/core/Node.d.ts +3 -3
  33. package/core/Pagination.d.ts +3 -3
  34. package/core/Paper.d.ts +3 -3
  35. package/core/PinInput.d.ts +12 -0
  36. package/core/PinInput.js +165 -0
  37. package/core/Progress.d.ts +3 -3
  38. package/core/Radio.d.ts +3 -3
  39. package/core/RadioGroup.d.ts +4 -4
  40. package/core/Select.d.ts +5 -3
  41. package/core/Select.js +42 -13
  42. package/core/Sidebar.d.ts +5 -5
  43. package/core/Sidebar.js +2 -1
  44. package/core/Slide.d.ts +3 -3
  45. package/core/Slider.d.ts +3 -3
  46. package/core/Snackbar.d.ts +3 -3
  47. package/core/Stepper.d.ts +3 -3
  48. package/core/Tab.d.ts +3 -3
  49. package/core/Table.d.ts +5 -5
  50. package/core/TableBody.d.ts +2 -2
  51. package/core/TableCell.d.ts +5 -5
  52. package/core/TableHead.d.ts +3 -3
  53. package/core/TableRow.d.ts +4 -4
  54. package/core/Tabs.d.ts +3 -3
  55. package/core/TextField.d.ts +8 -6
  56. package/core/TextField.js +62 -15
  57. package/core/ThemeProvider.d.ts +2 -2
  58. package/core/Tooltip.d.ts +3 -3
  59. package/core/Tree.d.ts +2 -2
  60. package/core/Typography.d.ts +2 -2
  61. package/core/Zoom.d.ts +3 -3
  62. package/core/types.d.ts +9 -0
  63. package/core/types.js +1 -0
  64. package/index.d.ts +1 -0
  65. package/index.js +9 -1
  66. package/package.json +84 -79
  67. package/stories/Advertise.stories.js +31 -0
  68. package/stories/AutoComplete.stories.js +133 -0
  69. package/stories/AutoCompleteLab.stories.js +64 -0
  70. package/stories/Avatar.stories.js +44 -0
  71. package/stories/Badge.stories.js +63 -0
  72. package/stories/Box.stories.js +29 -0
  73. package/stories/Breadcrumb.stories.js +41 -0
  74. package/stories/Button.stories.js +132 -0
  75. package/stories/Card.stories.js +43 -0
  76. package/stories/Checkbox.stories.js +98 -0
  77. package/stories/Chip.stories.js +72 -0
  78. package/stories/ChipField.stories.js +60 -0
  79. package/stories/Collapse.stories.js +70 -0
  80. package/stories/Container.stories.js +24 -0
  81. package/stories/Content.stories.js +28 -0
  82. package/stories/DataTable.stories.js +737 -0
  83. package/stories/Dialog.stories.js +82 -0
  84. package/stories/Divider.stories.js +46 -0
  85. package/stories/Drawer.stories.js +55 -0
  86. package/stories/EditTable.stories.js +149 -0
  87. package/stories/ExpansionPanel.stories.js +54 -0
  88. package/stories/Fab.stories.js +28 -0
  89. package/stories/Fade.stories.js +54 -0
  90. package/stories/Grow.stories.js +63 -0
  91. package/stories/Header.stories.js +41 -0
  92. package/stories/IconButton.stories.js +48 -0
  93. package/stories/InputAdornment.stories.js +28 -0
  94. package/stories/InputBase.stories.js +54 -0
  95. package/stories/Line.stories.js +35 -0
  96. package/stories/List.stories.js +112 -0
  97. package/stories/MaskField.stories.js +58 -0
  98. package/stories/Menu.stories.js +82 -0
  99. package/stories/Node.stories.js +39 -0
  100. package/stories/Pagination.stories.js +39 -0
  101. package/stories/Paper.stories.js +65 -0
  102. package/stories/PinInput.stories.js +133 -0
  103. package/stories/Progress.stories.js +86 -0
  104. package/stories/Radio.stories.js +52 -0
  105. package/stories/RadioGroup.stories.js +47 -0
  106. package/stories/Select.stories.js +100 -0
  107. package/stories/Sidebar.stories.js +43 -0
  108. package/stories/Slide.stories.js +62 -0
  109. package/stories/Slider.stories.js +69 -0
  110. package/stories/Snackbar.stories.js +102 -0
  111. package/stories/Stepper.stories.js +43 -0
  112. package/stories/Table.stories.js +32 -0
  113. package/stories/Tabs.stories.js +37 -0
  114. package/stories/TextField.stories.js +151 -0
  115. package/stories/Tooltip.stories.js +129 -0
  116. package/stories/Tree.stories.js +45 -0
  117. package/stories/Typography.stories.js +130 -0
  118. package/stories/Zooms.stories.js +54 -0
  119. package/docz/Wrapper.js +0 -25
@@ -0,0 +1,737 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.Crud = exports.NoPagination = exports.NoHeader = exports.Empty = exports.Default = exports["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _format = _interopRequireDefault(require("date-fns/format"));
21
+
22
+ var _DataTable = _interopRequireDefault(require("../core/DataTable/DataTable"));
23
+
24
+ var _Button = _interopRequireDefault(require("../core/Button"));
25
+
26
+ var _Typography = _interopRequireDefault(require("../core/Typography"));
27
+
28
+ var _DataTableAction = require("../core/DataTable/DataTableAction");
29
+
30
+ var _types = require("../core/DataTable/types");
31
+
32
+ var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
33
+
34
+ var _Edit = _interopRequireDefault(require("@material-ui/icons/Edit"));
35
+
36
+ var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
37
+
38
+ var _Cancel = _interopRequireDefault(require("@material-ui/icons/Cancel"));
39
+
40
+ var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+
46
+ var _default = {
47
+ title: 'DataTable',
48
+ component: _DataTable["default"]
49
+ };
50
+ exports["default"] = _default;
51
+
52
+ // const Template: ComponentStory<typeof DataTable> = args =>
53
+ // <DataTable { ...args } />
54
+ var Default = function Default() {
55
+ var date = function date() {
56
+ return new Date();
57
+ };
58
+
59
+ var data = [{
60
+ id: 1,
61
+ product: 'Magazine Magazine Magazine',
62
+ price: 13.5,
63
+ quantity: 12,
64
+ date: date()
65
+ }, {
66
+ id: 2,
67
+ product: 'Table',
68
+ price: 200.49,
69
+ quantity: 3,
70
+ date: date()
71
+ }, {
72
+ id: 3,
73
+ product: 'Chair',
74
+ price: 53.5,
75
+ quantity: 9,
76
+ date: date()
77
+ }, {
78
+ id: 4,
79
+ product: 'Keyboard',
80
+ price: 53.29,
81
+ quantity: 4,
82
+ date: date()
83
+ }, {
84
+ id: 5,
85
+ product: 'Mouse',
86
+ price: 27.13,
87
+ quantity: 16,
88
+ date: date()
89
+ }, {
90
+ id: 6,
91
+ product: 'Microphone',
92
+ price: 89.14,
93
+ quantity: 2,
94
+ date: date()
95
+ }, {
96
+ id: 7,
97
+ product: 'Headset',
98
+ price: 117.85,
99
+ quantity: 6,
100
+ date: date()
101
+ }, {
102
+ id: 8,
103
+ product: 'Pencil',
104
+ price: 1.5,
105
+ quantity: 11,
106
+ date: date()
107
+ }];
108
+ var columns = [{
109
+ title: 'Product',
110
+ type: 'text',
111
+ field: 'product',
112
+ cellStyle: {
113
+ maxWidth: '72px',
114
+ whiteSpace: 'nowrap',
115
+ overflow: 'hidden',
116
+ textOverflow: 'ellipsis'
117
+ },
118
+ editable: true
119
+ }, {
120
+ title: 'Price (R$)',
121
+ field: 'price',
122
+ type: 'numeric-float',
123
+ editable: false,
124
+ getValue: function getValue(value) {
125
+ return value.toFixed(2).replace('.', ',');
126
+ }
127
+ }, {
128
+ title: 'Quantity',
129
+ field: 'quantity',
130
+ type: 'numeric-int',
131
+ editable: true,
132
+ cellStyle: {
133
+ width: '82px'
134
+ }
135
+ }, {
136
+ title: 'Date',
137
+ field: 'date',
138
+ type: 'datetime',
139
+ editable: true,
140
+ getValue: function getValue(value) {
141
+ return (0, _format["default"])(value, 'dd/MM/yyyy HH:mm');
142
+ },
143
+ cellStyle: {
144
+ width: '200px'
145
+ }
146
+ }];
147
+ return /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
148
+ data: data,
149
+ pagination: {
150
+ rowsPerPage: 5,
151
+ labelRowsPerPage: 'Row per page'
152
+ },
153
+ columns: columns
154
+ });
155
+ };
156
+
157
+ exports.Default = Default;
158
+
159
+ var Empty = function Empty() {
160
+ var columns = [{
161
+ title: 'Product',
162
+ field: 'product',
163
+ type: 'text',
164
+ cellStyle: {
165
+ maxWidth: '72px',
166
+ whiteSpace: 'nowrap',
167
+ overflow: 'hidden',
168
+ textOverflow: 'ellipsis'
169
+ },
170
+ editable: true
171
+ }, {
172
+ title: 'Price (R$)',
173
+ field: 'price',
174
+ type: 'numeric-float',
175
+ editable: false,
176
+ getValue: function getValue(value) {
177
+ return value.toFixed(2).replace('.', ',');
178
+ }
179
+ }];
180
+
181
+ var componentForEmpty = /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
182
+ style: {
183
+ display: 'flex',
184
+ position: 'absolute',
185
+ height: '100%',
186
+ width: '100%',
187
+ justifyContent: 'center',
188
+ alignItems: 'center',
189
+ boxSizing: 'border-box'
190
+ }
191
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Empty DataTable"))));
192
+
193
+ return /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
194
+ data: [],
195
+ bodyStyle: {
196
+ position: 'relative'
197
+ },
198
+ hiddenRowHeight: 53,
199
+ componentForEmpty: componentForEmpty,
200
+ pagination: {
201
+ rowsPerPage: 5,
202
+ labelRowsPerPage: 'Row per page'
203
+ },
204
+ columns: columns
205
+ });
206
+ };
207
+
208
+ exports.Empty = Empty;
209
+
210
+ var NoHeader = function NoHeader() {
211
+ var date = function date() {
212
+ return new Date();
213
+ };
214
+
215
+ var data = [{
216
+ id: 1,
217
+ product: 'Magazine Magazine Magazine',
218
+ price: 13.5,
219
+ quantity: 12,
220
+ date: date()
221
+ }, {
222
+ id: 2,
223
+ product: 'Table',
224
+ price: 200.49,
225
+ quantity: 3,
226
+ date: date()
227
+ }, {
228
+ id: 3,
229
+ product: 'Chair',
230
+ price: 53.5,
231
+ quantity: 9,
232
+ date: date()
233
+ }, {
234
+ id: 4,
235
+ product: 'Keyboard',
236
+ price: 53.29,
237
+ quantity: 4,
238
+ date: date()
239
+ }, {
240
+ id: 5,
241
+ product: 'Mouse',
242
+ price: 27.13,
243
+ quantity: 16,
244
+ date: date()
245
+ }, {
246
+ id: 6,
247
+ product: 'Microphone',
248
+ price: 89.14,
249
+ quantity: 2,
250
+ date: date()
251
+ }, {
252
+ id: 7,
253
+ product: 'Headset',
254
+ price: 117.85,
255
+ quantity: 6,
256
+ date: date()
257
+ }, {
258
+ id: 8,
259
+ product: 'Pencil',
260
+ price: 1.5,
261
+ quantity: 11,
262
+ date: date()
263
+ }];
264
+ var columns = [{
265
+ title: 'Product',
266
+ field: 'product',
267
+ type: 'text',
268
+ cellStyle: {
269
+ maxWidth: '72px',
270
+ whiteSpace: 'nowrap',
271
+ overflow: 'hidden',
272
+ textOverflow: 'ellipsis'
273
+ },
274
+ editable: true
275
+ }, {
276
+ title: 'Price (R$)',
277
+ field: 'price',
278
+ type: 'numeric-float',
279
+ editable: false,
280
+ getValue: function getValue(value) {
281
+ return value.toFixed(2).replace('.', ',');
282
+ }
283
+ }, {
284
+ title: 'Quantity',
285
+ field: 'quantity',
286
+ type: 'numeric-int',
287
+ editable: true,
288
+ cellStyle: {
289
+ width: '82px'
290
+ }
291
+ }, {
292
+ title: 'Date',
293
+ field: 'date',
294
+ type: 'datetime',
295
+ editable: true,
296
+ getValue: function getValue(value) {
297
+ return (0, _format["default"])(value, 'dd/MM/yyyy HH:mm');
298
+ },
299
+ cellStyle: {
300
+ width: '200px'
301
+ }
302
+ }];
303
+ return /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
304
+ data: data,
305
+ noHeader: true,
306
+ hiddenRowHeight: 53,
307
+ pagination: {
308
+ rowsPerPage: 5,
309
+ labelRowsPerPage: 'Row per page'
310
+ },
311
+ columns: columns
312
+ });
313
+ };
314
+
315
+ exports.NoHeader = NoHeader;
316
+
317
+ var NoPagination = function NoPagination() {
318
+ var date = function date() {
319
+ return new Date();
320
+ };
321
+
322
+ var data = [{
323
+ id: 1,
324
+ product: 'Magazine Magazine Magazine',
325
+ price: 13.5,
326
+ quantity: 12,
327
+ date: date()
328
+ }, {
329
+ id: 2,
330
+ product: 'Table',
331
+ price: 200.49,
332
+ quantity: 3,
333
+ date: date()
334
+ }, {
335
+ id: 3,
336
+ product: 'Chair',
337
+ price: 53.5,
338
+ quantity: 9,
339
+ date: date()
340
+ }, {
341
+ id: 4,
342
+ product: 'Keyboard',
343
+ price: 53.29,
344
+ quantity: 4,
345
+ date: date()
346
+ }, {
347
+ id: 5,
348
+ product: 'Mouse',
349
+ price: 27.13,
350
+ quantity: 16,
351
+ date: date()
352
+ }, {
353
+ id: 6,
354
+ product: 'Microphone',
355
+ price: 89.14,
356
+ quantity: 2,
357
+ date: date()
358
+ }, {
359
+ id: 7,
360
+ product: 'Headset',
361
+ price: 117.85,
362
+ quantity: 6,
363
+ date: date()
364
+ }, {
365
+ id: 8,
366
+ product: 'Pencil',
367
+ price: 1.5,
368
+ quantity: 11,
369
+ date: date()
370
+ }];
371
+ var columns = [{
372
+ title: 'Product',
373
+ field: 'product',
374
+ type: 'text',
375
+ cellStyle: {
376
+ maxWidth: '72px',
377
+ whiteSpace: 'nowrap',
378
+ overflow: 'hidden',
379
+ textOverflow: 'ellipsis'
380
+ },
381
+ editable: true
382
+ }, {
383
+ title: 'Price (R$)',
384
+ field: 'price',
385
+ type: 'numeric-float',
386
+ editable: false,
387
+ getValue: function getValue(value) {
388
+ return value.toFixed(2).replace('.', ',');
389
+ }
390
+ }, {
391
+ title: 'Quantity',
392
+ field: 'quantity',
393
+ type: 'numeric-int',
394
+ editable: true,
395
+ cellStyle: {
396
+ width: '82px'
397
+ }
398
+ }, {
399
+ title: 'Date',
400
+ field: 'date',
401
+ type: 'datetime',
402
+ editable: true,
403
+ getValue: function getValue(value) {
404
+ return (0, _format["default"])(value, 'dd/MM/yyyy HH:mm');
405
+ },
406
+ cellStyle: {
407
+ width: '200px'
408
+ }
409
+ }];
410
+ return /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
411
+ data: data,
412
+ hiddenRowHeight: 53,
413
+ pagination: {
414
+ disabled: true
415
+ },
416
+ columns: columns
417
+ });
418
+ };
419
+
420
+ exports.NoPagination = NoPagination;
421
+
422
+ var Crud = function Crud() {
423
+ var date = function date() {
424
+ return new Date();
425
+ };
426
+
427
+ var controllerRef = (0, _react.useRef)();
428
+
429
+ var _useState = (0, _react.useState)({}),
430
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
431
+ errors = _useState2[0],
432
+ setErrors = _useState2[1];
433
+
434
+ var randomId = function randomId() {
435
+ return Math.random().toString(36).substr(0, 12);
436
+ };
437
+
438
+ var _useState3 = (0, _react.useState)([{
439
+ id: 1,
440
+ product: 'Magazine',
441
+ price: 13.5,
442
+ quantity: 12,
443
+ date: date()
444
+ }, {
445
+ id: 2,
446
+ product: 'Table',
447
+ price: 200.49,
448
+ quantity: 3,
449
+ date: date()
450
+ }, {
451
+ id: 3,
452
+ product: 'Chair',
453
+ price: 53.5,
454
+ quantity: 9,
455
+ date: date()
456
+ }, {
457
+ id: 4,
458
+ product: 'Keyboard',
459
+ price: 53.29,
460
+ quantity: 4,
461
+ date: date()
462
+ }, {
463
+ id: 5,
464
+ product: 'Mouse',
465
+ price: 27.13,
466
+ quantity: 16,
467
+ date: date()
468
+ }, {
469
+ id: 6,
470
+ product: 'Microphone',
471
+ price: 89.14,
472
+ quantity: 2,
473
+ date: date()
474
+ }, {
475
+ id: 7,
476
+ product: 'Headset',
477
+ price: 117.85,
478
+ quantity: 6,
479
+ date: date()
480
+ }, {
481
+ id: 8,
482
+ product: 'Pencil',
483
+ price: 1.5,
484
+ quantity: 11,
485
+ date: date()
486
+ }]),
487
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
488
+ data = _useState4[0],
489
+ setData = _useState4[1];
490
+
491
+ var handleAdd = function handleAdd() {
492
+ controllerRef.current.addRow({
493
+ id: randomId(),
494
+ date: date()
495
+ });
496
+ };
497
+
498
+ var handleEdit = function handleEdit(id) {
499
+ return function () {
500
+ controllerRef.current.editRow(id);
501
+ };
502
+ };
503
+
504
+ var handleDelete = function handleDelete(id) {
505
+ return function () {
506
+ controllerRef.current.pushRowView(id, 'confirmDelete');
507
+ };
508
+ };
509
+
510
+ var handleView = function handleView(id) {
511
+ return function () {
512
+ controllerRef.current.viewRow(id);
513
+ };
514
+ };
515
+
516
+ var isNullable = function isNullable(x) {
517
+ return x == null;
518
+ };
519
+
520
+ var isNotPositive = function isNotPositive(x) {
521
+ return x <= 0;
522
+ };
523
+
524
+ var isAfterNow = function isAfterNow(x) {
525
+ return +x > +new Date();
526
+ };
527
+
528
+ var isEmpty = function isEmpty(x) {
529
+ return x.trim().length === 0;
530
+ };
531
+
532
+ var handleErrors = function handleErrors(id) {
533
+ var nextItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
534
+ var isPartial = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
535
+ var errorFields = [{
536
+ field: 'quantity',
537
+ isErrorIf: [isNaN, isNotPositive]
538
+ }, {
539
+ field: 'date',
540
+ isErrorIf: [isAfterNow]
541
+ }, {
542
+ field: 'product',
543
+ isErrorIf: [isEmpty]
544
+ }, {
545
+ field: 'price',
546
+ isErrorIf: [isNaN, isNotPositive]
547
+ }].filter(function (_ref) {
548
+ var field = _ref.field,
549
+ isErrorIf = _ref.isErrorIf;
550
+ var value = nextItem[field];
551
+
552
+ if (isNullable(value)) {
553
+ if (isPartial) {
554
+ return false;
555
+ }
556
+
557
+ return true;
558
+ }
559
+
560
+ return isErrorIf.some(function (cond) {
561
+ return cond(value);
562
+ });
563
+ }).map(function (_ref2) {
564
+ var field = _ref2.field;
565
+ return field;
566
+ });
567
+ setErrors(function (errors) {
568
+ return _objectSpread(_objectSpread({}, errors), {}, (0, _defineProperty2["default"])({}, id, new Set(errorFields)));
569
+ });
570
+ return errorFields.length > 0;
571
+ };
572
+
573
+ var handleSave = function handleSave(id) {
574
+ var isNew = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
575
+ return function () {
576
+ var nextItem = controllerRef.current.getEditedRowData(id);
577
+
578
+ if (!nextItem) {
579
+ return;
580
+ }
581
+
582
+ if (handleErrors(id, nextItem, !isNew)) {
583
+ return;
584
+ }
585
+
586
+ if (isNew) {
587
+ setData(function (data) {
588
+ return [nextItem].concat((0, _toConsumableArray2["default"])(data));
589
+ });
590
+ } else {
591
+ setData(function (data) {
592
+ return data.map(function (item) {
593
+ if (item.id === id) {
594
+ return _objectSpread(_objectSpread({}, item), nextItem);
595
+ }
596
+
597
+ return item;
598
+ });
599
+ });
600
+ }
601
+
602
+ controllerRef.current.viewRow(id);
603
+ };
604
+ };
605
+
606
+ var columns = [{
607
+ title: 'Product',
608
+ field: 'product',
609
+ type: 'text',
610
+ cellStyle: {
611
+ width: '120px'
612
+ },
613
+ editable: true
614
+ }, {
615
+ title: 'Price (R$)',
616
+ field: 'price',
617
+ type: 'numeric-float',
618
+ editable: true,
619
+ getValue: function getValue(value) {
620
+ return value.toFixed(2).replace('.', ',');
621
+ }
622
+ }, {
623
+ title: 'Quantity',
624
+ field: 'quantity',
625
+ type: 'numeric-int',
626
+ editable: true,
627
+ cellStyle: {
628
+ width: '82px'
629
+ }
630
+ }, {
631
+ title: 'Date',
632
+ field: 'date',
633
+ type: 'datetime',
634
+ editable: true,
635
+ getValue: function getValue(value) {
636
+ return (0, _format["default"])(value, 'dd/MM/yyyy HH:mm');
637
+ },
638
+ cellStyle: {
639
+ width: '200px'
640
+ }
641
+ }, {
642
+ title: 'Actions',
643
+ type: 'actions',
644
+ align: 'center',
645
+ cellStyle: {
646
+ width: '60px'
647
+ },
648
+ renderCell: function renderCell(_ref3) {
649
+ var id = _ref3.data.id,
650
+ rowMode = _ref3.rowMode,
651
+ _ref3$isNew = _ref3.isNew,
652
+ isNew = _ref3$isNew === void 0 ? false : _ref3$isNew;
653
+
654
+ if (rowMode === _types.RowMode.View) {
655
+ return /*#__PURE__*/_react["default"].createElement("div", {
656
+ style: {
657
+ display: 'flex'
658
+ }
659
+ }, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
660
+ label: "Edit",
661
+ onClick: handleEdit(id)
662
+ }, /*#__PURE__*/_react["default"].createElement(_Edit["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
663
+ label: "Delete",
664
+ onClick: handleDelete(id)
665
+ }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)));
666
+ }
667
+
668
+ return /*#__PURE__*/_react["default"].createElement("div", {
669
+ style: {
670
+ display: 'flex'
671
+ }
672
+ }, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
673
+ label: "Save",
674
+ onClick: handleSave(id, isNew)
675
+ }, /*#__PURE__*/_react["default"].createElement(_Save["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
676
+ label: "Cancel",
677
+ onClick: handleView(id)
678
+ }, /*#__PURE__*/_react["default"].createElement(_Cancel["default"], null)));
679
+ }
680
+ }];
681
+ var rowViews = {
682
+ confirmDelete: function confirmDelete(_ref4) {
683
+ var data = _ref4.data;
684
+ return /*#__PURE__*/_react["default"].createElement("td", {
685
+ colSpan: 5
686
+ }, /*#__PURE__*/_react["default"].createElement("div", {
687
+ style: {
688
+ display: 'flex',
689
+ padding: '16px',
690
+ justifyContent: 'space-between'
691
+ }
692
+ }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Confirm Delete \"", data.product, "\"?"), /*#__PURE__*/_react["default"].createElement("div", {
693
+ style: {
694
+ display: 'flex'
695
+ }
696
+ }, /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
697
+ label: "CheckIcon",
698
+ onClick: function onClick() {
699
+ controllerRef.current.popRowView(data.id);
700
+ setData(function (dataList) {
701
+ return dataList.filter(function (item) {
702
+ return item.id !== data.id;
703
+ });
704
+ });
705
+ }
706
+ }, /*#__PURE__*/_react["default"].createElement(_Check["default"], null)), /*#__PURE__*/_react["default"].createElement(_DataTableAction.DataTableAction, {
707
+ label: "CancelIcon",
708
+ onClick: function onClick() {
709
+ controllerRef.current.popRowView(data.id);
710
+ }
711
+ }, /*#__PURE__*/_react["default"].createElement(_Cancel["default"], null)))));
712
+ }
713
+ };
714
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
715
+ onClick: handleAdd
716
+ }, "Add Row"), /*#__PURE__*/_react["default"].createElement(_DataTable["default"], {
717
+ data: data,
718
+ controllerRef: controllerRef,
719
+ errors: errors,
720
+ pagination: {
721
+ rowsPerPage: 5,
722
+ showFirstButton: true,
723
+ showLastButton: true,
724
+ labelRowsPerPage: 'Rows per page:',
725
+ labelDisplayedRows: function labelDisplayedRows(_ref5) {
726
+ var from = _ref5.from,
727
+ to = _ref5.to,
728
+ count = _ref5.count;
729
+ return "".concat(from, "-").concat(to, " of ").concat(count !== -1 ? count : "more than ".concat(to));
730
+ }
731
+ },
732
+ rowViews: rowViews,
733
+ columns: columns
734
+ }));
735
+ };
736
+
737
+ exports.Crud = Crud;