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/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
|
-
},
|
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).
|
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
|
-
|
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
|
-
},
|
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
|
-
}) :
|
4607
|
-
|
4608
|
-
|
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
|
@@ -4919,6 +5076,7 @@
|
|
4919
5076
|
canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
|
4920
5077
|
_props$canAdd = props.canAdd,
|
4921
5078
|
canAdd = _props$canAdd === void 0 ? false : _props$canAdd,
|
5079
|
+
searchBy = props.searchBy,
|
4922
5080
|
_props$autosave = props.autosave,
|
4923
5081
|
autosave = _props$autosave === void 0 ? false : _props$autosave,
|
4924
5082
|
_props$delay = props.delay,
|
@@ -4996,10 +5154,12 @@
|
|
4996
5154
|
icon: icon,
|
4997
5155
|
levels: levels,
|
4998
5156
|
onSelect: onSelect,
|
4999
|
-
sorter: sorter
|
5157
|
+
sorter: sorter,
|
5158
|
+
searchBy: searchBy
|
5000
5159
|
}) : /*#__PURE__*/React__default["default"].createElement(CollectionList, {
|
5001
5160
|
groupBy: groupBy,
|
5002
|
-
onSelect: onSelect
|
5161
|
+
onSelect: onSelect,
|
5162
|
+
searchBy: searchBy
|
5003
5163
|
})), /*#__PURE__*/React__default["default"].createElement("main", {
|
5004
5164
|
key: id,
|
5005
5165
|
className: "collection-page " + className
|
@@ -5089,7 +5249,9 @@
|
|
5089
5249
|
};
|
5090
5250
|
|
5091
5251
|
var groupBy = props.groupBy,
|
5092
|
-
onSelect = props.onSelect
|
5252
|
+
onSelect = props.onSelect,
|
5253
|
+
_props$searchBy = props.searchBy,
|
5254
|
+
searchBy = _props$searchBy === void 0 ? [] : _props$searchBy;
|
5093
5255
|
|
5094
5256
|
var _useContext2 = React.useContext(PageContext),
|
5095
5257
|
pageContext = _useContext2[0],
|
@@ -5098,12 +5260,32 @@
|
|
5098
5260
|
var _pageContext$all = pageContext.all,
|
5099
5261
|
all = _pageContext$all === void 0 ? [] : _pageContext$all;
|
5100
5262
|
|
5263
|
+
var _useState2 = React.useState(),
|
5264
|
+
filter = _useState2[0],
|
5265
|
+
setFilter = _useState2[1];
|
5266
|
+
|
5101
5267
|
function clear() {
|
5102
5268
|
pageContext.clear();
|
5103
5269
|
setPageContext(Object.assign({}, pageContext));
|
5104
5270
|
}
|
5105
5271
|
|
5106
|
-
|
5272
|
+
function changeSearch(id, value) {
|
5273
|
+
setFilter(value);
|
5274
|
+
}
|
5275
|
+
|
5276
|
+
function search() {
|
5277
|
+
var items = filter ? all.filter(function (item) {
|
5278
|
+
var result = searchBy.some(function (fieldName) {
|
5279
|
+
var value = item[fieldName];
|
5280
|
+
return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
|
5281
|
+
});
|
5282
|
+
return result;
|
5283
|
+
}) : all;
|
5284
|
+
return items;
|
5285
|
+
}
|
5286
|
+
|
5287
|
+
var items = search();
|
5288
|
+
var items2 = items.map(function (content) {
|
5107
5289
|
return {
|
5108
5290
|
id: content.id,
|
5109
5291
|
line1: content.name || content.centre || content.tag,
|
@@ -5111,12 +5293,20 @@
|
|
5111
5293
|
line2: content.description,
|
5112
5294
|
content: content
|
5113
5295
|
};
|
5114
|
-
})
|
5115
|
-
return /*#__PURE__*/React__default["default"].createElement(List, {
|
5116
|
-
items:
|
5296
|
+
});
|
5297
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(List, {
|
5298
|
+
items: items2,
|
5117
5299
|
onSelect: select,
|
5118
5300
|
groupBy: groupBy
|
5119
|
-
})
|
5301
|
+
})), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement("div", {
|
5302
|
+
className: "search-box"
|
5303
|
+
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5304
|
+
icon: "search",
|
5305
|
+
label: "Search",
|
5306
|
+
onChange: changeSearch,
|
5307
|
+
outlined: true,
|
5308
|
+
className: "search-box"
|
5309
|
+
}))));
|
5120
5310
|
};
|
5121
5311
|
/**
|
5122
5312
|
* Collection Tree
|
@@ -5140,7 +5330,9 @@
|
|
5140
5330
|
icon = _props$icon === void 0 ? "description" : _props$icon,
|
5141
5331
|
levels = props.levels,
|
5142
5332
|
onSelect = props.onSelect,
|
5143
|
-
sorter = props.sorter
|
5333
|
+
sorter = props.sorter,
|
5334
|
+
_props$searchBy2 = props.searchBy,
|
5335
|
+
searchBy = _props$searchBy2 === void 0 ? [] : _props$searchBy2;
|
5144
5336
|
|
5145
5337
|
var _useContext3 = React.useContext(PageContext),
|
5146
5338
|
pageContext = _useContext3[0],
|
@@ -5149,16 +5341,16 @@
|
|
5149
5341
|
var _pageContext$all2 = pageContext.all,
|
5150
5342
|
all = _pageContext$all2 === void 0 ? [] : _pageContext$all2;
|
5151
5343
|
|
5152
|
-
var
|
5153
|
-
filter =
|
5154
|
-
setFilter =
|
5344
|
+
var _useState3 = React.useState(),
|
5345
|
+
filter = _useState3[0],
|
5346
|
+
setFilter = _useState3[1];
|
5155
5347
|
|
5156
5348
|
function clear() {
|
5157
5349
|
pageContext.clear();
|
5158
5350
|
setPageContext(Object.assign({}, pageContext));
|
5159
5351
|
}
|
5160
5352
|
|
5161
|
-
function
|
5353
|
+
function changeSearch(id, value) {
|
5162
5354
|
setFilter(value);
|
5163
5355
|
}
|
5164
5356
|
|
@@ -5212,17 +5404,26 @@
|
|
5212
5404
|
});
|
5213
5405
|
}
|
5214
5406
|
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5218
|
-
|
5407
|
+
function search() {
|
5408
|
+
var items = filter ? all.filter(function (item) {
|
5409
|
+
var result = searchBy.some(function (fieldName) {
|
5410
|
+
var value = item[fieldName];
|
5411
|
+
return value ? value.indexOf(filter.toUpperCase()) >= 0 : false;
|
5412
|
+
});
|
5413
|
+
return result;
|
5414
|
+
}) : all;
|
5415
|
+
return items;
|
5416
|
+
}
|
5417
|
+
|
5418
|
+
var items = search();
|
5419
|
+
var items2 = sorter ? sorter(items) : items;
|
5219
5420
|
var nodes = generateNodes(levels, items2);
|
5220
5421
|
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", {
|
5221
5422
|
className: "search-box"
|
5222
5423
|
}, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
5223
5424
|
icon: "search",
|
5224
5425
|
label: "Search",
|
5225
|
-
onChange:
|
5426
|
+
onChange: changeSearch,
|
5226
5427
|
outlined: true,
|
5227
5428
|
className: "search-box"
|
5228
5429
|
}))));
|
@@ -5268,9 +5469,9 @@
|
|
5268
5469
|
delay = _props$delay2 === void 0 ? 1000 : _props$delay2;
|
5269
5470
|
var timer = React.useRef(null);
|
5270
5471
|
|
5271
|
-
var
|
5272
|
-
form =
|
5273
|
-
setForm =
|
5472
|
+
var _useState4 = React.useState(selected),
|
5473
|
+
form = _useState4[0],
|
5474
|
+
setForm = _useState4[1];
|
5274
5475
|
|
5275
5476
|
React.useEffect(function () {
|
5276
5477
|
setForm(selected);
|