ywana-core8 0.0.569 → 0.0.572

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.
package/dist/index.umd.js CHANGED
@@ -11,7 +11,7 @@
11
11
  var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
12
12
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
13
13
 
14
- function _catch$3(body, recover) {
14
+ function _catch$4(body, recover) {
15
15
  try {
16
16
  var result = body();
17
17
  } catch (e) {
@@ -43,7 +43,7 @@
43
43
  body: body
44
44
  };
45
45
  if (headers) request.headers = request.headers;
46
- return Promise.resolve(_catch$3(function () {
46
+ return Promise.resolve(_catch$4(function () {
47
47
  return Promise.resolve(fetch(URL, request)).then(function (response) {
48
48
  var _exit;
49
49
 
@@ -144,6 +144,24 @@
144
144
  }
145
145
  };
146
146
 
147
+ function _extends() {
148
+ _extends = Object.assign || function (target) {
149
+ for (var i = 1; i < arguments.length; i++) {
150
+ var source = arguments[i];
151
+
152
+ for (var key in source) {
153
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
154
+ target[key] = source[key];
155
+ }
156
+ }
157
+ }
158
+
159
+ return target;
160
+ };
161
+
162
+ return _extends.apply(this, arguments);
163
+ }
164
+
147
165
  /**
148
166
  * Icon
149
167
  */
@@ -176,6 +194,99 @@
176
194
  }, icon);
177
195
  };
178
196
 
197
+ var Accordion = function Accordion(props) {
198
+ var className = props.className,
199
+ _props$sections = props.sections,
200
+ sections = _props$sections === void 0 ? [] : _props$sections,
201
+ onCheck = props.onCheck;
202
+
203
+ var _useState = React.useState(sections.map(function (section) {
204
+ return section.open;
205
+ })),
206
+ openSections = _useState[0],
207
+ setOpenSections = _useState[1];
208
+
209
+ var _useState2 = React.useState(sections.map(function (section) {
210
+ return section.checked;
211
+ })),
212
+ checkedSections = _useState2[0],
213
+ setCheckedSections = _useState2[1];
214
+
215
+ function toggle(index) {
216
+ var next = openSections.map(function (open, i) {
217
+ return i === index ? !open : open;
218
+ });
219
+ setOpenSections(next);
220
+ }
221
+
222
+ function check(index) {
223
+ var next = checkedSections.map(function (checked, i) {
224
+ return i === index ? !checked : checked;
225
+ });
226
+ setCheckedSections(next);
227
+ if (onCheck) onCheck(index, next[index], sections[index].id);
228
+ }
229
+
230
+ return /*#__PURE__*/React__default["default"].createElement("div", {
231
+ className: "accordion " + className
232
+ }, sections.map(function (section, index) {
233
+ var isOpen = openSections[index];
234
+ var isChecked = checkedSections[index];
235
+ return /*#__PURE__*/React__default["default"].createElement(AccordionSection, _extends({
236
+ key: index
237
+ }, section, {
238
+ open: isOpen,
239
+ checked: isChecked,
240
+ onToggle: function onToggle() {
241
+ return toggle(index);
242
+ },
243
+ onCheck: function onCheck() {
244
+ return check(index);
245
+ }
246
+ }), section.children);
247
+ }));
248
+ };
249
+
250
+ var AccordionSection = function AccordionSection(props) {
251
+ var checked = props.checked,
252
+ icon = props.icon,
253
+ title = props.title,
254
+ subtitle = props.subtitle,
255
+ _props$open = props.open,
256
+ open = _props$open === void 0 ? false : _props$open,
257
+ onToggle = props.onToggle,
258
+ onCheck = props.onCheck,
259
+ toolbar = props.toolbar,
260
+ info = props.info,
261
+ children = props.children;
262
+ var togglerIcon = open ? "expand_less" : "expand_more";
263
+ var checkedIcon = checked === undefined || checked === null ? null : checked === false ? "check_box_outline_blank" : "check_box";
264
+ return /*#__PURE__*/React__default["default"].createElement("section", {
265
+ className: "accordion-section"
266
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, checkedIcon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
267
+ className: "accordion-section-checker",
268
+ icon: checkedIcon,
269
+ clickable: true,
270
+ action: onCheck
271
+ }) : '', icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
272
+ className: "accordion-section-icon",
273
+ icon: icon
274
+ }) : '', title ? /*#__PURE__*/React__default["default"].createElement("div", {
275
+ className: "accordion-section--title"
276
+ }, title) : '', subtitle ? /*#__PURE__*/React__default["default"].createElement("div", {
277
+ className: "accordion-section--subtitle"
278
+ }, subtitle) : '', info ? /*#__PURE__*/React__default["default"].createElement("div", {
279
+ className: "accordion-section--info"
280
+ }, info) : '', toolbar ? /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: "accordion-section--toolbar"
282
+ }, toolbar) : '', /*#__PURE__*/React__default["default"].createElement(Icon, {
283
+ className: "accordion-section-toggler",
284
+ icon: togglerIcon,
285
+ clickable: true,
286
+ action: onToggle
287
+ })), open ? /*#__PURE__*/React__default["default"].createElement("main", null, children) : '');
288
+ };
289
+
179
290
  /**
180
291
  * HTML Button
181
292
  */
@@ -495,24 +606,6 @@
495
606
  }, props.children));
496
607
  };
497
608
 
498
- function _extends() {
499
- _extends = Object.assign || function (target) {
500
- for (var i = 1; i < arguments.length; i++) {
501
- var source = arguments[i];
502
-
503
- for (var key in source) {
504
- if (Object.prototype.hasOwnProperty.call(source, key)) {
505
- target[key] = source[key];
506
- }
507
- }
508
- }
509
-
510
- return target;
511
- };
512
-
513
- return _extends.apply(this, arguments);
514
- }
515
-
516
609
  /**
517
610
  * List
518
611
  */
@@ -853,7 +946,7 @@
853
946
  };
854
947
 
855
948
  return /*#__PURE__*/React__default["default"].createElement("section", {
856
- className: "section2 " + className
949
+ className: "section " + className
857
950
  }, /*#__PURE__*/React__default["default"].createElement(Header, {
858
951
  icon: icon,
859
952
  title: title
@@ -1376,8 +1469,8 @@
1376
1469
  if (!readOnly) setOpen(!open);
1377
1470
  }
1378
1471
 
1379
- function select(event) {
1380
- var next = event.target.getAttribute("value");
1472
+ function select(value) {
1473
+ var next = value;
1381
1474
  var option = options.find(function (option) {
1382
1475
  return option.value === next;
1383
1476
  });
@@ -1402,12 +1495,13 @@
1402
1495
  var lis = items.map(function (option) {
1403
1496
  return /*#__PURE__*/React__default["default"].createElement("li", {
1404
1497
  key: option.value,
1405
- value: option.value
1498
+ value: option.value,
1499
+ onClick: function onClick() {
1500
+ return select(option.value);
1501
+ }
1406
1502
  }, /*#__PURE__*/React__default["default"].createElement(Text, null, option.label));
1407
1503
  });
1408
- return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
1409
- onMouseDown: select
1410
- }, lis));
1504
+ return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", null, lis));
1411
1505
  } else {
1412
1506
  return null;
1413
1507
  }
@@ -3620,7 +3714,9 @@
3620
3714
  return _goto(id);
3621
3715
  }
3622
3716
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3623
- text: title
3717
+ text: title,
3718
+ top: ".5rem",
3719
+ left: "2rem"
3624
3720
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3625
3721
  key: id,
3626
3722
  icon: icon,
@@ -4191,13 +4287,13 @@
4191
4287
  * Tabbed Content Editor
4192
4288
  */
4193
4289
 
4194
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4195
- var content = _ref2.content,
4196
- filter = _ref2.filter,
4197
- _ref2$grouped = _ref2.grouped,
4198
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4199
- onChange = _ref2.onChange,
4200
- onReload = _ref2.onReload;
4290
+ var TabbedContentEditor = function TabbedContentEditor(_ref3) {
4291
+ var content = _ref3.content,
4292
+ filter = _ref3.filter,
4293
+ _ref3$grouped = _ref3.grouped,
4294
+ grouped = _ref3$grouped === void 0 ? false : _ref3$grouped,
4295
+ onChange = _ref3.onChange,
4296
+ onReload = _ref3.onReload;
4201
4297
 
4202
4298
  var _useState = React.useState(0),
4203
4299
  tab = _useState[0],
@@ -4282,9 +4378,9 @@
4282
4378
  * TreededContentEditor
4283
4379
  */
4284
4380
 
4285
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4286
- var content = _ref3.content,
4287
- onChange = _ref3.onChange;
4381
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4382
+ var content = _ref4.content,
4383
+ onChange = _ref4.onChange;
4288
4384
  var value = content.value();
4289
4385
  var nodes = Object.values(content.type).filter(function (field) {
4290
4386
  return field.type === TYPES.ARRAY;
@@ -4349,13 +4445,13 @@
4349
4445
  * FieldEditor
4350
4446
  */
4351
4447
 
4352
- var FieldEditor = function FieldEditor(_ref4) {
4353
- var field = _ref4.field,
4354
- onChange = _ref4.onChange,
4355
- content = _ref4.content,
4356
- _ref4$outlined = _ref4.outlined,
4357
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4358
- onReload = _ref4.onReload;
4448
+ var FieldEditor = function FieldEditor(_ref5) {
4449
+ var field = _ref5.field,
4450
+ onChange = _ref5.onChange,
4451
+ content = _ref5.content,
4452
+ _ref5$outlined = _ref5.outlined,
4453
+ outlined = _ref5$outlined === void 0 ? false : _ref5$outlined,
4454
+ onReload = _ref5.onReload;
4359
4455
  var id = field.id,
4360
4456
  type = field.type,
4361
4457
  item = field.item,
@@ -4442,11 +4538,11 @@
4442
4538
  * Entity Editor
4443
4539
  */
4444
4540
 
4445
- var EntityEditor = function EntityEditor(_ref5) {
4446
- var field = _ref5.field,
4447
- _ref5$value = _ref5.value,
4448
- value = _ref5$value === void 0 ? {} : _ref5$value,
4449
- onChange = _ref5.onChange;
4541
+ var EntityEditor = function EntityEditor(_ref6) {
4542
+ var field = _ref6.field,
4543
+ _ref6$value = _ref6.value,
4544
+ value = _ref6$value === void 0 ? {} : _ref6$value,
4545
+ onChange = _ref6.onChange;
4450
4546
  var id = field.id,
4451
4547
  item = field.item,
4452
4548
  label = field.label;
@@ -4506,13 +4602,13 @@
4506
4602
  */
4507
4603
 
4508
4604
 
4509
- var StringEditor = function StringEditor(_ref6) {
4510
- var field = _ref6.field,
4511
- _ref6$value = _ref6.value,
4512
- value = _ref6$value === void 0 ? '' : _ref6$value,
4513
- onChange = _ref6.onChange,
4514
- content = _ref6.content,
4515
- outlined = _ref6.outlined;
4605
+ var StringEditor = function StringEditor(_ref7) {
4606
+ var field = _ref7.field,
4607
+ _ref7$value = _ref7.value,
4608
+ value = _ref7$value === void 0 ? '' : _ref7$value,
4609
+ onChange = _ref7.onChange,
4610
+ content = _ref7.content,
4611
+ outlined = _ref7.outlined;
4516
4612
  var id = field.id,
4517
4613
  format = field.format,
4518
4614
  label = field.label,
@@ -4628,12 +4724,12 @@
4628
4724
  * Number Editor
4629
4725
  */
4630
4726
 
4631
- var NumberEditor = function NumberEditor(_ref7) {
4632
- var field = _ref7.field,
4633
- value = _ref7.value,
4634
- onChange = _ref7.onChange,
4635
- _ref7$outlined = _ref7.outlined,
4636
- outlined = _ref7$outlined === void 0 ? false : _ref7$outlined;
4727
+ var NumberEditor = function NumberEditor(_ref8) {
4728
+ var field = _ref8.field,
4729
+ value = _ref8.value,
4730
+ onChange = _ref8.onChange,
4731
+ _ref8$outlined = _ref8.outlined,
4732
+ outlined = _ref8$outlined === void 0 ? false : _ref8$outlined;
4637
4733
  var id = field.id,
4638
4734
  label = field.label,
4639
4735
  _field$editable2 = field.editable,
@@ -4666,11 +4762,11 @@
4666
4762
  */
4667
4763
 
4668
4764
 
4669
- var ListEditor = function ListEditor(_ref8) {
4670
- var field = _ref8.field,
4671
- _ref8$value = _ref8.value,
4672
- value = _ref8$value === void 0 ? [] : _ref8$value,
4673
- onChange = _ref8.onChange;
4765
+ var ListEditor = function ListEditor(_ref9) {
4766
+ var field = _ref9.field,
4767
+ _ref9$value = _ref9.value,
4768
+ value = _ref9$value === void 0 ? [] : _ref9$value,
4769
+ onChange = _ref9.onChange;
4674
4770
  var label = field.label;
4675
4771
 
4676
4772
  function change(id, value) {
@@ -4690,12 +4786,12 @@
4690
4786
  * Multi Selection Editor
4691
4787
  */
4692
4788
 
4693
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4694
- var field = _ref9.field,
4695
- _ref9$value = _ref9.value,
4696
- value = _ref9$value === void 0 ? [] : _ref9$value,
4697
- content = _ref9.content,
4698
- onChange = _ref9.onChange;
4789
+ var MultiSelectionEditor = function MultiSelectionEditor(_ref10) {
4790
+ var field = _ref10.field,
4791
+ _ref10$value = _ref10.value,
4792
+ value = _ref10$value === void 0 ? [] : _ref10$value,
4793
+ content = _ref10.content,
4794
+ onChange = _ref10.onChange;
4699
4795
  var id = field.id,
4700
4796
  label = field.label,
4701
4797
  options = field.options;
@@ -4734,12 +4830,12 @@
4734
4830
  * Collection Editor
4735
4831
  */
4736
4832
 
4737
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4738
- var field = _ref10.field,
4739
- _ref10$value = _ref10.value,
4740
- value = _ref10$value === void 0 ? [] : _ref10$value,
4741
- onChange = _ref10.onChange,
4742
- onReload = _ref10.onReload;
4833
+ var CollectionEditor$1 = function CollectionEditor(_ref11) {
4834
+ var field = _ref11.field,
4835
+ _ref11$value = _ref11.value,
4836
+ value = _ref11$value === void 0 ? [] : _ref11$value,
4837
+ onChange = _ref11.onChange,
4838
+ onReload = _ref11.onReload;
4743
4839
  var id = field.id,
4744
4840
  item = field.item,
4745
4841
  label = field.label,
@@ -4809,7 +4905,7 @@
4809
4905
  onChange: onChange,
4810
4906
  onReload: reload
4811
4907
  }) // : <DataTable {...table} editable={editable} />
4812
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4908
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4813
4909
  icon: "info",
4814
4910
  title: label,
4815
4911
  data: value,
@@ -4829,9 +4925,9 @@
4829
4925
  * Collection Adder
4830
4926
  */
4831
4927
 
4832
- var CollectionAdder = function CollectionAdder(_ref11) {
4833
- var item = _ref11.item,
4834
- onAdd = _ref11.onAdd;
4928
+ var CollectionAdder = function CollectionAdder(_ref12) {
4929
+ var item = _ref12.item,
4930
+ onAdd = _ref12.onAdd;
4835
4931
 
4836
4932
  var _useState3 = React.useState(false),
4837
4933
  edit = _useState3[0],
@@ -4900,7 +4996,7 @@
4900
4996
  */
4901
4997
 
4902
4998
 
4903
- var TableEditor$2 = function TableEditor(props) {
4999
+ var TableEditor$3 = function TableEditor(props) {
4904
5000
  var select = function select(row) {
4905
5001
  try {
4906
5002
  if (onSelect) onSelect(row.id);
@@ -5244,7 +5340,7 @@
5244
5340
  * Collection Page
5245
5341
  */
5246
5342
 
5247
- function _catch$2(body, recover) {
5343
+ function _catch$3(body, recover) {
5248
5344
  try {
5249
5345
  var result = body();
5250
5346
  } catch (e) {
@@ -5821,7 +5917,7 @@
5821
5917
  try {
5822
5918
  var _this2 = this;
5823
5919
 
5824
- var _temp2 = _catch$2(function () {
5920
+ var _temp2 = _catch$3(function () {
5825
5921
  return Promise.resolve(API.all(null, page)).then(function (data) {
5826
5922
  _this2.all = field ? data[field] : data;
5827
5923
  });
@@ -5870,7 +5966,7 @@
5870
5966
  },
5871
5967
  fetch: function fetch(id) {
5872
5968
  try {
5873
- return Promise.resolve(_catch$2(function () {
5969
+ return Promise.resolve(_catch$3(function () {
5874
5970
  return Promise.resolve(API.find(id));
5875
5971
  }, function (error) {
5876
5972
  console.log(error);
@@ -5886,7 +5982,7 @@
5886
5982
  try {
5887
5983
  var _this8 = this;
5888
5984
 
5889
- var _temp6 = _catch$2(function () {
5985
+ var _temp6 = _catch$3(function () {
5890
5986
  return Promise.resolve(API.create(form)).then(function () {
5891
5987
  return Promise.resolve(_this8.load()).then(function () {});
5892
5988
  });
@@ -5903,7 +5999,7 @@
5903
5999
  try {
5904
6000
  var _this10 = this;
5905
6001
 
5906
- var _temp8 = _catch$2(function () {
6002
+ var _temp8 = _catch$3(function () {
5907
6003
  return Promise.resolve(API.update(form)).then(function () {
5908
6004
  return Promise.resolve(_this10.load()).then(function () {});
5909
6005
  });
@@ -5920,7 +6016,7 @@
5920
6016
  try {
5921
6017
  var _this12 = this;
5922
6018
 
5923
- var _temp10 = _catch$2(function () {
6019
+ var _temp10 = _catch$3(function () {
5924
6020
  return Promise.resolve(API.patch(id, form)).then(function () {
5925
6021
  return Promise.resolve(_this12.load()).then(function () {});
5926
6022
  });
@@ -5937,7 +6033,7 @@
5937
6033
  try {
5938
6034
  var _this14 = this;
5939
6035
 
5940
- var _temp12 = _catch$2(function () {
6036
+ var _temp12 = _catch$3(function () {
5941
6037
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5942
6038
  return Promise.resolve(_this14.load()).then(function () {});
5943
6039
  });
@@ -5954,7 +6050,7 @@
5954
6050
  try {
5955
6051
  var _this16 = this;
5956
6052
 
5957
- var _temp14 = _catch$2(function () {
6053
+ var _temp14 = _catch$3(function () {
5958
6054
  return Promise.resolve(API.remove(id)).then(function () {
5959
6055
  return Promise.resolve(_this16.load()).then(function () {});
5960
6056
  });
@@ -6167,7 +6263,7 @@
6167
6263
  * Table Page
6168
6264
  */
6169
6265
 
6170
- function _catch$1(body, recover) {
6266
+ function _catch$2(body, recover) {
6171
6267
  try {
6172
6268
  var result = body();
6173
6269
  } catch (e) {
@@ -6294,7 +6390,7 @@
6294
6390
  pageContext = _useContext[0],
6295
6391
  setPageContext = _useContext[1];
6296
6392
 
6297
- var context = TableContext$1(url, field, host, urlQuery, params);
6393
+ var context = TableContext$2(url, field, host, urlQuery, params);
6298
6394
  var selected = pageContext.selected;
6299
6395
  var timer = React.useRef(null);
6300
6396
 
@@ -6394,13 +6490,13 @@
6394
6490
  if (rowSelected || rowChecked) {
6395
6491
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6396
6492
  className: "table-page"
6397
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6493
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6398
6494
  content: new Content(schema, form),
6399
6495
  filter: editorFilter,
6400
6496
  onChange: change,
6401
6497
  onClose: closeAside,
6402
6498
  editable: canEdit
6403
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6499
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6404
6500
  schema: schema,
6405
6501
  actions: selectionActions
6406
6502
  }) : null);
@@ -6441,17 +6537,17 @@
6441
6537
  onSelect: playScenario
6442
6538
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6443
6539
  className: "table-page"
6444
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6540
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6445
6541
  schema: schema,
6446
6542
  url: url,
6447
6543
  user: user
6448
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6544
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6449
6545
  schema: schema,
6450
6546
  onSave: canQuery ? saveQuery : null
6451
6547
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6452
6548
  key: id,
6453
6549
  className: "table-page"
6454
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6550
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6455
6551
  icon: icon,
6456
6552
  title: name,
6457
6553
  schema: schema,
@@ -6465,7 +6561,7 @@
6465
6561
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6466
6562
  };
6467
6563
 
6468
- var TableRowEditor$1 = function TableRowEditor(props) {
6564
+ var TableRowEditor$2 = function TableRowEditor(props) {
6469
6565
  var name = props.name,
6470
6566
  content = props.content,
6471
6567
  filter = props.filter,
@@ -6494,7 +6590,7 @@
6494
6590
  */
6495
6591
 
6496
6592
 
6497
- var TableSelector$1 = function TableSelector(props) {
6593
+ var TableSelector$2 = function TableSelector(props) {
6498
6594
  var schema = props.schema,
6499
6595
  _props$actions2 = props.actions,
6500
6596
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6557,7 +6653,7 @@
6557
6653
  */
6558
6654
 
6559
6655
 
6560
- var TableQueries$1 = function TableQueries(props) {
6656
+ var TableQueries$2 = function TableQueries(props) {
6561
6657
  var remove = function remove(id) {
6562
6658
  try {
6563
6659
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6619,7 +6715,7 @@
6619
6715
  */
6620
6716
 
6621
6717
 
6622
- var TableFilters$1 = function TableFilters(props) {
6718
+ var TableFilters$2 = function TableFilters(props) {
6623
6719
  var reload = function reload() {
6624
6720
  try {
6625
6721
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6715,7 +6811,7 @@
6715
6811
  */
6716
6812
 
6717
6813
 
6718
- var TableEditor$1 = function TableEditor(props) {
6814
+ var TableEditor$2 = function TableEditor(props) {
6719
6815
  var checkOne = function checkOne(id, field, value) {
6720
6816
  check([id], value);
6721
6817
  return Promise.resolve();
@@ -6947,6 +7043,1028 @@
6947
7043
  * Table Context
6948
7044
  */
6949
7045
 
7046
+ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
7047
+ var API = TableAPI$2(url, host, params);
7048
+ return {
7049
+ all: [],
7050
+ checked: new Set([]),
7051
+ selected: null,
7052
+ filters: {},
7053
+ queries: [],
7054
+ load: function load(filter) {
7055
+ try {
7056
+ var _this2 = this;
7057
+
7058
+ var _temp5 = _catch$2(function () {
7059
+ var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
7060
+ var field = filter[key];
7061
+
7062
+ if (field) {
7063
+ if (CHECK['isObject'](field)) {
7064
+ Object.keys(field).forEach(function (key2) {
7065
+ var subfield = field[key2];
7066
+ if (subfield) filters[key + "." + key2] = subfield;
7067
+ });
7068
+ } else {
7069
+ filters[key] = field;
7070
+ }
7071
+ }
7072
+
7073
+ return filters;
7074
+ }, {}) : [];
7075
+ return Promise.resolve(API.all(filters)).then(function (data) {
7076
+ _this2.all = field ? data[field] : data;
7077
+ });
7078
+ }, function (error) {
7079
+ console.log(error);
7080
+ });
7081
+
7082
+ return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {}) : void 0);
7083
+ } catch (e) {
7084
+ return Promise.reject(e);
7085
+ }
7086
+ },
7087
+ check: function check(ids, isChecked) {
7088
+ var _this3 = this;
7089
+
7090
+ if (isChecked === void 0) {
7091
+ isChecked = true;
7092
+ }
7093
+
7094
+ if (isChecked) {
7095
+ ids.forEach(function (id) {
7096
+ return _this3.checked.add(id);
7097
+ });
7098
+ } else {
7099
+ ids.forEach(function (id) {
7100
+ return _this3.checked["delete"](id);
7101
+ });
7102
+ }
7103
+ },
7104
+ select: function select(id) {
7105
+ var result = this.all.find(function (item) {
7106
+ return item.id === id;
7107
+ });
7108
+ this.selected = result;
7109
+ },
7110
+ clear: function clear() {
7111
+ this.selected = null;
7112
+ },
7113
+ create: function create(form) {
7114
+ try {
7115
+ var _this5 = this;
7116
+
7117
+ var _temp7 = _catch$2(function () {
7118
+ return Promise.resolve(API.create(form)).then(function () {
7119
+ return Promise.resolve(_this5.load()).then(function () {});
7120
+ });
7121
+ }, function (error) {
7122
+ console.log(error);
7123
+ });
7124
+
7125
+ return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
7126
+ } catch (e) {
7127
+ return Promise.reject(e);
7128
+ }
7129
+ },
7130
+ update: function update(form) {
7131
+ try {
7132
+ var _this7 = this;
7133
+
7134
+ var _temp9 = _catch$2(function () {
7135
+ return Promise.resolve(API.update(form)).then(function () {
7136
+ return Promise.resolve(_this7.load()).then(function () {});
7137
+ });
7138
+ }, function (error) {
7139
+ console.log(error);
7140
+ });
7141
+
7142
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
7143
+ } catch (e) {
7144
+ return Promise.reject(e);
7145
+ }
7146
+ },
7147
+ remove: function remove(id) {
7148
+ try {
7149
+ var _this9 = this;
7150
+
7151
+ var _temp11 = _catch$2(function () {
7152
+ return Promise.resolve(API.remove(id)).then(function () {
7153
+ return Promise.resolve(_this9.load()).then(function () {});
7154
+ });
7155
+ }, function (error) {
7156
+ console.log(error);
7157
+ });
7158
+
7159
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
7160
+ } catch (e) {
7161
+ return Promise.reject(e);
7162
+ }
7163
+ },
7164
+ changeFilters: function changeFilters(filters) {
7165
+ this.filters = filters;
7166
+ },
7167
+ loadQueries: function loadQueries(user) {
7168
+ try {
7169
+ var _this11 = this;
7170
+
7171
+ var _temp13 = _catch$2(function () {
7172
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
7173
+ _this11.queries = _API$queries;
7174
+ });
7175
+ }, function (error) {
7176
+ console.log(error);
7177
+ });
7178
+
7179
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
7180
+ } catch (e) {
7181
+ return Promise.reject(e);
7182
+ }
7183
+ },
7184
+ createQuery: function createQuery(query, user) {
7185
+ try {
7186
+ var _this13 = this;
7187
+
7188
+ var _temp15 = _catch$2(function () {
7189
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
7190
+ return Promise.resolve(_this13.loadQueries(user)).then(function () {});
7191
+ });
7192
+ }, function (error) {
7193
+ console.log(error);
7194
+ });
7195
+
7196
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
7197
+ } catch (e) {
7198
+ return Promise.reject(e);
7199
+ }
7200
+ },
7201
+ removeQuery: function removeQuery(id, user) {
7202
+ try {
7203
+ var _this15 = this;
7204
+
7205
+ var _temp17 = _catch$2(function () {
7206
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
7207
+ return Promise.resolve(_this15.loadQueries(user)).then(function () {});
7208
+ });
7209
+ }, function (error) {
7210
+ console.log(error);
7211
+ });
7212
+
7213
+ return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
7214
+ } catch (e) {
7215
+ return Promise.reject(e);
7216
+ }
7217
+ }
7218
+ };
7219
+ };
7220
+ /**
7221
+ * table API
7222
+ */
7223
+
7224
+
7225
+ var TableAPI$2 = function TableAPI(url, host, params) {
7226
+ if (params === void 0) {
7227
+ params = "";
7228
+ }
7229
+
7230
+ var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
7231
+ return {
7232
+ all: function all(filters) {
7233
+ var queryParams = "?" + params;
7234
+
7235
+ if (filters) {
7236
+ var filterQuery = Object.keys(filters).reduce(function (query, key) {
7237
+ var value = filters[key];
7238
+
7239
+ if (typeof value === 'boolean') {
7240
+ return query.concat(key + "=" + value + "&");
7241
+ } else if (Array.isArray(value)) {
7242
+ var param = value.length === 0 ? '' : value.reduce(function (param, item) {
7243
+ param = param.concat(key + "=" + item + "&");
7244
+ return param;
7245
+ }, "");
7246
+ return query.concat(param);
7247
+ } else {
7248
+ return query.concat(key + "=%" + filters[key] + "%&");
7249
+ }
7250
+ }, "");
7251
+ queryParams = queryParams.concat(filterQuery);
7252
+ }
7253
+
7254
+ return http.GET(url + queryParams);
7255
+ },
7256
+ find: function find(id) {
7257
+ return http.GET(url + "/" + id);
7258
+ },
7259
+ create: function create(form) {
7260
+ var body = JSON.stringify(form);
7261
+ return http.POST(url, body);
7262
+ },
7263
+ update: function update(form) {
7264
+ var body = JSON.stringify(form);
7265
+ return http.PUT(url + "/" + form.id, body);
7266
+ },
7267
+ remove: function remove(id) {
7268
+ return http.DELETE(url + "/" + id);
7269
+ },
7270
+ queries: function queries(user, url2) {
7271
+ var url3 = url2 ? url2 : url;
7272
+ url3 = url3 + "queries";
7273
+ if (user) url3 = url3 + ("?user=" + user);
7274
+ return http.GET(url3);
7275
+ },
7276
+ createQuery: function createQuery(form, url2) {
7277
+ var url3 = url2 ? url2 : url;
7278
+ var body = JSON.stringify(form);
7279
+ return http.POST(url3 + "queries", body);
7280
+ },
7281
+ removeQuery: function removeQuery(id, url2) {
7282
+ var url3 = url2 ? url2 : url;
7283
+ return http.DELETE(url3 + "queries/" + id);
7284
+ }
7285
+ };
7286
+ };
7287
+
7288
+ /**
7289
+ * Table Page
7290
+ */
7291
+
7292
+ function _catch$1(body, recover) {
7293
+ try {
7294
+ var result = body();
7295
+ } catch (e) {
7296
+ return recover(e);
7297
+ }
7298
+
7299
+ if (result && result.then) {
7300
+ return result.then(void 0, recover);
7301
+ }
7302
+
7303
+ return result;
7304
+ }
7305
+ /**
7306
+ * TableRowEditor
7307
+ */
7308
+
7309
+
7310
+ var TablePage2 = function TablePage2(props) {
7311
+ var playScenario = function playScenario() {
7312
+ try {
7313
+ var promises1 = pageContext.all.map(function (item) {
7314
+ try {
7315
+ return Promise.resolve(pageContext.remove(item.id));
7316
+ } catch (e) {
7317
+ return Promise.reject(e);
7318
+ }
7319
+ });
7320
+ Promise.all(promises1).then(function () {
7321
+ try {
7322
+ var promises2 = scenario.map(function (item) {
7323
+ try {
7324
+ return Promise.resolve(pageContext.create(item));
7325
+ } catch (e) {
7326
+ return Promise.reject(e);
7327
+ }
7328
+ });
7329
+ Promise.all(promises2).then(function () {
7330
+ try {
7331
+ return Promise.resolve(pageContext.load()).then(function () {
7332
+ setPageContext(Object.assign({}, pageContext));
7333
+ });
7334
+ } catch (e) {
7335
+ return Promise.reject(e);
7336
+ }
7337
+ });
7338
+ return Promise.resolve();
7339
+ } catch (e) {
7340
+ return Promise.reject(e);
7341
+ }
7342
+ });
7343
+ return Promise.resolve();
7344
+ } catch (e) {
7345
+ return Promise.reject(e);
7346
+ }
7347
+ };
7348
+
7349
+ var save = function save() {
7350
+ try {
7351
+ return Promise.resolve(pageContext.update(form)).then(function () {
7352
+ setPageContext(Object.assign({}, pageContext));
7353
+ });
7354
+ } catch (e) {
7355
+ return Promise.reject(e);
7356
+ }
7357
+ };
7358
+
7359
+ var reload = function reload() {
7360
+ try {
7361
+ return Promise.resolve(pageContext.load()).then(function () {
7362
+ setPageContext(Object.assign({}, pageContext));
7363
+ });
7364
+ } catch (e) {
7365
+ return Promise.reject(e);
7366
+ }
7367
+ };
7368
+
7369
+ var site = React.useContext(SiteContext);
7370
+ var _props$id = props.id,
7371
+ id = _props$id === void 0 ? "table" : _props$id,
7372
+ icon = props.icon,
7373
+ title = props.title,
7374
+ name = props.name,
7375
+ schema = props.schema,
7376
+ url = props.url,
7377
+ field = props.field,
7378
+ host = props.host,
7379
+ _props$params = props.params,
7380
+ params = _props$params === void 0 ? "" : _props$params,
7381
+ _props$autosave = props.autosave,
7382
+ autosave = _props$autosave === void 0 ? true : _props$autosave,
7383
+ _props$delay = props.delay,
7384
+ delay = _props$delay === void 0 ? 1000 : _props$delay,
7385
+ editable = props.editable,
7386
+ _props$actions = props.actions,
7387
+ actions = _props$actions === void 0 ? [] : _props$actions,
7388
+ _props$dev = props.dev,
7389
+ dev = _props$dev === void 0 ? false : _props$dev,
7390
+ tableActions = props.tableActions,
7391
+ _props$selectionActio = props.selectionActions,
7392
+ selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
7393
+ _props$canFilter = props.canFilter,
7394
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
7395
+ _props$canAdd = props.canAdd,
7396
+ canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
7397
+ _props$canDelete = props.canDelete,
7398
+ canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
7399
+ _props$canEdit = props.canEdit,
7400
+ canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
7401
+ _props$canQuery = props.canQuery,
7402
+ canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
7403
+ urlQuery = props.urlQuery,
7404
+ user = props.user,
7405
+ groupBy = props.groupBy,
7406
+ validator = props.validator,
7407
+ scenario = props.scenario,
7408
+ formFilter = props.formFilter,
7409
+ tableFilter = props.tableFilter,
7410
+ _props$editorFilter = props.editorFilter,
7411
+ editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
7412
+ tableClassName = props.tableClassName,
7413
+ children = props.children;
7414
+
7415
+ var _useContext = React.useContext(PageContext),
7416
+ pageContext = _useContext[0],
7417
+ setPageContext = _useContext[1];
7418
+
7419
+ var context = TableContext$1(url, field, host, urlQuery, params);
7420
+ var selected = pageContext.selected;
7421
+ var timer = React.useRef(null);
7422
+
7423
+ var _useState = React.useState(selected),
7424
+ form = _useState[0],
7425
+ setForm = _useState[1];
7426
+
7427
+ React.useEffect(function () {
7428
+ try {
7429
+ return Promise.resolve(context.load()).then(function () {
7430
+ function _temp2() {
7431
+ setPageContext(context);
7432
+ }
7433
+
7434
+ var _temp = function () {
7435
+ if (canQuery) return Promise.resolve(context.loadQueries(user)).then(function () {});
7436
+ }();
7437
+
7438
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
7439
+ });
7440
+ } catch (e) {
7441
+ return Promise.reject(e);
7442
+ }
7443
+ }, []);
7444
+ React.useEffect(function () {
7445
+ setForm(selected);
7446
+ }, [selected]);
7447
+ React.useEffect(function () {
7448
+ if (autosave) {
7449
+ clearTimeout(timer.current);
7450
+ timer.current = setTimeout(function () {
7451
+ if (canSave()) save();
7452
+ }, delay);
7453
+ }
7454
+ }, [form]);
7455
+
7456
+ function add() {
7457
+ var onOK = function onOK(form) {
7458
+ try {
7459
+ return Promise.resolve(pageContext.create(form)).then(function () {
7460
+ setPageContext(Object.assign({}, pageContext));
7461
+ });
7462
+ } catch (e) {
7463
+ return Promise.reject(e);
7464
+ }
7465
+ };
7466
+
7467
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7468
+ label: "Crear " + name,
7469
+ type: schema,
7470
+ onOK: onOK,
7471
+ validator: validator,
7472
+ filter: formFilter
7473
+ }));
7474
+ }
7475
+
7476
+ function saveQuery(filters) {
7477
+ var onOK = function onOK(form) {
7478
+ try {
7479
+ form.filters = filters;
7480
+ form.layout = {};
7481
+ form.user = user;
7482
+ form.url = url;
7483
+ return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
7484
+ setPageContext(Object.assign({}, pageContext));
7485
+ });
7486
+ } catch (e) {
7487
+ return Promise.reject(e);
7488
+ }
7489
+ };
7490
+
7491
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7492
+ label: "Nueva query",
7493
+ type: QUERY,
7494
+ onOK: onOK
7495
+ }));
7496
+ }
7497
+
7498
+ function change(next) {
7499
+ setForm(next);
7500
+ }
7501
+
7502
+ function canSave() {
7503
+ var can = !equal__default["default"](form, selected);
7504
+ return can;
7505
+ }
7506
+
7507
+ function closeAside() {
7508
+ pageContext.select(null);
7509
+ setPageContext(Object.assign({}, pageContext));
7510
+ }
7511
+
7512
+ function renderAside() {
7513
+ var rowSelected = selected && form;
7514
+ var rowChecked = pageContext.checked && pageContext.checked.size > 0;
7515
+
7516
+ if (rowSelected || rowChecked) {
7517
+ return /*#__PURE__*/React__default["default"].createElement("aside", {
7518
+ className: "table-page"
7519
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
7520
+ content: new Content(schema, form),
7521
+ filter: editorFilter,
7522
+ onChange: change,
7523
+ onClose: closeAside,
7524
+ editable: canEdit
7525
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
7526
+ schema: schema,
7527
+ actions: selectionActions
7528
+ }) : null);
7529
+ }
7530
+
7531
+ return null;
7532
+ }
7533
+
7534
+ function renderActions() {
7535
+ return actions.map(function (element) {
7536
+ var action = function action() {
7537
+ return element.props.action(pageContext);
7538
+ };
7539
+
7540
+ var clone = React__default["default"].cloneElement(element, {
7541
+ action: action
7542
+ });
7543
+ return clone;
7544
+ });
7545
+ }
7546
+
7547
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7548
+ className: "table-page",
7549
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7550
+ }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7551
+ icon: "add",
7552
+ label: "A\xF1adir",
7553
+ action: add,
7554
+ raised: true
7555
+ }) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
7556
+ icon: "refresh",
7557
+ label: "Reload",
7558
+ action: reload
7559
+ }), dev ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
7560
+ align: "alignRight"
7561
+ }, /*#__PURE__*/React__default["default"].createElement(MenuItem, {
7562
+ label: "Cargar Escenario 1",
7563
+ onSelect: playScenario
7564
+ })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
7565
+ className: "table-page"
7566
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
7567
+ schema: schema,
7568
+ url: url,
7569
+ user: user
7570
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
7571
+ schema: schema,
7572
+ onSave: canQuery ? saveQuery : null
7573
+ }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
7574
+ key: id,
7575
+ className: "table-page"
7576
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
7577
+ icon: icon,
7578
+ title: name,
7579
+ schema: schema,
7580
+ delay: delay,
7581
+ editable: editable,
7582
+ groupBy: groupBy,
7583
+ filter: tableFilter,
7584
+ actions: tableActions,
7585
+ canDelete: canDelete,
7586
+ className: tableClassName
7587
+ }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
7588
+ };
7589
+
7590
+ var TableRowEditor$1 = function TableRowEditor(props) {
7591
+ var name = props.name,
7592
+ content = props.content,
7593
+ filter = props.filter,
7594
+ editable = props.editable,
7595
+ onChange = props.onChange,
7596
+ onClose = props.onClose;
7597
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7598
+ className: "table-row-editor"
7599
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7600
+ icon: "local_offer",
7601
+ title: name || "Propiedades"
7602
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7603
+ icon: "close",
7604
+ clickable: true,
7605
+ action: onClose
7606
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7607
+ content: content,
7608
+ onChange: onChange,
7609
+ filter: filter
7610
+ }) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
7611
+ content: content
7612
+ })));
7613
+ };
7614
+ /**
7615
+ * Table Selector
7616
+ */
7617
+
7618
+
7619
+ var TableSelector$1 = function TableSelector(props) {
7620
+ var schema = props.schema,
7621
+ _props$actions2 = props.actions,
7622
+ actions = _props$actions2 === void 0 ? [] : _props$actions2;
7623
+
7624
+ var _useContext2 = React.useContext(PageContext),
7625
+ pageContext = _useContext2[0],
7626
+ setPageContext = _useContext2[1];
7627
+
7628
+ var all = pageContext.all,
7629
+ checked = pageContext.checked;
7630
+ var count = checked.size + "/" + all.length;
7631
+ var columns = Object.keys(schema).filter(function (key) {
7632
+ return schema[key].selectorColumn === true;
7633
+ }).map(function (key) {
7634
+ var field = schema[key];
7635
+ return {
7636
+ id: field.id,
7637
+ label: field.label
7638
+ };
7639
+ });
7640
+ var rows = all.filter(function (item) {
7641
+ return checked.has(item.id);
7642
+ });
7643
+ var table = {
7644
+ columns: columns,
7645
+ rows: rows || []
7646
+ };
7647
+ var buttons = actions.map(function (_ref) {
7648
+ var label = _ref.label,
7649
+ _action = _ref.action,
7650
+ validate = _ref.validate;
7651
+ return /*#__PURE__*/React__default["default"].createElement(Button, {
7652
+ label: label,
7653
+ raised: true,
7654
+ action: function action() {
7655
+ return _action(checked, pageContext, function () {
7656
+ try {
7657
+ return Promise.resolve(pageContext.load()).then(function () {
7658
+ setPageContext(Object.assign({}, pageContext));
7659
+ });
7660
+ } catch (e) {
7661
+ return Promise.reject(e);
7662
+ }
7663
+ }, rows);
7664
+ },
7665
+ disabled: !validate(checked, rows)
7666
+ });
7667
+ });
7668
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7669
+ className: "table-selector"
7670
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7671
+ icon: "checklist_rtl",
7672
+ title: "Selecci\xF3n"
7673
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
7674
+ className: "size"
7675
+ }, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
7676
+ };
7677
+ /**
7678
+ * Table Queries
7679
+ */
7680
+
7681
+
7682
+ var TableQueries$1 = function TableQueries(props) {
7683
+ var remove = function remove(id) {
7684
+ try {
7685
+ return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
7686
+ setPageContext(Object.assign({}, pageContext));
7687
+ });
7688
+ } catch (e) {
7689
+ return Promise.reject(e);
7690
+ }
7691
+ };
7692
+
7693
+ var _useContext3 = React.useContext(PageContext),
7694
+ pageContext = _useContext3[0],
7695
+ setPageContext = _useContext3[1];
7696
+
7697
+ var url = props.url,
7698
+ user = props.user;
7699
+ var _pageContext$queries = pageContext.queries,
7700
+ queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
7701
+
7702
+ var _useState2 = React.useState(),
7703
+ selected = _useState2[0],
7704
+ setSelected = _useState2[1];
7705
+
7706
+ function select(query) {
7707
+ setSelected(query.id);
7708
+ pageContext.changeFilters(query.filters);
7709
+ setPageContext(Object.assign({}, pageContext));
7710
+ }
7711
+
7712
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7713
+ className: "table-queries",
7714
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
7715
+ }), /*#__PURE__*/React__default["default"].createElement("main", {
7716
+ className: "table-queries"
7717
+ }, queries ? queries.filter(function (query) {
7718
+ return query.url === url;
7719
+ }).map(function (query) {
7720
+ var style = selected === query.id ? "selected" : "";
7721
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7722
+ className: "table-queries-item " + style,
7723
+ onClick: function onClick() {
7724
+ return select(query);
7725
+ }
7726
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7727
+ icon: "star",
7728
+ size: "small"
7729
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
7730
+ icon: "close",
7731
+ clickable: true,
7732
+ size: "small",
7733
+ action: function action() {
7734
+ return remove(query.id);
7735
+ }
7736
+ }));
7737
+ }) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
7738
+ };
7739
+ /**
7740
+ * Table Filters
7741
+ */
7742
+
7743
+
7744
+ var TableFilters$1 = function TableFilters(props) {
7745
+ var reload = function reload() {
7746
+ try {
7747
+ return Promise.resolve(pageContext.load(form)).then(function () {
7748
+ setPageContext(Object.assign({}, pageContext));
7749
+ });
7750
+ } catch (e) {
7751
+ return Promise.reject(e);
7752
+ }
7753
+ };
7754
+
7755
+ var change = function change(next) {
7756
+ try {
7757
+ setForm(next);
7758
+ return Promise.resolve();
7759
+ } catch (e) {
7760
+ return Promise.reject(e);
7761
+ }
7762
+ };
7763
+
7764
+ var _useContext4 = React.useContext(PageContext),
7765
+ pageContext = _useContext4[0],
7766
+ setPageContext = _useContext4[1];
7767
+
7768
+ var filters = pageContext.filters;
7769
+ var schema = props.schema,
7770
+ onSave = props.onSave;
7771
+
7772
+ var _useState3 = React.useState({}),
7773
+ form = _useState3[0],
7774
+ setForm = _useState3[1];
7775
+
7776
+ var filterSchema = React.useMemo(function () {
7777
+ var filterSchema = Object.assign({}, schema);
7778
+
7779
+ for (var key in filterSchema) {
7780
+ if (filterSchema[key].filter === false) {
7781
+ delete filterSchema[key];
7782
+ } else {
7783
+ if (filterSchema[key].type === TYPES.ENTITY) {
7784
+ var fs = filterSchema[key].item;
7785
+
7786
+ for (var key in fs) {
7787
+ if (fs[key].filter === false) delete fs[key];
7788
+ }
7789
+ }
7790
+ }
7791
+ } //Object.values(filterSchema).forEach(field => field.section = null)
7792
+
7793
+
7794
+ delete filterSchema.flows;
7795
+ return filterSchema;
7796
+ }, [schema]);
7797
+ React.useEffect(function () {
7798
+ if (filters) setForm(filters);
7799
+ }, [filters]);
7800
+ React.useEffect(function () {
7801
+ reload();
7802
+ }, [form]);
7803
+
7804
+ function clear() {
7805
+ change({});
7806
+ }
7807
+
7808
+ function save() {
7809
+ if (onSave) {
7810
+ onSave(form);
7811
+ }
7812
+ }
7813
+
7814
+ var content = new Content(filterSchema, form);
7815
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7816
+ className: "table-filters",
7817
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
7818
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7819
+ icon: "filter_list_off",
7820
+ size: "small",
7821
+ clickable: true,
7822
+ action: clear
7823
+ }), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7824
+ icon: "save",
7825
+ size: "small",
7826
+ clickable: true,
7827
+ action: save
7828
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
7829
+ className: "table-filters"
7830
+ }, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7831
+ content: content,
7832
+ onChange: change
7833
+ })));
7834
+ };
7835
+ /**
7836
+ * Table Editor
7837
+ */
7838
+
7839
+
7840
+ var TableEditor$1 = function TableEditor(props) {
7841
+ var checkOne = function checkOne(id, field, value) {
7842
+ check([id], value);
7843
+ return Promise.resolve();
7844
+ };
7845
+
7846
+ var check = function check(ids, value) {
7847
+ try {
7848
+ pageContext.check(ids, value);
7849
+ setPageContext(Object.assign({}, pageContext));
7850
+ return Promise.resolve();
7851
+ } catch (e) {
7852
+ return Promise.reject(e);
7853
+ }
7854
+ };
7855
+
7856
+ var select = function select(row, event) {
7857
+ try {
7858
+ clear();
7859
+ return Promise.resolve(pageContext.select(row.id)).then(function () {
7860
+ setPageContext(Object.assign({}, pageContext));
7861
+ });
7862
+ } catch (e) {
7863
+ return Promise.reject(e);
7864
+ }
7865
+ };
7866
+
7867
+ var remove = function remove(id) {
7868
+ try {
7869
+ return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
7870
+ var _temp3 = function () {
7871
+ if (confirm) {
7872
+ return Promise.resolve(pageContext.remove(id)).then(function () {
7873
+ pageContext.clear();
7874
+ setPageContext(Object.assign({}, pageContext));
7875
+ });
7876
+ }
7877
+ }();
7878
+
7879
+ if (_temp3 && _temp3.then) return _temp3.then(function () {});
7880
+ });
7881
+ } catch (e) {
7882
+ return Promise.reject(e);
7883
+ }
7884
+ };
7885
+
7886
+ var site = React.useContext(SiteContext);
7887
+
7888
+ var _useContext5 = React.useContext(PageContext),
7889
+ pageContext = _useContext5[0],
7890
+ setPageContext = _useContext5[1];
7891
+
7892
+ var _pageContext$all = pageContext.all,
7893
+ all = _pageContext$all === void 0 ? [] : _pageContext$all;
7894
+ var icon = props.icon,
7895
+ title = props.title,
7896
+ schema = props.schema,
7897
+ editable = props.editable,
7898
+ canDelete = props.canDelete,
7899
+ filter = props.filter,
7900
+ actions = props.actions,
7901
+ className = props.className;
7902
+
7903
+ var _useState4 = React.useState(props.groupBy),
7904
+ groupBy = _useState4[0],
7905
+ setGroupBy = _useState4[1];
7906
+
7907
+ function changeGroup(id, value) {
7908
+ setGroupBy(value);
7909
+ }
7910
+
7911
+ function change(rowID, cellID, value) {
7912
+ var _Object$assign;
7913
+
7914
+ var row = all.find(function (r) {
7915
+ return r.id === rowID;
7916
+ });
7917
+ var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
7918
+ delete next.actions;
7919
+ pageContext.update(next);
7920
+ setPageContext(Object.assign({}, pageContext));
7921
+ }
7922
+
7923
+ function clear() {
7924
+ pageContext.clear();
7925
+ setPageContext(Object.assign({}, pageContext));
7926
+ }
7927
+
7928
+ function run(action, item) {
7929
+ action.action(item.id, pageContext, function () {
7930
+ try {
7931
+ return Promise.resolve(pageContext.load()).then(function () {
7932
+ setPageContext(Object.assign({}, pageContext));
7933
+ });
7934
+ } catch (e) {
7935
+ return Promise.reject(e);
7936
+ }
7937
+ });
7938
+ }
7939
+
7940
+ function buildGroupOptions(schema) {
7941
+ return Object.values(schema).filter(function (field) {
7942
+ return field.grouper === true;
7943
+ }).map(function (field) {
7944
+ return {
7945
+ label: field.label,
7946
+ value: field.id
7947
+ };
7948
+ });
7949
+ }
7950
+
7951
+ function renderGroupLabel(groupName) {
7952
+ var grouper = schema[groupBy];
7953
+ if (!groupName || !grouper) return "";
7954
+
7955
+ if (grouper.options) {
7956
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
7957
+ var option = options.find(function (option) {
7958
+ return option.value === groupName;
7959
+ });
7960
+ return option ? option.label : groupName;
7961
+ } else {
7962
+ return groupName;
7963
+ }
7964
+ }
7965
+
7966
+ var table = React.useMemo(function () {
7967
+ return {
7968
+ columns: Object.values(schema).filter(function (field) {
7969
+ return field.column === true;
7970
+ }).map(function (field) {
7971
+ var options = field.options;
7972
+
7973
+ if (options && typeof options == 'function') {
7974
+ options = options();
7975
+ }
7976
+
7977
+ return {
7978
+ id: field.id,
7979
+ label: field.label,
7980
+ type: field.type,
7981
+ format: field.format,
7982
+ item: field.item ? field.item : [],
7983
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
7984
+
7985
+ /* checked has it´s own handler */
7986
+ options: options
7987
+ };
7988
+ }),
7989
+ rows: []
7990
+ };
7991
+ }, [schema]);
7992
+ var items = filter ? filter(all) : all;
7993
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
7994
+ className: "empty-message"
7995
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7996
+ icon: "search_off"
7997
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
7998
+ var groups = items.reduce(function (groups, item) {
7999
+ var groupName = item[groupBy];
8000
+ if (!groups[groupName]) groups[groupName] = [];
8001
+ groups[groupName].push(item);
8002
+ return groups;
8003
+ }, {});
8004
+ var sections = Object.keys(groups).map(function (groupName) {
8005
+ var rows = groups[groupName].map(function (item) {
8006
+ item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
8007
+ item.actions = actions ? actions.map(function (_action2) {
8008
+ return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
8009
+ icon: _action2.icon,
8010
+ clickable: true,
8011
+ size: "small",
8012
+ action: function action() {
8013
+ return run(_action2, item);
8014
+ }
8015
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
8016
+ icon: _action2.icon,
8017
+ clickable: true,
8018
+ size: "small",
8019
+ action: function action() {
8020
+ return run(_action2, item);
8021
+ }
8022
+ });
8023
+ }) : [];
8024
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
8025
+ icon: "delete",
8026
+ size: "small",
8027
+ clickable: true,
8028
+ action: function action() {
8029
+ return remove(item.id);
8030
+ }
8031
+ }));
8032
+ return item;
8033
+ });
8034
+ table.rows = rows;
8035
+ return {
8036
+ id: groupName,
8037
+ checked: false,
8038
+ title: renderGroupLabel(groupName),
8039
+ info: groups[groupName].length,
8040
+ open: true,
8041
+ children: /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
8042
+ onRowSelection: select,
8043
+ editable: editable,
8044
+ onCheckAll: check,
8045
+ className: className
8046
+ }))
8047
+ };
8048
+ });
8049
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8050
+ icon: icon,
8051
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
8052
+ }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
8053
+ id: "groupBy",
8054
+ label: "Agrupar Por",
8055
+ value: groupBy,
8056
+ options: buildGroupOptions(schema),
8057
+ onChange: changeGroup
8058
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
8059
+ className: "table-editor"
8060
+ }, /*#__PURE__*/React__default["default"].createElement(Accordion, {
8061
+ sections: sections
8062
+ })));
8063
+ };
8064
+ /**
8065
+ * Table Context
8066
+ */
8067
+
6950
8068
  var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6951
8069
  var API = TableAPI$1(url, host, params);
6952
8070
  return {
@@ -8291,6 +9409,7 @@
8291
9409
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8292
9410
  };
8293
9411
 
9412
+ exports.Accordion = Accordion;
8294
9413
  exports.Avatar = Avatar;
8295
9414
  exports.Button = Button;
8296
9415
  exports.Calendar = Calendar;
@@ -8350,8 +9469,9 @@
8350
9469
  exports.TabbedContentEditor = TabbedContentEditor;
8351
9470
  exports.TabbedTablePage = TabbedTablePage;
8352
9471
  exports.TabbedView = TabbedView;
8353
- exports.TableEditor = TableEditor$1;
9472
+ exports.TableEditor = TableEditor$2;
8354
9473
  exports.TablePage = TablePage;
9474
+ exports.TablePage2 = TablePage2;
8355
9475
  exports.Tabs = Tabs;
8356
9476
  exports.Text = Text;
8357
9477
  exports.TextArea = TextArea;