ywana-core8 0.0.19 → 0.0.23

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