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 +17 -1
- package/dist/index.cjs +178 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +66 -59
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +178 -21
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +178 -21
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/CollectionPage.css +1 -19
- package/src/domain/ContentEditor.css +47 -22
- package/src/domain/ContentEditor.js +147 -41
- package/src/domain/TablePage.js +1 -0
- package/src/site/site.test.js +12 -9
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
|
-
},
|
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).
|
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
|
-
|
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
|
-
},
|
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
|
-
}) :
|
4612
|
-
|
4613
|
-
|
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
|