react-hook-core 0.4.19 → 0.4.21

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/route.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict"
2
2
  Object.defineProperty(exports, "__esModule", { value: true })
3
- var qs = require("query-string")
3
+ var query_string_1 = require("query-string")
4
4
  var reflect_1 = require("./reflect")
5
5
  function goBack(navigate, confirm, resource, o1, o2, keys, version) {
6
6
  if (!reflect_1.hasDiff(o1, o2, keys, version)) {
@@ -23,7 +23,7 @@ function buildParameters(url, model) {
23
23
  urlSearch = url.substring(i + 1)
24
24
  }
25
25
  try {
26
- var parsed = convertToObject(qs.parse(urlSearch), model)
26
+ var parsed = convertToObject(query_string_1.default.parse(urlSearch), model)
27
27
  return parsed
28
28
  } catch (error) {
29
29
  console.log(error)
package/lib/state.js CHANGED
@@ -16,6 +16,92 @@ var __assign =
16
16
  Object.defineProperty(exports, "__esModule", { value: true })
17
17
  var reflect_1 = require("./reflect")
18
18
  var util_1 = require("./util")
19
+ function getDecimalSeparator(ele) {
20
+ var separator = ele.getAttribute("data-decimal-separator")
21
+ if (!separator) {
22
+ var form = ele.form
23
+ if (form) {
24
+ separator = form.getAttribute("data-decimal-separator")
25
+ }
26
+ }
27
+ return separator === "," ? "," : "."
28
+ }
29
+ exports.getDecimalSeparator = getDecimalSeparator
30
+ var r1 = / |,|\$|€|£|¥|'|٬|،| /g
31
+ var r2 = / |\.|\$|€|£|¥|'|٬|،| /g
32
+ function updateState(e, o, setObj) {
33
+ var ctrl = e.target
34
+ var dataField = ctrl.getAttribute("data-field")
35
+ var field = dataField ? dataField : ctrl.name
36
+ if (ctrl.tagName === "SELECT") {
37
+ if (ctrl.tagName === "SELECT") {
38
+ if (ctrl.value === "" || !ctrl.value) {
39
+ ctrl.removeAttribute("data-value")
40
+ } else {
41
+ ctrl.setAttribute("data-value", "data-value")
42
+ }
43
+ }
44
+ reflect_1.setValue(o, field, ctrl.value)
45
+ } else {
46
+ var stype = ctrl.getAttribute("type")
47
+ var type = stype ? stype.toLowerCase() : "text"
48
+ var model = o
49
+ if (type === "text") {
50
+ var datatype = ctrl.getAttribute("data-type")
51
+ if (datatype === "number" || datatype === "integer") {
52
+ var decimalSeparator = getDecimalSeparator(ctrl)
53
+ var v0 = ctrl.value
54
+ var v = decimalSeparator === "," ? v0.replace(r2, "") : v0.replace(r1, "")
55
+ var val = isNaN(v) ? undefined : parseFloat(v)
56
+ reflect_1.setValue(o, field, val)
57
+ } else {
58
+ reflect_1.setValue(o, field, ctrl.value)
59
+ }
60
+ } else if (type === "checkbox") {
61
+ var value = model[field]
62
+ if (ctrl.id && ctrl.name !== ctrl.id) {
63
+ if (!value || !Array.isArray(value)) {
64
+ value = []
65
+ }
66
+ value.includes(ctrl.value)
67
+ ? (value = value.filter(function (v) {
68
+ return v !== ctrl.value
69
+ }))
70
+ : value.push(ctrl.value)
71
+ model[field] = value
72
+ } else {
73
+ var v = valueOfCheckbox(ctrl)
74
+ model[field] = v
75
+ }
76
+ } else if (type === "radio") {
77
+ if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
78
+ model[field] = ctrl.value
79
+ } else {
80
+ reflect_1.setValue(model, field, ctrl.value)
81
+ }
82
+ } else if (type === "date" || type === "datetime-local") {
83
+ try {
84
+ var selectedDate = new Date(ctrl.value)
85
+ reflect_1.setValue(model, field, ctrl.value && ctrl.value !== "" ? selectedDate.toISOString() : null)
86
+ } catch (error) {
87
+ console.error("Error occurred while formatting date:", error)
88
+ }
89
+ } else if (type === "time") {
90
+ var objSet = {}
91
+ try {
92
+ var selectedDate = new Date(ctrl.value)
93
+ reflect_1.setValue(model, field, selectedDate.getTime())
94
+ } catch (error) {
95
+ console.error("Error occurred while formatting time:", error)
96
+ }
97
+ return objSet
98
+ } else {
99
+ reflect_1.setValue(o, field, ctrl.value)
100
+ }
101
+ }
102
+ setObj(__assign({}, o))
103
+ }
104
+ exports.updateState = updateState
19
105
  exports.enLocale = {
20
106
  id: "en-US",
21
107
  countryCode: "US",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-hook-core",
3
- "version": "0.4.19",
3
+ "version": "0.4.21",
4
4
  "description": "react",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
@@ -11,7 +11,7 @@
11
11
  "devDependencies": {
12
12
  "@types/react": "^17.0.41",
13
13
  "@types/react-router-dom": "^5.3.3",
14
- "query-string": "^6.13.1",
14
+ "query-string": "^9.2.2",
15
15
  "react": "^17.0.2",
16
16
  "react-router-dom": "^6.2.2",
17
17
  "tslint": "^5.10.0",
package/src/route.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as qs from "query-string"
1
+ import queryString from "query-string"
2
2
  import { NavigateFunction } from "react-router-dom"
3
3
  import { StringMap } from "./core"
4
4
  import { hasDiff } from "./reflect"
@@ -30,7 +30,7 @@ export function buildParameters<T>(url: string, model?: T): T {
30
30
  urlSearch = url.substring(i + 1)
31
31
  }
32
32
  try {
33
- const parsed: any = convertToObject<T>(qs.parse(urlSearch), model)
33
+ const parsed: any = convertToObject<T>(queryString.parse(urlSearch), model)
34
34
  return parsed
35
35
  } catch (error) {
36
36
  console.log(error)
package/src/state.ts CHANGED
@@ -1,7 +1,90 @@
1
+ import { ChangeEvent } from "react"
1
2
  import { Locale } from "./core"
2
3
  import { setValue } from "./reflect"
3
4
  import { valueOf } from "./util"
4
5
 
6
+ export function getDecimalSeparator(ele: HTMLInputElement): string {
7
+ let separator = ele.getAttribute("data-decimal-separator")
8
+ if (!separator) {
9
+ const form = ele.form
10
+ if (form) {
11
+ separator = form.getAttribute("data-decimal-separator")
12
+ }
13
+ }
14
+ return separator === "," ? "," : "."
15
+ }
16
+
17
+ const r1 = / |,|\$|€|£|¥|'|٬|،| /g
18
+ const r2 = / |\.|\$|€|£|¥|'|٬|،| /g
19
+ export function updateState<T>(e: ChangeEvent<HTMLInputElement, HTMLInputElement>, o: T, setObj: (v: React.SetStateAction<T>) => void) {
20
+ const ctrl = e.target
21
+ const dataField = ctrl.getAttribute("data-field")
22
+ const field = dataField ? dataField : ctrl.name
23
+ if (ctrl.tagName === "SELECT") {
24
+ if (ctrl.tagName === "SELECT") {
25
+ if (ctrl.value === "" || !ctrl.value) {
26
+ ctrl.removeAttribute("data-value")
27
+ } else {
28
+ ctrl.setAttribute("data-value", "data-value")
29
+ }
30
+ }
31
+ setValue(o, field, ctrl.value)
32
+ } else {
33
+ let stype = ctrl.getAttribute("type")
34
+ const type: string = stype ? stype.toLowerCase() : "text"
35
+ let model: any = o
36
+ if (type === "text") {
37
+ const datatype = ctrl.getAttribute("data-type")
38
+ if (datatype === "number" || datatype === "integer") {
39
+ const decimalSeparator = getDecimalSeparator(ctrl)
40
+ const v0: string = ctrl.value
41
+ const v = decimalSeparator === "," ? v0.replace(r2, "") : v0.replace(r1, "")
42
+ const val = isNaN(v as any) ? undefined : parseFloat(v)
43
+ setValue(o, field, val)
44
+ } else {
45
+ setValue(o, field, ctrl.value)
46
+ }
47
+ } else if (type === "checkbox") {
48
+ let value = model[field]
49
+ if (ctrl.id && ctrl.name !== ctrl.id) {
50
+ if (!value || !Array.isArray(value)) {
51
+ value = []
52
+ }
53
+ value.includes(ctrl.value) ? (value = value.filter((v: string) => v !== ctrl.value)) : value.push(ctrl.value)
54
+ model[field] = value
55
+ } else {
56
+ const v = valueOfCheckbox(ctrl)
57
+ model[field] = v
58
+ }
59
+ } else if (type === "radio") {
60
+ if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
61
+ model[field] = ctrl.value
62
+ } else {
63
+ setValue(model, field, ctrl.value)
64
+ }
65
+ } else if (type === "date" || type === "datetime-local") {
66
+ try {
67
+ const selectedDate = new Date(ctrl.value)
68
+ setValue(model, field, ctrl.value && ctrl.value !== "" ? selectedDate.toISOString() : null)
69
+ } catch (error) {
70
+ console.error("Error occurred while formatting date:", error)
71
+ }
72
+ } else if (type === "time") {
73
+ const objSet: any = {}
74
+ try {
75
+ const selectedDate = new Date(ctrl.value)
76
+ setValue(model, field, selectedDate.getTime())
77
+ } catch (error) {
78
+ console.error("Error occurred while formatting time:", error)
79
+ }
80
+ return objSet
81
+ } else {
82
+ setValue(o, field, ctrl.value)
83
+ }
84
+ }
85
+ setObj({ ...o })
86
+ }
87
+
5
88
  export const enLocale = {
6
89
  id: "en-US",
7
90
  countryCode: "US",