UNPKG

web-form-helper

Version:

npm install web-form-helper # API ## onSubmit |argument|type |--|-- |callback|(obj: `Object`or `FormData`) => `FormEventFunction` |options|`ISubmitOptions`or `undefined`

188 lines (154 loc) 16.5 kB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ var Form; /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./index.js": /*!******************!*\ !*** ./index.js ***! \******************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"onSubmit\": () => (/* reexport safe */ _src_onSubmit__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ \"onInvalid\": () => (/* reexport safe */ _src_onInvalid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _src_onSubmit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/onSubmit */ \"./src/onSubmit.js\");\n/* harmony import */ var _src_onInvalid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/onInvalid */ \"./src/onInvalid.js\");\n\n\n\n//# sourceURL=webpack://Form/./index.js?"); /***/ }), /***/ "./src/onInvalid.js": /*!**************************!*\ !*** ./src/onInvalid.js ***! \**************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * \n * @param {Function} onFaild (failTarget: HTMLElement, failReason: \"valueMissing\" | \"valid\" | \"typeMismatch\" | \"tooShort\" | \"tooLong\" | \"rangeUnderflow\" | \"rangeOverflow\" | \"badInput\" | \"customError\" | \"patternMismatch\") => void\n * @param {{ isExcuteDefault?: boolean }} option \n * @returns \n */\nvar onInvalid = function onInvalid(onFaild, option) {\n return function (e) {\n if (!option || !option.isExcuteDefault) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (typeof onFaild === \"function\") {\n var validates = [\"valueMissing\", \"valid\", \"typeMismatch\", \"tooShort\", \"tooLong\", \"rangeUnderflow\", \"rangeOverflow\", \"badInput\", \"customError\", \"patternMismatch\"];\n\n for (var _i = 0, _validates = validates; _i < _validates.length; _i++) {\n var validate = _validates[_i];\n if (e.target.validity[validate]) return onFaild(e.target, validate);\n }\n\n return onFaild(e.target, \"\");\n }\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (onInvalid);\n\n//# sourceURL=webpack://Form/./src/onInvalid.js?"); /***/ }), /***/ "./src/onSubmit.js": /*!*************************!*\ !*** ./src/onSubmit.js ***! \*************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _parsing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parsing */ \"./src/parsing/index.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n\n/**\n * @param {function} callback (arg: object | Formdata) => void\n * @param {{ \n * \tisExcuteDefault?: boolean, \n * \tvalidate?: (obj: any) => string | undefined | {\n * \t\t\tname: string, \n * \t\t\tmessage?: string, \n * \t\t\tindex?: number\n * \t},\n * \tonInvalid?: (targetInvalid: HTMLElement, data: {\n * \t\tname: string, \n * \t\tmessage?: string, \n * \t\tindex?: number\n * \t}) => void\n * }} option \n * @returns \n */\n\nvar onSubmit = function onSubmit(callback, option) {\n return function (e) {\n if (!option || !option.isExcuteDefault) {\n e.preventDefault && e.preventDefault();\n }\n\n var obj = {};\n\n for (var i = 0; i < e.target.elements.length; i++) {\n var target = e.target.elements[i];\n\n if (target.name) {\n var value = _parsing__WEBPACK_IMPORTED_MODULE_0__[\"default\"][target.type] ? _parsing__WEBPACK_IMPORTED_MODULE_0__[\"default\"][target.type](target) : target.value;\n if (value === null | value === \"\") continue;\n\n if (obj[target.name]) {\n if (Array.isArray(obj[target.name])) {\n obj[target.name].push(value);\n } else {\n obj[target.name] = [obj[target.name], value];\n }\n } else {\n if (target.type === \"checkbox\") {\n obj[target.name] = [value];\n } else {\n obj[target.name] = value;\n }\n }\n }\n }\n\n var invalidateResult = undefined;\n if (option !== null && option !== void 0 && option.validate) invalidateResult = option.validate(obj);\n\n if (typeof invalidateResult === \"string\") {\n if (typeof (option === null || option === void 0 ? void 0 : option.onInvalid) === \"function\") {\n var elements = e.target.querySelectorAll(\"[name=\".concat(invalidateResult, \"]\"));\n option.onInvalid(elements[0], invalidateResult);\n }\n\n return;\n }\n\n if (_typeof(invalidateResult) === \"object\") {\n if (typeof invalidateResult.name === \"string\" && typeof (option === null || option === void 0 ? void 0 : option.onInvalid) === \"function\") {\n var _elements = e.target.querySelectorAll(\"[name=\".concat(invalidateResult.name, \"]\"));\n\n var element = invalidateResult.index ? _elements[invalidateResult.index] : _elements[0];\n option.onInvalid(element, invalidateResult);\n }\n\n return;\n }\n\n if (e.target.encType === \"multipart/form-data\" || e.target.enctype === \"multipart/form-data\") {\n var formData = new FormData(e.target);\n\n if (typeof callback === \"function\") {\n callback(formData);\n }\n\n return;\n }\n\n var keys = Object.keys(obj);\n var submitObject = {};\n\n for (var _i = 0; _i < keys.length; _i++) {\n var key = keys[_i];\n var splitKey = key.split('.');\n if (splitKey.length === 1) submitObject[key] = obj[key];else if (splitKey.length > 1) assocPath(splitKey, obj[key], submitObject);\n }\n\n if (typeof callback === \"function\") {\n callback(submitObject);\n }\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (onSubmit);\n\nvar assocPath = function assocPath(path, val, obj) {\n if (path.length === 0) return val;\n var index = path[0];\n\n if (path.length > 1) {\n var nextObj = obj && obj[index] ? obj[index] : {};\n path.shift();\n val = assocPath(path, val, nextObj);\n }\n\n var numIndex = Number(index);\n\n if (!isNaN(numIndex)) {\n var arr = [].concat(obj);\n arr[numIndex] = val;\n return arr;\n } else {\n obj[index] = val;\n }\n\n return obj;\n};\n\n//# sourceURL=webpack://Form/./src/onSubmit.js?"); /***/ }), /***/ "./src/parsing/checkbox.js": /*!*********************************!*\ !*** ./src/parsing/checkbox.js ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ checkbox)\n/* harmony export */ });\nfunction checkbox(target) {\n if (target.checked) return target.value;\n return null;\n}\n\n//# sourceURL=webpack://Form/./src/parsing/checkbox.js?"); /***/ }), /***/ "./src/parsing/date.js": /*!*****************************!*\ !*** ./src/parsing/date.js ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ date)\n/* harmony export */ });\nfunction date(_ref) {\n var value = _ref.value;\n return value ? new Date(value) : null;\n}\n\n//# sourceURL=webpack://Form/./src/parsing/date.js?"); /***/ }), /***/ "./src/parsing/datetime.js": /*!*********************************!*\ !*** ./src/parsing/datetime.js ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ datetime)\n/* harmony export */ });\nfunction datetime(_ref) {\n var value = _ref.value;\n return value ? new Date(value) : null;\n}\n\n//# sourceURL=webpack://Form/./src/parsing/datetime.js?"); /***/ }), /***/ "./src/parsing/file.js": /*!*****************************!*\ !*** ./src/parsing/file.js ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ file)\n/* harmony export */ });\nfunction file(target) {\n if (target.files.length === 1) return target.files[0];else return target.files;\n}\n\n//# sourceURL=webpack://Form/./src/parsing/file.js?"); /***/ }), /***/ "./src/parsing/index.js": /*!******************************!*\ !*** ./src/parsing/index.js ***! \******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number */ \"./src/parsing/number.js\");\n/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./date */ \"./src/parsing/date.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datetime */ \"./src/parsing/datetime.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./range */ \"./src/parsing/range.js\");\n/* harmony import */ var _file__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./file */ \"./src/parsing/file.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./checkbox */ \"./src/parsing/checkbox.js\");\n/* harmony import */ var _radio__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./radio */ \"./src/parsing/radio.js\");\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n number: _number__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n date: _date__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n datetime: _datetime__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n \"datetime-local\": _datetime__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n range: _range__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n file: _file__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n checkbox: _checkbox__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n radio: _radio__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n});\n\n//# sourceURL=webpack://Form/./src/parsing/index.js?"); /***/ }), /***/ "./src/parsing/number.js": /*!*******************************!*\ !*** ./src/parsing/number.js ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ numberParsing)\n/* harmony export */ });\nfunction numberParsing(_ref) {\n var value = _ref.value;\n return Number(value);\n}\n\n//# sourceURL=webpack://Form/./src/parsing/number.js?"); /***/ }), /***/ "./src/parsing/radio.js": /*!******************************!*\ !*** ./src/parsing/radio.js ***! \******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ radio)\n/* harmony export */ });\nfunction radio(target) {\n if (target.checked) return target.value;\n return null;\n}\n\n//# sourceURL=webpack://Form/./src/parsing/radio.js?"); /***/ }), /***/ "./src/parsing/range.js": /*!******************************!*\ !*** ./src/parsing/range.js ***! \******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ range)\n/* harmony export */ });\nfunction range(_ref) {\n var value = _ref.value;\n return Number(value);\n}\n\n//# sourceURL=webpack://Form/./src/parsing/range.js?"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. /******/ var __webpack_exports__ = __webpack_require__("./index.js"); /******/ Form = __webpack_exports__; /******/ /******/ })() ;