ywana-core8 0.0.570 → 0.0.573

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
@@ -1384,7 +1477,6 @@
1384
1477
  setOpen(false);
1385
1478
  var label = verbose ? option.label : "";
1386
1479
  setLabel(label);
1387
- console.log("dd.select", value);
1388
1480
  if (onChange) onChange(id, next);
1389
1481
  }
1390
1482
 
@@ -2045,7 +2137,6 @@
2045
2137
 
2046
2138
  function changeDropDown(fid, value) {
2047
2139
  var next = Array.isArray(tokens) ? tokens.concat(value) : [value];
2048
- console.log("next", next);
2049
2140
  if (onChange) onChange(id, next);
2050
2141
  setValue('');
2051
2142
  }
@@ -2071,7 +2162,6 @@
2071
2162
  }
2072
2163
 
2073
2164
  var tks = Array.isArray(tokens) ? tokens : [];
2074
- console.log("render", tks);
2075
2165
  return /*#__PURE__*/React__default["default"].createElement("div", {
2076
2166
  className: "tokenField"
2077
2167
  }, /*#__PURE__*/React__default["default"].createElement("label", null, label), tks.map(function (text, index) {
@@ -3624,7 +3714,9 @@
3624
3714
  return _goto(id);
3625
3715
  }
3626
3716
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3627
- text: title
3717
+ text: title,
3718
+ top: ".5rem",
3719
+ left: "2rem"
3628
3720
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3629
3721
  key: id,
3630
3722
  icon: icon,
@@ -4195,13 +4287,13 @@
4195
4287
  * Tabbed Content Editor
4196
4288
  */
4197
4289
 
4198
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4199
- var content = _ref2.content,
4200
- filter = _ref2.filter,
4201
- _ref2$grouped = _ref2.grouped,
4202
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4203
- onChange = _ref2.onChange,
4204
- 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;
4205
4297
 
4206
4298
  var _useState = React.useState(0),
4207
4299
  tab = _useState[0],
@@ -4286,9 +4378,9 @@
4286
4378
  * TreededContentEditor
4287
4379
  */
4288
4380
 
4289
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4290
- var content = _ref3.content,
4291
- onChange = _ref3.onChange;
4381
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4382
+ var content = _ref4.content,
4383
+ onChange = _ref4.onChange;
4292
4384
  var value = content.value();
4293
4385
  var nodes = Object.values(content.type).filter(function (field) {
4294
4386
  return field.type === TYPES.ARRAY;
@@ -4353,13 +4445,13 @@
4353
4445
  * FieldEditor
4354
4446
  */
4355
4447
 
4356
- var FieldEditor = function FieldEditor(_ref4) {
4357
- var field = _ref4.field,
4358
- onChange = _ref4.onChange,
4359
- content = _ref4.content,
4360
- _ref4$outlined = _ref4.outlined,
4361
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4362
- 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;
4363
4455
  var id = field.id,
4364
4456
  type = field.type,
4365
4457
  item = field.item,
@@ -4446,11 +4538,11 @@
4446
4538
  * Entity Editor
4447
4539
  */
4448
4540
 
4449
- var EntityEditor = function EntityEditor(_ref5) {
4450
- var field = _ref5.field,
4451
- _ref5$value = _ref5.value,
4452
- value = _ref5$value === void 0 ? {} : _ref5$value,
4453
- 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;
4454
4546
  var id = field.id,
4455
4547
  item = field.item,
4456
4548
  label = field.label;
@@ -4510,13 +4602,13 @@
4510
4602
  */
4511
4603
 
4512
4604
 
4513
- var StringEditor = function StringEditor(_ref6) {
4514
- var field = _ref6.field,
4515
- _ref6$value = _ref6.value,
4516
- value = _ref6$value === void 0 ? '' : _ref6$value,
4517
- onChange = _ref6.onChange,
4518
- content = _ref6.content,
4519
- 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;
4520
4612
  var id = field.id,
4521
4613
  format = field.format,
4522
4614
  label = field.label,
@@ -4632,12 +4724,12 @@
4632
4724
  * Number Editor
4633
4725
  */
4634
4726
 
4635
- var NumberEditor = function NumberEditor(_ref7) {
4636
- var field = _ref7.field,
4637
- value = _ref7.value,
4638
- onChange = _ref7.onChange,
4639
- _ref7$outlined = _ref7.outlined,
4640
- 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;
4641
4733
  var id = field.id,
4642
4734
  label = field.label,
4643
4735
  _field$editable2 = field.editable,
@@ -4670,11 +4762,11 @@
4670
4762
  */
4671
4763
 
4672
4764
 
4673
- var ListEditor = function ListEditor(_ref8) {
4674
- var field = _ref8.field,
4675
- _ref8$value = _ref8.value,
4676
- value = _ref8$value === void 0 ? [] : _ref8$value,
4677
- 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;
4678
4770
  var label = field.label;
4679
4771
 
4680
4772
  function change(id, value) {
@@ -4694,12 +4786,12 @@
4694
4786
  * Multi Selection Editor
4695
4787
  */
4696
4788
 
4697
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4698
- var field = _ref9.field,
4699
- _ref9$value = _ref9.value,
4700
- value = _ref9$value === void 0 ? [] : _ref9$value,
4701
- content = _ref9.content,
4702
- 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;
4703
4795
  var id = field.id,
4704
4796
  label = field.label,
4705
4797
  options = field.options;
@@ -4738,15 +4830,17 @@
4738
4830
  * Collection Editor
4739
4831
  */
4740
4832
 
4741
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4742
- var field = _ref10.field,
4743
- _ref10$value = _ref10.value,
4744
- value = _ref10$value === void 0 ? [] : _ref10$value,
4745
- onChange = _ref10.onChange,
4746
- 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;
4747
4839
  var id = field.id,
4748
4840
  item = field.item,
4749
4841
  label = field.label,
4842
+ _field$groupBy = field.groupBy,
4843
+ groupBy = _field$groupBy === void 0 ? "field1" : _field$groupBy,
4750
4844
  Feeder = field.Feeder,
4751
4845
  Renderer = field.Renderer,
4752
4846
  _field$Adder = field.Adder,
@@ -4768,42 +4862,24 @@
4768
4862
  }
4769
4863
  }
4770
4864
 
4771
- function change(index, cellId, cellValue) {
4772
- if (onChange) {
4773
- var next = value.slice();
4774
- next[index][cellId] = cellValue;
4775
- onChange(id, next);
4776
- }
4777
- }
4778
-
4779
4865
  function reload() {
4780
4866
  if (onReload) onReload();
4781
4867
  }
4868
+ /* const columns = Object.values(item)
4869
+ .filter(field => field.column === true)
4870
+ .map((item) => ({ ...item, onChange: change }))
4871
+ columns.push({ id: 'actions', label: 'Actions' })
4872
+ const rows = value.map((item, index) => ({
4873
+ ...item,
4874
+ id: index,
4875
+ actions: [
4876
+ <Icon icon='delete' clickable action={() => remove(index)} size="small" />
4877
+ ]
4878
+ }))
4879
+ const table = { columns, rows }
4880
+ */
4881
+
4782
4882
 
4783
- var columns = Object.values(item).filter(function (field) {
4784
- return field.column === true;
4785
- }).map(function (item) {
4786
- return _extends({}, item, {
4787
- onChange: change
4788
- });
4789
- });
4790
- columns.push({
4791
- id: 'actions',
4792
- label: 'Actions'
4793
- });
4794
- value.map(function (item, index) {
4795
- return _extends({}, item, {
4796
- id: index,
4797
- actions: [/*#__PURE__*/React__default["default"].createElement(Icon, {
4798
- icon: "delete",
4799
- clickable: true,
4800
- action: function action() {
4801
- return remove(index);
4802
- },
4803
- size: "small"
4804
- })]
4805
- });
4806
- });
4807
4883
  return /*#__PURE__*/React__default["default"].createElement("div", {
4808
4884
  className: "collection-editor"
4809
4885
  }, Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
@@ -4813,12 +4889,12 @@
4813
4889
  onChange: onChange,
4814
4890
  onReload: reload
4815
4891
  }) // : <DataTable {...table} editable={editable} />
4816
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4892
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4817
4893
  icon: "info",
4818
4894
  title: label,
4819
4895
  data: value,
4820
4896
  schema: item,
4821
- groupBy: "field1",
4897
+ groupBy: groupBy,
4822
4898
  canDelete: true,
4823
4899
  remove: remove
4824
4900
  }), /*#__PURE__*/React__default["default"].createElement("footer", null, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
@@ -4833,9 +4909,9 @@
4833
4909
  * Collection Adder
4834
4910
  */
4835
4911
 
4836
- var CollectionAdder = function CollectionAdder(_ref11) {
4837
- var item = _ref11.item,
4838
- onAdd = _ref11.onAdd;
4912
+ var CollectionAdder = function CollectionAdder(_ref12) {
4913
+ var item = _ref12.item,
4914
+ onAdd = _ref12.onAdd;
4839
4915
 
4840
4916
  var _useState3 = React.useState(false),
4841
4917
  edit = _useState3[0],
@@ -4904,7 +4980,7 @@
4904
4980
  */
4905
4981
 
4906
4982
 
4907
- var TableEditor$2 = function TableEditor(props) {
4983
+ var TableEditor$3 = function TableEditor(props) {
4908
4984
  var select = function select(row) {
4909
4985
  try {
4910
4986
  if (onSelect) onSelect(row.id);
@@ -5248,7 +5324,7 @@
5248
5324
  * Collection Page
5249
5325
  */
5250
5326
 
5251
- function _catch$2(body, recover) {
5327
+ function _catch$3(body, recover) {
5252
5328
  try {
5253
5329
  var result = body();
5254
5330
  } catch (e) {
@@ -5825,7 +5901,7 @@
5825
5901
  try {
5826
5902
  var _this2 = this;
5827
5903
 
5828
- var _temp2 = _catch$2(function () {
5904
+ var _temp2 = _catch$3(function () {
5829
5905
  return Promise.resolve(API.all(null, page)).then(function (data) {
5830
5906
  _this2.all = field ? data[field] : data;
5831
5907
  });
@@ -5874,7 +5950,7 @@
5874
5950
  },
5875
5951
  fetch: function fetch(id) {
5876
5952
  try {
5877
- return Promise.resolve(_catch$2(function () {
5953
+ return Promise.resolve(_catch$3(function () {
5878
5954
  return Promise.resolve(API.find(id));
5879
5955
  }, function (error) {
5880
5956
  console.log(error);
@@ -5890,7 +5966,7 @@
5890
5966
  try {
5891
5967
  var _this8 = this;
5892
5968
 
5893
- var _temp6 = _catch$2(function () {
5969
+ var _temp6 = _catch$3(function () {
5894
5970
  return Promise.resolve(API.create(form)).then(function () {
5895
5971
  return Promise.resolve(_this8.load()).then(function () {});
5896
5972
  });
@@ -5907,7 +5983,7 @@
5907
5983
  try {
5908
5984
  var _this10 = this;
5909
5985
 
5910
- var _temp8 = _catch$2(function () {
5986
+ var _temp8 = _catch$3(function () {
5911
5987
  return Promise.resolve(API.update(form)).then(function () {
5912
5988
  return Promise.resolve(_this10.load()).then(function () {});
5913
5989
  });
@@ -5924,7 +6000,7 @@
5924
6000
  try {
5925
6001
  var _this12 = this;
5926
6002
 
5927
- var _temp10 = _catch$2(function () {
6003
+ var _temp10 = _catch$3(function () {
5928
6004
  return Promise.resolve(API.patch(id, form)).then(function () {
5929
6005
  return Promise.resolve(_this12.load()).then(function () {});
5930
6006
  });
@@ -5941,7 +6017,7 @@
5941
6017
  try {
5942
6018
  var _this14 = this;
5943
6019
 
5944
- var _temp12 = _catch$2(function () {
6020
+ var _temp12 = _catch$3(function () {
5945
6021
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5946
6022
  return Promise.resolve(_this14.load()).then(function () {});
5947
6023
  });
@@ -5958,7 +6034,7 @@
5958
6034
  try {
5959
6035
  var _this16 = this;
5960
6036
 
5961
- var _temp14 = _catch$2(function () {
6037
+ var _temp14 = _catch$3(function () {
5962
6038
  return Promise.resolve(API.remove(id)).then(function () {
5963
6039
  return Promise.resolve(_this16.load()).then(function () {});
5964
6040
  });
@@ -6171,7 +6247,7 @@
6171
6247
  * Table Page
6172
6248
  */
6173
6249
 
6174
- function _catch$1(body, recover) {
6250
+ function _catch$2(body, recover) {
6175
6251
  try {
6176
6252
  var result = body();
6177
6253
  } catch (e) {
@@ -6298,7 +6374,7 @@
6298
6374
  pageContext = _useContext[0],
6299
6375
  setPageContext = _useContext[1];
6300
6376
 
6301
- var context = TableContext$1(url, field, host, urlQuery, params);
6377
+ var context = TableContext$2(url, field, host, urlQuery, params);
6302
6378
  var selected = pageContext.selected;
6303
6379
  var timer = React.useRef(null);
6304
6380
 
@@ -6398,13 +6474,13 @@
6398
6474
  if (rowSelected || rowChecked) {
6399
6475
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6400
6476
  className: "table-page"
6401
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6477
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6402
6478
  content: new Content(schema, form),
6403
6479
  filter: editorFilter,
6404
6480
  onChange: change,
6405
6481
  onClose: closeAside,
6406
6482
  editable: canEdit
6407
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6483
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6408
6484
  schema: schema,
6409
6485
  actions: selectionActions
6410
6486
  }) : null);
@@ -6445,17 +6521,17 @@
6445
6521
  onSelect: playScenario
6446
6522
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6447
6523
  className: "table-page"
6448
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6524
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6449
6525
  schema: schema,
6450
6526
  url: url,
6451
6527
  user: user
6452
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6528
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6453
6529
  schema: schema,
6454
6530
  onSave: canQuery ? saveQuery : null
6455
6531
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6456
6532
  key: id,
6457
6533
  className: "table-page"
6458
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6534
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6459
6535
  icon: icon,
6460
6536
  title: name,
6461
6537
  schema: schema,
@@ -6469,7 +6545,7 @@
6469
6545
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6470
6546
  };
6471
6547
 
6472
- var TableRowEditor$1 = function TableRowEditor(props) {
6548
+ var TableRowEditor$2 = function TableRowEditor(props) {
6473
6549
  var name = props.name,
6474
6550
  content = props.content,
6475
6551
  filter = props.filter,
@@ -6498,7 +6574,7 @@
6498
6574
  */
6499
6575
 
6500
6576
 
6501
- var TableSelector$1 = function TableSelector(props) {
6577
+ var TableSelector$2 = function TableSelector(props) {
6502
6578
  var schema = props.schema,
6503
6579
  _props$actions2 = props.actions,
6504
6580
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6536,8 +6612,10 @@
6536
6612
  action: function action() {
6537
6613
  return _action(checked, pageContext, function () {
6538
6614
  try {
6539
- return Promise.resolve(pageContext.load()).then(function () {
6540
- setPageContext(Object.assign({}, pageContext));
6615
+ return Promise.resolve(pageContext.clearChecks()).then(function () {
6616
+ return Promise.resolve(pageContext.load()).then(function () {
6617
+ setPageContext(Object.assign({}, pageContext));
6618
+ });
6541
6619
  });
6542
6620
  } catch (e) {
6543
6621
  return Promise.reject(e);
@@ -6561,7 +6639,7 @@
6561
6639
  */
6562
6640
 
6563
6641
 
6564
- var TableQueries$1 = function TableQueries(props) {
6642
+ var TableQueries$2 = function TableQueries(props) {
6565
6643
  var remove = function remove(id) {
6566
6644
  try {
6567
6645
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6623,7 +6701,7 @@
6623
6701
  */
6624
6702
 
6625
6703
 
6626
- var TableFilters$1 = function TableFilters(props) {
6704
+ var TableFilters$2 = function TableFilters(props) {
6627
6705
  var reload = function reload() {
6628
6706
  try {
6629
6707
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6719,7 +6797,7 @@
6719
6797
  */
6720
6798
 
6721
6799
 
6722
- var TableEditor$1 = function TableEditor(props) {
6800
+ var TableEditor$2 = function TableEditor(props) {
6723
6801
  var checkOne = function checkOne(id, field, value) {
6724
6802
  check([id], value);
6725
6803
  return Promise.resolve();
@@ -6951,8 +7029,8 @@
6951
7029
  * Table Context
6952
7030
  */
6953
7031
 
6954
- var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6955
- var API = TableAPI$1(url, host, params);
7032
+ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
7033
+ var API = TableAPI$2(url, host, params);
6956
7034
  return {
6957
7035
  all: [],
6958
7036
  checked: new Set([]),
@@ -6963,7 +7041,7 @@
6963
7041
  try {
6964
7042
  var _this2 = this;
6965
7043
 
6966
- var _temp5 = _catch$1(function () {
7044
+ var _temp5 = _catch$2(function () {
6967
7045
  var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
6968
7046
  var field = filter[key];
6969
7047
 
@@ -7009,6 +7087,9 @@
7009
7087
  });
7010
7088
  }
7011
7089
  },
7090
+ clearChecks: function clearChecks() {
7091
+ this.checked = new Set([]);
7092
+ },
7012
7093
  select: function select(id) {
7013
7094
  var result = this.all.find(function (item) {
7014
7095
  return item.id === id;
@@ -7022,7 +7103,7 @@
7022
7103
  try {
7023
7104
  var _this5 = this;
7024
7105
 
7025
- var _temp7 = _catch$1(function () {
7106
+ var _temp7 = _catch$2(function () {
7026
7107
  return Promise.resolve(API.create(form)).then(function () {
7027
7108
  return Promise.resolve(_this5.load()).then(function () {});
7028
7109
  });
@@ -7039,7 +7120,7 @@
7039
7120
  try {
7040
7121
  var _this7 = this;
7041
7122
 
7042
- var _temp9 = _catch$1(function () {
7123
+ var _temp9 = _catch$2(function () {
7043
7124
  return Promise.resolve(API.update(form)).then(function () {
7044
7125
  return Promise.resolve(_this7.load()).then(function () {});
7045
7126
  });
@@ -7056,7 +7137,7 @@
7056
7137
  try {
7057
7138
  var _this9 = this;
7058
7139
 
7059
- var _temp11 = _catch$1(function () {
7140
+ var _temp11 = _catch$2(function () {
7060
7141
  return Promise.resolve(API.remove(id)).then(function () {
7061
7142
  return Promise.resolve(_this9.load()).then(function () {});
7062
7143
  });
@@ -7076,7 +7157,7 @@
7076
7157
  try {
7077
7158
  var _this11 = this;
7078
7159
 
7079
- var _temp13 = _catch$1(function () {
7160
+ var _temp13 = _catch$2(function () {
7080
7161
  return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
7081
7162
  _this11.queries = _API$queries;
7082
7163
  });
@@ -7093,7 +7174,7 @@
7093
7174
  try {
7094
7175
  var _this13 = this;
7095
7176
 
7096
- var _temp15 = _catch$1(function () {
7177
+ var _temp15 = _catch$2(function () {
7097
7178
  return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
7098
7179
  return Promise.resolve(_this13.loadQueries(user)).then(function () {});
7099
7180
  });
@@ -7110,7 +7191,7 @@
7110
7191
  try {
7111
7192
  var _this15 = this;
7112
7193
 
7113
- var _temp17 = _catch$1(function () {
7194
+ var _temp17 = _catch$2(function () {
7114
7195
  return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
7115
7196
  return Promise.resolve(_this15.loadQueries(user)).then(function () {});
7116
7197
  });
@@ -7130,6 +7211,1023 @@
7130
7211
  */
7131
7212
 
7132
7213
 
7214
+ var TableAPI$2 = function TableAPI(url, host, params) {
7215
+ if (params === void 0) {
7216
+ params = "";
7217
+ }
7218
+
7219
+ var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
7220
+ return {
7221
+ all: function all(filters) {
7222
+ var queryParams = "?" + params;
7223
+
7224
+ if (filters) {
7225
+ var filterQuery = Object.keys(filters).reduce(function (query, key) {
7226
+ var value = filters[key];
7227
+
7228
+ if (typeof value === 'boolean') {
7229
+ return query.concat(key + "=" + value + "&");
7230
+ } else if (Array.isArray(value)) {
7231
+ var param = value.length === 0 ? '' : value.reduce(function (param, item) {
7232
+ param = param.concat(key + "=" + item + "&");
7233
+ return param;
7234
+ }, "");
7235
+ return query.concat(param);
7236
+ } else {
7237
+ return query.concat(key + "=%" + filters[key] + "%&");
7238
+ }
7239
+ }, "");
7240
+ queryParams = queryParams.concat(filterQuery);
7241
+ }
7242
+
7243
+ return http.GET(url + queryParams);
7244
+ },
7245
+ find: function find(id) {
7246
+ return http.GET(url + "/" + id);
7247
+ },
7248
+ create: function create(form) {
7249
+ var body = JSON.stringify(form);
7250
+ return http.POST(url, body);
7251
+ },
7252
+ update: function update(form) {
7253
+ var body = JSON.stringify(form);
7254
+ return http.PUT(url + "/" + form.id, body);
7255
+ },
7256
+ remove: function remove(id) {
7257
+ return http.DELETE(url + "/" + id);
7258
+ },
7259
+ queries: function queries(user, url2) {
7260
+ var url3 = url2 ? url2 : url;
7261
+ url3 = url3 + "queries";
7262
+ if (user) url3 = url3 + ("?user=" + user);
7263
+ return http.GET(url3);
7264
+ },
7265
+ createQuery: function createQuery(form, url2) {
7266
+ var url3 = url2 ? url2 : url;
7267
+ var body = JSON.stringify(form);
7268
+ return http.POST(url3 + "queries", body);
7269
+ },
7270
+ removeQuery: function removeQuery(id, url2) {
7271
+ var url3 = url2 ? url2 : url;
7272
+ return http.DELETE(url3 + "queries/" + id);
7273
+ }
7274
+ };
7275
+ };
7276
+
7277
+ /**
7278
+ * Table Page
7279
+ */
7280
+
7281
+ function _catch$1(body, recover) {
7282
+ try {
7283
+ var result = body();
7284
+ } catch (e) {
7285
+ return recover(e);
7286
+ }
7287
+
7288
+ if (result && result.then) {
7289
+ return result.then(void 0, recover);
7290
+ }
7291
+
7292
+ return result;
7293
+ }
7294
+ /**
7295
+ * TableRowEditor
7296
+ */
7297
+
7298
+
7299
+ var TablePage2 = function TablePage2(props) {
7300
+ var save = function save() {
7301
+ try {
7302
+ return Promise.resolve(pageContext.update(form)).then(function () {
7303
+ setPageContext(Object.assign({}, pageContext));
7304
+ });
7305
+ } catch (e) {
7306
+ return Promise.reject(e);
7307
+ }
7308
+ };
7309
+
7310
+ var reload = function reload() {
7311
+ try {
7312
+ return Promise.resolve(pageContext.load()).then(function () {
7313
+ setPageContext(Object.assign({}, pageContext));
7314
+ });
7315
+ } catch (e) {
7316
+ return Promise.reject(e);
7317
+ }
7318
+ };
7319
+
7320
+ var site = React.useContext(SiteContext);
7321
+ var _props$id = props.id,
7322
+ id = _props$id === void 0 ? "table" : _props$id,
7323
+ icon = props.icon,
7324
+ title = props.title,
7325
+ name = props.name,
7326
+ schema = props.schema,
7327
+ url = props.url,
7328
+ field = props.field,
7329
+ host = props.host,
7330
+ _props$params = props.params,
7331
+ params = _props$params === void 0 ? "" : _props$params,
7332
+ _props$canQuery = props.canQuery,
7333
+ canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
7334
+ urlQuery = props.urlQuery,
7335
+ user = props.user,
7336
+ editable = props.editable,
7337
+ _props$autosave = props.autosave,
7338
+ autosave = _props$autosave === void 0 ? true : _props$autosave,
7339
+ _props$delay = props.delay,
7340
+ delay = _props$delay === void 0 ? 1000 : _props$delay,
7341
+ _props$actions = props.actions,
7342
+ actions = _props$actions === void 0 ? [] : _props$actions,
7343
+ tableActions = props.tableActions,
7344
+ _props$selectionActio = props.selectionActions,
7345
+ selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
7346
+ _props$canFilter = props.canFilter,
7347
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
7348
+ _props$canAdd = props.canAdd,
7349
+ canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
7350
+ _props$canDelete = props.canDelete,
7351
+ canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
7352
+ _props$canEdit = props.canEdit,
7353
+ canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
7354
+ groupBy = props.groupBy,
7355
+ validator = props.validator,
7356
+ formFilter = props.formFilter,
7357
+ tableFilter = props.tableFilter,
7358
+ _props$editorFilter = props.editorFilter,
7359
+ editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
7360
+ tabbedBy = props.tabbedBy,
7361
+ tableClassName = props.tableClassName,
7362
+ children = props.children;
7363
+
7364
+ var _useContext = React.useContext(PageContext),
7365
+ setPageContext = _useContext[1];
7366
+
7367
+ var context = TableContext$1(url, field, host, urlQuery, params);
7368
+ var _pageContext = pageContext,
7369
+ selected = _pageContext.selected;
7370
+ var timer = React.useRef(null);
7371
+
7372
+ var _useState = React.useState(selected),
7373
+ form = _useState[0],
7374
+ setForm = _useState[1];
7375
+
7376
+ React.useEffect(function () {
7377
+ try {
7378
+ return Promise.resolve(context.load()).then(function () {
7379
+ function _temp2() {
7380
+ setPageContext(context);
7381
+ }
7382
+
7383
+ var _temp = function () {
7384
+ if (canQuery) return Promise.resolve(context.loadQueries(user)).then(function () {});
7385
+ }();
7386
+
7387
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
7388
+ });
7389
+ } catch (e) {
7390
+ return Promise.reject(e);
7391
+ }
7392
+ }, []);
7393
+ React.useEffect(function () {
7394
+ setForm(selected);
7395
+ }, [selected]);
7396
+ React.useEffect(function () {
7397
+ if (autosave) {
7398
+ clearTimeout(timer.current);
7399
+ timer.current = setTimeout(function () {
7400
+ if (canSave()) save();
7401
+ }, delay);
7402
+ }
7403
+ }, [form]);
7404
+
7405
+ function add() {
7406
+ var onOK = function onOK(form) {
7407
+ try {
7408
+ return Promise.resolve(pageContext.create(form)).then(function () {
7409
+ setPageContext(Object.assign({}, pageContext));
7410
+ });
7411
+ } catch (e) {
7412
+ return Promise.reject(e);
7413
+ }
7414
+ };
7415
+
7416
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7417
+ label: "Crear " + name,
7418
+ type: schema,
7419
+ onOK: onOK,
7420
+ validator: validator,
7421
+ filter: formFilter
7422
+ }));
7423
+ }
7424
+
7425
+ function saveQuery(filters) {
7426
+ var onOK = function onOK(form) {
7427
+ try {
7428
+ form.filters = filters;
7429
+ form.layout = {};
7430
+ form.user = user;
7431
+ form.url = url;
7432
+ return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
7433
+ setPageContext(Object.assign({}, pageContext));
7434
+ });
7435
+ } catch (e) {
7436
+ return Promise.reject(e);
7437
+ }
7438
+ };
7439
+
7440
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7441
+ label: "Nueva query",
7442
+ type: QUERY,
7443
+ onOK: onOK
7444
+ }));
7445
+ }
7446
+
7447
+ function change(next) {
7448
+ setForm(next);
7449
+ }
7450
+
7451
+ function canSave() {
7452
+ var can = !equal__default["default"](form, selected);
7453
+ return can;
7454
+ }
7455
+
7456
+ function closeAside() {
7457
+ pageContext.select(null);
7458
+ setPageContext(Object.assign({}, pageContext));
7459
+ }
7460
+
7461
+ function renderAside() {
7462
+ var rowSelected = selected && form;
7463
+ var rowChecked = pageContext.checked && pageContext.checked.size > 0;
7464
+
7465
+ if (rowSelected || rowChecked) {
7466
+ return /*#__PURE__*/React__default["default"].createElement("aside", {
7467
+ className: "table-page"
7468
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
7469
+ content: new Content(schema, form),
7470
+ filter: editorFilter,
7471
+ onChange: change,
7472
+ onClose: closeAside,
7473
+ editable: canEdit
7474
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
7475
+ schema: schema,
7476
+ actions: selectionActions
7477
+ }) : null);
7478
+ }
7479
+
7480
+ return null;
7481
+ }
7482
+
7483
+ function renderActions() {
7484
+ return actions.map(function (element) {
7485
+ var action = function action() {
7486
+ return element.props.action(pageContext);
7487
+ };
7488
+
7489
+ var clone = React__default["default"].cloneElement(element, {
7490
+ action: action
7491
+ });
7492
+ return clone;
7493
+ });
7494
+ }
7495
+
7496
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7497
+ className: "table-page",
7498
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7499
+ }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7500
+ icon: "add",
7501
+ label: "A\xF1adir",
7502
+ action: add,
7503
+ raised: true
7504
+ }) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
7505
+ icon: "refresh",
7506
+ label: "Reload",
7507
+ action: reload
7508
+ }), renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
7509
+ className: "table-page"
7510
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
7511
+ schema: schema,
7512
+ url: url,
7513
+ user: user
7514
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
7515
+ schema: schema,
7516
+ onSave: canQuery ? saveQuery : null
7517
+ }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
7518
+ key: id,
7519
+ className: "table-page"
7520
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
7521
+ icon: icon,
7522
+ title: name,
7523
+ schema: schema,
7524
+ delay: delay,
7525
+ editable: editable,
7526
+ tabbedBy: tabbedBy,
7527
+ groupBy: groupBy,
7528
+ filter: tableFilter,
7529
+ actions: tableActions,
7530
+ canDelete: canDelete,
7531
+ className: tableClassName
7532
+ }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
7533
+ };
7534
+
7535
+ var TableRowEditor$1 = function TableRowEditor(props) {
7536
+ var name = props.name,
7537
+ content = props.content,
7538
+ filter = props.filter,
7539
+ editable = props.editable,
7540
+ onChange = props.onChange,
7541
+ onClose = props.onClose;
7542
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7543
+ className: "table-row-editor"
7544
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7545
+ icon: "local_offer",
7546
+ title: name || "Propiedades"
7547
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7548
+ icon: "close",
7549
+ clickable: true,
7550
+ action: onClose
7551
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7552
+ content: content,
7553
+ onChange: onChange,
7554
+ filter: filter
7555
+ }) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
7556
+ content: content
7557
+ })));
7558
+ };
7559
+ /**
7560
+ * Table Selector
7561
+ */
7562
+
7563
+
7564
+ var TableSelector$1 = function TableSelector(props) {
7565
+ var schema = props.schema,
7566
+ _props$actions2 = props.actions,
7567
+ actions = _props$actions2 === void 0 ? [] : _props$actions2;
7568
+
7569
+ var _useContext2 = React.useContext(PageContext),
7570
+ pageContext = _useContext2[0],
7571
+ setPageContext = _useContext2[1];
7572
+
7573
+ var all = pageContext.all,
7574
+ checked = pageContext.checked;
7575
+ var count = checked.size + "/" + all.length;
7576
+ var columns = Object.keys(schema).filter(function (key) {
7577
+ return schema[key].selectorColumn === true;
7578
+ }).map(function (key) {
7579
+ var field = schema[key];
7580
+ return {
7581
+ id: field.id,
7582
+ label: field.label
7583
+ };
7584
+ });
7585
+ var rows = all.filter(function (item) {
7586
+ return checked.has(item.id);
7587
+ });
7588
+ var table = {
7589
+ columns: columns,
7590
+ rows: rows || []
7591
+ };
7592
+ var buttons = actions.map(function (_ref) {
7593
+ var label = _ref.label,
7594
+ _action = _ref.action,
7595
+ validate = _ref.validate;
7596
+ return /*#__PURE__*/React__default["default"].createElement(Button, {
7597
+ label: label,
7598
+ raised: true,
7599
+ action: function action() {
7600
+ return _action(checked, pageContext, function () {
7601
+ try {
7602
+ return Promise.resolve(pageContext.load()).then(function () {
7603
+ setPageContext(Object.assign({}, pageContext));
7604
+ });
7605
+ } catch (e) {
7606
+ return Promise.reject(e);
7607
+ }
7608
+ }, rows);
7609
+ },
7610
+ disabled: !validate(checked, rows)
7611
+ });
7612
+ });
7613
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7614
+ className: "table-selector"
7615
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7616
+ icon: "checklist_rtl",
7617
+ title: "Selecci\xF3n"
7618
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
7619
+ className: "size"
7620
+ }, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
7621
+ };
7622
+ /**
7623
+ * Table Queries
7624
+ */
7625
+
7626
+
7627
+ var TableQueries$1 = function TableQueries(props) {
7628
+ var remove = function remove(id) {
7629
+ try {
7630
+ return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
7631
+ setPageContext(Object.assign({}, pageContext));
7632
+ });
7633
+ } catch (e) {
7634
+ return Promise.reject(e);
7635
+ }
7636
+ };
7637
+
7638
+ var _useContext3 = React.useContext(PageContext),
7639
+ pageContext = _useContext3[0],
7640
+ setPageContext = _useContext3[1];
7641
+
7642
+ var url = props.url,
7643
+ user = props.user;
7644
+ var _pageContext$queries = pageContext.queries,
7645
+ queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
7646
+
7647
+ var _useState2 = React.useState(),
7648
+ selected = _useState2[0],
7649
+ setSelected = _useState2[1];
7650
+
7651
+ function select(query) {
7652
+ setSelected(query.id);
7653
+ pageContext.changeFilters(query.filters);
7654
+ setPageContext(Object.assign({}, pageContext));
7655
+ }
7656
+
7657
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7658
+ className: "table-queries",
7659
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
7660
+ }), /*#__PURE__*/React__default["default"].createElement("main", {
7661
+ className: "table-queries"
7662
+ }, queries ? queries.filter(function (query) {
7663
+ return query.url === url;
7664
+ }).map(function (query) {
7665
+ var style = selected === query.id ? "selected" : "";
7666
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7667
+ className: "table-queries-item " + style,
7668
+ onClick: function onClick() {
7669
+ return select(query);
7670
+ }
7671
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7672
+ icon: "star",
7673
+ size: "small"
7674
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
7675
+ icon: "close",
7676
+ clickable: true,
7677
+ size: "small",
7678
+ action: function action() {
7679
+ return remove(query.id);
7680
+ }
7681
+ }));
7682
+ }) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
7683
+ };
7684
+ /**
7685
+ * Table Filters
7686
+ */
7687
+
7688
+
7689
+ var TableFilters$1 = function TableFilters(props) {
7690
+ var reload = function reload() {
7691
+ try {
7692
+ return Promise.resolve(pageContext.load(form)).then(function () {
7693
+ setPageContext(Object.assign({}, pageContext));
7694
+ });
7695
+ } catch (e) {
7696
+ return Promise.reject(e);
7697
+ }
7698
+ };
7699
+
7700
+ var change = function change(next) {
7701
+ try {
7702
+ setForm(next);
7703
+ return Promise.resolve();
7704
+ } catch (e) {
7705
+ return Promise.reject(e);
7706
+ }
7707
+ };
7708
+
7709
+ var _useContext4 = React.useContext(PageContext),
7710
+ pageContext = _useContext4[0],
7711
+ setPageContext = _useContext4[1];
7712
+
7713
+ var filters = pageContext.filters;
7714
+ var schema = props.schema,
7715
+ onSave = props.onSave;
7716
+
7717
+ var _useState3 = React.useState({}),
7718
+ form = _useState3[0],
7719
+ setForm = _useState3[1];
7720
+
7721
+ var filterSchema = React.useMemo(function () {
7722
+ var filterSchema = Object.assign({}, schema);
7723
+
7724
+ for (var key in filterSchema) {
7725
+ if (filterSchema[key].filter === false) {
7726
+ delete filterSchema[key];
7727
+ } else {
7728
+ if (filterSchema[key].type === TYPES.ENTITY) {
7729
+ var fs = filterSchema[key].item;
7730
+
7731
+ for (var key in fs) {
7732
+ if (fs[key].filter === false) delete fs[key];
7733
+ }
7734
+ }
7735
+ }
7736
+ } //Object.values(filterSchema).forEach(field => field.section = null)
7737
+
7738
+
7739
+ delete filterSchema.flows;
7740
+ return filterSchema;
7741
+ }, [schema]);
7742
+ React.useEffect(function () {
7743
+ if (filters) setForm(filters);
7744
+ }, [filters]);
7745
+ React.useEffect(function () {
7746
+ reload();
7747
+ }, [form]);
7748
+
7749
+ function clear() {
7750
+ change({});
7751
+ }
7752
+
7753
+ function save() {
7754
+ if (onSave) {
7755
+ onSave(form);
7756
+ }
7757
+ }
7758
+
7759
+ var content = new Content(filterSchema, form);
7760
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7761
+ className: "table-filters",
7762
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
7763
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7764
+ icon: "filter_list_off",
7765
+ size: "small",
7766
+ clickable: true,
7767
+ action: clear
7768
+ }), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7769
+ icon: "save",
7770
+ size: "small",
7771
+ clickable: true,
7772
+ action: save
7773
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
7774
+ className: "table-filters"
7775
+ }, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7776
+ content: content,
7777
+ onChange: change
7778
+ })));
7779
+ };
7780
+ /**
7781
+ * Table Editor
7782
+ */
7783
+
7784
+
7785
+ var TableEditor$1 = function TableEditor(props) {
7786
+ var checkOne = function checkOne(id, field, value) {
7787
+ check([id], value);
7788
+ return Promise.resolve();
7789
+ };
7790
+
7791
+ var check = function check(ids, value) {
7792
+ try {
7793
+ pageContext.check(ids, value);
7794
+ setPageContext(Object.assign({}, pageContext));
7795
+ return Promise.resolve();
7796
+ } catch (e) {
7797
+ return Promise.reject(e);
7798
+ }
7799
+ };
7800
+
7801
+ var select = function select(row, event) {
7802
+ try {
7803
+ clear();
7804
+ return Promise.resolve(pageContext.select(row.id)).then(function () {
7805
+ setPageContext(Object.assign({}, pageContext));
7806
+ });
7807
+ } catch (e) {
7808
+ return Promise.reject(e);
7809
+ }
7810
+ };
7811
+
7812
+ var remove = function remove(id) {
7813
+ try {
7814
+ return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
7815
+ var _temp5 = function () {
7816
+ if (confirm) {
7817
+ return Promise.resolve(pageContext.remove(id)).then(function () {
7818
+ pageContext.clear();
7819
+ setPageContext(Object.assign({}, pageContext));
7820
+ });
7821
+ }
7822
+ }();
7823
+
7824
+ if (_temp5 && _temp5.then) return _temp5.then(function () {});
7825
+ });
7826
+ } catch (e) {
7827
+ return Promise.reject(e);
7828
+ }
7829
+ };
7830
+
7831
+ var site = React.useContext(SiteContext);
7832
+
7833
+ var _useContext5 = React.useContext(PageContext),
7834
+ pageContext = _useContext5[0],
7835
+ setPageContext = _useContext5[1];
7836
+
7837
+ var _pageContext$all = pageContext.all,
7838
+ all = _pageContext$all === void 0 ? [] : _pageContext$all;
7839
+ var icon = props.icon,
7840
+ title = props.title,
7841
+ schema = props.schema,
7842
+ editable = props.editable,
7843
+ canDelete = props.canDelete,
7844
+ filter = props.filter,
7845
+ actions = props.actions,
7846
+ className = props.className;
7847
+
7848
+ var _useState4 = React.useState(props.groupBy),
7849
+ groupBy = _useState4[0],
7850
+ setGroupBy = _useState4[1];
7851
+
7852
+ var _useState5 = React.useState(0),
7853
+ tab = _useState5[0];
7854
+
7855
+ React.useEffect(function () {
7856
+ try {
7857
+ var _temp4 = function () {
7858
+ if (tab) {
7859
+ var _filter2;
7860
+
7861
+ var _filter = (_filter2 = {}, _filter2[tab.field] = tab.value, _filter2);
7862
+
7863
+ return Promise.resolve(pageContext.load(_filter, [])).then(function () {
7864
+ setPageContext(Object.assign({}, pageContext));
7865
+ });
7866
+ }
7867
+ }();
7868
+
7869
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
7870
+ } catch (e) {
7871
+ return Promise.reject(e);
7872
+ }
7873
+ }, [tab]);
7874
+
7875
+ function changeGroup(id, value) {
7876
+ setGroupBy(value);
7877
+ }
7878
+
7879
+ function change(rowID, cellID, value) {
7880
+ var _Object$assign;
7881
+
7882
+ var row = all.find(function (r) {
7883
+ return r.id === rowID;
7884
+ });
7885
+ var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
7886
+ delete next.actions;
7887
+ pageContext.update(next);
7888
+ setPageContext(Object.assign({}, pageContext));
7889
+ }
7890
+
7891
+ function clear() {
7892
+ pageContext.clear();
7893
+ setPageContext(Object.assign({}, pageContext));
7894
+ }
7895
+
7896
+ function run(action, item) {
7897
+ action.action(item.id, pageContext, function () {
7898
+ try {
7899
+ return Promise.resolve(pageContext.load()).then(function () {
7900
+ setPageContext(Object.assign({}, pageContext));
7901
+ });
7902
+ } catch (e) {
7903
+ return Promise.reject(e);
7904
+ }
7905
+ });
7906
+ }
7907
+
7908
+ function buildGroupOptions(schema) {
7909
+ return Object.values(schema).filter(function (field) {
7910
+ return field.grouper === true;
7911
+ }).map(function (field) {
7912
+ return {
7913
+ label: field.label,
7914
+ value: field.id
7915
+ };
7916
+ });
7917
+ }
7918
+
7919
+ function renderGroupLabel(groupName) {
7920
+ var grouper = schema[groupBy];
7921
+ if (!groupName || !grouper) return "";
7922
+
7923
+ if (grouper.options) {
7924
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
7925
+ var option = options.find(function (option) {
7926
+ return option.value === groupName;
7927
+ });
7928
+ return option ? option.label : groupName;
7929
+ } else {
7930
+ return groupName;
7931
+ }
7932
+ }
7933
+
7934
+ var tabField = Object.values(schema).find(function (field) {
7935
+ return field.tab === true;
7936
+ });
7937
+ var tabs = tabField ? tabField.options.map(function (option) {
7938
+ return Object.assign({}, option, {
7939
+ field: tabField.id
7940
+ });
7941
+ }) : [];
7942
+ var table = React.useMemo(function () {
7943
+ return {
7944
+ columns: Object.values(schema).filter(function (field) {
7945
+ return field.column === true;
7946
+ }).map(function (field) {
7947
+ var options = field.options;
7948
+
7949
+ if (options && typeof options == 'function') {
7950
+ options = options();
7951
+ }
7952
+
7953
+ return {
7954
+ id: field.id,
7955
+ label: field.label,
7956
+ type: field.type,
7957
+ format: field.format,
7958
+ item: field.item ? field.item : [],
7959
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
7960
+
7961
+ /* checked has it´s own handler */
7962
+ options: options
7963
+ };
7964
+ }),
7965
+ rows: []
7966
+ };
7967
+ }, [schema]);
7968
+ var items = filter ? filter(all) : all;
7969
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
7970
+ className: "empty-message"
7971
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7972
+ icon: "search_off"
7973
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
7974
+ var groups = items.reduce(function (groups, item) {
7975
+ var groupName = item[groupBy];
7976
+ if (!groups[groupName]) groups[groupName] = [];
7977
+ groups[groupName].push(item);
7978
+ return groups;
7979
+ }, {});
7980
+ var sections = Object.keys(groups).map(function (groupName) {
7981
+ var rows = groups[groupName].map(function (item) {
7982
+ item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
7983
+ item.actions = actions ? actions.map(function (_action2) {
7984
+ return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7985
+ icon: _action2.icon,
7986
+ clickable: true,
7987
+ size: "small",
7988
+ action: function action() {
7989
+ return run(_action2, item);
7990
+ }
7991
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
7992
+ icon: _action2.icon,
7993
+ clickable: true,
7994
+ size: "small",
7995
+ action: function action() {
7996
+ return run(_action2, item);
7997
+ }
7998
+ });
7999
+ }) : [];
8000
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
8001
+ icon: "delete",
8002
+ size: "small",
8003
+ clickable: true,
8004
+ action: function action() {
8005
+ return remove(item.id);
8006
+ }
8007
+ }));
8008
+ return item;
8009
+ });
8010
+ table.rows = rows;
8011
+ return {
8012
+ id: groupName,
8013
+ checked: false,
8014
+ title: renderGroupLabel(groupName),
8015
+ info: groups[groupName].length,
8016
+ open: true,
8017
+ children: /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
8018
+ onRowSelection: select,
8019
+ editable: editable,
8020
+ onCheckAll: check,
8021
+ className: className
8022
+ }))
8023
+ };
8024
+ });
8025
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8026
+ icon: icon,
8027
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
8028
+ }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
8029
+ id: "groupBy",
8030
+ label: "Agrupar Por",
8031
+ value: groupBy,
8032
+ options: buildGroupOptions(schema),
8033
+ onChange: changeGroup
8034
+ }) : null, tabbedBy ? /*#__PURE__*/React__default["default"].createElement(Tabs, {
8035
+ fillRight: true,
8036
+ fillLeft: false
8037
+ }, tabs.map(function (tab) {
8038
+ return /*#__PURE__*/React__default["default"].createElement(Tab, {
8039
+ id: tab.value,
8040
+ label: tab.label
8041
+ });
8042
+ })) : ''), /*#__PURE__*/React__default["default"].createElement("main", {
8043
+ className: "table-editor"
8044
+ }, /*#__PURE__*/React__default["default"].createElement(Accordion, {
8045
+ sections: sections
8046
+ })));
8047
+ };
8048
+ /**
8049
+ * Table Context
8050
+ */
8051
+
8052
+ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
8053
+ var API = TableAPI$1(url, host, params);
8054
+ return {
8055
+ all: [],
8056
+ checked: new Set([]),
8057
+ selected: null,
8058
+ filters: {},
8059
+ queries: [],
8060
+ load: function load(filter) {
8061
+ try {
8062
+ var _this2 = this;
8063
+
8064
+ var _temp7 = _catch$1(function () {
8065
+ var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
8066
+ var field = filter[key];
8067
+
8068
+ if (field) {
8069
+ if (CHECK['isObject'](field)) {
8070
+ Object.keys(field).forEach(function (key2) {
8071
+ var subfield = field[key2];
8072
+ if (subfield) filters[key + "." + key2] = subfield;
8073
+ });
8074
+ } else {
8075
+ filters[key] = field;
8076
+ }
8077
+ }
8078
+
8079
+ return filters;
8080
+ }, {}) : [];
8081
+ return Promise.resolve(API.all(filters)).then(function (data) {
8082
+ _this2.all = field ? data[field] : data;
8083
+ });
8084
+ }, function (error) {
8085
+ console.log(error);
8086
+ });
8087
+
8088
+ return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
8089
+ } catch (e) {
8090
+ return Promise.reject(e);
8091
+ }
8092
+ },
8093
+ check: function check(ids, isChecked) {
8094
+ var _this3 = this;
8095
+
8096
+ if (isChecked === void 0) {
8097
+ isChecked = true;
8098
+ }
8099
+
8100
+ if (isChecked) {
8101
+ ids.forEach(function (id) {
8102
+ return _this3.checked.add(id);
8103
+ });
8104
+ } else {
8105
+ ids.forEach(function (id) {
8106
+ return _this3.checked["delete"](id);
8107
+ });
8108
+ }
8109
+ },
8110
+ select: function select(id) {
8111
+ var result = this.all.find(function (item) {
8112
+ return item.id === id;
8113
+ });
8114
+ this.selected = result;
8115
+ },
8116
+ clear: function clear() {
8117
+ this.selected = null;
8118
+ },
8119
+ create: function create(form) {
8120
+ try {
8121
+ var _this5 = this;
8122
+
8123
+ var _temp9 = _catch$1(function () {
8124
+ return Promise.resolve(API.create(form)).then(function () {
8125
+ return Promise.resolve(_this5.load()).then(function () {});
8126
+ });
8127
+ }, function (error) {
8128
+ console.log(error);
8129
+ });
8130
+
8131
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
8132
+ } catch (e) {
8133
+ return Promise.reject(e);
8134
+ }
8135
+ },
8136
+ update: function update(form) {
8137
+ try {
8138
+ var _this7 = this;
8139
+
8140
+ var _temp11 = _catch$1(function () {
8141
+ return Promise.resolve(API.update(form)).then(function () {
8142
+ return Promise.resolve(_this7.load()).then(function () {});
8143
+ });
8144
+ }, function (error) {
8145
+ console.log(error);
8146
+ });
8147
+
8148
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
8149
+ } catch (e) {
8150
+ return Promise.reject(e);
8151
+ }
8152
+ },
8153
+ remove: function remove(id) {
8154
+ try {
8155
+ var _this9 = this;
8156
+
8157
+ var _temp13 = _catch$1(function () {
8158
+ return Promise.resolve(API.remove(id)).then(function () {
8159
+ return Promise.resolve(_this9.load()).then(function () {});
8160
+ });
8161
+ }, function (error) {
8162
+ console.log(error);
8163
+ });
8164
+
8165
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
8166
+ } catch (e) {
8167
+ return Promise.reject(e);
8168
+ }
8169
+ },
8170
+ changeFilters: function changeFilters(filters) {
8171
+ this.filters = filters;
8172
+ },
8173
+ loadQueries: function loadQueries(user) {
8174
+ try {
8175
+ var _this11 = this;
8176
+
8177
+ var _temp15 = _catch$1(function () {
8178
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
8179
+ _this11.queries = _API$queries;
8180
+ });
8181
+ }, function (error) {
8182
+ console.log(error);
8183
+ });
8184
+
8185
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
8186
+ } catch (e) {
8187
+ return Promise.reject(e);
8188
+ }
8189
+ },
8190
+ createQuery: function createQuery(query, user) {
8191
+ try {
8192
+ var _this13 = this;
8193
+
8194
+ var _temp17 = _catch$1(function () {
8195
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
8196
+ return Promise.resolve(_this13.loadQueries(user)).then(function () {});
8197
+ });
8198
+ }, function (error) {
8199
+ console.log(error);
8200
+ });
8201
+
8202
+ return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
8203
+ } catch (e) {
8204
+ return Promise.reject(e);
8205
+ }
8206
+ },
8207
+ removeQuery: function removeQuery(id, user) {
8208
+ try {
8209
+ var _this15 = this;
8210
+
8211
+ var _temp19 = _catch$1(function () {
8212
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
8213
+ return Promise.resolve(_this15.loadQueries(user)).then(function () {});
8214
+ });
8215
+ }, function (error) {
8216
+ console.log(error);
8217
+ });
8218
+
8219
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(function () {}) : void 0);
8220
+ } catch (e) {
8221
+ return Promise.reject(e);
8222
+ }
8223
+ }
8224
+ };
8225
+ };
8226
+ /**
8227
+ * Table API
8228
+ */
8229
+
8230
+
7133
8231
  var TableAPI$1 = function TableAPI(url, host, params) {
7134
8232
  if (params === void 0) {
7135
8233
  params = "";
@@ -8295,6 +9393,7 @@
8295
9393
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8296
9394
  };
8297
9395
 
9396
+ exports.Accordion = Accordion;
8298
9397
  exports.Avatar = Avatar;
8299
9398
  exports.Button = Button;
8300
9399
  exports.Calendar = Calendar;
@@ -8354,8 +9453,9 @@
8354
9453
  exports.TabbedContentEditor = TabbedContentEditor;
8355
9454
  exports.TabbedTablePage = TabbedTablePage;
8356
9455
  exports.TabbedView = TabbedView;
8357
- exports.TableEditor = TableEditor$1;
9456
+ exports.TableEditor = TableEditor$2;
8358
9457
  exports.TablePage = TablePage;
9458
+ exports.TablePage2 = TablePage2;
8359
9459
  exports.Tabs = Tabs;
8360
9460
  exports.Text = Text;
8361
9461
  exports.TextArea = TextArea;