react-hook-core
Version:
215 lines (214 loc) • 6.94 kB
JavaScript
"use strict"
var __assign =
(this && this.__assign) ||
function () {
__assign =
Object.assign ||
function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i]
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]
}
return t
}
return __assign.apply(this, arguments)
}
Object.defineProperty(exports, "__esModule", { value: true })
var reflect_1 = require("./reflect")
var util_1 = require("./util")
exports.enLocale = {
id: "en-US",
countryCode: "US",
dateFormat: "M/d/yyyy",
firstDayOfWeek: 1,
decimalSeparator: ".",
groupSeparator: ",",
decimalDigits: 2,
currencyCode: "USD",
currencySymbol: "$",
currencyPattern: 0,
}
function localeOf(lc, glc) {
var l = lc
if (!l) {
if (glc) {
if (typeof glc === "function") {
l = glc()
} else {
l = glc
}
}
if (!l) {
l = exports.enLocale
}
}
return l
}
exports.localeOf = localeOf
function handleEvent(e, removeErr) {
var ctrl = e.currentTarget
var type = ctrl.getAttribute("type")
var isPreventDefault = type && (["checkbox", "radio"].indexOf(type.toLowerCase()) >= 0 ? false : true)
if (isPreventDefault) {
e.preventDefault()
}
if (removeErr && ctrl.nodeName === "SELECT" && ctrl.value && ctrl.classList.contains("invalid")) {
removeErr(ctrl)
}
}
exports.handleEvent = handleEvent
function handleProps(e, props, ctrl, modelName, tloc, prepareData) {
var _a, _b, _c, _d
if (props.setGlobalState) {
var res = util_1.valueOf(ctrl, tloc, e.type)
if (res.mustChange) {
var dataField = ctrl.getAttribute("data-field")
var field = dataField ? dataField : ctrl.name
var propsDataForm = props[modelName]
var form = ctrl.form
if (form) {
var formName = form.name
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
var data =
props.shouldBeCustomized && prepareData ? prepareData(((_a = {}), (_a[ctrl.name] = res.value), _a)) : ((_b = {}), (_b[ctrl.name] = res.value), _b)
props.setGlobalState(((_c = {}), (_c[formName] = __assign(__assign({}, propsDataForm), data)), _c))
} else {
reflect_1.setValue(propsDataForm, field, ctrl.value)
props.setGlobalState(((_d = {}), (_d[formName] = __assign({}, propsDataForm)), _d))
}
}
}
}
}
exports.handleProps = handleProps
function buildState(e, state, ctrl, modelName, tloc) {
var form = ctrl.form
if (form) {
if (modelName && modelName !== "") {
var type = ctrl.getAttribute("type")
var ex = state[modelName]
var dataField = ctrl.getAttribute("data-field")
var field = dataField ? dataField : ctrl.name
var model = Object.assign({}, ex)
if (type && type.toLowerCase() === "checkbox") {
var value = model[field]
if (ctrl.id && ctrl.name !== ctrl.id) {
if (!value || !Array.isArray(value)) {
value = []
}
value.includes(ctrl.value)
? (value = value.filter(function (v) {
return v !== ctrl.value
}))
: value.push(ctrl.value)
model[field] = value
} else {
var v = valueOfCheckbox(ctrl)
model[field] = v
}
var objSet = {}
objSet[modelName] = model
return objSet
} else if (type && type.toLowerCase() === "radio") {
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
model[field] = ctrl.value
} else {
reflect_1.setValue(model, field, ctrl.value)
}
var objSet = {}
objSet[modelName] = model
return objSet
} else if (type && (type.toLowerCase() === "date" || type.toLowerCase() === "datetime-local")) {
var objSet = {}
try {
var selectedDate = new Date(ctrl.value)
reflect_1.setValue(model, field, ctrl.value && ctrl.value !== "" ? selectedDate.toISOString() : null)
objSet[modelName] = model
return objSet
} catch (error) {
console.error("Error occurred while formatting date:", error)
}
return objSet
} else if (type && type.toLowerCase() === "time") {
var objSet = {}
try {
var selectedDate = new Date(ctrl.value)
reflect_1.setValue(model, field, selectedDate.getTime())
objSet[modelName] = model
return objSet
} catch (error) {
console.error("Error occurred while formatting time:", error)
}
return objSet
} else {
if (ctrl.tagName === "SELECT") {
if (ctrl.value === "" || !ctrl.value) {
ctrl.removeAttribute("data-value")
} else {
ctrl.setAttribute("data-value", "data-value")
}
}
var data = util_1.valueOf(ctrl, tloc, e.type)
if (data.mustChange) {
if (field.indexOf(".") < 0 && field.indexOf("[") < 0) {
model[field] = data.value
} else {
reflect_1.setValue(model, field, data.value)
}
var objSet = {}
objSet[modelName] = model
return objSet
}
}
} else {
return buildFlatState(e, state, tloc)
}
} else {
buildFlatState(e, state, tloc)
}
}
exports.buildState = buildState
function valueOfCheckbox(ctrl) {
var ctrlOnValue = ctrl.getAttribute("data-on-value")
var ctrlOffValue = ctrl.getAttribute("data-off-value")
if (ctrlOnValue && ctrlOffValue) {
var onValue = ctrlOnValue ? ctrlOnValue : true
var offValue = ctrlOffValue ? ctrlOffValue : false
return ctrl.checked === true ? onValue : offValue
} else {
return ctrl.checked === true
}
}
exports.valueOfCheckbox = valueOfCheckbox
function buildFlatState(e, state, l) {
var _a
var ctrl = e.currentTarget
var stateName = ctrl.name
var objSet = {}
var type = ctrl.getAttribute("type")
if (type && type.toLowerCase() === "checkbox") {
if (ctrl.id && stateName === ctrl.id) {
var v = valueOfCheckbox(ctrl)
objSet[stateName] = v
return objSet
} else {
var value = state[stateName]
value.includes(ctrl.value)
? (value = value.filter(function (v) {
return v !== ctrl.value
}))
: value.push(ctrl.value)
var objSet2 = ((_a = {}), (_a[ctrl.name] = value), _a)
return objSet2
}
} else {
var data = util_1.valueOf(ctrl, l, e.type)
if (data.mustChange) {
objSet[stateName] = data.value
return objSet
} else {
return undefined
}
}
}
exports.buildFlatState = buildFlatState