react-hook-core 0.4.6 → 0.4.8
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/com.js +33 -11
- package/lib/core.js +81 -188
- package/lib/diff.js +28 -30
- package/lib/edit.js +54 -112
- package/lib/error.js +53 -0
- package/lib/formutil.js +58 -72
- package/lib/index.js +110 -95
- package/lib/input.js +31 -32
- package/lib/merge.js +26 -16
- package/lib/reflect.js +140 -147
- package/lib/route.js +45 -53
- package/lib/search.js +231 -471
- package/lib/state.js +159 -168
- package/lib/update.js +69 -64
- package/lib/useEdit.js +461 -348
- package/lib/useMessage.js +20 -20
- package/lib/useSearch.js +437 -246
- package/lib/util.js +74 -85
- package/package.json +1 -1
- package/src/com.ts +44 -30
- package/src/core.ts +125 -413
- package/src/diff.ts +54 -24
- package/src/edit.ts +44 -146
- package/src/error.ts +55 -0
- package/src/formutil.ts +51 -62
- package/src/index.ts +129 -114
- package/src/input.ts +44 -38
- package/src/merge.ts +16 -13
- package/src/reflect.ts +100 -101
- package/src/route.ts +40 -40
- package/src/search.ts +123 -308
- package/src/state.ts +135 -124
- package/src/update.ts +41 -41
- package/src/useEdit.ts +489 -319
- package/src/useMessage.ts +21 -21
- package/src/useSearch.ts +493 -277
- package/src/util.ts +67 -66
- package/lib/useView.js +0 -126
- package/src/useView.ts +0 -158
package/lib/util.js
CHANGED
|
@@ -1,122 +1,111 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
-
var state_1 = require("./state")
|
|
4
|
-
var r1 = / |,|\$|€|£|¥|'|٬|،| /g
|
|
5
|
-
var r2 = / |\.|\$|€|£|¥|'|٬|،| /g
|
|
1
|
+
"use strict"
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
+
var state_1 = require("./state")
|
|
4
|
+
var r1 = / |,|\$|€|£|¥|'|٬|،| /g
|
|
5
|
+
var r2 = / |\.|\$|€|£|¥|'|٬|،| /g
|
|
6
6
|
function valueOf(ctrl, locale, eventType) {
|
|
7
|
-
if (ctrl.type ===
|
|
8
|
-
var ctrlOnValue = ctrl.getAttribute(
|
|
9
|
-
var ctrlOffValue = ctrl.getAttribute(
|
|
7
|
+
if (ctrl.type === "checkbox") {
|
|
8
|
+
var ctrlOnValue = ctrl.getAttribute("data-on-value")
|
|
9
|
+
var ctrlOffValue = ctrl.getAttribute("data-off-value")
|
|
10
10
|
if (ctrlOnValue && ctrlOffValue) {
|
|
11
|
-
var onValue = ctrlOnValue ? ctrlOnValue : true
|
|
12
|
-
var offValue = ctrlOffValue ? ctrlOffValue : false
|
|
13
|
-
return ctrl.checked === true ? { mustChange: true, value: onValue } : { mustChange: true, value: offValue }
|
|
11
|
+
var onValue = ctrlOnValue ? ctrlOnValue : true
|
|
12
|
+
var offValue = ctrlOffValue ? ctrlOffValue : false
|
|
13
|
+
return ctrl.checked === true ? { mustChange: true, value: onValue } : { mustChange: true, value: offValue }
|
|
14
|
+
} else {
|
|
15
|
+
return ctrl.checked === true ? { mustChange: true, value: true } : { mustChange: true, value: false }
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (datatype === 'number' || datatype === 'int') {
|
|
22
|
-
var v = void 0;
|
|
23
|
-
if (locale && locale.decimalSeparator !== '.') {
|
|
24
|
-
v = ctrl.value.replace(r2, '');
|
|
17
|
+
} else {
|
|
18
|
+
var datatype = ctrl.getAttribute("data-type")
|
|
19
|
+
if (datatype === "number" || datatype === "int") {
|
|
20
|
+
var v = void 0
|
|
21
|
+
if (locale && locale.decimalSeparator !== ".") {
|
|
22
|
+
v = ctrl.value.replace(r2, "")
|
|
25
23
|
if (v.indexOf(locale.decimalSeparator) >= 0) {
|
|
26
|
-
v = v.replace(locale.decimalSeparator,
|
|
24
|
+
v = v.replace(locale.decimalSeparator, ".")
|
|
27
25
|
}
|
|
26
|
+
} else {
|
|
27
|
+
v = ctrl.value.replace(r1, "")
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
var res = getStringCurrency(ctrl.value, datatype, locale, nm, eventType === 'blur');
|
|
38
|
-
return res;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return { mustChange: true, value: ctrl.value };
|
|
29
|
+
return isNaN(v) ? { mustChange: false } : { mustChange: true, value: parseFloat(v) }
|
|
30
|
+
} else if (datatype === "currency" || datatype === "string-currency") {
|
|
31
|
+
var ml = ctrl.getAttribute("maxlength")
|
|
32
|
+
var nm = ml != null && !isNaN(ml) ? parseInt(ml, 10) : undefined
|
|
33
|
+
var res = getStringCurrency(ctrl.value, datatype, locale, nm, eventType === "blur")
|
|
34
|
+
return res
|
|
35
|
+
} else {
|
|
36
|
+
return { mustChange: true, value: ctrl.value }
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
39
|
}
|
|
45
|
-
exports.valueOf = valueOf
|
|
40
|
+
exports.valueOf = valueOf
|
|
46
41
|
function getStringCurrency(value, datatype, locale, maxLength, isOnBlur) {
|
|
47
|
-
if (locale && locale.decimalSeparator !==
|
|
48
|
-
value = value.replace(r2,
|
|
42
|
+
if (locale && locale.decimalSeparator !== ".") {
|
|
43
|
+
value = value.replace(r2, "")
|
|
49
44
|
if (value.indexOf(locale.decimalSeparator) >= 0) {
|
|
50
|
-
value = value.replace(locale.decimalSeparator,
|
|
45
|
+
value = value.replace(locale.decimalSeparator, ".")
|
|
51
46
|
}
|
|
47
|
+
} else {
|
|
48
|
+
value = value.replace(r1, "")
|
|
52
49
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
if (value === '') {
|
|
57
|
-
return { mustChange: true, value: '' };
|
|
50
|
+
if (value === "") {
|
|
51
|
+
return { mustChange: true, value: "" }
|
|
58
52
|
}
|
|
59
|
-
value = extractNumber(value,
|
|
53
|
+
value = extractNumber(value, ".")
|
|
60
54
|
if (value.length === 0) {
|
|
61
|
-
return { mustChange: false }
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return { mustChange: true, value: value.substring(1) };
|
|
55
|
+
return { mustChange: false }
|
|
56
|
+
} else if (value.length > 0 && value.charAt(0) === "0") {
|
|
57
|
+
return { mustChange: true, value: value.substring(1) }
|
|
65
58
|
}
|
|
66
59
|
if (!locale) {
|
|
67
|
-
locale = state_1.enLocale
|
|
60
|
+
locale = state_1.enLocale
|
|
68
61
|
}
|
|
69
|
-
var decimalDigits = locale ? locale.decimalDigits : 2
|
|
70
|
-
var groupDigits = 3
|
|
71
|
-
var decimalSeparator = locale.decimalSeparator
|
|
72
|
-
var groupSeparator = locale.groupSeparator
|
|
62
|
+
var decimalDigits = locale ? locale.decimalDigits : 2
|
|
63
|
+
var groupDigits = 3
|
|
64
|
+
var decimalSeparator = locale.decimalSeparator
|
|
65
|
+
var groupSeparator = locale.groupSeparator
|
|
73
66
|
if (isOnBlur) {
|
|
74
|
-
var number = Number(value.replace(/^0+/,
|
|
67
|
+
var number = Number(value.replace(/^0+/, ""))
|
|
75
68
|
if (number === 0) {
|
|
76
|
-
return { mustChange: true, value:
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
value = number.toFixed(decimalDigits);
|
|
69
|
+
return { mustChange: true, value: "" }
|
|
70
|
+
} else {
|
|
71
|
+
value = number.toFixed(decimalDigits)
|
|
80
72
|
}
|
|
81
73
|
}
|
|
82
|
-
var dotPosition = value.indexOf(
|
|
83
|
-
var beforeDot = dotPosition >= 0 ? value.substr(0, dotPosition) : value
|
|
84
|
-
if (datatype ===
|
|
85
|
-
beforeDot = beforeDot.replace(new RegExp(
|
|
74
|
+
var dotPosition = value.indexOf(".")
|
|
75
|
+
var beforeDot = dotPosition >= 0 ? value.substr(0, dotPosition) : value
|
|
76
|
+
if (datatype === "string-currency" || isOnBlur) {
|
|
77
|
+
beforeDot = beforeDot.replace(new RegExp("\\B(?=(\\d{" + groupDigits + "})+(?!\\d))", "g"), groupSeparator)
|
|
86
78
|
}
|
|
87
|
-
var afterDot
|
|
79
|
+
var afterDot
|
|
88
80
|
if (dotPosition > 0) {
|
|
89
|
-
afterDot = value.substr(dotPosition + 1)
|
|
81
|
+
afterDot = value.substr(dotPosition + 1)
|
|
90
82
|
if (afterDot.length > decimalDigits) {
|
|
91
|
-
afterDot = afterDot.substr(0, decimalDigits)
|
|
83
|
+
afterDot = afterDot.substr(0, decimalDigits)
|
|
92
84
|
}
|
|
93
85
|
}
|
|
94
86
|
if (maxLength && beforeDot.length > maxLength - (decimalDigits + 1)) {
|
|
95
|
-
return { mustChange: false }
|
|
87
|
+
return { mustChange: false }
|
|
96
88
|
}
|
|
97
|
-
value = dotPosition >= 0 ? beforeDot + decimalSeparator + afterDot : beforeDot
|
|
98
|
-
return maxLength && value.length > maxLength ? { mustChange: false } : { mustChange: true, value: value }
|
|
89
|
+
value = dotPosition >= 0 ? beforeDot + decimalSeparator + afterDot : beforeDot
|
|
90
|
+
return maxLength && value.length > maxLength ? { mustChange: false } : { mustChange: true, value: value }
|
|
99
91
|
}
|
|
100
92
|
function extractNumber(str, decimalSeparator) {
|
|
101
|
-
var arrs = []
|
|
102
|
-
var d = false
|
|
93
|
+
var arrs = []
|
|
94
|
+
var d = false
|
|
103
95
|
for (var i = 0; i < str.length; i++) {
|
|
104
|
-
var ch = str.charAt(i)
|
|
105
|
-
if (ch >=
|
|
106
|
-
arrs.push(ch)
|
|
107
|
-
}
|
|
108
|
-
else if (ch === decimalSeparator) {
|
|
96
|
+
var ch = str.charAt(i)
|
|
97
|
+
if (ch >= "0" && ch <= "9") {
|
|
98
|
+
arrs.push(ch)
|
|
99
|
+
} else if (ch === decimalSeparator) {
|
|
109
100
|
if (d) {
|
|
110
|
-
return arrs.join(
|
|
101
|
+
return arrs.join("")
|
|
102
|
+
} else {
|
|
103
|
+
d = true
|
|
104
|
+
arrs.push(ch)
|
|
111
105
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
arrs.push(ch);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
return arrs.join('');
|
|
106
|
+
} else {
|
|
107
|
+
return arrs.join("")
|
|
119
108
|
}
|
|
120
109
|
}
|
|
121
|
-
return arrs.join(
|
|
110
|
+
return arrs.join("")
|
|
122
111
|
}
|
package/package.json
CHANGED
package/src/com.ts
CHANGED
|
@@ -1,42 +1,56 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { Locale, pageSizes } from
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { Locale, pageSizes } from "./core"
|
|
3
3
|
|
|
4
4
|
export interface PageSizeProps {
|
|
5
|
-
id?: string
|
|
6
|
-
name?: string
|
|
7
|
-
size?: number
|
|
8
|
-
sizes?: number[]
|
|
9
|
-
onChange?: React.ChangeEventHandler<HTMLSelectElement
|
|
5
|
+
id?: string
|
|
6
|
+
name?: string
|
|
7
|
+
size?: number
|
|
8
|
+
sizes?: number[]
|
|
9
|
+
onChange?: React.ChangeEventHandler<HTMLSelectElement>
|
|
10
10
|
}
|
|
11
11
|
export function PageSizeSelect(p: PageSizeProps) {
|
|
12
|
-
const g = p.sizes
|
|
13
|
-
const s =
|
|
14
|
-
const opts = s.map(pgSize => React.createElement(
|
|
15
|
-
return React.createElement(
|
|
12
|
+
const g = p.sizes
|
|
13
|
+
const s = !g || g.length === 0 ? pageSizes : g
|
|
14
|
+
const opts = s.map((pgSize) => React.createElement("option", { key: pgSize, value: pgSize }, pgSize))
|
|
15
|
+
return React.createElement("select", { id: p.id, name: p.name, defaultValue: p.size, onChange: p.onChange }, opts)
|
|
16
16
|
}
|
|
17
17
|
export interface Props {
|
|
18
|
-
id?: string
|
|
19
|
-
name?: string
|
|
20
|
-
size?: number
|
|
21
|
-
sizes?: number[]
|
|
22
|
-
className?: string
|
|
23
|
-
maxLength?: number
|
|
24
|
-
value?: string
|
|
25
|
-
placeholder?: string
|
|
26
|
-
pageSizeChanged?: (event: any) => void
|
|
27
|
-
search?: React.MouseEventHandler<HTMLElement
|
|
28
|
-
toggle?: React.MouseEventHandler<HTMLElement
|
|
29
|
-
clear?: React.MouseEventHandler<HTMLButtonElement
|
|
30
|
-
onChange?: (e: any, callback?: (() => void) | undefined, lc?: Locale | undefined) => void
|
|
18
|
+
id?: string
|
|
19
|
+
name?: string
|
|
20
|
+
size?: number
|
|
21
|
+
sizes?: number[]
|
|
22
|
+
className?: string
|
|
23
|
+
maxLength?: number
|
|
24
|
+
value?: string
|
|
25
|
+
placeholder?: string
|
|
26
|
+
pageSizeChanged?: (event: any) => void
|
|
27
|
+
search?: React.MouseEventHandler<HTMLElement>
|
|
28
|
+
toggle?: React.MouseEventHandler<HTMLElement>
|
|
29
|
+
clear?: React.MouseEventHandler<HTMLButtonElement>
|
|
30
|
+
onChange?: (e: any, callback?: (() => void) | undefined, lc?: Locale | undefined) => void
|
|
31
31
|
}
|
|
32
32
|
export function Search(p: Props) {
|
|
33
|
-
return
|
|
34
|
-
React.
|
|
33
|
+
return React.createElement(
|
|
34
|
+
React.Fragment,
|
|
35
|
+
null,
|
|
36
|
+
React.createElement(
|
|
37
|
+
"label",
|
|
38
|
+
{ className: p.className },
|
|
35
39
|
p.pageSizeChanged && React.createElement(PageSizeSelect, { size: p.size, sizes: p.sizes, onChange: p.pageSizeChanged, name: p.name, id: p.id }),
|
|
36
|
-
React.createElement("input", {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
React.createElement("input", {
|
|
41
|
+
type: "text",
|
|
42
|
+
id: "q",
|
|
43
|
+
name: "q",
|
|
44
|
+
value: p.value || "",
|
|
45
|
+
onChange: p.onChange,
|
|
46
|
+
maxLength: p.maxLength,
|
|
47
|
+
placeholder: p.placeholder,
|
|
48
|
+
}),
|
|
49
|
+
p.clear && React.createElement("button", { type: "button", hidden: !p.value, className: "btn-remove-text", onClick: p.clear }),
|
|
50
|
+
p.toggle && React.createElement("button", { type: "button", className: "btn-filter", onClick: p.toggle }),
|
|
51
|
+
p.search && React.createElement("button", { type: "submit", className: "btn-search", onClick: p.search }),
|
|
52
|
+
),
|
|
53
|
+
)
|
|
40
54
|
/*
|
|
41
55
|
return (
|
|
42
56
|
<>
|