ywana-core8 0.0.569 → 0.0.572

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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
@@ -1382,8 +1475,8 @@ var DropDown = function DropDown(props) {
1382
1475
  if (!readOnly) setOpen(!open);
1383
1476
  }
1384
1477
 
1385
- function select(event) {
1386
- var next = event.target.getAttribute("value");
1478
+ function select(value) {
1479
+ var next = value;
1387
1480
  var option = options.find(function (option) {
1388
1481
  return option.value === next;
1389
1482
  });
@@ -1408,12 +1501,13 @@ var DropDown = function DropDown(props) {
1408
1501
  var lis = items.map(function (option) {
1409
1502
  return /*#__PURE__*/React__default["default"].createElement("li", {
1410
1503
  key: option.value,
1411
- value: option.value
1504
+ value: option.value,
1505
+ onClick: function onClick() {
1506
+ return select(option.value);
1507
+ }
1412
1508
  }, /*#__PURE__*/React__default["default"].createElement(Text, null, option.label));
1413
1509
  });
1414
- return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", {
1415
- onMouseDown: select
1416
- }, lis));
1510
+ return /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("ul", null, lis));
1417
1511
  } else {
1418
1512
  return null;
1419
1513
  }
@@ -3626,7 +3720,9 @@ var SiteMenu = function SiteMenu(_ref6) {
3626
3720
  return _goto(id);
3627
3721
  }
3628
3722
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3629
- text: title
3723
+ text: title,
3724
+ top: ".5rem",
3725
+ left: "2rem"
3630
3726
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3631
3727
  key: id,
3632
3728
  icon: icon,
@@ -4197,13 +4293,13 @@ var ContentEditor = function ContentEditor(_ref) {
4197
4293
  * Tabbed Content Editor
4198
4294
  */
4199
4295
 
4200
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4201
- var content = _ref2.content,
4202
- filter = _ref2.filter,
4203
- _ref2$grouped = _ref2.grouped,
4204
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4205
- onChange = _ref2.onChange,
4206
- 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;
4207
4303
 
4208
4304
  var _useState = React.useState(0),
4209
4305
  tab = _useState[0],
@@ -4288,9 +4384,9 @@ var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4288
4384
  * TreededContentEditor
4289
4385
  */
4290
4386
 
4291
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4292
- var content = _ref3.content,
4293
- onChange = _ref3.onChange;
4387
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4388
+ var content = _ref4.content,
4389
+ onChange = _ref4.onChange;
4294
4390
  var value = content.value();
4295
4391
  var nodes = Object.values(content.type).filter(function (field) {
4296
4392
  return field.type === TYPES.ARRAY;
@@ -4355,13 +4451,13 @@ var TreededContentEditor = function TreededContentEditor(_ref3) {
4355
4451
  * FieldEditor
4356
4452
  */
4357
4453
 
4358
- var FieldEditor = function FieldEditor(_ref4) {
4359
- var field = _ref4.field,
4360
- onChange = _ref4.onChange,
4361
- content = _ref4.content,
4362
- _ref4$outlined = _ref4.outlined,
4363
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4364
- 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;
4365
4461
  var id = field.id,
4366
4462
  type = field.type,
4367
4463
  item = field.item,
@@ -4448,11 +4544,11 @@ var FieldEditor = function FieldEditor(_ref4) {
4448
4544
  * Entity Editor
4449
4545
  */
4450
4546
 
4451
- var EntityEditor = function EntityEditor(_ref5) {
4452
- var field = _ref5.field,
4453
- _ref5$value = _ref5.value,
4454
- value = _ref5$value === void 0 ? {} : _ref5$value,
4455
- 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;
4456
4552
  var id = field.id,
4457
4553
  item = field.item,
4458
4554
  label = field.label;
@@ -4512,13 +4608,13 @@ var EntityEditor = function EntityEditor(_ref5) {
4512
4608
  */
4513
4609
 
4514
4610
 
4515
- var StringEditor = function StringEditor(_ref6) {
4516
- var field = _ref6.field,
4517
- _ref6$value = _ref6.value,
4518
- value = _ref6$value === void 0 ? '' : _ref6$value,
4519
- onChange = _ref6.onChange,
4520
- content = _ref6.content,
4521
- 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;
4522
4618
  var id = field.id,
4523
4619
  format = field.format,
4524
4620
  label = field.label,
@@ -4634,12 +4730,12 @@ var StringEditor = function StringEditor(_ref6) {
4634
4730
  * Number Editor
4635
4731
  */
4636
4732
 
4637
- var NumberEditor = function NumberEditor(_ref7) {
4638
- var field = _ref7.field,
4639
- value = _ref7.value,
4640
- onChange = _ref7.onChange,
4641
- _ref7$outlined = _ref7.outlined,
4642
- 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;
4643
4739
  var id = field.id,
4644
4740
  label = field.label,
4645
4741
  _field$editable2 = field.editable,
@@ -4672,11 +4768,11 @@ var NumberEditor = function NumberEditor(_ref7) {
4672
4768
  */
4673
4769
 
4674
4770
 
4675
- var ListEditor = function ListEditor(_ref8) {
4676
- var field = _ref8.field,
4677
- _ref8$value = _ref8.value,
4678
- value = _ref8$value === void 0 ? [] : _ref8$value,
4679
- 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;
4680
4776
  var label = field.label;
4681
4777
 
4682
4778
  function change(id, value) {
@@ -4696,12 +4792,12 @@ var ListEditor = function ListEditor(_ref8) {
4696
4792
  * Multi Selection Editor
4697
4793
  */
4698
4794
 
4699
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4700
- var field = _ref9.field,
4701
- _ref9$value = _ref9.value,
4702
- value = _ref9$value === void 0 ? [] : _ref9$value,
4703
- content = _ref9.content,
4704
- 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;
4705
4801
  var id = field.id,
4706
4802
  label = field.label,
4707
4803
  options = field.options;
@@ -4740,12 +4836,12 @@ var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4740
4836
  * Collection Editor
4741
4837
  */
4742
4838
 
4743
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4744
- var field = _ref10.field,
4745
- _ref10$value = _ref10.value,
4746
- value = _ref10$value === void 0 ? [] : _ref10$value,
4747
- onChange = _ref10.onChange,
4748
- 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;
4749
4845
  var id = field.id,
4750
4846
  item = field.item,
4751
4847
  label = field.label,
@@ -4815,7 +4911,7 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4815
4911
  onChange: onChange,
4816
4912
  onReload: reload
4817
4913
  }) // : <DataTable {...table} editable={editable} />
4818
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4914
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4819
4915
  icon: "info",
4820
4916
  title: label,
4821
4917
  data: value,
@@ -4835,9 +4931,9 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4835
4931
  * Collection Adder
4836
4932
  */
4837
4933
 
4838
- var CollectionAdder = function CollectionAdder(_ref11) {
4839
- var item = _ref11.item,
4840
- onAdd = _ref11.onAdd;
4934
+ var CollectionAdder = function CollectionAdder(_ref12) {
4935
+ var item = _ref12.item,
4936
+ onAdd = _ref12.onAdd;
4841
4937
 
4842
4938
  var _useState3 = React.useState(false),
4843
4939
  edit = _useState3[0],
@@ -4906,7 +5002,7 @@ var CollectionAdder = function CollectionAdder(_ref11) {
4906
5002
  */
4907
5003
 
4908
5004
 
4909
- var TableEditor$2 = function TableEditor(props) {
5005
+ var TableEditor$3 = function TableEditor(props) {
4910
5006
  var select = function select(row) {
4911
5007
  try {
4912
5008
  if (onSelect) onSelect(row.id);
@@ -5250,7 +5346,7 @@ var EditContentDialog = function EditContentDialog(_ref) {
5250
5346
  * Collection Page
5251
5347
  */
5252
5348
 
5253
- function _catch$2(body, recover) {
5349
+ function _catch$3(body, recover) {
5254
5350
  try {
5255
5351
  var result = body();
5256
5352
  } catch (e) {
@@ -5827,7 +5923,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5827
5923
  try {
5828
5924
  var _this2 = this;
5829
5925
 
5830
- var _temp2 = _catch$2(function () {
5926
+ var _temp2 = _catch$3(function () {
5831
5927
  return Promise.resolve(API.all(null, page)).then(function (data) {
5832
5928
  _this2.all = field ? data[field] : data;
5833
5929
  });
@@ -5876,7 +5972,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5876
5972
  },
5877
5973
  fetch: function fetch(id) {
5878
5974
  try {
5879
- return Promise.resolve(_catch$2(function () {
5975
+ return Promise.resolve(_catch$3(function () {
5880
5976
  return Promise.resolve(API.find(id));
5881
5977
  }, function (error) {
5882
5978
  console.log(error);
@@ -5892,7 +5988,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5892
5988
  try {
5893
5989
  var _this8 = this;
5894
5990
 
5895
- var _temp6 = _catch$2(function () {
5991
+ var _temp6 = _catch$3(function () {
5896
5992
  return Promise.resolve(API.create(form)).then(function () {
5897
5993
  return Promise.resolve(_this8.load()).then(function () {});
5898
5994
  });
@@ -5909,7 +6005,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5909
6005
  try {
5910
6006
  var _this10 = this;
5911
6007
 
5912
- var _temp8 = _catch$2(function () {
6008
+ var _temp8 = _catch$3(function () {
5913
6009
  return Promise.resolve(API.update(form)).then(function () {
5914
6010
  return Promise.resolve(_this10.load()).then(function () {});
5915
6011
  });
@@ -5926,7 +6022,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5926
6022
  try {
5927
6023
  var _this12 = this;
5928
6024
 
5929
- var _temp10 = _catch$2(function () {
6025
+ var _temp10 = _catch$3(function () {
5930
6026
  return Promise.resolve(API.patch(id, form)).then(function () {
5931
6027
  return Promise.resolve(_this12.load()).then(function () {});
5932
6028
  });
@@ -5943,7 +6039,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5943
6039
  try {
5944
6040
  var _this14 = this;
5945
6041
 
5946
- var _temp12 = _catch$2(function () {
6042
+ var _temp12 = _catch$3(function () {
5947
6043
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5948
6044
  return Promise.resolve(_this14.load()).then(function () {});
5949
6045
  });
@@ -5960,7 +6056,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5960
6056
  try {
5961
6057
  var _this16 = this;
5962
6058
 
5963
- var _temp14 = _catch$2(function () {
6059
+ var _temp14 = _catch$3(function () {
5964
6060
  return Promise.resolve(API.remove(id)).then(function () {
5965
6061
  return Promise.resolve(_this16.load()).then(function () {});
5966
6062
  });
@@ -6173,7 +6269,7 @@ var QUERY = {
6173
6269
  * Table Page
6174
6270
  */
6175
6271
 
6176
- function _catch$1(body, recover) {
6272
+ function _catch$2(body, recover) {
6177
6273
  try {
6178
6274
  var result = body();
6179
6275
  } catch (e) {
@@ -6300,7 +6396,7 @@ var TablePage = function TablePage(props) {
6300
6396
  pageContext = _useContext[0],
6301
6397
  setPageContext = _useContext[1];
6302
6398
 
6303
- var context = TableContext$1(url, field, host, urlQuery, params);
6399
+ var context = TableContext$2(url, field, host, urlQuery, params);
6304
6400
  var selected = pageContext.selected;
6305
6401
  var timer = React.useRef(null);
6306
6402
 
@@ -6400,13 +6496,13 @@ var TablePage = function TablePage(props) {
6400
6496
  if (rowSelected || rowChecked) {
6401
6497
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6402
6498
  className: "table-page"
6403
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6499
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6404
6500
  content: new Content(schema, form),
6405
6501
  filter: editorFilter,
6406
6502
  onChange: change,
6407
6503
  onClose: closeAside,
6408
6504
  editable: canEdit
6409
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6505
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6410
6506
  schema: schema,
6411
6507
  actions: selectionActions
6412
6508
  }) : null);
@@ -6447,17 +6543,17 @@ var TablePage = function TablePage(props) {
6447
6543
  onSelect: playScenario
6448
6544
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6449
6545
  className: "table-page"
6450
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6546
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6451
6547
  schema: schema,
6452
6548
  url: url,
6453
6549
  user: user
6454
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6550
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6455
6551
  schema: schema,
6456
6552
  onSave: canQuery ? saveQuery : null
6457
6553
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6458
6554
  key: id,
6459
6555
  className: "table-page"
6460
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6556
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6461
6557
  icon: icon,
6462
6558
  title: name,
6463
6559
  schema: schema,
@@ -6471,7 +6567,7 @@ var TablePage = function TablePage(props) {
6471
6567
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6472
6568
  };
6473
6569
 
6474
- var TableRowEditor$1 = function TableRowEditor(props) {
6570
+ var TableRowEditor$2 = function TableRowEditor(props) {
6475
6571
  var name = props.name,
6476
6572
  content = props.content,
6477
6573
  filter = props.filter,
@@ -6500,7 +6596,7 @@ var TableRowEditor$1 = function TableRowEditor(props) {
6500
6596
  */
6501
6597
 
6502
6598
 
6503
- var TableSelector$1 = function TableSelector(props) {
6599
+ var TableSelector$2 = function TableSelector(props) {
6504
6600
  var schema = props.schema,
6505
6601
  _props$actions2 = props.actions,
6506
6602
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6563,7 +6659,7 @@ var TableSelector$1 = function TableSelector(props) {
6563
6659
  */
6564
6660
 
6565
6661
 
6566
- var TableQueries$1 = function TableQueries(props) {
6662
+ var TableQueries$2 = function TableQueries(props) {
6567
6663
  var remove = function remove(id) {
6568
6664
  try {
6569
6665
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6625,7 +6721,7 @@ var TableQueries$1 = function TableQueries(props) {
6625
6721
  */
6626
6722
 
6627
6723
 
6628
- var TableFilters$1 = function TableFilters(props) {
6724
+ var TableFilters$2 = function TableFilters(props) {
6629
6725
  var reload = function reload() {
6630
6726
  try {
6631
6727
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6721,7 +6817,7 @@ var TableFilters$1 = function TableFilters(props) {
6721
6817
  */
6722
6818
 
6723
6819
 
6724
- var TableEditor$1 = function TableEditor(props) {
6820
+ var TableEditor$2 = function TableEditor(props) {
6725
6821
  var checkOne = function checkOne(id, field, value) {
6726
6822
  check([id], value);
6727
6823
  return Promise.resolve();
@@ -6953,6 +7049,1028 @@ var TableEditor$1 = function TableEditor(props) {
6953
7049
  * Table Context
6954
7050
  */
6955
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
+
6956
8074
  var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6957
8075
  var API = TableAPI$1(url, host, params);
6958
8076
  return {
@@ -8297,6 +9415,7 @@ var isFunction = function isFunction(value) {
8297
9415
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8298
9416
  };
8299
9417
 
9418
+ exports.Accordion = Accordion;
8300
9419
  exports.Avatar = Avatar;
8301
9420
  exports.Button = Button;
8302
9421
  exports.Calendar = Calendar;
@@ -8356,8 +9475,9 @@ exports.Tab = Tab;
8356
9475
  exports.TabbedContentEditor = TabbedContentEditor;
8357
9476
  exports.TabbedTablePage = TabbedTablePage;
8358
9477
  exports.TabbedView = TabbedView;
8359
- exports.TableEditor = TableEditor$1;
9478
+ exports.TableEditor = TableEditor$2;
8360
9479
  exports.TablePage = TablePage;
9480
+ exports.TablePage2 = TablePage2;
8361
9481
  exports.Tabs = Tabs;
8362
9482
  exports.Text = Text;
8363
9483
  exports.TextArea = TextArea;