{"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            $('<span />', {\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":""}