{"version":3,"sources":["plugins/ajax.js"],"names":["Ajax","$","NAME","DATA_KEY","JQUERY_NO_CONFLICT","fn","Operation","After","Append","Before","Html","Prepend","Method","Delete","Get","Post","Put","Default","ajaxOperation","ajaxBlockUi","ajaxTarget","ajaxModalShow","ajaxModalHide","Selector","CLASS_NAME","element","config","_config","_element","_$element","tagName","prop","toLowerCase","closest","on","e","preventDefault","send","url","attr","type","data","id","name","each","val","push","value","tokens","find","token","key","hasOwnProperty","submit","length","currentTarget","$target","target","$form","parents","setTimeout","removeData","isCancel","hasClass","filter","$this","undefined","_validate","$input","numericData","_autoNumeric","unformat","ajaxSettings","FormData","processData","contentType","concat","serializeArray","reformat","settings","self","method","extend","ajaxMethod","ajaxUrl","beforeSend","xhr","onBeforeSend","result","getFunction","ajaxOnBeforeSend","apply","arguments","blockUI","complete","unblockUI","ajaxOnComplete","success","status","modal","onSuccess","getResponseHeader","backdrop","show","_resetValidation","ajaxOnSuccess","error","ajaxOnError","append","toUpperCase","_isMethodProxySafe","ajax","setRequestHeader","indexOf","form","validator","unobtrusive","parse","validation","validate","option","_jQueryInterface","call","document","ajaxStop","customAjax","Constructor","noConflict","jQuery"],"mappings":"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","file":"ajax.js","sourcesContent":["const Ajax = (($) => {\r\n\r\n const NAME = 'customAjax';\r\n const DATA_KEY = `bs.${NAME}`;\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n const Operation = {\r\n After: 'after',\r\n Append: 'append',\r\n Before: 'before',\r\n Html: 'html',\r\n Prepend: 'prepend'\r\n };\r\n const Method = {\r\n Delete: 'DELETE', // old browser may not support\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT' // old browser may not support\r\n };\r\n const Default = {\r\n ajaxOperation: Operation.Html,\r\n ajaxBlockUi: true,\r\n ajaxTarget: null,\r\n ajaxModalShow: false, // this will override the operation and target\r\n ajaxModalHide: false\r\n };\r\n const Selector = {\r\n CLASS_NAME: '.js-ajax'\r\n }\r\n\r\n class Ajax {\r\n constructor(element, config) {\r\n this._config = config;\r\n this._element = element;\r\n this._$element = $(element);\r\n\r\n if (this._config.ajaxModalShow) {\r\n this._config.ajaxTarget = '#modal';\r\n this._config.ajaxOperation = Operation.Html;\r\n }\r\n\r\n let tagName = this._$element.prop('tagName').toLowerCase();\r\n\r\n if (tagName === 'button' && this._$element.prop('type') === 'submit') {\r\n this._$element = this._$element.closest('form');\r\n this._element = this._$element[0];\r\n tagName = 'form';\r\n }\r\n\r\n switch (tagName) {\r\n case 'a':\r\n this._$element.on('click', (e) => {\r\n e.preventDefault();\r\n this.send({\r\n url: this._$element.attr('href'),\r\n type: Method.Get,\r\n data: []\r\n });\r\n });\r\n break;\r\n case 'button':\r\n if (this._$element.prop('type') === 'button') {\r\n this._$element.on('click', (e) => {\r\n e.preventDefault();\r\n this.send({\r\n type: Method.Get,\r\n data: []\r\n });\r\n });\r\n }\r\n break;\r\n case 'select':\r\n this._$element.on('change', (e) => {\r\n const id = this._$element.attr('id'),\r\n data = [];\r\n\r\n var name = this._$element.data('ajaxGetRename_id');\r\n if (this._$element.prop('multiple')) {\r\n $.each(this._$element.val(), function () {\r\n data.push({\r\n name: name || id,\r\n value: this\r\n });\r\n });\r\n\r\n } else {\r\n data.push({\r\n name: name || this._$element.attr('id'),\r\n value: this._$element.val()\r\n });\r\n\r\n // also pass token data back (not avail for multiple select)\r\n const tokens = this._$element.find('option:selected').data('tokens');\r\n if (tokens) {\r\n $.each(tokens, function () {\r\n const token = this;\r\n for (let key in token) {\r\n if (token.hasOwnProperty(key)) {\r\n data.push({\r\n name: key,\r\n value: token[key]\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.send({ type: Method.Get, data });\r\n });\r\n break;\r\n case 'form':\r\n var submit = this._$element.find(':submit');\r\n if (!submit.length) {\r\n submit = $(`:submit[form=\"${this._$element.attr('id')}\"]`);\r\n }\r\n\r\n submit.on('click', (e) => {\r\n const name = e.currentTarget.name,\r\n $target = $(e.target),\r\n $form = $($target.parents('form').length ? $target.parents('form')[0] : $($target.prop('form')));\r\n\r\n $form.data('unobtrusiveAjaxClick', name ? [{ name: name, value: e.currentTarget.value }] : []);\r\n $form.data('unobtrusiveAjaxClickTarget', $target);\r\n\r\n setTimeout(() => {\r\n $form.removeData('unobtrusiveAjaxClick unobtrusiveAjaxClickTarget');\r\n }, 0);\r\n });\r\n this._$element.on('submit', (e) => {\r\n const data = this._$element.data('unobtrusiveAjaxClick') || [],\r\n $target = this._$element.data('unobtrusiveAjaxClickTarget'),\r\n isCancel = $target && ($target.hasClass('cancel') || $target.attr('formnovalidate'));\r\n e.preventDefault();\r\n\r\n if (this._$element.find('input[data-val-remote-url], select[data-val-remote-url], textarea[data-val-remote-url]').filter(function () {\r\n const $this = $(this);\r\n const attr = $this.attr('data-val-remote-async');\r\n if (typeof attr !== typeof undefined && attr !== false) {\r\n return attr == 'true';\r\n }\r\n return true;\r\n }).length && !this._$element.data('remote')) {\r\n this._$element.data('remote', true);\r\n return;\r\n }\r\n\r\n if (!isCancel && !this._validate(this._element)) {\r\n return;\r\n }\r\n\r\n this._$element.find('input.js-numeric').each(function () {\r\n const $input = $(this),\r\n numericData = $input.data('bs.numeric');\r\n numericData._autoNumeric.unformat();\r\n });\r\n\r\n var ajaxSettings = {\r\n url: this._$element.attr('action'),\r\n type: this._$element.attr('method') || Method.Get\r\n };\r\n if (this._$element.attr('enctype') === \"multipart/form-data\") {\r\n ajaxSettings.data = new FormData(this._element);\r\n ajaxSettings.processData = false;\r\n ajaxSettings.contentType = false;\r\n }\r\n else {\r\n ajaxSettings.data = data.concat(this._$element.serializeArray());\r\n }\r\n\r\n this.send(ajaxSettings);\r\n\r\n this._$element.find('input.js-numeric').each(function () {\r\n const $input = $(this),\r\n numericData = $input.data('bs.numeric');\r\n numericData._autoNumeric.reformat();\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n\r\n send(settings) {\r\n const self = this;\r\n let method;\r\n\r\n $.extend(settings, {\r\n type: this._config.ajaxMethod || undefined,\r\n url: this._config.ajaxUrl || undefined,\r\n beforeSend: function (xhr) {\r\n self.onBeforeSend(xhr, method);\r\n\r\n const result = $.getFunction(self._config.ajaxOnBeforeSend, ['xhr']).apply(self._element, arguments);\r\n if (result && self._config.ajaxBlockUi) {\r\n $.blockUI();\r\n }\r\n return result;\r\n },\r\n complete() {\r\n if (self._config.ajaxBlockUi) {\r\n $.unblockUI();\r\n }\r\n\r\n $.getFunction(self._config.ajaxOnComplete, ['xhr', 'status']).apply(self._element, arguments);\r\n },\r\n success(data, status, xhr) {\r\n if (self._config.ajaxModalHide) {\r\n $('#modal').find('.modal').modal('hide');\r\n }\r\n self.onSuccess(data, xhr.getResponseHeader('Content-Type') || 'text/html');\r\n\r\n if (self._config.ajaxModalShow) {\r\n $('#modal').find('.modal').modal({ backdrop: 'static', show: true });\r\n }\r\n \r\n const $form = $(self._config.ajaxTarget).find('form');\r\n if ($form.length) {\r\n self._resetValidation($form[0]);\r\n }\r\n\r\n $.getFunction(self._config.ajaxOnSuccess, ['data', 'status', 'xhr']).apply(self._element, arguments);\r\n },\r\n error() {\r\n $.getFunction(self._config.ajaxOnError, ['xhr', 'status', 'error']).apply(self._element, arguments);\r\n }\r\n });\r\n if (settings.data instanceof FormData) {\r\n settings.data.append('X-Requested-With', 'XMLHttpRequest');\r\n }\r\n else {\r\n settings.data.push({ name: 'X-Requested-With', value: 'XMLHttpRequest' });\r\n }\r\n method = settings.type.toUpperCase();\r\n if (!this._isMethodProxySafe(method)) {\r\n settings.type = Method.Post;\r\n if (settings.data instanceof FormData) {\r\n settings.data.append('X-HTTP-Method-Override', method);\r\n }\r\n else {\r\n settings.data.push({ name: 'X-HTTP-Method-Override', value: method });\r\n }\r\n }\r\n\r\n $.ajax(settings);\r\n }\r\n onBeforeSend(xhr, method) {\r\n if (!this._isMethodProxySafe(method)) {\r\n xhr.setRequestHeader('X-HTTP-Method-Override', method);\r\n }\r\n }\r\n onSuccess(data, contentType) {\r\n if (contentType.indexOf('application/x-javascript') !== -1) {\r\n return;\r\n }\r\n\r\n $(this._config.ajaxTarget)[this._config.ajaxOperation](data);\r\n }\r\n _resetValidation(form) {\r\n $(form).removeData('unobtrusiveValidation validator');\r\n $.validator.unobtrusive.parse(form);\r\n }\r\n _validate(form) {\r\n const validation = $(form).data('unobtrusiveValidation');\r\n return !validation || !validation.validate || validation.validate();\r\n }\r\n _isMethodProxySafe(method) {\r\n return method === Method.Get || method === Method.Post;\r\n }\r\n\r\n dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n this._config = null;\r\n this._element = null;\r\n }\r\n\r\n static _jQueryInterface(option) {\r\n return this.each(function () {\r\n const $this = $(this);\r\n let data = $this.data(DATA_KEY);\r\n const config = $.extend({}, Default, $this.data());\r\n if (!data) {\r\n data = new Ajax(this, config);\r\n $this.data(DATA_KEY, data);\r\n }\r\n\r\n if (typeof option === 'string' && option === 'send' && $this.prop('tagName').toLowerCase() === 'a') {\r\n data.send({\r\n url: $this.attr('href'),\r\n type: Method.Get,\r\n data: []\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n $(() => Ajax._jQueryInterface.call($(Selector.CLASS_NAME)));\r\n $(document).ajaxStop(() => Ajax._jQueryInterface.call($(Selector.CLASS_NAME)));\r\n $(document).on('click', 'a.js-ajax', function (e) {\r\n e.preventDefault();\r\n if (!$(this).data(DATA_KEY)) {\r\n $(this).customAjax('send');\r\n }\r\n });\r\n\r\n $.fn[NAME] = Ajax._jQueryInterface;\r\n $.fn[NAME].Constructor = Ajax;\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Ajax._jQueryInterface;\r\n }\r\n\r\n return Ajax;\r\n})(jQuery);"]}