{"mappings":"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","sources":["Scripts/TypeScript/area/global/restrict-multiple-submit.ts","node_modules/@swc/helpers/src/_class_call_check.mjs","Scripts/TypeScript/_modules/restrict-multiple-submit.ts","<>","node_modules/@swc/helpers/src/_create_class.mjs","node_modules/@swc/helpers/src/_define_property.mjs","Scripts/TypeScript/_modules/utils/const.ts"],"sourcesContent":["import { RestrictMultipleSubmit } from \"../../_modules/restrict-multiple-submit\"\n\nclass RestrictMultipleSubmitInit {\n constructor() {\n RestrictMultipleSubmit.setRestrictMultipleSubmit();\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const _ = new RestrictMultipleSubmitInit();\n});\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import Const = require(\"./utils/const\");\nimport EventTypes = Const.EventTypes;\n\nexport class RestrictMultipleSubmit {\n\n //送信可否\n private static isSubmit: boolean = false;\n\n //クリックオブジェクトが多重送信防止処理対象外か否か\n private static isIgnoreObject: boolean = false;\n\n //渡されたクラス名をもとに多重送信防止イベントを設定\n static setRestrictMultipleSubmit(): void {\n\n this.setRestrictMultipleSubmitJQueryProcess();\n\n const formElements = Array.prototype.slice.call(document.getElementsByTagName(\"form\")) as Array;\n\n formElements.forEach(elm => {\n if (!elm.classList.contains(\"ignore-multiple-submit\")) {\n this.setIgnoreMultipleSubmitObject(elm);\n this.setRestrictMultipleSubmitEvent(elm);\n }\n });\n }\n\n //jQuery Validation用多重送信防止イベントの設定\n private static setRestrictMultipleSubmitJQueryProcess(): void {\n //jQuery Validationの読み込み確認\n if (typeof jQuery != \"undefined\" && typeof $.validator != \"undefined\") {\n $.validator.unobtrusive.options = {\n errorPlacement: function ($error) {\n if ($error.text().length === 0) {\n return true;\n } else {\n RestrictMultipleSubmit.isSubmit = false;\n //送信ボタンを有効化(イベントハンドラのほうが先に呼ばれるため)\n $(this).closest(\"form\").find(\"[type='submit']\").css(\"pointer-events\", \"auto\");\n return false;\n }\n }\n }\n }\n }\n\n //渡されたHTMLFormElementに対し多重送信防止イベントを設定\n private static setRestrictMultipleSubmitEvent(form: HTMLFormElement): void {\n form.addEventListener(EventTypes.SUBMIT as any,\n () => {\n if (!this.isIgnoreObject && !this.isSubmit) {\n const elements = form.elements;\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i] as HTMLElement;\n\n if (element.getAttribute(\"type\") === \"submit\") {\n //送信ボタンを無効化\n var elm = (element as HTMLButtonElement);\n elm.style.pointerEvents = \"none\";\n elm.disabled = true;\n\n // 戻し\n var self = this;\n if (elm.classList.contains(\"restrict-multiple-submit-do-once\")) {\n window.setTimeout(() => {\n self.isSubmit = false;\n },\n 5000);\n } else {\n window.setTimeout(() => {\n elm.style.pointerEvents = \"auto\";\n elm.disabled = false;\n self.isSubmit = false;\n },\n 10000);\n }\n }\n }\n this.isSubmit = true;\n }\n this.isIgnoreObject = false;\n return true;\n });\n }\n\n //多重送信防止対象外イベントの判定\n private static setIgnoreMultipleSubmitObject(form: HTMLFormElement): void {\n const elements = form.elements;\n for (let i = 0; i < elements.length; i++) {\n const formObject = elements[i];\n if (formObject.getAttribute(\"type\") === \"submit\") {\n formObject.addEventListener(EventTypes.CLICK as any,\n () => {\n if (formObject.classList.contains(\"ignore-multiple-submit\")) {\n this.isIgnoreObject = true;\n }\n });\n }\n }\n }\n}\n",null,"function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","export const enum EventTypes {\n CLICK = \"click\",\n MOUSE_MOVE = \"mousemove\",\n MOUSE_OVER = \"mouseover\",\n MOUSE_DOWN = \"mousedown\",\n MOUSE_UP = \"mouseup\",\n MOUSE_OUT = \"mouseout\",\n KEY_PRESS = \"keypress\",\n KEY_DOWN = \"keydown\",\n KEY_UP = \"keyup\",\n DOM_FOCUS_IN = \"DOMFocusIn\",\n DOM_FOCUS_OUT = \"DOMFocusOut\",\n DOM_ACTIVATE = \"DOMActivate\",\n SELECT = \"select\",\n CHANGE = \"change\",\n SUBMIT = \"submit\",\n RESET = \"reset\",\n FOCUS = \"focus\",\n BLUR = \"blur\",\n LOAD = \"load\",\n SCROLL = \"scroll\",\n RESIZE = \"resize\",\n}\n"],"names":[],"version":3,"file":"restrict-multiple-submit.js.map"}