ywana-core8 0.0.536 → 0.0.539
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 +19 -3
- package/dist/index.cjs +218 -36
- 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 +218 -36
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +218 -36
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/CollectionPage.css +1 -19
- package/src/domain/CollectionPage.js +33 -11
- 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 -7
package/db/db.json
CHANGED
@@ -1,13 +1,29 @@
|
|
1
1
|
{
|
2
2
|
"references": [
|
3
3
|
{
|
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
|
+
],
|
4
19
|
"name": "111111",
|
5
20
|
"state": "NOT_CLASSIFIED",
|
6
|
-
"field1": "
|
21
|
+
"field1": "1111114444",
|
7
22
|
"field2": "111111",
|
8
23
|
"field4": "#ce1212",
|
9
|
-
"field5": {
|
10
|
-
|
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
|
@@ -4924,6 +5081,7 @@ var CollectionPage = function CollectionPage(props) {
|
|
4924
5081
|
canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
|
4925
5082
|
_props$canAdd = props.canAdd,
|
4926
5083
|
canAdd = _props$canAdd === void 0 ? false : _props$canAdd,
|
5084
|
+
searchBy = props.searchBy,
|
4927
5085
|
_props$autosave = props.autosave,
|
4928
5086
|
autosave = _props$autosave === void 0 ? false : _props$autosave,
|
4929
5087
|
_props$delay = props.delay,
|
@@ -5001,10 +5159,12 @@ var CollectionPage = function CollectionPage(props) {
|
|
5001
5159
|
icon: icon,
|
5002
5160
|
levels: levels,
|
5003
5161
|
onSelect: onSelect,
|
5004
|
-
sorter: sorter
|
5162
|
+
sorter: sorter,
|
5163
|
+
searchBy: searchBy
|
5005
5164
|
}) : /*#__PURE__*/React__default["default"].createElement(CollectionList, {
|
5006
5165
|
groupBy: groupBy,
|
5007
|
-
onSelect: onSelect
|
5166
|
+
onSelect: onSelect,
|
5167
|
+
searchBy: searchBy
|
5008
5168
|
})), /*#__PURE__*/React__default["default"].createElement("main", {
|
5009
5169
|
key: id,
|
5010
5170
|
className: "collection-page " + className
|
@@ -5094,7 +5254,9 @@ var CollectionList = function CollectionList(props) {
|
|
5094
5254
|
};
|
5095
5255
|
|
5096
5256
|
var groupBy = props.groupBy,
|
5097
|
-
onSelect = props.onSelect
|
5257
|
+
onSelect = props.onSelect,
|
5258
|
+
_props$searchBy = props.searchBy,
|
5259
|
+
searchBy = _props$searchBy === void 0 ? [] : _props$searchBy;
|
5098
5260
|
|
5099
5261
|
var _useContext2 = React.useContext(PageContext),
|
5100
5262
|
pageContext = _useContext2[0],
|
@@ -5112,13 +5274,22 @@ var CollectionList = function CollectionList(props) {
|
|
5112
5274
|
setPageContext(Object.assign({}, pageContext));
|
5113
5275
|
}
|
5114
5276
|
|
5115
|
-
function
|
5277
|
+
function changeSearch(id, value) {
|
5116
5278
|
setFilter(value);
|
5117
5279
|
}
|
5118
5280
|
|
5119
|
-
|
5120
|
-
|
5121
|
-
|
5281
|
+
function search() {
|
5282
|
+
var items = filter ? all.filter(function (item) {
|
5283
|
+
var result = searchBy.some(function (fieldName) {
|
5284
|
+
var value = item[fieldName];
|
5285
|
+
return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
|
5286
|
+
});
|
5287
|
+
return result;
|
5288
|
+
}) : all;
|
5289
|
+
return items;
|
5290
|
+
}
|
5291
|
+
|
5292
|
+
var items = search();
|
5122
5293
|
var items2 = items.map(function (content) {
|
5123
5294
|
return {
|
5124
5295
|
id: content.id,
|
@@ -5137,7 +5308,7 @@ var CollectionList = function CollectionList(props) {
|
|
5137
5308
|
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5138
5309
|
icon: "search",
|
5139
5310
|
label: "Search",
|
5140
|
-
onChange:
|
5311
|
+
onChange: changeSearch,
|
5141
5312
|
outlined: true,
|
5142
5313
|
className: "search-box"
|
5143
5314
|
}))));
|
@@ -5164,7 +5335,9 @@ var CollectionTree = function CollectionTree(props) {
|
|
5164
5335
|
icon = _props$icon === void 0 ? "description" : _props$icon,
|
5165
5336
|
levels = props.levels,
|
5166
5337
|
onSelect = props.onSelect,
|
5167
|
-
sorter = props.sorter
|
5338
|
+
sorter = props.sorter,
|
5339
|
+
_props$searchBy2 = props.searchBy,
|
5340
|
+
searchBy = _props$searchBy2 === void 0 ? [] : _props$searchBy2;
|
5168
5341
|
|
5169
5342
|
var _useContext3 = React.useContext(PageContext),
|
5170
5343
|
pageContext = _useContext3[0],
|
@@ -5182,7 +5355,7 @@ var CollectionTree = function CollectionTree(props) {
|
|
5182
5355
|
setPageContext(Object.assign({}, pageContext));
|
5183
5356
|
}
|
5184
5357
|
|
5185
|
-
function
|
5358
|
+
function changeSearch(id, value) {
|
5186
5359
|
setFilter(value);
|
5187
5360
|
}
|
5188
5361
|
|
@@ -5236,17 +5409,26 @@ var CollectionTree = function CollectionTree(props) {
|
|
5236
5409
|
});
|
5237
5410
|
}
|
5238
5411
|
|
5239
|
-
|
5240
|
-
|
5241
|
-
|
5242
|
-
|
5412
|
+
function search() {
|
5413
|
+
var items = filter ? all.filter(function (item) {
|
5414
|
+
var result = searchBy.some(function (fieldName) {
|
5415
|
+
var value = item[fieldName];
|
5416
|
+
return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
|
5417
|
+
});
|
5418
|
+
return result;
|
5419
|
+
}) : all;
|
5420
|
+
return items;
|
5421
|
+
}
|
5422
|
+
|
5423
|
+
var items = search();
|
5424
|
+
var items2 = sorter ? sorter(items) : items;
|
5243
5425
|
var nodes = generateNodes(levels, items2);
|
5244
5426
|
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", {
|
5245
5427
|
className: "search-box"
|
5246
5428
|
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5247
5429
|
icon: "search",
|
5248
5430
|
label: "Search",
|
5249
|
-
onChange:
|
5431
|
+
onChange: changeSearch,
|
5250
5432
|
outlined: true,
|
5251
5433
|
className: "search-box"
|
5252
5434
|
}))));
|