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/src/search.ts
CHANGED
|
@@ -374,8 +374,8 @@ export function handleToggle(target?: HTMLElement, off?: boolean): boolean {
|
|
|
374
374
|
}
|
|
375
375
|
return on
|
|
376
376
|
}
|
|
377
|
-
export function getNumber(
|
|
378
|
-
return parseInt(
|
|
377
|
+
export function getNumber(e: ChangeEvent<HTMLSelectElement | HTMLInputElement>): number {
|
|
378
|
+
return parseInt(e.currentTarget.value, 10)
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
export function setSortFilter<F extends Filter, T extends Sortable>(
|
|
@@ -407,7 +407,7 @@ export function onToggleSearch(
|
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
export function resetSearch<T extends Filter>(
|
|
410
|
-
e: ChangeEvent<HTMLInputElement
|
|
410
|
+
e: ChangeEvent<HTMLInputElement>,
|
|
411
411
|
filter: T,
|
|
412
412
|
setFilter: (v: React.SetStateAction<T>) => void,
|
|
413
413
|
search?: () => void,
|
|
@@ -428,13 +428,13 @@ export function onClearQ<T extends Filter>(filter: T, setFilter?: (v: React.SetS
|
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
430
|
export function onPageSizeChanged<T extends Filter>(
|
|
431
|
-
|
|
431
|
+
e: ChangeEvent<HTMLSelectElement>,
|
|
432
432
|
search: () => void,
|
|
433
433
|
filter: T,
|
|
434
434
|
setFilter?: (v: React.SetStateAction<T>) => void,
|
|
435
435
|
) {
|
|
436
436
|
filter.page = 1
|
|
437
|
-
filter.limit = getNumber(
|
|
437
|
+
filter.limit = getNumber(e)
|
|
438
438
|
if (setFilter) {
|
|
439
439
|
setFilter(filter)
|
|
440
440
|
}
|
|
@@ -450,14 +450,14 @@ export function onPageChanged<T extends Filter>(data: PageChange, search: () =>
|
|
|
450
450
|
search()
|
|
451
451
|
}
|
|
452
452
|
export function onSearch<F extends Filter, T extends Sortable>(
|
|
453
|
-
|
|
453
|
+
e: React.MouseEvent<HTMLButtonElement, MouseEvent>,
|
|
454
454
|
search: () => void,
|
|
455
455
|
filter: F,
|
|
456
456
|
state: T,
|
|
457
457
|
setFilter?: (v: React.SetStateAction<F>) => void,
|
|
458
458
|
setState?: (v: React.SetStateAction<T>) => void,
|
|
459
459
|
): void {
|
|
460
|
-
|
|
460
|
+
e.preventDefault()
|
|
461
461
|
removeSortStatus(state.sortTarget)
|
|
462
462
|
filter.page = 1
|
|
463
463
|
state.sortTarget = undefined
|
|
@@ -471,12 +471,12 @@ export function onSearch<F extends Filter, T extends Sortable>(
|
|
|
471
471
|
search()
|
|
472
472
|
}
|
|
473
473
|
export function onSort<T extends Sortable>(
|
|
474
|
-
|
|
474
|
+
e: React.MouseEvent<HTMLButtonElement, MouseEvent>,
|
|
475
475
|
search: () => void,
|
|
476
476
|
state: T,
|
|
477
477
|
setState?: (v: React.SetStateAction<T>) => void,
|
|
478
478
|
) {
|
|
479
|
-
const target = getSortElement(
|
|
479
|
+
const target = getSortElement(e.target as HTMLElement)
|
|
480
480
|
const sort = handleSort(target, state.sortTarget, state.sortField, state.sortType)
|
|
481
481
|
state.sortField = sort.field
|
|
482
482
|
state.sortType = sort.type
|
package/src/state.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ChangeEvent } from "react"
|
|
2
|
-
import {
|
|
2
|
+
import { removeFaxFormat, removePhoneFormat } from "./core"
|
|
3
3
|
import { setValue } from "./reflect"
|
|
4
|
-
import { valueOf } from "./util"
|
|
5
4
|
|
|
6
5
|
export function getDecimalSeparator(ele: HTMLInputElement): string {
|
|
7
6
|
let separator = ele.getAttribute("data-decimal-separator")
|
|
@@ -17,7 +16,7 @@ export function getDecimalSeparator(ele: HTMLInputElement): string {
|
|
|
17
16
|
const r1 = / |,|\$|€|£|¥|'|٬|،| /g
|
|
18
17
|
const r2 = / |\.|\$|€|£|¥|'|٬|،| /g
|
|
19
18
|
export function updateNumber<T>(
|
|
20
|
-
e: ChangeEvent<HTMLInputElement
|
|
19
|
+
e: ChangeEvent<HTMLInputElement>,
|
|
21
20
|
o: T,
|
|
22
21
|
setObj: (v: React.SetStateAction<T>) => void,
|
|
23
22
|
decimalSeparator?: string,
|
|
@@ -40,7 +39,7 @@ export function updateNumber<T>(
|
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
export function formatAndUpdateState<T>(
|
|
43
|
-
e: ChangeEvent<HTMLInputElement
|
|
42
|
+
e: ChangeEvent<HTMLInputElement> | ChangeEvent<HTMLSelectElement> | ChangeEvent<HTMLTextAreaElement>,
|
|
44
43
|
o: T,
|
|
45
44
|
setObj: (v: React.SetStateAction<T>) => void,
|
|
46
45
|
formatStr?: (s?: string) => string,
|
|
@@ -49,7 +48,7 @@ export function formatAndUpdateState<T>(
|
|
|
49
48
|
updateState(e, o, setObj, callback, formatStr)
|
|
50
49
|
}
|
|
51
50
|
export function updateState<T>(
|
|
52
|
-
e: ChangeEvent<HTMLInputElement
|
|
51
|
+
e: ChangeEvent<HTMLInputElement> | ChangeEvent<HTMLSelectElement> | ChangeEvent<HTMLTextAreaElement>,
|
|
53
52
|
o: T,
|
|
54
53
|
setObj: (v: React.SetStateAction<T>) => void,
|
|
55
54
|
callback?: () => void,
|
|
@@ -128,170 +127,6 @@ export function updateState<T>(
|
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
export const enLocale = {
|
|
132
|
-
id: "en-US",
|
|
133
|
-
countryCode: "US",
|
|
134
|
-
dateFormat: "M/d/yyyy",
|
|
135
|
-
firstDayOfWeek: 1,
|
|
136
|
-
decimalSeparator: ".",
|
|
137
|
-
groupSeparator: ",",
|
|
138
|
-
decimalDigits: 2,
|
|
139
|
-
currencyCode: "USD",
|
|
140
|
-
currencySymbol: "$",
|
|
141
|
-
currencyPattern: 0,
|
|
142
|
-
}
|
|
143
|
-
export function localeOf(lc?: Locale, glc?: (() => Locale) | Locale): Locale {
|
|
144
|
-
let l: Locale | undefined = lc
|
|
145
|
-
if (!l) {
|
|
146
|
-
if (glc) {
|
|
147
|
-
if (typeof glc === "function") {
|
|
148
|
-
l = glc()
|
|
149
|
-
} else {
|
|
150
|
-
l = glc
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (!l) {
|
|
154
|
-
l = enLocale
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return l
|
|
158
|
-
}
|
|
159
|
-
export function handleEvent(e: any, removeErr?: (ctrl: HTMLInputElement) => void) {
|
|
160
|
-
const ctrl = e.currentTarget as HTMLInputElement
|
|
161
|
-
const type = ctrl.getAttribute("type")
|
|
162
|
-
const isPreventDefault = type && (["checkbox", "radio"].indexOf(type.toLowerCase()) >= 0 ? false : true)
|
|
163
|
-
if (isPreventDefault) {
|
|
164
|
-
e.preventDefault()
|
|
165
|
-
}
|
|
166
|
-
if (removeErr && ctrl.nodeName === "SELECT" && ctrl.value && ctrl.classList.contains("invalid")) {
|
|
167
|
-
removeErr(ctrl)
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export interface ModelMap {
|
|
172
|
-
[key: string]: any
|
|
173
|
-
}
|
|
174
|
-
export interface ModelProps {
|
|
175
|
-
setGlobalState?: (m: ModelMap) => void
|
|
176
|
-
shouldBeCustomized?: boolean
|
|
177
|
-
}
|
|
178
|
-
export function handleProps<P extends ModelProps>(
|
|
179
|
-
e: any,
|
|
180
|
-
props: P,
|
|
181
|
-
ctrl: HTMLInputElement,
|
|
182
|
-
modelName: string,
|
|
183
|
-
tloc: Locale,
|
|
184
|
-
prepareData?: (data: any) => void,
|
|
185
|
-
) {
|
|
186
|
-
if (props.setGlobalState) {
|
|
187
|
-
const res = valueOf(ctrl, tloc, e.type)
|
|
188
|
-
if (res.mustChange) {
|
|
189
|
-
const dataField = ctrl.getAttribute("data-field")
|
|
190
|
-
const field = dataField ? dataField : ctrl.name
|
|
191
|
-
const propsDataForm = (props as any)[modelName]
|
|
192
|
-
const form = ctrl.form
|
|
193
|
-
if (form) {
|
|
194
|
-
const formName = form.name
|
|
195
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
196
|
-
const data = props.shouldBeCustomized && prepareData ? prepareData({ [ctrl.name]: res.value }) : { [ctrl.name]: res.value }
|
|
197
|
-
props.setGlobalState({ [formName]: { ...propsDataForm, ...data } })
|
|
198
|
-
} else {
|
|
199
|
-
setValue(propsDataForm, field, ctrl.value)
|
|
200
|
-
props.setGlobalState({ [formName]: { ...propsDataForm } })
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
export function buildState<S, K extends keyof S>(e: any, state: Readonly<S>, ctrl: HTMLInputElement, modelName: string, tloc: Locale): K | undefined {
|
|
207
|
-
const form = ctrl.form
|
|
208
|
-
if (form) {
|
|
209
|
-
if (modelName && modelName !== "") {
|
|
210
|
-
const type = ctrl.getAttribute("type")
|
|
211
|
-
const ex = (state as any)[modelName]
|
|
212
|
-
const dataField = ctrl.getAttribute("data-field")
|
|
213
|
-
const field = dataField ? dataField : ctrl.name
|
|
214
|
-
const model = Object.assign({}, ex)
|
|
215
|
-
if (type && type.toLowerCase() === "checkbox") {
|
|
216
|
-
let value = model[field]
|
|
217
|
-
if (ctrl.id && ctrl.name !== ctrl.id) {
|
|
218
|
-
if (!value || !Array.isArray(value)) {
|
|
219
|
-
value = []
|
|
220
|
-
}
|
|
221
|
-
value.includes(ctrl.value) ? (value = value.filter((v: string) => v !== ctrl.value)) : value.push(ctrl.value)
|
|
222
|
-
// if (dType == 'array'){
|
|
223
|
-
// if (value === 'string'){
|
|
224
|
-
// value = [value]
|
|
225
|
-
// }
|
|
226
|
-
// }
|
|
227
|
-
model[field] = value
|
|
228
|
-
// console.log(model, modelName, model, model[field], field, value )
|
|
229
|
-
// setValue(model, field, value);
|
|
230
|
-
} else {
|
|
231
|
-
const v = valueOfCheckbox(ctrl)
|
|
232
|
-
model[field] = v
|
|
233
|
-
}
|
|
234
|
-
const objSet: any = {}
|
|
235
|
-
objSet[modelName] = model
|
|
236
|
-
return objSet
|
|
237
|
-
} else if (type && type.toLowerCase() === "radio") {
|
|
238
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
239
|
-
model[field] = ctrl.value
|
|
240
|
-
} else {
|
|
241
|
-
setValue(model, field, ctrl.value)
|
|
242
|
-
}
|
|
243
|
-
const objSet: any = {}
|
|
244
|
-
objSet[modelName] = model
|
|
245
|
-
return objSet
|
|
246
|
-
} else if (type && (type.toLowerCase() === "date" || type.toLowerCase() === "datetime-local")) {
|
|
247
|
-
const objSet: any = {}
|
|
248
|
-
try {
|
|
249
|
-
const selectedDate = new Date(ctrl.value)
|
|
250
|
-
setValue(model, field, ctrl.value && ctrl.value !== "" ? selectedDate.toISOString() : null)
|
|
251
|
-
objSet[modelName] = model
|
|
252
|
-
return objSet
|
|
253
|
-
} catch (error) {
|
|
254
|
-
console.error("Error occurred while formatting date:", error)
|
|
255
|
-
}
|
|
256
|
-
return objSet
|
|
257
|
-
} else if (type && type.toLowerCase() === "time") {
|
|
258
|
-
const objSet: any = {}
|
|
259
|
-
try {
|
|
260
|
-
const selectedDate = new Date(ctrl.value)
|
|
261
|
-
setValue(model, field, selectedDate.getTime())
|
|
262
|
-
objSet[modelName] = model
|
|
263
|
-
return objSet
|
|
264
|
-
} catch (error) {
|
|
265
|
-
console.error("Error occurred while formatting time:", error)
|
|
266
|
-
}
|
|
267
|
-
return objSet
|
|
268
|
-
} else {
|
|
269
|
-
if (ctrl.tagName === "SELECT") {
|
|
270
|
-
if (ctrl.value === "" || !ctrl.value) {
|
|
271
|
-
ctrl.removeAttribute("data-value")
|
|
272
|
-
} else {
|
|
273
|
-
ctrl.setAttribute("data-value", "data-value")
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
const data = valueOf(ctrl, tloc, e.type)
|
|
277
|
-
if (data.mustChange) {
|
|
278
|
-
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
|
|
279
|
-
model[field] = data.value
|
|
280
|
-
} else {
|
|
281
|
-
setValue(model, field, data.value)
|
|
282
|
-
}
|
|
283
|
-
const objSet: any = {}
|
|
284
|
-
objSet[modelName] = model
|
|
285
|
-
return objSet
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
} else {
|
|
289
|
-
return buildFlatState(e, state, tloc)
|
|
290
|
-
}
|
|
291
|
-
} else {
|
|
292
|
-
buildFlatState(e, state, tloc)
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
130
|
export function valueOfCheckbox(ctrl: HTMLInputElement): string | number | boolean {
|
|
296
131
|
const ctrlOnValue = ctrl.getAttribute("data-on-value")
|
|
297
132
|
const ctrlOffValue = ctrl.getAttribute("data-off-value")
|
|
@@ -303,29 +138,3 @@ export function valueOfCheckbox(ctrl: HTMLInputElement): string | number | boole
|
|
|
303
138
|
return ctrl.checked === true
|
|
304
139
|
}
|
|
305
140
|
}
|
|
306
|
-
export function buildFlatState<S, K extends keyof S>(e: any, state: Readonly<S>, l?: Locale): K | undefined {
|
|
307
|
-
const ctrl = e.currentTarget as HTMLInputElement
|
|
308
|
-
const stateName = ctrl.name
|
|
309
|
-
const objSet: any = {}
|
|
310
|
-
const type = ctrl.getAttribute("type")
|
|
311
|
-
if (type && type.toLowerCase() === "checkbox") {
|
|
312
|
-
if (ctrl.id && stateName === ctrl.id) {
|
|
313
|
-
const v = valueOfCheckbox(ctrl)
|
|
314
|
-
objSet[stateName] = v
|
|
315
|
-
return objSet
|
|
316
|
-
} else {
|
|
317
|
-
let value = (state as any)[stateName]
|
|
318
|
-
value.includes(ctrl.value) ? (value = value.filter((v: string) => v !== ctrl.value)) : value.push(ctrl.value)
|
|
319
|
-
const objSet2: any = { [ctrl.name]: value }
|
|
320
|
-
return objSet2
|
|
321
|
-
}
|
|
322
|
-
} else {
|
|
323
|
-
const data = valueOf(ctrl, l, e.type)
|
|
324
|
-
if (data.mustChange) {
|
|
325
|
-
objSet[stateName] = data.value
|
|
326
|
-
return objSet
|
|
327
|
-
} else {
|
|
328
|
-
return undefined
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
package/src/util.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import { Locale } from "./core"
|
|
2
|
-
|
|
1
|
+
import { Locale } from "./core";
|
|
2
|
+
|
|
3
|
+
export const 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
|
+
}
|
|
3
15
|
|
|
4
16
|
const r1 = / |,|\$|€|£|¥|'|٬|،| /g
|
|
5
17
|
const r2 = / |\.|\$|€|£|¥|'|٬|،| /g
|
package/tsconfig.json
CHANGED
package/lib/common.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
function messageByHttpStatus(status, resource) {
|
|
4
|
-
var k = "error_" + status
|
|
5
|
-
var msg = resource[k]
|
|
6
|
-
if (!msg || msg.length === 0) {
|
|
7
|
-
msg = resource.error_500
|
|
8
|
-
}
|
|
9
|
-
return msg
|
|
10
|
-
}
|
|
11
|
-
exports.messageByHttpStatus = messageByHttpStatus
|
|
12
|
-
function error(err, resource, ae) {
|
|
13
|
-
var title = resource.error
|
|
14
|
-
var msg = resource.error_internal
|
|
15
|
-
if (!err) {
|
|
16
|
-
ae(msg, undefined, title)
|
|
17
|
-
return
|
|
18
|
-
}
|
|
19
|
-
var data = err && err.response ? err.response : err
|
|
20
|
-
if (data) {
|
|
21
|
-
var status_1 = data.status
|
|
22
|
-
if (status_1 && !isNaN(status_1)) {
|
|
23
|
-
msg = messageByHttpStatus(status_1, resource)
|
|
24
|
-
}
|
|
25
|
-
ae(msg, undefined, title)
|
|
26
|
-
} else {
|
|
27
|
-
ae(msg, undefined, title)
|
|
28
|
-
}
|
|
29
|
-
}
|
|
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/formutil.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
function setReadOnly(form) {
|
|
4
|
-
var args = []
|
|
5
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
6
|
-
args[_i - 1] = arguments[_i]
|
|
7
|
-
}
|
|
8
|
-
if (!form) {
|
|
9
|
-
return
|
|
10
|
-
}
|
|
11
|
-
var len = form.length
|
|
12
|
-
for (var i = 0; i < len; i++) {
|
|
13
|
-
var ctrl = form[i]
|
|
14
|
-
var name_1 = ctrl.getAttribute("name")
|
|
15
|
-
var skip = false
|
|
16
|
-
if (name_1 != null && name_1.length > 0 && name_1 !== "btnBack") {
|
|
17
|
-
if (arguments.length > 1) {
|
|
18
|
-
for (var j = 1; j < arguments.length; j++) {
|
|
19
|
-
if (arguments[j] === name_1) {
|
|
20
|
-
skip = true
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (skip === false) {
|
|
25
|
-
var nodeName = ctrl.nodeName
|
|
26
|
-
var type = ctrl.getAttribute("type")
|
|
27
|
-
if (nodeName === "INPUT" && type !== null) {
|
|
28
|
-
nodeName = type.toUpperCase()
|
|
29
|
-
}
|
|
30
|
-
if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "SELECT") {
|
|
31
|
-
switch (type) {
|
|
32
|
-
case "checkbox":
|
|
33
|
-
ctrl.disabled = true
|
|
34
|
-
break
|
|
35
|
-
case "radio":
|
|
36
|
-
ctrl.disabled = true
|
|
37
|
-
break
|
|
38
|
-
default:
|
|
39
|
-
ctrl.readOnly = true
|
|
40
|
-
}
|
|
41
|
-
} else {
|
|
42
|
-
ctrl.disabled = true
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.setReadOnly = setReadOnly
|
|
49
|
-
function focusFirstError(form, className) {
|
|
50
|
-
if (!form) {
|
|
51
|
-
return
|
|
52
|
-
}
|
|
53
|
-
var len = form.length
|
|
54
|
-
if (className && className.length > 0) {
|
|
55
|
-
for (var i = 0; i < len; i++) {
|
|
56
|
-
var ctrl = form[i]
|
|
57
|
-
var parent_1 = ctrl.parentElement
|
|
58
|
-
if (ctrl.classList.contains(className) || (parent_1 && parent_1.classList.contains(className))) {
|
|
59
|
-
ctrl.focus()
|
|
60
|
-
ctrl.scrollIntoView()
|
|
61
|
-
return
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
} else {
|
|
65
|
-
for (var i = 0; i < len; i++) {
|
|
66
|
-
var ctrl = form[i]
|
|
67
|
-
var parent_2 = ctrl.parentElement
|
|
68
|
-
if (ctrl.classList.contains("invalid") || ctrl.classList.contains(".ng-invalid") || (parent_2 && parent_2.classList.contains("invalid"))) {
|
|
69
|
-
ctrl.focus()
|
|
70
|
-
ctrl.scrollIntoView()
|
|
71
|
-
return
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.focusFirstError = focusFirstError
|
package/lib/update.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
var __assign =
|
|
3
|
-
(this && this.__assign) ||
|
|
4
|
-
function () {
|
|
5
|
-
__assign =
|
|
6
|
-
Object.assign ||
|
|
7
|
-
function (t) {
|
|
8
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
-
s = arguments[i]
|
|
10
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]
|
|
11
|
-
}
|
|
12
|
-
return t
|
|
13
|
-
}
|
|
14
|
-
return __assign.apply(this, arguments)
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
17
|
-
var react_1 = require("react")
|
|
18
|
-
var core_1 = require("./core")
|
|
19
|
-
var state_1 = require("./state")
|
|
20
|
-
function getModelName(form, name) {
|
|
21
|
-
if (form) {
|
|
22
|
-
var a = form.getAttribute("model-name")
|
|
23
|
-
if (a && a.length > 0) {
|
|
24
|
-
return a
|
|
25
|
-
}
|
|
26
|
-
var b = form.name
|
|
27
|
-
if (b) {
|
|
28
|
-
if (b.endsWith("Form")) {
|
|
29
|
-
return b.substring(0, b.length - 4)
|
|
30
|
-
}
|
|
31
|
-
return b
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (name && name.length > 0) {
|
|
35
|
-
return name
|
|
36
|
-
}
|
|
37
|
-
return ""
|
|
38
|
-
}
|
|
39
|
-
exports.getModelName = getModelName
|
|
40
|
-
var m = "model"
|
|
41
|
-
var _getModelName = function (f2) {
|
|
42
|
-
return getModelName(f2, m)
|
|
43
|
-
}
|
|
44
|
-
function useMergeState(initialState) {
|
|
45
|
-
var _a = react_1.useState(initialState ? initialState : {}),
|
|
46
|
-
state = _a[0],
|
|
47
|
-
_setState = _a[1]
|
|
48
|
-
var callbackRef = react_1.useRef(null)
|
|
49
|
-
var setState = react_1.useCallback(
|
|
50
|
-
function (newState, callback) {
|
|
51
|
-
callbackRef.current = callback
|
|
52
|
-
_setState(function (prevState) {
|
|
53
|
-
return Object.assign({}, prevState, newState)
|
|
54
|
-
})
|
|
55
|
-
},
|
|
56
|
-
[state],
|
|
57
|
-
)
|
|
58
|
-
react_1.useEffect(
|
|
59
|
-
function () {
|
|
60
|
-
if (callbackRef.current) {
|
|
61
|
-
callbackRef.current(state)
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
[state],
|
|
65
|
-
)
|
|
66
|
-
return [state, setState]
|
|
67
|
-
}
|
|
68
|
-
exports.useMergeState = useMergeState
|
|
69
|
-
exports.useUpdate = function (initialState, getName, getLocale, removeErr) {
|
|
70
|
-
var _a = useMergeState(initialState),
|
|
71
|
-
state = _a[0],
|
|
72
|
-
setState = _a[1]
|
|
73
|
-
var _b = react_1.useState(false),
|
|
74
|
-
rerender = _b[0],
|
|
75
|
-
setRerender = _b[1]
|
|
76
|
-
react_1.useEffect(
|
|
77
|
-
function () {
|
|
78
|
-
setRerender(!rerender)
|
|
79
|
-
},
|
|
80
|
-
[state],
|
|
81
|
-
)
|
|
82
|
-
var updatePhoneState = function (event) {
|
|
83
|
-
var re = /^[0-9\b]+$/
|
|
84
|
-
var target = event.currentTarget
|
|
85
|
-
var value = core_1.removePhoneFormat(target.value)
|
|
86
|
-
if (re.test(value) || !value) {
|
|
87
|
-
updateState(event)
|
|
88
|
-
} else {
|
|
89
|
-
var splitArr = value.split("")
|
|
90
|
-
var responseStr_1 = ""
|
|
91
|
-
splitArr.forEach(function (element) {
|
|
92
|
-
if (re.test(element)) {
|
|
93
|
-
responseStr_1 += element
|
|
94
|
-
}
|
|
95
|
-
})
|
|
96
|
-
target.value = responseStr_1
|
|
97
|
-
updateState(event)
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
var getModelName = typeof getName === "function" ? getName : _getModelName
|
|
101
|
-
var updateState = function (e, callback, lc) {
|
|
102
|
-
var ctrl = e.currentTarget
|
|
103
|
-
var mn = m
|
|
104
|
-
if (getName) {
|
|
105
|
-
if (typeof getName === "string") {
|
|
106
|
-
mn = getName
|
|
107
|
-
} else {
|
|
108
|
-
mn = getName(ctrl.form)
|
|
109
|
-
}
|
|
110
|
-
} else {
|
|
111
|
-
mn = _getModelName(ctrl.form)
|
|
112
|
-
}
|
|
113
|
-
var l = state_1.localeOf(lc, getLocale)
|
|
114
|
-
state_1.handleEvent(e, removeErr)
|
|
115
|
-
var objSet = state_1.buildState(e, state, ctrl, mn, l)
|
|
116
|
-
if (objSet) {
|
|
117
|
-
if (callback) {
|
|
118
|
-
setState(__assign({}, objSet), callback)
|
|
119
|
-
} else {
|
|
120
|
-
setState(objSet)
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
var updateFlatState = function (e, callback, lc) {
|
|
125
|
-
var objSet = state_1.buildFlatState(e, state, lc)
|
|
126
|
-
if (objSet) {
|
|
127
|
-
if (callback) {
|
|
128
|
-
setState(objSet, callback)
|
|
129
|
-
} else {
|
|
130
|
-
setState(objSet)
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return {
|
|
135
|
-
getModelName: getModelName,
|
|
136
|
-
updateState: updateState,
|
|
137
|
-
updatePhoneState: updatePhoneState,
|
|
138
|
-
updateFlatState: updateFlatState,
|
|
139
|
-
getLocale: getLocale,
|
|
140
|
-
setState: setState,
|
|
141
|
-
state: state,
|
|
142
|
-
}
|
|
143
|
-
}
|