ywana-core8 0.0.537 → 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