{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/jquery.checkify.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","window","document","undefined","pluginName","_rules","split","_number","_email","_class2","el","config","_this","this","_classCallCheck","_methods","required","$el","is","val","attr","normalize","length","message","inactiveForRequired","appendMessage","minlen","len","normalized","hasClass","replace","maxlen","number","test","email","toLowerCase","regex","regexp","RegExp","console","log","func","funcName","eval","between","min","max","extend","fn","defaults","$container","container","init","_createClass","addClass","wireEvents","_this2","on","e","parseAllElements","find","preventDefault","onError","currentTarget","onValid","not","$this","removeClass","realTime","check","trigger","code","charCode","which","_this3","each","charCodeZero","charCodeAt","temp","w","_css","inactive","rect","getBoundingClientRect","class","position","text","css","top","height","_defineProperty","hGap","vGap","insertAfter","$next","next","data","remove","regexRule","match","funcRule","betweenRule","rules","filter","Boolean","push","methods","x","indexOf","requiredPos","splice","unshift","method","options","maxChecked","minChecked","notEqual","different","jQuery"],"mappings":"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","file":"jquery.checkify.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import '../scss/jquery.checkify.scss';\r\n\r\n/*!\r\n * Checkify - A light-weight, mobile-ready and customizable validation plugin for jQuery\r\n *\r\n * Copyright 2018, Mehdi Dehghani\r\n *\r\n * @author Mehdi Dehghani (http://www.github.com/dehghani-mehdi)\r\n * @license Licensed under MIT (https://github.com/dehghani-mehdi/checkify/blob/master/LICENSE)\r\n *\r\n * Version: 0.0.8\r\n */\r\n;\r\n(function ($, window, document, undefined) {\r\n const pluginName = 'checkify',\r\n _rules = 'minlen|maxlen|required|number|email|regex|func|between'.split('|'),\r\n _number = /^[\\-\\+]?(\\d+|\\d+\\.?\\d+)$/,\r\n // taken from https://stackoverflow.com/q/46155/3367974\r\n _email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n p = {};\r\n\r\n p[pluginName] = class {\r\n constructor(el, config) {\r\n this.el = el;\r\n this.$el = $(el);\r\n\r\n this.config = $.extend(true, {}, $.fn.defaults, config);\r\n\r\n this.$container = this.config.container ?\r\n typeof this.config.container === 'string' ?\r\n $(this.config.container) :\r\n this.config.container :\r\n $(el);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.$container.addClass('checkify');\r\n\r\n this.wireEvents();\r\n }\r\n\r\n /**\r\n * wire up events\r\n */\r\n wireEvents() {\r\n if (this.$container.is('form')) {\r\n this.$container.on('submit', (e) => {\r\n this.parseAllElements();\r\n\r\n if (this.$container.find('.checkify__has-error').length > 0) {\r\n e.preventDefault();\r\n\r\n if (typeof this.config.onError === 'function') this.config.onError.call(e.currentTarget, e);\r\n\r\n } else {\r\n if (typeof this.config.onValid === 'function') this.config.onValid.call(e.currentTarget, e);\r\n }\r\n });\r\n }\r\n\r\n this.$container.find('[data-checkify]').not('[type=checkbox]').on('change', (e) => {\r\n let $this = $(e.currentTarget);\r\n\r\n $this.removeClass('checkify__has-error');\r\n\r\n if (this.config.realTime) this.check($this);\r\n });\r\n\r\n if (this.config.trigger) {\r\n this.$container.find(this.config.trigger).on('click', (e) => {\r\n this.parseAllElements();\r\n\r\n if (this.$container.find('.checkify__has-error').length > 0) {\r\n e.preventDefault();\r\n if (typeof this.config.onError === 'function') this.config.onError.call(e.currentTarget, e);\r\n\r\n } else {\r\n if (typeof this.config.onValid === 'function') this.config.onValid.call(e.currentTarget, e);\r\n }\r\n });\r\n }\r\n\r\n this.$container.find('[data-checkify*=number]').on('keypress', (e) => {\r\n let $this = $(e.currentTarget);\r\n\r\n let code = e.charCode || e.which;\t\t\t\t\t\t\r\n\t\t\t\t\r\n if ((47 < code && code < 58) || (1632 < code && code < 1642) || (1775 < code && code < 1786) || code === 0 || code === 8) {}\r\n\t\t\t\telse e.preventDefault(); \r\n });\r\n };\r\n\r\n /**\r\n * parse all elements and then parse its data checkify\r\n */\r\n parseAllElements() {\r\n this.$container.find('.checkify__has-error').removeClass('checkify__has-error');\r\n\r\n this.$container.find('[data-checkify]').each((i, el) => this.check($(el)));\r\n }\r\n\r\n /**\r\n * replaced multiple spaces with one and non-english numbers to english numbers\r\n * @param s\r\n */\r\n normalize(s) {\r\n let charCodeZero = '۰'.charCodeAt(0),\r\n temp = s.replace(/[۰-۹]/g, (w) => w.charCodeAt(0) - charCodeZero);\r\n\r\n charCodeZero = '٠'.charCodeAt(0);\r\n temp = temp.replace(/[٠-٩]/g, (w) => w.charCodeAt(0) - charCodeZero);\r\n\r\n return temp.replace(/ +/g, ' ');\r\n };\r\n\r\n /**\r\n * insert error message next to given element\r\n * @param $el\r\n * @param message\r\n */\r\n appendMessage($el, message) {\r\n if (this.config.message.inactive) return;\r\n\r\n let rect = $el[0].getBoundingClientRect();\r\n\r\n $('', {\r\n class: 'checkify__message checkify__message-' + this.config.message.position,\r\n text: message,\r\n css: {\r\n top: rect.height,\r\n ['margin-' + this.config.message.position]: this.config.message.hGap || 0,\r\n 'margin-top': this.config.message.vGap || 5\r\n }\r\n }).insertAfter($el);\r\n };\r\n\r\n /**\r\n * find and parse data-checkify of given element\r\n * @param $el\r\n */\r\n check($el) {\r\n let $next = $el.next(),\r\n data = $el.data('checkify');\r\n\r\n if ($next.hasClass('checkify__message')) $next.remove();\r\n\r\n if (typeof data !== 'undefined') {\r\n // find regex rule\r\n let regexRule = data.match(/regex=(.+`)/);\r\n // because match returns array and we need string\r\n regexRule = regexRule ? regexRule[0] : null;\r\n // remove regex from data-checkify\r\n if (regexRule) {\r\n data = data.replace(regexRule, '');\r\n regexRule = regexRule.replace(/`/g, '');\r\n }\r\n\r\n // find func rule\r\n let funcRule = data.match(/func=[^,]*/);\r\n // because match returns array and we need string\r\n funcRule = funcRule ? funcRule[0] : null;\r\n // remove func from data-checkify\r\n if (funcRule) data = data.replace(funcRule, '');\r\n\r\n // find between rule\r\n let betweenRule = data.match(/between=[^,]*/);\r\n // because match returns array and we need string\r\n betweenRule = betweenRule ? betweenRule[0] : null;\r\n // remove between from data-checkify\r\n if (betweenRule) data = data.replace(betweenRule, '');\r\n\r\n // remove empty entries\r\n let rules = data.split(',').filter(Boolean);\r\n\r\n // add regex to rules\r\n if (regexRule) rules.push(regexRule);\t\t\t\t\r\n\r\n // add func to rules\r\n if (funcRule) rules.push(funcRule);\r\n\r\n // add range to rules\r\n if (betweenRule) rules.push(betweenRule);\r\n\r\n let methods = rules.filter(x => _rules.indexOf(x.split('=')[0]) > -1),\r\n requiredPos = methods.indexOf('required');\r\n\r\n if (methods.length > 0) {\r\n // put required at first (if any)\r\n if (requiredPos > -1) {\r\n methods.splice(requiredPos, 1);\r\n methods.unshift('required');\r\n }\r\n\r\n for (let i = 0; i < methods.length; i++) {\r\n let split = methods[i].split('='),\r\n method = split[0];\r\n\r\n if (!eval(this._methods[method])($el, split[1])) {\r\n $el.addClass('checkify__has-error');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n _methods = {\r\n 'required': ($el) => {\r\n if ($el.is('select')) {\r\n return +$el.val() > 0;\r\n } else if ($el.attr('type') === 'checkbox') {\r\n return $el.is(':checked');\r\n } else {\r\n let normalized = this.normalize($el.val());\r\n\r\n if (normalized.length < 1) {\r\n if (!this.config.message.inactiveForRequired) this.appendMessage($el, this.config.message.required);\r\n\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n 'minlen': ($el, len) => {\r\n let normalized = this.normalize($el.val());\r\n\r\n if (normalized.length > 0 && normalized.length < len) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.minlen.replace('{count}', len));\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n 'maxlen': ($el, len) => {\r\n let normalized = this.normalize($el.val());\r\n\r\n if (normalized.length > 0 && normalized.length > len) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.maxlen.replace('{count}', len));\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n 'number': ($el) => {\r\n let normalized = this.normalize($el.val());\r\n\r\n if (normalized.length > 0 && !_number.test(normalized)) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.number);\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n 'email': ($el) => {\r\n let normalized = this.normalize($el.val());\r\n\r\n if (normalized.length > 0 && !_email.test(normalized.toLowerCase())) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.email);\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n 'regex': ($el, r) => {\r\n let normalized = this.normalize($el.val()),\r\n regexp = new RegExp(r);\r\n\t\t\t\tconsole.log(regexp);\t\t\t\t\t\r\n if (normalized.length > 0 && !regexp.test(normalized.toLowerCase())) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.regex);\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n 'func': ($el, funcName) => {\r\n let r = eval(window[funcName]($el));\r\n\r\n if (r) return true;\r\n\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.func);\r\n\r\n return false;\r\n },\r\n 'between': ($el, between) => {\r\n let normalized = this.normalize($el.val()),\r\n number = +normalized,\r\n split = between.split('-'),\r\n min = +split[0],\r\n max = +split[1];\r\n\r\n if (normalized.length > 0 && (number < min || number > max)) {\r\n if (!$el.hasClass('checkify__has-error')) this.appendMessage($el, this.config.message.between);\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n };\r\n }\r\n\r\n $.fn[pluginName] = function (options) {\r\n return this.each(function () {\r\n if (!$.data(this, 'plugin_' + pluginName)) {\r\n $.data(this, 'plugin_' + pluginName, new p[pluginName](this, options));\r\n }\r\n });\r\n };\r\n\r\n $.fn.defaults = {\r\n message: {\r\n inactive: false,\r\n\t\t\t// if true. error message won't be shown for required cases\r\n inactiveForRequired: true,\r\n\t\t\t// horizontal gap for error message box\r\n hGap: null,\r\n\t\t\t// vertical gap for error message box\r\n vGap: null,\r\n\t\t\t// can be right or left\r\n position: 'left',\r\n required: 'This field is required.',\r\n email: 'Please enter a valid email address.',\r\n regex: 'Invalid data.',\r\n func: 'Invalid data',\r\n between: 'Invalid data',\r\n number: 'Please enter a valid number.',\r\n maxlen: 'Please enter no more than {count} characters.',\r\n minlen: 'Please enter at least {count} characters.',\r\n maxChecked: 'Maximum {count} options allowed.',\r\n minChecked: 'Please select at least {count} options.',\r\n notEqual: 'Please enter the same value again.',\r\n different: 'Fields cannot be the same as each other'\r\n },\r\n realTime: false,\r\n container: null,\r\n trigger: null,\r\n onValid: null,\r\n onError: null\r\n };\r\n})(jQuery, window, document);"],"sourceRoot":""}