ywana-core8 0.0.470 → 0.0.473
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/dist/index.cjs +1125 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +1124 -32
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +1125 -32
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/ContentType.js +1 -0
- package/src/domain/TabbedTablePage.js +20 -11
- package/src/domain/index.js +1 -0
- package/src/site/site.test.js +2 -2
package/dist/index.umd.js
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
|
12
12
|
var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
|
13
13
|
|
14
|
-
function _catch$
|
14
|
+
function _catch$3(body, recover) {
|
15
15
|
try {
|
16
16
|
var result = body();
|
17
17
|
} catch (e) {
|
@@ -43,7 +43,7 @@
|
|
43
43
|
body: body
|
44
44
|
};
|
45
45
|
if (headers) request.headers = request.headers;
|
46
|
-
return Promise.resolve(_catch$
|
46
|
+
return Promise.resolve(_catch$3(function () {
|
47
47
|
return Promise.resolve(fetch(URL, request)).then(function (response) {
|
48
48
|
var _exit;
|
49
49
|
|
@@ -4649,7 +4649,7 @@
|
|
4649
4649
|
* Collection Page
|
4650
4650
|
*/
|
4651
4651
|
|
4652
|
-
function _catch$
|
4652
|
+
function _catch$2(body, recover) {
|
4653
4653
|
try {
|
4654
4654
|
var result = body();
|
4655
4655
|
} catch (e) {
|
@@ -5036,7 +5036,7 @@
|
|
5036
5036
|
try {
|
5037
5037
|
var _this2 = this;
|
5038
5038
|
|
5039
|
-
var _temp2 = _catch$
|
5039
|
+
var _temp2 = _catch$2(function () {
|
5040
5040
|
return Promise.resolve(API.all(null, page)).then(function (data) {
|
5041
5041
|
_this2.all = field ? data[field] : data;
|
5042
5042
|
});
|
@@ -5062,7 +5062,7 @@
|
|
5062
5062
|
try {
|
5063
5063
|
var _this4 = this;
|
5064
5064
|
|
5065
|
-
var _temp4 = _catch$
|
5065
|
+
var _temp4 = _catch$2(function () {
|
5066
5066
|
return Promise.resolve(API.create(form)).then(function () {
|
5067
5067
|
return Promise.resolve(_this4.load()).then(function () {});
|
5068
5068
|
});
|
@@ -5079,7 +5079,7 @@
|
|
5079
5079
|
try {
|
5080
5080
|
var _this6 = this;
|
5081
5081
|
|
5082
|
-
var _temp6 = _catch$
|
5082
|
+
var _temp6 = _catch$2(function () {
|
5083
5083
|
return Promise.resolve(API.update(form)).then(function () {
|
5084
5084
|
return Promise.resolve(_this6.load()).then(function () {});
|
5085
5085
|
});
|
@@ -5096,7 +5096,7 @@
|
|
5096
5096
|
try {
|
5097
5097
|
var _this8 = this;
|
5098
5098
|
|
5099
|
-
var _temp8 = _catch$
|
5099
|
+
var _temp8 = _catch$2(function () {
|
5100
5100
|
return Promise.resolve(API.patch(id, form)).then(function () {
|
5101
5101
|
return Promise.resolve(_this8.load()).then(function () {});
|
5102
5102
|
});
|
@@ -5113,7 +5113,7 @@
|
|
5113
5113
|
try {
|
5114
5114
|
var _this10 = this;
|
5115
5115
|
|
5116
|
-
var _temp10 = _catch$
|
5116
|
+
var _temp10 = _catch$2(function () {
|
5117
5117
|
return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
|
5118
5118
|
return Promise.resolve(_this10.load()).then(function () {});
|
5119
5119
|
});
|
@@ -5130,7 +5130,7 @@
|
|
5130
5130
|
try {
|
5131
5131
|
var _this12 = this;
|
5132
5132
|
|
5133
|
-
var _temp12 = _catch$
|
5133
|
+
var _temp12 = _catch$2(function () {
|
5134
5134
|
return Promise.resolve(API.remove(id)).then(function () {
|
5135
5135
|
return Promise.resolve(_this12.load()).then(function () {});
|
5136
5136
|
});
|
@@ -5342,7 +5342,7 @@
|
|
5342
5342
|
* Table Page
|
5343
5343
|
*/
|
5344
5344
|
|
5345
|
-
function _catch(body, recover) {
|
5345
|
+
function _catch$1(body, recover) {
|
5346
5346
|
try {
|
5347
5347
|
var result = body();
|
5348
5348
|
} catch (e) {
|
@@ -5467,7 +5467,7 @@
|
|
5467
5467
|
pageContext = _useContext[0],
|
5468
5468
|
setPageContext = _useContext[1];
|
5469
5469
|
|
5470
|
-
var context = TableContext(url, field, host, urlQuery);
|
5470
|
+
var context = TableContext$1(url, field, host, urlQuery);
|
5471
5471
|
var selected = pageContext.selected;
|
5472
5472
|
var timer = React.useRef(null);
|
5473
5473
|
|
@@ -5567,13 +5567,13 @@
|
|
5567
5567
|
if (rowSelected || rowChecked) {
|
5568
5568
|
return /*#__PURE__*/React__default["default"].createElement("aside", {
|
5569
5569
|
className: "table-page"
|
5570
|
-
}, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor, {
|
5570
|
+
}, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor$1, {
|
5571
5571
|
content: new Content(schema, form),
|
5572
5572
|
filter: editorFilter,
|
5573
5573
|
onChange: change,
|
5574
5574
|
onClose: closeAside,
|
5575
5575
|
editable: canEdit
|
5576
|
-
}) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector, {
|
5576
|
+
}) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector$1, {
|
5577
5577
|
schema: schema,
|
5578
5578
|
actions: selectionActions
|
5579
5579
|
}) : null);
|
@@ -5614,17 +5614,17 @@
|
|
5614
5614
|
onSelect: playScenario
|
5615
5615
|
})) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
|
5616
5616
|
className: "table-page"
|
5617
|
-
}, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries, {
|
5617
|
+
}, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries$1, {
|
5618
5618
|
schema: schema,
|
5619
5619
|
url: url,
|
5620
5620
|
user: user
|
5621
|
-
}) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters, {
|
5621
|
+
}) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters$1, {
|
5622
5622
|
schema: schema,
|
5623
5623
|
onSave: canQuery ? saveQuery : null
|
5624
5624
|
}) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
|
5625
5625
|
key: id,
|
5626
5626
|
className: "table-page"
|
5627
|
-
}, /*#__PURE__*/React__default["default"].createElement(TableEditor, {
|
5627
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableEditor$1, {
|
5628
5628
|
icon: icon,
|
5629
5629
|
title: name,
|
5630
5630
|
schema: schema,
|
@@ -5637,7 +5637,7 @@
|
|
5637
5637
|
}), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
|
5638
5638
|
};
|
5639
5639
|
|
5640
|
-
var TableRowEditor = function TableRowEditor(props) {
|
5640
|
+
var TableRowEditor$1 = function TableRowEditor(props) {
|
5641
5641
|
var name = props.name,
|
5642
5642
|
content = props.content,
|
5643
5643
|
filter = props.filter,
|
@@ -5666,7 +5666,7 @@
|
|
5666
5666
|
*/
|
5667
5667
|
|
5668
5668
|
|
5669
|
-
var TableSelector = function TableSelector(props) {
|
5669
|
+
var TableSelector$1 = function TableSelector(props) {
|
5670
5670
|
var schema = props.schema,
|
5671
5671
|
_props$actions2 = props.actions,
|
5672
5672
|
actions = _props$actions2 === void 0 ? [] : _props$actions2;
|
@@ -5729,7 +5729,7 @@
|
|
5729
5729
|
*/
|
5730
5730
|
|
5731
5731
|
|
5732
|
-
var TableQueries = function TableQueries(props) {
|
5732
|
+
var TableQueries$1 = function TableQueries(props) {
|
5733
5733
|
var remove = function remove(id) {
|
5734
5734
|
try {
|
5735
5735
|
return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
|
@@ -5791,7 +5791,7 @@
|
|
5791
5791
|
*/
|
5792
5792
|
|
5793
5793
|
|
5794
|
-
var TableFilters = function TableFilters(props) {
|
5794
|
+
var TableFilters$1 = function TableFilters(props) {
|
5795
5795
|
var reload = function reload() {
|
5796
5796
|
try {
|
5797
5797
|
return Promise.resolve(pageContext.load(form)).then(function () {
|
@@ -5887,7 +5887,7 @@
|
|
5887
5887
|
*/
|
5888
5888
|
|
5889
5889
|
|
5890
|
-
var TableEditor = function TableEditor(props) {
|
5890
|
+
var TableEditor$1 = function TableEditor(props) {
|
5891
5891
|
var checkOne = function checkOne(id, field, value) {
|
5892
5892
|
check([id], value);
|
5893
5893
|
return Promise.resolve();
|
@@ -6112,8 +6112,8 @@
|
|
6112
6112
|
* Table Context
|
6113
6113
|
*/
|
6114
6114
|
|
6115
|
-
var TableContext = function TableContext(url, field, host, urlQuery) {
|
6116
|
-
var API = TableAPI(url, host);
|
6115
|
+
var TableContext$1 = function TableContext(url, field, host, urlQuery) {
|
6116
|
+
var API = TableAPI$1(url, host);
|
6117
6117
|
return {
|
6118
6118
|
all: [],
|
6119
6119
|
checked: new Set([]),
|
@@ -6124,7 +6124,7 @@
|
|
6124
6124
|
try {
|
6125
6125
|
var _this2 = this;
|
6126
6126
|
|
6127
|
-
var _temp5 = _catch(function () {
|
6127
|
+
var _temp5 = _catch$1(function () {
|
6128
6128
|
var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
|
6129
6129
|
var field = filter[key];
|
6130
6130
|
|
@@ -6183,7 +6183,7 @@
|
|
6183
6183
|
try {
|
6184
6184
|
var _this5 = this;
|
6185
6185
|
|
6186
|
-
var _temp7 = _catch(function () {
|
6186
|
+
var _temp7 = _catch$1(function () {
|
6187
6187
|
return Promise.resolve(API.create(form)).then(function () {
|
6188
6188
|
return Promise.resolve(_this5.load()).then(function () {});
|
6189
6189
|
});
|
@@ -6200,7 +6200,7 @@
|
|
6200
6200
|
try {
|
6201
6201
|
var _this7 = this;
|
6202
6202
|
|
6203
|
-
var _temp9 = _catch(function () {
|
6203
|
+
var _temp9 = _catch$1(function () {
|
6204
6204
|
return Promise.resolve(API.update(form)).then(function () {
|
6205
6205
|
return Promise.resolve(_this7.load()).then(function () {});
|
6206
6206
|
});
|
@@ -6217,7 +6217,7 @@
|
|
6217
6217
|
try {
|
6218
6218
|
var _this9 = this;
|
6219
6219
|
|
6220
|
-
var _temp11 = _catch(function () {
|
6220
|
+
var _temp11 = _catch$1(function () {
|
6221
6221
|
return Promise.resolve(API.remove(id)).then(function () {
|
6222
6222
|
return Promise.resolve(_this9.load()).then(function () {});
|
6223
6223
|
});
|
@@ -6237,7 +6237,7 @@
|
|
6237
6237
|
try {
|
6238
6238
|
var _this11 = this;
|
6239
6239
|
|
6240
|
-
var _temp13 = _catch(function () {
|
6240
|
+
var _temp13 = _catch$1(function () {
|
6241
6241
|
return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
|
6242
6242
|
_this11.queries = _API$queries;
|
6243
6243
|
});
|
@@ -6254,7 +6254,7 @@
|
|
6254
6254
|
try {
|
6255
6255
|
var _this13 = this;
|
6256
6256
|
|
6257
|
-
var _temp15 = _catch(function () {
|
6257
|
+
var _temp15 = _catch$1(function () {
|
6258
6258
|
return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
|
6259
6259
|
return Promise.resolve(_this13.loadQueries(user)).then(function () {});
|
6260
6260
|
});
|
@@ -6271,7 +6271,7 @@
|
|
6271
6271
|
try {
|
6272
6272
|
var _this15 = this;
|
6273
6273
|
|
6274
|
-
var _temp17 = _catch(function () {
|
6274
|
+
var _temp17 = _catch$1(function () {
|
6275
6275
|
return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
|
6276
6276
|
return Promise.resolve(_this15.loadQueries(user)).then(function () {});
|
6277
6277
|
});
|
@@ -6291,7 +6291,7 @@
|
|
6291
6291
|
*/
|
6292
6292
|
|
6293
6293
|
|
6294
|
-
var TableAPI = function TableAPI(url, host) {
|
6294
|
+
var TableAPI$1 = function TableAPI(url, host) {
|
6295
6295
|
var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
|
6296
6296
|
return {
|
6297
6297
|
all: function all(filters) {
|
@@ -6350,6 +6350,1098 @@
|
|
6350
6350
|
};
|
6351
6351
|
};
|
6352
6352
|
|
6353
|
+
/**
|
6354
|
+
* Tabbed Table Page
|
6355
|
+
*/
|
6356
|
+
|
6357
|
+
function _catch(body, recover) {
|
6358
|
+
try {
|
6359
|
+
var result = body();
|
6360
|
+
} catch (e) {
|
6361
|
+
return recover(e);
|
6362
|
+
}
|
6363
|
+
|
6364
|
+
if (result && result.then) {
|
6365
|
+
return result.then(void 0, recover);
|
6366
|
+
}
|
6367
|
+
|
6368
|
+
return result;
|
6369
|
+
}
|
6370
|
+
/**
|
6371
|
+
* TableRowEditor
|
6372
|
+
*/
|
6373
|
+
|
6374
|
+
|
6375
|
+
var TabbedTablePage = function TabbedTablePage(props) {
|
6376
|
+
var playScenario = function playScenario() {
|
6377
|
+
try {
|
6378
|
+
var promises1 = pageContext.all.map(function (item) {
|
6379
|
+
try {
|
6380
|
+
return Promise.resolve(pageContext.remove(item.id));
|
6381
|
+
} catch (e) {
|
6382
|
+
return Promise.reject(e);
|
6383
|
+
}
|
6384
|
+
});
|
6385
|
+
Promise.all(promises1).then(function () {
|
6386
|
+
try {
|
6387
|
+
var promises2 = scenario.map(function (item) {
|
6388
|
+
try {
|
6389
|
+
return Promise.resolve(pageContext.create(item));
|
6390
|
+
} catch (e) {
|
6391
|
+
return Promise.reject(e);
|
6392
|
+
}
|
6393
|
+
});
|
6394
|
+
Promise.all(promises2).then(function () {
|
6395
|
+
try {
|
6396
|
+
return Promise.resolve(pageContext.load()).then(function () {
|
6397
|
+
setPageContext(Object.assign({}, pageContext));
|
6398
|
+
});
|
6399
|
+
} catch (e) {
|
6400
|
+
return Promise.reject(e);
|
6401
|
+
}
|
6402
|
+
});
|
6403
|
+
return Promise.resolve();
|
6404
|
+
} catch (e) {
|
6405
|
+
return Promise.reject(e);
|
6406
|
+
}
|
6407
|
+
});
|
6408
|
+
return Promise.resolve();
|
6409
|
+
} catch (e) {
|
6410
|
+
return Promise.reject(e);
|
6411
|
+
}
|
6412
|
+
};
|
6413
|
+
|
6414
|
+
var save = function save() {
|
6415
|
+
try {
|
6416
|
+
console.log('saving.....');
|
6417
|
+
return Promise.resolve(pageContext.update(form)).then(function () {
|
6418
|
+
setPageContext(Object.assign({}, pageContext));
|
6419
|
+
});
|
6420
|
+
} catch (e) {
|
6421
|
+
return Promise.reject(e);
|
6422
|
+
}
|
6423
|
+
};
|
6424
|
+
|
6425
|
+
var reload = function reload() {
|
6426
|
+
try {
|
6427
|
+
var _filter2;
|
6428
|
+
|
6429
|
+
var filter = (_filter2 = {}, _filter2[tab.field] = tab.value, _filter2);
|
6430
|
+
return Promise.resolve(pageContext.load(filter, false)).then(function () {
|
6431
|
+
setPageContext(Object.assign({}, pageContext));
|
6432
|
+
});
|
6433
|
+
} catch (e) {
|
6434
|
+
return Promise.reject(e);
|
6435
|
+
}
|
6436
|
+
};
|
6437
|
+
|
6438
|
+
var site = React.useContext(SiteContext);
|
6439
|
+
var _props$id = props.id,
|
6440
|
+
id = _props$id === void 0 ? "table" : _props$id,
|
6441
|
+
icon = props.icon,
|
6442
|
+
title = props.title,
|
6443
|
+
name = props.name,
|
6444
|
+
schema = props.schema,
|
6445
|
+
url = props.url,
|
6446
|
+
field = props.field,
|
6447
|
+
host = props.host,
|
6448
|
+
_props$autosave = props.autosave,
|
6449
|
+
autosave = _props$autosave === void 0 ? true : _props$autosave,
|
6450
|
+
_props$delay = props.delay,
|
6451
|
+
delay = _props$delay === void 0 ? 1000 : _props$delay,
|
6452
|
+
editable = props.editable,
|
6453
|
+
_props$actions = props.actions,
|
6454
|
+
actions = _props$actions === void 0 ? [] : _props$actions,
|
6455
|
+
_props$dev = props.dev,
|
6456
|
+
dev = _props$dev === void 0 ? false : _props$dev,
|
6457
|
+
tableActions = props.tableActions,
|
6458
|
+
_props$selectionActio = props.selectionActions,
|
6459
|
+
selectionActions = _props$selectionActio === void 0 ? [] : _props$selectionActio,
|
6460
|
+
_props$canFilter = props.canFilter,
|
6461
|
+
canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
|
6462
|
+
_props$canAdd = props.canAdd,
|
6463
|
+
canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
|
6464
|
+
_props$canDelete = props.canDelete,
|
6465
|
+
canDelete = _props$canDelete === void 0 ? true : _props$canDelete,
|
6466
|
+
_props$canEdit = props.canEdit,
|
6467
|
+
canEdit = _props$canEdit === void 0 ? true : _props$canEdit,
|
6468
|
+
_props$canQuery = props.canQuery,
|
6469
|
+
canQuery = _props$canQuery === void 0 ? false : _props$canQuery,
|
6470
|
+
urlQuery = props.urlQuery,
|
6471
|
+
user = props.user,
|
6472
|
+
groupBy = props.groupBy,
|
6473
|
+
validator = props.validator,
|
6474
|
+
scenario = props.scenario,
|
6475
|
+
formFilter = props.formFilter,
|
6476
|
+
tableFilter = props.tableFilter,
|
6477
|
+
_props$editorFilter = props.editorFilter,
|
6478
|
+
editorFilter = _props$editorFilter === void 0 ? false : _props$editorFilter,
|
6479
|
+
children = props.children;
|
6480
|
+
|
6481
|
+
var _useContext = React.useContext(PageContext),
|
6482
|
+
pageContext = _useContext[0],
|
6483
|
+
setPageContext = _useContext[1];
|
6484
|
+
|
6485
|
+
var context = TableContext(url, field, host, urlQuery);
|
6486
|
+
var selected = pageContext.selected,
|
6487
|
+
tab = pageContext.tab;
|
6488
|
+
var timer = React.useRef(null);
|
6489
|
+
|
6490
|
+
var _useState = React.useState(selected),
|
6491
|
+
form = _useState[0],
|
6492
|
+
setForm = _useState[1];
|
6493
|
+
|
6494
|
+
var _useState2 = React.useState([]),
|
6495
|
+
tabs = _useState2[0],
|
6496
|
+
setTabs = _useState2[1];
|
6497
|
+
|
6498
|
+
React.useEffect(function () {
|
6499
|
+
try {
|
6500
|
+
var _field = Object.values(schema).find(function (field) {
|
6501
|
+
return field.tab && field.tab === true;
|
6502
|
+
});
|
6503
|
+
|
6504
|
+
var _tabs = _field.options.map(function (option) {
|
6505
|
+
return Object.assign({}, option, {
|
6506
|
+
field: _field.id
|
6507
|
+
});
|
6508
|
+
});
|
6509
|
+
|
6510
|
+
setTabs(_tabs);
|
6511
|
+
context.changeTab(_tabs[0]);
|
6512
|
+
setPageContext(context);
|
6513
|
+
return Promise.resolve();
|
6514
|
+
} catch (e) {
|
6515
|
+
return Promise.reject(e);
|
6516
|
+
}
|
6517
|
+
}, []);
|
6518
|
+
React.useEffect(function () {
|
6519
|
+
try {
|
6520
|
+
console.log("TAB", tab);
|
6521
|
+
|
6522
|
+
var _temp2 = function () {
|
6523
|
+
if (tab) {
|
6524
|
+
var _filter;
|
6525
|
+
|
6526
|
+
var filter = (_filter = {}, _filter[tab.field] = tab.value, _filter);
|
6527
|
+
return Promise.resolve(pageContext.load(filter, [])).then(function () {
|
6528
|
+
setPageContext(Object.assign({}, pageContext));
|
6529
|
+
});
|
6530
|
+
}
|
6531
|
+
}();
|
6532
|
+
|
6533
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
6534
|
+
} catch (e) {
|
6535
|
+
return Promise.reject(e);
|
6536
|
+
}
|
6537
|
+
}, [tab]);
|
6538
|
+
React.useEffect(function () {
|
6539
|
+
setForm(selected);
|
6540
|
+
}, [selected]);
|
6541
|
+
React.useEffect(function () {
|
6542
|
+
if (autosave) {
|
6543
|
+
clearTimeout(timer.current);
|
6544
|
+
timer.current = setTimeout(function () {
|
6545
|
+
if (canSave()) save();
|
6546
|
+
}, delay);
|
6547
|
+
}
|
6548
|
+
}, [form]);
|
6549
|
+
|
6550
|
+
function add() {
|
6551
|
+
var onOK = function onOK(form) {
|
6552
|
+
try {
|
6553
|
+
return Promise.resolve(pageContext.create(form)).then(function () {
|
6554
|
+
setPageContext(Object.assign({}, pageContext));
|
6555
|
+
});
|
6556
|
+
} catch (e) {
|
6557
|
+
return Promise.reject(e);
|
6558
|
+
}
|
6559
|
+
};
|
6560
|
+
|
6561
|
+
site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
6562
|
+
label: "Crear " + name,
|
6563
|
+
type: schema,
|
6564
|
+
onOK: onOK,
|
6565
|
+
validator: validator,
|
6566
|
+
filter: formFilter
|
6567
|
+
}));
|
6568
|
+
}
|
6569
|
+
|
6570
|
+
function saveQuery(filters) {
|
6571
|
+
var onOK = function onOK(form) {
|
6572
|
+
try {
|
6573
|
+
form.filters = filters;
|
6574
|
+
form.layout = {};
|
6575
|
+
form.user = user;
|
6576
|
+
form.url = url;
|
6577
|
+
return Promise.resolve(pageContext.createQuery(form, user)).then(function () {
|
6578
|
+
setPageContext(Object.assign({}, pageContext));
|
6579
|
+
});
|
6580
|
+
} catch (e) {
|
6581
|
+
return Promise.reject(e);
|
6582
|
+
}
|
6583
|
+
};
|
6584
|
+
|
6585
|
+
site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
6586
|
+
label: "Nueva query",
|
6587
|
+
type: QUERY,
|
6588
|
+
onOK: onOK
|
6589
|
+
}));
|
6590
|
+
}
|
6591
|
+
|
6592
|
+
function change(next) {
|
6593
|
+
setForm(next);
|
6594
|
+
}
|
6595
|
+
|
6596
|
+
function canSave() {
|
6597
|
+
var can = !equal__default["default"](form, selected);
|
6598
|
+
return can;
|
6599
|
+
}
|
6600
|
+
|
6601
|
+
function closeAside() {
|
6602
|
+
pageContext.select(null);
|
6603
|
+
setPageContext(Object.assign({}, pageContext));
|
6604
|
+
}
|
6605
|
+
|
6606
|
+
function renderAside() {
|
6607
|
+
var rowSelected = selected && form;
|
6608
|
+
var rowChecked = pageContext.checked && pageContext.checked.size > 0;
|
6609
|
+
|
6610
|
+
if (rowSelected || rowChecked) {
|
6611
|
+
return /*#__PURE__*/React__default["default"].createElement("aside", {
|
6612
|
+
className: "table-page"
|
6613
|
+
}, rowSelected ? /*#__PURE__*/React__default["default"].createElement(TableRowEditor, {
|
6614
|
+
content: new Content(schema, form),
|
6615
|
+
filter: editorFilter,
|
6616
|
+
onChange: change,
|
6617
|
+
onClose: closeAside,
|
6618
|
+
editable: canEdit
|
6619
|
+
}) : null, rowChecked ? /*#__PURE__*/React__default["default"].createElement(TableSelector, {
|
6620
|
+
schema: schema,
|
6621
|
+
actions: selectionActions
|
6622
|
+
}) : null);
|
6623
|
+
}
|
6624
|
+
|
6625
|
+
return null;
|
6626
|
+
}
|
6627
|
+
|
6628
|
+
function renderActions() {
|
6629
|
+
return actions.map(function (element) {
|
6630
|
+
var action = function action() {
|
6631
|
+
return element.props.action(pageContext);
|
6632
|
+
};
|
6633
|
+
|
6634
|
+
var clone = React__default["default"].cloneElement(element, {
|
6635
|
+
action: action
|
6636
|
+
});
|
6637
|
+
return clone;
|
6638
|
+
});
|
6639
|
+
}
|
6640
|
+
|
6641
|
+
function changeTab(id) {
|
6642
|
+
var tab = tabs.find(function (tab) {
|
6643
|
+
return tab.value === id;
|
6644
|
+
});
|
6645
|
+
pageContext.changeTab(tab);
|
6646
|
+
setPageContext(Object.assign({}, pageContext));
|
6647
|
+
}
|
6648
|
+
|
6649
|
+
function renderTabs() {
|
6650
|
+
var selected = tab ? tab.value : null;
|
6651
|
+
console.log(selected);
|
6652
|
+
return /*#__PURE__*/React__default["default"].createElement(Tabs, {
|
6653
|
+
selected: selected,
|
6654
|
+
onChange: changeTab
|
6655
|
+
}, tabs.map(function (tab) {
|
6656
|
+
return /*#__PURE__*/React__default["default"].createElement(Tab, {
|
6657
|
+
id: tab.value,
|
6658
|
+
label: tab.label
|
6659
|
+
});
|
6660
|
+
}));
|
6661
|
+
}
|
6662
|
+
|
6663
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
6664
|
+
className: "table-page",
|
6665
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
|
6666
|
+
}, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
|
6667
|
+
icon: "add",
|
6668
|
+
label: "A\xF1adir",
|
6669
|
+
action: add,
|
6670
|
+
raised: true
|
6671
|
+
}) : null, "\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
|
6672
|
+
icon: "refresh",
|
6673
|
+
label: "Reload",
|
6674
|
+
action: reload
|
6675
|
+
}), dev ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
|
6676
|
+
align: "alignRight"
|
6677
|
+
}, /*#__PURE__*/React__default["default"].createElement(MenuItem, {
|
6678
|
+
label: "Cargar Escenario 1",
|
6679
|
+
onSelect: playScenario
|
6680
|
+
})) : null, renderActions()), canQuery || canFilter ? /*#__PURE__*/React__default["default"].createElement("menu", {
|
6681
|
+
className: "table-page"
|
6682
|
+
}, canQuery ? /*#__PURE__*/React__default["default"].createElement(TableQueries, {
|
6683
|
+
schema: schema,
|
6684
|
+
url: url,
|
6685
|
+
user: user
|
6686
|
+
}) : null, canFilter ? /*#__PURE__*/React__default["default"].createElement(TableFilters, {
|
6687
|
+
schema: schema,
|
6688
|
+
onSave: canQuery ? saveQuery : null
|
6689
|
+
}) : null) : null, /*#__PURE__*/React__default["default"].createElement("main", {
|
6690
|
+
key: id,
|
6691
|
+
className: "table-page"
|
6692
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableEditor, {
|
6693
|
+
icon: icon,
|
6694
|
+
title: name,
|
6695
|
+
tabs: renderTabs(),
|
6696
|
+
schema: schema,
|
6697
|
+
delay: delay,
|
6698
|
+
editable: editable,
|
6699
|
+
groupBy: groupBy,
|
6700
|
+
filter: tableFilter,
|
6701
|
+
actions: tableActions,
|
6702
|
+
canDelete: canDelete
|
6703
|
+
}), children ? /*#__PURE__*/React__default["default"].createElement("article", null, children) : null), renderAside());
|
6704
|
+
};
|
6705
|
+
|
6706
|
+
var TableRowEditor = function TableRowEditor(props) {
|
6707
|
+
var name = props.name,
|
6708
|
+
content = props.content,
|
6709
|
+
filter = props.filter,
|
6710
|
+
editable = props.editable,
|
6711
|
+
onChange = props.onChange,
|
6712
|
+
onClose = props.onClose;
|
6713
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
6714
|
+
className: "table-row-editor"
|
6715
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header, {
|
6716
|
+
icon: "local_offer",
|
6717
|
+
title: name || "Propiedades"
|
6718
|
+
}, /*#__PURE__*/React__default["default"].createElement(Icon, {
|
6719
|
+
icon: "close",
|
6720
|
+
clickable: true,
|
6721
|
+
action: onClose
|
6722
|
+
})), /*#__PURE__*/React__default["default"].createElement("main", null, editable ? /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
|
6723
|
+
content: content,
|
6724
|
+
onChange: onChange,
|
6725
|
+
filter: filter
|
6726
|
+
}) : /*#__PURE__*/React__default["default"].createElement(ContentViewer, {
|
6727
|
+
content: content
|
6728
|
+
})));
|
6729
|
+
};
|
6730
|
+
/**
|
6731
|
+
* Table Selector
|
6732
|
+
*/
|
6733
|
+
|
6734
|
+
|
6735
|
+
var TableSelector = function TableSelector(props) {
|
6736
|
+
var schema = props.schema,
|
6737
|
+
_props$actions2 = props.actions,
|
6738
|
+
actions = _props$actions2 === void 0 ? [] : _props$actions2;
|
6739
|
+
|
6740
|
+
var _useContext2 = React.useContext(PageContext),
|
6741
|
+
pageContext = _useContext2[0],
|
6742
|
+
setPageContext = _useContext2[1];
|
6743
|
+
|
6744
|
+
var all = pageContext.all,
|
6745
|
+
checked = pageContext.checked;
|
6746
|
+
var count = checked.size + "/" + all.length;
|
6747
|
+
var columns = Object.keys(schema).filter(function (key) {
|
6748
|
+
return schema[key].selectorColumn === true;
|
6749
|
+
}).map(function (key) {
|
6750
|
+
var field = schema[key];
|
6751
|
+
return {
|
6752
|
+
id: field.id,
|
6753
|
+
label: field.label
|
6754
|
+
};
|
6755
|
+
});
|
6756
|
+
var rows = all.filter(function (item) {
|
6757
|
+
return checked.has(item.id);
|
6758
|
+
});
|
6759
|
+
var table = {
|
6760
|
+
columns: columns,
|
6761
|
+
rows: rows || []
|
6762
|
+
};
|
6763
|
+
var buttons = actions.map(function (_ref) {
|
6764
|
+
var label = _ref.label,
|
6765
|
+
_action = _ref.action,
|
6766
|
+
validate = _ref.validate;
|
6767
|
+
return /*#__PURE__*/React__default["default"].createElement(Button, {
|
6768
|
+
label: label,
|
6769
|
+
raised: true,
|
6770
|
+
action: function action() {
|
6771
|
+
return _action(checked, pageContext, function () {
|
6772
|
+
try {
|
6773
|
+
return Promise.resolve(pageContext.load()).then(function () {
|
6774
|
+
setPageContext(Object.assign({}, pageContext));
|
6775
|
+
});
|
6776
|
+
} catch (e) {
|
6777
|
+
return Promise.reject(e);
|
6778
|
+
}
|
6779
|
+
}, rows);
|
6780
|
+
},
|
6781
|
+
disabled: !validate(checked, rows)
|
6782
|
+
});
|
6783
|
+
});
|
6784
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
6785
|
+
className: "table-selector"
|
6786
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header, {
|
6787
|
+
icon: "checklist_rtl",
|
6788
|
+
title: "Selecci\xF3n"
|
6789
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
6790
|
+
className: "size"
|
6791
|
+
}, count)), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(DataTable, table)), /*#__PURE__*/React__default["default"].createElement("footer", null, buttons));
|
6792
|
+
};
|
6793
|
+
/**
|
6794
|
+
* Table Queries
|
6795
|
+
*/
|
6796
|
+
|
6797
|
+
|
6798
|
+
var TableQueries = function TableQueries(props) {
|
6799
|
+
var remove = function remove(id) {
|
6800
|
+
try {
|
6801
|
+
return Promise.resolve(pageContext.removeQuery(id, user)).then(function () {
|
6802
|
+
setPageContext(Object.assign({}, pageContext));
|
6803
|
+
});
|
6804
|
+
} catch (e) {
|
6805
|
+
return Promise.reject(e);
|
6806
|
+
}
|
6807
|
+
};
|
6808
|
+
|
6809
|
+
var _useContext3 = React.useContext(PageContext),
|
6810
|
+
pageContext = _useContext3[0],
|
6811
|
+
setPageContext = _useContext3[1];
|
6812
|
+
|
6813
|
+
var url = props.url,
|
6814
|
+
user = props.user;
|
6815
|
+
var _pageContext$queries = pageContext.queries,
|
6816
|
+
queries = _pageContext$queries === void 0 ? [] : _pageContext$queries;
|
6817
|
+
|
6818
|
+
var _useState3 = React.useState(),
|
6819
|
+
selected = _useState3[0],
|
6820
|
+
setSelected = _useState3[1];
|
6821
|
+
|
6822
|
+
function select(query) {
|
6823
|
+
setSelected(query.id);
|
6824
|
+
pageContext.changeFilters(query.filters);
|
6825
|
+
setPageContext(Object.assign({}, pageContext));
|
6826
|
+
}
|
6827
|
+
|
6828
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
6829
|
+
className: "table-queries",
|
6830
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
|
6831
|
+
}), /*#__PURE__*/React__default["default"].createElement("main", {
|
6832
|
+
className: "table-queries"
|
6833
|
+
}, queries ? queries.filter(function (query) {
|
6834
|
+
return query.url === url;
|
6835
|
+
}).map(function (query) {
|
6836
|
+
var style = selected === query.id ? "selected" : "";
|
6837
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
6838
|
+
className: "table-queries-item " + style,
|
6839
|
+
onClick: function onClick() {
|
6840
|
+
return select(query);
|
6841
|
+
}
|
6842
|
+
}, /*#__PURE__*/React__default["default"].createElement(Icon, {
|
6843
|
+
icon: "star",
|
6844
|
+
size: "small"
|
6845
|
+
}), /*#__PURE__*/React__default["default"].createElement("label", null, query.name), /*#__PURE__*/React__default["default"].createElement(Icon, {
|
6846
|
+
icon: "close",
|
6847
|
+
clickable: true,
|
6848
|
+
size: "small",
|
6849
|
+
action: function action() {
|
6850
|
+
return remove(query.id);
|
6851
|
+
}
|
6852
|
+
}));
|
6853
|
+
}) : /*#__PURE__*/React__default["default"].createElement("div", null, "...empty...")));
|
6854
|
+
};
|
6855
|
+
/**
|
6856
|
+
* Table Filters
|
6857
|
+
*/
|
6858
|
+
|
6859
|
+
|
6860
|
+
var TableFilters = function TableFilters(props) {
|
6861
|
+
var reload = function reload() {
|
6862
|
+
try {
|
6863
|
+
return Promise.resolve(pageContext.load(form, likes)).then(function () {
|
6864
|
+
setPageContext(Object.assign({}, pageContext));
|
6865
|
+
});
|
6866
|
+
} catch (e) {
|
6867
|
+
return Promise.reject(e);
|
6868
|
+
}
|
6869
|
+
};
|
6870
|
+
|
6871
|
+
var change = function change(next) {
|
6872
|
+
try {
|
6873
|
+
setForm(next);
|
6874
|
+
return Promise.resolve();
|
6875
|
+
} catch (e) {
|
6876
|
+
return Promise.reject(e);
|
6877
|
+
}
|
6878
|
+
};
|
6879
|
+
|
6880
|
+
var _useContext4 = React.useContext(PageContext),
|
6881
|
+
pageContext = _useContext4[0],
|
6882
|
+
setPageContext = _useContext4[1];
|
6883
|
+
|
6884
|
+
var filters = pageContext.filters;
|
6885
|
+
var schema = props.schema,
|
6886
|
+
onSave = props.onSave;
|
6887
|
+
|
6888
|
+
var _useState4 = React.useState({}),
|
6889
|
+
form = _useState4[0],
|
6890
|
+
setForm = _useState4[1];
|
6891
|
+
|
6892
|
+
var filterSchema = React.useMemo(function () {
|
6893
|
+
var filterSchema = Object.assign({}, schema);
|
6894
|
+
|
6895
|
+
for (var key in filterSchema) {
|
6896
|
+
if (filterSchema[key].filter === false) {
|
6897
|
+
delete filterSchema[key];
|
6898
|
+
} else {
|
6899
|
+
if (filterSchema[key].type === TYPES.ENTITY) {
|
6900
|
+
var fs = filterSchema[key].item;
|
6901
|
+
|
6902
|
+
for (var key in fs) {
|
6903
|
+
if (fs[key].filter === false) delete fs[key];
|
6904
|
+
}
|
6905
|
+
}
|
6906
|
+
}
|
6907
|
+
} //Object.values(filterSchema).forEach(field => field.section = null)
|
6908
|
+
|
6909
|
+
|
6910
|
+
delete filterSchema.flows;
|
6911
|
+
return filterSchema;
|
6912
|
+
}, [schema]);
|
6913
|
+
var likes = React.useMemo(function () {
|
6914
|
+
var fields = Object.values(schema);
|
6915
|
+
return fields.reduce(function (likes, field) {
|
6916
|
+
if (field.like === true) likes.push(field.id);
|
6917
|
+
return likes;
|
6918
|
+
}, []);
|
6919
|
+
}, [schema]);
|
6920
|
+
React.useEffect(function () {
|
6921
|
+
if (filters) setForm(filters);
|
6922
|
+
}, [filters]);
|
6923
|
+
React.useEffect(function () {
|
6924
|
+
reload();
|
6925
|
+
}, [form]);
|
6926
|
+
|
6927
|
+
function clear() {
|
6928
|
+
change({});
|
6929
|
+
}
|
6930
|
+
|
6931
|
+
function save() {
|
6932
|
+
if (onSave) {
|
6933
|
+
onSave(form);
|
6934
|
+
}
|
6935
|
+
}
|
6936
|
+
|
6937
|
+
var content = new Content(filterSchema, form);
|
6938
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
6939
|
+
className: "table-filters",
|
6940
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
|
6941
|
+
}, /*#__PURE__*/React__default["default"].createElement(Icon, {
|
6942
|
+
icon: "filter_list_off",
|
6943
|
+
size: "small",
|
6944
|
+
clickable: true,
|
6945
|
+
action: clear
|
6946
|
+
}), onSave ? /*#__PURE__*/React__default["default"].createElement(Icon, {
|
6947
|
+
icon: "save",
|
6948
|
+
size: "small",
|
6949
|
+
clickable: true,
|
6950
|
+
action: save
|
6951
|
+
}) : null), /*#__PURE__*/React__default["default"].createElement("main", {
|
6952
|
+
className: "table-filters"
|
6953
|
+
}, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
|
6954
|
+
content: content,
|
6955
|
+
onChange: change
|
6956
|
+
})));
|
6957
|
+
};
|
6958
|
+
/**
|
6959
|
+
* Table Editor
|
6960
|
+
*/
|
6961
|
+
|
6962
|
+
|
6963
|
+
var TableEditor = function TableEditor(props) {
|
6964
|
+
var checkOne = function checkOne(id, field, value) {
|
6965
|
+
check([id], value);
|
6966
|
+
return Promise.resolve();
|
6967
|
+
};
|
6968
|
+
|
6969
|
+
var check = function check(ids, value) {
|
6970
|
+
try {
|
6971
|
+
pageContext.check(ids, value);
|
6972
|
+
setPageContext(Object.assign({}, pageContext));
|
6973
|
+
return Promise.resolve();
|
6974
|
+
} catch (e) {
|
6975
|
+
return Promise.reject(e);
|
6976
|
+
}
|
6977
|
+
};
|
6978
|
+
|
6979
|
+
var select = function select(row, event) {
|
6980
|
+
try {
|
6981
|
+
clear();
|
6982
|
+
return Promise.resolve(pageContext.select(row.id)).then(function () {
|
6983
|
+
setPageContext(Object.assign({}, pageContext));
|
6984
|
+
});
|
6985
|
+
} catch (e) {
|
6986
|
+
return Promise.reject(e);
|
6987
|
+
}
|
6988
|
+
};
|
6989
|
+
|
6990
|
+
var remove = function remove(id) {
|
6991
|
+
try {
|
6992
|
+
return Promise.resolve(site.confirm("Are you sure ?")).then(function (confirm) {
|
6993
|
+
var _temp3 = function () {
|
6994
|
+
if (confirm) {
|
6995
|
+
return Promise.resolve(pageContext.remove(id)).then(function () {
|
6996
|
+
pageContext.clear();
|
6997
|
+
setPageContext(Object.assign({}, pageContext));
|
6998
|
+
});
|
6999
|
+
}
|
7000
|
+
}();
|
7001
|
+
|
7002
|
+
if (_temp3 && _temp3.then) return _temp3.then(function () {});
|
7003
|
+
});
|
7004
|
+
} catch (e) {
|
7005
|
+
return Promise.reject(e);
|
7006
|
+
}
|
7007
|
+
};
|
7008
|
+
|
7009
|
+
var site = React.useContext(SiteContext);
|
7010
|
+
|
7011
|
+
var _useContext5 = React.useContext(PageContext),
|
7012
|
+
pageContext = _useContext5[0],
|
7013
|
+
setPageContext = _useContext5[1];
|
7014
|
+
|
7015
|
+
var _pageContext$all = pageContext.all,
|
7016
|
+
all = _pageContext$all === void 0 ? [] : _pageContext$all;
|
7017
|
+
var icon = props.icon,
|
7018
|
+
title = props.title,
|
7019
|
+
schema = props.schema,
|
7020
|
+
editable = props.editable,
|
7021
|
+
canDelete = props.canDelete,
|
7022
|
+
filter = props.filter,
|
7023
|
+
actions = props.actions,
|
7024
|
+
tabs = props.tabs;
|
7025
|
+
|
7026
|
+
var _useState5 = React.useState(props.groupBy),
|
7027
|
+
groupBy = _useState5[0],
|
7028
|
+
setGroupBy = _useState5[1];
|
7029
|
+
|
7030
|
+
function changeGroup(id, value) {
|
7031
|
+
setGroupBy(value);
|
7032
|
+
}
|
7033
|
+
|
7034
|
+
function change(rowID, cellID, value) {
|
7035
|
+
var _Object$assign;
|
7036
|
+
|
7037
|
+
var row = all.find(function (r) {
|
7038
|
+
return r.id === rowID;
|
7039
|
+
});
|
7040
|
+
var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
|
7041
|
+
delete next.actions;
|
7042
|
+
pageContext.update(next);
|
7043
|
+
setPageContext(Object.assign({}, pageContext));
|
7044
|
+
}
|
7045
|
+
|
7046
|
+
function clear() {
|
7047
|
+
pageContext.clear();
|
7048
|
+
setPageContext(Object.assign({}, pageContext));
|
7049
|
+
}
|
7050
|
+
|
7051
|
+
function run(action, item) {
|
7052
|
+
action.action(item.id, pageContext, function () {
|
7053
|
+
try {
|
7054
|
+
return Promise.resolve(pageContext.load()).then(function () {
|
7055
|
+
setPageContext(Object.assign({}, pageContext));
|
7056
|
+
});
|
7057
|
+
} catch (e) {
|
7058
|
+
return Promise.reject(e);
|
7059
|
+
}
|
7060
|
+
});
|
7061
|
+
}
|
7062
|
+
|
7063
|
+
function renderGroupLabel(groupName) {
|
7064
|
+
var grouper = schema[groupBy];
|
7065
|
+
if (!groupName || !grouper) return "";
|
7066
|
+
|
7067
|
+
if (grouper.options) {
|
7068
|
+
var options = CHECK['isFunction'](grouper.options) ? grouper.options() : grouper.options;
|
7069
|
+
var option = options.find(function (option) {
|
7070
|
+
return option.value === groupName;
|
7071
|
+
});
|
7072
|
+
return option ? option.label : groupName;
|
7073
|
+
} else {
|
7074
|
+
return groupName;
|
7075
|
+
}
|
7076
|
+
}
|
7077
|
+
|
7078
|
+
function renderGroups() {
|
7079
|
+
var items = filter ? filter(all) : all;
|
7080
|
+
var groups = items.reduce(function (groups, item) {
|
7081
|
+
var groupName = item[groupBy];
|
7082
|
+
var group = groups[groupName];
|
7083
|
+
if (!group) groups[groupName] = [];
|
7084
|
+
groups[groupName].push(item);
|
7085
|
+
return groups;
|
7086
|
+
}, {});
|
7087
|
+
return Object.keys(groups).map(function (groupName) {
|
7088
|
+
var table = {
|
7089
|
+
columns: Object.values(schema).filter(function (field) {
|
7090
|
+
return field.column === true;
|
7091
|
+
}).map(function (field) {
|
7092
|
+
var options = field.options;
|
7093
|
+
|
7094
|
+
if (options && typeof options == 'function') {
|
7095
|
+
options = options();
|
7096
|
+
}
|
7097
|
+
|
7098
|
+
return {
|
7099
|
+
id: field.id,
|
7100
|
+
label: field.label,
|
7101
|
+
type: field.type,
|
7102
|
+
format: field.format,
|
7103
|
+
item: field.item ? field.item : [],
|
7104
|
+
onChange: field.id === "checked" ? checkOne : field.editable ? change : null,
|
7105
|
+
|
7106
|
+
/* checked has it´s own handler */
|
7107
|
+
options: options
|
7108
|
+
};
|
7109
|
+
}),
|
7110
|
+
rows: groups[groupName].map(function (item) {
|
7111
|
+
item.checked = pageContext.checked ? pageContext.checked.has(item.id) : false;
|
7112
|
+
item.actions = actions ? actions.map(function (_action2) {
|
7113
|
+
return _action2.filter ? _action2.filter(item) ? /*#__PURE__*/React__default["default"].createElement(Icon, {
|
7114
|
+
icon: _action2.icon,
|
7115
|
+
clickable: true,
|
7116
|
+
size: "small",
|
7117
|
+
action: function action() {
|
7118
|
+
return run(_action2, item);
|
7119
|
+
}
|
7120
|
+
}) : null : /*#__PURE__*/React__default["default"].createElement(Icon, {
|
7121
|
+
icon: _action2.icon,
|
7122
|
+
clickable: true,
|
7123
|
+
size: "small",
|
7124
|
+
action: function action() {
|
7125
|
+
return run(_action2, item);
|
7126
|
+
}
|
7127
|
+
});
|
7128
|
+
}) : [];
|
7129
|
+
if (canDelete) item.actions.push( /*#__PURE__*/React__default["default"].createElement(Icon, {
|
7130
|
+
icon: "delete",
|
7131
|
+
size: "small",
|
7132
|
+
clickable: true,
|
7133
|
+
action: function action() {
|
7134
|
+
return remove(item.id);
|
7135
|
+
}
|
7136
|
+
}));
|
7137
|
+
return item;
|
7138
|
+
})
|
7139
|
+
};
|
7140
|
+
table.columns.push({
|
7141
|
+
id: "actions"
|
7142
|
+
});
|
7143
|
+
var groupSize = groups[groupName].length;
|
7144
|
+
var title = /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement("span", {
|
7145
|
+
className: "size"
|
7146
|
+
}, groupSize), renderGroupLabel(groupName));
|
7147
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
7148
|
+
key: groupName
|
7149
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header, {
|
7150
|
+
title: title
|
7151
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
7152
|
+
className: "size"
|
7153
|
+
}, groupSize)), /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
|
7154
|
+
onRowSelection: select,
|
7155
|
+
editable: editable,
|
7156
|
+
onCheckAll: check
|
7157
|
+
})));
|
7158
|
+
});
|
7159
|
+
}
|
7160
|
+
|
7161
|
+
function buildGroupOptions(schema) {
|
7162
|
+
return Object.values(schema).filter(function (field) {
|
7163
|
+
return field.grouper === true;
|
7164
|
+
}).map(function (field) {
|
7165
|
+
return {
|
7166
|
+
label: field.label,
|
7167
|
+
value: field.id
|
7168
|
+
};
|
7169
|
+
});
|
7170
|
+
}
|
7171
|
+
|
7172
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
7173
|
+
icon: icon,
|
7174
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
|
7175
|
+
}, /*#__PURE__*/React__default["default"].createElement(DropDown, {
|
7176
|
+
id: "groupBy",
|
7177
|
+
label: "Agrupar Por",
|
7178
|
+
value: groupBy,
|
7179
|
+
options: buildGroupOptions(schema),
|
7180
|
+
onChange: changeGroup
|
7181
|
+
}), tabs), /*#__PURE__*/React__default["default"].createElement("main", {
|
7182
|
+
className: "table-editor"
|
7183
|
+
}, renderGroups()));
|
7184
|
+
};
|
7185
|
+
/**
|
7186
|
+
* Table Context
|
7187
|
+
*/
|
7188
|
+
|
7189
|
+
var TableContext = function TableContext(url, field, host, urlQuery) {
|
7190
|
+
var API = TableAPI(url, host);
|
7191
|
+
return {
|
7192
|
+
all: [],
|
7193
|
+
checked: new Set([]),
|
7194
|
+
selected: null,
|
7195
|
+
filters: {},
|
7196
|
+
queries: [],
|
7197
|
+
tab: null,
|
7198
|
+
load: function load(filter, like) {
|
7199
|
+
if (like === void 0) {
|
7200
|
+
like = [];
|
7201
|
+
}
|
7202
|
+
|
7203
|
+
try {
|
7204
|
+
var _this2 = this;
|
7205
|
+
|
7206
|
+
var _temp5 = _catch(function () {
|
7207
|
+
var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
|
7208
|
+
var field = filter[key];
|
7209
|
+
|
7210
|
+
if (field) {
|
7211
|
+
if (CHECK['isObject'](field)) {
|
7212
|
+
Object.keys(field).forEach(function (key2) {
|
7213
|
+
var subfield = field[key2];
|
7214
|
+
if (subfield) filters[key + "." + key2] = subfield;
|
7215
|
+
});
|
7216
|
+
} else {
|
7217
|
+
filters[key] = field;
|
7218
|
+
}
|
7219
|
+
}
|
7220
|
+
|
7221
|
+
return filters;
|
7222
|
+
}, {}) : [];
|
7223
|
+
|
7224
|
+
if (_this2.tab) {
|
7225
|
+
filters[_this2.tab.field] = _this2.tab.value;
|
7226
|
+
}
|
7227
|
+
|
7228
|
+
return Promise.resolve(API.all(filters, like)).then(function (data) {
|
7229
|
+
_this2.all = field ? data[field] : data;
|
7230
|
+
});
|
7231
|
+
}, function (error) {
|
7232
|
+
console.log(error);
|
7233
|
+
});
|
7234
|
+
|
7235
|
+
return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {}) : void 0);
|
7236
|
+
} catch (e) {
|
7237
|
+
return Promise.reject(e);
|
7238
|
+
}
|
7239
|
+
},
|
7240
|
+
check: function check(ids, isChecked) {
|
7241
|
+
var _this3 = this;
|
7242
|
+
|
7243
|
+
if (isChecked === void 0) {
|
7244
|
+
isChecked = true;
|
7245
|
+
}
|
7246
|
+
|
7247
|
+
if (isChecked) {
|
7248
|
+
ids.forEach(function (id) {
|
7249
|
+
return _this3.checked.add(id);
|
7250
|
+
});
|
7251
|
+
} else {
|
7252
|
+
ids.forEach(function (id) {
|
7253
|
+
return _this3.checked["delete"](id);
|
7254
|
+
});
|
7255
|
+
}
|
7256
|
+
},
|
7257
|
+
changeTab: function changeTab(tab) {
|
7258
|
+
this.tab = tab;
|
7259
|
+
},
|
7260
|
+
select: function select(id) {
|
7261
|
+
var result = this.all.find(function (item) {
|
7262
|
+
return item.id === id;
|
7263
|
+
});
|
7264
|
+
this.selected = result;
|
7265
|
+
},
|
7266
|
+
clear: function clear() {
|
7267
|
+
this.selected = null;
|
7268
|
+
},
|
7269
|
+
create: function create(form) {
|
7270
|
+
try {
|
7271
|
+
var _this5 = this;
|
7272
|
+
|
7273
|
+
var _temp7 = _catch(function () {
|
7274
|
+
return Promise.resolve(API.create(form)).then(function () {
|
7275
|
+
return Promise.resolve(_this5.load({}, [])).then(function () {});
|
7276
|
+
});
|
7277
|
+
}, function (error) {
|
7278
|
+
console.log(error);
|
7279
|
+
});
|
7280
|
+
|
7281
|
+
return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function () {}) : void 0);
|
7282
|
+
} catch (e) {
|
7283
|
+
return Promise.reject(e);
|
7284
|
+
}
|
7285
|
+
},
|
7286
|
+
update: function update(form) {
|
7287
|
+
try {
|
7288
|
+
var _this7 = this;
|
7289
|
+
|
7290
|
+
var _temp9 = _catch(function () {
|
7291
|
+
return Promise.resolve(API.update(form)).then(function () {
|
7292
|
+
return Promise.resolve(_this7.load()).then(function () {});
|
7293
|
+
});
|
7294
|
+
}, function (error) {
|
7295
|
+
console.log(error);
|
7296
|
+
});
|
7297
|
+
|
7298
|
+
return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
|
7299
|
+
} catch (e) {
|
7300
|
+
return Promise.reject(e);
|
7301
|
+
}
|
7302
|
+
},
|
7303
|
+
remove: function remove(id) {
|
7304
|
+
try {
|
7305
|
+
var _this9 = this;
|
7306
|
+
|
7307
|
+
var _temp11 = _catch(function () {
|
7308
|
+
return Promise.resolve(API.remove(id)).then(function () {
|
7309
|
+
return Promise.resolve(_this9.load()).then(function () {});
|
7310
|
+
});
|
7311
|
+
}, function (error) {
|
7312
|
+
console.log(error);
|
7313
|
+
});
|
7314
|
+
|
7315
|
+
return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
|
7316
|
+
} catch (e) {
|
7317
|
+
return Promise.reject(e);
|
7318
|
+
}
|
7319
|
+
},
|
7320
|
+
changeFilters: function changeFilters(filters) {
|
7321
|
+
this.filters = filters;
|
7322
|
+
},
|
7323
|
+
loadQueries: function loadQueries(user) {
|
7324
|
+
try {
|
7325
|
+
var _this11 = this;
|
7326
|
+
|
7327
|
+
var _temp13 = _catch(function () {
|
7328
|
+
return Promise.resolve(API.queries(user, urlQuery)).then(function (_API$queries) {
|
7329
|
+
_this11.queries = _API$queries;
|
7330
|
+
});
|
7331
|
+
}, function (error) {
|
7332
|
+
console.log(error);
|
7333
|
+
});
|
7334
|
+
|
7335
|
+
return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
|
7336
|
+
} catch (e) {
|
7337
|
+
return Promise.reject(e);
|
7338
|
+
}
|
7339
|
+
},
|
7340
|
+
createQuery: function createQuery(query, user) {
|
7341
|
+
try {
|
7342
|
+
var _this13 = this;
|
7343
|
+
|
7344
|
+
var _temp15 = _catch(function () {
|
7345
|
+
return Promise.resolve(API.createQuery(query, urlQuery)).then(function () {
|
7346
|
+
return Promise.resolve(_this13.loadQueries(user)).then(function () {});
|
7347
|
+
});
|
7348
|
+
}, function (error) {
|
7349
|
+
console.log(error);
|
7350
|
+
});
|
7351
|
+
|
7352
|
+
return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(function () {}) : void 0);
|
7353
|
+
} catch (e) {
|
7354
|
+
return Promise.reject(e);
|
7355
|
+
}
|
7356
|
+
},
|
7357
|
+
removeQuery: function removeQuery(id, user) {
|
7358
|
+
try {
|
7359
|
+
var _this15 = this;
|
7360
|
+
|
7361
|
+
var _temp17 = _catch(function () {
|
7362
|
+
return Promise.resolve(API.removeQuery(id, urlQuery)).then(function () {
|
7363
|
+
return Promise.resolve(_this15.loadQueries(user)).then(function () {});
|
7364
|
+
});
|
7365
|
+
}, function (error) {
|
7366
|
+
console.log(error);
|
7367
|
+
});
|
7368
|
+
|
7369
|
+
return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
|
7370
|
+
} catch (e) {
|
7371
|
+
return Promise.reject(e);
|
7372
|
+
}
|
7373
|
+
}
|
7374
|
+
};
|
7375
|
+
};
|
7376
|
+
/**
|
7377
|
+
* table API
|
7378
|
+
*/
|
7379
|
+
|
7380
|
+
|
7381
|
+
var TableAPI = function TableAPI(url, host) {
|
7382
|
+
var http = HTTPClient(host || window.API || process.env.REACT_APP_API, Session);
|
7383
|
+
return {
|
7384
|
+
all: function all(filters, like) {
|
7385
|
+
if (like === void 0) {
|
7386
|
+
like = [];
|
7387
|
+
}
|
7388
|
+
|
7389
|
+
console.log(like);
|
7390
|
+
var queryParams = "?";
|
7391
|
+
|
7392
|
+
if (filters) {
|
7393
|
+
var filterQuery = Object.keys(filters).reduce(function (query, key) {
|
7394
|
+
var value = filters[key];
|
7395
|
+
|
7396
|
+
if (typeof value === 'boolean') {
|
7397
|
+
return query.concat(key + "=" + value + "&");
|
7398
|
+
} else if (Array.isArray(value)) {
|
7399
|
+
var param = value.length === 0 ? '' : value.reduce(function (param, item) {
|
7400
|
+
param = param.concat(key + "=" + item + "&");
|
7401
|
+
return param;
|
7402
|
+
}, "");
|
7403
|
+
return query.concat(param);
|
7404
|
+
} else {
|
7405
|
+
return like.includes(key) ? query.concat(key + "=%" + filters[key] + "%&") : query.concat(key + "=" + filters[key] + "&");
|
7406
|
+
}
|
7407
|
+
}, "");
|
7408
|
+
queryParams = queryParams.concat(filterQuery);
|
7409
|
+
}
|
7410
|
+
|
7411
|
+
return http.GET(url + queryParams);
|
7412
|
+
},
|
7413
|
+
find: function find(id) {
|
7414
|
+
return http.GET(url + "/" + id);
|
7415
|
+
},
|
7416
|
+
create: function create(form) {
|
7417
|
+
var body = JSON.stringify(form);
|
7418
|
+
return http.POST(url, body);
|
7419
|
+
},
|
7420
|
+
update: function update(form) {
|
7421
|
+
var body = JSON.stringify(form);
|
7422
|
+
return http.PUT(url + "/" + form.id, body);
|
7423
|
+
},
|
7424
|
+
remove: function remove(id) {
|
7425
|
+
return http.DELETE(url + "/" + id);
|
7426
|
+
},
|
7427
|
+
queries: function queries(user, url2) {
|
7428
|
+
var url3 = url2 ? url2 : url;
|
7429
|
+
url3 = url3 + "queries";
|
7430
|
+
if (user) url3 = url3 + ("?user=" + user);
|
7431
|
+
return http.GET(url3);
|
7432
|
+
},
|
7433
|
+
createQuery: function createQuery(form, url2) {
|
7434
|
+
var url3 = url2 ? url2 : url;
|
7435
|
+
var body = JSON.stringify(form);
|
7436
|
+
return http.POST(url3 + "queries", body);
|
7437
|
+
},
|
7438
|
+
removeQuery: function removeQuery(id, url2) {
|
7439
|
+
var url3 = url2 ? url2 : url;
|
7440
|
+
return http.DELETE(url3 + "queries/" + id);
|
7441
|
+
}
|
7442
|
+
};
|
7443
|
+
};
|
7444
|
+
|
6353
7445
|
var isFunction = function isFunction(value) {
|
6354
7446
|
return value && (Object.prototype.toString.call(value) === "[object Function]" || "function" === typeof value || value instanceof Function);
|
6355
7447
|
};
|
@@ -6409,7 +7501,8 @@
|
|
6409
7501
|
exports.TYPES = TYPES;
|
6410
7502
|
exports.Tab = Tab;
|
6411
7503
|
exports.TabbedContentEditor = TabbedContentEditor;
|
6412
|
-
exports.
|
7504
|
+
exports.TabbedTablePage = TabbedTablePage;
|
7505
|
+
exports.TableEditor = TableEditor$1;
|
6413
7506
|
exports.TablePage = TablePage;
|
6414
7507
|
exports.Tabs = Tabs;
|
6415
7508
|
exports.Text = Text;
|