ywana-core8 0.0.571 → 0.0.574

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -11,7 +11,7 @@
11
11
  var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
12
12
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
13
13
 
14
- function _catch$3(body, recover) {
14
+ function _catch$4(body, recover) {
15
15
  try {
16
16
  var result = body();
17
17
  } catch (e) {
@@ -43,7 +43,7 @@
43
43
  body: body
44
44
  };
45
45
  if (headers) request.headers = request.headers;
46
- return Promise.resolve(_catch$3(function () {
46
+ return Promise.resolve(_catch$4(function () {
47
47
  return Promise.resolve(fetch(URL, request)).then(function (response) {
48
48
  var _exit;
49
49
 
@@ -144,6 +144,24 @@
144
144
  }
145
145
  };
146
146
 
147
+ function _extends() {
148
+ _extends = Object.assign || function (target) {
149
+ for (var i = 1; i < arguments.length; i++) {
150
+ var source = arguments[i];
151
+
152
+ for (var key in source) {
153
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
154
+ target[key] = source[key];
155
+ }
156
+ }
157
+ }
158
+
159
+ return target;
160
+ };
161
+
162
+ return _extends.apply(this, arguments);
163
+ }
164
+
147
165
  /**
148
166
  * Icon
149
167
  */
@@ -176,6 +194,99 @@
176
194
  }, icon);
177
195
  };
178
196
 
197
+ var Accordion = function Accordion(props) {
198
+ var className = props.className,
199
+ _props$sections = props.sections,
200
+ sections = _props$sections === void 0 ? [] : _props$sections,
201
+ onCheck = props.onCheck;
202
+
203
+ var _useState = React.useState(sections.map(function (section) {
204
+ return section.open;
205
+ })),
206
+ openSections = _useState[0],
207
+ setOpenSections = _useState[1];
208
+
209
+ var _useState2 = React.useState(sections.map(function (section) {
210
+ return section.checked;
211
+ })),
212
+ checkedSections = _useState2[0],
213
+ setCheckedSections = _useState2[1];
214
+
215
+ function toggle(index) {
216
+ var next = openSections.map(function (open, i) {
217
+ return i === index ? !open : open;
218
+ });
219
+ setOpenSections(next);
220
+ }
221
+
222
+ function check(index) {
223
+ var next = checkedSections.map(function (checked, i) {
224
+ return i === index ? !checked : checked;
225
+ });
226
+ setCheckedSections(next);
227
+ if (onCheck) onCheck(index, next[index], sections[index].id);
228
+ }
229
+
230
+ return /*#__PURE__*/React__default["default"].createElement("div", {
231
+ className: "accordion " + className
232
+ }, sections.map(function (section, index) {
233
+ var isOpen = openSections[index];
234
+ var isChecked = checkedSections[index];
235
+ return /*#__PURE__*/React__default["default"].createElement(AccordionSection, _extends({
236
+ key: index
237
+ }, section, {
238
+ open: isOpen,
239
+ checked: isChecked,
240
+ onToggle: function onToggle() {
241
+ return toggle(index);
242
+ },
243
+ onCheck: function onCheck() {
244
+ return check(index);
245
+ }
246
+ }), section.children);
247
+ }));
248
+ };
249
+
250
+ var AccordionSection = function AccordionSection(props) {
251
+ var checked = props.checked,
252
+ icon = props.icon,
253
+ title = props.title,
254
+ subtitle = props.subtitle,
255
+ _props$open = props.open,
256
+ open = _props$open === void 0 ? false : _props$open,
257
+ onToggle = props.onToggle,
258
+ onCheck = props.onCheck,
259
+ toolbar = props.toolbar,
260
+ info = props.info,
261
+ children = props.children;
262
+ var togglerIcon = open ? "expand_less" : "expand_more";
263
+ var checkedIcon = checked === undefined || checked === null ? null : checked === false ? "check_box_outline_blank" : "check_box";
264
+ return /*#__PURE__*/React__default["default"].createElement("section", {
265
+ className: "accordion-section"
266
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, checkedIcon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
267
+ className: "accordion-section-checker",
268
+ icon: checkedIcon,
269
+ clickable: true,
270
+ action: onCheck
271
+ }) : '', icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
272
+ className: "accordion-section-icon",
273
+ icon: icon
274
+ }) : '', title ? /*#__PURE__*/React__default["default"].createElement("div", {
275
+ className: "accordion-section--title"
276
+ }, title) : '', subtitle ? /*#__PURE__*/React__default["default"].createElement("div", {
277
+ className: "accordion-section--subtitle"
278
+ }, subtitle) : '', info ? /*#__PURE__*/React__default["default"].createElement("div", {
279
+ className: "accordion-section--info"
280
+ }, info) : '', toolbar ? /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: "accordion-section--toolbar"
282
+ }, toolbar) : '', /*#__PURE__*/React__default["default"].createElement(Icon, {
283
+ className: "accordion-section-toggler",
284
+ icon: togglerIcon,
285
+ clickable: true,
286
+ action: onToggle
287
+ })), open ? /*#__PURE__*/React__default["default"].createElement("main", null, children) : '');
288
+ };
289
+
179
290
  /**
180
291
  * HTML Button
181
292
  */
@@ -495,24 +606,6 @@
495
606
  }, props.children));
496
607
  };
497
608
 
498
- function _extends() {
499
- _extends = Object.assign || function (target) {
500
- for (var i = 1; i < arguments.length; i++) {
501
- var source = arguments[i];
502
-
503
- for (var key in source) {
504
- if (Object.prototype.hasOwnProperty.call(source, key)) {
505
- target[key] = source[key];
506
- }
507
- }
508
- }
509
-
510
- return target;
511
- };
512
-
513
- return _extends.apply(this, arguments);
514
- }
515
-
516
609
  /**
517
610
  * List
518
611
  */
@@ -853,7 +946,7 @@
853
946
  };
854
947
 
855
948
  return /*#__PURE__*/React__default["default"].createElement("section", {
856
- className: "section2 " + className
949
+ className: "section " + className
857
950
  }, /*#__PURE__*/React__default["default"].createElement(Header, {
858
951
  icon: icon,
859
952
  title: title
@@ -2799,9 +2892,14 @@
2799
2892
  to = _useState3[0],
2800
2893
  setTo = _useState3[1];
2801
2894
 
2895
+ var thisMondayElement = React.useRef(null);
2802
2896
  React.useEffect(function () {
2803
- showThisWeek();
2804
- }, []);
2897
+ console.log(thisMondayElement.current);
2898
+
2899
+ if (thisMondayElement.current) {
2900
+ showThisWeek();
2901
+ }
2902
+ });
2805
2903
  React.useEffect(function () {
2806
2904
  var element = document.getElementById(focusEvent);
2807
2905
  if (element) element.scrollIntoView({
@@ -2955,7 +3053,8 @@
2955
3053
  events: events,
2956
3054
  period: period,
2957
3055
  onSelectCell: selectCell,
2958
- onChange: onChange
3056
+ onChange: onChange,
3057
+ thisMondayRef: thisMondayElement
2959
3058
  });
2960
3059
  }))));
2961
3060
  };
@@ -2969,7 +3068,8 @@
2969
3068
  events = _props$events === void 0 ? [] : _props$events,
2970
3069
  period = props.period,
2971
3070
  onSelectCell = props.onSelectCell,
2972
- onChange = props.onChange;
3071
+ onChange = props.onChange,
3072
+ thisMondayRef = props.thisMondayRef;
2973
3073
  var rowEvents = events.filter(function (event) {
2974
3074
  return event.lane === lane.id;
2975
3075
  });
@@ -2994,7 +3094,8 @@
2994
3094
  date: date,
2995
3095
  events: cellEvents,
2996
3096
  onSelect: onSelectCell,
2997
- onDrop: change
3097
+ onDrop: change,
3098
+ thisMondayRef: thisMondayRef
2998
3099
  });
2999
3100
  }));
3000
3101
  };
@@ -3008,7 +3109,8 @@
3008
3109
  events = _ref2.events,
3009
3110
  date = _ref2.date,
3010
3111
  onSelect = _ref2.onSelect,
3011
- onDrop = _ref2.onDrop;
3112
+ onDrop = _ref2.onDrop,
3113
+ thisMondayRef = _ref2.thisMondayRef;
3012
3114
 
3013
3115
  var _useState4 = React.useState(false),
3014
3116
  dragOver = _useState4[0],
@@ -3046,10 +3148,12 @@
3046
3148
  var weekend = isWekend ? "weekend" : "";
3047
3149
  var today = moment__default["default"]();
3048
3150
  var weekStart = today.clone().startOf('week');
3151
+ var isThisMonday = date.moment.isSame(weekStart);
3049
3152
  var thisMonday = date.moment.isSame(weekStart) ? "thisMonday" : "";
3050
3153
  var dragOverStyle = dragOver ? "drag-over" : "";
3051
3154
  return /*#__PURE__*/React__default["default"].createElement("div", {
3052
3155
  className: "cell " + thisMonday + " " + weekend + " " + dragOverStyle,
3156
+ ref: isThisMonday ? thisMondayRef : null,
3053
3157
  onDragOver: onDragOver,
3054
3158
  onDragLeave: onDragLeave,
3055
3159
  onDrop: drop,
@@ -4194,13 +4298,13 @@
4194
4298
  * Tabbed Content Editor
4195
4299
  */
4196
4300
 
4197
- var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4198
- var content = _ref2.content,
4199
- filter = _ref2.filter,
4200
- _ref2$grouped = _ref2.grouped,
4201
- grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
4202
- onChange = _ref2.onChange,
4203
- onReload = _ref2.onReload;
4301
+ var TabbedContentEditor = function TabbedContentEditor(_ref3) {
4302
+ var content = _ref3.content,
4303
+ filter = _ref3.filter,
4304
+ _ref3$grouped = _ref3.grouped,
4305
+ grouped = _ref3$grouped === void 0 ? false : _ref3$grouped,
4306
+ onChange = _ref3.onChange,
4307
+ onReload = _ref3.onReload;
4204
4308
 
4205
4309
  var _useState = React.useState(0),
4206
4310
  tab = _useState[0],
@@ -4285,9 +4389,9 @@
4285
4389
  * TreededContentEditor
4286
4390
  */
4287
4391
 
4288
- var TreededContentEditor = function TreededContentEditor(_ref3) {
4289
- var content = _ref3.content,
4290
- onChange = _ref3.onChange;
4392
+ var TreededContentEditor = function TreededContentEditor(_ref4) {
4393
+ var content = _ref4.content,
4394
+ onChange = _ref4.onChange;
4291
4395
  var value = content.value();
4292
4396
  var nodes = Object.values(content.type).filter(function (field) {
4293
4397
  return field.type === TYPES.ARRAY;
@@ -4352,13 +4456,13 @@
4352
4456
  * FieldEditor
4353
4457
  */
4354
4458
 
4355
- var FieldEditor = function FieldEditor(_ref4) {
4356
- var field = _ref4.field,
4357
- onChange = _ref4.onChange,
4358
- content = _ref4.content,
4359
- _ref4$outlined = _ref4.outlined,
4360
- outlined = _ref4$outlined === void 0 ? false : _ref4$outlined,
4361
- onReload = _ref4.onReload;
4459
+ var FieldEditor = function FieldEditor(_ref5) {
4460
+ var field = _ref5.field,
4461
+ onChange = _ref5.onChange,
4462
+ content = _ref5.content,
4463
+ _ref5$outlined = _ref5.outlined,
4464
+ outlined = _ref5$outlined === void 0 ? false : _ref5$outlined,
4465
+ onReload = _ref5.onReload;
4362
4466
  var id = field.id,
4363
4467
  type = field.type,
4364
4468
  item = field.item,
@@ -4445,11 +4549,11 @@
4445
4549
  * Entity Editor
4446
4550
  */
4447
4551
 
4448
- var EntityEditor = function EntityEditor(_ref5) {
4449
- var field = _ref5.field,
4450
- _ref5$value = _ref5.value,
4451
- value = _ref5$value === void 0 ? {} : _ref5$value,
4452
- onChange = _ref5.onChange;
4552
+ var EntityEditor = function EntityEditor(_ref6) {
4553
+ var field = _ref6.field,
4554
+ _ref6$value = _ref6.value,
4555
+ value = _ref6$value === void 0 ? {} : _ref6$value,
4556
+ onChange = _ref6.onChange;
4453
4557
  var id = field.id,
4454
4558
  item = field.item,
4455
4559
  label = field.label;
@@ -4509,13 +4613,13 @@
4509
4613
  */
4510
4614
 
4511
4615
 
4512
- var StringEditor = function StringEditor(_ref6) {
4513
- var field = _ref6.field,
4514
- _ref6$value = _ref6.value,
4515
- value = _ref6$value === void 0 ? '' : _ref6$value,
4516
- onChange = _ref6.onChange,
4517
- content = _ref6.content,
4518
- outlined = _ref6.outlined;
4616
+ var StringEditor = function StringEditor(_ref7) {
4617
+ var field = _ref7.field,
4618
+ _ref7$value = _ref7.value,
4619
+ value = _ref7$value === void 0 ? '' : _ref7$value,
4620
+ onChange = _ref7.onChange,
4621
+ content = _ref7.content,
4622
+ outlined = _ref7.outlined;
4519
4623
  var id = field.id,
4520
4624
  format = field.format,
4521
4625
  label = field.label,
@@ -4631,12 +4735,12 @@
4631
4735
  * Number Editor
4632
4736
  */
4633
4737
 
4634
- var NumberEditor = function NumberEditor(_ref7) {
4635
- var field = _ref7.field,
4636
- value = _ref7.value,
4637
- onChange = _ref7.onChange,
4638
- _ref7$outlined = _ref7.outlined,
4639
- outlined = _ref7$outlined === void 0 ? false : _ref7$outlined;
4738
+ var NumberEditor = function NumberEditor(_ref8) {
4739
+ var field = _ref8.field,
4740
+ value = _ref8.value,
4741
+ onChange = _ref8.onChange,
4742
+ _ref8$outlined = _ref8.outlined,
4743
+ outlined = _ref8$outlined === void 0 ? false : _ref8$outlined;
4640
4744
  var id = field.id,
4641
4745
  label = field.label,
4642
4746
  _field$editable2 = field.editable,
@@ -4669,11 +4773,11 @@
4669
4773
  */
4670
4774
 
4671
4775
 
4672
- var ListEditor = function ListEditor(_ref8) {
4673
- var field = _ref8.field,
4674
- _ref8$value = _ref8.value,
4675
- value = _ref8$value === void 0 ? [] : _ref8$value,
4676
- onChange = _ref8.onChange;
4776
+ var ListEditor = function ListEditor(_ref9) {
4777
+ var field = _ref9.field,
4778
+ _ref9$value = _ref9.value,
4779
+ value = _ref9$value === void 0 ? [] : _ref9$value,
4780
+ onChange = _ref9.onChange;
4677
4781
  var label = field.label;
4678
4782
 
4679
4783
  function change(id, value) {
@@ -4693,12 +4797,12 @@
4693
4797
  * Multi Selection Editor
4694
4798
  */
4695
4799
 
4696
- var MultiSelectionEditor = function MultiSelectionEditor(_ref9) {
4697
- var field = _ref9.field,
4698
- _ref9$value = _ref9.value,
4699
- value = _ref9$value === void 0 ? [] : _ref9$value,
4700
- content = _ref9.content,
4701
- onChange = _ref9.onChange;
4800
+ var MultiSelectionEditor = function MultiSelectionEditor(_ref10) {
4801
+ var field = _ref10.field,
4802
+ _ref10$value = _ref10.value,
4803
+ value = _ref10$value === void 0 ? [] : _ref10$value,
4804
+ content = _ref10.content,
4805
+ onChange = _ref10.onChange;
4702
4806
  var id = field.id,
4703
4807
  label = field.label,
4704
4808
  options = field.options;
@@ -4737,15 +4841,17 @@
4737
4841
  * Collection Editor
4738
4842
  */
4739
4843
 
4740
- var CollectionEditor$1 = function CollectionEditor(_ref10) {
4741
- var field = _ref10.field,
4742
- _ref10$value = _ref10.value,
4743
- value = _ref10$value === void 0 ? [] : _ref10$value,
4744
- onChange = _ref10.onChange,
4745
- onReload = _ref10.onReload;
4844
+ var CollectionEditor$1 = function CollectionEditor(_ref11) {
4845
+ var field = _ref11.field,
4846
+ _ref11$value = _ref11.value,
4847
+ value = _ref11$value === void 0 ? [] : _ref11$value,
4848
+ onChange = _ref11.onChange,
4849
+ onReload = _ref11.onReload;
4746
4850
  var id = field.id,
4747
4851
  item = field.item,
4748
4852
  label = field.label,
4853
+ _field$groupBy = field.groupBy,
4854
+ groupBy = _field$groupBy === void 0 ? "field1" : _field$groupBy,
4749
4855
  Feeder = field.Feeder,
4750
4856
  Renderer = field.Renderer,
4751
4857
  _field$Adder = field.Adder,
@@ -4767,42 +4873,24 @@
4767
4873
  }
4768
4874
  }
4769
4875
 
4770
- function change(index, cellId, cellValue) {
4771
- if (onChange) {
4772
- var next = value.slice();
4773
- next[index][cellId] = cellValue;
4774
- onChange(id, next);
4775
- }
4776
- }
4777
-
4778
4876
  function reload() {
4779
4877
  if (onReload) onReload();
4780
4878
  }
4879
+ /* const columns = Object.values(item)
4880
+ .filter(field => field.column === true)
4881
+ .map((item) => ({ ...item, onChange: change }))
4882
+ columns.push({ id: 'actions', label: 'Actions' })
4883
+ const rows = value.map((item, index) => ({
4884
+ ...item,
4885
+ id: index,
4886
+ actions: [
4887
+ <Icon icon='delete' clickable action={() => remove(index)} size="small" />
4888
+ ]
4889
+ }))
4890
+ const table = { columns, rows }
4891
+ */
4892
+
4781
4893
 
4782
- var columns = Object.values(item).filter(function (field) {
4783
- return field.column === true;
4784
- }).map(function (item) {
4785
- return _extends({}, item, {
4786
- onChange: change
4787
- });
4788
- });
4789
- columns.push({
4790
- id: 'actions',
4791
- label: 'Actions'
4792
- });
4793
- value.map(function (item, index) {
4794
- return _extends({}, item, {
4795
- id: index,
4796
- actions: [/*#__PURE__*/React__default["default"].createElement(Icon, {
4797
- icon: "delete",
4798
- clickable: true,
4799
- action: function action() {
4800
- return remove(index);
4801
- },
4802
- size: "small"
4803
- })]
4804
- });
4805
- });
4806
4894
  return /*#__PURE__*/React__default["default"].createElement("div", {
4807
4895
  className: "collection-editor"
4808
4896
  }, Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
@@ -4812,12 +4900,12 @@
4812
4900
  onChange: onChange,
4813
4901
  onReload: reload
4814
4902
  }) // : <DataTable {...table} editable={editable} />
4815
- : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4903
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$3, {
4816
4904
  icon: "info",
4817
4905
  title: label,
4818
4906
  data: value,
4819
4907
  schema: item,
4820
- groupBy: "field1",
4908
+ groupBy: groupBy,
4821
4909
  canDelete: true,
4822
4910
  remove: remove
4823
4911
  }), /*#__PURE__*/React__default["default"].createElement("footer", null, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
@@ -4832,9 +4920,9 @@
4832
4920
  * Collection Adder
4833
4921
  */
4834
4922
 
4835
- var CollectionAdder = function CollectionAdder(_ref11) {
4836
- var item = _ref11.item,
4837
- onAdd = _ref11.onAdd;
4923
+ var CollectionAdder = function CollectionAdder(_ref12) {
4924
+ var item = _ref12.item,
4925
+ onAdd = _ref12.onAdd;
4838
4926
 
4839
4927
  var _useState3 = React.useState(false),
4840
4928
  edit = _useState3[0],
@@ -4903,7 +4991,7 @@
4903
4991
  */
4904
4992
 
4905
4993
 
4906
- var TableEditor$2 = function TableEditor(props) {
4994
+ var TableEditor$3 = function TableEditor(props) {
4907
4995
  var select = function select(row) {
4908
4996
  try {
4909
4997
  if (onSelect) onSelect(row.id);
@@ -5247,7 +5335,7 @@
5247
5335
  * Collection Page
5248
5336
  */
5249
5337
 
5250
- function _catch$2(body, recover) {
5338
+ function _catch$3(body, recover) {
5251
5339
  try {
5252
5340
  var result = body();
5253
5341
  } catch (e) {
@@ -5824,7 +5912,7 @@
5824
5912
  try {
5825
5913
  var _this2 = this;
5826
5914
 
5827
- var _temp2 = _catch$2(function () {
5915
+ var _temp2 = _catch$3(function () {
5828
5916
  return Promise.resolve(API.all(null, page)).then(function (data) {
5829
5917
  _this2.all = field ? data[field] : data;
5830
5918
  });
@@ -5873,7 +5961,7 @@
5873
5961
  },
5874
5962
  fetch: function fetch(id) {
5875
5963
  try {
5876
- return Promise.resolve(_catch$2(function () {
5964
+ return Promise.resolve(_catch$3(function () {
5877
5965
  return Promise.resolve(API.find(id));
5878
5966
  }, function (error) {
5879
5967
  console.log(error);
@@ -5889,7 +5977,7 @@
5889
5977
  try {
5890
5978
  var _this8 = this;
5891
5979
 
5892
- var _temp6 = _catch$2(function () {
5980
+ var _temp6 = _catch$3(function () {
5893
5981
  return Promise.resolve(API.create(form)).then(function () {
5894
5982
  return Promise.resolve(_this8.load()).then(function () {});
5895
5983
  });
@@ -5906,7 +5994,7 @@
5906
5994
  try {
5907
5995
  var _this10 = this;
5908
5996
 
5909
- var _temp8 = _catch$2(function () {
5997
+ var _temp8 = _catch$3(function () {
5910
5998
  return Promise.resolve(API.update(form)).then(function () {
5911
5999
  return Promise.resolve(_this10.load()).then(function () {});
5912
6000
  });
@@ -5923,7 +6011,7 @@
5923
6011
  try {
5924
6012
  var _this12 = this;
5925
6013
 
5926
- var _temp10 = _catch$2(function () {
6014
+ var _temp10 = _catch$3(function () {
5927
6015
  return Promise.resolve(API.patch(id, form)).then(function () {
5928
6016
  return Promise.resolve(_this12.load()).then(function () {});
5929
6017
  });
@@ -5940,7 +6028,7 @@
5940
6028
  try {
5941
6029
  var _this14 = this;
5942
6030
 
5943
- var _temp12 = _catch$2(function () {
6031
+ var _temp12 = _catch$3(function () {
5944
6032
  return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
5945
6033
  return Promise.resolve(_this14.load()).then(function () {});
5946
6034
  });
@@ -5957,7 +6045,7 @@
5957
6045
  try {
5958
6046
  var _this16 = this;
5959
6047
 
5960
- var _temp14 = _catch$2(function () {
6048
+ var _temp14 = _catch$3(function () {
5961
6049
  return Promise.resolve(API.remove(id)).then(function () {
5962
6050
  return Promise.resolve(_this16.load()).then(function () {});
5963
6051
  });
@@ -6170,7 +6258,7 @@
6170
6258
  * Table Page
6171
6259
  */
6172
6260
 
6173
- function _catch$1(body, recover) {
6261
+ function _catch$2(body, recover) {
6174
6262
  try {
6175
6263
  var result = body();
6176
6264
  } catch (e) {
@@ -6297,7 +6385,7 @@
6297
6385
  pageContext = _useContext[0],
6298
6386
  setPageContext = _useContext[1];
6299
6387
 
6300
- var context = TableContext$1(url, field, host, urlQuery, params);
6388
+ var context = TableContext$2(url, field, host, urlQuery, params);
6301
6389
  var selected = pageContext.selected;
6302
6390
  var timer = React.useRef(null);
6303
6391
 
@@ -6397,13 +6485,13 @@
6397
6485
  if (rowSelected || rowChecked) {
6398
6486
  return /*#__PURE__*/React__default["default"].createElement("aside", {
6399
6487
  className: "table-page"
6400
- }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
6488
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$2, {
6401
6489
  content: new Content(schema, form),
6402
6490
  filter: editorFilter,
6403
6491
  onChange: change,
6404
6492
  onClose: closeAside,
6405
6493
  editable: canEdit
6406
- }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
6494
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$2, {
6407
6495
  schema: schema,
6408
6496
  actions: selectionActions
6409
6497
  }) : null);
@@ -6444,17 +6532,17 @@
6444
6532
  onSelect: playScenario
6445
6533
  })) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
6446
6534
  className: "table-page"
6447
- }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
6535
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$2, {
6448
6536
  schema: schema,
6449
6537
  url: url,
6450
6538
  user: user
6451
- }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
6539
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$2, {
6452
6540
  schema: schema,
6453
6541
  onSave: canQuery ? saveQuery : null
6454
6542
  }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
6455
6543
  key: id,
6456
6544
  className: "table-page"
6457
- }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
6545
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
6458
6546
  icon: icon,
6459
6547
  title: name,
6460
6548
  schema: schema,
@@ -6468,7 +6556,7 @@
6468
6556
  }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
6469
6557
  };
6470
6558
 
6471
- var TableRowEditor$1 = function TableRowEditor(props) {
6559
+ var TableRowEditor$2 = function TableRowEditor(props) {
6472
6560
  var name = props.name,
6473
6561
  content = props.content,
6474
6562
  filter = props.filter,
@@ -6497,7 +6585,7 @@
6497
6585
  */
6498
6586
 
6499
6587
 
6500
- var TableSelector$1 = function TableSelector(props) {
6588
+ var TableSelector$2 = function TableSelector(props) {
6501
6589
  var schema = props.schema,
6502
6590
  _props$actions2 = props.actions,
6503
6591
  actions = _props$actions2 === void 0 ? [] : _props$actions2;
@@ -6535,8 +6623,10 @@
6535
6623
  action: function action() {
6536
6624
  return _action(checked, pageContext, function () {
6537
6625
  try {
6538
- return Promise.resolve(pageContext.load()).then(function () {
6539
- setPageContext(Object.assign({}, pageContext));
6626
+ return Promise.resolve(pageContext.clearChecks()).then(function () {
6627
+ return Promise.resolve(pageContext.load()).then(function () {
6628
+ setPageContext(Object.assign({}, pageContext));
6629
+ });
6540
6630
  });
6541
6631
  } catch (e) {
6542
6632
  return Promise.reject(e);
@@ -6560,7 +6650,7 @@
6560
6650
  */
6561
6651
 
6562
6652
 
6563
- var TableQueries$1 = function TableQueries(props) {
6653
+ var TableQueries$2 = function TableQueries(props) {
6564
6654
  var remove = function remove(id) {
6565
6655
  try {
6566
6656
  return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
@@ -6622,7 +6712,7 @@
6622
6712
  */
6623
6713
 
6624
6714
 
6625
- var TableFilters$1 = function TableFilters(props) {
6715
+ var TableFilters$2 = function TableFilters(props) {
6626
6716
  var reload = function reload() {
6627
6717
  try {
6628
6718
  return Promise.resolve(pageContext.load(form)).then(function () {
@@ -6718,7 +6808,7 @@
6718
6808
  */
6719
6809
 
6720
6810
 
6721
- var TableEditor$1 = function TableEditor(props) {
6811
+ var TableEditor$2 = function TableEditor(props) {
6722
6812
  var checkOne = function checkOne(id, field, value) {
6723
6813
  check([id], value);
6724
6814
  return Promise.resolve();
@@ -6950,8 +7040,8 @@
6950
7040
  * Table Context
6951
7041
  */
6952
7042
 
6953
- var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
6954
- var API = TableAPI$1(url, host, params);
7043
+ var TableContext$2 = function TableContext(url, field, host, urlQuery, params) {
7044
+ var API = TableAPI$2(url, host, params);
6955
7045
  return {
6956
7046
  all: [],
6957
7047
  checked: new Set([]),
@@ -6962,7 +7052,7 @@
6962
7052
  try {
6963
7053
  var _this2 = this;
6964
7054
 
6965
- var _temp5 = _catch$1(function () {
7055
+ var _temp5 = _catch$2(function () {
6966
7056
  var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
6967
7057
  var field = filter[key];
6968
7058
 
@@ -7008,6 +7098,9 @@
7008
7098
  });
7009
7099
  }
7010
7100
  },
7101
+ clearChecks: function clearChecks() {
7102
+ this.checked = new Set([]);
7103
+ },
7011
7104
  select: function select(id) {
7012
7105
  var result = this.all.find(function (item) {
7013
7106
  return item.id === id;
@@ -7021,7 +7114,7 @@
7021
7114
  try {
7022
7115
  var _this5 = this;
7023
7116
 
7024
- var _temp7 = _catch$1(function () {
7117
+ var _temp7 = _catch$2(function () {
7025
7118
  return Promise.resolve(API.create(form)).then(function () {
7026
7119
  return Promise.resolve(_this5.load()).then(function () {});
7027
7120
  });
@@ -7038,7 +7131,7 @@
7038
7131
  try {
7039
7132
  var _this7 = this;
7040
7133
 
7041
- var _temp9 = _catch$1(function () {
7134
+ var _temp9 = _catch$2(function () {
7042
7135
  return Promise.resolve(API.update(form)).then(function () {
7043
7136
  return Promise.resolve(_this7.load()).then(function () {});
7044
7137
  });
@@ -7055,7 +7148,7 @@
7055
7148
  try {
7056
7149
  var _this9 = this;
7057
7150
 
7058
- var _temp11 = _catch$1(function () {
7151
+ var _temp11 = _catch$2(function () {
7059
7152
  return Promise.resolve(API.remove(id)).then(function () {
7060
7153
  return Promise.resolve(_this9.load()).then(function () {});
7061
7154
  });
@@ -7075,7 +7168,7 @@
7075
7168
  try {
7076
7169
  var _this11 = this;
7077
7170
 
7078
- var _temp13 = _catch$1(function () {
7171
+ var _temp13 = _catch$2(function () {
7079
7172
  return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
7080
7173
  _this11.queries = _API$queries;
7081
7174
  });
@@ -7092,7 +7185,7 @@
7092
7185
  try {
7093
7186
  var _this13 = this;
7094
7187
 
7095
- var _temp15 = _catch$1(function () {
7188
+ var _temp15 = _catch$2(function () {
7096
7189
  return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
7097
7190
  return Promise.resolve(_this13.loadQueries(user)).then(function () {});
7098
7191
  });
@@ -7109,7 +7202,7 @@
7109
7202
  try {
7110
7203
  var _this15 = this;
7111
7204
 
7112
- var _temp17 = _catch$1(function () {
7205
+ var _temp17 = _catch$2(function () {
7113
7206
  return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
7114
7207
  return Promise.resolve(_this15.loadQueries(user)).then(function () {});
7115
7208
  });
@@ -7129,6 +7222,1023 @@
7129
7222
  */
7130
7223
 
7131
7224
 
7225
+ var TableAPI$2 = function TableAPI(url, host, params) {
7226
+ if (params === void 0) {
7227
+ params = "";
7228
+ }
7229
+
7230
+ var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
7231
+ return {
7232
+ all: function all(filters) {
7233
+ var queryParams = "?" + params;
7234
+
7235
+ if (filters) {
7236
+ var filterQuery = Object.keys(filters).reduce(function (query, key) {
7237
+ var value = filters[key];
7238
+
7239
+ if (typeof value === 'boolean') {
7240
+ return query.concat(key + "=" + value + "&");
7241
+ } else if (Array.isArray(value)) {
7242
+ var param = value.length === 0 ? '' : value.reduce(function (param, item) {
7243
+ param = param.concat(key + "=" + item + "&");
7244
+ return param;
7245
+ }, "");
7246
+ return query.concat(param);
7247
+ } else {
7248
+ return query.concat(key + "=%" + filters[key] + "%&");
7249
+ }
7250
+ }, "");
7251
+ queryParams = queryParams.concat(filterQuery);
7252
+ }
7253
+
7254
+ return http.GET(url + queryParams);
7255
+ },
7256
+ find: function find(id) {
7257
+ return http.GET(url + "/" + id);
7258
+ },
7259
+ create: function create(form) {
7260
+ var body = JSON.stringify(form);
7261
+ return http.POST(url, body);
7262
+ },
7263
+ update: function update(form) {
7264
+ var body = JSON.stringify(form);
7265
+ return http.PUT(url + "/" + form.id, body);
7266
+ },
7267
+ remove: function remove(id) {
7268
+ return http.DELETE(url + "/" + id);
7269
+ },
7270
+ queries: function queries(user, url2) {
7271
+ var url3 = url2 ? url2 : url;
7272
+ url3 = url3 + "queries";
7273
+ if (user) url3 = url3 + ("?user=" + user);
7274
+ return http.GET(url3);
7275
+ },
7276
+ createQuery: function createQuery(form, url2) {
7277
+ var url3 = url2 ? url2 : url;
7278
+ var body = JSON.stringify(form);
7279
+ return http.POST(url3 + "queries", body);
7280
+ },
7281
+ removeQuery: function removeQuery(id, url2) {
7282
+ var url3 = url2 ? url2 : url;
7283
+ return http.DELETE(url3 + "queries/" + id);
7284
+ }
7285
+ };
7286
+ };
7287
+
7288
+ /**
7289
+ * Table Page
7290
+ */
7291
+
7292
+ function _catch$1(body, recover) {
7293
+ try {
7294
+ var result = body();
7295
+ } catch (e) {
7296
+ return recover(e);
7297
+ }
7298
+
7299
+ if (result && result.then) {
7300
+ return result.then(void 0, recover);
7301
+ }
7302
+
7303
+ return result;
7304
+ }
7305
+ /**
7306
+ * TableRowEditor
7307
+ */
7308
+
7309
+
7310
+ var TablePage2 = function TablePage2(props) {
7311
+ var save = function save() {
7312
+ try {
7313
+ return Promise.resolve(pageContext.update(form)).then(function () {
7314
+ setPageContext(Object.assign({}, pageContext));
7315
+ });
7316
+ } catch (e) {
7317
+ return Promise.reject(e);
7318
+ }
7319
+ };
7320
+
7321
+ var reload = function reload() {
7322
+ try {
7323
+ return Promise.resolve(pageContext.load()).then(function () {
7324
+ setPageContext(Object.assign({}, pageContext));
7325
+ });
7326
+ } catch (e) {
7327
+ return Promise.reject(e);
7328
+ }
7329
+ };
7330
+
7331
+ var site = React.useContext(SiteContext);
7332
+ var _props$id = props.id,
7333
+ id = _props$id === void 0 ? "table" : _props$id,
7334
+ icon = props.icon,
7335
+ title = props.title,
7336
+ name = props.name,
7337
+ schema = props.schema,
7338
+ url = props.url,
7339
+ field = props.field,
7340
+ host = props.host,
7341
+ _props$params = props.params,
7342
+ params = _props$params === void 0 ? "" : _props$params,
7343
+ _props$canQuery = props.canQuery,
7344
+ canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
7345
+ urlQuery = props.urlQuery,
7346
+ user = props.user,
7347
+ editable = props.editable,
7348
+ _props$autosave = props.autosave,
7349
+ autosave = _props$autosave === void 0 ? true : _props$autosave,
7350
+ _props$delay = props.delay,
7351
+ delay = _props$delay === void 0 ? 1000 : _props$delay,
7352
+ _props$actions = props.actions,
7353
+ actions = _props$actions === void 0 ? [] : _props$actions,
7354
+ tableActions = props.tableActions,
7355
+ _props$selectionActio = props.selectionActions,
7356
+ selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
7357
+ _props$canFilter = props.canFilter,
7358
+ canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
7359
+ _props$canAdd = props.canAdd,
7360
+ canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
7361
+ _props$canDelete = props.canDelete,
7362
+ canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
7363
+ _props$canEdit = props.canEdit,
7364
+ canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
7365
+ groupBy = props.groupBy,
7366
+ validator = props.validator,
7367
+ formFilter = props.formFilter,
7368
+ tableFilter = props.tableFilter,
7369
+ _props$editorFilter = props.editorFilter,
7370
+ editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
7371
+ tabbedBy = props.tabbedBy,
7372
+ tableClassName = props.tableClassName,
7373
+ children = props.children;
7374
+
7375
+ var _useContext = React.useContext(PageContext),
7376
+ setPageContext = _useContext[1];
7377
+
7378
+ var context = TableContext$1(url, field, host, urlQuery, params);
7379
+ var _pageContext = pageContext,
7380
+ selected = _pageContext.selected;
7381
+ var timer = React.useRef(null);
7382
+
7383
+ var _useState = React.useState(selected),
7384
+ form = _useState[0],
7385
+ setForm = _useState[1];
7386
+
7387
+ React.useEffect(function () {
7388
+ try {
7389
+ return Promise.resolve(context.load()).then(function () {
7390
+ function _temp2() {
7391
+ setPageContext(context);
7392
+ }
7393
+
7394
+ var _temp = function () {
7395
+ if (canQuery) return Promise.resolve(context.loadQueries(user)).then(function () {});
7396
+ }();
7397
+
7398
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
7399
+ });
7400
+ } catch (e) {
7401
+ return Promise.reject(e);
7402
+ }
7403
+ }, []);
7404
+ React.useEffect(function () {
7405
+ setForm(selected);
7406
+ }, [selected]);
7407
+ React.useEffect(function () {
7408
+ if (autosave) {
7409
+ clearTimeout(timer.current);
7410
+ timer.current = setTimeout(function () {
7411
+ if (canSave()) save();
7412
+ }, delay);
7413
+ }
7414
+ }, [form]);
7415
+
7416
+ function add() {
7417
+ var onOK = function onOK(form) {
7418
+ try {
7419
+ return Promise.resolve(pageContext.create(form)).then(function () {
7420
+ setPageContext(Object.assign({}, pageContext));
7421
+ });
7422
+ } catch (e) {
7423
+ return Promise.reject(e);
7424
+ }
7425
+ };
7426
+
7427
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7428
+ label: "Crear " + name,
7429
+ type: schema,
7430
+ onOK: onOK,
7431
+ validator: validator,
7432
+ filter: formFilter
7433
+ }));
7434
+ }
7435
+
7436
+ function saveQuery(filters) {
7437
+ var onOK = function onOK(form) {
7438
+ try {
7439
+ form.filters = filters;
7440
+ form.layout = {};
7441
+ form.user = user;
7442
+ form.url = url;
7443
+ return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
7444
+ setPageContext(Object.assign({}, pageContext));
7445
+ });
7446
+ } catch (e) {
7447
+ return Promise.reject(e);
7448
+ }
7449
+ };
7450
+
7451
+ site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
7452
+ label: "Nueva query",
7453
+ type: QUERY,
7454
+ onOK: onOK
7455
+ }));
7456
+ }
7457
+
7458
+ function change(next) {
7459
+ setForm(next);
7460
+ }
7461
+
7462
+ function canSave() {
7463
+ var can = !equal__default["default"](form, selected);
7464
+ return can;
7465
+ }
7466
+
7467
+ function closeAside() {
7468
+ pageContext.select(null);
7469
+ setPageContext(Object.assign({}, pageContext));
7470
+ }
7471
+
7472
+ function renderAside() {
7473
+ var rowSelected = selected && form;
7474
+ var rowChecked = pageContext.checked && pageContext.checked.size > 0;
7475
+
7476
+ if (rowSelected || rowChecked) {
7477
+ return /*#__PURE__*/React__default["default"].createElement("aside", {
7478
+ className: "table-page"
7479
+ }, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
7480
+ content: new Content(schema, form),
7481
+ filter: editorFilter,
7482
+ onChange: change,
7483
+ onClose: closeAside,
7484
+ editable: canEdit
7485
+ }) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
7486
+ schema: schema,
7487
+ actions: selectionActions
7488
+ }) : null);
7489
+ }
7490
+
7491
+ return null;
7492
+ }
7493
+
7494
+ function renderActions() {
7495
+ return actions.map(function (element) {
7496
+ var action = function action() {
7497
+ return element.props.action(pageContext);
7498
+ };
7499
+
7500
+ var clone = React__default["default"].cloneElement(element, {
7501
+ action: action
7502
+ });
7503
+ return clone;
7504
+ });
7505
+ }
7506
+
7507
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7508
+ className: "table-page",
7509
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7510
+ }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7511
+ icon: "add",
7512
+ label: "A\xF1adir",
7513
+ action: add,
7514
+ raised: true
7515
+ }) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
7516
+ icon: "refresh",
7517
+ label: "Reload",
7518
+ action: reload
7519
+ }), renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
7520
+ className: "table-page"
7521
+ }, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
7522
+ schema: schema,
7523
+ url: url,
7524
+ user: user
7525
+ }) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
7526
+ schema: schema,
7527
+ onSave: canQuery ? saveQuery : null
7528
+ }) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
7529
+ key: id,
7530
+ className: "table-page"
7531
+ }, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
7532
+ icon: icon,
7533
+ title: name,
7534
+ schema: schema,
7535
+ delay: delay,
7536
+ editable: editable,
7537
+ tabbedBy: tabbedBy,
7538
+ groupBy: groupBy,
7539
+ filter: tableFilter,
7540
+ actions: tableActions,
7541
+ canDelete: canDelete,
7542
+ className: tableClassName
7543
+ }), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
7544
+ };
7545
+
7546
+ var TableRowEditor$1 = function TableRowEditor(props) {
7547
+ var name = props.name,
7548
+ content = props.content,
7549
+ filter = props.filter,
7550
+ editable = props.editable,
7551
+ onChange = props.onChange,
7552
+ onClose = props.onClose;
7553
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7554
+ className: "table-row-editor"
7555
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7556
+ icon: "local_offer",
7557
+ title: name || "Propiedades"
7558
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7559
+ icon: "close",
7560
+ clickable: true,
7561
+ action: onClose
7562
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7563
+ content: content,
7564
+ onChange: onChange,
7565
+ filter: filter
7566
+ }) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
7567
+ content: content
7568
+ })));
7569
+ };
7570
+ /**
7571
+ * Table Selector
7572
+ */
7573
+
7574
+
7575
+ var TableSelector$1 = function TableSelector(props) {
7576
+ var schema = props.schema,
7577
+ _props$actions2 = props.actions,
7578
+ actions = _props$actions2 === void 0 ? [] : _props$actions2;
7579
+
7580
+ var _useContext2 = React.useContext(PageContext),
7581
+ pageContext = _useContext2[0],
7582
+ setPageContext = _useContext2[1];
7583
+
7584
+ var all = pageContext.all,
7585
+ checked = pageContext.checked;
7586
+ var count = checked.size + "/" + all.length;
7587
+ var columns = Object.keys(schema).filter(function (key) {
7588
+ return schema[key].selectorColumn === true;
7589
+ }).map(function (key) {
7590
+ var field = schema[key];
7591
+ return {
7592
+ id: field.id,
7593
+ label: field.label
7594
+ };
7595
+ });
7596
+ var rows = all.filter(function (item) {
7597
+ return checked.has(item.id);
7598
+ });
7599
+ var table = {
7600
+ columns: columns,
7601
+ rows: rows || []
7602
+ };
7603
+ var buttons = actions.map(function (_ref) {
7604
+ var label = _ref.label,
7605
+ _action = _ref.action,
7606
+ validate = _ref.validate;
7607
+ return /*#__PURE__*/React__default["default"].createElement(Button, {
7608
+ label: label,
7609
+ raised: true,
7610
+ action: function action() {
7611
+ return _action(checked, pageContext, function () {
7612
+ try {
7613
+ return Promise.resolve(pageContext.load()).then(function () {
7614
+ setPageContext(Object.assign({}, pageContext));
7615
+ });
7616
+ } catch (e) {
7617
+ return Promise.reject(e);
7618
+ }
7619
+ }, rows);
7620
+ },
7621
+ disabled: !validate(checked, rows)
7622
+ });
7623
+ });
7624
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7625
+ className: "table-selector"
7626
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
7627
+ icon: "checklist_rtl",
7628
+ title: "Selecci\xF3n"
7629
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
7630
+ className: "size"
7631
+ }, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
7632
+ };
7633
+ /**
7634
+ * Table Queries
7635
+ */
7636
+
7637
+
7638
+ var TableQueries$1 = function TableQueries(props) {
7639
+ var remove = function remove(id) {
7640
+ try {
7641
+ return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
7642
+ setPageContext(Object.assign({}, pageContext));
7643
+ });
7644
+ } catch (e) {
7645
+ return Promise.reject(e);
7646
+ }
7647
+ };
7648
+
7649
+ var _useContext3 = React.useContext(PageContext),
7650
+ pageContext = _useContext3[0],
7651
+ setPageContext = _useContext3[1];
7652
+
7653
+ var url = props.url,
7654
+ user = props.user;
7655
+ var _pageContext$queries = pageContext.queries,
7656
+ queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
7657
+
7658
+ var _useState2 = React.useState(),
7659
+ selected = _useState2[0],
7660
+ setSelected = _useState2[1];
7661
+
7662
+ function select(query) {
7663
+ setSelected(query.id);
7664
+ pageContext.changeFilters(query.filters);
7665
+ setPageContext(Object.assign({}, pageContext));
7666
+ }
7667
+
7668
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7669
+ className: "table-queries",
7670
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
7671
+ }), /*#__PURE__*/React__default["default"].createElement("main", {
7672
+ className: "table-queries"
7673
+ }, queries ? queries.filter(function (query) {
7674
+ return query.url === url;
7675
+ }).map(function (query) {
7676
+ var style = selected === query.id ? "selected" : "";
7677
+ return /*#__PURE__*/React__default["default"].createElement("div", {
7678
+ className: "table-queries-item " + style,
7679
+ onClick: function onClick() {
7680
+ return select(query);
7681
+ }
7682
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7683
+ icon: "star",
7684
+ size: "small"
7685
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
7686
+ icon: "close",
7687
+ clickable: true,
7688
+ size: "small",
7689
+ action: function action() {
7690
+ return remove(query.id);
7691
+ }
7692
+ }));
7693
+ }) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
7694
+ };
7695
+ /**
7696
+ * Table Filters
7697
+ */
7698
+
7699
+
7700
+ var TableFilters$1 = function TableFilters(props) {
7701
+ var reload = function reload() {
7702
+ try {
7703
+ return Promise.resolve(pageContext.load(form)).then(function () {
7704
+ setPageContext(Object.assign({}, pageContext));
7705
+ });
7706
+ } catch (e) {
7707
+ return Promise.reject(e);
7708
+ }
7709
+ };
7710
+
7711
+ var change = function change(next) {
7712
+ try {
7713
+ setForm(next);
7714
+ return Promise.resolve();
7715
+ } catch (e) {
7716
+ return Promise.reject(e);
7717
+ }
7718
+ };
7719
+
7720
+ var _useContext4 = React.useContext(PageContext),
7721
+ pageContext = _useContext4[0],
7722
+ setPageContext = _useContext4[1];
7723
+
7724
+ var filters = pageContext.filters;
7725
+ var schema = props.schema,
7726
+ onSave = props.onSave;
7727
+
7728
+ var _useState3 = React.useState({}),
7729
+ form = _useState3[0],
7730
+ setForm = _useState3[1];
7731
+
7732
+ var filterSchema = React.useMemo(function () {
7733
+ var filterSchema = Object.assign({}, schema);
7734
+
7735
+ for (var key in filterSchema) {
7736
+ if (filterSchema[key].filter === false) {
7737
+ delete filterSchema[key];
7738
+ } else {
7739
+ if (filterSchema[key].type === TYPES.ENTITY) {
7740
+ var fs = filterSchema[key].item;
7741
+
7742
+ for (var key in fs) {
7743
+ if (fs[key].filter === false) delete fs[key];
7744
+ }
7745
+ }
7746
+ }
7747
+ } //Object.values(filterSchema).forEach(field => field.section = null)
7748
+
7749
+
7750
+ delete filterSchema.flows;
7751
+ return filterSchema;
7752
+ }, [schema]);
7753
+ React.useEffect(function () {
7754
+ if (filters) setForm(filters);
7755
+ }, [filters]);
7756
+ React.useEffect(function () {
7757
+ reload();
7758
+ }, [form]);
7759
+
7760
+ function clear() {
7761
+ change({});
7762
+ }
7763
+
7764
+ function save() {
7765
+ if (onSave) {
7766
+ onSave(form);
7767
+ }
7768
+ }
7769
+
7770
+ var content = new Content(filterSchema, form);
7771
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7772
+ className: "table-filters",
7773
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
7774
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7775
+ icon: "filter_list_off",
7776
+ size: "small",
7777
+ clickable: true,
7778
+ action: clear
7779
+ }), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7780
+ icon: "save",
7781
+ size: "small",
7782
+ clickable: true,
7783
+ action: save
7784
+ }) : null), /*#__PURE__*/React__default["default"].createElement("main", {
7785
+ className: "table-filters"
7786
+ }, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
7787
+ content: content,
7788
+ onChange: change
7789
+ })));
7790
+ };
7791
+ /**
7792
+ * Table Editor
7793
+ */
7794
+
7795
+
7796
+ var TableEditor$1 = function TableEditor(props) {
7797
+ var checkOne = function checkOne(id, field, value) {
7798
+ check([id], value);
7799
+ return Promise.resolve();
7800
+ };
7801
+
7802
+ var check = function check(ids, value) {
7803
+ try {
7804
+ pageContext.check(ids, value);
7805
+ setPageContext(Object.assign({}, pageContext));
7806
+ return Promise.resolve();
7807
+ } catch (e) {
7808
+ return Promise.reject(e);
7809
+ }
7810
+ };
7811
+
7812
+ var select = function select(row, event) {
7813
+ try {
7814
+ clear();
7815
+ return Promise.resolve(pageContext.select(row.id)).then(function () {
7816
+ setPageContext(Object.assign({}, pageContext));
7817
+ });
7818
+ } catch (e) {
7819
+ return Promise.reject(e);
7820
+ }
7821
+ };
7822
+
7823
+ var remove = function remove(id) {
7824
+ try {
7825
+ return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
7826
+ var _temp5 = function () {
7827
+ if (confirm) {
7828
+ return Promise.resolve(pageContext.remove(id)).then(function () {
7829
+ pageContext.clear();
7830
+ setPageContext(Object.assign({}, pageContext));
7831
+ });
7832
+ }
7833
+ }();
7834
+
7835
+ if (_temp5 && _temp5.then) return _temp5.then(function () {});
7836
+ });
7837
+ } catch (e) {
7838
+ return Promise.reject(e);
7839
+ }
7840
+ };
7841
+
7842
+ var site = React.useContext(SiteContext);
7843
+
7844
+ var _useContext5 = React.useContext(PageContext),
7845
+ pageContext = _useContext5[0],
7846
+ setPageContext = _useContext5[1];
7847
+
7848
+ var _pageContext$all = pageContext.all,
7849
+ all = _pageContext$all === void 0 ? [] : _pageContext$all;
7850
+ var icon = props.icon,
7851
+ title = props.title,
7852
+ schema = props.schema,
7853
+ editable = props.editable,
7854
+ canDelete = props.canDelete,
7855
+ filter = props.filter,
7856
+ actions = props.actions,
7857
+ className = props.className;
7858
+
7859
+ var _useState4 = React.useState(props.groupBy),
7860
+ groupBy = _useState4[0],
7861
+ setGroupBy = _useState4[1];
7862
+
7863
+ var _useState5 = React.useState(0),
7864
+ tab = _useState5[0];
7865
+
7866
+ React.useEffect(function () {
7867
+ try {
7868
+ var _temp4 = function () {
7869
+ if (tab) {
7870
+ var _filter2;
7871
+
7872
+ var _filter = (_filter2 = {}, _filter2[tab.field] = tab.value, _filter2);
7873
+
7874
+ return Promise.resolve(pageContext.load(_filter, [])).then(function () {
7875
+ setPageContext(Object.assign({}, pageContext));
7876
+ });
7877
+ }
7878
+ }();
7879
+
7880
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
7881
+ } catch (e) {
7882
+ return Promise.reject(e);
7883
+ }
7884
+ }, [tab]);
7885
+
7886
+ function changeGroup(id, value) {
7887
+ setGroupBy(value);
7888
+ }
7889
+
7890
+ function change(rowID, cellID, value) {
7891
+ var _Object$assign;
7892
+
7893
+ var row = all.find(function (r) {
7894
+ return r.id === rowID;
7895
+ });
7896
+ var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
7897
+ delete next.actions;
7898
+ pageContext.update(next);
7899
+ setPageContext(Object.assign({}, pageContext));
7900
+ }
7901
+
7902
+ function clear() {
7903
+ pageContext.clear();
7904
+ setPageContext(Object.assign({}, pageContext));
7905
+ }
7906
+
7907
+ function run(action, item) {
7908
+ action.action(item.id, pageContext, function () {
7909
+ try {
7910
+ return Promise.resolve(pageContext.load()).then(function () {
7911
+ setPageContext(Object.assign({}, pageContext));
7912
+ });
7913
+ } catch (e) {
7914
+ return Promise.reject(e);
7915
+ }
7916
+ });
7917
+ }
7918
+
7919
+ function buildGroupOptions(schema) {
7920
+ return Object.values(schema).filter(function (field) {
7921
+ return field.grouper === true;
7922
+ }).map(function (field) {
7923
+ return {
7924
+ label: field.label,
7925
+ value: field.id
7926
+ };
7927
+ });
7928
+ }
7929
+
7930
+ function renderGroupLabel(groupName) {
7931
+ var grouper = schema[groupBy];
7932
+ if (!groupName || !grouper) return "";
7933
+
7934
+ if (grouper.options) {
7935
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
7936
+ var option = options.find(function (option) {
7937
+ return option.value === groupName;
7938
+ });
7939
+ return option ? option.label : groupName;
7940
+ } else {
7941
+ return groupName;
7942
+ }
7943
+ }
7944
+
7945
+ var tabField = Object.values(schema).find(function (field) {
7946
+ return field.tab === true;
7947
+ });
7948
+ var tabs = tabField ? tabField.options.map(function (option) {
7949
+ return Object.assign({}, option, {
7950
+ field: tabField.id
7951
+ });
7952
+ }) : [];
7953
+ var table = React.useMemo(function () {
7954
+ return {
7955
+ columns: Object.values(schema).filter(function (field) {
7956
+ return field.column === true;
7957
+ }).map(function (field) {
7958
+ var options = field.options;
7959
+
7960
+ if (options && typeof options == 'function') {
7961
+ options = options();
7962
+ }
7963
+
7964
+ return {
7965
+ id: field.id,
7966
+ label: field.label,
7967
+ type: field.type,
7968
+ format: field.format,
7969
+ item: field.item ? field.item : [],
7970
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
7971
+
7972
+ /* checked has it´s own handler */
7973
+ options: options
7974
+ };
7975
+ }),
7976
+ rows: []
7977
+ };
7978
+ }, [schema]);
7979
+ var items = filter ? filter(all) : all;
7980
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
7981
+ className: "empty-message"
7982
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7983
+ icon: "search_off"
7984
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
7985
+ var groups = items.reduce(function (groups, item) {
7986
+ var groupName = item[groupBy];
7987
+ if (!groups[groupName]) groups[groupName] = [];
7988
+ groups[groupName].push(item);
7989
+ return groups;
7990
+ }, {});
7991
+ var sections = Object.keys(groups).map(function (groupName) {
7992
+ var rows = groups[groupName].map(function (item) {
7993
+ item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
7994
+ item.actions = actions ? actions.map(function (_action2) {
7995
+ return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
7996
+ icon: _action2.icon,
7997
+ clickable: true,
7998
+ size: "small",
7999
+ action: function action() {
8000
+ return run(_action2, item);
8001
+ }
8002
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
8003
+ icon: _action2.icon,
8004
+ clickable: true,
8005
+ size: "small",
8006
+ action: function action() {
8007
+ return run(_action2, item);
8008
+ }
8009
+ });
8010
+ }) : [];
8011
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
8012
+ icon: "delete",
8013
+ size: "small",
8014
+ clickable: true,
8015
+ action: function action() {
8016
+ return remove(item.id);
8017
+ }
8018
+ }));
8019
+ return item;
8020
+ });
8021
+ table.rows = rows;
8022
+ return {
8023
+ id: groupName,
8024
+ checked: false,
8025
+ title: renderGroupLabel(groupName),
8026
+ info: groups[groupName].length,
8027
+ open: true,
8028
+ children: /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
8029
+ onRowSelection: select,
8030
+ editable: editable,
8031
+ onCheckAll: check,
8032
+ className: className
8033
+ }))
8034
+ };
8035
+ });
8036
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8037
+ icon: icon,
8038
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
8039
+ }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
8040
+ id: "groupBy",
8041
+ label: "Agrupar Por",
8042
+ value: groupBy,
8043
+ options: buildGroupOptions(schema),
8044
+ onChange: changeGroup
8045
+ }) : null, tabbedBy ? /*#__PURE__*/React__default["default"].createElement(Tabs, {
8046
+ fillRight: true,
8047
+ fillLeft: false
8048
+ }, tabs.map(function (tab) {
8049
+ return /*#__PURE__*/React__default["default"].createElement(Tab, {
8050
+ id: tab.value,
8051
+ label: tab.label
8052
+ });
8053
+ })) : ''), /*#__PURE__*/React__default["default"].createElement("main", {
8054
+ className: "table-editor"
8055
+ }, /*#__PURE__*/React__default["default"].createElement(Accordion, {
8056
+ sections: sections
8057
+ })));
8058
+ };
8059
+ /**
8060
+ * Table Context
8061
+ */
8062
+
8063
+ var TableContext$1 = function TableContext(url, field, host, urlQuery, params) {
8064
+ var API = TableAPI$1(url, host, params);
8065
+ return {
8066
+ all: [],
8067
+ checked: new Set([]),
8068
+ selected: null,
8069
+ filters: {},
8070
+ queries: [],
8071
+ load: function load(filter) {
8072
+ try {
8073
+ var _this2 = this;
8074
+
8075
+ var _temp7 = _catch$1(function () {
8076
+ var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
8077
+ var field = filter[key];
8078
+
8079
+ if (field) {
8080
+ if (CHECK['isObject'](field)) {
8081
+ Object.keys(field).forEach(function (key2) {
8082
+ var subfield = field[key2];
8083
+ if (subfield) filters[key + "." + key2] = subfield;
8084
+ });
8085
+ } else {
8086
+ filters[key] = field;
8087
+ }
8088
+ }
8089
+
8090
+ return filters;
8091
+ }, {}) : [];
8092
+ return Promise.resolve(API.all(filters)).then(function (data) {
8093
+ _this2.all = field ? data[field] : data;
8094
+ });
8095
+ }, function (error) {
8096
+ console.log(error);
8097
+ });
8098
+
8099
+ return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
8100
+ } catch (e) {
8101
+ return Promise.reject(e);
8102
+ }
8103
+ },
8104
+ check: function check(ids, isChecked) {
8105
+ var _this3 = this;
8106
+
8107
+ if (isChecked === void 0) {
8108
+ isChecked = true;
8109
+ }
8110
+
8111
+ if (isChecked) {
8112
+ ids.forEach(function (id) {
8113
+ return _this3.checked.add(id);
8114
+ });
8115
+ } else {
8116
+ ids.forEach(function (id) {
8117
+ return _this3.checked["delete"](id);
8118
+ });
8119
+ }
8120
+ },
8121
+ select: function select(id) {
8122
+ var result = this.all.find(function (item) {
8123
+ return item.id === id;
8124
+ });
8125
+ this.selected = result;
8126
+ },
8127
+ clear: function clear() {
8128
+ this.selected = null;
8129
+ },
8130
+ create: function create(form) {
8131
+ try {
8132
+ var _this5 = this;
8133
+
8134
+ var _temp9 = _catch$1(function () {
8135
+ return Promise.resolve(API.create(form)).then(function () {
8136
+ return Promise.resolve(_this5.load()).then(function () {});
8137
+ });
8138
+ }, function (error) {
8139
+ console.log(error);
8140
+ });
8141
+
8142
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
8143
+ } catch (e) {
8144
+ return Promise.reject(e);
8145
+ }
8146
+ },
8147
+ update: function update(form) {
8148
+ try {
8149
+ var _this7 = this;
8150
+
8151
+ var _temp11 = _catch$1(function () {
8152
+ return Promise.resolve(API.update(form)).then(function () {
8153
+ return Promise.resolve(_this7.load()).then(function () {});
8154
+ });
8155
+ }, function (error) {
8156
+ console.log(error);
8157
+ });
8158
+
8159
+ return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
8160
+ } catch (e) {
8161
+ return Promise.reject(e);
8162
+ }
8163
+ },
8164
+ remove: function remove(id) {
8165
+ try {
8166
+ var _this9 = this;
8167
+
8168
+ var _temp13 = _catch$1(function () {
8169
+ return Promise.resolve(API.remove(id)).then(function () {
8170
+ return Promise.resolve(_this9.load()).then(function () {});
8171
+ });
8172
+ }, function (error) {
8173
+ console.log(error);
8174
+ });
8175
+
8176
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
8177
+ } catch (e) {
8178
+ return Promise.reject(e);
8179
+ }
8180
+ },
8181
+ changeFilters: function changeFilters(filters) {
8182
+ this.filters = filters;
8183
+ },
8184
+ loadQueries: function loadQueries(user) {
8185
+ try {
8186
+ var _this11 = this;
8187
+
8188
+ var _temp15 = _catch$1(function () {
8189
+ return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
8190
+ _this11.queries = _API$queries;
8191
+ });
8192
+ }, function (error) {
8193
+ console.log(error);
8194
+ });
8195
+
8196
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
8197
+ } catch (e) {
8198
+ return Promise.reject(e);
8199
+ }
8200
+ },
8201
+ createQuery: function createQuery(query, user) {
8202
+ try {
8203
+ var _this13 = this;
8204
+
8205
+ var _temp17 = _catch$1(function () {
8206
+ return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
8207
+ return Promise.resolve(_this13.loadQueries(user)).then(function () {});
8208
+ });
8209
+ }, function (error) {
8210
+ console.log(error);
8211
+ });
8212
+
8213
+ return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
8214
+ } catch (e) {
8215
+ return Promise.reject(e);
8216
+ }
8217
+ },
8218
+ removeQuery: function removeQuery(id, user) {
8219
+ try {
8220
+ var _this15 = this;
8221
+
8222
+ var _temp19 = _catch$1(function () {
8223
+ return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
8224
+ return Promise.resolve(_this15.loadQueries(user)).then(function () {});
8225
+ });
8226
+ }, function (error) {
8227
+ console.log(error);
8228
+ });
8229
+
8230
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(function () {}) : void 0);
8231
+ } catch (e) {
8232
+ return Promise.reject(e);
8233
+ }
8234
+ }
8235
+ };
8236
+ };
8237
+ /**
8238
+ * Table API
8239
+ */
8240
+
8241
+
7132
8242
  var TableAPI$1 = function TableAPI(url, host, params) {
7133
8243
  if (params === void 0) {
7134
8244
  params = "";
@@ -8294,6 +9404,7 @@
8294
9404
  return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
8295
9405
  };
8296
9406
 
9407
+ exports.Accordion = Accordion;
8297
9408
  exports.Avatar = Avatar;
8298
9409
  exports.Button = Button;
8299
9410
  exports.Calendar = Calendar;
@@ -8353,8 +9464,9 @@
8353
9464
  exports.TabbedContentEditor = TabbedContentEditor;
8354
9465
  exports.TabbedTablePage = TabbedTablePage;
8355
9466
  exports.TabbedView = TabbedView;
8356
- exports.TableEditor = TableEditor$1;
9467
+ exports.TableEditor = TableEditor$2;
8357
9468
  exports.TablePage = TablePage;
9469
+ exports.TablePage2 = TablePage2;
8358
9470
  exports.Tabs = Tabs;
8359
9471
  exports.Text = Text;
8360
9472
  exports.TextArea = TextArea;