ywana-core8 0.0.535 → 0.0.538

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
@@ -4047,7 +4047,7 @@
4047
4047
  fields = section.fields;
4048
4048
  return /*#__PURE__*/React__default["default"].createElement("section", {
4049
4049
  key: title
4050
- }, /*#__PURE__*/React__default["default"].createElement("nav", null, "\xA0"), /*#__PURE__*/React__default["default"].createElement("main", null, grouped ? group(section).map(function (group) {
4050
+ }, grouped ? group(section).map(function (group) {
4051
4051
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, group.name.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
4052
4052
  className: "group-caption"
4053
4053
  }, group.name) : null, group.fields.filter(function (field) {
@@ -4073,7 +4073,7 @@
4073
4073
  onChange: change,
4074
4074
  content: content
4075
4075
  });
4076
- })));
4076
+ }));
4077
4077
  })));
4078
4078
  };
4079
4079
  /**
@@ -4536,9 +4536,7 @@
4536
4536
  Feeder = field.Feeder,
4537
4537
  Renderer = field.Renderer,
4538
4538
  _field$Adder = field.Adder,
4539
- Adder = _field$Adder === void 0 ? true : _field$Adder,
4540
- _field$editable3 = field.editable,
4541
- editable = _field$editable3 === void 0 ? true : _field$editable3;
4539
+ Adder = _field$Adder === void 0 ? true : _field$Adder;
4542
4540
 
4543
4541
  function add(rows) {
4544
4542
  if (onChange) {
@@ -4564,7 +4562,9 @@
4564
4562
  }
4565
4563
  }
4566
4564
 
4567
- var columns = Object.values(item).map(function (item) {
4565
+ var columns = Object.values(item).filter(function (field) {
4566
+ return field.column === true;
4567
+ }).map(function (item) {
4568
4568
  return _extends({}, item, {
4569
4569
  onChange: change
4570
4570
  });
@@ -4573,7 +4573,7 @@
4573
4573
  id: 'actions',
4574
4574
  label: 'Actions'
4575
4575
  });
4576
- var rows = value.map(function (item, index) {
4576
+ value.map(function (item, index) {
4577
4577
  return _extends({}, item, {
4578
4578
  id: index,
4579
4579
  actions: [/*#__PURE__*/React__default["default"].createElement(Icon, {
@@ -4586,26 +4586,23 @@
4586
4586
  })]
4587
4587
  });
4588
4588
  });
4589
- var table = {
4590
- columns: columns,
4591
- rows: rows
4592
- };
4593
4589
  return /*#__PURE__*/React__default["default"].createElement("div", {
4594
4590
  className: "collection-editor"
4595
- }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text, {
4596
- use: "caption"
4597
- }, label), /*#__PURE__*/React__default["default"].createElement("div", {
4598
- className: "actions"
4599
- }, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
4600
- onAdd: add
4601
- }) : null)), Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
4591
+ }, Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
4602
4592
  field: field,
4603
4593
  value: value,
4604
4594
  onRemove: remove,
4605
4595
  onChange: onChange
4606
- }) : /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
4607
- editable: editable
4608
- })), /*#__PURE__*/React__default["default"].createElement("footer", null, Adder ? /*#__PURE__*/React__default["default"].createElement(CollectionAdder, {
4596
+ }) // : <DataTable {...table} editable={editable} />
4597
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4598
+ icon: "info",
4599
+ title: label,
4600
+ data: value,
4601
+ schema: item,
4602
+ groupBy: "field1"
4603
+ }), /*#__PURE__*/React__default["default"].createElement("footer", null, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
4604
+ onAdd: add
4605
+ }) : null, Adder ? /*#__PURE__*/React__default["default"].createElement(CollectionAdder, {
4609
4606
  item: item,
4610
4607
  onAdd: add
4611
4608
  }) : null));
@@ -4680,6 +4677,166 @@
4680
4677
  action: toggle
4681
4678
  }));
4682
4679
  };
4680
+ /**
4681
+ * Table Editor
4682
+ */
4683
+
4684
+
4685
+ var TableEditor$2 = function TableEditor(props) {
4686
+ var select = function select(row) {
4687
+ try {
4688
+ if (onSelect) onSelect(row.id);
4689
+ return Promise.resolve();
4690
+ } catch (e) {
4691
+ return Promise.reject(e);
4692
+ }
4693
+ };
4694
+
4695
+ var _props$data = props.data,
4696
+ data = _props$data === void 0 ? [] : _props$data,
4697
+ icon = props.icon,
4698
+ title = props.title,
4699
+ schema = props.schema,
4700
+ editable = props.editable,
4701
+ canDelete = props.canDelete,
4702
+ filter = props.filter,
4703
+ actions = props.actions,
4704
+ className = props.className;
4705
+
4706
+ var _useState5 = React.useState(props.groupBy),
4707
+ groupBy = _useState5[0],
4708
+ setGroupBy = _useState5[1];
4709
+
4710
+ function changeGroup(id, value) {
4711
+ setGroupBy(value);
4712
+ }
4713
+
4714
+ function renderGroupLabel(groupName) {
4715
+ var grouper = schema[groupBy];
4716
+ if (!groupName || !grouper) return "";
4717
+
4718
+ if (grouper.options) {
4719
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
4720
+ var option = options.find(function (option) {
4721
+ return option.value === groupName;
4722
+ });
4723
+ return option ? option.label : groupName;
4724
+ } else {
4725
+ return groupName;
4726
+ }
4727
+ }
4728
+
4729
+ function renderGroups() {
4730
+ var items = filter ? filter(data) : data;
4731
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
4732
+ className: "empty-message"
4733
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4734
+ icon: "search_off"
4735
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
4736
+ var groups = items.reduce(function (groups, item) {
4737
+ var groupName = item[groupBy];
4738
+ var group = groups[groupName];
4739
+ if (!group) groups[groupName] = [];
4740
+ groups[groupName].push(item);
4741
+ return groups;
4742
+ }, {});
4743
+ return Object.keys(groups).map(function (groupName) {
4744
+ var table = {
4745
+ columns: Object.values(schema).filter(function (field) {
4746
+ return field.column === true;
4747
+ }).map(function (field) {
4748
+ var options = field.options;
4749
+
4750
+ if (options && typeof options == 'function') {
4751
+ options = options();
4752
+ }
4753
+
4754
+ return {
4755
+ id: field.id,
4756
+ label: field.label,
4757
+ type: field.type,
4758
+ format: field.format,
4759
+ item: field.item ? field.item : [],
4760
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
4761
+
4762
+ /* checked has it´s own handler */
4763
+ options: options
4764
+ };
4765
+ }),
4766
+ rows: groups[groupName].map(function (item) {
4767
+ item.actions = actions ? actions.map(function (_action) {
4768
+ return _action.filter ? _action.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
4769
+ icon: _action.icon,
4770
+ clickable: true,
4771
+ size: "small",
4772
+ action: function action() {
4773
+ return run(_action, item);
4774
+ }
4775
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
4776
+ icon: _action.icon,
4777
+ clickable: true,
4778
+ size: "small",
4779
+ action: function action() {
4780
+ return run(_action, item);
4781
+ }
4782
+ });
4783
+ }) : [];
4784
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
4785
+ icon: "delete",
4786
+ size: "small",
4787
+ clickable: true,
4788
+ action: function action() {
4789
+ return remove(item.id);
4790
+ }
4791
+ }));
4792
+ return item;
4793
+ })
4794
+ };
4795
+ table.columns.push({
4796
+ id: "actions"
4797
+ });
4798
+ var groupSize = groups[groupName].length;
4799
+ var title = /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement("span", {
4800
+ className: "size"
4801
+ }, groupSize), renderGroupLabel(groupName));
4802
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
4803
+ key: groupName
4804
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
4805
+ title: title
4806
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
4807
+ className: "size"
4808
+ }, groupSize)), /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
4809
+ onRowSelection: select,
4810
+ editable: editable,
4811
+ className: className
4812
+ })));
4813
+ });
4814
+ }
4815
+
4816
+ function buildGroupOptions(schema) {
4817
+ return Object.values(schema).filter(function (field) {
4818
+ return field.grouper === true;
4819
+ }).map(function (field) {
4820
+ return {
4821
+ label: field.label,
4822
+ value: field.id
4823
+ };
4824
+ });
4825
+ }
4826
+
4827
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
4828
+ icon: icon,
4829
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
4830
+ }, /*#__PURE__*/React__default["default"].createElement(DropDown, {
4831
+ id: "groupBy",
4832
+ label: "Agrupar Por",
4833
+ value: groupBy,
4834
+ options: buildGroupOptions(schema),
4835
+ onChange: changeGroup
4836
+ })), /*#__PURE__*/React__default["default"].createElement("main", {
4837
+ className: "table-editor"
4838
+ }, renderGroups()));
4839
+ };
4683
4840
 
4684
4841
  /**
4685
4842
  * Create Content Dialog
@@ -4919,6 +5076,7 @@
4919
5076
  canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
4920
5077
  _props$canAdd = props.canAdd,
4921
5078
  canAdd = _props$canAdd === void 0 ? false : _props$canAdd,
5079
+ searchBy = props.searchBy,
4922
5080
  _props$autosave = props.autosave,
4923
5081
  autosave = _props$autosave === void 0 ? false : _props$autosave,
4924
5082
  _props$delay = props.delay,
@@ -4996,10 +5154,12 @@
4996
5154
  icon: icon,
4997
5155
  levels: levels,
4998
5156
  onSelect: onSelect,
4999
- sorter: sorter
5157
+ sorter: sorter,
5158
+ searchBy: searchBy
5000
5159
  }) : /*#__PURE__*/React__default["default"].createElement(CollectionList, {
5001
5160
  groupBy: groupBy,
5002
- onSelect: onSelect
5161
+ onSelect: onSelect,
5162
+ searchBy: searchBy
5003
5163
  })), /*#__PURE__*/React__default["default"].createElement("main", {
5004
5164
  key: id,
5005
5165
  className: "collection-page " + className
@@ -5089,7 +5249,9 @@
5089
5249
  };
5090
5250
 
5091
5251
  var groupBy = props.groupBy,
5092
- onSelect = props.onSelect;
5252
+ onSelect = props.onSelect,
5253
+ _props$searchBy = props.searchBy,
5254
+ searchBy = _props$searchBy === void 0 ? [] : _props$searchBy;
5093
5255
 
5094
5256
  var _useContext2 = React.useContext(PageContext),
5095
5257
  pageContext = _useContext2[0],
@@ -5098,12 +5260,32 @@
5098
5260
  var _pageContext$all = pageContext.all,
5099
5261
  all = _pageContext$all === void 0 ? [] : _pageContext$all;
5100
5262
 
5263
+ var _useState2 = React.useState(),
5264
+ filter = _useState2[0],
5265
+ setFilter = _useState2[1];
5266
+
5101
5267
  function clear() {
5102
5268
  pageContext.clear();
5103
5269
  setPageContext(Object.assign({}, pageContext));
5104
5270
  }
5105
5271
 
5106
- var items = all ? all.map(function (content) {
5272
+ function changeSearch(id, value) {
5273
+ setFilter(value);
5274
+ }
5275
+
5276
+ function search() {
5277
+ var items = filter ? all.filter(function (item) {
5278
+ var result = searchBy.some(function (fieldName) {
5279
+ var value = item[fieldName];
5280
+ return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
5281
+ });
5282
+ return result;
5283
+ }) : all;
5284
+ return items;
5285
+ }
5286
+
5287
+ var items = search();
5288
+ var items2 = items.map(function (content) {
5107
5289
  return {
5108
5290
  id: content.id,
5109
5291
  line1: content.name || content.centre || content.tag,
@@ -5111,12 +5293,20 @@
5111
5293
  line2: content.description,
5112
5294
  content: content
5113
5295
  };
5114
- }) : [];
5115
- return /*#__PURE__*/React__default["default"].createElement(List, {
5116
- items: items,
5296
+ });
5297
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(List, {
5298
+ items: items2,
5117
5299
  onSelect: select,
5118
5300
  groupBy: groupBy
5119
- });
5301
+ })), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement("div", {
5302
+ className: "search-box"
5303
+ }, /*#__PURE__*/React__default["default"].createElement(TextField, {
5304
+ icon: "search",
5305
+ label: "Search",
5306
+ onChange: changeSearch,
5307
+ outlined: true,
5308
+ className: "search-box"
5309
+ }))));
5120
5310
  };
5121
5311
  /**
5122
5312
  * Collection Tree
@@ -5140,7 +5330,9 @@
5140
5330
  icon = _props$icon === void 0 ? "description" : _props$icon,
5141
5331
  levels = props.levels,
5142
5332
  onSelect = props.onSelect,
5143
- sorter = props.sorter;
5333
+ sorter = props.sorter,
5334
+ _props$searchBy2 = props.searchBy,
5335
+ searchBy = _props$searchBy2 === void 0 ? [] : _props$searchBy2;
5144
5336
 
5145
5337
  var _useContext3 = React.useContext(PageContext),
5146
5338
  pageContext = _useContext3[0],
@@ -5149,16 +5341,16 @@
5149
5341
  var _pageContext$all2 = pageContext.all,
5150
5342
  all = _pageContext$all2 === void 0 ? [] : _pageContext$all2;
5151
5343
 
5152
- var _useState2 = React.useState(),
5153
- filter = _useState2[0],
5154
- setFilter = _useState2[1];
5344
+ var _useState3 = React.useState(),
5345
+ filter = _useState3[0],
5346
+ setFilter = _useState3[1];
5155
5347
 
5156
5348
  function clear() {
5157
5349
  pageContext.clear();
5158
5350
  setPageContext(Object.assign({}, pageContext));
5159
5351
  }
5160
5352
 
5161
- function search(id, value) {
5353
+ function changeSearch(id, value) {
5162
5354
  setFilter(value);
5163
5355
  }
5164
5356
 
@@ -5212,17 +5404,26 @@
5212
5404
  });
5213
5405
  }
5214
5406
 
5215
- var items = sorter ? sorter(all) : all;
5216
- var items2 = filter ? items.filter(function (item) {
5217
- return item.name.toUpperCase().indexOf(filter.toUpperCase()) >= 0;
5218
- }) : items;
5407
+ function search() {
5408
+ var items = filter ? all.filter(function (item) {
5409
+ var result = searchBy.some(function (fieldName) {
5410
+ var value = item[fieldName];
5411
+ return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
5412
+ });
5413
+ return result;
5414
+ }) : all;
5415
+ return items;
5416
+ }
5417
+
5418
+ var items = search();
5419
+ var items2 = sorter ? sorter(items) : items;
5219
5420
  var nodes = generateNodes(levels, items2);
5220
5421
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Tree, null, renderNodes(nodes))), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement("div", {
5221
5422
  className: "search-box"
5222
5423
  }, /*#__PURE__*/React__default["default"].createElement(TextField, {
5223
5424
  icon: "search",
5224
5425
  label: "Search",
5225
- onChange: search,
5426
+ onChange: changeSearch,
5226
5427
  outlined: true,
5227
5428
  className: "search-box"
5228
5429
  }))));
@@ -5268,9 +5469,9 @@
5268
5469
  delay = _props$delay2 === void 0 ? 1000 : _props$delay2;
5269
5470
  var timer = React.useRef(null);
5270
5471
 
5271
- var _useState3 = React.useState(selected),
5272
- form = _useState3[0],
5273
- setForm = _useState3[1];
5472
+ var _useState4 = React.useState(selected),
5473
+ form = _useState4[0],
5474
+ setForm = _useState4[1];
5274
5475
 
5275
5476
  React.useEffect(function () {
5276
5477
  setForm(selected);