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/db/db.json CHANGED
@@ -2,12 +2,28 @@
2
2
  "references": [
3
3
  {
4
4
  "id": 1,
5
+ "field6": [
6
+ {
7
+ "name": "aaa",
8
+ "field1": "aaa",
9
+ "field2": "aaa",
10
+ "field3": "aaa"
11
+ },
12
+ {
13
+ "name": "aaa",
14
+ "field1": "bbb",
15
+ "field2": "bbb",
16
+ "field3": "bbb"
17
+ }
18
+ ],
5
19
  "name": "111111",
6
20
  "state": "NOT_CLASSIFIED",
7
21
  "field1": "1111114444",
8
22
  "field2": "111111",
9
23
  "field4": "#ce1212",
10
- "field5": {}
24
+ "field5": {
25
+ "name": "xxx"
26
+ }
11
27
  },
12
28
  {
13
29
  "name": "2222",
package/dist/index.cjs CHANGED
@@ -4052,7 +4052,7 @@ var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4052
4052
  fields = section.fields;
4053
4053
  return /*#__PURE__*/React__default["default"].createElement("section", {
4054
4054
  key: title
4055
- }, /*#__PURE__*/React__default["default"].createElement("nav", null, "\xA0"), /*#__PURE__*/React__default["default"].createElement("main", null, grouped ? group(section).map(function (group) {
4055
+ }, grouped ? group(section).map(function (group) {
4056
4056
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, group.name.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
4057
4057
  className: "group-caption"
4058
4058
  }, group.name) : null, group.fields.filter(function (field) {
@@ -4078,7 +4078,7 @@ var TabbedContentEditor = function TabbedContentEditor(_ref2) {
4078
4078
  onChange: change,
4079
4079
  content: content
4080
4080
  });
4081
- })));
4081
+ }));
4082
4082
  })));
4083
4083
  };
4084
4084
  /**
@@ -4541,9 +4541,7 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4541
4541
  Feeder = field.Feeder,
4542
4542
  Renderer = field.Renderer,
4543
4543
  _field$Adder = field.Adder,
4544
- Adder = _field$Adder === void 0 ? true : _field$Adder,
4545
- _field$editable3 = field.editable,
4546
- editable = _field$editable3 === void 0 ? true : _field$editable3;
4544
+ Adder = _field$Adder === void 0 ? true : _field$Adder;
4547
4545
 
4548
4546
  function add(rows) {
4549
4547
  if (onChange) {
@@ -4569,7 +4567,9 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4569
4567
  }
4570
4568
  }
4571
4569
 
4572
- var columns = Object.values(item).map(function (item) {
4570
+ var columns = Object.values(item).filter(function (field) {
4571
+ return field.column === true;
4572
+ }).map(function (item) {
4573
4573
  return _extends({}, item, {
4574
4574
  onChange: change
4575
4575
  });
@@ -4578,7 +4578,7 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4578
4578
  id: 'actions',
4579
4579
  label: 'Actions'
4580
4580
  });
4581
- var rows = value.map(function (item, index) {
4581
+ value.map(function (item, index) {
4582
4582
  return _extends({}, item, {
4583
4583
  id: index,
4584
4584
  actions: [/*#__PURE__*/React__default["default"].createElement(Icon, {
@@ -4591,26 +4591,23 @@ var CollectionEditor$1 = function CollectionEditor(_ref10) {
4591
4591
  })]
4592
4592
  });
4593
4593
  });
4594
- var table = {
4595
- columns: columns,
4596
- rows: rows
4597
- };
4598
4594
  return /*#__PURE__*/React__default["default"].createElement("div", {
4599
4595
  className: "collection-editor"
4600
- }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text, {
4601
- use: "caption"
4602
- }, label), /*#__PURE__*/React__default["default"].createElement("div", {
4603
- className: "actions"
4604
- }, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
4605
- onAdd: add
4606
- }) : null)), Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
4596
+ }, Renderer ? /*#__PURE__*/React__default["default"].createElement(Renderer, {
4607
4597
  field: field,
4608
4598
  value: value,
4609
4599
  onRemove: remove,
4610
4600
  onChange: onChange
4611
- }) : /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
4612
- editable: editable
4613
- })), /*#__PURE__*/React__default["default"].createElement("footer", null, Adder ? /*#__PURE__*/React__default["default"].createElement(CollectionAdder, {
4601
+ }) // : <DataTable {...table} editable={editable} />
4602
+ : /*#__PURE__*/React__default["default"].createElement(TableEditor$2, {
4603
+ icon: "info",
4604
+ title: label,
4605
+ data: value,
4606
+ schema: item,
4607
+ groupBy: "field1"
4608
+ }), /*#__PURE__*/React__default["default"].createElement("footer", null, Feeder ? /*#__PURE__*/React__default["default"].createElement(Feeder, {
4609
+ onAdd: add
4610
+ }) : null, Adder ? /*#__PURE__*/React__default["default"].createElement(CollectionAdder, {
4614
4611
  item: item,
4615
4612
  onAdd: add
4616
4613
  }) : null));
@@ -4685,6 +4682,166 @@ var CollectionAdder = function CollectionAdder(_ref11) {
4685
4682
  action: toggle
4686
4683
  }));
4687
4684
  };
4685
+ /**
4686
+ * Table Editor
4687
+ */
4688
+
4689
+
4690
+ var TableEditor$2 = function TableEditor(props) {
4691
+ var select = function select(row) {
4692
+ try {
4693
+ if (onSelect) onSelect(row.id);
4694
+ return Promise.resolve();
4695
+ } catch (e) {
4696
+ return Promise.reject(e);
4697
+ }
4698
+ };
4699
+
4700
+ var _props$data = props.data,
4701
+ data = _props$data === void 0 ? [] : _props$data,
4702
+ icon = props.icon,
4703
+ title = props.title,
4704
+ schema = props.schema,
4705
+ editable = props.editable,
4706
+ canDelete = props.canDelete,
4707
+ filter = props.filter,
4708
+ actions = props.actions,
4709
+ className = props.className;
4710
+
4711
+ var _useState5 = React.useState(props.groupBy),
4712
+ groupBy = _useState5[0],
4713
+ setGroupBy = _useState5[1];
4714
+
4715
+ function changeGroup(id, value) {
4716
+ setGroupBy(value);
4717
+ }
4718
+
4719
+ function renderGroupLabel(groupName) {
4720
+ var grouper = schema[groupBy];
4721
+ if (!groupName || !grouper) return "";
4722
+
4723
+ if (grouper.options) {
4724
+ var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
4725
+ var option = options.find(function (option) {
4726
+ return option.value === groupName;
4727
+ });
4728
+ return option ? option.label : groupName;
4729
+ } else {
4730
+ return groupName;
4731
+ }
4732
+ }
4733
+
4734
+ function renderGroups() {
4735
+ var items = filter ? filter(data) : data;
4736
+ if (items.length === 0) return /*#__PURE__*/React__default["default"].createElement("div", {
4737
+ className: "empty-message"
4738
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4739
+ icon: "search_off"
4740
+ }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
4741
+ var groups = items.reduce(function (groups, item) {
4742
+ var groupName = item[groupBy];
4743
+ var group = groups[groupName];
4744
+ if (!group) groups[groupName] = [];
4745
+ groups[groupName].push(item);
4746
+ return groups;
4747
+ }, {});
4748
+ return Object.keys(groups).map(function (groupName) {
4749
+ var table = {
4750
+ columns: Object.values(schema).filter(function (field) {
4751
+ return field.column === true;
4752
+ }).map(function (field) {
4753
+ var options = field.options;
4754
+
4755
+ if (options && typeof options == 'function') {
4756
+ options = options();
4757
+ }
4758
+
4759
+ return {
4760
+ id: field.id,
4761
+ label: field.label,
4762
+ type: field.type,
4763
+ format: field.format,
4764
+ item: field.item ? field.item : [],
4765
+ onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
4766
+
4767
+ /* checked has it´s own handler */
4768
+ options: options
4769
+ };
4770
+ }),
4771
+ rows: groups[groupName].map(function (item) {
4772
+ item.actions = actions ? actions.map(function (_action) {
4773
+ return _action.filter ? _action.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
4774
+ icon: _action.icon,
4775
+ clickable: true,
4776
+ size: "small",
4777
+ action: function action() {
4778
+ return run(_action, item);
4779
+ }
4780
+ }) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
4781
+ icon: _action.icon,
4782
+ clickable: true,
4783
+ size: "small",
4784
+ action: function action() {
4785
+ return run(_action, item);
4786
+ }
4787
+ });
4788
+ }) : [];
4789
+ if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
4790
+ icon: "delete",
4791
+ size: "small",
4792
+ clickable: true,
4793
+ action: function action() {
4794
+ return remove(item.id);
4795
+ }
4796
+ }));
4797
+ return item;
4798
+ })
4799
+ };
4800
+ table.columns.push({
4801
+ id: "actions"
4802
+ });
4803
+ var groupSize = groups[groupName].length;
4804
+ var title = /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement("span", {
4805
+ className: "size"
4806
+ }, groupSize), renderGroupLabel(groupName));
4807
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
4808
+ key: groupName
4809
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
4810
+ title: title
4811
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
4812
+ className: "size"
4813
+ }, groupSize)), /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
4814
+ onRowSelection: select,
4815
+ editable: editable,
4816
+ className: className
4817
+ })));
4818
+ });
4819
+ }
4820
+
4821
+ function buildGroupOptions(schema) {
4822
+ return Object.values(schema).filter(function (field) {
4823
+ return field.grouper === true;
4824
+ }).map(function (field) {
4825
+ return {
4826
+ label: field.label,
4827
+ value: field.id
4828
+ };
4829
+ });
4830
+ }
4831
+
4832
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
4833
+ icon: icon,
4834
+ title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
4835
+ }, /*#__PURE__*/React__default["default"].createElement(DropDown, {
4836
+ id: "groupBy",
4837
+ label: "Agrupar Por",
4838
+ value: groupBy,
4839
+ options: buildGroupOptions(schema),
4840
+ onChange: changeGroup
4841
+ })), /*#__PURE__*/React__default["default"].createElement("main", {
4842
+ className: "table-editor"
4843
+ }, renderGroups()));
4844
+ };
4688
4845
 
4689
4846
  /**
4690
4847
  * Create Content Dialog