ywana-core8 0.0.570 → 0.0.573

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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
@@ -1390,7 +1483,6 @@ var DropDown = function DropDown(props) {
1390
1483
  setOpen(false);
1391
1484
  var label = verbose ? option.label : "";
1392
1485
  setLabel(label);
1393
- console.log("dd.select", value);
1394
1486
  if (onChange) onChange(id, next);
1395
1487
  }
1396
1488
 
@@ -2051,7 +2143,6 @@ var TokenField = function TokenField(_ref) {
2051
2143
 
2052
2144
  function changeDropDown(fid, value) {
2053
2145
  var next = Array.isArray(tokens) ? tokens.concat(value) : [value];
2054
- console.log("next", next);
2055
2146
  if (onChange) onChange(id, next);
2056
2147
  setValue('');
2057
2148
  }
@@ -2077,7 +2168,6 @@ var TokenField = function TokenField(_ref) {
2077
2168
  }
2078
2169
 
2079
2170
  var tks = Array.isArray(tokens) ? tokens : [];
2080
- console.log("render", tks);
2081
2171
  return /*#__PURE__*/React__default["default"].createElement("div", {
2082
2172
  className: "tokenField"
2083
2173
  }, /*#__PURE__*/React__default["default"].createElement("label", null, label), tks.map(function (text, index) {
@@ -3630,7 +3720,9 @@ var SiteMenu = function SiteMenu(_ref6) {
3630
3720
  return _goto(id);
3631
3721
  }
3632
3722
  }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3633
- text: title
3723
+ text: title,
3724
+ top: ".5rem",
3725
+ left: "2rem"
3634
3726
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3635
3727
  key: id,
3636
3728
  icon: icon,
@@ -4201,13 +4293,13 @@ var ContentEditor = function ContentEditor(_ref) {
4201
4293
  * Tabbed Content Editor
4202
4294
  */
4203
4295
 
4204
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4205
- var content = _ref2.content,
4206
- filter = _ref2.filter,
4207
- _ref2$grouped = _ref2.grouped,
4208
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4209
- onChange = _ref2.onChange,
4210
- 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;
4211
4303
 
4212
4304
  var _useState = React.useState(0),
4213
4305
  tab = _useState[0],
@@ -4292,9 +4384,9 @@ var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4292
4384
  * TreededContentEditor
4293
4385
  */
4294
4386
 
4295
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4296
- var content = _ref3.content,
4297
- onChange = _ref3.onChange;
4387
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4388
+ var content = _ref4.content,
4389
+ onChange = _ref4.onChange;
4298
4390
  var value = content.value();
4299
4391
  var nodes = Object.values(content.type).filter(function (field) {
4300
4392
  return field.type === TYPES.ARRAY;
@@ -4359,13 +4451,13 @@ var TreededContentEditor = function TreededContentEditor(_ref3) {
4359
4451
  * FieldEditor
4360
4452
  */
4361
4453
 
4362
- var FieldEditor = function FieldEditor(_ref4) {
4363
- var field = _ref4.field,
4364
- onChange = _ref4.onChange,
4365
- content = _ref4.content,
4366
- _ref4$outlined = _ref4.outlined,
4367
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4368
- 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;
4369
4461
  var id = field.id,
4370
4462
  type = field.type,
4371
4463
  item = field.item,
@@ -4452,11 +4544,11 @@ var FieldEditor = function FieldEditor(_ref4) {
4452
4544
  * Entity Editor
4453
4545
  */
4454
4546
 
4455
- var EntityEditor = function EntityEditor(_ref5) {
4456
- var field = _ref5.field,
4457
- _ref5$value = _ref5.value,
4458
- value = _ref5$value === void 0 ? {} : _ref5$value,
4459
- 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;
4460
4552
  var id = field.id,
4461
4553
  item = field.item,
4462
4554
  label = field.label;
@@ -4516,13 +4608,13 @@ var EntityEditor = function EntityEditor(_ref5) {
4516
4608
  */
4517
4609
 
4518
4610
 
4519
- var StringEditor = function StringEditor(_ref6) {
4520
- var field = _ref6.field,
4521
- _ref6$value = _ref6.value,
4522
- value = _ref6$value === void 0 ? '' : _ref6$value,
4523
- onChange = _ref6.onChange,
4524
- content = _ref6.content,
4525
- 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;
4526
4618
  var id = field.id,
4527
4619
  format = field.format,
4528
4620
  label = field.label,
@@ -4638,12 +4730,12 @@ var StringEditor = function StringEditor(_ref6) {
4638
4730
  * Number Editor
4639
4731
  */
4640
4732
 
4641
- var NumberEditor = function NumberEditor(_ref7) {
4642
- var field = _ref7.field,
4643
- value = _ref7.value,
4644
- onChange = _ref7.onChange,
4645
- _ref7$outlined = _ref7.outlined,
4646
- 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;
4647
4739
  var id = field.id,
4648
4740
  label = field.label,
4649
4741
  _field$editable2 = field.editable,
@@ -4676,11 +4768,11 @@ var NumberEditor = function NumberEditor(_ref7) {
4676
4768
  */
4677
4769
 
4678
4770
 
4679
- var ListEditor = function ListEditor(_ref8) {
4680
- var field = _ref8.field,
4681
- _ref8$value = _ref8.value,
4682
- value = _ref8$value === void 0 ? [] : _ref8$value,
4683
- 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;
4684
4776
  var label = field.label;
4685
4777
 
4686
4778
  function change(id, value) {
@@ -4700,12 +4792,12 @@ var ListEditor = function ListEditor(_ref8) {
4700
4792
  * Multi Selection Editor
4701
4793
  */
4702
4794
 
4703
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4704
- var field = _ref9.field,
4705
- _ref9$value = _ref9.value,
4706
- value = _ref9$value === void 0 ? [] : _ref9$value,
4707
- content = _ref9.content,
4708
- 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;
4709
4801
  var id = field.id,
4710
4802
  label = field.label,
4711
4803
  options = field.options;
@@ -4744,15 +4836,17 @@ var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4744
4836
  * Collection Editor
4745
4837
  */
4746
4838
 
4747
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4748
- var field = _ref10.field,
4749
- _ref10$value = _ref10.value,
4750
- value = _ref10$value === void 0 ? [] : _ref10$value,
4751
- onChange = _ref10.onChange,
4752
- 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;
4753
4845
  var id = field.id,
4754
4846
  item = field.item,
4755
4847
  label = field.label,
4848
+ _field$groupBy = field.groupBy,
4849
+ groupBy = _field$groupBy === void 0 ? "field1" : _field$groupBy,
4756
4850
  Feeder = field.Feeder,
4757
4851
  Renderer = field.Renderer,
4758
4852
  _field$Adder = field.Adder,
@@ -4774,42 +4868,24 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4774
4868
  }
4775
4869
  }
4776
4870
 
4777
- function change(index, cellId, cellValue) {
4778
- if (onChange) {
4779
- var next = value.slice();
4780
- next[index][cellId] = cellValue;
4781
- onChange(id, next);
4782
- }
4783
- }
4784
-
4785
4871
  function reload() {
4786
4872
  if (onReload) onReload();
4787
4873
  }
4874
+ /* const columns = Object.values(item)
4875
+ .filter(field => field.column === true)
4876
+ .map((item) => ({ ...item, onChange: change }))
4877
+ columns.push({ id: 'actions', label: 'Actions' })
4878
+ const rows = value.map((item, index) => ({
4879
+ ...item,
4880
+ id: index,
4881
+ actions: [
4882
+ <Icon icon='delete' clickable action={() => remove(index)} size="small" />
4883
+ ]
4884
+ }))
4885
+ const table = { columns, rows }
4886
+ */
4887
+
4788
4888
 
4789
- var columns = Object.values(item).filter(function (field) {
4790
- return field.column === true;
4791
- }).map(function (item) {
4792
- return _extends({}, item, {
4793
- onChange: change
4794
- });
4795
- });
4796
- columns.push({
4797
- id: 'actions',
4798
- label: 'Actions'
4799
- });
4800
- value.map(function (item, index) {
4801
- return _extends({}, item, {
4802
- id: index,
4803
- actions: [/*#__PURE__*/React__default["default"].createElement(Icon, {
4804
- icon: "delete",
4805
- clickable: true,
4806
- action: function action() {
4807
- return remove(index);
4808
- },
4809
- size: "small"
4810
- })]
4811
- });
4812
- });
4813
4889
  return /*#__PURE__*/React__default["default"].createElement("div", {
4814
4890
  className: "collection-editor"
4815
4891
  }, Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
@@ -4819,12 +4895,12 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4819
4895
  onChange: onChange,
4820
4896
  onReload: reload
4821
4897
  }) // : <DataTable {...table} editable={editable} />
4822
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4898
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4823
4899
  icon: "info",
4824
4900
  title: label,
4825
4901
  data: value,
4826
4902
  schema: item,
4827
- groupBy: "field1",
4903
+ groupBy: groupBy,
4828
4904
  canDelete: true,
4829
4905
  remove: remove
4830
4906
  }), /*#__PURE__*/React__default["default"].createElement("footer", null, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
@@ -4839,9 +4915,9 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4839
4915
  * Collection Adder
4840
4916
  */
4841
4917
 
4842
- var CollectionAdder = function CollectionAdder(_ref11) {
4843
- var item = _ref11.item,
4844
- onAdd = _ref11.onAdd;
4918
+ var CollectionAdder = function CollectionAdder(_ref12) {
4919
+ var item = _ref12.item,
4920
+ onAdd = _ref12.onAdd;
4845
4921
 
4846
4922
  var _useState3 = React.useState(false),
4847
4923
  edit = _useState3[0],
@@ -4910,7 +4986,7 @@ var CollectionAdder = function CollectionAdder(_ref11) {
4910
4986
  */
4911
4987
 
4912
4988
 
4913
- var TableEditor$2 = function TableEditor(props) {
4989
+ var TableEditor$3 = function TableEditor(props) {
4914
4990
  var select = function select(row) {
4915
4991
  try {
4916
4992
  if (onSelect) onSelect(row.id);
@@ -5254,7 +5330,7 @@ var EditContentDialog = function EditContentDialog(_ref) {
5254
5330
  * Collection Page
5255
5331
  */
5256
5332
 
5257
- function _catch$2(body, recover) {
5333
+ function _catch$3(body, recover) {
5258
5334
  try {
5259
5335
  var result = body();
5260
5336
  } catch (e) {
@@ -5831,7 +5907,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5831
5907
  try {
5832
5908
  var _this2 = this;
5833
5909
 
5834
- var _temp2 = _catch$2(function () {
5910
+ var _temp2 = _catch$3(function () {
5835
5911
  return Promise.resolve(API.all(null, page)).then(function (data) {
5836
5912
  _this2.all = field ? data[field] : data;
5837
5913
  });
@@ -5880,7 +5956,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5880
5956
  },
5881
5957
  fetch: function fetch(id) {
5882
5958
  try {
5883
- return Promise.resolve(_catch$2(function () {
5959
+ return Promise.resolve(_catch$3(function () {
5884
5960
  return Promise.resolve(API.find(id));
5885
5961
  }, function (error) {
5886
5962
  console.log(error);
@@ -5896,7 +5972,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5896
5972
  try {
5897
5973
  var _this8 = this;
5898
5974
 
5899
- var _temp6 = _catch$2(function () {
5975
+ var _temp6 = _catch$3(function () {
5900
5976
  return Promise.resolve(API.create(form)).then(function () {
5901
5977
  return Promise.resolve(_this8.load()).then(function () {});
5902
5978
  });
@@ -5913,7 +5989,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5913
5989
  try {
5914
5990
  var _this10 = this;
5915
5991
 
5916
- var _temp8 = _catch$2(function () {
5992
+ var _temp8 = _catch$3(function () {
5917
5993
  return Promise.resolve(API.update(form)).then(function () {
5918
5994
  return Promise.resolve(_this10.load()).then(function () {});
5919
5995
  });
@@ -5930,7 +6006,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5930
6006
  try {
5931
6007
  var _this12 = this;
5932
6008
 
5933
- var _temp10 = _catch$2(function () {
6009
+ var _temp10 = _catch$3(function () {
5934
6010
  return Promise.resolve(API.patch(id, form)).then(function () {
5935
6011
  return Promise.resolve(_this12.load()).then(function () {});
5936
6012
  });
@@ -5947,7 +6023,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5947
6023
  try {
5948
6024
  var _this14 = this;
5949
6025
 
5950
- var _temp12 = _catch$2(function () {
6026
+ var _temp12 = _catch$3(function () {
5951
6027
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5952
6028
  return Promise.resolve(_this14.load()).then(function () {});
5953
6029
  });
@@ -5964,7 +6040,7 @@ var CollectionContext = function CollectionContext(url, field, host, page, fetch
5964
6040
  try {
5965
6041
  var _this16 = this;
5966
6042
 
5967
- var _temp14 = _catch$2(function () {
6043
+ var _temp14 = _catch$3(function () {
5968
6044
  return Promise.resolve(API.remove(id)).then(function () {
5969
6045
  return Promise.resolve(_this16.load()).then(function () {});
5970
6046
  });
@@ -6177,7 +6253,7 @@ var QUERY = {
6177
6253
  * Table Page
6178
6254
  */
6179
6255
 
6180
- function _catch$1(body, recover) {
6256
+ function _catch$2(body, recover) {
6181
6257
  try {
6182
6258
  var result = body();
6183
6259
  } catch (e) {
@@ -6304,7 +6380,7 @@ var TablePage = function TablePage(props) {
6304
6380
  pageContext = _useContext[0],
6305
6381
  setPageContext = _useContext[1];
6306
6382
 
6307
- var context = TableContext$1(url, field, host, urlQuery, params);
6383
+ var context = TableContext$2(url, field, host, urlQuery, params);
6308
6384
  var selected = pageContext.selected;
6309
6385
  var timer = React.useRef(null);
6310
6386
 
@@ -6404,13 +6480,13 @@ var TablePage = function TablePage(props) {
6404
6480
  if (rowSelected || rowChecked) {
6405
6481
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6406
6482
  className: "table-page"
6407
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6483
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6408
6484
  content: new Content(schema, form),
6409
6485
  filter: editorFilter,
6410
6486
  onChange: change,
6411
6487
  onClose: closeAside,
6412
6488
  editable: canEdit
6413
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6489
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6414
6490
  schema: schema,
6415
6491
  actions: selectionActions
6416
6492
  }) : null);
@@ -6451,17 +6527,17 @@ var TablePage = function TablePage(props) {
6451
6527
  onSelect: playScenario
6452
6528
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6453
6529
  className: "table-page"
6454
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6530
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6455
6531
  schema: schema,
6456
6532
  url: url,
6457
6533
  user: user
6458
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6534
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6459
6535
  schema: schema,
6460
6536
  onSave: canQuery ? saveQuery : null
6461
6537
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6462
6538
  key: id,
6463
6539
  className: "table-page"
6464
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6540
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6465
6541
  icon: icon,
6466
6542
  title: name,
6467
6543
  schema: schema,
@@ -6475,7 +6551,7 @@ var TablePage = function TablePage(props) {
6475
6551
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6476
6552
  };
6477
6553
 
6478
- var TableRowEditor$1 = function TableRowEditor(props) {
6554
+ var TableRowEditor$2 = function TableRowEditor(props) {
6479
6555
  var name = props.name,
6480
6556
  content = props.content,
6481
6557
  filter = props.filter,
@@ -6504,7 +6580,7 @@ var TableRowEditor$1 = function TableRowEditor(props) {
6504
6580
  */
6505
6581
 
6506
6582
 
6507
- var TableSelector$1 = function TableSelector(props) {
6583
+ var TableSelector$2 = function TableSelector(props) {
6508
6584
  var schema = props.schema,
6509
6585
  _props$actions2 = props.actions,
6510
6586
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6542,8 +6618,10 @@ var TableSelector$1 = function TableSelector(props) {
6542
6618
  action: function action() {
6543
6619
  return _action(checked, pageContext, function () {
6544
6620
  try {
6545
- return Promise.resolve(pageContext.load()).then(function () {
6546
- setPageContext(Object.assign({}, pageContext));
6621
+ return Promise.resolve(pageContext.clearChecks()).then(function () {
6622
+ return Promise.resolve(pageContext.load()).then(function () {
6623
+ setPageContext(Object.assign({}, pageContext));
6624
+ });
6547
6625
  });
6548
6626
  } catch (e) {
6549
6627
  return Promise.reject(e);
@@ -6567,7 +6645,7 @@ var TableSelector$1 = function TableSelector(props) {
6567
6645
  */
6568
6646
 
6569
6647
 
6570
- var TableQueries$1 = function TableQueries(props) {
6648
+ var TableQueries$2 = function TableQueries(props) {
6571
6649
  var remove = function remove(id) {
6572
6650
  try {
6573
6651
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6629,7 +6707,7 @@ var TableQueries$1 = function TableQueries(props) {
6629
6707
  */
6630
6708
 
6631
6709
 
6632
- var TableFilters$1 = function TableFilters(props) {
6710
+ var TableFilters$2 = function TableFilters(props) {
6633
6711
  var reload = function reload() {
6634
6712
  try {
6635
6713
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6725,7 +6803,7 @@ var TableFilters$1 = function TableFilters(props) {
6725
6803
  */
6726
6804
 
6727
6805
 
6728
- var TableEditor$1 = function TableEditor(props) {
6806
+ var TableEditor$2 = function TableEditor(props) {
6729
6807
  var checkOne = function checkOne(id, field, value) {
6730
6808
  check([id], value);
6731
6809
  return Promise.resolve();
@@ -6957,8 +7035,8 @@ var TableEditor$1 = function TableEditor(props) {
6957
7035
  * Table Context
6958
7036
  */
6959
7037
 
6960
- var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6961
- var API = TableAPI$1(url, host, params);
7038
+ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
7039
+ var API = TableAPI$2(url, host, params);
6962
7040
  return {
6963
7041
  all: [],
6964
7042
  checked: new Set([]),
@@ -6969,7 +7047,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6969
7047
  try {
6970
7048
  var _this2 = this;
6971
7049
 
6972
- var _temp5 = _catch$1(function () {
7050
+ var _temp5 = _catch$2(function () {
6973
7051
  var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
6974
7052
  var field = filter[key];
6975
7053
 
@@ -7015,6 +7093,9 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7015
7093
  });
7016
7094
  }
7017
7095
  },
7096
+ clearChecks: function clearChecks() {
7097
+ this.checked = new Set([]);
7098
+ },
7018
7099
  select: function select(id) {
7019
7100
  var result = this.all.find(function (item) {
7020
7101
  return item.id === id;
@@ -7028,7 +7109,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7028
7109
  try {
7029
7110
  var _this5 = this;
7030
7111
 
7031
- var _temp7 = _catch$1(function () {
7112
+ var _temp7 = _catch$2(function () {
7032
7113
  return Promise.resolve(API.create(form)).then(function () {
7033
7114
  return Promise.resolve(_this5.load()).then(function () {});
7034
7115
  });
@@ -7045,7 +7126,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7045
7126
  try {
7046
7127
  var _this7 = this;
7047
7128
 
7048
- var _temp9 = _catch$1(function () {
7129
+ var _temp9 = _catch$2(function () {
7049
7130
  return Promise.resolve(API.update(form)).then(function () {
7050
7131
  return Promise.resolve(_this7.load()).then(function () {});
7051
7132
  });
@@ -7062,7 +7143,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7062
7143
  try {
7063
7144
  var _this9 = this;
7064
7145
 
7065
- var _temp11 = _catch$1(function () {
7146
+ var _temp11 = _catch$2(function () {
7066
7147
  return Promise.resolve(API.remove(id)).then(function () {
7067
7148
  return Promise.resolve(_this9.load()).then(function () {});
7068
7149
  });
@@ -7082,7 +7163,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7082
7163
  try {
7083
7164
  var _this11 = this;
7084
7165
 
7085
- var _temp13 = _catch$1(function () {
7166
+ var _temp13 = _catch$2(function () {
7086
7167
  return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
7087
7168
  _this11.queries = _API$queries;
7088
7169
  });
@@ -7099,7 +7180,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7099
7180
  try {
7100
7181
  var _this13 = this;
7101
7182
 
7102
- var _temp15 = _catch$1(function () {
7183
+ var _temp15 = _catch$2(function () {
7103
7184
  return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
7104
7185
  return Promise.resolve(_this13.loadQueries(user)).then(function () {});
7105
7186
  });
@@ -7116,7 +7197,7 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7116
7197
  try {
7117
7198
  var _this15 = this;
7118
7199
 
7119
- var _temp17 = _catch$1(function () {
7200
+ var _temp17 = _catch$2(function () {
7120
7201
  return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
7121
7202
  return Promise.resolve(_this15.loadQueries(user)).then(function () {});
7122
7203
  });
@@ -7136,6 +7217,1023 @@ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
7136
7217
  */
7137
7218
 
7138
7219
 
7220
+ var TableAPI$2 = function TableAPI(url, host, params) {
7221
+ if (params === void 0) {
7222
+ params = "";
7223
+ }
7224
+
7225
+ var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
7226
+ return {
7227
+ all: function all(filters) {
7228
+ var queryParams = "?" + params;
7229
+
7230
+ if (filters) {
7231
+ var filterQuery = Object.keys(filters).reduce(function (query, key) {
7232
+ var value = filters[key];
7233
+
7234
+ if (typeof value === 'boolean') {
7235
+ return query.concat(key + "=" + value + "&");
7236
+ } else if (Array.isArray(value)) {
7237
+ var param = value.length === 0 ? '' : value.reduce(function (param, item) {
7238
+ param = param.concat(key + "=" + item + "&");
7239
+ return param;
7240
+ }, "");
7241
+ return query.concat(param);
7242
+ } else {
7243
+ return query.concat(key + "=%" + filters[key] + "%&");
7244
+ }
7245
+ }, "");
7246
+ queryParams = queryParams.concat(filterQuery);
7247
+ }
7248
+
7249
+ return http.GET(url + queryParams);
7250
+ },
7251
+ find: function find(id) {
7252
+ return http.GET(url + "/" + id);
7253
+ },
7254
+ create: function create(form) {
7255
+ var body = JSON.stringify(form);
7256
+ return http.POST(url, body);
7257
+ },
7258
+ update: function update(form) {
7259
+ var body = JSON.stringify(form);
7260
+ return http.PUT(url + "/" + form.id, body);
7261
+ },
7262
+ remove: function remove(id) {
7263
+ return http.DELETE(url + "/" + id);
7264
+ },
7265
+ queries: function queries(user, url2) {
7266
+ var url3 = url2 ? url2 : url;
7267
+ url3 = url3 + "queries";
7268
+ if (user) url3 = url3 + ("?user=" + user);
7269
+ return http.GET(url3);
7270
+ },
7271
+ createQuery: function createQuery(form, url2) {
7272
+ var url3 = url2 ? url2 : url;
7273
+ var body = JSON.stringify(form);
7274
+ return http.POST(url3 + "queries", body);
7275
+ },
7276
+ removeQuery: function removeQuery(id, url2) {
7277
+ var url3 = url2 ? url2 : url;
7278
+ return http.DELETE(url3 + "queries/" + id);
7279
+ }
7280
+ };
7281
+ };
7282
+
7283
+ /**
7284
+ * Table Page
7285
+ */
7286
+
7287
+ function _catch$1(body, recover) {
7288
+ try {
7289
+ var result = body();
7290
+ } catch (e) {
7291
+ return recover(e);
7292
+ }
7293
+
7294
+ if (result && result.then) {
7295
+ return result.then(void 0, recover);
7296
+ }
7297
+
7298
+ return result;
7299
+ }
7300
+ /**
7301
+ * TableRowEditor
7302
+ */
7303
+
7304
+
7305
+ var TablePage2 = function TablePage2(props) {
7306
+ var save = function save() {
7307
+ try {
7308
+ return Promise.resolve(pageContext.update(form)).then(function () {
7309
+ setPageContext(Object.assign({}, pageContext));
7310
+ });
7311
+ } catch (e) {
7312
+ return Promise.reject(e);
7313
+ }
7314
+ };
7315
+
7316
+ var reload = function reload() {
7317
+ try {
7318
+ return Promise.resolve(pageContext.load()).then(function () {
7319
+ setPageContext(Object.assign({}, pageContext));
7320
+ });
7321
+ } catch (e) {
7322
+ return Promise.reject(e);
7323
+ }
7324
+ };
7325
+
7326
+ var site = React.useContext(SiteContext);
7327
+ var _props$id = props.id,
7328
+ id = _props$id === void 0 ? "table" : _props$id,
7329
+ icon = props.icon,
7330
+ title = props.title,
7331
+ name = props.name,
7332
+ schema = props.schema,
7333
+ url = props.url,
7334
+ field = props.field,
7335
+ host = props.host,
7336
+ _props$params = props.params,
7337
+ params = _props$params === void 0 ? "" : _props$params,
7338
+ _props$canQuery = props.canQuery,
7339
+ canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
7340
+ urlQuery = props.urlQuery,
7341
+ user = props.user,
7342
+ editable = props.editable,
7343
+ _props$autosave = props.autosave,
7344
+ autosave = _props$autosave === void 0 ? true : _props$autosave,
7345
+ _props$delay = props.delay,
7346
+ delay = _props$delay === void 0 ? 1000 : _props$delay,
7347
+ _props$actions = props.actions,
7348
+ actions = _props$actions === void 0 ? [] : _props$actions,
7349
+ tableActions = props.tableActions,
7350
+ _props$selectionActio = props.selectionActions,
7351
+ selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
7352
+ _props$canFilter = props.canFilter,
7353
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
7354
+ _props$canAdd = props.canAdd,
7355
+ canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
7356
+ _props$canDelete = props.canDelete,
7357
+ canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
7358
+ _props$canEdit = props.canEdit,
7359
+ canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
7360
+ groupBy = props.groupBy,
7361
+ validator = props.validator,
7362
+ formFilter = props.formFilter,
7363
+ tableFilter = props.tableFilter,
7364
+ _props$editorFilter = props.editorFilter,
7365
+ editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
7366
+ tabbedBy = props.tabbedBy,
7367
+ tableClassName = props.tableClassName,
7368
+ children = props.children;
7369
+
7370
+ var _useContext = React.useContext(PageContext),
7371
+ setPageContext = _useContext[1];
7372
+
7373
+ var context = TableContext$1(url, field, host, urlQuery, params);
7374
+ var _pageContext = pageContext,
7375
+ selected = _pageContext.selected;
7376
+ var timer = React.useRef(null);
7377
+
7378
+ var _useState = React.useState(selected),
7379
+ form = _useState[0],
7380
+ setForm = _useState[1];
7381
+
7382
+ React.useEffect(function () {
7383
+ try {
7384
+ return Promise.resolve(context.load()).then(function () {
7385
+ function _temp2() {
7386
+ setPageContext(context);
7387
+ }
7388
+
7389
+ var _temp = function () {
7390
+ if (canQuery) return Promise.resolve(context.loadQueries(user)).then(function () {});
7391
+ }();
7392
+
7393
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
7394
+ });
7395
+ } catch (e) {
7396
+ return Promise.reject(e);
7397
+ }
7398
+ }, []);
7399
+ React.useEffect(function () {
7400
+ setForm(selected);
7401
+ }, [selected]);
7402
+ React.useEffect(function () {
7403
+ if (autosave) {
7404
+ clearTimeout(timer.current);
7405
+ timer.current = setTimeout(function () {
7406
+ if (canSave()) save();
7407
+ }, delay);
7408
+ }
7409
+ }, [form]);
7410
+
7411
+ function add() {
7412
+ var onOK = function onOK(form) {
7413
+ try {
7414
+ return Promise.resolve(pageContext.create(form)).then(function () {
7415
+ setPageContext(Object.assign({}, pageContext));
7416
+ });
7417
+ } catch (e) {
7418
+ return Promise.reject(e);
7419
+ }
7420
+ };
7421
+
7422
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7423
+ label: "Crear " + name,
7424
+ type: schema,
7425
+ onOK: onOK,
7426
+ validator: validator,
7427
+ filter: formFilter
7428
+ }));
7429
+ }
7430
+
7431
+ function saveQuery(filters) {
7432
+ var onOK = function onOK(form) {
7433
+ try {
7434
+ form.filters = filters;
7435
+ form.layout = {};
7436
+ form.user = user;
7437
+ form.url = url;
7438
+ return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
7439
+ setPageContext(Object.assign({}, pageContext));
7440
+ });
7441
+ } catch (e) {
7442
+ return Promise.reject(e);
7443
+ }
7444
+ };
7445
+
7446
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7447
+ label: "Nueva query",
7448
+ type: QUERY,
7449
+ onOK: onOK
7450
+ }));
7451
+ }
7452
+
7453
+ function change(next) {
7454
+ setForm(next);
7455
+ }
7456
+
7457
+ function canSave() {
7458
+ var can = !equal__default["default"](form, selected);
7459
+ return can;
7460
+ }
7461
+
7462
+ function closeAside() {
7463
+ pageContext.select(null);
7464
+ setPageContext(Object.assign({}, pageContext));
7465
+ }
7466
+
7467
+ function renderAside() {
7468
+ var rowSelected = selected && form;
7469
+ var rowChecked = pageContext.checked && pageContext.checked.size > 0;
7470
+
7471
+ if (rowSelected || rowChecked) {
7472
+ return /*#__PURE__*/React__default["default"].createElement("aside", {
7473
+ className: "table-page"
7474
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
7475
+ content: new Content(schema, form),
7476
+ filter: editorFilter,
7477
+ onChange: change,
7478
+ onClose: closeAside,
7479
+ editable: canEdit
7480
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
7481
+ schema: schema,
7482
+ actions: selectionActions
7483
+ }) : null);
7484
+ }
7485
+
7486
+ return null;
7487
+ }
7488
+
7489
+ function renderActions() {
7490
+ return actions.map(function (element) {
7491
+ var action = function action() {
7492
+ return element.props.action(pageContext);
7493
+ };
7494
+
7495
+ var clone = React__default["default"].cloneElement(element, {
7496
+ action: action
7497
+ });
7498
+ return clone;
7499
+ });
7500
+ }
7501
+
7502
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7503
+ className: "table-page",
7504
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7505
+ }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7506
+ icon: "add",
7507
+ label: "A\xF1adir",
7508
+ action: add,
7509
+ raised: true
7510
+ }) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
7511
+ icon: "refresh",
7512
+ label: "Reload",
7513
+ action: reload
7514
+ }), renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
7515
+ className: "table-page"
7516
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
7517
+ schema: schema,
7518
+ url: url,
7519
+ user: user
7520
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
7521
+ schema: schema,
7522
+ onSave: canQuery ? saveQuery : null
7523
+ }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
7524
+ key: id,
7525
+ className: "table-page"
7526
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
7527
+ icon: icon,
7528
+ title: name,
7529
+ schema: schema,
7530
+ delay: delay,
7531
+ editable: editable,
7532
+ tabbedBy: tabbedBy,
7533
+ groupBy: groupBy,
7534
+ filter: tableFilter,
7535
+ actions: tableActions,
7536
+ canDelete: canDelete,
7537
+ className: tableClassName
7538
+ }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
7539
+ };
7540
+
7541
+ var TableRowEditor$1 = function TableRowEditor(props) {
7542
+ var name = props.name,
7543
+ content = props.content,
7544
+ filter = props.filter,
7545
+ editable = props.editable,
7546
+ onChange = props.onChange,
7547
+ onClose = props.onClose;
7548
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7549
+ className: "table-row-editor"
7550
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7551
+ icon: "local_offer",
7552
+ title: name || "Propiedades"
7553
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7554
+ icon: "close",
7555
+ clickable: true,
7556
+ action: onClose
7557
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7558
+ content: content,
7559
+ onChange: onChange,
7560
+ filter: filter
7561
+ }) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
7562
+ content: content
7563
+ })));
7564
+ };
7565
+ /**
7566
+ * Table Selector
7567
+ */
7568
+
7569
+
7570
+ var TableSelector$1 = function TableSelector(props) {
7571
+ var schema = props.schema,
7572
+ _props$actions2 = props.actions,
7573
+ actions = _props$actions2 === void 0 ? [] : _props$actions2;
7574
+
7575
+ var _useContext2 = React.useContext(PageContext),
7576
+ pageContext = _useContext2[0],
7577
+ setPageContext = _useContext2[1];
7578
+
7579
+ var all = pageContext.all,
7580
+ checked = pageContext.checked;
7581
+ var count = checked.size + "/" + all.length;
7582
+ var columns = Object.keys(schema).filter(function (key) {
7583
+ return schema[key].selectorColumn === true;
7584
+ }).map(function (key) {
7585
+ var field = schema[key];
7586
+ return {
7587
+ id: field.id,
7588
+ label: field.label
7589
+ };
7590
+ });
7591
+ var rows = all.filter(function (item) {
7592
+ return checked.has(item.id);
7593
+ });
7594
+ var table = {
7595
+ columns: columns,
7596
+ rows: rows || []
7597
+ };
7598
+ var buttons = actions.map(function (_ref) {
7599
+ var label = _ref.label,
7600
+ _action = _ref.action,
7601
+ validate = _ref.validate;
7602
+ return /*#__PURE__*/React__default["default"].createElement(Button, {
7603
+ label: label,
7604
+ raised: true,
7605
+ action: function action() {
7606
+ return _action(checked, pageContext, function () {
7607
+ try {
7608
+ return Promise.resolve(pageContext.load()).then(function () {
7609
+ setPageContext(Object.assign({}, pageContext));
7610
+ });
7611
+ } catch (e) {
7612
+ return Promise.reject(e);
7613
+ }
7614
+ }, rows);
7615
+ },
7616
+ disabled: !validate(checked, rows)
7617
+ });
7618
+ });
7619
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7620
+ className: "table-selector"
7621
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7622
+ icon: "checklist_rtl",
7623
+ title: "Selecci\xF3n"
7624
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
7625
+ className: "size"
7626
+ }, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
7627
+ };
7628
+ /**
7629
+ * Table Queries
7630
+ */
7631
+
7632
+
7633
+ var TableQueries$1 = function TableQueries(props) {
7634
+ var remove = function remove(id) {
7635
+ try {
7636
+ return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
7637
+ setPageContext(Object.assign({}, pageContext));
7638
+ });
7639
+ } catch (e) {
7640
+ return Promise.reject(e);
7641
+ }
7642
+ };
7643
+
7644
+ var _useContext3 = React.useContext(PageContext),
7645
+ pageContext = _useContext3[0],
7646
+ setPageContext = _useContext3[1];
7647
+
7648
+ var url = props.url,
7649
+ user = props.user;
7650
+ var _pageContext$queries = pageContext.queries,
7651
+ queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
7652
+
7653
+ var _useState2 = React.useState(),
7654
+ selected = _useState2[0],
7655
+ setSelected = _useState2[1];
7656
+
7657
+ function select(query) {
7658
+ setSelected(query.id);
7659
+ pageContext.changeFilters(query.filters);
7660
+ setPageContext(Object.assign({}, pageContext));
7661
+ }
7662
+
7663
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7664
+ className: "table-queries",
7665
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
7666
+ }), /*#__PURE__*/React__default["default"].createElement("main", {
7667
+ className: "table-queries"
7668
+ }, queries ? queries.filter(function (query) {
7669
+ return query.url === url;
7670
+ }).map(function (query) {
7671
+ var style = selected === query.id ? "selected" : "";
7672
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7673
+ className: "table-queries-item " + style,
7674
+ onClick: function onClick() {
7675
+ return select(query);
7676
+ }
7677
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7678
+ icon: "star",
7679
+ size: "small"
7680
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
7681
+ icon: "close",
7682
+ clickable: true,
7683
+ size: "small",
7684
+ action: function action() {
7685
+ return remove(query.id);
7686
+ }
7687
+ }));
7688
+ }) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
7689
+ };
7690
+ /**
7691
+ * Table Filters
7692
+ */
7693
+
7694
+
7695
+ var TableFilters$1 = function TableFilters(props) {
7696
+ var reload = function reload() {
7697
+ try {
7698
+ return Promise.resolve(pageContext.load(form)).then(function () {
7699
+ setPageContext(Object.assign({}, pageContext));
7700
+ });
7701
+ } catch (e) {
7702
+ return Promise.reject(e);
7703
+ }
7704
+ };
7705
+
7706
+ var change = function change(next) {
7707
+ try {
7708
+ setForm(next);
7709
+ return Promise.resolve();
7710
+ } catch (e) {
7711
+ return Promise.reject(e);
7712
+ }
7713
+ };
7714
+
7715
+ var _useContext4 = React.useContext(PageContext),
7716
+ pageContext = _useContext4[0],
7717
+ setPageContext = _useContext4[1];
7718
+
7719
+ var filters = pageContext.filters;
7720
+ var schema = props.schema,
7721
+ onSave = props.onSave;
7722
+
7723
+ var _useState3 = React.useState({}),
7724
+ form = _useState3[0],
7725
+ setForm = _useState3[1];
7726
+
7727
+ var filterSchema = React.useMemo(function () {
7728
+ var filterSchema = Object.assign({}, schema);
7729
+
7730
+ for (var key in filterSchema) {
7731
+ if (filterSchema[key].filter === false) {
7732
+ delete filterSchema[key];
7733
+ } else {
7734
+ if (filterSchema[key].type === TYPES.ENTITY) {
7735
+ var fs = filterSchema[key].item;
7736
+
7737
+ for (var key in fs) {
7738
+ if (fs[key].filter === false) delete fs[key];
7739
+ }
7740
+ }
7741
+ }
7742
+ } //Object.values(filterSchema).forEach(field => field.section = null)
7743
+
7744
+
7745
+ delete filterSchema.flows;
7746
+ return filterSchema;
7747
+ }, [schema]);
7748
+ React.useEffect(function () {
7749
+ if (filters) setForm(filters);
7750
+ }, [filters]);
7751
+ React.useEffect(function () {
7752
+ reload();
7753
+ }, [form]);
7754
+
7755
+ function clear() {
7756
+ change({});
7757
+ }
7758
+
7759
+ function save() {
7760
+ if (onSave) {
7761
+ onSave(form);
7762
+ }
7763
+ }
7764
+
7765
+ var content = new Content(filterSchema, form);
7766
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7767
+ className: "table-filters",
7768
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
7769
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7770
+ icon: "filter_list_off",
7771
+ size: "small",
7772
+ clickable: true,
7773
+ action: clear
7774
+ }), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7775
+ icon: "save",
7776
+ size: "small",
7777
+ clickable: true,
7778
+ action: save
7779
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
7780
+ className: "table-filters"
7781
+ }, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7782
+ content: content,
7783
+ onChange: change
7784
+ })));
7785
+ };
7786
+ /**
7787
+ * Table Editor
7788
+ */
7789
+
7790
+
7791
+ var TableEditor$1 = function TableEditor(props) {
7792
+ var checkOne = function checkOne(id, field, value) {
7793
+ check([id], value);
7794
+ return Promise.resolve();
7795
+ };
7796
+
7797
+ var check = function check(ids, value) {
7798
+ try {
7799
+ pageContext.check(ids, value);
7800
+ setPageContext(Object.assign({}, pageContext));
7801
+ return Promise.resolve();
7802
+ } catch (e) {
7803
+ return Promise.reject(e);
7804
+ }
7805
+ };
7806
+
7807
+ var select = function select(row, event) {
7808
+ try {
7809
+ clear();
7810
+ return Promise.resolve(pageContext.select(row.id)).then(function () {
7811
+ setPageContext(Object.assign({}, pageContext));
7812
+ });
7813
+ } catch (e) {
7814
+ return Promise.reject(e);
7815
+ }
7816
+ };
7817
+
7818
+ var remove = function remove(id) {
7819
+ try {
7820
+ return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
7821
+ var _temp5 = function () {
7822
+ if (confirm) {
7823
+ return Promise.resolve(pageContext.remove(id)).then(function () {
7824
+ pageContext.clear();
7825
+ setPageContext(Object.assign({}, pageContext));
7826
+ });
7827
+ }
7828
+ }();
7829
+
7830
+ if (_temp5 && _temp5.then) return _temp5.then(function () {});
7831
+ });
7832
+ } catch (e) {
7833
+ return Promise.reject(e);
7834
+ }
7835
+ };
7836
+
7837
+ var site = React.useContext(SiteContext);
7838
+
7839
+ var _useContext5 = React.useContext(PageContext),
7840
+ pageContext = _useContext5[0],
7841
+ setPageContext = _useContext5[1];
7842
+
7843
+ var _pageContext$all = pageContext.all,
7844
+ all = _pageContext$all === void 0 ? [] : _pageContext$all;
7845
+ var icon = props.icon,
7846
+ title = props.title,
7847
+ schema = props.schema,
7848
+ editable = props.editable,
7849
+ canDelete = props.canDelete,
7850
+ filter = props.filter,
7851
+ actions = props.actions,
7852
+ className = props.className;
7853
+
7854
+ var _useState4 = React.useState(props.groupBy),
7855
+ groupBy = _useState4[0],
7856
+ setGroupBy = _useState4[1];
7857
+
7858
+ var _useState5 = React.useState(0),
7859
+ tab = _useState5[0];
7860
+
7861
+ React.useEffect(function () {
7862
+ try {
7863
+ var _temp4 = function () {
7864
+ if (tab) {
7865
+ var _filter2;
7866
+
7867
+ var _filter = (_filter2 = {}, _filter2[tab.field] = tab.value, _filter2);
7868
+
7869
+ return Promise.resolve(pageContext.load(_filter, [])).then(function () {
7870
+ setPageContext(Object.assign({}, pageContext));
7871
+ });
7872
+ }
7873
+ }();
7874
+
7875
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
7876
+ } catch (e) {
7877
+ return Promise.reject(e);
7878
+ }
7879
+ }, [tab]);
7880
+
7881
+ function changeGroup(id, value) {
7882
+ setGroupBy(value);
7883
+ }
7884
+
7885
+ function change(rowID, cellID, value) {
7886
+ var _Object$assign;
7887
+
7888
+ var row = all.find(function (r) {
7889
+ return r.id === rowID;
7890
+ });
7891
+ var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
7892
+ delete next.actions;
7893
+ pageContext.update(next);
7894
+ setPageContext(Object.assign({}, pageContext));
7895
+ }
7896
+
7897
+ function clear() {
7898
+ pageContext.clear();
7899
+ setPageContext(Object.assign({}, pageContext));
7900
+ }
7901
+
7902
+ function run(action, item) {
7903
+ action.action(item.id, pageContext, function () {
7904
+ try {
7905
+ return Promise.resolve(pageContext.load()).then(function () {
7906
+ setPageContext(Object.assign({}, pageContext));
7907
+ });
7908
+ } catch (e) {
7909
+ return Promise.reject(e);
7910
+ }
7911
+ });
7912
+ }
7913
+
7914
+ function buildGroupOptions(schema) {
7915
+ return Object.values(schema).filter(function (field) {
7916
+ return field.grouper === true;
7917
+ }).map(function (field) {
7918
+ return {
7919
+ label: field.label,
7920
+ value: field.id
7921
+ };
7922
+ });
7923
+ }
7924
+
7925
+ function renderGroupLabel(groupName) {
7926
+ var grouper = schema[groupBy];
7927
+ if (!groupName || !grouper) return "";
7928
+
7929
+ if (grouper.options) {
7930
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
7931
+ var option = options.find(function (option) {
7932
+ return option.value === groupName;
7933
+ });
7934
+ return option ? option.label : groupName;
7935
+ } else {
7936
+ return groupName;
7937
+ }
7938
+ }
7939
+
7940
+ var tabField = Object.values(schema).find(function (field) {
7941
+ return field.tab === true;
7942
+ });
7943
+ var tabs = tabField ? tabField.options.map(function (option) {
7944
+ return Object.assign({}, option, {
7945
+ field: tabField.id
7946
+ });
7947
+ }) : [];
7948
+ var table = React.useMemo(function () {
7949
+ return {
7950
+ columns: Object.values(schema).filter(function (field) {
7951
+ return field.column === true;
7952
+ }).map(function (field) {
7953
+ var options = field.options;
7954
+
7955
+ if (options && typeof options == 'function') {
7956
+ options = options();
7957
+ }
7958
+
7959
+ return {
7960
+ id: field.id,
7961
+ label: field.label,
7962
+ type: field.type,
7963
+ format: field.format,
7964
+ item: field.item ? field.item : [],
7965
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
7966
+
7967
+ /* checked has it´s own handler */
7968
+ options: options
7969
+ };
7970
+ }),
7971
+ rows: []
7972
+ };
7973
+ }, [schema]);
7974
+ var items = filter ? filter(all) : all;
7975
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
7976
+ className: "empty-message"
7977
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7978
+ icon: "search_off"
7979
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
7980
+ var groups = items.reduce(function (groups, item) {
7981
+ var groupName = item[groupBy];
7982
+ if (!groups[groupName]) groups[groupName] = [];
7983
+ groups[groupName].push(item);
7984
+ return groups;
7985
+ }, {});
7986
+ var sections = Object.keys(groups).map(function (groupName) {
7987
+ var rows = groups[groupName].map(function (item) {
7988
+ item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
7989
+ item.actions = actions ? actions.map(function (_action2) {
7990
+ return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7991
+ icon: _action2.icon,
7992
+ clickable: true,
7993
+ size: "small",
7994
+ action: function action() {
7995
+ return run(_action2, item);
7996
+ }
7997
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
7998
+ icon: _action2.icon,
7999
+ clickable: true,
8000
+ size: "small",
8001
+ action: function action() {
8002
+ return run(_action2, item);
8003
+ }
8004
+ });
8005
+ }) : [];
8006
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
8007
+ icon: "delete",
8008
+ size: "small",
8009
+ clickable: true,
8010
+ action: function action() {
8011
+ return remove(item.id);
8012
+ }
8013
+ }));
8014
+ return item;
8015
+ });
8016
+ table.rows = rows;
8017
+ return {
8018
+ id: groupName,
8019
+ checked: false,
8020
+ title: renderGroupLabel(groupName),
8021
+ info: groups[groupName].length,
8022
+ open: true,
8023
+ children: /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
8024
+ onRowSelection: select,
8025
+ editable: editable,
8026
+ onCheckAll: check,
8027
+ className: className
8028
+ }))
8029
+ };
8030
+ });
8031
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8032
+ icon: icon,
8033
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
8034
+ }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
8035
+ id: "groupBy",
8036
+ label: "Agrupar Por",
8037
+ value: groupBy,
8038
+ options: buildGroupOptions(schema),
8039
+ onChange: changeGroup
8040
+ }) : null, tabbedBy ? /*#__PURE__*/React__default["default"].createElement(Tabs, {
8041
+ fillRight: true,
8042
+ fillLeft: false
8043
+ }, tabs.map(function (tab) {
8044
+ return /*#__PURE__*/React__default["default"].createElement(Tab, {
8045
+ id: tab.value,
8046
+ label: tab.label
8047
+ });
8048
+ })) : ''), /*#__PURE__*/React__default["default"].createElement("main", {
8049
+ className: "table-editor"
8050
+ }, /*#__PURE__*/React__default["default"].createElement(Accordion, {
8051
+ sections: sections
8052
+ })));
8053
+ };
8054
+ /**
8055
+ * Table Context
8056
+ */
8057
+
8058
+ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
8059
+ var API = TableAPI$1(url, host, params);
8060
+ return {
8061
+ all: [],
8062
+ checked: new Set([]),
8063
+ selected: null,
8064
+ filters: {},
8065
+ queries: [],
8066
+ load: function load(filter) {
8067
+ try {
8068
+ var _this2 = this;
8069
+
8070
+ var _temp7 = _catch$1(function () {
8071
+ var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
8072
+ var field = filter[key];
8073
+
8074
+ if (field) {
8075
+ if (CHECK['isObject'](field)) {
8076
+ Object.keys(field).forEach(function (key2) {
8077
+ var subfield = field[key2];
8078
+ if (subfield) filters[key + "." + key2] = subfield;
8079
+ });
8080
+ } else {
8081
+ filters[key] = field;
8082
+ }
8083
+ }
8084
+
8085
+ return filters;
8086
+ }, {}) : [];
8087
+ return Promise.resolve(API.all(filters)).then(function (data) {
8088
+ _this2.all = field ? data[field] : data;
8089
+ });
8090
+ }, function (error) {
8091
+ console.log(error);
8092
+ });
8093
+
8094
+ return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
8095
+ } catch (e) {
8096
+ return Promise.reject(e);
8097
+ }
8098
+ },
8099
+ check: function check(ids, isChecked) {
8100
+ var _this3 = this;
8101
+
8102
+ if (isChecked === void 0) {
8103
+ isChecked = true;
8104
+ }
8105
+
8106
+ if (isChecked) {
8107
+ ids.forEach(function (id) {
8108
+ return _this3.checked.add(id);
8109
+ });
8110
+ } else {
8111
+ ids.forEach(function (id) {
8112
+ return _this3.checked["delete"](id);
8113
+ });
8114
+ }
8115
+ },
8116
+ select: function select(id) {
8117
+ var result = this.all.find(function (item) {
8118
+ return item.id === id;
8119
+ });
8120
+ this.selected = result;
8121
+ },
8122
+ clear: function clear() {
8123
+ this.selected = null;
8124
+ },
8125
+ create: function create(form) {
8126
+ try {
8127
+ var _this5 = this;
8128
+
8129
+ var _temp9 = _catch$1(function () {
8130
+ return Promise.resolve(API.create(form)).then(function () {
8131
+ return Promise.resolve(_this5.load()).then(function () {});
8132
+ });
8133
+ }, function (error) {
8134
+ console.log(error);
8135
+ });
8136
+
8137
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
8138
+ } catch (e) {
8139
+ return Promise.reject(e);
8140
+ }
8141
+ },
8142
+ update: function update(form) {
8143
+ try {
8144
+ var _this7 = this;
8145
+
8146
+ var _temp11 = _catch$1(function () {
8147
+ return Promise.resolve(API.update(form)).then(function () {
8148
+ return Promise.resolve(_this7.load()).then(function () {});
8149
+ });
8150
+ }, function (error) {
8151
+ console.log(error);
8152
+ });
8153
+
8154
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
8155
+ } catch (e) {
8156
+ return Promise.reject(e);
8157
+ }
8158
+ },
8159
+ remove: function remove(id) {
8160
+ try {
8161
+ var _this9 = this;
8162
+
8163
+ var _temp13 = _catch$1(function () {
8164
+ return Promise.resolve(API.remove(id)).then(function () {
8165
+ return Promise.resolve(_this9.load()).then(function () {});
8166
+ });
8167
+ }, function (error) {
8168
+ console.log(error);
8169
+ });
8170
+
8171
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
8172
+ } catch (e) {
8173
+ return Promise.reject(e);
8174
+ }
8175
+ },
8176
+ changeFilters: function changeFilters(filters) {
8177
+ this.filters = filters;
8178
+ },
8179
+ loadQueries: function loadQueries(user) {
8180
+ try {
8181
+ var _this11 = this;
8182
+
8183
+ var _temp15 = _catch$1(function () {
8184
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
8185
+ _this11.queries = _API$queries;
8186
+ });
8187
+ }, function (error) {
8188
+ console.log(error);
8189
+ });
8190
+
8191
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
8192
+ } catch (e) {
8193
+ return Promise.reject(e);
8194
+ }
8195
+ },
8196
+ createQuery: function createQuery(query, user) {
8197
+ try {
8198
+ var _this13 = this;
8199
+
8200
+ var _temp17 = _catch$1(function () {
8201
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
8202
+ return Promise.resolve(_this13.loadQueries(user)).then(function () {});
8203
+ });
8204
+ }, function (error) {
8205
+ console.log(error);
8206
+ });
8207
+
8208
+ return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
8209
+ } catch (e) {
8210
+ return Promise.reject(e);
8211
+ }
8212
+ },
8213
+ removeQuery: function removeQuery(id, user) {
8214
+ try {
8215
+ var _this15 = this;
8216
+
8217
+ var _temp19 = _catch$1(function () {
8218
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
8219
+ return Promise.resolve(_this15.loadQueries(user)).then(function () {});
8220
+ });
8221
+ }, function (error) {
8222
+ console.log(error);
8223
+ });
8224
+
8225
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(function () {}) : void 0);
8226
+ } catch (e) {
8227
+ return Promise.reject(e);
8228
+ }
8229
+ }
8230
+ };
8231
+ };
8232
+ /**
8233
+ * Table API
8234
+ */
8235
+
8236
+
7139
8237
  var TableAPI$1 = function TableAPI(url, host, params) {
7140
8238
  if (params === void 0) {
7141
8239
  params = "";
@@ -8301,6 +9399,7 @@ var isFunction = function isFunction(value) {
8301
9399
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8302
9400
  };
8303
9401
 
9402
+ exports.Accordion = Accordion;
8304
9403
  exports.Avatar = Avatar;
8305
9404
  exports.Button = Button;
8306
9405
  exports.Calendar = Calendar;
@@ -8360,8 +9459,9 @@ exports.Tab = Tab;
8360
9459
  exports.TabbedContentEditor = TabbedContentEditor;
8361
9460
  exports.TabbedTablePage = TabbedTablePage;
8362
9461
  exports.TabbedView = TabbedView;
8363
- exports.TableEditor = TableEditor$1;
9462
+ exports.TableEditor = TableEditor$2;
8364
9463
  exports.TablePage = TablePage;
9464
+ exports.TablePage2 = TablePage2;
8365
9465
  exports.Tabs = Tabs;
8366
9466
  exports.Text = Text;
8367
9467
  exports.TextArea = TextArea;