react-hook-core 0.5.0 → 0.5.2
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/edit.js +41 -27
- package/lib/index.js +0 -4
- package/lib/reflect.js +18 -39
- package/lib/route.js +5 -0
- package/lib/search.js +8 -8
- package/lib/state.js +0 -185
- package/lib/util.js +13 -2
- package/package.json +1 -1
- package/src/com.ts +1 -1
- package/src/core.ts +0 -9
- package/src/diff.ts +3 -11
- package/src/edit.ts +58 -36
- package/src/index.ts +1 -5
- package/src/route.ts +15 -0
- package/src/search.ts +9 -9
- package/src/state.ts +4 -195
- package/src/util.ts +14 -2
- package/tsconfig.json +1 -1
- package/lib/common.js +0 -87
- package/lib/formutil.js +0 -76
- package/lib/update.js +0 -143
- package/lib/useEdit.js +0 -582
- package/lib/useSearch.js +0 -591
- package/src/common.ts +0 -88
- package/src/formutil.ts +0 -69
- package/src/update.ts +0 -130
- package/src/useEdit.ts +0 -699
- package/src/useSearch.ts +0 -750
package/lib/edit.js
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
+
function isSuccessful(x) {
|
|
4
|
+
if (Array.isArray(x)) {
|
|
5
|
+
return false
|
|
6
|
+
} else if (typeof x === "object") {
|
|
7
|
+
return true
|
|
8
|
+
} else if (typeof x === "number" && x > 0) {
|
|
9
|
+
return true
|
|
10
|
+
}
|
|
11
|
+
return false
|
|
12
|
+
}
|
|
13
|
+
exports.isSuccessful = isSuccessful
|
|
14
|
+
function afterSaved(res, form, resource, showFormError, alertSuccess, alertError, navigate) {
|
|
15
|
+
if (Array.isArray(res)) {
|
|
16
|
+
showFormError(form, res)
|
|
17
|
+
} else if (isSuccessful(res)) {
|
|
18
|
+
alertSuccess(resource.msg_save_success, function () {
|
|
19
|
+
if (navigate) {
|
|
20
|
+
navigate(-1)
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
} else if (res === 0) {
|
|
24
|
+
alertError(resource.error_not_found)
|
|
25
|
+
} else {
|
|
26
|
+
alertError(resource.error_conflict)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.afterSaved = afterSaved
|
|
30
|
+
function afterCreated(res, form, successMessage, duplicateMessage, showFormError, alertSuccess, alertError, navigate) {
|
|
31
|
+
if (Array.isArray(res)) {
|
|
32
|
+
showFormError(form, res)
|
|
33
|
+
} else if (isSuccessful(res)) {
|
|
34
|
+
alertSuccess(successMessage, function () {
|
|
35
|
+
if (navigate) {
|
|
36
|
+
navigate(-1)
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
} else {
|
|
40
|
+
alertError(duplicateMessage)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.afterCreated = afterCreated
|
|
3
44
|
function createModel(attributes) {
|
|
4
45
|
var obj = {}
|
|
5
46
|
if (!attributes) {
|
|
@@ -49,30 +90,3 @@ function createModel(attributes) {
|
|
|
49
90
|
return obj
|
|
50
91
|
}
|
|
51
92
|
exports.createModel = createModel
|
|
52
|
-
function isSuccessful(x) {
|
|
53
|
-
if (Array.isArray(x)) {
|
|
54
|
-
return false
|
|
55
|
-
} else if (typeof x === "object") {
|
|
56
|
-
return true
|
|
57
|
-
} else if (typeof x === "number" && x > 0) {
|
|
58
|
-
return true
|
|
59
|
-
}
|
|
60
|
-
return false
|
|
61
|
-
}
|
|
62
|
-
exports.isSuccessful = isSuccessful
|
|
63
|
-
function afterSaved(res, form, resource, showFormError, alertSuccess, alertError, navigate) {
|
|
64
|
-
if (Array.isArray(res)) {
|
|
65
|
-
showFormError(form, res)
|
|
66
|
-
} else if (isSuccessful(res)) {
|
|
67
|
-
alertSuccess(resource.msg_save_success, function () {
|
|
68
|
-
if (navigate) {
|
|
69
|
-
navigate(-1)
|
|
70
|
-
}
|
|
71
|
-
})
|
|
72
|
-
} else if (res === 0) {
|
|
73
|
-
alertError(resource.error_not_found)
|
|
74
|
-
} else {
|
|
75
|
-
alertError(resource.error_conflict)
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.afterSaved = afterSaved
|
package/lib/index.js
CHANGED
|
@@ -9,15 +9,11 @@ __export(require("./com"))
|
|
|
9
9
|
__export(require("./core"))
|
|
10
10
|
__export(require("./diff"))
|
|
11
11
|
__export(require("./edit"))
|
|
12
|
-
__export(require("./formutil"))
|
|
13
12
|
__export(require("./reflect"))
|
|
14
13
|
__export(require("./route"))
|
|
15
14
|
__export(require("./search"))
|
|
16
15
|
__export(require("./state"))
|
|
17
|
-
__export(require("./update"))
|
|
18
|
-
__export(require("./useEdit"))
|
|
19
16
|
__export(require("./useMessage"))
|
|
20
|
-
__export(require("./useSearch"))
|
|
21
17
|
__export(require("./util"))
|
|
22
18
|
function checked(s, v) {
|
|
23
19
|
if (s) {
|
package/lib/reflect.js
CHANGED
|
@@ -40,15 +40,6 @@ function clone(obj) {
|
|
|
40
40
|
return x
|
|
41
41
|
}
|
|
42
42
|
exports.clone = clone
|
|
43
|
-
function isEmptyObject(obj) {
|
|
44
|
-
for (var key in obj) {
|
|
45
|
-
if (obj.hasOwnProperty(key)) {
|
|
46
|
-
return false
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return true
|
|
50
|
-
}
|
|
51
|
-
exports.isEmptyObject = isEmptyObject
|
|
52
43
|
function diff(obj1, obj2) {
|
|
53
44
|
var fields = []
|
|
54
45
|
var key1s = Object.keys(obj1)
|
|
@@ -82,6 +73,17 @@ function diff(obj1, obj2) {
|
|
|
82
73
|
return fields
|
|
83
74
|
}
|
|
84
75
|
exports.diff = diff
|
|
76
|
+
function notIn(s1, s2) {
|
|
77
|
+
var r = []
|
|
78
|
+
for (var _i = 0, s2_1 = s2; _i < s2_1.length; _i++) {
|
|
79
|
+
var s = s2_1[_i]
|
|
80
|
+
if (s1.indexOf(s) < 0) {
|
|
81
|
+
r.push(s)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return r
|
|
85
|
+
}
|
|
86
|
+
exports.notIn = notIn
|
|
85
87
|
function makeDiff(o1, o2, keys, version) {
|
|
86
88
|
var obj1 = o1
|
|
87
89
|
var obj2 = o2
|
|
@@ -113,17 +115,15 @@ function hasDiff(o1, o2, keys, version) {
|
|
|
113
115
|
return !isEmptyObject(diff)
|
|
114
116
|
}
|
|
115
117
|
exports.hasDiff = hasDiff
|
|
116
|
-
function
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (s1.indexOf(s) < 0) {
|
|
121
|
-
r.push(s)
|
|
118
|
+
function isEmptyObject(obj) {
|
|
119
|
+
for (var key in obj) {
|
|
120
|
+
if (obj.hasOwnProperty(key)) {
|
|
121
|
+
return false
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
return
|
|
124
|
+
return true
|
|
125
125
|
}
|
|
126
|
-
exports.
|
|
126
|
+
exports.isEmptyObject = isEmptyObject
|
|
127
127
|
function equal(obj1, obj2) {
|
|
128
128
|
if (obj1 == null && obj2 == null) {
|
|
129
129
|
return true
|
|
@@ -208,7 +208,7 @@ function getDiffArray(list, name, v) {
|
|
|
208
208
|
if (list) {
|
|
209
209
|
for (var _i = 0, list_2 = list; _i < list_2.length; _i++) {
|
|
210
210
|
var obj = list_2[_i]
|
|
211
|
-
if (obj[name] !==
|
|
211
|
+
if (obj[name] !== v) {
|
|
212
212
|
arrs.push(obj)
|
|
213
213
|
}
|
|
214
214
|
}
|
|
@@ -216,27 +216,6 @@ function getDiffArray(list, name, v) {
|
|
|
216
216
|
return arrs
|
|
217
217
|
}
|
|
218
218
|
exports.getDiffArray = getDiffArray
|
|
219
|
-
function setAll(list, name, v) {
|
|
220
|
-
if (list) {
|
|
221
|
-
for (var _i = 0, list_3 = list; _i < list_3.length; _i++) {
|
|
222
|
-
var obj = list_3[_i]
|
|
223
|
-
obj[name] = v
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
exports.setAll = setAll
|
|
228
|
-
function equalAll(list, name, v) {
|
|
229
|
-
if (list) {
|
|
230
|
-
for (var _i = 0, list_4 = list; _i < list_4.length; _i++) {
|
|
231
|
-
var obj = list_4[_i]
|
|
232
|
-
if (obj[name] !== v) {
|
|
233
|
-
return false
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return true
|
|
238
|
-
}
|
|
239
|
-
exports.equalAll = equalAll
|
|
240
219
|
function getDirectValue(obj, key) {
|
|
241
220
|
if (obj && obj.hasOwnProperty(key)) {
|
|
242
221
|
return obj[key]
|
package/lib/route.js
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
3
|
var query_string_1 = require("query-string")
|
|
4
4
|
var reflect_1 = require("./reflect")
|
|
5
|
+
function onBack(e, navigate, confirm, resource, o1, o2, keys, version) {
|
|
6
|
+
e.preventDefault()
|
|
7
|
+
goBack(navigate, confirm, resource, o1, o2, keys, version)
|
|
8
|
+
}
|
|
9
|
+
exports.onBack = onBack
|
|
5
10
|
function goBack(navigate, confirm, resource, o1, o2, keys, version) {
|
|
6
11
|
if (!reflect_1.hasDiff(o1, o2, keys, version)) {
|
|
7
12
|
navigate(-1)
|
package/lib/search.js
CHANGED
|
@@ -354,8 +354,8 @@ function handleToggle(target, off) {
|
|
|
354
354
|
return on
|
|
355
355
|
}
|
|
356
356
|
exports.handleToggle = handleToggle
|
|
357
|
-
function getNumber(
|
|
358
|
-
return parseInt(
|
|
357
|
+
function getNumber(e) {
|
|
358
|
+
return parseInt(e.currentTarget.value, 10)
|
|
359
359
|
}
|
|
360
360
|
exports.getNumber = getNumber
|
|
361
361
|
function setSortFilter(state, filter, setState, setFilter, search) {
|
|
@@ -396,9 +396,9 @@ function onClearQ(filter, setFilter, search) {
|
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
398
|
exports.onClearQ = onClearQ
|
|
399
|
-
function onPageSizeChanged(
|
|
399
|
+
function onPageSizeChanged(e, search, filter, setFilter) {
|
|
400
400
|
filter.page = 1
|
|
401
|
-
filter.limit = getNumber(
|
|
401
|
+
filter.limit = getNumber(e)
|
|
402
402
|
if (setFilter) {
|
|
403
403
|
setFilter(filter)
|
|
404
404
|
}
|
|
@@ -416,8 +416,8 @@ function onPageChanged(data, search, filter, setFilter) {
|
|
|
416
416
|
search()
|
|
417
417
|
}
|
|
418
418
|
exports.onPageChanged = onPageChanged
|
|
419
|
-
function onSearch(
|
|
420
|
-
|
|
419
|
+
function onSearch(e, search, filter, state, setFilter, setState) {
|
|
420
|
+
e.preventDefault()
|
|
421
421
|
removeSortStatus(state.sortTarget)
|
|
422
422
|
filter.page = 1
|
|
423
423
|
state.sortTarget = undefined
|
|
@@ -431,8 +431,8 @@ function onSearch(event, search, filter, state, setFilter, setState) {
|
|
|
431
431
|
search()
|
|
432
432
|
}
|
|
433
433
|
exports.onSearch = onSearch
|
|
434
|
-
function onSort(
|
|
435
|
-
var target = getSortElement(
|
|
434
|
+
function onSort(e, search, state, setState) {
|
|
435
|
+
var target = getSortElement(e.target)
|
|
436
436
|
var sort = handleSort(target, state.sortTarget, state.sortField, state.sortType)
|
|
437
437
|
state.sortField = sort.field
|
|
438
438
|
state.sortType = sort.type
|
package/lib/state.js
CHANGED
|
@@ -16,7 +16,6 @@ var __assign =
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
17
17
|
var core_1 = require("./core")
|
|
18
18
|
var reflect_1 = require("./reflect")
|
|
19
|
-
var util_1 = require("./util")
|
|
20
19
|
function getDecimalSeparator(ele) {
|
|
21
20
|
var separator = ele.getAttribute("data-decimal-separator")
|
|
22
21
|
if (!separator) {
|
|
@@ -129,158 +128,6 @@ function updateState(e, o, setObj, callback, formatStr) {
|
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
130
|
exports.updateState = updateState
|
|
132
|
-
exports.enLocale = {
|
|
133
|
-
id: "en-US",
|
|
134
|
-
countryCode: "US",
|
|
135
|
-
dateFormat: "M/d/yyyy",
|
|
136
|
-
firstDayOfWeek: 1,
|
|
137
|
-
decimalSeparator: ".",
|
|
138
|
-
groupSeparator: ",",
|
|
139
|
-
decimalDigits: 2,
|
|
140
|
-
currencyCode: "USD",
|
|
141
|
-
currencySymbol: "$",
|
|
142
|
-
currencyPattern: 0,
|
|
143
|
-
}
|
|
144
|
-
function localeOf(lc, glc) {
|
|
145
|
-
var l = lc
|
|
146
|
-
if (!l) {
|
|
147
|
-
if (glc) {
|
|
148
|
-
if (typeof glc === "function") {
|
|
149
|
-
l = glc()
|
|
150
|
-
} else {
|
|
151
|
-
l = glc
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (!l) {
|
|
155
|
-
l = exports.enLocale
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return l
|
|
159
|
-
}
|
|
160
|
-
exports.localeOf = localeOf
|
|
161
|
-
function handleEvent(e, removeErr) {
|
|
162
|
-
var ctrl = e.currentTarget
|
|
163
|
-
var type = ctrl.getAttribute("type")
|
|
164
|
-
var isPreventDefault = type && (["checkbox", "radio"].indexOf(type.toLowerCase()) >= 0 ? false : true)
|
|
165
|
-
if (isPreventDefault) {
|
|
166
|
-
e.preventDefault()
|
|
167
|
-
}
|
|
168
|
-
if (removeErr && ctrl.nodeName === "SELECT" && ctrl.value && ctrl.classList.contains("invalid")) {
|
|
169
|
-
removeErr(ctrl)
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
exports.handleEvent = handleEvent
|
|
173
|
-
function handleProps(e, props, ctrl, modelName, tloc, prepareData) {
|
|
174
|
-
var _a, _b, _c, _d
|
|
175
|
-
if (props.setGlobalState) {
|
|
176
|
-
var res = util_1.valueOf(ctrl, tloc, e.type)
|
|
177
|
-
if (res.mustChange) {
|
|
178
|
-
var dataField = ctrl.getAttribute("data-field")
|
|
179
|
-
var field = dataField ? dataField : ctrl.name
|
|
180
|
-
var propsDataForm = props[modelName]
|
|
181
|
-
var form = ctrl.form
|
|
182
|
-
if (form) {
|
|
183
|
-
var formName = form.name
|
|
184
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
185
|
-
var data =
|
|
186
|
-
props.shouldBeCustomized && prepareData ? prepareData(((_a = {}), (_a[ctrl.name] = res.value), _a)) : ((_b = {}), (_b[ctrl.name] = res.value), _b)
|
|
187
|
-
props.setGlobalState(((_c = {}), (_c[formName] = __assign(__assign({}, propsDataForm), data)), _c))
|
|
188
|
-
} else {
|
|
189
|
-
reflect_1.setValue(propsDataForm, field, ctrl.value)
|
|
190
|
-
props.setGlobalState(((_d = {}), (_d[formName] = __assign({}, propsDataForm)), _d))
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
exports.handleProps = handleProps
|
|
197
|
-
function buildState(e, state, ctrl, modelName, tloc) {
|
|
198
|
-
var form = ctrl.form
|
|
199
|
-
if (form) {
|
|
200
|
-
if (modelName && modelName !== "") {
|
|
201
|
-
var type = ctrl.getAttribute("type")
|
|
202
|
-
var ex = state[modelName]
|
|
203
|
-
var dataField = ctrl.getAttribute("data-field")
|
|
204
|
-
var field = dataField ? dataField : ctrl.name
|
|
205
|
-
var model = Object.assign({}, ex)
|
|
206
|
-
if (type && type.toLowerCase() === "checkbox") {
|
|
207
|
-
var value = model[field]
|
|
208
|
-
if (ctrl.id && ctrl.name !== ctrl.id) {
|
|
209
|
-
if (!value || !Array.isArray(value)) {
|
|
210
|
-
value = []
|
|
211
|
-
}
|
|
212
|
-
value.includes(ctrl.value)
|
|
213
|
-
? (value = value.filter(function (v) {
|
|
214
|
-
return v !== ctrl.value
|
|
215
|
-
}))
|
|
216
|
-
: value.push(ctrl.value)
|
|
217
|
-
model[field] = value
|
|
218
|
-
} else {
|
|
219
|
-
var v = valueOfCheckbox(ctrl)
|
|
220
|
-
model[field] = v
|
|
221
|
-
}
|
|
222
|
-
var objSet = {}
|
|
223
|
-
objSet[modelName] = model
|
|
224
|
-
return objSet
|
|
225
|
-
} else if (type && type.toLowerCase() === "radio") {
|
|
226
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
227
|
-
model[field] = ctrl.value
|
|
228
|
-
} else {
|
|
229
|
-
reflect_1.setValue(model, field, ctrl.value)
|
|
230
|
-
}
|
|
231
|
-
var objSet = {}
|
|
232
|
-
objSet[modelName] = model
|
|
233
|
-
return objSet
|
|
234
|
-
} else if (type && (type.toLowerCase() === "date" || type.toLowerCase() === "datetime-local")) {
|
|
235
|
-
var objSet = {}
|
|
236
|
-
try {
|
|
237
|
-
var selectedDate = new Date(ctrl.value)
|
|
238
|
-
reflect_1.setValue(model, field, ctrl.value && ctrl.value !== "" ? selectedDate.toISOString() : null)
|
|
239
|
-
objSet[modelName] = model
|
|
240
|
-
return objSet
|
|
241
|
-
} catch (error) {
|
|
242
|
-
console.error("Error occurred while formatting date:", error)
|
|
243
|
-
}
|
|
244
|
-
return objSet
|
|
245
|
-
} else if (type && type.toLowerCase() === "time") {
|
|
246
|
-
var objSet = {}
|
|
247
|
-
try {
|
|
248
|
-
var selectedDate = new Date(ctrl.value)
|
|
249
|
-
reflect_1.setValue(model, field, selectedDate.getTime())
|
|
250
|
-
objSet[modelName] = model
|
|
251
|
-
return objSet
|
|
252
|
-
} catch (error) {
|
|
253
|
-
console.error("Error occurred while formatting time:", error)
|
|
254
|
-
}
|
|
255
|
-
return objSet
|
|
256
|
-
} else {
|
|
257
|
-
if (ctrl.tagName === "SELECT") {
|
|
258
|
-
if (ctrl.value === "" || !ctrl.value) {
|
|
259
|
-
ctrl.removeAttribute("data-value")
|
|
260
|
-
} else {
|
|
261
|
-
ctrl.setAttribute("data-value", "data-value")
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
var data = util_1.valueOf(ctrl, tloc, e.type)
|
|
265
|
-
if (data.mustChange) {
|
|
266
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
267
|
-
model[field] = data.value
|
|
268
|
-
} else {
|
|
269
|
-
reflect_1.setValue(model, field, data.value)
|
|
270
|
-
}
|
|
271
|
-
var objSet = {}
|
|
272
|
-
objSet[modelName] = model
|
|
273
|
-
return objSet
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
} else {
|
|
277
|
-
return buildFlatState(e, state, tloc)
|
|
278
|
-
}
|
|
279
|
-
} else {
|
|
280
|
-
buildFlatState(e, state, tloc)
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
exports.buildState = buildState
|
|
284
131
|
function valueOfCheckbox(ctrl) {
|
|
285
132
|
var ctrlOnValue = ctrl.getAttribute("data-on-value")
|
|
286
133
|
var ctrlOffValue = ctrl.getAttribute("data-off-value")
|
|
@@ -293,35 +140,3 @@ function valueOfCheckbox(ctrl) {
|
|
|
293
140
|
}
|
|
294
141
|
}
|
|
295
142
|
exports.valueOfCheckbox = valueOfCheckbox
|
|
296
|
-
function buildFlatState(e, state, l) {
|
|
297
|
-
var _a
|
|
298
|
-
var ctrl = e.currentTarget
|
|
299
|
-
var stateName = ctrl.name
|
|
300
|
-
var objSet = {}
|
|
301
|
-
var type = ctrl.getAttribute("type")
|
|
302
|
-
if (type && type.toLowerCase() === "checkbox") {
|
|
303
|
-
if (ctrl.id && stateName === ctrl.id) {
|
|
304
|
-
var v = valueOfCheckbox(ctrl)
|
|
305
|
-
objSet[stateName] = v
|
|
306
|
-
return objSet
|
|
307
|
-
} else {
|
|
308
|
-
var value = state[stateName]
|
|
309
|
-
value.includes(ctrl.value)
|
|
310
|
-
? (value = value.filter(function (v) {
|
|
311
|
-
return v !== ctrl.value
|
|
312
|
-
}))
|
|
313
|
-
: value.push(ctrl.value)
|
|
314
|
-
var objSet2 = ((_a = {}), (_a[ctrl.name] = value), _a)
|
|
315
|
-
return objSet2
|
|
316
|
-
}
|
|
317
|
-
} else {
|
|
318
|
-
var data = util_1.valueOf(ctrl, l, e.type)
|
|
319
|
-
if (data.mustChange) {
|
|
320
|
-
objSet[stateName] = data.value
|
|
321
|
-
return objSet
|
|
322
|
-
} else {
|
|
323
|
-
return undefined
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
exports.buildFlatState = buildFlatState
|
package/lib/util.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
|
|
3
|
+
exports.enLocale = {
|
|
4
|
+
id: "en-US",
|
|
5
|
+
countryCode: "US",
|
|
6
|
+
dateFormat: "M/d/yyyy",
|
|
7
|
+
firstDayOfWeek: 1,
|
|
8
|
+
decimalSeparator: ".",
|
|
9
|
+
groupSeparator: ",",
|
|
10
|
+
decimalDigits: 2,
|
|
11
|
+
currencyCode: "USD",
|
|
12
|
+
currencySymbol: "$",
|
|
13
|
+
currencyPattern: 0,
|
|
14
|
+
}
|
|
4
15
|
var r1 = / |,|\$|€|£|¥|'|٬|،| /g
|
|
5
16
|
var r2 = / |\.|\$|€|£|¥|'|٬|،| /g
|
|
6
17
|
function valueOf(ctrl, locale, eventType) {
|
|
@@ -57,7 +68,7 @@ function getStringCurrency(value, datatype, locale, maxLength, isOnBlur) {
|
|
|
57
68
|
return { mustChange: true, value: value.substring(1) }
|
|
58
69
|
}
|
|
59
70
|
if (!locale) {
|
|
60
|
-
locale =
|
|
71
|
+
locale = exports.enLocale
|
|
61
72
|
}
|
|
62
73
|
var decimalDigits = locale ? locale.decimalDigits : 2
|
|
63
74
|
var groupDigits = 3
|
package/package.json
CHANGED
package/src/com.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface Props {
|
|
|
23
23
|
maxLength?: number
|
|
24
24
|
value?: string
|
|
25
25
|
placeholder?: string
|
|
26
|
-
pageSizeChanged?: (
|
|
26
|
+
pageSizeChanged?: (e: React.ChangeEvent<HTMLSelectElement>) => void
|
|
27
27
|
search?: React.MouseEventHandler<HTMLElement>
|
|
28
28
|
toggle?: React.MouseEventHandler<HTMLElement>
|
|
29
29
|
clear?: React.MouseEventHandler<HTMLButtonElement>
|
package/src/core.ts
CHANGED
|
@@ -52,15 +52,6 @@ export interface ErrorMessage {
|
|
|
52
52
|
param?: string | number | Date
|
|
53
53
|
message?: string
|
|
54
54
|
}
|
|
55
|
-
export interface UIService {
|
|
56
|
-
validateForm(form?: HTMLFormElement, locale?: Locale, focusFirst?: boolean, scroll?: boolean): boolean
|
|
57
|
-
removeFormError(form: HTMLFormElement): void
|
|
58
|
-
removeError(el: HTMLInputElement): void
|
|
59
|
-
showFormError(form?: HTMLFormElement, errors?: ErrorMessage[], focusFirst?: boolean): ErrorMessage[]
|
|
60
|
-
buildErrorMessage(errors: ErrorMessage[]): string
|
|
61
|
-
|
|
62
|
-
registerEvents?(form: HTMLFormElement): void
|
|
63
|
-
}
|
|
64
55
|
|
|
65
56
|
export type Type =
|
|
66
57
|
| "ObjectId"
|
package/src/diff.ts
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
|
-
import { LoadingService } from "./core"
|
|
2
1
|
import { clone } from "./reflect"
|
|
3
2
|
|
|
4
|
-
export interface DiffParameter {
|
|
5
|
-
showMessage: (msg: string, option?: string) => void
|
|
6
|
-
showError: (m: string, header?: string, detail?: string, callback?: () => void) => void
|
|
7
|
-
loading?: LoadingService
|
|
8
|
-
}
|
|
9
|
-
export interface BaseDiffState {
|
|
10
|
-
disabled: boolean
|
|
11
|
-
}
|
|
12
3
|
export interface DiffModel<T, ID> {
|
|
13
4
|
id?: ID
|
|
14
5
|
origin?: T
|
|
15
6
|
value: T
|
|
16
7
|
}
|
|
17
8
|
export interface ApprService<ID> {
|
|
18
|
-
approve(id: ID,
|
|
19
|
-
reject(id: ID,
|
|
9
|
+
approve(id: ID, note?: string): Promise<number>
|
|
10
|
+
reject(id: ID, note?: string): Promise<number>
|
|
20
11
|
}
|
|
12
|
+
|
|
21
13
|
export interface DiffService<T, ID> {
|
|
22
14
|
keys(): string[]
|
|
23
15
|
diff(id: ID, ctx?: any): Promise<DiffModel<T, ID>>
|
package/src/edit.ts
CHANGED
|
@@ -1,6 +1,64 @@
|
|
|
1
1
|
import { NavigateFunction } from "react-router-dom"
|
|
2
2
|
import { Attributes, ErrorMessage, StringMap } from "./core"
|
|
3
3
|
|
|
4
|
+
export function isSuccessful<T>(x: number | T | ErrorMessage[]): boolean {
|
|
5
|
+
if (Array.isArray(x)) {
|
|
6
|
+
return false
|
|
7
|
+
} else if (typeof x === "object") {
|
|
8
|
+
return true
|
|
9
|
+
} else if (typeof x === "number" && x > 0) {
|
|
10
|
+
return true
|
|
11
|
+
}
|
|
12
|
+
return false
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type Result<T> = number | T | ErrorMessage[]
|
|
16
|
+
export function afterSaved<T>(
|
|
17
|
+
res: Result<T>,
|
|
18
|
+
form: HTMLFormElement | undefined | null,
|
|
19
|
+
resource: StringMap,
|
|
20
|
+
showFormError: (form?: HTMLFormElement | null, errors?: ErrorMessage[]) => ErrorMessage[],
|
|
21
|
+
alertSuccess: (msg: string, callback?: () => void) => void,
|
|
22
|
+
alertError: (msg: string) => void,
|
|
23
|
+
navigate?: NavigateFunction,
|
|
24
|
+
) {
|
|
25
|
+
if (Array.isArray(res)) {
|
|
26
|
+
showFormError(form, res)
|
|
27
|
+
} else if (isSuccessful(res)) {
|
|
28
|
+
alertSuccess(resource.msg_save_success, () => {
|
|
29
|
+
if (navigate) {
|
|
30
|
+
navigate(-1)
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
} else if (res === 0) {
|
|
34
|
+
alertError(resource.error_not_found)
|
|
35
|
+
} else {
|
|
36
|
+
alertError(resource.error_conflict)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function afterCreated<T>(
|
|
40
|
+
res: Result<T>,
|
|
41
|
+
form: HTMLFormElement | undefined | null,
|
|
42
|
+
successMessage: string,
|
|
43
|
+
duplicateMessage: string,
|
|
44
|
+
showFormError: (form?: HTMLFormElement | null, errors?: ErrorMessage[]) => ErrorMessage[],
|
|
45
|
+
alertSuccess: (msg: string, callback?: () => void) => void,
|
|
46
|
+
alertError: (msg: string) => void,
|
|
47
|
+
navigate?: NavigateFunction,
|
|
48
|
+
) {
|
|
49
|
+
if (Array.isArray(res)) {
|
|
50
|
+
showFormError(form, res)
|
|
51
|
+
} else if (isSuccessful(res)) {
|
|
52
|
+
alertSuccess(successMessage, () => {
|
|
53
|
+
if (navigate) {
|
|
54
|
+
navigate(-1)
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
} else {
|
|
58
|
+
alertError(duplicateMessage)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
4
62
|
export function createModel<T>(attributes?: Attributes): T {
|
|
5
63
|
const obj: any = {}
|
|
6
64
|
if (!attributes) {
|
|
@@ -48,39 +106,3 @@ export function createModel<T>(attributes?: Attributes): T {
|
|
|
48
106
|
}
|
|
49
107
|
return obj
|
|
50
108
|
}
|
|
51
|
-
|
|
52
|
-
export function isSuccessful<T>(x: number | T | ErrorMessage[]): boolean {
|
|
53
|
-
if (Array.isArray(x)) {
|
|
54
|
-
return false
|
|
55
|
-
} else if (typeof x === "object") {
|
|
56
|
-
return true
|
|
57
|
-
} else if (typeof x === "number" && x > 0) {
|
|
58
|
-
return true
|
|
59
|
-
}
|
|
60
|
-
return false
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
type Result<T> = number | T | ErrorMessage[]
|
|
64
|
-
export function afterSaved<T>(
|
|
65
|
-
res: Result<T>,
|
|
66
|
-
form: HTMLFormElement | undefined | null,
|
|
67
|
-
resource: StringMap,
|
|
68
|
-
showFormError: (form?: HTMLFormElement | null, errors?: ErrorMessage[]) => ErrorMessage[],
|
|
69
|
-
alertSuccess: (msg: string, callback?: () => void) => void,
|
|
70
|
-
alertError: (msg: string) => void,
|
|
71
|
-
navigate?: NavigateFunction,
|
|
72
|
-
) {
|
|
73
|
-
if (Array.isArray(res)) {
|
|
74
|
-
showFormError(form, res)
|
|
75
|
-
} else if (isSuccessful(res)) {
|
|
76
|
-
alertSuccess(resource.msg_save_success, () => {
|
|
77
|
-
if (navigate) {
|
|
78
|
-
navigate(-1)
|
|
79
|
-
}
|
|
80
|
-
})
|
|
81
|
-
} else if (res === 0) {
|
|
82
|
-
alertError(resource.error_not_found)
|
|
83
|
-
} else {
|
|
84
|
-
alertError(resource.error_conflict)
|
|
85
|
-
}
|
|
86
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -4,15 +4,11 @@ export * from "./com"
|
|
|
4
4
|
export * from "./core"
|
|
5
5
|
export * from "./diff"
|
|
6
6
|
export * from "./edit"
|
|
7
|
-
export * from "./formutil"
|
|
8
7
|
export * from "./reflect"
|
|
9
8
|
export * from "./route"
|
|
10
9
|
export * from "./search"
|
|
11
10
|
export * from "./state"
|
|
12
|
-
export * from "./update"
|
|
13
|
-
export * from "./useEdit"
|
|
14
11
|
export * from "./useMessage"
|
|
15
|
-
export * from "./useSearch"
|
|
16
12
|
export * from "./util"
|
|
17
13
|
|
|
18
14
|
export type ButtonMouseEvent = React.MouseEvent<HTMLButtonElement, MouseEvent>
|
|
@@ -98,7 +94,7 @@ interface InputProps {
|
|
|
98
94
|
defaultValue?: string
|
|
99
95
|
onChangeNumber?: (value: number) => void
|
|
100
96
|
onChange?: ChangeEventHandler<HTMLInputElement>
|
|
101
|
-
currencyOnBlur?: (
|
|
97
|
+
currencyOnBlur?: (e: Event | any, locale: Locale, currencyCode?: string, includingCurrencySymbol?: boolean) => void
|
|
102
98
|
currencyCode?: string
|
|
103
99
|
symbol?: boolean
|
|
104
100
|
readOnly?: boolean
|
package/src/route.ts
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import queryString from "query-string"
|
|
2
|
+
import * as React from "react"
|
|
2
3
|
import { NavigateFunction } from "react-router-dom"
|
|
3
4
|
import { StringMap } from "./core"
|
|
4
5
|
import { hasDiff } from "./reflect"
|
|
5
6
|
import { Filter } from "./search"
|
|
6
7
|
|
|
8
|
+
export function onBack<T>(
|
|
9
|
+
e: React.MouseEvent<HTMLElement, MouseEvent>,
|
|
10
|
+
navigate: NavigateFunction,
|
|
11
|
+
confirm: (msg: string, yesCallback?: () => void) => void,
|
|
12
|
+
resource: StringMap,
|
|
13
|
+
o1: T,
|
|
14
|
+
o2: T,
|
|
15
|
+
keys?: string[],
|
|
16
|
+
version?: string,
|
|
17
|
+
) {
|
|
18
|
+
e.preventDefault()
|
|
19
|
+
goBack(navigate, confirm, resource, o1, o2, keys, version)
|
|
20
|
+
}
|
|
21
|
+
|
|
7
22
|
export function goBack<T>(
|
|
8
23
|
navigate: NavigateFunction,
|
|
9
24
|
confirm: (msg: string, yesCallback?: () => void) => void,
|