{"version":3,"sources":["webpack:///./src/js/utils/trigger-events.js","webpack:///./src/modules/ajax-form-sender/index.ts","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/object-assign.js"],"names":["triggerCustomEvent","el","eventName","data","event","window","CustomEvent","detail","err","document","createEvent","initCustomEvent","dispatchEvent","value","then","direct","Promise","resolve","clearInputs","inputs","Array","from","forEach","input","type","checked","Event","bubbles","cancelable","initEvent","triggerEvent","defaultOptions","onBeforeSend","onSuccess","response","onError","onComplete","shouldClearInputs","inputSelector","method","form","_options","f","options","querySelectorAll","send","url","action","Error","includes","obj","val","name","JSON","stringify","classList","add","body","finalizer","result","e","bind","recover","messageElement","textContent","fetch","credentials","res","json","headers","error","remove","message","thrown","args","i","arguments","length","apply","reject","$","assign","target","stat","forced","Object","DESCRIPTORS","fails","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","toObject","IndexedObject","nativeAssign","defineProperty","module","exports","b","enumerable","get","this","A","B","symbol","Symbol","alphabet","split","chr","join","source","T","argumentsLength","index","getOwnPropertySymbols","propertyIsEnumerable","key","S","keys","concat","j","call"],"mappings":"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","file":"js/modern/ajax-form-sender.3939227c.js","sourcesContent":["export function triggerEvent(el, eventName) {\n let event;\n\n if (window.event) {\n try {\n event = new Event(eventName, { bubbles: true, cancelable: false });\n } catch (err) {\n event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, true, false);\n }\n } else {\n event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, true, false);\n }\n\n el.dispatchEvent(event);\n}\n\nexport function triggerCustomEvent(el, eventName, data = {}) {\n let event;\n\n if (window.CustomEvent) {\n try {\n event = new CustomEvent(eventName, { detail: data });\n } catch (err) {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, data);\n }\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, data);\n }\n\n el.dispatchEvent(event);\n}\n","import { triggerEvent, triggerCustomEvent } from '../../js/utils/trigger-events';\n\nexport const clearInputs = (inputs: HTMLInputElement[] = []) => {\n Array.from(inputs).forEach((input) => {\n if (input.type === 'checkbox') {\n input.checked = false;\n } else {\n input.value = '';\n }\n triggerEvent(input, 'blur');\n });\n};\n\nconst defaultOptions = {\n onBeforeSend: () => {},\n onSuccess: (response: Response) => {},\n onError: (err: Error) => {},\n onComplete: () => {},\n data: {},\n shouldClearInputs: true,\n inputSelector: '[name]:not([type=\"submit\"]):not([type=\"reset\"])',\n method: 'post',\n};\n\nexport default (form: HTMLFormElement, _options = defaultOptions) => {\n const options = { ...defaultOptions, ..._options };\n const { method } = options;\n const inputs = Array.from(form.querySelectorAll(options.inputSelector)) as HTMLInputElement[];\n let data: any;\n\n const send = async (url = form.action) => {\n if (!(url && typeof url === 'string')) {\n throw new Error('Form does not have \"action\" attibute and url has not been provided');\n }\n\n if (['post', 'put', 'delete'].includes(method)) {\n let obj : any = {};\n const values = Array.from(form.querySelectorAll('.js-form-input'));\n values.forEach(val => {\n obj[val.name] = val.value;\n });\n data = JSON.stringify(obj, null, 4)\n }\n form.classList.add('js-ajax-form--loading');\n options.onBeforeSend();\n triggerCustomEvent(form, 'send');\n\n try {\n let response: Response;\n\n if (method === 'get') {\n response = await fetch(url, { method, credentials: \"same-origin\" }).then((res) => res.json());\n } else {\n response = await fetch(url, { method, credentials: \"same-origin\", body: data , headers: {'Content-Type': 'application/json'}}).then((res) => res.json());\n }\n options.onSuccess(response);\n triggerCustomEvent(form, 'success', { data: response });\n form.classList.add('js-ajax-form--success');\n Array.from(form.querySelectorAll('.app-message')).forEach((messageElement) => {\n messageElement.textContent = '';\n });\n\n return response;\n } catch (err) {\n options.onError(err);\n triggerCustomEvent(form, 'error', { error: err });\n form.classList.remove('js-ajax-form--error');\n\n throw new Error(err.message || err);\n } finally {\n options.onComplete();\n form.classList.remove('js-ajax-form--loading');\n\n if (options.shouldClearInputs) {\n clearInputs(inputs);\n }\n }\n };\n\n const onSubmit = (event: any) => {\n event.preventDefault();\n send();\n };\n\n // const destroy = () => {\n // form.removeEventListener('submit', onSubmit);\n // };\n\n /**\n * Init\n */\n\n // form.addEventListener('submit', onSubmit);\n\n return { send };\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n"],"sourceRoot":""}