react-hook-core 0.2.0 → 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,444 +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 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.readOnly(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.readOnly(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];
150
- }
151
- else {
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;
161
- }
162
- else {
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;
189
- }
190
- else {
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'));
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];
216
150
  }
217
151
  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
- }
240
- }
241
- else {
242
- callback(obj);
243
- }
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);
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;
276
161
  }
277
162
  else {
278
- p1.showError(unmappedErrors[0].field + ' ' + unmappedErrors[0].code + ' ' + unmappedErrors[0].message, t);
279
- }
280
- }
281
- }
282
- else {
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);
286
- }
287
- else {
288
- p1.showError(t, t);
289
- }
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) {
310
- setRunning(false);
311
- core_1.hideLoading(p1.loading);
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();
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;
328
189
  }
329
190
  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);
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
+ }
387
240
  }
388
241
  else {
389
- setFlag({ newMode: false, originalModel: reflect_1.clone(obj) });
390
- if (callback) {
391
- callback(obj, showModel);
392
- }
393
- else {
394
- showModel(obj);
395
- }
242
+ callback(obj);
396
243
  }
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
- }
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
+ }
411
281
  }
412
282
  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);
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);
419
286
  }
420
- if (data && (data.status === 401 || data.status === 403)) {
421
- formutil_1.readOnly(refForm.current);
287
+ else {
288
+ p1.showError(t, t);
422
289
  }
423
- p1.showError(msg, title);
424
- }
425
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) {
426
310
  setRunning(false);
427
311
  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), {
443
- back: back,
444
- refForm: refForm, ui: p1.ui, resource: p1.resource.resource(), flag: flag,
445
- running: running,
446
- setRunning: setRunning,
447
- showModel: showModel,
448
- getModelName: getModelName,
449
- resetState: resetState,
450
- handleNotFound: handleNotFound,
451
- getModel: getModel,
452
- createModel: createModel,
453
- create: create,
454
- save: save,
455
- onSave: onSave,
456
- confirm: confirm,
457
- validate: validate, showMessage: p1.showMessage, succeed: succeed,
458
- fail: fail,
459
- postSave: postSave,
460
- handleDuplicateKey: handleDuplicateKey,
461
- load: load,
462
- doSave: doSave
463
- });
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 });
464
462
  };