ywana-core8 0.0.19 → 0.0.20
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 +590 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +29 -0
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +590 -17
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +590 -16
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/TablePage.js +9 -5
package/dist/index.cjs
CHANGED
@@ -9,7 +9,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
9
9
|
var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
|
10
10
|
var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
|
11
11
|
|
12
|
-
function _catch$
|
12
|
+
function _catch$2(body, recover) {
|
13
13
|
try {
|
14
14
|
var result = body();
|
15
15
|
} catch (e) {
|
@@ -40,7 +40,7 @@ var fetchAsync = function fetchAsync(method, URL, body, token) {
|
|
40
40
|
},
|
41
41
|
body: body
|
42
42
|
};
|
43
|
-
return Promise.resolve(_catch$
|
43
|
+
return Promise.resolve(_catch$2(function () {
|
44
44
|
return Promise.resolve(fetch(URL, request)).then(function (response) {
|
45
45
|
var _exit;
|
46
46
|
|
@@ -3396,7 +3396,7 @@ var CreateContentDialog = function CreateContentDialog(_ref) {
|
|
3396
3396
|
}));
|
3397
3397
|
};
|
3398
3398
|
|
3399
|
-
function _catch(body, recover) {
|
3399
|
+
function _catch$1(body, recover) {
|
3400
3400
|
try {
|
3401
3401
|
var result = body();
|
3402
3402
|
} catch (e) {
|
@@ -3410,7 +3410,7 @@ function _catch(body, recover) {
|
|
3410
3410
|
return result;
|
3411
3411
|
}
|
3412
3412
|
|
3413
|
-
var http = HTTPClient(window.API || process.env.REACT_APP_API, Session);
|
3413
|
+
var http$1 = HTTPClient(window.API || process.env.REACT_APP_API, Session);
|
3414
3414
|
/**
|
3415
3415
|
* Collection Page
|
3416
3416
|
*/
|
@@ -3765,7 +3765,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3765
3765
|
try {
|
3766
3766
|
var _this2 = this;
|
3767
3767
|
|
3768
|
-
var _temp2 = _catch(function () {
|
3768
|
+
var _temp2 = _catch$1(function () {
|
3769
3769
|
return Promise.resolve(API.all()).then(function (data) {
|
3770
3770
|
_this2.all = field ? data[field] : data;
|
3771
3771
|
});
|
@@ -3791,7 +3791,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3791
3791
|
try {
|
3792
3792
|
var _this4 = this;
|
3793
3793
|
|
3794
|
-
var _temp4 = _catch(function () {
|
3794
|
+
var _temp4 = _catch$1(function () {
|
3795
3795
|
return Promise.resolve(API.create(form)).then(function () {
|
3796
3796
|
return Promise.resolve(_this4.load()).then(function () {});
|
3797
3797
|
});
|
@@ -3808,7 +3808,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3808
3808
|
try {
|
3809
3809
|
var _this6 = this;
|
3810
3810
|
|
3811
|
-
var _temp6 = _catch(function () {
|
3811
|
+
var _temp6 = _catch$1(function () {
|
3812
3812
|
return Promise.resolve(API.update(form)).then(function () {
|
3813
3813
|
return Promise.resolve(_this6.load()).then(function () {});
|
3814
3814
|
});
|
@@ -3825,7 +3825,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3825
3825
|
try {
|
3826
3826
|
var _this8 = this;
|
3827
3827
|
|
3828
|
-
var _temp8 = _catch(function () {
|
3828
|
+
var _temp8 = _catch$1(function () {
|
3829
3829
|
return Promise.resolve(API.patch(id, form)).then(function () {
|
3830
3830
|
return Promise.resolve(_this8.load()).then(function () {});
|
3831
3831
|
});
|
@@ -3842,7 +3842,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3842
3842
|
try {
|
3843
3843
|
var _this10 = this;
|
3844
3844
|
|
3845
|
-
var _temp10 = _catch(function () {
|
3845
|
+
var _temp10 = _catch$1(function () {
|
3846
3846
|
return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
|
3847
3847
|
return Promise.resolve(_this10.load()).then(function () {});
|
3848
3848
|
});
|
@@ -3859,7 +3859,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3859
3859
|
try {
|
3860
3860
|
var _this12 = this;
|
3861
3861
|
|
3862
|
-
var _temp12 = _catch(function () {
|
3862
|
+
var _temp12 = _catch$1(function () {
|
3863
3863
|
return Promise.resolve(API.remove(id)).then(function () {
|
3864
3864
|
return Promise.resolve(_this12.load()).then(function () {});
|
3865
3865
|
});
|
@@ -3881,26 +3881,599 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3881
3881
|
var CollectionAPI = function CollectionAPI(url) {
|
3882
3882
|
return {
|
3883
3883
|
all: function all() {
|
3884
|
-
return http.GET(url);
|
3884
|
+
return http$1.GET(url);
|
3885
3885
|
},
|
3886
3886
|
find: function find(id) {
|
3887
|
-
return http.GET(url + "/" + id);
|
3887
|
+
return http$1.GET(url + "/" + id);
|
3888
3888
|
},
|
3889
3889
|
create: function create(form) {
|
3890
3890
|
var body = JSON.stringify(form);
|
3891
|
-
return http.POST(url, body);
|
3891
|
+
return http$1.POST(url, body);
|
3892
3892
|
},
|
3893
3893
|
update: function update(form) {
|
3894
3894
|
var body = JSON.stringify(form);
|
3895
|
-
return http.PUT(url + "/" + form.id, body);
|
3895
|
+
return http$1.PUT(url + "/" + form.id, body);
|
3896
3896
|
},
|
3897
3897
|
patch: function patch(id, form) {
|
3898
3898
|
var body = JSON.stringify(form);
|
3899
|
-
return http.PATCH(url + "/" + id, body);
|
3899
|
+
return http$1.PATCH(url + "/" + id, body);
|
3900
3900
|
},
|
3901
3901
|
updateProperty: function updateProperty(id, propertyName, form) {
|
3902
3902
|
var body = JSON.stringify(form);
|
3903
|
-
return http.PUT(url + "/" + id + "/" + propertyName, body);
|
3903
|
+
return http$1.PUT(url + "/" + id + "/" + propertyName, body);
|
3904
|
+
},
|
3905
|
+
remove: function remove(id) {
|
3906
|
+
return http$1.DELETE(url + "/" + id);
|
3907
|
+
}
|
3908
|
+
};
|
3909
|
+
};
|
3910
|
+
|
3911
|
+
function _catch(body, recover) {
|
3912
|
+
try {
|
3913
|
+
var result = body();
|
3914
|
+
} catch (e) {
|
3915
|
+
return recover(e);
|
3916
|
+
}
|
3917
|
+
|
3918
|
+
if (result && result.then) {
|
3919
|
+
return result.then(void 0, recover);
|
3920
|
+
}
|
3921
|
+
|
3922
|
+
return result;
|
3923
|
+
}
|
3924
|
+
|
3925
|
+
var http = HTTPClient(window.API || process.env.REACT_APP_API, Session);
|
3926
|
+
/**
|
3927
|
+
* Table Page
|
3928
|
+
*/
|
3929
|
+
|
3930
|
+
var TablePage = function TablePage(props) {
|
3931
|
+
var playScenario = function playScenario() {
|
3932
|
+
try {
|
3933
|
+
var promises1 = pageContext.all.map(function (item) {
|
3934
|
+
try {
|
3935
|
+
return Promise.resolve(pageContext.remove(item.id));
|
3936
|
+
} catch (e) {
|
3937
|
+
return Promise.reject(e);
|
3938
|
+
}
|
3939
|
+
});
|
3940
|
+
Promise.all(promises1).then(function () {
|
3941
|
+
try {
|
3942
|
+
var promises2 = scenario.map(function (item) {
|
3943
|
+
try {
|
3944
|
+
return Promise.resolve(pageContext.create(item));
|
3945
|
+
} catch (e) {
|
3946
|
+
return Promise.reject(e);
|
3947
|
+
}
|
3948
|
+
});
|
3949
|
+
Promise.all(promises2).then(function () {
|
3950
|
+
try {
|
3951
|
+
return Promise.resolve(pageContext.load()).then(function () {
|
3952
|
+
setPageContext(Object.assign({}, pageContext));
|
3953
|
+
});
|
3954
|
+
} catch (e) {
|
3955
|
+
return Promise.reject(e);
|
3956
|
+
}
|
3957
|
+
});
|
3958
|
+
return Promise.resolve();
|
3959
|
+
} catch (e) {
|
3960
|
+
return Promise.reject(e);
|
3961
|
+
}
|
3962
|
+
});
|
3963
|
+
return Promise.resolve();
|
3964
|
+
} catch (e) {
|
3965
|
+
return Promise.reject(e);
|
3966
|
+
}
|
3967
|
+
};
|
3968
|
+
|
3969
|
+
var save = function save() {
|
3970
|
+
try {
|
3971
|
+
console.log('saving.....');
|
3972
|
+
return Promise.resolve(pageContext.update(form)).then(function () {
|
3973
|
+
setPageContext(Object.assign({}, pageContext));
|
3974
|
+
});
|
3975
|
+
} catch (e) {
|
3976
|
+
return Promise.reject(e);
|
3977
|
+
}
|
3978
|
+
};
|
3979
|
+
|
3980
|
+
var site = React.useContext(SiteContext);
|
3981
|
+
var _props$id = props.id,
|
3982
|
+
id = _props$id === void 0 ? "table" : _props$id,
|
3983
|
+
icon = props.icon,
|
3984
|
+
title = props.title,
|
3985
|
+
_props$name = props.name,
|
3986
|
+
name = _props$name === void 0 ? "table 1" : _props$name,
|
3987
|
+
schema = props.schema,
|
3988
|
+
url = props.url,
|
3989
|
+
field = props.field,
|
3990
|
+
_props$delay = props.delay,
|
3991
|
+
delay = _props$delay === void 0 ? 1000 : _props$delay,
|
3992
|
+
actions = props.actions,
|
3993
|
+
editable = props.editable,
|
3994
|
+
_props$canAdd = props.canAdd,
|
3995
|
+
canAdd = _props$canAdd === void 0 ? true : _props$canAdd,
|
3996
|
+
_props$dev = props.dev,
|
3997
|
+
dev = _props$dev === void 0 ? false : _props$dev,
|
3998
|
+
_props$autosave = props.autosave,
|
3999
|
+
autosave = _props$autosave === void 0 ? true : _props$autosave,
|
4000
|
+
groupBy = props.groupBy,
|
4001
|
+
validator = props.validator,
|
4002
|
+
scenario = props.scenario;
|
4003
|
+
|
4004
|
+
var _useContext = React.useContext(PageContext),
|
4005
|
+
pageContext = _useContext[0],
|
4006
|
+
setPageContext = _useContext[1];
|
4007
|
+
|
4008
|
+
var selected = pageContext.selected;
|
4009
|
+
var timer = React.useRef(null);
|
4010
|
+
|
4011
|
+
var _useState = React.useState(selected),
|
4012
|
+
form = _useState[0],
|
4013
|
+
setForm = _useState[1];
|
4014
|
+
|
4015
|
+
React.useEffect(function () {
|
4016
|
+
setForm(selected);
|
4017
|
+
}, [selected]);
|
4018
|
+
React.useEffect(function () {
|
4019
|
+
if (autosave) {
|
4020
|
+
clearTimeout(timer.current);
|
4021
|
+
timer.current = setTimeout(function () {
|
4022
|
+
if (canSave()) save();
|
4023
|
+
}, delay);
|
4024
|
+
}
|
4025
|
+
}, [form]);
|
4026
|
+
React.useEffect(function () {
|
4027
|
+
try {
|
4028
|
+
var context = TableContext(url, field);
|
4029
|
+
return Promise.resolve(context.load()).then(function () {
|
4030
|
+
setPageContext(context);
|
4031
|
+
});
|
4032
|
+
} catch (e) {
|
4033
|
+
return Promise.reject(e);
|
4034
|
+
}
|
4035
|
+
}, []);
|
4036
|
+
|
4037
|
+
function add() {
|
4038
|
+
var onOK = function onOK(form) {
|
4039
|
+
try {
|
4040
|
+
return Promise.resolve(pageContext.create(form)).then(function () {
|
4041
|
+
setPageContext(Object.assign({}, pageContext));
|
4042
|
+
});
|
4043
|
+
} catch (e) {
|
4044
|
+
return Promise.reject(e);
|
4045
|
+
}
|
4046
|
+
};
|
4047
|
+
|
4048
|
+
site.openDialog( /*#__PURE__*/React__default["default"].createElement(EditContentDialog, {
|
4049
|
+
label: "Crear " + name,
|
4050
|
+
type: schema,
|
4051
|
+
onOK: onOK,
|
4052
|
+
validator: validator
|
4053
|
+
}));
|
4054
|
+
}
|
4055
|
+
|
4056
|
+
function change(next) {
|
4057
|
+
setForm(next);
|
4058
|
+
}
|
4059
|
+
|
4060
|
+
function canSave() {
|
4061
|
+
var can = !equal__default["default"](form, selected);
|
4062
|
+
return can;
|
4063
|
+
}
|
4064
|
+
|
4065
|
+
function closeAside() {
|
4066
|
+
pageContext.select(null);
|
4067
|
+
setPageContext(Object.assign({}, pageContext));
|
4068
|
+
}
|
4069
|
+
|
4070
|
+
function renderAside() {
|
4071
|
+
if (selected && form) {
|
4072
|
+
var content = new Content(schema, form);
|
4073
|
+
return /*#__PURE__*/React__default["default"].createElement("aside", {
|
4074
|
+
className: "table-page"
|
4075
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header, {
|
4076
|
+
icon: "local_offer",
|
4077
|
+
title: selected.name || "Propiedades"
|
4078
|
+
}, /*#__PURE__*/React__default["default"].createElement(Icon, {
|
4079
|
+
icon: "close",
|
4080
|
+
clickable: true,
|
4081
|
+
action: closeAside
|
4082
|
+
})), /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
|
4083
|
+
content: content,
|
4084
|
+
onChange: change
|
4085
|
+
}));
|
4086
|
+
}
|
4087
|
+
|
4088
|
+
return null;
|
4089
|
+
}
|
4090
|
+
|
4091
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
4092
|
+
className: "table-page",
|
4093
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
|
4094
|
+
}, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
|
4095
|
+
icon: "add",
|
4096
|
+
label: "A\xF1adir",
|
4097
|
+
action: add,
|
4098
|
+
raised: true
|
4099
|
+
}) : null, dev ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
|
4100
|
+
align: "alignRight"
|
4101
|
+
}, /*#__PURE__*/React__default["default"].createElement(MenuItem, {
|
4102
|
+
label: "Cargar Escenario 1",
|
4103
|
+
onSelect: playScenario
|
4104
|
+
})) : null, actions), /*#__PURE__*/React__default["default"].createElement("menu", {
|
4105
|
+
className: "table-page"
|
4106
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableFilters, {
|
4107
|
+
schema: schema
|
4108
|
+
})), /*#__PURE__*/React__default["default"].createElement("main", {
|
4109
|
+
key: id,
|
4110
|
+
className: "table-page"
|
4111
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableEditor, {
|
4112
|
+
icon: icon,
|
4113
|
+
title: name,
|
4114
|
+
schema: schema,
|
4115
|
+
delay: delay,
|
4116
|
+
editable: editable,
|
4117
|
+
groupBy: groupBy
|
4118
|
+
})), renderAside());
|
4119
|
+
};
|
4120
|
+
/**
|
4121
|
+
* Table Filters
|
4122
|
+
*/
|
4123
|
+
|
4124
|
+
var TableFilters = function TableFilters(props) {
|
4125
|
+
var change = function change(next) {
|
4126
|
+
try {
|
4127
|
+
setForm(next);
|
4128
|
+
return Promise.resolve(pageContext.load(next)).then(function () {
|
4129
|
+
setPageContext(Object.assign({}, pageContext));
|
4130
|
+
});
|
4131
|
+
} catch (e) {
|
4132
|
+
return Promise.reject(e);
|
4133
|
+
}
|
4134
|
+
};
|
4135
|
+
|
4136
|
+
var _useContext2 = React.useContext(PageContext),
|
4137
|
+
pageContext = _useContext2[0],
|
4138
|
+
setPageContext = _useContext2[1];
|
4139
|
+
|
4140
|
+
var schema = props.schema;
|
4141
|
+
|
4142
|
+
var _useState2 = React.useState({}),
|
4143
|
+
form = _useState2[0],
|
4144
|
+
setForm = _useState2[1];
|
4145
|
+
|
4146
|
+
var filterSchema = React.useMemo(function () {
|
4147
|
+
var filterSchema = Object.assign({}, schema);
|
4148
|
+
Object.values(filterSchema).forEach(function (field) {
|
4149
|
+
return field.section = null;
|
4150
|
+
});
|
4151
|
+
delete filterSchema.flows;
|
4152
|
+
return filterSchema;
|
4153
|
+
}, [schema]);
|
4154
|
+
|
4155
|
+
function clear() {
|
4156
|
+
setForm({});
|
4157
|
+
}
|
4158
|
+
|
4159
|
+
var content = new Content(filterSchema, form);
|
4160
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
4161
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filtros")
|
4162
|
+
}, /*#__PURE__*/React__default["default"].createElement(Button, {
|
4163
|
+
icon: "filter_list_off",
|
4164
|
+
label: "Limpiar",
|
4165
|
+
action: clear
|
4166
|
+
})), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
|
4167
|
+
content: content,
|
4168
|
+
onChange: change
|
4169
|
+
})));
|
4170
|
+
};
|
4171
|
+
/**
|
4172
|
+
* Table Editor
|
4173
|
+
*/
|
4174
|
+
|
4175
|
+
|
4176
|
+
var TableEditor = function TableEditor(props) {
|
4177
|
+
var select = function select(row, event) {
|
4178
|
+
try {
|
4179
|
+
clear();
|
4180
|
+
return Promise.resolve(pageContext.select(row.id)).then(function () {
|
4181
|
+
setPageContext(Object.assign({}, pageContext));
|
4182
|
+
});
|
4183
|
+
} catch (e) {
|
4184
|
+
return Promise.reject(e);
|
4185
|
+
}
|
4186
|
+
};
|
4187
|
+
|
4188
|
+
var remove = function remove(id) {
|
4189
|
+
try {
|
4190
|
+
return Promise.resolve(pageContext.remove(id)).then(function () {
|
4191
|
+
pageContext.clear();
|
4192
|
+
setPageContext(Object.assign({}, pageContext));
|
4193
|
+
});
|
4194
|
+
} catch (e) {
|
4195
|
+
return Promise.reject(e);
|
4196
|
+
}
|
4197
|
+
};
|
4198
|
+
|
4199
|
+
var _useContext3 = React.useContext(PageContext),
|
4200
|
+
pageContext = _useContext3[0],
|
4201
|
+
setPageContext = _useContext3[1];
|
4202
|
+
|
4203
|
+
var _pageContext$all = pageContext.all,
|
4204
|
+
all = _pageContext$all === void 0 ? [] : _pageContext$all;
|
4205
|
+
var icon = props.icon,
|
4206
|
+
title = props.title,
|
4207
|
+
schema = props.schema,
|
4208
|
+
editable = props.editable;
|
4209
|
+
|
4210
|
+
var _useState3 = React.useState(props.groupBy),
|
4211
|
+
groupBy = _useState3[0],
|
4212
|
+
setGroupBy = _useState3[1];
|
4213
|
+
|
4214
|
+
function changeGroup(id, value) {
|
4215
|
+
setGroupBy(value);
|
4216
|
+
}
|
4217
|
+
|
4218
|
+
function change(rowID, cellID, value) {
|
4219
|
+
var _Object$assign;
|
4220
|
+
|
4221
|
+
var row = all.find(function (r) {
|
4222
|
+
return r.id === rowID;
|
4223
|
+
});
|
4224
|
+
var next = Object.assign({}, row, (_Object$assign = {}, _Object$assign[cellID] = value, _Object$assign));
|
4225
|
+
delete next.actions;
|
4226
|
+
pageContext.update(next);
|
4227
|
+
setPageContext(Object.assign({}, pageContext));
|
4228
|
+
}
|
4229
|
+
|
4230
|
+
function clear() {
|
4231
|
+
pageContext.clear();
|
4232
|
+
setPageContext(Object.assign({}, pageContext));
|
4233
|
+
}
|
4234
|
+
|
4235
|
+
function renderGroups() {
|
4236
|
+
var groups = all.reduce(function (groups, filter) {
|
4237
|
+
var groupName = filter[groupBy];
|
4238
|
+
var group = groups[groupName];
|
4239
|
+
if (!group) groups[groupName] = [];
|
4240
|
+
groups[groupName].push(filter);
|
4241
|
+
return groups;
|
4242
|
+
}, {});
|
4243
|
+
return Object.keys(groups).map(function (groupName) {
|
4244
|
+
var table = {
|
4245
|
+
columns: Object.values(schema).filter(function (field) {
|
4246
|
+
return field.column === true;
|
4247
|
+
}).map(function (field) {
|
4248
|
+
var options = field.options;
|
4249
|
+
|
4250
|
+
if (options && typeof options == 'function') {
|
4251
|
+
options = options();
|
4252
|
+
}
|
4253
|
+
|
4254
|
+
return {
|
4255
|
+
id: field.id,
|
4256
|
+
label: field.label,
|
4257
|
+
type: field.type,
|
4258
|
+
onChange: field.editable ? change : null,
|
4259
|
+
options: options
|
4260
|
+
};
|
4261
|
+
}),
|
4262
|
+
rows: groups[groupName].map(function (item) {
|
4263
|
+
item.actions = [/*#__PURE__*/React__default["default"].createElement(Icon, {
|
4264
|
+
icon: "delete",
|
4265
|
+
size: "small",
|
4266
|
+
clickable: true,
|
4267
|
+
action: function action() {
|
4268
|
+
return remove(item.id);
|
4269
|
+
}
|
4270
|
+
})];
|
4271
|
+
return item;
|
4272
|
+
})
|
4273
|
+
};
|
4274
|
+
table.columns.push({
|
4275
|
+
id: "actions"
|
4276
|
+
});
|
4277
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
4278
|
+
key: groupName
|
4279
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header, {
|
4280
|
+
title: groupName
|
4281
|
+
}), /*#__PURE__*/React__default["default"].createElement(DataTable, _extends({}, table, {
|
4282
|
+
onRowSelection: select,
|
4283
|
+
editable: editable
|
4284
|
+
})));
|
4285
|
+
});
|
4286
|
+
}
|
4287
|
+
|
4288
|
+
var table = {
|
4289
|
+
columns: Object.values(schema).filter(function (field) {
|
4290
|
+
return field.column === true;
|
4291
|
+
}).map(function (field) {
|
4292
|
+
var options = field.options;
|
4293
|
+
|
4294
|
+
if (options && typeof options == 'function') {
|
4295
|
+
options = options();
|
4296
|
+
}
|
4297
|
+
|
4298
|
+
return {
|
4299
|
+
id: field.id,
|
4300
|
+
label: field.label,
|
4301
|
+
type: field.type,
|
4302
|
+
onChange: field.editable ? change : null,
|
4303
|
+
options: options
|
4304
|
+
};
|
4305
|
+
}),
|
4306
|
+
rows: all.map(function (item) {
|
4307
|
+
item.actions = [/*#__PURE__*/React__default["default"].createElement(Icon, {
|
4308
|
+
icon: "delete",
|
4309
|
+
size: "small",
|
4310
|
+
clickable: true,
|
4311
|
+
action: function action() {
|
4312
|
+
return remove(item.id);
|
4313
|
+
}
|
4314
|
+
})];
|
4315
|
+
return item;
|
4316
|
+
})
|
4317
|
+
};
|
4318
|
+
table.columns.push({
|
4319
|
+
id: "actions"
|
4320
|
+
});
|
4321
|
+
|
4322
|
+
function buildGroupOptions(schema) {
|
4323
|
+
return Object.values(schema).filter(function (field) {
|
4324
|
+
return field.grouper === true;
|
4325
|
+
}).map(function (field) {
|
4326
|
+
return {
|
4327
|
+
label: field.label,
|
4328
|
+
value: field.id
|
4329
|
+
};
|
4330
|
+
});
|
4331
|
+
}
|
4332
|
+
|
4333
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
4334
|
+
icon: icon,
|
4335
|
+
title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
|
4336
|
+
}, /*#__PURE__*/React__default["default"].createElement(DropDown, {
|
4337
|
+
id: "groupBy",
|
4338
|
+
label: "Agrupar Por",
|
4339
|
+
value: groupBy,
|
4340
|
+
options: buildGroupOptions(schema),
|
4341
|
+
onChange: changeGroup
|
4342
|
+
})), /*#__PURE__*/React__default["default"].createElement("main", {
|
4343
|
+
className: "table-editor"
|
4344
|
+
}, renderGroups()));
|
4345
|
+
};
|
4346
|
+
/**
|
4347
|
+
* table Context
|
4348
|
+
*/
|
4349
|
+
|
4350
|
+
|
4351
|
+
var TableContext = function TableContext(url, field) {
|
4352
|
+
var API = TableAPI(url);
|
4353
|
+
return {
|
4354
|
+
all: [],
|
4355
|
+
selected: null,
|
4356
|
+
filters: {},
|
4357
|
+
load: function load(filter) {
|
4358
|
+
try {
|
4359
|
+
var _this2 = this;
|
4360
|
+
|
4361
|
+
var _temp2 = _catch(function () {
|
4362
|
+
var filters = filter ? Object.keys(filter).reduce(function (filters, key) {
|
4363
|
+
var field = filter[key];
|
4364
|
+
if (field) filters[key] = field;
|
4365
|
+
return filters;
|
4366
|
+
}, {}) : [];
|
4367
|
+
return Promise.resolve(API.all(filters)).then(function (data) {
|
4368
|
+
_this2.all = field ? data[field] : data;
|
4369
|
+
});
|
4370
|
+
}, function (error) {
|
4371
|
+
console.log(error);
|
4372
|
+
});
|
4373
|
+
|
4374
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
4375
|
+
} catch (e) {
|
4376
|
+
return Promise.reject(e);
|
4377
|
+
}
|
4378
|
+
},
|
4379
|
+
select: function select(id) {
|
4380
|
+
var result = this.all.find(function (item) {
|
4381
|
+
return item.id === id;
|
4382
|
+
});
|
4383
|
+
this.selected = result;
|
4384
|
+
},
|
4385
|
+
clear: function clear() {
|
4386
|
+
this.selected = null;
|
4387
|
+
},
|
4388
|
+
create: function create(form) {
|
4389
|
+
try {
|
4390
|
+
var _this4 = this;
|
4391
|
+
|
4392
|
+
var _temp4 = _catch(function () {
|
4393
|
+
return Promise.resolve(API.create(form)).then(function () {
|
4394
|
+
return Promise.resolve(_this4.load()).then(function () {});
|
4395
|
+
});
|
4396
|
+
}, function (error) {
|
4397
|
+
console.log(error);
|
4398
|
+
});
|
4399
|
+
|
4400
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
|
4401
|
+
} catch (e) {
|
4402
|
+
return Promise.reject(e);
|
4403
|
+
}
|
4404
|
+
},
|
4405
|
+
update: function update(form) {
|
4406
|
+
try {
|
4407
|
+
var _this6 = this;
|
4408
|
+
|
4409
|
+
var _temp6 = _catch(function () {
|
4410
|
+
return Promise.resolve(API.update(form)).then(function () {
|
4411
|
+
return Promise.resolve(_this6.load()).then(function () {});
|
4412
|
+
});
|
4413
|
+
}, function (error) {
|
4414
|
+
console.log(error);
|
4415
|
+
});
|
4416
|
+
|
4417
|
+
return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
|
4418
|
+
} catch (e) {
|
4419
|
+
return Promise.reject(e);
|
4420
|
+
}
|
4421
|
+
},
|
4422
|
+
remove: function remove(id) {
|
4423
|
+
try {
|
4424
|
+
var _this8 = this;
|
4425
|
+
|
4426
|
+
var _temp8 = _catch(function () {
|
4427
|
+
return Promise.resolve(API.remove(id)).then(function () {
|
4428
|
+
return Promise.resolve(_this8.load()).then(function () {});
|
4429
|
+
});
|
4430
|
+
}, function (error) {
|
4431
|
+
console.log(error);
|
4432
|
+
});
|
4433
|
+
|
4434
|
+
return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
|
4435
|
+
} catch (e) {
|
4436
|
+
return Promise.reject(e);
|
4437
|
+
}
|
4438
|
+
},
|
4439
|
+
changeFilters: function changeFilters(filters) {
|
4440
|
+
this.filters = filters;
|
4441
|
+
}
|
4442
|
+
};
|
4443
|
+
};
|
4444
|
+
/**
|
4445
|
+
* table API
|
4446
|
+
*/
|
4447
|
+
|
4448
|
+
|
4449
|
+
var TableAPI = function TableAPI(url) {
|
4450
|
+
return {
|
4451
|
+
all: function all(filters) {
|
4452
|
+
var queryParams = "?";
|
4453
|
+
|
4454
|
+
if (filters) {
|
4455
|
+
var filterQuery = Object.keys(filters).reduce(function (query, key) {
|
4456
|
+
if (typeof filters[key] === 'boolean') {
|
4457
|
+
return query.concat(key + "=" + filters[key] + "&");
|
4458
|
+
} else {
|
4459
|
+
return query.concat(key + "=%" + filters[key] + "%&");
|
4460
|
+
}
|
4461
|
+
}, "");
|
4462
|
+
queryParams = queryParams.concat(filterQuery);
|
4463
|
+
}
|
4464
|
+
|
4465
|
+
return http.GET(url + queryParams);
|
4466
|
+
},
|
4467
|
+
find: function find(id) {
|
4468
|
+
return http.GET(url + "/" + id);
|
4469
|
+
},
|
4470
|
+
create: function create(form) {
|
4471
|
+
var body = JSON.stringify(form);
|
4472
|
+
return http.POST(url, body);
|
4473
|
+
},
|
4474
|
+
update: function update(form) {
|
4475
|
+
var body = JSON.stringify(form);
|
4476
|
+
return http.PUT(url + "/" + form.id, body);
|
3904
4477
|
},
|
3905
4478
|
remove: function remove(id) {
|
3906
4479
|
return http.DELETE(url + "/" + id);
|
@@ -4223,6 +4796,7 @@ exports.Stack = Stack;
|
|
4223
4796
|
exports.TYPES = TYPES;
|
4224
4797
|
exports.Tab = Tab;
|
4225
4798
|
exports.TabbedContentEditor = TabbedContentEditor;
|
4799
|
+
exports.TablePage = TablePage;
|
4226
4800
|
exports.Tabs = Tabs;
|
4227
4801
|
exports.Text = Text;
|
4228
4802
|
exports.TextField = TextField;
|