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/db/db.json +19 -3
- package/dist/index.cjs +243 -42
- 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 +243 -42
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +243 -42
- 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 +48 -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],
|
@@ -5103,12 +5265,32 @@ var CollectionList = function CollectionList(props) {
|
|
5103
5265
|
var _pageContext$all = pageContext.all,
|
5104
5266
|
all = _pageContext$all === void 0 ? [] : _pageContext$all;
|
5105
5267
|
|
5268
|
+
var _useState2 = React.useState(),
|
5269
|
+
filter = _useState2[0],
|
5270
|
+
setFilter = _useState2[1];
|
5271
|
+
|
5106
5272
|
function clear() {
|
5107
5273
|
pageContext.clear();
|
5108
5274
|
setPageContext(Object.assign({}, pageContext));
|
5109
5275
|
}
|
5110
5276
|
|
5111
|
-
|
5277
|
+
function changeSearch(id, value) {
|
5278
|
+
setFilter(value);
|
5279
|
+
}
|
5280
|
+
|
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();
|
5293
|
+
var items2 = items.map(function (content) {
|
5112
5294
|
return {
|
5113
5295
|
id: content.id,
|
5114
5296
|
line1: content.name || content.centre || content.tag,
|
@@ -5116,12 +5298,20 @@ var CollectionList = function CollectionList(props) {
|
|
5116
5298
|
line2: content.description,
|
5117
5299
|
content: content
|
5118
5300
|
};
|
5119
|
-
})
|
5120
|
-
return /*#__PURE__*/React__default["default"].createElement(List, {
|
5121
|
-
items:
|
5301
|
+
});
|
5302
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(List, {
|
5303
|
+
items: items2,
|
5122
5304
|
onSelect: select,
|
5123
5305
|
groupBy: groupBy
|
5124
|
-
})
|
5306
|
+
})), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement("div", {
|
5307
|
+
className: "search-box"
|
5308
|
+
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5309
|
+
icon: "search",
|
5310
|
+
label: "Search",
|
5311
|
+
onChange: changeSearch,
|
5312
|
+
outlined: true,
|
5313
|
+
className: "search-box"
|
5314
|
+
}))));
|
5125
5315
|
};
|
5126
5316
|
/**
|
5127
5317
|
* Collection Tree
|
@@ -5145,7 +5335,9 @@ var CollectionTree = function CollectionTree(props) {
|
|
5145
5335
|
icon = _props$icon === void 0 ? "description" : _props$icon,
|
5146
5336
|
levels = props.levels,
|
5147
5337
|
onSelect = props.onSelect,
|
5148
|
-
sorter = props.sorter
|
5338
|
+
sorter = props.sorter,
|
5339
|
+
_props$searchBy2 = props.searchBy,
|
5340
|
+
searchBy = _props$searchBy2 === void 0 ? [] : _props$searchBy2;
|
5149
5341
|
|
5150
5342
|
var _useContext3 = React.useContext(PageContext),
|
5151
5343
|
pageContext = _useContext3[0],
|
@@ -5154,16 +5346,16 @@ var CollectionTree = function CollectionTree(props) {
|
|
5154
5346
|
var _pageContext$all2 = pageContext.all,
|
5155
5347
|
all = _pageContext$all2 === void 0 ? [] : _pageContext$all2;
|
5156
5348
|
|
5157
|
-
var
|
5158
|
-
filter =
|
5159
|
-
setFilter =
|
5349
|
+
var _useState3 = React.useState(),
|
5350
|
+
filter = _useState3[0],
|
5351
|
+
setFilter = _useState3[1];
|
5160
5352
|
|
5161
5353
|
function clear() {
|
5162
5354
|
pageContext.clear();
|
5163
5355
|
setPageContext(Object.assign({}, pageContext));
|
5164
5356
|
}
|
5165
5357
|
|
5166
|
-
function
|
5358
|
+
function changeSearch(id, value) {
|
5167
5359
|
setFilter(value);
|
5168
5360
|
}
|
5169
5361
|
|
@@ -5217,17 +5409,26 @@ var CollectionTree = function CollectionTree(props) {
|
|
5217
5409
|
});
|
5218
5410
|
}
|
5219
5411
|
|
5220
|
-
|
5221
|
-
|
5222
|
-
|
5223
|
-
|
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;
|
5224
5425
|
var nodes = generateNodes(levels, items2);
|
5225
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", {
|
5226
5427
|
className: "search-box"
|
5227
5428
|
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5228
5429
|
icon: "search",
|
5229
5430
|
label: "Search",
|
5230
|
-
onChange:
|
5431
|
+
onChange: changeSearch,
|
5231
5432
|
outlined: true,
|
5232
5433
|
className: "search-box"
|
5233
5434
|
}))));
|
@@ -5273,9 +5474,9 @@ var CollectionEditor = function CollectionEditor(props) {
|
|
5273
5474
|
delay = _props$delay2 === void 0 ? 1000 : _props$delay2;
|
5274
5475
|
var timer = React.useRef(null);
|
5275
5476
|
|
5276
|
-
var
|
5277
|
-
form =
|
5278
|
-
setForm =
|
5477
|
+
var _useState4 = React.useState(selected),
|
5478
|
+
form = _useState4[0],
|
5479
|
+
setForm = _useState4[1];
|
5279
5480
|
|
5280
5481
|
React.useEffect(function () {
|
5281
5482
|
setForm(selected);
|