react-hook-core 0.1.25 → 0.2.1

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/lib/useEdit.js CHANGED
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function (t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  var react_1 = require("react");
@@ -21,450 +21,442 @@ var reflect_1 = require("./reflect");
21
21
  var state_1 = require("./state");
22
22
  var update_1 = require("./update");
23
23
  exports.useEdit = function (refForm, initialState, service, p2, p) {
24
- var params = react_router_1.useParams();
25
- var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p);
26
- react_1.useEffect(function () {
27
- if (refForm) {
28
- var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
29
- core_1.initForm(baseProps.refForm.current, registerEvents);
30
- }
31
- var n = baseProps.getModelName(refForm.current);
32
- var obj = {};
33
- obj[n] = baseProps.createModel();
34
- baseProps.setState(obj);
35
- var keys;
36
- if (p && !p.keys && service && service.metadata) {
37
- var metadata = (p.metadata ? p.metadata : service.metadata());
38
- if (metadata) {
39
- var meta = edit_1.build(metadata);
40
- keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
41
- var version = (p.version ? p.version : (meta ? meta.version : undefined));
42
- p.keys = keys;
43
- p.version = version;
44
- }
45
- }
46
- var id = core_1.buildId(params, keys);
47
- if (p && p.initialize) {
48
- p.initialize(id, baseProps.load, baseProps.setState, p.callback);
49
- }
50
- else {
51
- try {
52
- baseProps.load(id, p ? p.callback : undefined);
53
- }
54
- catch (error) {
55
- p2.showError(error);
56
- core_1.hideLoading(p2.loading);
57
- }
58
- }
59
- }, []);
60
- return __assign({}, baseProps);
24
+ var params = react_router_1.useParams();
25
+ var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p);
26
+ react_1.useEffect(function () {
27
+ if (refForm) {
28
+ var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
29
+ core_1.initForm(baseProps.refForm.current, registerEvents);
30
+ }
31
+ var n = baseProps.getModelName(refForm.current);
32
+ var obj = {};
33
+ obj[n] = baseProps.createModel();
34
+ baseProps.setState(obj);
35
+ var keys;
36
+ if (p && !p.keys && service && service.metadata) {
37
+ var metadata = (p.metadata ? p.metadata : service.metadata());
38
+ if (metadata) {
39
+ var meta = edit_1.build(metadata);
40
+ keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
41
+ var version = (p.version ? p.version : (meta ? meta.version : undefined));
42
+ p.keys = keys;
43
+ p.version = version;
44
+ }
45
+ }
46
+ var id = core_1.buildId(params, keys);
47
+ if (p && p.initialize) {
48
+ p.initialize(id, baseProps.load, baseProps.setState, p.callback);
49
+ }
50
+ else {
51
+ try {
52
+ baseProps.load(id, p ? p.callback : undefined);
53
+ }
54
+ catch (error) {
55
+ p2.showError(error);
56
+ core_1.hideLoading(p2.loading);
57
+ }
58
+ }
59
+ }, []);
60
+ return __assign({}, baseProps);
61
61
  };
62
62
  exports.useEditProps = function (props, refForm, initialState, service, p2, p) {
63
- var params = react_router_1.useParams();
64
- var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p, props);
65
- react_1.useEffect(function () {
66
- if (refForm) {
67
- var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
68
- core_1.initForm(baseProps.refForm.current, registerEvents);
69
- }
70
- var n = baseProps.getModelName(refForm.current);
71
- var obj = {};
72
- obj[n] = baseProps.createModel();
73
- baseProps.setState(obj);
74
- var keys;
75
- if (p && !p.keys && service && service.metadata) {
76
- var metadata = (p.metadata ? p.metadata : service.metadata());
77
- if (metadata) {
78
- var meta = edit_1.build(metadata);
79
- keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
80
- var version = (p.version ? p.version : (meta ? meta.version : undefined));
81
- p.keys = keys;
82
- p.version = version;
83
- }
84
- }
85
- var id = core_1.buildId(params, keys);
86
- if (p && p.initialize) {
87
- p.initialize(id, baseProps.load, baseProps.setState, p.callback);
88
- }
89
- else {
90
- baseProps.load(id, p ? p.callback : undefined);
91
- }
92
- }, []);
93
- return __assign({}, baseProps);
63
+ var params = react_router_1.useParams();
64
+ var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p, props);
65
+ react_1.useEffect(function () {
66
+ if (refForm) {
67
+ var registerEvents = (p2.ui ? p2.ui.registerEvents : undefined);
68
+ core_1.initForm(baseProps.refForm.current, registerEvents);
69
+ }
70
+ var n = baseProps.getModelName(refForm.current);
71
+ var obj = {};
72
+ obj[n] = baseProps.createModel();
73
+ baseProps.setState(obj);
74
+ var keys;
75
+ if (p && !p.keys && service && service.metadata) {
76
+ var metadata = (p.metadata ? p.metadata : service.metadata());
77
+ if (metadata) {
78
+ var meta = edit_1.build(metadata);
79
+ keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
80
+ var version = (p.version ? p.version : (meta ? meta.version : undefined));
81
+ p.keys = keys;
82
+ p.version = version;
83
+ }
84
+ }
85
+ var id = core_1.buildId(params, keys);
86
+ if (p && p.initialize) {
87
+ p.initialize(id, baseProps.load, baseProps.setState, p.callback);
88
+ }
89
+ else {
90
+ baseProps.load(id, p ? p.callback : undefined);
91
+ }
92
+ }, []);
93
+ return __assign({}, baseProps);
94
94
  };
95
95
  exports.useEditOneProps = function (p) {
96
- return exports.useEditProps(p.props, p.refForm, p.initialState, p.service, p, p);
96
+ return exports.useEditProps(p.props, p.refForm, p.initialState, p.service, p, p);
97
97
  };
98
98
  exports.useEditOne = function (p) {
99
- return exports.useEdit(p.refForm, p.initialState, p.service, p, p);
99
+ return exports.useEdit(p.refForm, p.initialState, p.service, p, p);
100
100
  };
101
101
  exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
102
- var navigate = react_router_1.useNavigate();
103
- var addable = (p && p.patchable !== false ? true : undefined);
104
- var back = function (event) {
105
- if (event) {
106
- event.preventDefault();
107
- }
108
- navigate(-1);
109
- };
110
- var _a = react_1.useState(), running = _a[0], setRunning = _a[1];
111
- var getModelName = function (f) {
112
- if (p && p.name && p.name.length > 0) {
113
- return p.name;
114
- }
115
- return core_1.getModelName(f);
116
- };
117
- var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale);
118
- var state = baseProps.state, setState = baseProps.setState;
119
- var _b = merge_1.useMergeState({
120
- newMode: false,
121
- setBack: false,
122
- addable: addable,
123
- readOnly: p ? p.readOnly : undefined,
124
- originalModel: undefined
125
- }), flag = _b[0], setFlag = _b[1];
126
- var showModel = function (model) {
127
- var n = getModelName(refForm.current);
128
- var objSet = {};
129
- objSet[n] = model;
130
- setState(objSet);
131
- if (p && p.readOnly) {
132
- var f = refForm.current;
133
- formutil_1.readOnly(f);
134
- }
135
- };
136
- var resetState = function (newMode, model, originalModel) {
137
- setFlag({ newMode: newMode, originalModel: originalModel });
138
- showModel(model);
139
- };
140
- var _handleNotFound = function (form) {
141
- var msg = core_1.message(p1.resource.value, 'error_404', 'error');
142
- if (form) {
143
- formutil_1.readOnly(form);
144
- }
145
- p1.showError(msg.message, msg.title, undefined, function () { return window.history.back; });
146
- };
147
- var handleNotFound = (p && p.handleNotFound ? p.handleNotFound : _handleNotFound);
148
- var _getModel = function () {
149
- var n = getModelName(refForm.current);
150
- if (props) {
151
- return props[n] || state[n];
152
- }
153
- else {
154
- return state[n];
155
- }
156
- };
157
- var getModel = (p && p.getModel ? p.getModel : _getModel);
158
- var _createModel = function () {
159
- var metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
160
- if (metadata) {
161
- var obj = edit_1.createModel(metadata);
162
- return obj;
163
- }
164
- else {
165
- var obj = {};
166
- return obj;
167
- }
168
- };
169
- var createModel = (p && p.createModel ? p.createModel : _createModel);
170
- var create = function (event) {
171
- event.preventDefault();
172
- var obj = createModel();
173
- resetState(true, obj, undefined);
174
- var u = p1.ui;
175
- if (u) {
176
- setTimeout(function () {
177
- u.removeFormError(refForm.current);
178
- }, 100);
179
- }
180
- };
181
- var _onSave = function (isBack) {
182
- if (flag.newMode === true && flag.addable === false) {
183
- var m = core_1.message(p1.resource.value, 'error_permission_add', 'error_permission');
184
- p1.showError(m.message, m.title);
185
- return;
186
- }
187
- else if (p && flag.newMode === false && p.readOnly) {
188
- var msg = core_1.message(p1.resource.value, 'error_permission_edit', 'error_permission');
189
- p1.showError(msg.message, msg.title);
190
- return;
191
- }
192
- else {
193
- if (running === true) {
194
- return;
195
- }
196
- var obj_1 = getModel();
197
- var metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
198
- var keys = void 0;
199
- var version_1;
200
- if (p && metadata && (!p.keys || !p.version)) {
201
- var meta = edit_1.build(metadata);
202
- keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
203
- version_1 = (p.version ? p.version : (meta ? meta.version : undefined));
204
- }
205
- if (flag.newMode) {
206
- validate(obj_1, function () {
207
- var msg = core_1.message(p1.resource.value, 'msg_confirm_save', 'confirm', 'yes', 'no');
208
- p1.confirm(msg.message, msg.title, function () {
209
- doSave(obj_1, undefined, version_1, isBack);
210
- }, msg.no, msg.yes);
211
- });
212
- }
213
- else {
214
- var diffObj_1 = reflect_1.makeDiff(edit_1.initPropertyNullInModel(flag.originalModel, metadata), obj_1, keys, version_1);
215
- var objKeys = Object.keys(diffObj_1);
216
- if (objKeys.length === 0) {
217
- p1.showMessage(p1.resource.value('msg_no_change'));
102
+ var navigate = react_router_1.useNavigate();
103
+ var back = function (event) {
104
+ if (event) {
105
+ event.preventDefault();
106
+ }
107
+ navigate(-1);
108
+ };
109
+ var _a = react_1.useState(), running = _a[0], setRunning = _a[1];
110
+ var getModelName = function (f) {
111
+ if (p && p.name && p.name.length > 0) {
112
+ return p.name;
113
+ }
114
+ return core_1.getModelName(f);
115
+ };
116
+ var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale);
117
+ var state = baseProps.state, setState = baseProps.setState;
118
+ var _b = merge_1.useMergeState({
119
+ newMode: false,
120
+ setBack: false,
121
+ readOnly: p ? p.readOnly : undefined,
122
+ originalModel: undefined
123
+ }), flag = _b[0], setFlag = _b[1];
124
+ var showModel = function (model) {
125
+ var n = getModelName(refForm.current);
126
+ var objSet = {};
127
+ objSet[n] = model;
128
+ setState(objSet);
129
+ if (p && p.readOnly) {
130
+ var f = refForm.current;
131
+ formutil_1.setReadOnly(f);
132
+ }
133
+ };
134
+ var resetState = function (newMode, model, originalModel) {
135
+ setFlag({ newMode: newMode, originalModel: originalModel });
136
+ showModel(model);
137
+ };
138
+ var _handleNotFound = function (form) {
139
+ var msg = core_1.message(p1.resource.value, 'error_404', 'error');
140
+ if (form) {
141
+ formutil_1.setReadOnly(form);
142
+ }
143
+ p1.showError(msg.message, msg.title, undefined, function () { return window.history.back; });
144
+ };
145
+ var handleNotFound = (p && p.handleNotFound ? p.handleNotFound : _handleNotFound);
146
+ var _getModel = function () {
147
+ var n = getModelName(refForm.current);
148
+ if (props) {
149
+ return props[n] || state[n];
218
150
  }
219
151
  else {
220
- validate(obj_1, function () {
221
- var msg = core_1.message(p1.resource.value, 'msg_confirm_save', 'confirm', 'yes', 'no');
222
- p1.confirm(msg.message, msg.title, function () {
223
- doSave(obj_1, diffObj_1, version_1, isBack);
224
- }, msg.no, msg.yes);
225
- });
226
- }
227
- }
228
- }
229
- };
230
- var onSave = (p && p.onSave ? p.onSave : _onSave);
231
- var save = function (event) {
232
- event.preventDefault();
233
- event.persist();
234
- onSave();
235
- };
236
- var _validate = function (obj, callback) {
237
- if (p1.ui) {
238
- var valid = p1.ui.validateForm(refForm.current, state_1.localeOf(undefined, p1.getLocale));
239
- if (valid) {
240
- callback(obj);
241
- }
242
- }
243
- else {
244
- callback(obj);
245
- }
246
- };
247
- var validate = (p && p.validate ? p.validate : _validate);
248
- var _succeed = function (origin, msg, version, isBack, model) {
249
- if (model) {
250
- setFlag({ newMode: false });
251
- if (model && flag.setBack === true) {
252
- resetState(false, model, reflect_1.clone(model));
253
- }
254
- else {
255
- edit_1.handleVersion(origin, version);
256
- }
257
- }
258
- else {
259
- edit_1.handleVersion(origin, version);
260
- }
261
- p1.showMessage(msg);
262
- if (isBack) {
263
- back(undefined);
264
- }
265
- };
266
- var succeed = (p && p.succeed ? p.succeed : _succeed);
267
- var _fail = function (result) {
268
- var f = refForm.current;
269
- var u = p1.ui;
270
- if (u && f) {
271
- var unmappedErrors = u.showFormError(f, result);
272
- formutil_1.focusFirstError(f);
273
- if (unmappedErrors && unmappedErrors.length > 0) {
274
- var t = p1.resource.value('error');
275
- if (p1.ui && p1.ui.buildErrorMessage) {
276
- var msg = p1.ui.buildErrorMessage(unmappedErrors);
277
- p1.showError(msg, t);
152
+ return state[n];
153
+ }
154
+ };
155
+ var getModel = (p && p.getModel ? p.getModel : _getModel);
156
+ var _createModel = function () {
157
+ var metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
158
+ if (metadata) {
159
+ var obj = edit_1.createModel(metadata);
160
+ return obj;
278
161
  }
279
162
  else {
280
- p1.showError(unmappedErrors[0].field + ' ' + unmappedErrors[0].code + ' ' + unmappedErrors[0].message, t);
281
- }
282
- }
283
- }
284
- else {
285
- var t = p1.resource.value('error');
286
- if (result.length > 0) {
287
- p1.showError(result[0].field + ' ' + result[0].code + ' ' + result[0].message, t);
288
- }
289
- else {
290
- p1.showError(t, t);
291
- }
292
- }
293
- };
294
- var fail = (p && p.fail ? p.fail : _fail);
295
- var _handleError = function (err) {
296
- if (err) {
297
- setRunning(false);
298
- core_1.hideLoading(p1.loading);
299
- var errMsg = p1.resource.value('error_internal');
300
- var data = (err && err.response) ? err.response : err;
301
- if (data.status === 400) {
302
- var errMsg_1 = p1.resource.value('error_400');
303
- p1.showError(errMsg_1, "Error");
304
- }
305
- else {
306
- p1.showError(errMsg, "Error");
307
- }
308
- }
309
- };
310
- var handleError = (p && p.handleError ? p.handleError : _handleError);
311
- var _postSave = function (r, origin, version, isPatch, backOnSave) {
312
- setRunning(false);
313
- core_1.hideLoading(p1.loading);
314
- var x = r;
315
- var successMsg = p1.resource.value('msg_save_success');
316
- var newMod = flag.newMode;
317
- var st = core_1.createEditStatus(p ? p.status : undefined);
318
- if (Array.isArray(x)) {
319
- fail(x);
320
- }
321
- else if (!isNaN(x)) {
322
- if (x === st.success) {
323
- succeed(origin, successMsg, version, backOnSave);
324
- }
325
- else {
326
- if (newMod && x === st.duplicate_key) {
327
- handleDuplicateKey();
328
- }
329
- else if (!newMod && x === st.not_found) {
330
- handleNotFound();
331
- }
332
- else if (!newMod && x === st.version_error) {
333
- var title = p1.resource.value('error');
334
- var err = p1.resource.value('error_version');
335
- p1.showError(err, title);
163
+ var obj = {};
164
+ return obj;
165
+ }
166
+ };
167
+ var createModel = (p && p.createModel ? p.createModel : _createModel);
168
+ var create = function (event) {
169
+ event.preventDefault();
170
+ var obj = createModel();
171
+ resetState(true, obj, undefined);
172
+ var u = p1.ui;
173
+ if (u) {
174
+ setTimeout(function () {
175
+ u.removeFormError(refForm.current);
176
+ }, 100);
177
+ }
178
+ };
179
+ var _onSave = function (isBack) {
180
+ if (flag.newMode === true) {
181
+ var m = core_1.message(p1.resource.value, 'error_permission_add', 'error_permission');
182
+ p1.showError(m.message, m.title);
183
+ return;
184
+ }
185
+ else if (p && flag.newMode === false && p.readOnly) {
186
+ var msg = core_1.message(p1.resource.value, 'error_permission_edit', 'error_permission');
187
+ p1.showError(msg.message, msg.title);
188
+ return;
336
189
  }
337
190
  else {
338
- edit_1.handleStatus(x, st, p1.resource.value, p1.showError);
339
- }
340
- }
341
- }
342
- else {
343
- var result = r;
344
- if (isPatch) {
345
- var keys = Object.keys(result);
346
- var a = origin;
347
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
348
- var k = keys_1[_i];
349
- a[k] = result[k];
350
- }
351
- succeed(a, successMsg, undefined, backOnSave);
352
- }
353
- else {
354
- succeed(origin, successMsg, version, backOnSave, r);
355
- }
356
- p1.showMessage(successMsg);
357
- }
358
- };
359
- var postSave = (p && p.postSave ? p.postSave : _postSave);
360
- var _handleDuplicateKey = function (result) {
361
- var msg = core_1.message(p1.resource.value, 'error_duplicate_key', 'error');
362
- p1.showError(msg.message, msg.title);
363
- };
364
- var handleDuplicateKey = (p && p.handleDuplicateKey ? p.handleDuplicateKey : _handleDuplicateKey);
365
- var _doSave = function (obj, body, version, isBack) {
366
- setRunning(true);
367
- core_1.showLoading(p1.loading);
368
- var isBackO = (isBack != null && isBack !== undefined ? isBack : false);
369
- var patchable = (p ? p.patchable : true);
370
- if (flag.newMode === false) {
371
- if (service.patch && patchable !== false && body && Object.keys(body).length > 0) {
372
- service.patch(body).then(function (result) {
373
- postSave(result, obj, version, true, isBackO);
374
- }).catch(handleError);
375
- }
376
- else {
377
- service.update(obj).then(function (result) { return postSave(result, obj, version, false, isBackO); }).catch(handleError);
378
- }
379
- }
380
- else {
381
- service.insert(obj).then(function (result) { return postSave(result, obj, version, false, isBackO); }).catch(handleError);
382
- }
383
- };
384
- var doSave = (p && p.doSave ? p.doSave : _doSave);
385
- var _load = function (_id, callback) {
386
- var id = _id;
387
- if (id != null && id !== '') {
388
- setRunning(true);
389
- core_1.showLoading(p1.loading);
390
- service.load(id).then(function (obj) {
391
- if (!obj) {
392
- handleNotFound(refForm.current);
191
+ if (running === true) {
192
+ return;
193
+ }
194
+ var obj_1 = getModel();
195
+ var metadata = (p && p.metadata ? p.metadata : (service.metadata ? service.metadata() : undefined));
196
+ var keys = void 0;
197
+ var version_1;
198
+ if (p && metadata && (!p.keys || !p.version)) {
199
+ var meta = edit_1.build(metadata);
200
+ keys = (p.keys ? p.keys : (meta ? meta.keys : undefined));
201
+ version_1 = (p.version ? p.version : (meta ? meta.version : undefined));
202
+ }
203
+ if (flag.newMode) {
204
+ validate(obj_1, function () {
205
+ var msg = core_1.message(p1.resource.value, 'msg_confirm_save', 'confirm', 'yes', 'no');
206
+ p1.confirm(msg.message, msg.title, function () {
207
+ doSave(obj_1, undefined, version_1, isBack);
208
+ }, msg.no, msg.yes);
209
+ });
210
+ }
211
+ else {
212
+ var diffObj_1 = reflect_1.makeDiff(edit_1.initPropertyNullInModel(flag.originalModel, metadata), obj_1, keys, version_1);
213
+ var objKeys = Object.keys(diffObj_1);
214
+ if (objKeys.length === 0) {
215
+ p1.showMessage(p1.resource.value('msg_no_change'));
216
+ }
217
+ else {
218
+ validate(obj_1, function () {
219
+ var msg = core_1.message(p1.resource.value, 'msg_confirm_save', 'confirm', 'yes', 'no');
220
+ p1.confirm(msg.message, msg.title, function () {
221
+ doSave(obj_1, diffObj_1, version_1, isBack);
222
+ }, msg.no, msg.yes);
223
+ });
224
+ }
225
+ }
226
+ }
227
+ };
228
+ var onSave = (p && p.onSave ? p.onSave : _onSave);
229
+ var save = function (event) {
230
+ event.preventDefault();
231
+ event.persist();
232
+ onSave();
233
+ };
234
+ var _validate = function (obj, callback) {
235
+ if (p1.ui) {
236
+ var valid = p1.ui.validateForm(refForm.current, state_1.localeOf(undefined, p1.getLocale));
237
+ if (valid) {
238
+ callback(obj);
239
+ }
393
240
  }
394
241
  else {
395
- setFlag({ newMode: false, originalModel: reflect_1.clone(obj) });
396
- if (callback) {
397
- callback(obj, showModel);
398
- }
399
- else {
400
- showModel(obj);
401
- }
242
+ callback(obj);
402
243
  }
403
- setRunning(false);
404
- core_1.hideLoading(p1.loading);
405
- }).catch(function (err) {
406
- var _a, _b, _c;
407
- var data = (err && err.response) ? err.response : err;
408
- var r = p1.resource;
409
- var title = r.value('error');
410
- var msg = r.value('error_internal');
411
- if (data && data.status === 422) {
412
- fail((_a = err.response) === null || _a === void 0 ? void 0 : _a.data);
413
- var obj = (_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.value;
414
- if (obj) {
415
- callback ? callback(obj, showModel) : showModel(obj);
416
- }
244
+ };
245
+ var validate = (p && p.validate ? p.validate : _validate);
246
+ var _succeed = function (msg, origin, version, isBack, model) {
247
+ if (model) {
248
+ setFlag({ newMode: false });
249
+ if (model && flag.setBack === true) {
250
+ resetState(false, model, reflect_1.clone(model));
251
+ }
252
+ else {
253
+ edit_1.handleVersion(origin, version);
254
+ }
255
+ }
256
+ else {
257
+ edit_1.handleVersion(origin, version);
258
+ }
259
+ p1.showMessage(msg);
260
+ if (isBack) {
261
+ back(undefined);
262
+ }
263
+ };
264
+ var succeed = (p && p.succeed ? p.succeed : _succeed);
265
+ var _fail = function (result) {
266
+ var f = refForm.current;
267
+ var u = p1.ui;
268
+ if (u && f) {
269
+ var unmappedErrors = u.showFormError(f, result);
270
+ formutil_1.focusFirstError(f);
271
+ if (unmappedErrors && unmappedErrors.length > 0) {
272
+ var t = p1.resource.value('error');
273
+ if (p1.ui && p1.ui.buildErrorMessage) {
274
+ var msg = p1.ui.buildErrorMessage(unmappedErrors);
275
+ p1.showError(msg, t);
276
+ }
277
+ else {
278
+ p1.showError(unmappedErrors[0].field + ' ' + unmappedErrors[0].code + ' ' + unmappedErrors[0].message, t);
279
+ }
280
+ }
417
281
  }
418
282
  else {
419
- if (data && data.status === 404) {
420
- handleNotFound(refForm.current);
421
- }
422
- else {
423
- if (data.status && !isNaN(data.status)) {
424
- msg = core_1.messageByHttpStatus(data.status, r.value);
283
+ var t = p1.resource.value('error');
284
+ if (result.length > 0) {
285
+ p1.showError(result[0].field + ' ' + result[0].code + ' ' + result[0].message, t);
425
286
  }
426
- if (data && (data.status === 401 || data.status === 403)) {
427
- formutil_1.readOnly(refForm.current);
287
+ else {
288
+ p1.showError(t, t);
428
289
  }
429
- p1.showError(msg, title);
430
- }
431
290
  }
291
+ };
292
+ var fail = (p && p.fail ? p.fail : _fail);
293
+ var _handleError = function (err) {
294
+ if (err) {
295
+ setRunning(false);
296
+ core_1.hideLoading(p1.loading);
297
+ var errMsg = p1.resource.value('error_internal');
298
+ var data = (err && err.response) ? err.response : err;
299
+ if (data.status === 400) {
300
+ var errMsg_1 = p1.resource.value('error_400');
301
+ p1.showError(errMsg_1, "Error");
302
+ }
303
+ else {
304
+ p1.showError(errMsg, "Error");
305
+ }
306
+ }
307
+ };
308
+ var handleError = (p && p.handleError ? p.handleError : _handleError);
309
+ var _postSave = function (r, origin, version, isPatch, backOnSave) {
432
310
  setRunning(false);
433
311
  core_1.hideLoading(p1.loading);
434
- });
435
- }
436
- else {
437
- var obj = createModel();
438
- setFlag({ newMode: true, originalModel: undefined });
439
- if (callback) {
440
- callback(obj, showModel);
441
- }
442
- else {
443
- showModel(obj);
444
- }
445
- }
446
- };
447
- var load = (p && p.load ? p.load : _load);
448
- return __assign(__assign({}, baseProps), {
449
- back: back,
450
- refForm: refForm, ui: p1.ui, resource: p1.resource.resource(), flag: flag,
451
- running: running,
452
- setRunning: setRunning,
453
- showModel: showModel,
454
- getModelName: getModelName,
455
- resetState: resetState,
456
- handleNotFound: handleNotFound,
457
- getModel: getModel,
458
- createModel: createModel,
459
- create: create,
460
- save: save,
461
- onSave: onSave,
462
- confirm: confirm,
463
- validate: validate, showMessage: p1.showMessage, succeed: succeed,
464
- fail: fail,
465
- postSave: postSave,
466
- handleDuplicateKey: handleDuplicateKey,
467
- load: load,
468
- doSave: doSave
469
- });
312
+ var x = r;
313
+ var successMsg = p1.resource.value('msg_save_success');
314
+ var newMod = flag.newMode;
315
+ if (Array.isArray(x)) {
316
+ fail(x);
317
+ }
318
+ else if (!isNaN(x)) {
319
+ if (x > 0) {
320
+ succeed(successMsg, origin, version, backOnSave);
321
+ }
322
+ else {
323
+ if (newMod && x <= 0) {
324
+ handleDuplicateKey();
325
+ }
326
+ else if (!newMod && x === 0) {
327
+ handleNotFound();
328
+ }
329
+ else {
330
+ var title = p1.resource.value('error');
331
+ var err = p1.resource.value('error_version');
332
+ p1.showError(err, title);
333
+ }
334
+ }
335
+ }
336
+ else {
337
+ var result = r;
338
+ if (isPatch) {
339
+ var keys = Object.keys(result);
340
+ var a = origin;
341
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
342
+ var k = keys_1[_i];
343
+ a[k] = result[k];
344
+ }
345
+ succeed(successMsg, a, undefined, backOnSave, a);
346
+ }
347
+ else {
348
+ succeed(successMsg, origin, version, backOnSave, r);
349
+ }
350
+ p1.showMessage(successMsg);
351
+ }
352
+ };
353
+ var postSave = (p && p.postSave ? p.postSave : _postSave);
354
+ var _handleDuplicateKey = function (result) {
355
+ var msg = core_1.message(p1.resource.value, 'error_duplicate_key', 'error');
356
+ p1.showError(msg.message, msg.title);
357
+ };
358
+ var handleDuplicateKey = (p && p.handleDuplicateKey ? p.handleDuplicateKey : _handleDuplicateKey);
359
+ var _doSave = function (obj, body, version, isBack) {
360
+ setRunning(true);
361
+ core_1.showLoading(p1.loading);
362
+ var isBackO = (isBack != null && isBack !== undefined ? isBack : false);
363
+ var patchable = (p ? p.patchable : true);
364
+ if (flag.newMode === false) {
365
+ if (service.patch && patchable !== false && body && Object.keys(body).length > 0) {
366
+ service.patch(body).then(function (result) {
367
+ postSave(result, obj, version, true, isBackO);
368
+ }).catch(handleError);
369
+ }
370
+ else {
371
+ service.update(obj).then(function (result) { return postSave(result, obj, version, false, isBackO); }).catch(handleError);
372
+ }
373
+ }
374
+ else {
375
+ service.insert(obj).then(function (result) { return postSave(result, obj, version, false, isBackO); }).catch(handleError);
376
+ }
377
+ };
378
+ var doSave = (p && p.doSave ? p.doSave : _doSave);
379
+ var _load = function (_id, callback) {
380
+ var id = _id;
381
+ if (id != null && id !== '') {
382
+ setRunning(true);
383
+ core_1.showLoading(p1.loading);
384
+ service.load(id).then(function (obj) {
385
+ if (!obj) {
386
+ handleNotFound(refForm.current);
387
+ }
388
+ else {
389
+ setFlag({ newMode: false, originalModel: reflect_1.clone(obj) });
390
+ if (callback) {
391
+ callback(obj, showModel);
392
+ }
393
+ else {
394
+ showModel(obj);
395
+ }
396
+ }
397
+ setRunning(false);
398
+ core_1.hideLoading(p1.loading);
399
+ }).catch(function (err) {
400
+ var _a, _b, _c;
401
+ var data = (err && err.response) ? err.response : err;
402
+ var r = p1.resource;
403
+ var title = r.value('error');
404
+ var msg = r.value('error_internal');
405
+ if (data && data.status === 422) {
406
+ fail((_a = err.response) === null || _a === void 0 ? void 0 : _a.data);
407
+ var obj = (_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.value;
408
+ if (obj) {
409
+ callback ? callback(obj, showModel) : showModel(obj);
410
+ }
411
+ }
412
+ else {
413
+ if (data && data.status === 404) {
414
+ handleNotFound(refForm.current);
415
+ }
416
+ else {
417
+ if (data.status && !isNaN(data.status)) {
418
+ msg = core_1.messageByHttpStatus(data.status, r.value);
419
+ }
420
+ if (data && (data.status === 401 || data.status === 403)) {
421
+ formutil_1.setReadOnly(refForm.current);
422
+ }
423
+ p1.showError(msg, title);
424
+ }
425
+ }
426
+ setRunning(false);
427
+ core_1.hideLoading(p1.loading);
428
+ });
429
+ }
430
+ else {
431
+ var obj = createModel();
432
+ setFlag({ newMode: true, originalModel: undefined });
433
+ if (callback) {
434
+ callback(obj, showModel);
435
+ }
436
+ else {
437
+ showModel(obj);
438
+ }
439
+ }
440
+ };
441
+ var load = (p && p.load ? p.load : _load);
442
+ return __assign(__assign({}, baseProps), { back: back,
443
+ refForm: refForm, ui: p1.ui, resource: p1.resource.resource(), flag: flag,
444
+ running: running,
445
+ setRunning: setRunning,
446
+ showModel: showModel,
447
+ getModelName: getModelName,
448
+ resetState: resetState,
449
+ handleNotFound: handleNotFound,
450
+ getModel: getModel,
451
+ createModel: createModel,
452
+ create: create,
453
+ save: save,
454
+ onSave: onSave,
455
+ confirm: confirm,
456
+ validate: validate, showMessage: p1.showMessage, succeed: succeed,
457
+ fail: fail,
458
+ postSave: postSave,
459
+ handleDuplicateKey: handleDuplicateKey,
460
+ load: load,
461
+ doSave: doSave });
470
462
  };