ywana-core8 0.0.571 → 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
@@ -4194,13 +4287,13 @@
4194
4287
  * Tabbed Content Editor
4195
4288
  */
4196
4289
 
4197
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4198
- var content = _ref2.content,
4199
- filter = _ref2.filter,
4200
- _ref2$grouped = _ref2.grouped,
4201
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4202
- onChange = _ref2.onChange,
4203
- 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;
4204
4297
 
4205
4298
  var _useState = React.useState(0),
4206
4299
  tab = _useState[0],
@@ -4285,9 +4378,9 @@
4285
4378
  * TreededContentEditor
4286
4379
  */
4287
4380
 
4288
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4289
- var content = _ref3.content,
4290
- onChange = _ref3.onChange;
4381
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4382
+ var content = _ref4.content,
4383
+ onChange = _ref4.onChange;
4291
4384
  var value = content.value();
4292
4385
  var nodes = Object.values(content.type).filter(function (field) {
4293
4386
  return field.type === TYPES.ARRAY;
@@ -4352,13 +4445,13 @@
4352
4445
  * FieldEditor
4353
4446
  */
4354
4447
 
4355
- var FieldEditor = function FieldEditor(_ref4) {
4356
- var field = _ref4.field,
4357
- onChange = _ref4.onChange,
4358
- content = _ref4.content,
4359
- _ref4$outlined = _ref4.outlined,
4360
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4361
- 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;
4362
4455
  var id = field.id,
4363
4456
  type = field.type,
4364
4457
  item = field.item,
@@ -4445,11 +4538,11 @@
4445
4538
  * Entity Editor
4446
4539
  */
4447
4540
 
4448
- var EntityEditor = function EntityEditor(_ref5) {
4449
- var field = _ref5.field,
4450
- _ref5$value = _ref5.value,
4451
- value = _ref5$value === void 0 ? {} : _ref5$value,
4452
- 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;
4453
4546
  var id = field.id,
4454
4547
  item = field.item,
4455
4548
  label = field.label;
@@ -4509,13 +4602,13 @@
4509
4602
  */
4510
4603
 
4511
4604
 
4512
- var StringEditor = function StringEditor(_ref6) {
4513
- var field = _ref6.field,
4514
- _ref6$value = _ref6.value,
4515
- value = _ref6$value === void 0 ? '' : _ref6$value,
4516
- onChange = _ref6.onChange,
4517
- content = _ref6.content,
4518
- 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;
4519
4612
  var id = field.id,
4520
4613
  format = field.format,
4521
4614
  label = field.label,
@@ -4631,12 +4724,12 @@
4631
4724
  * Number Editor
4632
4725
  */
4633
4726
 
4634
- var NumberEditor = function NumberEditor(_ref7) {
4635
- var field = _ref7.field,
4636
- value = _ref7.value,
4637
- onChange = _ref7.onChange,
4638
- _ref7$outlined = _ref7.outlined,
4639
- 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;
4640
4733
  var id = field.id,
4641
4734
  label = field.label,
4642
4735
  _field$editable2 = field.editable,
@@ -4669,11 +4762,11 @@
4669
4762
  */
4670
4763
 
4671
4764
 
4672
- var ListEditor = function ListEditor(_ref8) {
4673
- var field = _ref8.field,
4674
- _ref8$value = _ref8.value,
4675
- value = _ref8$value === void 0 ? [] : _ref8$value,
4676
- 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;
4677
4770
  var label = field.label;
4678
4771
 
4679
4772
  function change(id, value) {
@@ -4693,12 +4786,12 @@
4693
4786
  * Multi Selection Editor
4694
4787
  */
4695
4788
 
4696
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4697
- var field = _ref9.field,
4698
- _ref9$value = _ref9.value,
4699
- value = _ref9$value === void 0 ? [] : _ref9$value,
4700
- content = _ref9.content,
4701
- 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;
4702
4795
  var id = field.id,
4703
4796
  label = field.label,
4704
4797
  options = field.options;
@@ -4737,12 +4830,12 @@
4737
4830
  * Collection Editor
4738
4831
  */
4739
4832
 
4740
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4741
- var field = _ref10.field,
4742
- _ref10$value = _ref10.value,
4743
- value = _ref10$value === void 0 ? [] : _ref10$value,
4744
- onChange = _ref10.onChange,
4745
- 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;
4746
4839
  var id = field.id,
4747
4840
  item = field.item,
4748
4841
  label = field.label,
@@ -4812,7 +4905,7 @@
4812
4905
  onChange: onChange,
4813
4906
  onReload: reload
4814
4907
  }) // : <DataTable {...table} editable={editable} />
4815
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4908
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4816
4909
  icon: "info",
4817
4910
  title: label,
4818
4911
  data: value,
@@ -4832,9 +4925,9 @@
4832
4925
  * Collection Adder
4833
4926
  */
4834
4927
 
4835
- var CollectionAdder = function CollectionAdder(_ref11) {
4836
- var item = _ref11.item,
4837
- onAdd = _ref11.onAdd;
4928
+ var CollectionAdder = function CollectionAdder(_ref12) {
4929
+ var item = _ref12.item,
4930
+ onAdd = _ref12.onAdd;
4838
4931
 
4839
4932
  var _useState3 = React.useState(false),
4840
4933
  edit = _useState3[0],
@@ -4903,7 +4996,7 @@
4903
4996
  */
4904
4997
 
4905
4998
 
4906
- var TableEditor$2 = function TableEditor(props) {
4999
+ var TableEditor$3 = function TableEditor(props) {
4907
5000
  var select = function select(row) {
4908
5001
  try {
4909
5002
  if (onSelect) onSelect(row.id);
@@ -5247,7 +5340,7 @@
5247
5340
  * Collection Page
5248
5341
  */
5249
5342
 
5250
- function _catch$2(body, recover) {
5343
+ function _catch$3(body, recover) {
5251
5344
  try {
5252
5345
  var result = body();
5253
5346
  } catch (e) {
@@ -5824,7 +5917,7 @@
5824
5917
  try {
5825
5918
  var _this2 = this;
5826
5919
 
5827
- var _temp2 = _catch$2(function () {
5920
+ var _temp2 = _catch$3(function () {
5828
5921
  return Promise.resolve(API.all(null, page)).then(function (data) {
5829
5922
  _this2.all = field ? data[field] : data;
5830
5923
  });
@@ -5873,7 +5966,7 @@
5873
5966
  },
5874
5967
  fetch: function fetch(id) {
5875
5968
  try {
5876
- return Promise.resolve(_catch$2(function () {
5969
+ return Promise.resolve(_catch$3(function () {
5877
5970
  return Promise.resolve(API.find(id));
5878
5971
  }, function (error) {
5879
5972
  console.log(error);
@@ -5889,7 +5982,7 @@
5889
5982
  try {
5890
5983
  var _this8 = this;
5891
5984
 
5892
- var _temp6 = _catch$2(function () {
5985
+ var _temp6 = _catch$3(function () {
5893
5986
  return Promise.resolve(API.create(form)).then(function () {
5894
5987
  return Promise.resolve(_this8.load()).then(function () {});
5895
5988
  });
@@ -5906,7 +5999,7 @@
5906
5999
  try {
5907
6000
  var _this10 = this;
5908
6001
 
5909
- var _temp8 = _catch$2(function () {
6002
+ var _temp8 = _catch$3(function () {
5910
6003
  return Promise.resolve(API.update(form)).then(function () {
5911
6004
  return Promise.resolve(_this10.load()).then(function () {});
5912
6005
  });
@@ -5923,7 +6016,7 @@
5923
6016
  try {
5924
6017
  var _this12 = this;
5925
6018
 
5926
- var _temp10 = _catch$2(function () {
6019
+ var _temp10 = _catch$3(function () {
5927
6020
  return Promise.resolve(API.patch(id, form)).then(function () {
5928
6021
  return Promise.resolve(_this12.load()).then(function () {});
5929
6022
  });
@@ -5940,7 +6033,7 @@
5940
6033
  try {
5941
6034
  var _this14 = this;
5942
6035
 
5943
- var _temp12 = _catch$2(function () {
6036
+ var _temp12 = _catch$3(function () {
5944
6037
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5945
6038
  return Promise.resolve(_this14.load()).then(function () {});
5946
6039
  });
@@ -5957,7 +6050,7 @@
5957
6050
  try {
5958
6051
  var _this16 = this;
5959
6052
 
5960
- var _temp14 = _catch$2(function () {
6053
+ var _temp14 = _catch$3(function () {
5961
6054
  return Promise.resolve(API.remove(id)).then(function () {
5962
6055
  return Promise.resolve(_this16.load()).then(function () {});
5963
6056
  });
@@ -6170,7 +6263,7 @@
6170
6263
  * Table Page
6171
6264
  */
6172
6265
 
6173
- function _catch$1(body, recover) {
6266
+ function _catch$2(body, recover) {
6174
6267
  try {
6175
6268
  var result = body();
6176
6269
  } catch (e) {
@@ -6297,7 +6390,7 @@
6297
6390
  pageContext = _useContext[0],
6298
6391
  setPageContext = _useContext[1];
6299
6392
 
6300
- var context = TableContext$1(url, field, host, urlQuery, params);
6393
+ var context = TableContext$2(url, field, host, urlQuery, params);
6301
6394
  var selected = pageContext.selected;
6302
6395
  var timer = React.useRef(null);
6303
6396
 
@@ -6397,13 +6490,13 @@
6397
6490
  if (rowSelected || rowChecked) {
6398
6491
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6399
6492
  className: "table-page"
6400
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6493
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6401
6494
  content: new Content(schema, form),
6402
6495
  filter: editorFilter,
6403
6496
  onChange: change,
6404
6497
  onClose: closeAside,
6405
6498
  editable: canEdit
6406
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6499
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6407
6500
  schema: schema,
6408
6501
  actions: selectionActions
6409
6502
  }) : null);
@@ -6444,17 +6537,17 @@
6444
6537
  onSelect: playScenario
6445
6538
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6446
6539
  className: "table-page"
6447
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6540
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6448
6541
  schema: schema,
6449
6542
  url: url,
6450
6543
  user: user
6451
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6544
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6452
6545
  schema: schema,
6453
6546
  onSave: canQuery ? saveQuery : null
6454
6547
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6455
6548
  key: id,
6456
6549
  className: "table-page"
6457
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6550
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6458
6551
  icon: icon,
6459
6552
  title: name,
6460
6553
  schema: schema,
@@ -6468,7 +6561,7 @@
6468
6561
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6469
6562
  };
6470
6563
 
6471
- var TableRowEditor$1 = function TableRowEditor(props) {
6564
+ var TableRowEditor$2 = function TableRowEditor(props) {
6472
6565
  var name = props.name,
6473
6566
  content = props.content,
6474
6567
  filter = props.filter,
@@ -6497,7 +6590,7 @@
6497
6590
  */
6498
6591
 
6499
6592
 
6500
- var TableSelector$1 = function TableSelector(props) {
6593
+ var TableSelector$2 = function TableSelector(props) {
6501
6594
  var schema = props.schema,
6502
6595
  _props$actions2 = props.actions,
6503
6596
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6560,7 +6653,7 @@
6560
6653
  */
6561
6654
 
6562
6655
 
6563
- var TableQueries$1 = function TableQueries(props) {
6656
+ var TableQueries$2 = function TableQueries(props) {
6564
6657
  var remove = function remove(id) {
6565
6658
  try {
6566
6659
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6622,7 +6715,7 @@
6622
6715
  */
6623
6716
 
6624
6717
 
6625
- var TableFilters$1 = function TableFilters(props) {
6718
+ var TableFilters$2 = function TableFilters(props) {
6626
6719
  var reload = function reload() {
6627
6720
  try {
6628
6721
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6718,7 +6811,7 @@
6718
6811
  */
6719
6812
 
6720
6813
 
6721
- var TableEditor$1 = function TableEditor(props) {
6814
+ var TableEditor$2 = function TableEditor(props) {
6722
6815
  var checkOne = function checkOne(id, field, value) {
6723
6816
  check([id], value);
6724
6817
  return Promise.resolve();
@@ -6950,6 +7043,1028 @@
6950
7043
  * Table Context
6951
7044
  */
6952
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
+
6953
8068
  var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6954
8069
  var API = TableAPI$1(url, host, params);
6955
8070
  return {
@@ -8294,6 +9409,7 @@
8294
9409
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8295
9410
  };
8296
9411
 
9412
+ exports.Accordion = Accordion;
8297
9413
  exports.Avatar = Avatar;
8298
9414
  exports.Button = Button;
8299
9415
  exports.Calendar = Calendar;
@@ -8353,8 +9469,9 @@
8353
9469
  exports.TabbedContentEditor = TabbedContentEditor;
8354
9470
  exports.TabbedTablePage = TabbedTablePage;
8355
9471
  exports.TabbedView = TabbedView;
8356
- exports.TableEditor = TableEditor$1;
9472
+ exports.TableEditor = TableEditor$2;
8357
9473
  exports.TablePage = TablePage;
9474
+ exports.TablePage2 = TablePage2;
8358
9475
  exports.Tabs = Tabs;
8359
9476
  exports.Text = Text;
8360
9477
  exports.TextArea = TextArea;