ywana-core8 0.0.16 → 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 +705 -44
- 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 +704 -44
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +705 -44
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/publish.sh +1 -0
- package/src/domain/CollectionPage.js +2 -2
- package/src/domain/CreateContentDialog.js +26 -30
- package/src/domain/CreateContentDialog_old.js +59 -0
- package/src/domain/TablePage.js +9 -5
- package/src/domain/index.js +1 -0
- package/src/css/fonts.css +0 -162
- package/src/fonts/Assistant-Bold.ttf +0 -0
- package/src/fonts/Assistant-ExtraBold.ttf +0 -0
- package/src/fonts/Assistant-ExtraLight.ttf +0 -0
- package/src/fonts/Assistant-Light.ttf +0 -0
- package/src/fonts/Assistant-Medium.ttf +0 -0
- package/src/fonts/Assistant-Regular.ttf +0 -0
- package/src/fonts/Assistant-SemiBold.ttf +0 -0
- package/src/fonts/Assistant-VariableFont_wght.ttf +0 -0
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
|
|
@@ -3134,16 +3134,16 @@ var CollectionAdder = function CollectionAdder(_ref11) {
|
|
3134
3134
|
* Create Content Dialog
|
3135
3135
|
*/
|
3136
3136
|
|
3137
|
-
var CreateContentDialog = function CreateContentDialog(_ref) {
|
3137
|
+
var CreateContentDialog$1 = function CreateContentDialog(_ref) {
|
3138
3138
|
var label = _ref.label,
|
3139
3139
|
type = _ref.type,
|
3140
|
+
_ref$value = _ref.value,
|
3141
|
+
value = _ref$value === void 0 ? {} : _ref$value,
|
3140
3142
|
validator = _ref.validator,
|
3141
|
-
onOK = _ref.onOK
|
3142
|
-
_ref$onActionClose = _ref.onActionClose,
|
3143
|
-
onActionClose = _ref$onActionClose === void 0 ? true : _ref$onActionClose;
|
3143
|
+
onOK = _ref.onOK;
|
3144
3144
|
var site = React.useContext(SiteContext);
|
3145
3145
|
|
3146
|
-
var _useState = React.useState(
|
3146
|
+
var _useState = React.useState(value),
|
3147
3147
|
form = _useState[0],
|
3148
3148
|
setForm = _useState[1];
|
3149
3149
|
|
@@ -3155,7 +3155,7 @@ var CreateContentDialog = function CreateContentDialog(_ref) {
|
|
3155
3155
|
errors = _useState3[0],
|
3156
3156
|
setErrors = _useState3[1];
|
3157
3157
|
|
3158
|
-
function change(form
|
3158
|
+
function change(form) {
|
3159
3159
|
setForm(form);
|
3160
3160
|
|
3161
3161
|
if (validator) {
|
@@ -3164,28 +3164,20 @@ var CreateContentDialog = function CreateContentDialog(_ref) {
|
|
3164
3164
|
_validator$errors = _validator.errors,
|
3165
3165
|
_errors = _validator$errors === void 0 ? [] : _validator$errors;
|
3166
3166
|
|
3167
|
-
setValid(
|
3167
|
+
setValid(validation);
|
3168
3168
|
setErrors(_errors);
|
3169
3169
|
} else {
|
3170
|
-
setValid(
|
3170
|
+
setValid(true);
|
3171
3171
|
}
|
3172
3172
|
}
|
3173
3173
|
|
3174
3174
|
function onAction(action) {
|
3175
|
-
if (action === 'OK' && onOK) onOK(form);
|
3176
|
-
|
3177
|
-
}
|
3178
|
-
|
3179
|
-
function isRequired(field) {
|
3180
|
-
var _field$required = field.required,
|
3181
|
-
required = _field$required === void 0 ? false : _field$required;
|
3182
|
-
return required;
|
3175
|
+
if (action === 'OK' && onOK) onOK(Object.assign({}, value, form));
|
3176
|
+
site.closeDialog();
|
3183
3177
|
}
|
3184
3178
|
|
3185
|
-
function
|
3186
|
-
|
3187
|
-
creation = _field$creation === void 0 ? false : _field$creation;
|
3188
|
-
return creation;
|
3179
|
+
function createFilter(field, content) {
|
3180
|
+
return field.required === true || field.optional === true; // TODO: execute props.filter
|
3189
3181
|
}
|
3190
3182
|
|
3191
3183
|
var actions = /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Button, {
|
@@ -3193,6 +3185,8 @@ var CreateContentDialog = function CreateContentDialog(_ref) {
|
|
3193
3185
|
action: function action() {
|
3194
3186
|
return onAction("CLOSE");
|
3195
3187
|
}
|
3188
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
3189
|
+
className: "expand"
|
3196
3190
|
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
3197
3191
|
label: "OK",
|
3198
3192
|
action: function action() {
|
@@ -3210,12 +3204,10 @@ var CreateContentDialog = function CreateContentDialog(_ref) {
|
|
3210
3204
|
open: true,
|
3211
3205
|
onAction: onAction,
|
3212
3206
|
actions: actions
|
3213
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
3207
|
+
}, /*#__PURE__*/React__default["default"].createElement(ContentEditor, {
|
3214
3208
|
content: content,
|
3215
|
-
|
3216
|
-
|
3217
|
-
},
|
3218
|
-
onChange: change
|
3209
|
+
onChange: change,
|
3210
|
+
filter: createFilter
|
3219
3211
|
}), errors.map(function (error) {
|
3220
3212
|
return /*#__PURE__*/React__default["default"].createElement(Text, {
|
3221
3213
|
use: "overline",
|
@@ -3309,7 +3301,102 @@ var EditContentDialog = function EditContentDialog(_ref) {
|
|
3309
3301
|
}));
|
3310
3302
|
};
|
3311
3303
|
|
3312
|
-
|
3304
|
+
/**
|
3305
|
+
* Create Content Dialog
|
3306
|
+
*/
|
3307
|
+
|
3308
|
+
var CreateContentDialog = function CreateContentDialog(_ref) {
|
3309
|
+
var label = _ref.label,
|
3310
|
+
type = _ref.type,
|
3311
|
+
validator = _ref.validator,
|
3312
|
+
onOK = _ref.onOK,
|
3313
|
+
_ref$onActionClose = _ref.onActionClose,
|
3314
|
+
onActionClose = _ref$onActionClose === void 0 ? true : _ref$onActionClose;
|
3315
|
+
var site = React.useContext(SiteContext);
|
3316
|
+
|
3317
|
+
var _useState = React.useState({}),
|
3318
|
+
form = _useState[0],
|
3319
|
+
setForm = _useState[1];
|
3320
|
+
|
3321
|
+
var _useState2 = React.useState(false),
|
3322
|
+
isValid = _useState2[0],
|
3323
|
+
setValid = _useState2[1];
|
3324
|
+
|
3325
|
+
var _useState3 = React.useState([]),
|
3326
|
+
errors = _useState3[0],
|
3327
|
+
setErrors = _useState3[1];
|
3328
|
+
|
3329
|
+
function change(form, validForm) {
|
3330
|
+
setForm(form);
|
3331
|
+
|
3332
|
+
if (validator) {
|
3333
|
+
var _validator = validator(form),
|
3334
|
+
validation = _validator.validation,
|
3335
|
+
_validator$errors = _validator.errors,
|
3336
|
+
_errors = _validator$errors === void 0 ? [] : _validator$errors;
|
3337
|
+
|
3338
|
+
setValid(validForm && validation);
|
3339
|
+
setErrors(_errors);
|
3340
|
+
} else {
|
3341
|
+
setValid(validForm);
|
3342
|
+
}
|
3343
|
+
}
|
3344
|
+
|
3345
|
+
function onAction(action) {
|
3346
|
+
if (action === 'OK' && onOK) onOK(form);
|
3347
|
+
if (action === 'CLOSE' || onActionClose === true) site.closeDialog();
|
3348
|
+
}
|
3349
|
+
|
3350
|
+
function isRequired(field) {
|
3351
|
+
var _field$required = field.required,
|
3352
|
+
required = _field$required === void 0 ? false : _field$required;
|
3353
|
+
return required;
|
3354
|
+
}
|
3355
|
+
|
3356
|
+
function isOptional(field) {
|
3357
|
+
var _field$creation = field.creation,
|
3358
|
+
creation = _field$creation === void 0 ? false : _field$creation;
|
3359
|
+
return creation;
|
3360
|
+
}
|
3361
|
+
|
3362
|
+
var actions = /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Button, {
|
3363
|
+
label: "CLOSE",
|
3364
|
+
action: function action() {
|
3365
|
+
return onAction("CLOSE");
|
3366
|
+
}
|
3367
|
+
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
3368
|
+
label: "OK",
|
3369
|
+
action: function action() {
|
3370
|
+
return onAction("OK");
|
3371
|
+
},
|
3372
|
+
disabled: !isValid,
|
3373
|
+
raised: true
|
3374
|
+
}));
|
3375
|
+
var title = /*#__PURE__*/React__default["default"].createElement(Text, {
|
3376
|
+
use: "headline6"
|
3377
|
+
}, label);
|
3378
|
+
var content = new Content(type, form);
|
3379
|
+
return /*#__PURE__*/React__default["default"].createElement(Dialog, {
|
3380
|
+
title: title,
|
3381
|
+
open: true,
|
3382
|
+
onAction: onAction,
|
3383
|
+
actions: actions
|
3384
|
+
}, /*#__PURE__*/React__default["default"].createElement(ContentForm, {
|
3385
|
+
content: content,
|
3386
|
+
filter: function filter(field) {
|
3387
|
+
return isRequired(field) || isOptional(field);
|
3388
|
+
},
|
3389
|
+
onChange: change
|
3390
|
+
}), errors.map(function (error) {
|
3391
|
+
return /*#__PURE__*/React__default["default"].createElement(Text, {
|
3392
|
+
use: "overline",
|
3393
|
+
tag: "div",
|
3394
|
+
className: "error"
|
3395
|
+
}, error);
|
3396
|
+
}));
|
3397
|
+
};
|
3398
|
+
|
3399
|
+
function _catch$1(body, recover) {
|
3313
3400
|
try {
|
3314
3401
|
var result = body();
|
3315
3402
|
} catch (e) {
|
@@ -3323,7 +3410,7 @@ function _catch(body, recover) {
|
|
3323
3410
|
return result;
|
3324
3411
|
}
|
3325
3412
|
|
3326
|
-
var http = HTTPClient(window.API || process.env.REACT_APP_API, Session);
|
3413
|
+
var http$1 = HTTPClient(window.API || process.env.REACT_APP_API, Session);
|
3327
3414
|
/**
|
3328
3415
|
* Collection Page
|
3329
3416
|
*/
|
@@ -3384,8 +3471,8 @@ var CollectionPage = function CollectionPage(props) {
|
|
3384
3471
|
}
|
3385
3472
|
};
|
3386
3473
|
|
3387
|
-
site.openDialog( /*#__PURE__*/React__default["default"].createElement(
|
3388
|
-
label: "
|
3474
|
+
site.openDialog( /*#__PURE__*/React__default["default"].createElement(CreateContentDialog, {
|
3475
|
+
label: "" + name,
|
3389
3476
|
type: schema,
|
3390
3477
|
onOK: onOK
|
3391
3478
|
}));
|
@@ -3678,7 +3765,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3678
3765
|
try {
|
3679
3766
|
var _this2 = this;
|
3680
3767
|
|
3681
|
-
var _temp2 = _catch(function () {
|
3768
|
+
var _temp2 = _catch$1(function () {
|
3682
3769
|
return Promise.resolve(API.all()).then(function (data) {
|
3683
3770
|
_this2.all = field ? data[field] : data;
|
3684
3771
|
});
|
@@ -3704,7 +3791,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3704
3791
|
try {
|
3705
3792
|
var _this4 = this;
|
3706
3793
|
|
3707
|
-
var _temp4 = _catch(function () {
|
3794
|
+
var _temp4 = _catch$1(function () {
|
3708
3795
|
return Promise.resolve(API.create(form)).then(function () {
|
3709
3796
|
return Promise.resolve(_this4.load()).then(function () {});
|
3710
3797
|
});
|
@@ -3721,7 +3808,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3721
3808
|
try {
|
3722
3809
|
var _this6 = this;
|
3723
3810
|
|
3724
|
-
var _temp6 = _catch(function () {
|
3811
|
+
var _temp6 = _catch$1(function () {
|
3725
3812
|
return Promise.resolve(API.update(form)).then(function () {
|
3726
3813
|
return Promise.resolve(_this6.load()).then(function () {});
|
3727
3814
|
});
|
@@ -3738,7 +3825,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3738
3825
|
try {
|
3739
3826
|
var _this8 = this;
|
3740
3827
|
|
3741
|
-
var _temp8 = _catch(function () {
|
3828
|
+
var _temp8 = _catch$1(function () {
|
3742
3829
|
return Promise.resolve(API.patch(id, form)).then(function () {
|
3743
3830
|
return Promise.resolve(_this8.load()).then(function () {});
|
3744
3831
|
});
|
@@ -3755,7 +3842,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3755
3842
|
try {
|
3756
3843
|
var _this10 = this;
|
3757
3844
|
|
3758
|
-
var _temp10 = _catch(function () {
|
3845
|
+
var _temp10 = _catch$1(function () {
|
3759
3846
|
return Promise.resolve(API.updateProperty(id, propertyName, form)).then(function () {
|
3760
3847
|
return Promise.resolve(_this10.load()).then(function () {});
|
3761
3848
|
});
|
@@ -3772,7 +3859,7 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3772
3859
|
try {
|
3773
3860
|
var _this12 = this;
|
3774
3861
|
|
3775
|
-
var _temp12 = _catch(function () {
|
3862
|
+
var _temp12 = _catch$1(function () {
|
3776
3863
|
return Promise.resolve(API.remove(id)).then(function () {
|
3777
3864
|
return Promise.resolve(_this12.load()).then(function () {});
|
3778
3865
|
});
|
@@ -3794,26 +3881,599 @@ var CollectionContext = function CollectionContext(url, field) {
|
|
3794
3881
|
var CollectionAPI = function CollectionAPI(url) {
|
3795
3882
|
return {
|
3796
3883
|
all: function all() {
|
3797
|
-
return http.GET(url);
|
3884
|
+
return http$1.GET(url);
|
3798
3885
|
},
|
3799
3886
|
find: function find(id) {
|
3800
|
-
return http.GET(url + "/" + id);
|
3887
|
+
return http$1.GET(url + "/" + id);
|
3801
3888
|
},
|
3802
3889
|
create: function create(form) {
|
3803
3890
|
var body = JSON.stringify(form);
|
3804
|
-
return http.POST(url, body);
|
3891
|
+
return http$1.POST(url, body);
|
3805
3892
|
},
|
3806
3893
|
update: function update(form) {
|
3807
3894
|
var body = JSON.stringify(form);
|
3808
|
-
return http.PUT(url + "/" + form.id, body);
|
3895
|
+
return http$1.PUT(url + "/" + form.id, body);
|
3809
3896
|
},
|
3810
3897
|
patch: function patch(id, form) {
|
3811
3898
|
var body = JSON.stringify(form);
|
3812
|
-
return http.PATCH(url + "/" + id, body);
|
3899
|
+
return http$1.PATCH(url + "/" + id, body);
|
3813
3900
|
},
|
3814
3901
|
updateProperty: function updateProperty(id, propertyName, form) {
|
3815
3902
|
var body = JSON.stringify(form);
|
3816
|
-
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);
|
3817
4477
|
},
|
3818
4478
|
remove: function remove(id) {
|
3819
4479
|
return http.DELETE(url + "/" + id);
|
@@ -4100,7 +4760,7 @@ exports.CollectionPage = CollectionPage;
|
|
4100
4760
|
exports.Content = Content;
|
4101
4761
|
exports.ContentEditor = ContentEditor;
|
4102
4762
|
exports.ContentForm = ContentForm;
|
4103
|
-
exports.CreateContentDialog = CreateContentDialog;
|
4763
|
+
exports.CreateContentDialog = CreateContentDialog$1;
|
4104
4764
|
exports.DataTable = DataTable;
|
4105
4765
|
exports.Dialog = Dialog;
|
4106
4766
|
exports.DropDown = DropDown;
|
@@ -4136,6 +4796,7 @@ exports.Stack = Stack;
|
|
4136
4796
|
exports.TYPES = TYPES;
|
4137
4797
|
exports.Tab = Tab;
|
4138
4798
|
exports.TabbedContentEditor = TabbedContentEditor;
|
4799
|
+
exports.TablePage = TablePage;
|
4139
4800
|
exports.Tabs = Tabs;
|
4140
4801
|
exports.Text = Text;
|
4141
4802
|
exports.TextField = TextField;
|