react-hook-core 0.4.14 → 0.4.16
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/common.js +60 -3
- package/lib/index.js +0 -1
- package/lib/useEdit.js +36 -42
- package/lib/useSearch.js +12 -15
- package/package.json +1 -1
- package/src/common.ts +65 -5
- package/src/core.ts +0 -4
- package/src/diff.ts +1 -3
- package/src/index.ts +0 -1
- package/src/useEdit.ts +26 -36
- package/src/useMessage.ts +1 -7
- package/src/useSearch.ts +16 -15
- package/tsconfig.json +3 -13
- package/lib/input.js +0 -118
- package/src/input.ts +0 -143
package/lib/common.js
CHANGED
|
@@ -13,7 +13,7 @@ function error(err, resource, ae) {
|
|
|
13
13
|
var title = resource.error
|
|
14
14
|
var msg = resource.error_internal
|
|
15
15
|
if (!err) {
|
|
16
|
-
ae(msg, title)
|
|
16
|
+
ae(msg, undefined, title)
|
|
17
17
|
return
|
|
18
18
|
}
|
|
19
19
|
var data = err && err.response ? err.response : err
|
|
@@ -22,9 +22,66 @@ function error(err, resource, ae) {
|
|
|
22
22
|
if (status_1 && !isNaN(status_1)) {
|
|
23
23
|
msg = messageByHttpStatus(status_1, resource)
|
|
24
24
|
}
|
|
25
|
-
ae(msg, title)
|
|
25
|
+
ae(msg, undefined, title)
|
|
26
26
|
} else {
|
|
27
|
-
ae(msg, title)
|
|
27
|
+
ae(msg, undefined, title)
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
exports.error = error
|
|
31
|
+
function showLoading(loading) {
|
|
32
|
+
if (loading) {
|
|
33
|
+
if (typeof loading === "function") {
|
|
34
|
+
loading()
|
|
35
|
+
} else {
|
|
36
|
+
loading.showLoading()
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.showLoading = showLoading
|
|
41
|
+
function hideLoading(loading) {
|
|
42
|
+
if (loading) {
|
|
43
|
+
if (typeof loading === "function") {
|
|
44
|
+
loading()
|
|
45
|
+
} else {
|
|
46
|
+
loading.hideLoading()
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.hideLoading = hideLoading
|
|
51
|
+
function initForm(form, initMat) {
|
|
52
|
+
if (form) {
|
|
53
|
+
setTimeout(function () {
|
|
54
|
+
if (initMat) {
|
|
55
|
+
initMat(form)
|
|
56
|
+
}
|
|
57
|
+
focusFirstElement(form)
|
|
58
|
+
}, 100)
|
|
59
|
+
}
|
|
60
|
+
return form
|
|
61
|
+
}
|
|
62
|
+
exports.initForm = initForm
|
|
63
|
+
function focusFirstElement(form) {
|
|
64
|
+
var i = 0
|
|
65
|
+
var len = form.length
|
|
66
|
+
for (i = 0; i < len; i++) {
|
|
67
|
+
var ctrl = form[i]
|
|
68
|
+
if (!(ctrl.readOnly || ctrl.disabled)) {
|
|
69
|
+
var nodeName = ctrl.nodeName
|
|
70
|
+
var type = ctrl.getAttribute("type")
|
|
71
|
+
if (type) {
|
|
72
|
+
var t = type.toUpperCase()
|
|
73
|
+
if (t === "BUTTON" || t === "SUBMIT") {
|
|
74
|
+
ctrl.focus()
|
|
75
|
+
}
|
|
76
|
+
if (nodeName === "INPUT") {
|
|
77
|
+
nodeName = t
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "CHECKBOX" && nodeName !== "RADIO") {
|
|
81
|
+
ctrl.focus()
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.focusFirstElement = focusFirstElement
|
package/lib/index.js
CHANGED
package/lib/useEdit.js
CHANGED
|
@@ -20,7 +20,6 @@ var common_1 = require("./common")
|
|
|
20
20
|
var core_1 = require("./core")
|
|
21
21
|
var edit_1 = require("./edit")
|
|
22
22
|
var formutil_1 = require("./formutil")
|
|
23
|
-
var input_1 = require("./input")
|
|
24
23
|
var reflect_1 = require("./reflect")
|
|
25
24
|
var state_1 = require("./state")
|
|
26
25
|
var update_1 = require("./update")
|
|
@@ -113,13 +112,13 @@ function handleVersion(obj, version) {
|
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
114
|
exports.handleVersion = handleVersion
|
|
116
|
-
exports.useEdit = function (refForm, initialState, service, p2, p) {
|
|
115
|
+
exports.useEdit = function (refForm, initialState, service, resource, p2, p) {
|
|
117
116
|
var params = react_router_1.useParams()
|
|
118
|
-
var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p)
|
|
117
|
+
var baseProps = exports.useCoreEdit(refForm, initialState, service, resource, p2, p)
|
|
119
118
|
react_1.useEffect(function () {
|
|
120
119
|
if (refForm) {
|
|
121
120
|
var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
|
|
122
|
-
|
|
121
|
+
common_1.initForm(baseProps.refForm.current, registerEvents)
|
|
123
122
|
}
|
|
124
123
|
var n = baseProps.getModelName(refForm.current)
|
|
125
124
|
var obj = {}
|
|
@@ -144,19 +143,19 @@ exports.useEdit = function (refForm, initialState, service, p2, p) {
|
|
|
144
143
|
baseProps.load(id, p ? p.callback : undefined)
|
|
145
144
|
} catch (error) {
|
|
146
145
|
p2.showError(error)
|
|
147
|
-
|
|
146
|
+
common_1.hideLoading(p2.loading)
|
|
148
147
|
}
|
|
149
148
|
}
|
|
150
149
|
}, [])
|
|
151
150
|
return __assign({}, baseProps)
|
|
152
151
|
}
|
|
153
|
-
exports.useEditProps = function (props, refForm, initialState, service, p2, p) {
|
|
152
|
+
exports.useEditProps = function (props, refForm, initialState, service, resource, p2, p) {
|
|
154
153
|
var params = react_router_1.useParams()
|
|
155
|
-
var baseProps = exports.useCoreEdit(refForm, initialState, service, p2, p, props)
|
|
154
|
+
var baseProps = exports.useCoreEdit(refForm, initialState, service, resource, p2, p, props)
|
|
156
155
|
react_1.useEffect(function () {
|
|
157
156
|
if (refForm) {
|
|
158
157
|
var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
|
|
159
|
-
|
|
158
|
+
common_1.initForm(baseProps.refForm.current, registerEvents)
|
|
160
159
|
}
|
|
161
160
|
var n = baseProps.getModelName(refForm.current)
|
|
162
161
|
var obj = {}
|
|
@@ -182,13 +181,13 @@ exports.useEditProps = function (props, refForm, initialState, service, p2, p) {
|
|
|
182
181
|
}, [])
|
|
183
182
|
return __assign({}, baseProps)
|
|
184
183
|
}
|
|
185
|
-
exports.useEditOneProps = function (p) {
|
|
186
|
-
return exports.useEditProps(p.props, p.refForm, p.initialState, p.service, p, p)
|
|
184
|
+
exports.useEditOneProps = function (resource, p) {
|
|
185
|
+
return exports.useEditProps(p.props, p.refForm, p.initialState, p.service, resource, p, p)
|
|
187
186
|
}
|
|
188
|
-
exports.useEditOne = function (p) {
|
|
189
|
-
return exports.useEdit(p.refForm, p.initialState, p.service, p, p)
|
|
187
|
+
exports.useEditOne = function (resource, p) {
|
|
188
|
+
return exports.useEdit(p.refForm, p.initialState, p.service, resource, p, p)
|
|
190
189
|
}
|
|
191
|
-
exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
190
|
+
exports.useCoreEdit = function (refForm, initialState, service, resource, p1, p, props) {
|
|
192
191
|
var navigate = react_router_1.useNavigate()
|
|
193
192
|
var _a = react_1.useState(),
|
|
194
193
|
running = _a[0],
|
|
@@ -228,10 +227,13 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
228
227
|
if (form) {
|
|
229
228
|
formutil_1.setReadOnly(form)
|
|
230
229
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
230
|
+
p1.showError(
|
|
231
|
+
resource.error_404,
|
|
232
|
+
function () {
|
|
233
|
+
return window.history.back
|
|
234
|
+
},
|
|
235
|
+
resource.error,
|
|
236
|
+
)
|
|
235
237
|
}
|
|
236
238
|
var handleNotFound = p && p.handleNotFound ? p.handleNotFound : _handleNotFound
|
|
237
239
|
var _getModel = function () {
|
|
@@ -256,7 +258,6 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
256
258
|
if (objKeys.length === 0) {
|
|
257
259
|
navigate(-1)
|
|
258
260
|
} else {
|
|
259
|
-
var resource = p1.resource.resource()
|
|
260
261
|
p1.confirm(
|
|
261
262
|
resource.msg_confirm_back,
|
|
262
263
|
function () {
|
|
@@ -292,12 +293,11 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
var _onSave = function (isBack) {
|
|
295
|
-
var resource = p1.resource.resource()
|
|
296
296
|
if (p && p.readOnly) {
|
|
297
297
|
if (flag.newMode === true) {
|
|
298
|
-
p1.showError(resource.error_permission_add, resource.error_permission)
|
|
298
|
+
p1.showError(resource.error_permission_add, undefined, resource.error_permission)
|
|
299
299
|
} else {
|
|
300
|
-
p1.showError(resource.error_permission_edit, resource.error_permission)
|
|
300
|
+
p1.showError(resource.error_permission_edit, undefined, resource.error_permission)
|
|
301
301
|
}
|
|
302
302
|
} else {
|
|
303
303
|
if (running === true) {
|
|
@@ -380,7 +380,6 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
380
380
|
}
|
|
381
381
|
var succeed = p && p.succeed ? p.succeed : _succeed
|
|
382
382
|
var _fail = function (result) {
|
|
383
|
-
var resource = p1.resource.resource()
|
|
384
383
|
var f = refForm.current
|
|
385
384
|
var u = p1.ui
|
|
386
385
|
if (u && f) {
|
|
@@ -390,42 +389,40 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
390
389
|
var t = resource.error
|
|
391
390
|
if (p1.ui && p1.ui.buildErrorMessage) {
|
|
392
391
|
var msg = p1.ui.buildErrorMessage(unmappedErrors)
|
|
393
|
-
p1.showError(msg, t)
|
|
392
|
+
p1.showError(msg, undefined, t)
|
|
394
393
|
} else {
|
|
395
|
-
p1.showError(unmappedErrors[0].field + " " + unmappedErrors[0].code + " " + unmappedErrors[0].message, t)
|
|
394
|
+
p1.showError(unmappedErrors[0].field + " " + unmappedErrors[0].code + " " + unmappedErrors[0].message, undefined, t)
|
|
396
395
|
}
|
|
397
396
|
}
|
|
398
397
|
} else {
|
|
399
398
|
var t = resource.error
|
|
400
399
|
if (result.length > 0) {
|
|
401
|
-
p1.showError(result[0].field + " " + result[0].code + " " + result[0].message, t)
|
|
400
|
+
p1.showError(result[0].field + " " + result[0].code + " " + result[0].message, undefined, t)
|
|
402
401
|
} else {
|
|
403
|
-
p1.showError(t, t)
|
|
402
|
+
p1.showError(t, undefined, t)
|
|
404
403
|
}
|
|
405
404
|
}
|
|
406
405
|
}
|
|
407
406
|
var fail = p && p.fail ? p.fail : _fail
|
|
408
407
|
var _handleError = function (err) {
|
|
409
408
|
if (err) {
|
|
410
|
-
var resource = p1.resource.resource()
|
|
411
409
|
setRunning(false)
|
|
412
|
-
|
|
410
|
+
common_1.hideLoading(p1.loading)
|
|
413
411
|
var errHeader = resource.error
|
|
414
412
|
var errMsg = resource.error_internal
|
|
415
413
|
var data = err && err.response ? err.response : err
|
|
416
414
|
if (data.status === 400) {
|
|
417
415
|
var errMsg_1 = resource.error_400
|
|
418
|
-
p1.showError(errMsg_1, errHeader)
|
|
416
|
+
p1.showError(errMsg_1, undefined, errHeader)
|
|
419
417
|
} else {
|
|
420
|
-
p1.showError(errMsg, errHeader)
|
|
418
|
+
p1.showError(errMsg, undefined, errHeader)
|
|
421
419
|
}
|
|
422
420
|
}
|
|
423
421
|
}
|
|
424
422
|
var handleError = p && p.handleError ? p.handleError : _handleError
|
|
425
423
|
var _postSave = function (r, origin, version, isPatch, backOnSave) {
|
|
426
424
|
setRunning(false)
|
|
427
|
-
|
|
428
|
-
input_1.hideLoading(p1.loading)
|
|
425
|
+
common_1.hideLoading(p1.loading)
|
|
429
426
|
var x = r
|
|
430
427
|
var successMsg = resource.msg_save_success
|
|
431
428
|
var newMod = flag.newMode
|
|
@@ -442,7 +439,7 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
442
439
|
} else {
|
|
443
440
|
var title = resource.error
|
|
444
441
|
var err = resource.error_version
|
|
445
|
-
p1.showError(err, title)
|
|
442
|
+
p1.showError(err, undefined, title)
|
|
446
443
|
}
|
|
447
444
|
}
|
|
448
445
|
} else {
|
|
@@ -463,13 +460,12 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
463
460
|
}
|
|
464
461
|
var postSave = p && p.postSave ? p.postSave : _postSave
|
|
465
462
|
var _handleDuplicateKey = function (result) {
|
|
466
|
-
|
|
467
|
-
p1.showError(resource.error_duplicate_key, resource.error)
|
|
463
|
+
p1.showError(resource.error_duplicate_key, undefined, resource.error)
|
|
468
464
|
}
|
|
469
465
|
var handleDuplicateKey = p && p.handleDuplicateKey ? p.handleDuplicateKey : _handleDuplicateKey
|
|
470
466
|
var _doSave = function (obj, body, version, isBack) {
|
|
471
467
|
setRunning(true)
|
|
472
|
-
|
|
468
|
+
common_1.showLoading(p1.loading)
|
|
473
469
|
var isBackO = isBack != null && isBack !== undefined ? isBack : false
|
|
474
470
|
var patchable = p ? p.patchable : true
|
|
475
471
|
if (flag.newMode === false) {
|
|
@@ -502,7 +498,7 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
502
498
|
var id = _id
|
|
503
499
|
if (id != null && id !== "") {
|
|
504
500
|
setRunning(true)
|
|
505
|
-
|
|
501
|
+
common_1.showLoading(p1.loading)
|
|
506
502
|
service
|
|
507
503
|
.load(id)
|
|
508
504
|
.then(function (obj) {
|
|
@@ -517,12 +513,11 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
517
513
|
}
|
|
518
514
|
}
|
|
519
515
|
setRunning(false)
|
|
520
|
-
|
|
516
|
+
common_1.hideLoading(p1.loading)
|
|
521
517
|
})
|
|
522
518
|
.catch(function (err) {
|
|
523
519
|
var _a, _b, _c
|
|
524
520
|
var data = err && err.response ? err.response : err
|
|
525
|
-
var resource = p1.resource.resource()
|
|
526
521
|
var title = resource.error
|
|
527
522
|
var msg = resource.error_internal
|
|
528
523
|
if (data && data.status === 422) {
|
|
@@ -541,11 +536,11 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
541
536
|
if (data && (data.status === 401 || data.status === 403)) {
|
|
542
537
|
formutil_1.setReadOnly(refForm.current)
|
|
543
538
|
}
|
|
544
|
-
p1.showError(msg, title)
|
|
539
|
+
p1.showError(msg, undefined, title)
|
|
545
540
|
}
|
|
546
541
|
}
|
|
547
542
|
setRunning(false)
|
|
548
|
-
|
|
543
|
+
common_1.hideLoading(p1.loading)
|
|
549
544
|
})
|
|
550
545
|
} else {
|
|
551
546
|
var obj = createModel()
|
|
@@ -562,7 +557,6 @@ exports.useCoreEdit = function (refForm, initialState, service, p1, p, props) {
|
|
|
562
557
|
back: back,
|
|
563
558
|
refForm: refForm,
|
|
564
559
|
ui: p1.ui,
|
|
565
|
-
resource: p1.resource.resource(),
|
|
566
560
|
flag: flag,
|
|
567
561
|
running: running,
|
|
568
562
|
setRunning: setRunning,
|
package/lib/useSearch.js
CHANGED
|
@@ -24,7 +24,6 @@ Object.defineProperty(exports, "__esModule", { value: true })
|
|
|
24
24
|
var react_1 = require("react")
|
|
25
25
|
var common_1 = require("./common")
|
|
26
26
|
var core_1 = require("./core")
|
|
27
|
-
var input_1 = require("./input")
|
|
28
27
|
var reflect_1 = require("./reflect")
|
|
29
28
|
var route_1 = require("./route")
|
|
30
29
|
var search_1 = require("./search")
|
|
@@ -277,8 +276,8 @@ function mergeParam(p) {
|
|
|
277
276
|
}
|
|
278
277
|
}
|
|
279
278
|
exports.mergeParam = mergeParam
|
|
280
|
-
exports.useSearch = function (refForm, initialState, service, p2, p) {
|
|
281
|
-
var baseProps = exports.useCoreSearch(refForm, initialState, service, p2, p)
|
|
279
|
+
exports.useSearch = function (refForm, initialState, service, resource, p2, p) {
|
|
280
|
+
var baseProps = exports.useCoreSearch(refForm, initialState, service, resource, p2, p)
|
|
282
281
|
react_1.useEffect(function () {
|
|
283
282
|
var load = baseProps.load,
|
|
284
283
|
setState = baseProps.setState,
|
|
@@ -286,7 +285,7 @@ exports.useSearch = function (refForm, initialState, service, p2, p) {
|
|
|
286
285
|
searchError = baseProps.searchError
|
|
287
286
|
if (refForm) {
|
|
288
287
|
var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
|
|
289
|
-
|
|
288
|
+
common_1.initForm(refForm.current, registerEvents)
|
|
290
289
|
}
|
|
291
290
|
if (p && p.initialize) {
|
|
292
291
|
p.initialize(load, setState, component)
|
|
@@ -302,17 +301,17 @@ exports.useSearch = function (refForm, initialState, service, p2, p) {
|
|
|
302
301
|
}, [])
|
|
303
302
|
return __assign({}, baseProps)
|
|
304
303
|
}
|
|
305
|
-
exports.useSearchOneProps = function (p) {
|
|
306
|
-
return exports.useSearch(p.refForm, p.initialState, p.service, p, p)
|
|
304
|
+
exports.useSearchOneProps = function (resource, p) {
|
|
305
|
+
return exports.useSearch(p.refForm, p.initialState, p.service, resource, p, p)
|
|
307
306
|
}
|
|
308
|
-
exports.useSearchOne = function (p) {
|
|
309
|
-
return exports.useCoreSearch(p.refForm, p.initialState, p.service, p, p)
|
|
307
|
+
exports.useSearchOne = function (resource, p) {
|
|
308
|
+
return exports.useCoreSearch(p.refForm, p.initialState, p.service, resource, p, p)
|
|
310
309
|
}
|
|
311
310
|
function getName(d, n) {
|
|
312
311
|
return n && n.length > 0 ? n : d
|
|
313
312
|
}
|
|
314
313
|
exports.getName = getName
|
|
315
|
-
exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
314
|
+
exports.useCoreSearch = function (refForm, initialState, service, resource, p1, p2) {
|
|
316
315
|
var p = mergeParam(p2)
|
|
317
316
|
var _a = react_1.useState(),
|
|
318
317
|
running = _a[0],
|
|
@@ -401,7 +400,7 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
|
401
400
|
return
|
|
402
401
|
}
|
|
403
402
|
setRunning(true)
|
|
404
|
-
|
|
403
|
+
common_1.showLoading(p1.loading)
|
|
405
404
|
if (p && !p.ignoreUrlParam) {
|
|
406
405
|
search_1.addParametersIntoUrl(s, isFirstLoad)
|
|
407
406
|
}
|
|
@@ -503,9 +502,8 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
|
503
502
|
}
|
|
504
503
|
var searchError = function (err) {
|
|
505
504
|
setComponent({ page: component.tmpPageIndex })
|
|
506
|
-
var resource = p1.resource.resource()
|
|
507
505
|
common_1.error(err, resource, p1.showError)
|
|
508
|
-
|
|
506
|
+
common_1.hideLoading(p1.loading)
|
|
509
507
|
}
|
|
510
508
|
var appendList = p && p.appendList ? p.appendList : appendListOfState
|
|
511
509
|
var setList = p && p.setList ? p.setList : setListOfState
|
|
@@ -536,12 +534,12 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
|
536
534
|
setList(results, setState)
|
|
537
535
|
setComponent({ tmpPageIndex: s.page })
|
|
538
536
|
if (s.limit) {
|
|
539
|
-
var m1 = search_1.buildMessage(
|
|
537
|
+
var m1 = search_1.buildMessage(resource, sr.list, s.limit, s.page, sr.total)
|
|
540
538
|
p1.showMessage(m1)
|
|
541
539
|
}
|
|
542
540
|
}
|
|
543
541
|
setRunning(false)
|
|
544
|
-
|
|
542
|
+
common_1.hideLoading(p1.loading)
|
|
545
543
|
if (component.triggerSearch) {
|
|
546
544
|
setComponent({ triggerSearch: false })
|
|
547
545
|
resetAndSearch()
|
|
@@ -571,7 +569,6 @@ exports.useCoreSearch = function (refForm, initialState, service, p1, p2) {
|
|
|
571
569
|
running: running,
|
|
572
570
|
setRunning: setRunning,
|
|
573
571
|
getCurrencyCode: getCurrencyCode,
|
|
574
|
-
resource: p1.resource.resource(),
|
|
575
572
|
setComponent: setComponent,
|
|
576
573
|
component: component,
|
|
577
574
|
showMessage: p1.showMessage,
|
package/package.json
CHANGED
package/src/common.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringMap } from "./core"
|
|
1
|
+
import { LoadingService, StringMap } from "./core"
|
|
2
2
|
|
|
3
3
|
export function messageByHttpStatus(status: number, resource: StringMap): string {
|
|
4
4
|
const k = "error_" + status
|
|
@@ -8,11 +8,11 @@ export function messageByHttpStatus(status: number, resource: StringMap): string
|
|
|
8
8
|
}
|
|
9
9
|
return msg
|
|
10
10
|
}
|
|
11
|
-
export function error(err: any, resource: StringMap, ae: (msg: string,
|
|
11
|
+
export function error(err: any, resource: StringMap, ae: (msg: string, callback?: () => void, header?: string) => void) {
|
|
12
12
|
const title = resource.error
|
|
13
13
|
let msg = resource.error_internal
|
|
14
14
|
if (!err) {
|
|
15
|
-
ae(msg, title)
|
|
15
|
+
ae(msg, undefined, title)
|
|
16
16
|
return
|
|
17
17
|
}
|
|
18
18
|
const data = err && err.response ? err.response : err
|
|
@@ -21,8 +21,68 @@ export function error(err: any, resource: StringMap, ae: (msg: string, header?:
|
|
|
21
21
|
if (status && !isNaN(status)) {
|
|
22
22
|
msg = messageByHttpStatus(status, resource)
|
|
23
23
|
}
|
|
24
|
-
ae(msg, title)
|
|
24
|
+
ae(msg, undefined, title)
|
|
25
25
|
} else {
|
|
26
|
-
ae(msg, title)
|
|
26
|
+
ae(msg, undefined, title)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function showLoading(loading?: LoadingService | ((firstTime?: boolean) => void)): void {
|
|
31
|
+
if (loading) {
|
|
32
|
+
if (typeof loading === "function") {
|
|
33
|
+
loading()
|
|
34
|
+
} else {
|
|
35
|
+
loading.showLoading()
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function hideLoading(loading?: LoadingService | (() => void)): void {
|
|
40
|
+
if (loading) {
|
|
41
|
+
if (typeof loading === "function") {
|
|
42
|
+
loading()
|
|
43
|
+
} else {
|
|
44
|
+
loading.hideLoading()
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function initForm(form?: HTMLFormElement, initMat?: (f: HTMLFormElement) => void): HTMLFormElement | undefined {
|
|
50
|
+
if (form) {
|
|
51
|
+
setTimeout(() => {
|
|
52
|
+
if (initMat) {
|
|
53
|
+
initMat(form)
|
|
54
|
+
}
|
|
55
|
+
focusFirstElement(form)
|
|
56
|
+
}, 100)
|
|
57
|
+
}
|
|
58
|
+
return form
|
|
59
|
+
}
|
|
60
|
+
export function focusFirstElement(form: HTMLFormElement): void {
|
|
61
|
+
let i = 0
|
|
62
|
+
const len = form.length
|
|
63
|
+
for (i = 0; i < len; i++) {
|
|
64
|
+
const ctrl = form[i] as HTMLInputElement
|
|
65
|
+
if (!(ctrl.readOnly || ctrl.disabled)) {
|
|
66
|
+
let nodeName = ctrl.nodeName
|
|
67
|
+
const type = ctrl.getAttribute("type")
|
|
68
|
+
if (type) {
|
|
69
|
+
const t = type.toUpperCase()
|
|
70
|
+
if (t === "BUTTON" || t === "SUBMIT") {
|
|
71
|
+
ctrl.focus()
|
|
72
|
+
}
|
|
73
|
+
if (nodeName === "INPUT") {
|
|
74
|
+
nodeName = t
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "CHECKBOX" && nodeName !== "RADIO") {
|
|
78
|
+
ctrl.focus()
|
|
79
|
+
/*
|
|
80
|
+
try {
|
|
81
|
+
ctrl.setSelectionRange(0, ctrl.value.length)
|
|
82
|
+
} catch (err) {}
|
|
83
|
+
*/
|
|
84
|
+
return
|
|
85
|
+
}
|
|
86
|
+
}
|
|
27
87
|
}
|
|
28
88
|
}
|
package/src/core.ts
CHANGED
package/src/diff.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { LoadingService
|
|
1
|
+
import { LoadingService } from "./core"
|
|
2
2
|
import { clone } from "./reflect"
|
|
3
3
|
|
|
4
4
|
export interface DiffParameter {
|
|
5
|
-
resource: ResourceService
|
|
6
5
|
showMessage: (msg: string, option?: string) => void
|
|
7
6
|
showError: (m: string, header?: string, detail?: string, callback?: () => void) => void
|
|
8
7
|
loading?: LoadingService
|
|
9
|
-
// status?: DiffStatusConfig;
|
|
10
8
|
}
|
|
11
9
|
export interface BaseDiffState {
|
|
12
10
|
disabled: boolean
|
package/src/index.ts
CHANGED
package/src/useEdit.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { useEffect, useState } from "react"
|
|
2
2
|
import { Params, useNavigate, useParams } from "react-router"
|
|
3
|
-
import { messageByHttpStatus } from "./common"
|
|
4
|
-
import { Attribute, Attributes, ErrorMessage, LoadingService, Locale, resources,
|
|
3
|
+
import { hideLoading, initForm, messageByHttpStatus, showLoading } from "./common"
|
|
4
|
+
import { Attribute, Attributes, ErrorMessage, LoadingService, Locale, resources, StringMap, UIService } from "./core"
|
|
5
5
|
import { createModel as createModel2 } from "./edit"
|
|
6
6
|
import { focusFirstError, setReadOnly } from "./formutil"
|
|
7
|
-
import { hideLoading, initForm, showLoading } from "./input"
|
|
8
7
|
import { clone, makeDiff } from "./reflect"
|
|
9
8
|
import { localeOf } from "./state"
|
|
10
9
|
import { DispatchWithCallback, getModelName as getModelName2, useMergeState, useUpdate } from "./update"
|
|
@@ -50,14 +49,12 @@ export function buildId<ID>(p: Readonly<Params<string>>, keys?: string[]): ID |
|
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
export interface EditParameter {
|
|
53
|
-
resource: ResourceService
|
|
54
52
|
showMessage: (msg: string, option?: string) => void
|
|
55
|
-
showError: (m: string,
|
|
53
|
+
showError: (m: string, callback?: () => void, header?: string) => void
|
|
56
54
|
confirm: (m2: string, yesCallback?: () => void, header?: string, btnLeftText?: string, btnRightText?: string, noCallback?: () => void) => void
|
|
57
55
|
ui?: UIService
|
|
58
56
|
getLocale?: (profile?: string) => Locale
|
|
59
57
|
loading?: LoadingService
|
|
60
|
-
// status?: EditStatusConfig;
|
|
61
58
|
}
|
|
62
59
|
export interface GenericService<T, ID, R> {
|
|
63
60
|
metadata?(): Attributes | undefined
|
|
@@ -162,9 +159,9 @@ export interface HookBaseEditParameter<T, ID, S> extends BaseEditComponentParam<
|
|
|
162
159
|
refForm: any
|
|
163
160
|
initialState: S
|
|
164
161
|
service: GenericService<T, ID, number | T | ErrorMessage[]>
|
|
165
|
-
resource: ResourceService
|
|
162
|
+
// resource: ResourceService
|
|
166
163
|
showMessage: (msg: string) => void
|
|
167
|
-
showError: (m: string,
|
|
164
|
+
showError: (m: string, callback?: () => void, header?: string) => void
|
|
168
165
|
getLocale?: () => Locale
|
|
169
166
|
confirm: (m2: string, yesCallback?: () => void, header?: string, btnLeftText?: string, btnRightText?: string, noCallback?: () => void) => void
|
|
170
167
|
ui?: UIService
|
|
@@ -196,12 +193,12 @@ export const useEdit = <T, ID, S>(
|
|
|
196
193
|
refForm: any,
|
|
197
194
|
initialState: S,
|
|
198
195
|
service: GenericService<T, ID, number | T | ErrorMessage[]>,
|
|
199
|
-
|
|
196
|
+
resource: StringMap,
|
|
200
197
|
p2: EditParameter,
|
|
201
198
|
p?: EditComponentParam<T, ID, S>,
|
|
202
199
|
) => {
|
|
203
200
|
const params = useParams()
|
|
204
|
-
const baseProps = useCoreEdit(refForm, initialState, service, p2, p)
|
|
201
|
+
const baseProps = useCoreEdit(refForm, initialState, service, resource, p2, p)
|
|
205
202
|
useEffect(() => {
|
|
206
203
|
if (refForm) {
|
|
207
204
|
const registerEvents = p2.ui ? p2.ui.registerEvents : undefined
|
|
@@ -242,11 +239,12 @@ export const useEditProps = <T, ID, S, P>(
|
|
|
242
239
|
refForm: any,
|
|
243
240
|
initialState: S,
|
|
244
241
|
service: GenericService<T, ID, number | T | ErrorMessage[]>,
|
|
242
|
+
resource: StringMap,
|
|
245
243
|
p2: EditParameter,
|
|
246
244
|
p?: EditComponentParam<T, ID, S>,
|
|
247
245
|
) => {
|
|
248
246
|
const params = useParams()
|
|
249
|
-
const baseProps = useCoreEdit<T, ID, S, P>(refForm, initialState, service, p2, p, props)
|
|
247
|
+
const baseProps = useCoreEdit<T, ID, S, P>(refForm, initialState, service, resource, p2, p, props)
|
|
250
248
|
useEffect(() => {
|
|
251
249
|
if (refForm) {
|
|
252
250
|
const registerEvents = p2.ui ? p2.ui.registerEvents : undefined
|
|
@@ -277,16 +275,17 @@ export const useEditProps = <T, ID, S, P>(
|
|
|
277
275
|
}, [])
|
|
278
276
|
return { ...baseProps }
|
|
279
277
|
}
|
|
280
|
-
export const useEditOneProps = <T, ID, S, P>(p: HookPropsEditParameter<T, ID, S, P>) => {
|
|
281
|
-
return useEditProps(p.props, p.refForm, p.initialState, p.service, p, p)
|
|
278
|
+
export const useEditOneProps = <T, ID, S, P>(resource: StringMap, p: HookPropsEditParameter<T, ID, S, P>) => {
|
|
279
|
+
return useEditProps(p.props, p.refForm, p.initialState, p.service, resource, p, p)
|
|
282
280
|
}
|
|
283
|
-
export const useEditOne = <T, ID, S>(p: HookBaseEditParameter<T, ID, S>) => {
|
|
284
|
-
return useEdit(p.refForm, p.initialState, p.service, p, p)
|
|
281
|
+
export const useEditOne = <T, ID, S>(resource: StringMap, p: HookBaseEditParameter<T, ID, S>) => {
|
|
282
|
+
return useEdit(p.refForm, p.initialState, p.service, resource, p, p)
|
|
285
283
|
}
|
|
286
284
|
export const useCoreEdit = <T, ID, S, P>(
|
|
287
285
|
refForm: any,
|
|
288
286
|
initialState: S,
|
|
289
287
|
service: GenericService<T, ID, number | T | ErrorMessage[]>,
|
|
288
|
+
resource: StringMap,
|
|
290
289
|
p1: EditParameter,
|
|
291
290
|
p?: BaseEditComponentParam<T, ID>,
|
|
292
291
|
props?: P,
|
|
@@ -339,8 +338,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
339
338
|
if (form) {
|
|
340
339
|
setReadOnly(form)
|
|
341
340
|
}
|
|
342
|
-
|
|
343
|
-
p1.showError(resource.error_404, resource.error, () => window.history.back)
|
|
341
|
+
p1.showError(resource.error_404, () => window.history.back, resource.error)
|
|
344
342
|
}
|
|
345
343
|
const handleNotFound = p && p.handleNotFound ? p.handleNotFound : _handleNotFound
|
|
346
344
|
|
|
@@ -367,7 +365,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
367
365
|
if (objKeys.length === 0) {
|
|
368
366
|
navigate(-1)
|
|
369
367
|
} else {
|
|
370
|
-
const resource = p1.resource.resource()
|
|
371
368
|
p1.confirm(
|
|
372
369
|
resource.msg_confirm_back,
|
|
373
370
|
() => {
|
|
@@ -405,12 +402,11 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
405
402
|
}
|
|
406
403
|
|
|
407
404
|
const _onSave = (isBack?: boolean) => {
|
|
408
|
-
const resource = p1.resource.resource()
|
|
409
405
|
if (p && p.readOnly) {
|
|
410
406
|
if (flag.newMode === true) {
|
|
411
|
-
p1.showError(resource.error_permission_add, resource.error_permission)
|
|
407
|
+
p1.showError(resource.error_permission_add, undefined, resource.error_permission)
|
|
412
408
|
} else {
|
|
413
|
-
p1.showError(resource.error_permission_edit, resource.error_permission)
|
|
409
|
+
p1.showError(resource.error_permission_edit, undefined, resource.error_permission)
|
|
414
410
|
}
|
|
415
411
|
} else {
|
|
416
412
|
if (running === true) {
|
|
@@ -497,7 +493,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
497
493
|
const succeed = p && p.succeed ? p.succeed : _succeed
|
|
498
494
|
|
|
499
495
|
const _fail = (result: ErrorMessage[]) => {
|
|
500
|
-
const resource = p1.resource.resource()
|
|
501
496
|
const f = refForm.current
|
|
502
497
|
const u = p1.ui
|
|
503
498
|
if (u && f) {
|
|
@@ -507,17 +502,17 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
507
502
|
const t = resource.error
|
|
508
503
|
if (p1.ui && p1.ui.buildErrorMessage) {
|
|
509
504
|
const msg = p1.ui.buildErrorMessage(unmappedErrors)
|
|
510
|
-
p1.showError(msg, t)
|
|
505
|
+
p1.showError(msg, undefined, t)
|
|
511
506
|
} else {
|
|
512
|
-
p1.showError(unmappedErrors[0].field + " " + unmappedErrors[0].code + " " + unmappedErrors[0].message, t)
|
|
507
|
+
p1.showError(unmappedErrors[0].field + " " + unmappedErrors[0].code + " " + unmappedErrors[0].message, undefined, t)
|
|
513
508
|
}
|
|
514
509
|
}
|
|
515
510
|
} else {
|
|
516
511
|
const t = resource.error
|
|
517
512
|
if (result.length > 0) {
|
|
518
|
-
p1.showError(result[0].field + " " + result[0].code + " " + result[0].message, t)
|
|
513
|
+
p1.showError(result[0].field + " " + result[0].code + " " + result[0].message, undefined, t)
|
|
519
514
|
} else {
|
|
520
|
-
p1.showError(t, t)
|
|
515
|
+
p1.showError(t, undefined, t)
|
|
521
516
|
}
|
|
522
517
|
}
|
|
523
518
|
}
|
|
@@ -525,7 +520,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
525
520
|
|
|
526
521
|
const _handleError = function (err: any) {
|
|
527
522
|
if (err) {
|
|
528
|
-
const resource = p1.resource.resource()
|
|
529
523
|
setRunning(false)
|
|
530
524
|
hideLoading(p1.loading)
|
|
531
525
|
const errHeader = resource.error
|
|
@@ -533,9 +527,9 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
533
527
|
const data = err && err.response ? err.response : err
|
|
534
528
|
if (data.status === 400) {
|
|
535
529
|
const errMsg = resource.error_400
|
|
536
|
-
p1.showError(errMsg, errHeader)
|
|
530
|
+
p1.showError(errMsg, undefined, errHeader)
|
|
537
531
|
} else {
|
|
538
|
-
p1.showError(errMsg, errHeader)
|
|
532
|
+
p1.showError(errMsg, undefined, errHeader)
|
|
539
533
|
}
|
|
540
534
|
}
|
|
541
535
|
}
|
|
@@ -543,7 +537,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
543
537
|
|
|
544
538
|
const _postSave = (r: number | T | ErrorMessage[], origin: T, version?: string, isPatch?: boolean, backOnSave?: boolean) => {
|
|
545
539
|
setRunning(false)
|
|
546
|
-
const resource = p1.resource.resource()
|
|
547
540
|
hideLoading(p1.loading)
|
|
548
541
|
const x: any = r
|
|
549
542
|
const successMsg = resource.msg_save_success
|
|
@@ -562,7 +555,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
562
555
|
} else {
|
|
563
556
|
const title = resource.error
|
|
564
557
|
const err = resource.error_version
|
|
565
|
-
p1.showError(err, title)
|
|
558
|
+
p1.showError(err, undefined, title)
|
|
566
559
|
}
|
|
567
560
|
}
|
|
568
561
|
} else {
|
|
@@ -583,8 +576,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
583
576
|
const postSave = p && p.postSave ? p.postSave : _postSave
|
|
584
577
|
|
|
585
578
|
const _handleDuplicateKey = (result?: T) => {
|
|
586
|
-
|
|
587
|
-
p1.showError(resource.error_duplicate_key, resource.error)
|
|
579
|
+
p1.showError(resource.error_duplicate_key, undefined, resource.error)
|
|
588
580
|
}
|
|
589
581
|
const handleDuplicateKey = p && p.handleDuplicateKey ? p.handleDuplicateKey : _handleDuplicateKey
|
|
590
582
|
|
|
@@ -640,7 +632,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
640
632
|
})
|
|
641
633
|
.catch((err: any) => {
|
|
642
634
|
const data = err && err.response ? err.response : err
|
|
643
|
-
const resource = p1.resource.resource()
|
|
644
635
|
const title = resource.error
|
|
645
636
|
let msg = resource.error_internal
|
|
646
637
|
if (data && data.status === 422) {
|
|
@@ -659,7 +650,7 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
659
650
|
if (data && (data.status === 401 || data.status === 403)) {
|
|
660
651
|
setReadOnly(refForm.current)
|
|
661
652
|
}
|
|
662
|
-
p1.showError(msg, title)
|
|
653
|
+
p1.showError(msg, undefined, title)
|
|
663
654
|
}
|
|
664
655
|
}
|
|
665
656
|
setRunning(false)
|
|
@@ -682,7 +673,6 @@ export const useCoreEdit = <T, ID, S, P>(
|
|
|
682
673
|
back,
|
|
683
674
|
refForm,
|
|
684
675
|
ui: p1.ui,
|
|
685
|
-
resource: p1.resource.resource(),
|
|
686
676
|
flag,
|
|
687
677
|
running,
|
|
688
678
|
setRunning,
|
package/src/useMessage.ts
CHANGED
package/src/useSearch.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useEffect, useState } from "react"
|
|
2
|
-
import { error } from "./common"
|
|
3
|
-
import { LoadingService, Locale, pageSizes, resources,
|
|
4
|
-
import { hideLoading, initForm, showLoading } from "./input"
|
|
2
|
+
import { error, hideLoading, initForm, showLoading } from "./common"
|
|
3
|
+
import { LoadingService, Locale, pageSizes, resources, StringMap, UIService } from "./core"
|
|
5
4
|
import { clone } from "./reflect"
|
|
6
5
|
import { buildFromUrl } from "./route"
|
|
7
6
|
import {
|
|
@@ -36,9 +35,8 @@ interface Searchable extends Pagination, Sortable {
|
|
|
36
35
|
excluding?: string[] | number[]
|
|
37
36
|
}
|
|
38
37
|
export interface SearchParameter {
|
|
39
|
-
resource: ResourceService
|
|
40
38
|
showMessage: (msg: string, option?: string) => void
|
|
41
|
-
showError: (m: string,
|
|
39
|
+
showError: (m: string, callback?: () => void, h?: string) => void
|
|
42
40
|
ui?: UIService
|
|
43
41
|
getLocale?: (profile?: string) => Locale
|
|
44
42
|
loading?: LoadingService
|
|
@@ -325,9 +323,9 @@ export interface HookBaseSearchParameter<T, S extends Filter, ST extends SearchC
|
|
|
325
323
|
refForm: any
|
|
326
324
|
initialState: ST
|
|
327
325
|
service: ((s: S, limit?: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>) | SearchService<T, S>
|
|
328
|
-
resource: ResourceService
|
|
326
|
+
// resource: ResourceService
|
|
329
327
|
showMessage: (msg: string) => void
|
|
330
|
-
showError: (m: string,
|
|
328
|
+
showError: (m: string, callback?: () => void, header?: string) => void
|
|
331
329
|
getLocale?: () => Locale
|
|
332
330
|
autoSearch?: boolean
|
|
333
331
|
}
|
|
@@ -411,10 +409,11 @@ export const useSearch = <T, S extends Filter, ST extends SearchComponentState<T
|
|
|
411
409
|
refForm: any,
|
|
412
410
|
initialState: ST,
|
|
413
411
|
service: ((s: S, limit?: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>) | SearchService<T, S>,
|
|
412
|
+
resource: StringMap,
|
|
414
413
|
p2: SearchParameter,
|
|
415
414
|
p?: InitSearchComponentParam<T, S, ST>,
|
|
416
415
|
) => {
|
|
417
|
-
const baseProps = useCoreSearch(refForm, initialState, service, p2, p)
|
|
416
|
+
const baseProps = useCoreSearch(refForm, initialState, service, resource, p2, p)
|
|
418
417
|
|
|
419
418
|
useEffect(() => {
|
|
420
419
|
const { load, setState, component, searchError } = baseProps
|
|
@@ -437,11 +436,14 @@ export const useSearch = <T, S extends Filter, ST extends SearchComponentState<T
|
|
|
437
436
|
}, [])
|
|
438
437
|
return { ...baseProps }
|
|
439
438
|
}
|
|
440
|
-
export const useSearchOneProps = <T, S extends Filter, ST extends SearchComponentState<T, S>, P>(
|
|
441
|
-
|
|
439
|
+
export const useSearchOneProps = <T, S extends Filter, ST extends SearchComponentState<T, S>, P>(
|
|
440
|
+
resource: StringMap,
|
|
441
|
+
p: HookPropsSearchParameter<T, S, ST, P>,
|
|
442
|
+
) => {
|
|
443
|
+
return useSearch(p.refForm, p.initialState, p.service, resource, p, p)
|
|
442
444
|
}
|
|
443
|
-
export const useSearchOne = <T, S extends Filter, ST extends SearchComponentState<T, S>>(p: HookBaseSearchParameter<T, S, ST>) => {
|
|
444
|
-
return useCoreSearch(p.refForm, p.initialState, p.service, p, p)
|
|
445
|
+
export const useSearchOne = <T, S extends Filter, ST extends SearchComponentState<T, S>>(resource: StringMap, p: HookBaseSearchParameter<T, S, ST>) => {
|
|
446
|
+
return useCoreSearch(p.refForm, p.initialState, p.service, resource, p, p)
|
|
445
447
|
}
|
|
446
448
|
|
|
447
449
|
export function getName(d: string, n?: string): string {
|
|
@@ -451,6 +453,7 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
451
453
|
refForm: any,
|
|
452
454
|
initialState: ST,
|
|
453
455
|
service: ((s: S, limit?: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>) | SearchService<T, S>,
|
|
456
|
+
resource: StringMap,
|
|
454
457
|
p1: SearchParameter,
|
|
455
458
|
p2?: SearchComponentParam<T, S>,
|
|
456
459
|
) => {
|
|
@@ -655,7 +658,6 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
655
658
|
|
|
656
659
|
const searchError = (err: any): void => {
|
|
657
660
|
setComponent({ page: component.tmpPageIndex })
|
|
658
|
-
const resource = p1.resource.resource()
|
|
659
661
|
error(err, resource, p1.showError)
|
|
660
662
|
hideLoading(p1.loading)
|
|
661
663
|
}
|
|
@@ -688,7 +690,7 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
688
690
|
setList(results, setState as any)
|
|
689
691
|
setComponent({ tmpPageIndex: s.page })
|
|
690
692
|
if (s.limit) {
|
|
691
|
-
const m1 = buildMessage(
|
|
693
|
+
const m1 = buildMessage(resource, sr.list, s.limit, s.page, sr.total)
|
|
692
694
|
p1.showMessage(m1)
|
|
693
695
|
}
|
|
694
696
|
}
|
|
@@ -726,7 +728,6 @@ export const useCoreSearch = <T, S extends Filter, ST>(
|
|
|
726
728
|
running,
|
|
727
729
|
setRunning,
|
|
728
730
|
getCurrencyCode,
|
|
729
|
-
resource: p1.resource.resource(),
|
|
730
731
|
setComponent,
|
|
731
732
|
component,
|
|
732
733
|
showMessage: p1.showMessage,
|
package/tsconfig.json
CHANGED
|
@@ -13,18 +13,8 @@
|
|
|
13
13
|
"declaration": false,
|
|
14
14
|
"experimentalDecorators": false,
|
|
15
15
|
"removeComments": true,
|
|
16
|
-
"lib": [
|
|
17
|
-
"dom",
|
|
18
|
-
"es6",
|
|
19
|
-
"es7",
|
|
20
|
-
"es2017",
|
|
21
|
-
"es2022"
|
|
22
|
-
]
|
|
16
|
+
"lib": ["dom", "es6", "es7", "es2017"]
|
|
23
17
|
},
|
|
24
|
-
"include": [
|
|
25
|
-
|
|
26
|
-
],
|
|
27
|
-
"exclude": [
|
|
28
|
-
"node_modules"
|
|
29
|
-
]
|
|
18
|
+
"include": ["src/**/*.ts"],
|
|
19
|
+
"exclude": ["node_modules"]
|
|
30
20
|
}
|
package/lib/input.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
function getResource(p) {
|
|
4
|
-
var x = p
|
|
5
|
-
if (x.value && x.format && typeof x.value === "function") {
|
|
6
|
-
return x
|
|
7
|
-
} else {
|
|
8
|
-
return x.resource
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.getResource = getResource
|
|
12
|
-
function getAutoSearch(p) {
|
|
13
|
-
var x = p
|
|
14
|
-
if (x.value && x.format && typeof x.value === "function") {
|
|
15
|
-
return true
|
|
16
|
-
}
|
|
17
|
-
return x.auto
|
|
18
|
-
}
|
|
19
|
-
exports.getAutoSearch = getAutoSearch
|
|
20
|
-
function getUIService(p, ui0) {
|
|
21
|
-
if (ui0) {
|
|
22
|
-
return ui0
|
|
23
|
-
}
|
|
24
|
-
return p.ui
|
|
25
|
-
}
|
|
26
|
-
exports.getUIService = getUIService
|
|
27
|
-
function getLoadingFunc(p, ui0) {
|
|
28
|
-
if (ui0) {
|
|
29
|
-
return ui0
|
|
30
|
-
}
|
|
31
|
-
return p.loading
|
|
32
|
-
}
|
|
33
|
-
exports.getLoadingFunc = getLoadingFunc
|
|
34
|
-
function getMsgFunc(p, showMsg) {
|
|
35
|
-
if (showMsg) {
|
|
36
|
-
return showMsg
|
|
37
|
-
}
|
|
38
|
-
return p.showMessage
|
|
39
|
-
}
|
|
40
|
-
exports.getMsgFunc = getMsgFunc
|
|
41
|
-
function getConfirmFunc(p, cf) {
|
|
42
|
-
if (cf) {
|
|
43
|
-
return cf
|
|
44
|
-
}
|
|
45
|
-
return p.confirm
|
|
46
|
-
}
|
|
47
|
-
exports.getConfirmFunc = getConfirmFunc
|
|
48
|
-
function getLocaleFunc(p, getLoc) {
|
|
49
|
-
if (getLoc) {
|
|
50
|
-
return getLoc
|
|
51
|
-
}
|
|
52
|
-
return p.getLocale
|
|
53
|
-
}
|
|
54
|
-
exports.getLocaleFunc = getLocaleFunc
|
|
55
|
-
function getErrorFunc(p, showErr) {
|
|
56
|
-
if (showErr) {
|
|
57
|
-
return showErr
|
|
58
|
-
}
|
|
59
|
-
return p.showError
|
|
60
|
-
}
|
|
61
|
-
exports.getErrorFunc = getErrorFunc
|
|
62
|
-
function showLoading(loading) {
|
|
63
|
-
if (loading) {
|
|
64
|
-
if (typeof loading === "function") {
|
|
65
|
-
loading()
|
|
66
|
-
} else {
|
|
67
|
-
loading.showLoading()
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.showLoading = showLoading
|
|
72
|
-
function hideLoading(loading) {
|
|
73
|
-
if (loading) {
|
|
74
|
-
if (typeof loading === "function") {
|
|
75
|
-
loading()
|
|
76
|
-
} else {
|
|
77
|
-
loading.hideLoading()
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.hideLoading = hideLoading
|
|
82
|
-
function initForm(form, initMat) {
|
|
83
|
-
if (form) {
|
|
84
|
-
setTimeout(function () {
|
|
85
|
-
if (initMat) {
|
|
86
|
-
initMat(form)
|
|
87
|
-
}
|
|
88
|
-
focusFirstElement(form)
|
|
89
|
-
}, 100)
|
|
90
|
-
}
|
|
91
|
-
return form
|
|
92
|
-
}
|
|
93
|
-
exports.initForm = initForm
|
|
94
|
-
function focusFirstElement(form) {
|
|
95
|
-
var i = 0
|
|
96
|
-
var len = form.length
|
|
97
|
-
for (i = 0; i < len; i++) {
|
|
98
|
-
var ctrl = form[i]
|
|
99
|
-
if (!(ctrl.readOnly || ctrl.disabled)) {
|
|
100
|
-
var nodeName = ctrl.nodeName
|
|
101
|
-
var type = ctrl.getAttribute("type")
|
|
102
|
-
if (type) {
|
|
103
|
-
var t = type.toUpperCase()
|
|
104
|
-
if (t === "BUTTON" || t === "SUBMIT") {
|
|
105
|
-
ctrl.focus()
|
|
106
|
-
}
|
|
107
|
-
if (nodeName === "INPUT") {
|
|
108
|
-
nodeName = t
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "CHECKBOX" && nodeName !== "RADIO") {
|
|
112
|
-
ctrl.focus()
|
|
113
|
-
return
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
exports.focusFirstElement = focusFirstElement
|
package/src/input.ts
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { LoadingService, Locale, ResourceService, UIService } from "./core"
|
|
2
|
-
|
|
3
|
-
interface ResourceInput {
|
|
4
|
-
resource: ResourceService
|
|
5
|
-
}
|
|
6
|
-
export function getResource(p: ResourceService | ResourceInput): ResourceService {
|
|
7
|
-
const x: any = p
|
|
8
|
-
if (x.value && x.format && typeof x.value === "function") {
|
|
9
|
-
return x
|
|
10
|
-
} else {
|
|
11
|
-
return x.resource
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
interface ShortSearchParameter {
|
|
15
|
-
auto?: boolean
|
|
16
|
-
}
|
|
17
|
-
export function getAutoSearch(p: ResourceService | ShortSearchParameter): boolean {
|
|
18
|
-
const x: any = p
|
|
19
|
-
if (x.value && x.format && typeof x.value === "function") {
|
|
20
|
-
return true
|
|
21
|
-
}
|
|
22
|
-
return x.auto
|
|
23
|
-
}
|
|
24
|
-
interface UIInput {
|
|
25
|
-
ui?: UIService
|
|
26
|
-
}
|
|
27
|
-
export function getUIService(p: ResourceService | UIInput, ui0?: UIService): UIService {
|
|
28
|
-
if (ui0) {
|
|
29
|
-
return ui0
|
|
30
|
-
}
|
|
31
|
-
return (p as any).ui
|
|
32
|
-
}
|
|
33
|
-
interface LoadingInput {
|
|
34
|
-
loading?: LoadingService
|
|
35
|
-
}
|
|
36
|
-
export function getLoadingFunc(p: ResourceService | LoadingInput, ui0?: LoadingService): LoadingService {
|
|
37
|
-
if (ui0) {
|
|
38
|
-
return ui0
|
|
39
|
-
}
|
|
40
|
-
return (p as any).loading
|
|
41
|
-
}
|
|
42
|
-
interface ShowMessageInput {
|
|
43
|
-
showMessage: (msg: string, option?: string) => void
|
|
44
|
-
}
|
|
45
|
-
export function getMsgFunc(p: ResourceService | ShowMessageInput, showMsg?: (msg: string, option?: string) => void): (msg: string) => void {
|
|
46
|
-
if (showMsg) {
|
|
47
|
-
return showMsg
|
|
48
|
-
}
|
|
49
|
-
return (p as any).showMessage
|
|
50
|
-
}
|
|
51
|
-
interface ConfirmInput {
|
|
52
|
-
confirm: (m2: string, yesCallback?: () => void, header?: string, btnLeftText?: string, btnRightText?: string, noCallback?: () => void) => void
|
|
53
|
-
}
|
|
54
|
-
export function getConfirmFunc(
|
|
55
|
-
p: ResourceService | ConfirmInput,
|
|
56
|
-
cf?: (m2: string, yesCallback?: () => void, header?: string, btnLeftText?: string, btnRightText?: string, noCallback?: () => void) => void,
|
|
57
|
-
): (m2: string, yesCallback?: () => void, header?: string, btnLeftText?: string, btnRightText?: string, noCallback?: () => void) => void {
|
|
58
|
-
if (cf) {
|
|
59
|
-
return cf
|
|
60
|
-
}
|
|
61
|
-
return (p as any).confirm
|
|
62
|
-
}
|
|
63
|
-
interface GetLocaleInput {
|
|
64
|
-
getLocale?: (profile?: string) => Locale
|
|
65
|
-
}
|
|
66
|
-
export function getLocaleFunc(p: ResourceService | GetLocaleInput, getLoc?: () => Locale): () => Locale {
|
|
67
|
-
if (getLoc) {
|
|
68
|
-
return getLoc
|
|
69
|
-
}
|
|
70
|
-
return (p as any).getLocale
|
|
71
|
-
}
|
|
72
|
-
interface ShowErrorInput {
|
|
73
|
-
showError: (m: string, callback?: () => void, header?: string) => void
|
|
74
|
-
}
|
|
75
|
-
export function getErrorFunc(
|
|
76
|
-
p: ResourceService | ShowErrorInput,
|
|
77
|
-
showErr?: (m: string, callback?: () => void, header?: string) => void,
|
|
78
|
-
): (m: string, callback?: () => void, header?: string) => void {
|
|
79
|
-
if (showErr) {
|
|
80
|
-
return showErr
|
|
81
|
-
}
|
|
82
|
-
return (p as any).showError
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export function showLoading(loading?: LoadingService | ((firstTime?: boolean) => void)): void {
|
|
86
|
-
if (loading) {
|
|
87
|
-
if (typeof loading === "function") {
|
|
88
|
-
loading()
|
|
89
|
-
} else {
|
|
90
|
-
loading.showLoading()
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
export function hideLoading(loading?: LoadingService | (() => void)): void {
|
|
95
|
-
if (loading) {
|
|
96
|
-
if (typeof loading === "function") {
|
|
97
|
-
loading()
|
|
98
|
-
} else {
|
|
99
|
-
loading.hideLoading()
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export function initForm(form?: HTMLFormElement, initMat?: (f: HTMLFormElement) => void): HTMLFormElement | undefined {
|
|
105
|
-
if (form) {
|
|
106
|
-
setTimeout(() => {
|
|
107
|
-
if (initMat) {
|
|
108
|
-
initMat(form)
|
|
109
|
-
}
|
|
110
|
-
focusFirstElement(form)
|
|
111
|
-
}, 100)
|
|
112
|
-
}
|
|
113
|
-
return form
|
|
114
|
-
}
|
|
115
|
-
export function focusFirstElement(form: HTMLFormElement): void {
|
|
116
|
-
let i = 0
|
|
117
|
-
const len = form.length
|
|
118
|
-
for (i = 0; i < len; i++) {
|
|
119
|
-
const ctrl = form[i] as HTMLInputElement
|
|
120
|
-
if (!(ctrl.readOnly || ctrl.disabled)) {
|
|
121
|
-
let nodeName = ctrl.nodeName
|
|
122
|
-
const type = ctrl.getAttribute("type")
|
|
123
|
-
if (type) {
|
|
124
|
-
const t = type.toUpperCase()
|
|
125
|
-
if (t === "BUTTON" || t === "SUBMIT") {
|
|
126
|
-
ctrl.focus()
|
|
127
|
-
}
|
|
128
|
-
if (nodeName === "INPUT") {
|
|
129
|
-
nodeName = t
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "CHECKBOX" && nodeName !== "RADIO") {
|
|
133
|
-
ctrl.focus()
|
|
134
|
-
/*
|
|
135
|
-
try {
|
|
136
|
-
ctrl.setSelectionRange(0, ctrl.value.length)
|
|
137
|
-
} catch (err) {}
|
|
138
|
-
*/
|
|
139
|
-
return
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|