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.cjs CHANGED
@@ -17,7 +17,7 @@ var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment$1);
17
17
  var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
18
18
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
19
19
 
20
- function _catch$3(body, recover) {
20
+ function _catch$4(body, recover) {
21
21
  try {
22
22
  var result = body();
23
23
  } catch (e) {
@@ -49,7 +49,7 @@ var fetchAsync = function fetchAsync(method, URL, body, token, headers) {
49
49
  body: body
50
50
  };
51
51
  if (headers) request.headers = request.headers;
52
- return Promise.resolve(_catch$3(function () {
52
+ return Promise.resolve(_catch$4(function () {
53
53
  return Promise.resolve(fetch(URL, request)).then(function (response) {
54
54
  var _exit;
55
55
 
@@ -150,6 +150,24 @@ var Session = {
150
150
  }
151
151
  };
152
152
 
153
+ function _extends() {
154
+ _extends = Object.assign || function (target) {
155
+ for (var i = 1; i < arguments.length; i++) {
156
+ var source = arguments[i];
157
+
158
+ for (var key in source) {
159
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
160
+ target[key] = source[key];
161
+ }
162
+ }
163
+ }
164
+
165
+ return target;
166
+ };
167
+
168
+ return _extends.apply(this, arguments);
169
+ }
170
+
153
171
  /**
154
172
  * Icon
155
173
  */
@@ -182,6 +200,99 @@ var Icon = function Icon(_ref) {
182
200
  }, icon);
183
201
  };
184
202
 
203
+ var Accordion = function Accordion(props) {
204
+ var className = props.className,
205
+ _props$sections = props.sections,
206
+ sections = _props$sections === void 0 ? [] : _props$sections,
207
+ onCheck = props.onCheck;
208
+
209
+ var _useState = React.useState(sections.map(function (section) {
210
+ return section.open;
211
+ })),
212
+ openSections = _useState[0],
213
+ setOpenSections = _useState[1];
214
+
215
+ var _useState2 = React.useState(sections.map(function (section) {
216
+ return section.checked;
217
+ })),
218
+ checkedSections = _useState2[0],
219
+ setCheckedSections = _useState2[1];
220
+
221
+ function toggle(index) {
222
+ var next = openSections.map(function (open, i) {
223
+ return i === index ? !open : open;
224
+ });
225
+ setOpenSections(next);
226
+ }
227
+
228
+ function check(index) {
229
+ var next = checkedSections.map(function (checked, i) {
230
+ return i === index ? !checked : checked;
231
+ });
232
+ setCheckedSections(next);
233
+ if (onCheck) onCheck(index, next[index], sections[index].id);
234
+ }
235
+
236
+ return /*#__PURE__*/React__default["default"].createElement("div", {
237
+ className: "accordion " + className
238
+ }, sections.map(function (section, index) {
239
+ var isOpen = openSections[index];
240
+ var isChecked = checkedSections[index];
241
+ return /*#__PURE__*/React__default["default"].createElement(AccordionSection, _extends({
242
+ key: index
243
+ }, section, {
244
+ open: isOpen,
245
+ checked: isChecked,
246
+ onToggle: function onToggle() {
247
+ return toggle(index);
248
+ },
249
+ onCheck: function onCheck() {
250
+ return check(index);
251
+ }
252
+ }), section.children);
253
+ }));
254
+ };
255
+
256
+ var AccordionSection = function AccordionSection(props) {
257
+ var checked = props.checked,
258
+ icon = props.icon,
259
+ title = props.title,
260
+ subtitle = props.subtitle,
261
+ _props$open = props.open,
262
+ open = _props$open === void 0 ? false : _props$open,
263
+ onToggle = props.onToggle,
264
+ onCheck = props.onCheck,
265
+ toolbar = props.toolbar,
266
+ info = props.info,
267
+ children = props.children;
268
+ var togglerIcon = open ? "expand_less" : "expand_more";
269
+ var checkedIcon = checked === undefined || checked === null ? null : checked === false ? "check_box_outline_blank" : "check_box";
270
+ return /*#__PURE__*/React__default["default"].createElement("section", {
271
+ className: "accordion-section"
272
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, checkedIcon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
273
+ className: "accordion-section-checker",
274
+ icon: checkedIcon,
275
+ clickable: true,
276
+ action: onCheck
277
+ }) : '', icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
278
+ className: "accordion-section-icon",
279
+ icon: icon
280
+ }) : '', title ? /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: "accordion-section--title"
282
+ }, title) : '', subtitle ? /*#__PURE__*/React__default["default"].createElement("div", {
283
+ className: "accordion-section--subtitle"
284
+ }, subtitle) : '', info ? /*#__PURE__*/React__default["default"].createElement("div", {
285
+ className: "accordion-section--info"
286
+ }, info) : '', toolbar ? /*#__PURE__*/React__default["default"].createElement("div", {
287
+ className: "accordion-section--toolbar"
288
+ }, toolbar) : '', /*#__PURE__*/React__default["default"].createElement(Icon, {
289
+ className: "accordion-section-toggler",
290
+ icon: togglerIcon,
291
+ clickable: true,
292
+ action: onToggle
293
+ })), open ? /*#__PURE__*/React__default["default"].createElement("main", null, children) : '');
294
+ };
295
+
185
296
  /**
186
297
  * HTML Button
187
298
  */
@@ -501,24 +612,6 @@ var Header = function Header(props) {
501
612
  }, props.children));
502
613
  };
503
614
 
504
- function _extends() {
505
- _extends = Object.assign || function (target) {
506
- for (var i = 1; i < arguments.length; i++) {
507
- var source = arguments[i];
508
-
509
- for (var key in source) {
510
- if (Object.prototype.hasOwnProperty.call(source, key)) {
511
- target[key] = source[key];
512
- }
513
- }
514
- }
515
-
516
- return target;
517
- };
518
-
519
- return _extends.apply(this, arguments);
520
- }
521
-
522
615
  /**
523
616
  * List
524
617
  */
@@ -859,7 +952,7 @@ var Section = function Section(props) {
859
952
  };
860
953
 
861
954
  return /*#__PURE__*/React__default["default"].createElement("section", {
862
- className: "section2 " + className
955
+ className: "section " + className
863
956
  }, /*#__PURE__*/React__default["default"].createElement(Header, {
864
957
  icon: icon,
865
958
  title: title
@@ -4200,13 +4293,13 @@ var ContentEditor = function ContentEditor(_ref) {
4200
4293
  * Tabbed Content Editor
4201
4294
  */
4202
4295
 
4203
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4204
- var content = _ref2.content,
4205
- filter = _ref2.filter,
4206
- _ref2$grouped = _ref2.grouped,
4207
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4208
- onChange = _ref2.onChange,
4209
- onReload = _ref2.onReload;
4296
+ var TabbedContentEditor = function TabbedContentEditor(_ref3) {
4297
+ var content = _ref3.content,
4298
+ filter = _ref3.filter,
4299
+ _ref3$grouped = _ref3.grouped,
4300
+ grouped = _ref3$grouped === void 0 ? false : _ref3$grouped,
4301
+ onChange = _ref3.onChange,
4302
+ onReload = _ref3.onReload;
4210
4303
 
4211
4304
  var _useState = React.useState(0),
4212
4305
  tab = _useState[0],
@@ -4291,9 +4384,9 @@ var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4291
4384
  * TreededContentEditor
4292
4385
  */
4293
4386
 
4294
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4295
- var content = _ref3.content,
4296
- onChange = _ref3.onChange;
4387
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4388
+ var content = _ref4.content,
4389
+ onChange = _ref4.onChange;
4297
4390
  var value = content.value();
4298
4391
  var nodes = Object.values(content.type).filter(function (field) {
4299
4392
  return field.type === TYPES.ARRAY;
@@ -4358,13 +4451,13 @@ var TreededContentEditor = function TreededContentEditor(_ref3) {
4358
4451
  * FieldEditor
4359
4452
  */
4360
4453
 
4361
- var FieldEditor = function FieldEditor(_ref4) {
4362
- var field = _ref4.field,
4363
- onChange = _ref4.onChange,
4364
- content = _ref4.content,
4365
- _ref4$outlined = _ref4.outlined,
4366
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4367
- onReload = _ref4.onReload;
4454
+ var FieldEditor = function FieldEditor(_ref5) {
4455
+ var field = _ref5.field,
4456
+ onChange = _ref5.onChange,
4457
+ content = _ref5.content,
4458
+ _ref5$outlined = _ref5.outlined,
4459
+ outlined = _ref5$outlined === void 0 ? false : _ref5$outlined,
4460
+ onReload = _ref5.onReload;
4368
4461
  var id = field.id,
4369
4462
  type = field.type,
4370
4463
  item = field.item,
@@ -4451,11 +4544,11 @@ var FieldEditor = function FieldEditor(_ref4) {
4451
4544
  * Entity Editor
4452
4545
  */
4453
4546
 
4454
- var EntityEditor = function EntityEditor(_ref5) {
4455
- var field = _ref5.field,
4456
- _ref5$value = _ref5.value,
4457
- value = _ref5$value === void 0 ? {} : _ref5$value,
4458
- onChange = _ref5.onChange;
4547
+ var EntityEditor = function EntityEditor(_ref6) {
4548
+ var field = _ref6.field,
4549
+ _ref6$value = _ref6.value,
4550
+ value = _ref6$value === void 0 ? {} : _ref6$value,
4551
+ onChange = _ref6.onChange;
4459
4552
  var id = field.id,
4460
4553
  item = field.item,
4461
4554
  label = field.label;
@@ -4515,13 +4608,13 @@ var EntityEditor = function EntityEditor(_ref5) {
4515
4608
  */
4516
4609
 
4517
4610
 
4518
- var StringEditor = function StringEditor(_ref6) {
4519
- var field = _ref6.field,
4520
- _ref6$value = _ref6.value,
4521
- value = _ref6$value === void 0 ? '' : _ref6$value,
4522
- onChange = _ref6.onChange,
4523
- content = _ref6.content,
4524
- outlined = _ref6.outlined;
4611
+ var StringEditor = function StringEditor(_ref7) {
4612
+ var field = _ref7.field,
4613
+ _ref7$value = _ref7.value,
4614
+ value = _ref7$value === void 0 ? '' : _ref7$value,
4615
+ onChange = _ref7.onChange,
4616
+ content = _ref7.content,
4617
+ outlined = _ref7.outlined;
4525
4618
  var id = field.id,
4526
4619
  format = field.format,
4527
4620
  label = field.label,
@@ -4637,12 +4730,12 @@ var StringEditor = function StringEditor(_ref6) {
4637
4730
  * Number Editor
4638
4731
  */
4639
4732
 
4640
- var NumberEditor = function NumberEditor(_ref7) {
4641
- var field = _ref7.field,
4642
- value = _ref7.value,
4643
- onChange = _ref7.onChange,
4644
- _ref7$outlined = _ref7.outlined,
4645
- outlined = _ref7$outlined === void 0 ? false : _ref7$outlined;
4733
+ var NumberEditor = function NumberEditor(_ref8) {
4734
+ var field = _ref8.field,
4735
+ value = _ref8.value,
4736
+ onChange = _ref8.onChange,
4737
+ _ref8$outlined = _ref8.outlined,
4738
+ outlined = _ref8$outlined === void 0 ? false : _ref8$outlined;
4646
4739
  var id = field.id,
4647
4740
  label = field.label,
4648
4741
  _field$editable2 = field.editable,
@@ -4675,11 +4768,11 @@ var NumberEditor = function NumberEditor(_ref7) {
4675
4768
  */
4676
4769
 
4677
4770
 
4678
- var ListEditor = function ListEditor(_ref8) {
4679
- var field = _ref8.field,
4680
- _ref8$value = _ref8.value,
4681
- value = _ref8$value === void 0 ? [] : _ref8$value,
4682
- onChange = _ref8.onChange;
4771
+ var ListEditor = function ListEditor(_ref9) {
4772
+ var field = _ref9.field,
4773
+ _ref9$value = _ref9.value,
4774
+ value = _ref9$value === void 0 ? [] : _ref9$value,
4775
+ onChange = _ref9.onChange;
4683
4776
  var label = field.label;
4684
4777
 
4685
4778
  function change(id, value) {
@@ -4699,12 +4792,12 @@ var ListEditor = function ListEditor(_ref8) {
4699
4792
  * Multi Selection Editor
4700
4793
  */
4701
4794
 
4702
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4703
- var field = _ref9.field,
4704
- _ref9$value = _ref9.value,
4705
- value = _ref9$value === void 0 ? [] : _ref9$value,
4706
- content = _ref9.content,
4707
- onChange = _ref9.onChange;
4795
+ var MultiSelectionEditor = function MultiSelectionEditor(_ref10) {
4796
+ var field = _ref10.field,
4797
+ _ref10$value = _ref10.value,
4798
+ value = _ref10$value === void 0 ? [] : _ref10$value,
4799
+ content = _ref10.content,
4800
+ onChange = _ref10.onChange;
4708
4801
  var id = field.id,
4709
4802
  label = field.label,
4710
4803
  options = field.options;
@@ -4743,12 +4836,12 @@ var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4743
4836
  * Collection Editor
4744
4837
  */
4745
4838
 
4746
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4747
- var field = _ref10.field,
4748
- _ref10$value = _ref10.value,
4749
- value = _ref10$value === void 0 ? [] : _ref10$value,
4750
- onChange = _ref10.onChange,
4751
- onReload = _ref10.onReload;
4839
+ var CollectionEditor$1 = function CollectionEditor(_ref11) {
4840
+ var field = _ref11.field,
4841
+ _ref11$value = _ref11.value,
4842
+ value = _ref11$value === void 0 ? [] : _ref11$value,
4843
+ onChange = _ref11.onChange,
4844
+ onReload = _ref11.onReload;
4752
4845
  var id = field.id,
4753
4846
  item = field.item,
4754
4847
  label = field.label,
@@ -4818,7 +4911,7 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4818
4911
  onChange: onChange,
4819
4912
  onReload: reload
4820
4913
  }) // : <DataTable {...table} editable={editable} />
4821
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4914
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4822
4915
  icon: "info",
4823
4916
  title: label,
4824
4917
  data: value,
@@ -4838,9 +4931,9 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4838
4931
  * Collection Adder
4839
4932
  */
4840
4933
 
4841
- var CollectionAdder = function CollectionAdder(_ref11) {
4842
- var item = _ref11.item,
4843
- onAdd = _ref11.onAdd;
4934
+ var CollectionAdder = function CollectionAdder(_ref12) {
4935
+ var item = _ref12.item,
4936
+ onAdd = _ref12.onAdd;
4844
4937
 
4845
4938
  var _useState3 = React.useState(false),
4846
4939
  edit = _useState3[0],
@@ -4909,7 +5002,7 @@ var CollectionAdder = function CollectionAdder(_ref11) {
4909
5002
  */
4910
5003
 
4911
5004
 
4912
- var TableEditor$2 = function TableEditor(props) {
5005
+ var TableEditor$3 = function TableEditor(props) {
4913
5006
  var select = function select(row) {
4914
5007
  try {
4915
5008
  if (onSelect) onSelect(row.id);
@@ -5253,7 +5346,7 @@ var EditContentDialog = function EditContentDialog(_ref) {
5253
5346
  * Collection Page
5254
5347
  */
5255
5348
 
5256
- function _catch$2(body, recover) {
5349
+ function _catch$3(body, recover) {
5257
5350
  try {
5258
5351
  var result = body();
5259
5352
  } catch (e) {
@@ -5830,7 +5923,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5830
5923
  try {
5831
5924
  var _this2 = this;
5832
5925
 
5833
- var _temp2 = _catch$2(function () {
5926
+ var _temp2 = _catch$3(function () {
5834
5927
  return Promise.resolve(API.all(null, page)).then(function (data) {
5835
5928
  _this2.all = field ? data[field] : data;
5836
5929
  });
@@ -5879,7 +5972,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5879
5972
  },
5880
5973
  fetch: function fetch(id) {
5881
5974
  try {
5882
- return Promise.resolve(_catch$2(function () {
5975
+ return Promise.resolve(_catch$3(function () {
5883
5976
  return Promise.resolve(API.find(id));
5884
5977
  }, function (error) {
5885
5978
  console.log(error);
@@ -5895,7 +5988,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5895
5988
  try {
5896
5989
  var _this8 = this;
5897
5990
 
5898
- var _temp6 = _catch$2(function () {
5991
+ var _temp6 = _catch$3(function () {
5899
5992
  return Promise.resolve(API.create(form)).then(function () {
5900
5993
  return Promise.resolve(_this8.load()).then(function () {});
5901
5994
  });
@@ -5912,7 +6005,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5912
6005
  try {
5913
6006
  var _this10 = this;
5914
6007
 
5915
- var _temp8 = _catch$2(function () {
6008
+ var _temp8 = _catch$3(function () {
5916
6009
  return Promise.resolve(API.update(form)).then(function () {
5917
6010
  return Promise.resolve(_this10.load()).then(function () {});
5918
6011
  });
@@ -5929,7 +6022,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5929
6022
  try {
5930
6023
  var _this12 = this;
5931
6024
 
5932
- var _temp10 = _catch$2(function () {
6025
+ var _temp10 = _catch$3(function () {
5933
6026
  return Promise.resolve(API.patch(id, form)).then(function () {
5934
6027
  return Promise.resolve(_this12.load()).then(function () {});
5935
6028
  });
@@ -5946,7 +6039,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5946
6039
  try {
5947
6040
  var _this14 = this;
5948
6041
 
5949
- var _temp12 = _catch$2(function () {
6042
+ var _temp12 = _catch$3(function () {
5950
6043
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5951
6044
  return Promise.resolve(_this14.load()).then(function () {});
5952
6045
  });
@@ -5963,7 +6056,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5963
6056
  try {
5964
6057
  var _this16 = this;
5965
6058
 
5966
- var _temp14 = _catch$2(function () {
6059
+ var _temp14 = _catch$3(function () {
5967
6060
  return Promise.resolve(API.remove(id)).then(function () {
5968
6061
  return Promise.resolve(_this16.load()).then(function () {});
5969
6062
  });
@@ -6176,7 +6269,7 @@ var QUERY = {
6176
6269
  * Table Page
6177
6270
  */
6178
6271
 
6179
- function _catch$1(body, recover) {
6272
+ function _catch$2(body, recover) {
6180
6273
  try {
6181
6274
  var result = body();
6182
6275
  } catch (e) {
@@ -6303,7 +6396,7 @@ var TablePage = function TablePage(props) {
6303
6396
  pageContext = _useContext[0],
6304
6397
  setPageContext = _useContext[1];
6305
6398
 
6306
- var context = TableContext$1(url, field, host, urlQuery, params);
6399
+ var context = TableContext$2(url, field, host, urlQuery, params);
6307
6400
  var selected = pageContext.selected;
6308
6401
  var timer = React.useRef(null);
6309
6402
 
@@ -6403,13 +6496,13 @@ var TablePage = function TablePage(props) {
6403
6496
  if (rowSelected || rowChecked) {
6404
6497
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6405
6498
  className: "table-page"
6406
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6499
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6407
6500
  content: new Content(schema, form),
6408
6501
  filter: editorFilter,
6409
6502
  onChange: change,
6410
6503
  onClose: closeAside,
6411
6504
  editable: canEdit
6412
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6505
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6413
6506
  schema: schema,
6414
6507
  actions: selectionActions
6415
6508
  }) : null);
@@ -6450,17 +6543,17 @@ var TablePage = function TablePage(props) {
6450
6543
  onSelect: playScenario
6451
6544
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6452
6545
  className: "table-page"
6453
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6546
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6454
6547
  schema: schema,
6455
6548
  url: url,
6456
6549
  user: user
6457
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6550
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6458
6551
  schema: schema,
6459
6552
  onSave: canQuery ? saveQuery : null
6460
6553
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6461
6554
  key: id,
6462
6555
  className: "table-page"
6463
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6556
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6464
6557
  icon: icon,
6465
6558
  title: name,
6466
6559
  schema: schema,
@@ -6474,7 +6567,7 @@ var TablePage = function TablePage(props) {
6474
6567
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6475
6568
  };
6476
6569
 
6477
- var TableRowEditor$1 = function TableRowEditor(props) {
6570
+ var TableRowEditor$2 = function TableRowEditor(props) {
6478
6571
  var name = props.name,
6479
6572
  content = props.content,
6480
6573
  filter = props.filter,
@@ -6503,7 +6596,7 @@ var TableRowEditor$1 = function TableRowEditor(props) {
6503
6596
  */
6504
6597
 
6505
6598
 
6506
- var TableSelector$1 = function TableSelector(props) {
6599
+ var TableSelector$2 = function TableSelector(props) {
6507
6600
  var schema = props.schema,
6508
6601
  _props$actions2 = props.actions,
6509
6602
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6566,7 +6659,7 @@ var TableSelector$1 = function TableSelector(props) {
6566
6659
  */
6567
6660
 
6568
6661
 
6569
- var TableQueries$1 = function TableQueries(props) {
6662
+ var TableQueries$2 = function TableQueries(props) {
6570
6663
  var remove = function remove(id) {
6571
6664
  try {
6572
6665
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6628,7 +6721,7 @@ var TableQueries$1 = function TableQueries(props) {
6628
6721
  */
6629
6722
 
6630
6723
 
6631
- var TableFilters$1 = function TableFilters(props) {
6724
+ var TableFilters$2 = function TableFilters(props) {
6632
6725
  var reload = function reload() {
6633
6726
  try {
6634
6727
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6724,7 +6817,7 @@ var TableFilters$1 = function TableFilters(props) {
6724
6817
  */
6725
6818
 
6726
6819
 
6727
- var TableEditor$1 = function TableEditor(props) {
6820
+ var TableEditor$2 = function TableEditor(props) {
6728
6821
  var checkOne = function checkOne(id, field, value) {
6729
6822
  check([id], value);
6730
6823
  return Promise.resolve();
@@ -6956,6 +7049,1028 @@ var TableEditor$1 = function TableEditor(props) {
6956
7049
  * Table Context
6957
7050
  */
6958
7051
 
7052
+ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
7053
+ var API = TableAPI$2(url, host, params);
7054
+ return {
7055
+ all: [],
7056
+ checked: new Set([]),
7057
+ selected: null,
7058
+ filters: {},
7059
+ queries: [],
7060
+ load: function load(filter) {
7061
+ try {
7062
+ var _this2 = this;
7063
+
7064
+ var _temp5 = _catch$2(function () {
7065
+ var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
7066
+ var field = filter[key];
7067
+
7068
+ if (field) {
7069
+ if (CHECK['isObject'](field)) {
7070
+ Object.keys(field).forEach(function (key2) {
7071
+ var subfield = field[key2];
7072
+ if (subfield) filters[key + "." + key2] = subfield;
7073
+ });
7074
+ } else {
7075
+ filters[key] = field;
7076
+ }
7077
+ }
7078
+
7079
+ return filters;
7080
+ }, {}) : [];
7081
+ return Promise.resolve(API.all(filters)).then(function (data) {
7082
+ _this2.all = field ? data[field] : data;
7083
+ });
7084
+ }, function (error) {
7085
+ console.log(error);
7086
+ });
7087
+
7088
+ return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {}) : void 0);
7089
+ } catch (e) {
7090
+ return Promise.reject(e);
7091
+ }
7092
+ },
7093
+ check: function check(ids, isChecked) {
7094
+ var _this3 = this;
7095
+
7096
+ if (isChecked === void 0) {
7097
+ isChecked = true;
7098
+ }
7099
+
7100
+ if (isChecked) {
7101
+ ids.forEach(function (id) {
7102
+ return _this3.checked.add(id);
7103
+ });
7104
+ } else {
7105
+ ids.forEach(function (id) {
7106
+ return _this3.checked["delete"](id);
7107
+ });
7108
+ }
7109
+ },
7110
+ select: function select(id) {
7111
+ var result = this.all.find(function (item) {
7112
+ return item.id === id;
7113
+ });
7114
+ this.selected = result;
7115
+ },
7116
+ clear: function clear() {
7117
+ this.selected = null;
7118
+ },
7119
+ create: function create(form) {
7120
+ try {
7121
+ var _this5 = this;
7122
+
7123
+ var _temp7 = _catch$2(function () {
7124
+ return Promise.resolve(API.create(form)).then(function () {
7125
+ return Promise.resolve(_this5.load()).then(function () {});
7126
+ });
7127
+ }, function (error) {
7128
+ console.log(error);
7129
+ });
7130
+
7131
+ return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
7132
+ } catch (e) {
7133
+ return Promise.reject(e);
7134
+ }
7135
+ },
7136
+ update: function update(form) {
7137
+ try {
7138
+ var _this7 = this;
7139
+
7140
+ var _temp9 = _catch$2(function () {
7141
+ return Promise.resolve(API.update(form)).then(function () {
7142
+ return Promise.resolve(_this7.load()).then(function () {});
7143
+ });
7144
+ }, function (error) {
7145
+ console.log(error);
7146
+ });
7147
+
7148
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
7149
+ } catch (e) {
7150
+ return Promise.reject(e);
7151
+ }
7152
+ },
7153
+ remove: function remove(id) {
7154
+ try {
7155
+ var _this9 = this;
7156
+
7157
+ var _temp11 = _catch$2(function () {
7158
+ return Promise.resolve(API.remove(id)).then(function () {
7159
+ return Promise.resolve(_this9.load()).then(function () {});
7160
+ });
7161
+ }, function (error) {
7162
+ console.log(error);
7163
+ });
7164
+
7165
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
7166
+ } catch (e) {
7167
+ return Promise.reject(e);
7168
+ }
7169
+ },
7170
+ changeFilters: function changeFilters(filters) {
7171
+ this.filters = filters;
7172
+ },
7173
+ loadQueries: function loadQueries(user) {
7174
+ try {
7175
+ var _this11 = this;
7176
+
7177
+ var _temp13 = _catch$2(function () {
7178
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
7179
+ _this11.queries = _API$queries;
7180
+ });
7181
+ }, function (error) {
7182
+ console.log(error);
7183
+ });
7184
+
7185
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
7186
+ } catch (e) {
7187
+ return Promise.reject(e);
7188
+ }
7189
+ },
7190
+ createQuery: function createQuery(query, user) {
7191
+ try {
7192
+ var _this13 = this;
7193
+
7194
+ var _temp15 = _catch$2(function () {
7195
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
7196
+ return Promise.resolve(_this13.loadQueries(user)).then(function () {});
7197
+ });
7198
+ }, function (error) {
7199
+ console.log(error);
7200
+ });
7201
+
7202
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
7203
+ } catch (e) {
7204
+ return Promise.reject(e);
7205
+ }
7206
+ },
7207
+ removeQuery: function removeQuery(id, user) {
7208
+ try {
7209
+ var _this15 = this;
7210
+
7211
+ var _temp17 = _catch$2(function () {
7212
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
7213
+ return Promise.resolve(_this15.loadQueries(user)).then(function () {});
7214
+ });
7215
+ }, function (error) {
7216
+ console.log(error);
7217
+ });
7218
+
7219
+ return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
7220
+ } catch (e) {
7221
+ return Promise.reject(e);
7222
+ }
7223
+ }
7224
+ };
7225
+ };
7226
+ /**
7227
+ * table API
7228
+ */
7229
+
7230
+
7231
+ var TableAPI$2 = function TableAPI(url, host, params) {
7232
+ if (params === void 0) {
7233
+ params = "";
7234
+ }
7235
+
7236
+ var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
7237
+ return {
7238
+ all: function all(filters) {
7239
+ var queryParams = "?" + params;
7240
+
7241
+ if (filters) {
7242
+ var filterQuery = Object.keys(filters).reduce(function (query, key) {
7243
+ var value = filters[key];
7244
+
7245
+ if (typeof value === 'boolean') {
7246
+ return query.concat(key + "=" + value + "&");
7247
+ } else if (Array.isArray(value)) {
7248
+ var param = value.length === 0 ? '' : value.reduce(function (param, item) {
7249
+ param = param.concat(key + "=" + item + "&");
7250
+ return param;
7251
+ }, "");
7252
+ return query.concat(param);
7253
+ } else {
7254
+ return query.concat(key + "=%" + filters[key] + "%&");
7255
+ }
7256
+ }, "");
7257
+ queryParams = queryParams.concat(filterQuery);
7258
+ }
7259
+
7260
+ return http.GET(url + queryParams);
7261
+ },
7262
+ find: function find(id) {
7263
+ return http.GET(url + "/" + id);
7264
+ },
7265
+ create: function create(form) {
7266
+ var body = JSON.stringify(form);
7267
+ return http.POST(url, body);
7268
+ },
7269
+ update: function update(form) {
7270
+ var body = JSON.stringify(form);
7271
+ return http.PUT(url + "/" + form.id, body);
7272
+ },
7273
+ remove: function remove(id) {
7274
+ return http.DELETE(url + "/" + id);
7275
+ },
7276
+ queries: function queries(user, url2) {
7277
+ var url3 = url2 ? url2 : url;
7278
+ url3 = url3 + "queries";
7279
+ if (user) url3 = url3 + ("?user=" + user);
7280
+ return http.GET(url3);
7281
+ },
7282
+ createQuery: function createQuery(form, url2) {
7283
+ var url3 = url2 ? url2 : url;
7284
+ var body = JSON.stringify(form);
7285
+ return http.POST(url3 + "queries", body);
7286
+ },
7287
+ removeQuery: function removeQuery(id, url2) {
7288
+ var url3 = url2 ? url2 : url;
7289
+ return http.DELETE(url3 + "queries/" + id);
7290
+ }
7291
+ };
7292
+ };
7293
+
7294
+ /**
7295
+ * Table Page
7296
+ */
7297
+
7298
+ function _catch$1(body, recover) {
7299
+ try {
7300
+ var result = body();
7301
+ } catch (e) {
7302
+ return recover(e);
7303
+ }
7304
+
7305
+ if (result && result.then) {
7306
+ return result.then(void 0, recover);
7307
+ }
7308
+
7309
+ return result;
7310
+ }
7311
+ /**
7312
+ * TableRowEditor
7313
+ */
7314
+
7315
+
7316
+ var TablePage2 = function TablePage2(props) {
7317
+ var playScenario = function playScenario() {
7318
+ try {
7319
+ var promises1 = pageContext.all.map(function (item) {
7320
+ try {
7321
+ return Promise.resolve(pageContext.remove(item.id));
7322
+ } catch (e) {
7323
+ return Promise.reject(e);
7324
+ }
7325
+ });
7326
+ Promise.all(promises1).then(function () {
7327
+ try {
7328
+ var promises2 = scenario.map(function (item) {
7329
+ try {
7330
+ return Promise.resolve(pageContext.create(item));
7331
+ } catch (e) {
7332
+ return Promise.reject(e);
7333
+ }
7334
+ });
7335
+ Promise.all(promises2).then(function () {
7336
+ try {
7337
+ return Promise.resolve(pageContext.load()).then(function () {
7338
+ setPageContext(Object.assign({}, pageContext));
7339
+ });
7340
+ } catch (e) {
7341
+ return Promise.reject(e);
7342
+ }
7343
+ });
7344
+ return Promise.resolve();
7345
+ } catch (e) {
7346
+ return Promise.reject(e);
7347
+ }
7348
+ });
7349
+ return Promise.resolve();
7350
+ } catch (e) {
7351
+ return Promise.reject(e);
7352
+ }
7353
+ };
7354
+
7355
+ var save = function save() {
7356
+ try {
7357
+ return Promise.resolve(pageContext.update(form)).then(function () {
7358
+ setPageContext(Object.assign({}, pageContext));
7359
+ });
7360
+ } catch (e) {
7361
+ return Promise.reject(e);
7362
+ }
7363
+ };
7364
+
7365
+ var reload = function reload() {
7366
+ try {
7367
+ return Promise.resolve(pageContext.load()).then(function () {
7368
+ setPageContext(Object.assign({}, pageContext));
7369
+ });
7370
+ } catch (e) {
7371
+ return Promise.reject(e);
7372
+ }
7373
+ };
7374
+
7375
+ var site = React.useContext(SiteContext);
7376
+ var _props$id = props.id,
7377
+ id = _props$id === void 0 ? "table" : _props$id,
7378
+ icon = props.icon,
7379
+ title = props.title,
7380
+ name = props.name,
7381
+ schema = props.schema,
7382
+ url = props.url,
7383
+ field = props.field,
7384
+ host = props.host,
7385
+ _props$params = props.params,
7386
+ params = _props$params === void 0 ? "" : _props$params,
7387
+ _props$autosave = props.autosave,
7388
+ autosave = _props$autosave === void 0 ? true : _props$autosave,
7389
+ _props$delay = props.delay,
7390
+ delay = _props$delay === void 0 ? 1000 : _props$delay,
7391
+ editable = props.editable,
7392
+ _props$actions = props.actions,
7393
+ actions = _props$actions === void 0 ? [] : _props$actions,
7394
+ _props$dev = props.dev,
7395
+ dev = _props$dev === void 0 ? false : _props$dev,
7396
+ tableActions = props.tableActions,
7397
+ _props$selectionActio = props.selectionActions,
7398
+ selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
7399
+ _props$canFilter = props.canFilter,
7400
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
7401
+ _props$canAdd = props.canAdd,
7402
+ canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
7403
+ _props$canDelete = props.canDelete,
7404
+ canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
7405
+ _props$canEdit = props.canEdit,
7406
+ canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
7407
+ _props$canQuery = props.canQuery,
7408
+ canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
7409
+ urlQuery = props.urlQuery,
7410
+ user = props.user,
7411
+ groupBy = props.groupBy,
7412
+ validator = props.validator,
7413
+ scenario = props.scenario,
7414
+ formFilter = props.formFilter,
7415
+ tableFilter = props.tableFilter,
7416
+ _props$editorFilter = props.editorFilter,
7417
+ editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
7418
+ tableClassName = props.tableClassName,
7419
+ children = props.children;
7420
+
7421
+ var _useContext = React.useContext(PageContext),
7422
+ pageContext = _useContext[0],
7423
+ setPageContext = _useContext[1];
7424
+
7425
+ var context = TableContext$1(url, field, host, urlQuery, params);
7426
+ var selected = pageContext.selected;
7427
+ var timer = React.useRef(null);
7428
+
7429
+ var _useState = React.useState(selected),
7430
+ form = _useState[0],
7431
+ setForm = _useState[1];
7432
+
7433
+ React.useEffect(function () {
7434
+ try {
7435
+ return Promise.resolve(context.load()).then(function () {
7436
+ function _temp2() {
7437
+ setPageContext(context);
7438
+ }
7439
+
7440
+ var _temp = function () {
7441
+ if (canQuery) return Promise.resolve(context.loadQueries(user)).then(function () {});
7442
+ }();
7443
+
7444
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
7445
+ });
7446
+ } catch (e) {
7447
+ return Promise.reject(e);
7448
+ }
7449
+ }, []);
7450
+ React.useEffect(function () {
7451
+ setForm(selected);
7452
+ }, [selected]);
7453
+ React.useEffect(function () {
7454
+ if (autosave) {
7455
+ clearTimeout(timer.current);
7456
+ timer.current = setTimeout(function () {
7457
+ if (canSave()) save();
7458
+ }, delay);
7459
+ }
7460
+ }, [form]);
7461
+
7462
+ function add() {
7463
+ var onOK = function onOK(form) {
7464
+ try {
7465
+ return Promise.resolve(pageContext.create(form)).then(function () {
7466
+ setPageContext(Object.assign({}, pageContext));
7467
+ });
7468
+ } catch (e) {
7469
+ return Promise.reject(e);
7470
+ }
7471
+ };
7472
+
7473
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7474
+ label: "Crear " + name,
7475
+ type: schema,
7476
+ onOK: onOK,
7477
+ validator: validator,
7478
+ filter: formFilter
7479
+ }));
7480
+ }
7481
+
7482
+ function saveQuery(filters) {
7483
+ var onOK = function onOK(form) {
7484
+ try {
7485
+ form.filters = filters;
7486
+ form.layout = {};
7487
+ form.user = user;
7488
+ form.url = url;
7489
+ return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
7490
+ setPageContext(Object.assign({}, pageContext));
7491
+ });
7492
+ } catch (e) {
7493
+ return Promise.reject(e);
7494
+ }
7495
+ };
7496
+
7497
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7498
+ label: "Nueva query",
7499
+ type: QUERY,
7500
+ onOK: onOK
7501
+ }));
7502
+ }
7503
+
7504
+ function change(next) {
7505
+ setForm(next);
7506
+ }
7507
+
7508
+ function canSave() {
7509
+ var can = !equal__default["default"](form, selected);
7510
+ return can;
7511
+ }
7512
+
7513
+ function closeAside() {
7514
+ pageContext.select(null);
7515
+ setPageContext(Object.assign({}, pageContext));
7516
+ }
7517
+
7518
+ function renderAside() {
7519
+ var rowSelected = selected && form;
7520
+ var rowChecked = pageContext.checked && pageContext.checked.size > 0;
7521
+
7522
+ if (rowSelected || rowChecked) {
7523
+ return /*#__PURE__*/React__default["default"].createElement("aside", {
7524
+ className: "table-page"
7525
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
7526
+ content: new Content(schema, form),
7527
+ filter: editorFilter,
7528
+ onChange: change,
7529
+ onClose: closeAside,
7530
+ editable: canEdit
7531
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
7532
+ schema: schema,
7533
+ actions: selectionActions
7534
+ }) : null);
7535
+ }
7536
+
7537
+ return null;
7538
+ }
7539
+
7540
+ function renderActions() {
7541
+ return actions.map(function (element) {
7542
+ var action = function action() {
7543
+ return element.props.action(pageContext);
7544
+ };
7545
+
7546
+ var clone = React__default["default"].cloneElement(element, {
7547
+ action: action
7548
+ });
7549
+ return clone;
7550
+ });
7551
+ }
7552
+
7553
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7554
+ className: "table-page",
7555
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7556
+ }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7557
+ icon: "add",
7558
+ label: "A\xF1adir",
7559
+ action: add,
7560
+ raised: true
7561
+ }) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
7562
+ icon: "refresh",
7563
+ label: "Reload",
7564
+ action: reload
7565
+ }), dev ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
7566
+ align: "alignRight"
7567
+ }, /*#__PURE__*/React__default["default"].createElement(MenuItem, {
7568
+ label: "Cargar Escenario 1",
7569
+ onSelect: playScenario
7570
+ })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
7571
+ className: "table-page"
7572
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
7573
+ schema: schema,
7574
+ url: url,
7575
+ user: user
7576
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
7577
+ schema: schema,
7578
+ onSave: canQuery ? saveQuery : null
7579
+ }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
7580
+ key: id,
7581
+ className: "table-page"
7582
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
7583
+ icon: icon,
7584
+ title: name,
7585
+ schema: schema,
7586
+ delay: delay,
7587
+ editable: editable,
7588
+ groupBy: groupBy,
7589
+ filter: tableFilter,
7590
+ actions: tableActions,
7591
+ canDelete: canDelete,
7592
+ className: tableClassName
7593
+ }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
7594
+ };
7595
+
7596
+ var TableRowEditor$1 = function TableRowEditor(props) {
7597
+ var name = props.name,
7598
+ content = props.content,
7599
+ filter = props.filter,
7600
+ editable = props.editable,
7601
+ onChange = props.onChange,
7602
+ onClose = props.onClose;
7603
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7604
+ className: "table-row-editor"
7605
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7606
+ icon: "local_offer",
7607
+ title: name || "Propiedades"
7608
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7609
+ icon: "close",
7610
+ clickable: true,
7611
+ action: onClose
7612
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7613
+ content: content,
7614
+ onChange: onChange,
7615
+ filter: filter
7616
+ }) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
7617
+ content: content
7618
+ })));
7619
+ };
7620
+ /**
7621
+ * Table Selector
7622
+ */
7623
+
7624
+
7625
+ var TableSelector$1 = function TableSelector(props) {
7626
+ var schema = props.schema,
7627
+ _props$actions2 = props.actions,
7628
+ actions = _props$actions2 === void 0 ? [] : _props$actions2;
7629
+
7630
+ var _useContext2 = React.useContext(PageContext),
7631
+ pageContext = _useContext2[0],
7632
+ setPageContext = _useContext2[1];
7633
+
7634
+ var all = pageContext.all,
7635
+ checked = pageContext.checked;
7636
+ var count = checked.size + "/" + all.length;
7637
+ var columns = Object.keys(schema).filter(function (key) {
7638
+ return schema[key].selectorColumn === true;
7639
+ }).map(function (key) {
7640
+ var field = schema[key];
7641
+ return {
7642
+ id: field.id,
7643
+ label: field.label
7644
+ };
7645
+ });
7646
+ var rows = all.filter(function (item) {
7647
+ return checked.has(item.id);
7648
+ });
7649
+ var table = {
7650
+ columns: columns,
7651
+ rows: rows || []
7652
+ };
7653
+ var buttons = actions.map(function (_ref) {
7654
+ var label = _ref.label,
7655
+ _action = _ref.action,
7656
+ validate = _ref.validate;
7657
+ return /*#__PURE__*/React__default["default"].createElement(Button, {
7658
+ label: label,
7659
+ raised: true,
7660
+ action: function action() {
7661
+ return _action(checked, pageContext, function () {
7662
+ try {
7663
+ return Promise.resolve(pageContext.load()).then(function () {
7664
+ setPageContext(Object.assign({}, pageContext));
7665
+ });
7666
+ } catch (e) {
7667
+ return Promise.reject(e);
7668
+ }
7669
+ }, rows);
7670
+ },
7671
+ disabled: !validate(checked, rows)
7672
+ });
7673
+ });
7674
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7675
+ className: "table-selector"
7676
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7677
+ icon: "checklist_rtl",
7678
+ title: "Selecci\xF3n"
7679
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
7680
+ className: "size"
7681
+ }, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
7682
+ };
7683
+ /**
7684
+ * Table Queries
7685
+ */
7686
+
7687
+
7688
+ var TableQueries$1 = function TableQueries(props) {
7689
+ var remove = function remove(id) {
7690
+ try {
7691
+ return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
7692
+ setPageContext(Object.assign({}, pageContext));
7693
+ });
7694
+ } catch (e) {
7695
+ return Promise.reject(e);
7696
+ }
7697
+ };
7698
+
7699
+ var _useContext3 = React.useContext(PageContext),
7700
+ pageContext = _useContext3[0],
7701
+ setPageContext = _useContext3[1];
7702
+
7703
+ var url = props.url,
7704
+ user = props.user;
7705
+ var _pageContext$queries = pageContext.queries,
7706
+ queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
7707
+
7708
+ var _useState2 = React.useState(),
7709
+ selected = _useState2[0],
7710
+ setSelected = _useState2[1];
7711
+
7712
+ function select(query) {
7713
+ setSelected(query.id);
7714
+ pageContext.changeFilters(query.filters);
7715
+ setPageContext(Object.assign({}, pageContext));
7716
+ }
7717
+
7718
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7719
+ className: "table-queries",
7720
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
7721
+ }), /*#__PURE__*/React__default["default"].createElement("main", {
7722
+ className: "table-queries"
7723
+ }, queries ? queries.filter(function (query) {
7724
+ return query.url === url;
7725
+ }).map(function (query) {
7726
+ var style = selected === query.id ? "selected" : "";
7727
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7728
+ className: "table-queries-item " + style,
7729
+ onClick: function onClick() {
7730
+ return select(query);
7731
+ }
7732
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7733
+ icon: "star",
7734
+ size: "small"
7735
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
7736
+ icon: "close",
7737
+ clickable: true,
7738
+ size: "small",
7739
+ action: function action() {
7740
+ return remove(query.id);
7741
+ }
7742
+ }));
7743
+ }) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
7744
+ };
7745
+ /**
7746
+ * Table Filters
7747
+ */
7748
+
7749
+
7750
+ var TableFilters$1 = function TableFilters(props) {
7751
+ var reload = function reload() {
7752
+ try {
7753
+ return Promise.resolve(pageContext.load(form)).then(function () {
7754
+ setPageContext(Object.assign({}, pageContext));
7755
+ });
7756
+ } catch (e) {
7757
+ return Promise.reject(e);
7758
+ }
7759
+ };
7760
+
7761
+ var change = function change(next) {
7762
+ try {
7763
+ setForm(next);
7764
+ return Promise.resolve();
7765
+ } catch (e) {
7766
+ return Promise.reject(e);
7767
+ }
7768
+ };
7769
+
7770
+ var _useContext4 = React.useContext(PageContext),
7771
+ pageContext = _useContext4[0],
7772
+ setPageContext = _useContext4[1];
7773
+
7774
+ var filters = pageContext.filters;
7775
+ var schema = props.schema,
7776
+ onSave = props.onSave;
7777
+
7778
+ var _useState3 = React.useState({}),
7779
+ form = _useState3[0],
7780
+ setForm = _useState3[1];
7781
+
7782
+ var filterSchema = React.useMemo(function () {
7783
+ var filterSchema = Object.assign({}, schema);
7784
+
7785
+ for (var key in filterSchema) {
7786
+ if (filterSchema[key].filter === false) {
7787
+ delete filterSchema[key];
7788
+ } else {
7789
+ if (filterSchema[key].type === TYPES.ENTITY) {
7790
+ var fs = filterSchema[key].item;
7791
+
7792
+ for (var key in fs) {
7793
+ if (fs[key].filter === false) delete fs[key];
7794
+ }
7795
+ }
7796
+ }
7797
+ } //Object.values(filterSchema).forEach(field => field.section = null)
7798
+
7799
+
7800
+ delete filterSchema.flows;
7801
+ return filterSchema;
7802
+ }, [schema]);
7803
+ React.useEffect(function () {
7804
+ if (filters) setForm(filters);
7805
+ }, [filters]);
7806
+ React.useEffect(function () {
7807
+ reload();
7808
+ }, [form]);
7809
+
7810
+ function clear() {
7811
+ change({});
7812
+ }
7813
+
7814
+ function save() {
7815
+ if (onSave) {
7816
+ onSave(form);
7817
+ }
7818
+ }
7819
+
7820
+ var content = new Content(filterSchema, form);
7821
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7822
+ className: "table-filters",
7823
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
7824
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7825
+ icon: "filter_list_off",
7826
+ size: "small",
7827
+ clickable: true,
7828
+ action: clear
7829
+ }), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7830
+ icon: "save",
7831
+ size: "small",
7832
+ clickable: true,
7833
+ action: save
7834
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
7835
+ className: "table-filters"
7836
+ }, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7837
+ content: content,
7838
+ onChange: change
7839
+ })));
7840
+ };
7841
+ /**
7842
+ * Table Editor
7843
+ */
7844
+
7845
+
7846
+ var TableEditor$1 = function TableEditor(props) {
7847
+ var checkOne = function checkOne(id, field, value) {
7848
+ check([id], value);
7849
+ return Promise.resolve();
7850
+ };
7851
+
7852
+ var check = function check(ids, value) {
7853
+ try {
7854
+ pageContext.check(ids, value);
7855
+ setPageContext(Object.assign({}, pageContext));
7856
+ return Promise.resolve();
7857
+ } catch (e) {
7858
+ return Promise.reject(e);
7859
+ }
7860
+ };
7861
+
7862
+ var select = function select(row, event) {
7863
+ try {
7864
+ clear();
7865
+ return Promise.resolve(pageContext.select(row.id)).then(function () {
7866
+ setPageContext(Object.assign({}, pageContext));
7867
+ });
7868
+ } catch (e) {
7869
+ return Promise.reject(e);
7870
+ }
7871
+ };
7872
+
7873
+ var remove = function remove(id) {
7874
+ try {
7875
+ return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
7876
+ var _temp3 = function () {
7877
+ if (confirm) {
7878
+ return Promise.resolve(pageContext.remove(id)).then(function () {
7879
+ pageContext.clear();
7880
+ setPageContext(Object.assign({}, pageContext));
7881
+ });
7882
+ }
7883
+ }();
7884
+
7885
+ if (_temp3 && _temp3.then) return _temp3.then(function () {});
7886
+ });
7887
+ } catch (e) {
7888
+ return Promise.reject(e);
7889
+ }
7890
+ };
7891
+
7892
+ var site = React.useContext(SiteContext);
7893
+
7894
+ var _useContext5 = React.useContext(PageContext),
7895
+ pageContext = _useContext5[0],
7896
+ setPageContext = _useContext5[1];
7897
+
7898
+ var _pageContext$all = pageContext.all,
7899
+ all = _pageContext$all === void 0 ? [] : _pageContext$all;
7900
+ var icon = props.icon,
7901
+ title = props.title,
7902
+ schema = props.schema,
7903
+ editable = props.editable,
7904
+ canDelete = props.canDelete,
7905
+ filter = props.filter,
7906
+ actions = props.actions,
7907
+ className = props.className;
7908
+
7909
+ var _useState4 = React.useState(props.groupBy),
7910
+ groupBy = _useState4[0],
7911
+ setGroupBy = _useState4[1];
7912
+
7913
+ function changeGroup(id, value) {
7914
+ setGroupBy(value);
7915
+ }
7916
+
7917
+ function change(rowID, cellID, value) {
7918
+ var _Object$assign;
7919
+
7920
+ var row = all.find(function (r) {
7921
+ return r.id === rowID;
7922
+ });
7923
+ var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
7924
+ delete next.actions;
7925
+ pageContext.update(next);
7926
+ setPageContext(Object.assign({}, pageContext));
7927
+ }
7928
+
7929
+ function clear() {
7930
+ pageContext.clear();
7931
+ setPageContext(Object.assign({}, pageContext));
7932
+ }
7933
+
7934
+ function run(action, item) {
7935
+ action.action(item.id, pageContext, function () {
7936
+ try {
7937
+ return Promise.resolve(pageContext.load()).then(function () {
7938
+ setPageContext(Object.assign({}, pageContext));
7939
+ });
7940
+ } catch (e) {
7941
+ return Promise.reject(e);
7942
+ }
7943
+ });
7944
+ }
7945
+
7946
+ function buildGroupOptions(schema) {
7947
+ return Object.values(schema).filter(function (field) {
7948
+ return field.grouper === true;
7949
+ }).map(function (field) {
7950
+ return {
7951
+ label: field.label,
7952
+ value: field.id
7953
+ };
7954
+ });
7955
+ }
7956
+
7957
+ function renderGroupLabel(groupName) {
7958
+ var grouper = schema[groupBy];
7959
+ if (!groupName || !grouper) return "";
7960
+
7961
+ if (grouper.options) {
7962
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
7963
+ var option = options.find(function (option) {
7964
+ return option.value === groupName;
7965
+ });
7966
+ return option ? option.label : groupName;
7967
+ } else {
7968
+ return groupName;
7969
+ }
7970
+ }
7971
+
7972
+ var table = React.useMemo(function () {
7973
+ return {
7974
+ columns: Object.values(schema).filter(function (field) {
7975
+ return field.column === true;
7976
+ }).map(function (field) {
7977
+ var options = field.options;
7978
+
7979
+ if (options && typeof options == 'function') {
7980
+ options = options();
7981
+ }
7982
+
7983
+ return {
7984
+ id: field.id,
7985
+ label: field.label,
7986
+ type: field.type,
7987
+ format: field.format,
7988
+ item: field.item ? field.item : [],
7989
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
7990
+
7991
+ /* checked has it´s own handler */
7992
+ options: options
7993
+ };
7994
+ }),
7995
+ rows: []
7996
+ };
7997
+ }, [schema]);
7998
+ var items = filter ? filter(all) : all;
7999
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
8000
+ className: "empty-message"
8001
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
8002
+ icon: "search_off"
8003
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
8004
+ var groups = items.reduce(function (groups, item) {
8005
+ var groupName = item[groupBy];
8006
+ if (!groups[groupName]) groups[groupName] = [];
8007
+ groups[groupName].push(item);
8008
+ return groups;
8009
+ }, {});
8010
+ var sections = Object.keys(groups).map(function (groupName) {
8011
+ var rows = groups[groupName].map(function (item) {
8012
+ item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
8013
+ item.actions = actions ? actions.map(function (_action2) {
8014
+ return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
8015
+ icon: _action2.icon,
8016
+ clickable: true,
8017
+ size: "small",
8018
+ action: function action() {
8019
+ return run(_action2, item);
8020
+ }
8021
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
8022
+ icon: _action2.icon,
8023
+ clickable: true,
8024
+ size: "small",
8025
+ action: function action() {
8026
+ return run(_action2, item);
8027
+ }
8028
+ });
8029
+ }) : [];
8030
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
8031
+ icon: "delete",
8032
+ size: "small",
8033
+ clickable: true,
8034
+ action: function action() {
8035
+ return remove(item.id);
8036
+ }
8037
+ }));
8038
+ return item;
8039
+ });
8040
+ table.rows = rows;
8041
+ return {
8042
+ id: groupName,
8043
+ checked: false,
8044
+ title: renderGroupLabel(groupName),
8045
+ info: groups[groupName].length,
8046
+ open: true,
8047
+ children: /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
8048
+ onRowSelection: select,
8049
+ editable: editable,
8050
+ onCheckAll: check,
8051
+ className: className
8052
+ }))
8053
+ };
8054
+ });
8055
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8056
+ icon: icon,
8057
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
8058
+ }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
8059
+ id: "groupBy",
8060
+ label: "Agrupar Por",
8061
+ value: groupBy,
8062
+ options: buildGroupOptions(schema),
8063
+ onChange: changeGroup
8064
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
8065
+ className: "table-editor"
8066
+ }, /*#__PURE__*/React__default["default"].createElement(Accordion, {
8067
+ sections: sections
8068
+ })));
8069
+ };
8070
+ /**
8071
+ * Table Context
8072
+ */
8073
+
6959
8074
  var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6960
8075
  var API = TableAPI$1(url, host, params);
6961
8076
  return {
@@ -8300,6 +9415,7 @@ var isFunction = function isFunction(value) {
8300
9415
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8301
9416
  };
8302
9417
 
9418
+ exports.Accordion = Accordion;
8303
9419
  exports.Avatar = Avatar;
8304
9420
  exports.Button = Button;
8305
9421
  exports.Calendar = Calendar;
@@ -8359,8 +9475,9 @@ exports.Tab = Tab;
8359
9475
  exports.TabbedContentEditor = TabbedContentEditor;
8360
9476
  exports.TabbedTablePage = TabbedTablePage;
8361
9477
  exports.TabbedView = TabbedView;
8362
- exports.TableEditor = TableEditor$1;
9478
+ exports.TableEditor = TableEditor$2;
8363
9479
  exports.TablePage = TablePage;
9480
+ exports.TablePage2 = TablePage2;
8364
9481
  exports.Tabs = Tabs;
8365
9482
  exports.Text = Text;
8366
9483
  exports.TextArea = TextArea;