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 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
 
@@ -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;