{"version":3,"file":"js/application-b4f5e1da327c037080e8.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/js_files/banana-translations.js","webpack:///./app/javascript/js_files/charts.js","webpack:///./app/javascript/js_files/datetimepickers.js","webpack:///./app/javascript/js_files/events.js","webpack:///./app/javascript/js_files/for-eternity.js","webpack:///./app/javascript/js_files/formValidation/FormValidation.js","webpack:///./app/javascript/js_files/formValidation/locales/en_US.js","webpack:///./app/javascript/js_files/formValidation/plugins/Bootstrap.js","webpack:///./app/javascript/js_files/leaflet.js","webpack:///./app/javascript/js_files/macro_events.js","webpack:///./app/javascript/js_files/modals.js","webpack:///./app/javascript/js_files/sb_admin_pro.js","webpack:///./app/javascript/js_files/tagsinput.js","webpack:///./app/javascript/js_files/toast.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/stylesheets/application.scss?90b0","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@terraformer/arcgis/dist/t-arcgis.esm.js","webpack:///./node_modules/banana-i18n/dist/banana-i18n.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./node_modules/datatables.net-bs4/js/dataTables.bootstrap4.js","webpack:///./node_modules/datatables.net/js/jquery.dataTables.js","webpack:///./node_modules/esri-leaflet-geocoder/dist/esri-leaflet-geocoder-debug.js","webpack:///./node_modules/esri-leaflet/src/EsriLeaflet.js","webpack:///./node_modules/esri-leaflet/src/Layers/BasemapLayer.js","webpack:///./node_modules/esri-leaflet/src/Layers/DynamicMapLayer.js","webpack:///./node_modules/esri-leaflet/src/Layers/FeatureLayer/FeatureGrid.js","webpack:///./node_modules/esri-leaflet/src/Layers/FeatureLayer/FeatureLayer.js","webpack:///./node_modules/esri-leaflet/src/Layers/FeatureLayer/FeatureManager.js","webpack:///./node_modules/esri-leaflet/src/Layers/ImageMapLayer.js","webpack:///./node_modules/esri-leaflet/src/Layers/RasterLayer.js","webpack:///./node_modules/esri-leaflet/src/Layers/TiledMapLayer.js","webpack:///./node_modules/esri-leaflet/src/Options.js","webpack:///./node_modules/esri-leaflet/src/Request.js","webpack:///./node_modules/esri-leaflet/src/Services/FeatureLayerService.js","webpack:///./node_modules/esri-leaflet/src/Services/ImageService.js","webpack:///./node_modules/esri-leaflet/src/Services/MapService.js","webpack:///./node_modules/esri-leaflet/src/Services/Service.js","webpack:///./node_modules/esri-leaflet/src/Support.js","webpack:///./node_modules/esri-leaflet/src/Tasks/Find.js","webpack:///./node_modules/esri-leaflet/src/Tasks/Identify.js","webpack:///./node_modules/esri-leaflet/src/Tasks/IdentifyFeatures.js","webpack:///./node_modules/esri-leaflet/src/Tasks/IdentifyImage.js","webpack:///./node_modules/esri-leaflet/src/Tasks/Query.js","webpack:///./node_modules/esri-leaflet/src/Tasks/Task.js","webpack:///./node_modules/esri-leaflet/src/Util.js","webpack:///./node_modules/feather-icons/dist/feather.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/leaflet-defaulticon-compatibility/dist/leaflet-defaulticon-compatibility.js","webpack:///./node_modules/leaflet-defaulticon-compatibility/dist/leaflet-defaulticon-compatibility.webpack.css","webpack:///./node_modules/leaflet/dist/leaflet-src.js","webpack:///./node_modules/leaflet/dist/leaflet.css","webpack:///./node_modules/moment-timezone/index.js","webpack:///./node_modules/moment-timezone/moment-timezone.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/tiny-binary-search/index.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/application.js\");\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./app/javascript/channels sync recursive _channel\\\\.js$\";","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","import Banana from 'banana-i18n';\n\nconst banana = new Banana();\nconst messages = {\n 'en': {\n 'toast-info-title': 'Info',\n 'toast-warning-title': 'Warning'\n },\n 'it' : {\n 'toast-info-title': 'Info',\n 'toast-warning-title': 'Attenzione'\n }\n};\nbanana.load(messages); // Note that the locale parameter is missing here\nbanana.setLocale('en');\nwindow.banana = banana;\n","import Chart from 'chart.js';\n\n// https://stackoverflow.com/questions/21646738/convert-hex-to-rgba\nfunction hexToRgbA(hex, alpha){\n var c;\n if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\n c= hex.substring(1).split('');\n if(c.length== 3){\n c= [c[0], c[0], c[1], c[1], c[2], c[2]];\n }\n c= '0x'+c.join('');\n return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+','+alpha+')';\n }\n throw new Error('Bad Hex');\n}\n\n// hexToRgbA('#fbafff')\n\n\ndocument.addEventListener(\"turbolinks:load\", () => {\n\n // Conteggio biglietti disponibili, prenotati e venduti\n // /events/1/tickets\n var $tickets = $('#tickets_cake');\n if ($tickets.length) {\n let data = $tickets.data('dt');\n let bgColors = $.map(data.colors, function(n,i){\n return (hexToRgbA(n, 0.3));\n });\n\n var myChart = new Chart($tickets, {\n type: 'doughnut',\n data: {\n labels: data.labels,\n datasets: [{\n data: data.values,\n backgroundColor: bgColors,\n borderColor: data.colors\n }]\n }\n });\n }\n\n var ticketsSoldOptions = {\n maintainAspectRatio: false,\n responsive: true,\n legend: {\n display: false,\n },\n layout: {\n padding: {\n left: 4,\n right: 4,\n top: 10,\n bottom: 10\n }\n },\n scales: {\n xAxes: [{\n gridLines: {\n display: false,\n drawBorder: false,\n },\n ticks: {\n display: false\n }\n }],\n yAxes: [{\n gridLines: {\n display: false,\n drawBorder: false,\n },\n ticks: {\n display: false\n }\n }],\n }\n }\n\n\n const ticketsSelectors = ['#tickets_sold_last24h', '#tickets_sold_last7d', '#tickets_sold_last30d']\n ticketsSelectors.forEach(function(element){ \n var $t = $(element);\n if ($t.length) {\n let data = $t.data('dt');\n\n let n=data.length, i=0, a=Array(n);\n while(i {\n initMyDatetimePickers();\n})\n\nexport {initMyDatetimePickers};\n","window.moment = require('moment');\nrequire('moment-timezone')\nrequire(\"tempusdominus-bootstrap-4\")\n\ndocument.addEventListener(\"turbolinks:load\", () => {\n \n // when uncheck 'show it' cb, uncheck the 'mandatory' cb\n $(document).on('click', '.participant_field', function() {\n if (!$(this).prop('checked')) {\n targez = $(this).data('targez')\n $(\"input[name='\"+targez+\"']\").prop('checked', false)\n }\n })\n // when check 'mandatory' cb, check the 'show it' cb\n $(document).on('click', '.participant_mandatory_field', function() {\n if ($(this).prop('checked')) {\n targez = $(this).data('targez')\n $(\"input[name='\"+targez+\"']\").prop('checked', true)\n }\n })\n\n\n var basicStartDateTimePickerOptions = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#event_start_dt_dtp').data('timezone'),\n minDate: $('#event_start_dt_dtp').data('mindate'),\n maxDate: $('#event_start_dt_dtp').data('maxdate'),\n date: $('#event_start_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n var basicEndDateTimePickerOptions = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#event_end_dt_dtp').data('timezone'),\n minDate: $('#event_end_dt_dtp').data('mindate'),\n maxDate: $('#event_end_dt_dtp').data('maxdate'),\n date: $('#event_end_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n\n $('#event_start_dt_dtp').datetimepicker(basicStartDateTimePickerOptions)\n $('#event_end_dt_dtp').datetimepicker(basicEndDateTimePickerOptions)\n\n\n function clean_times() {\n // correct end_time (not date!) if it is before start_time\n var startTime = $('#event_start_dt_dtp').datetimepicker('date')\n var endTime = $('#event_end_dt_dtp').datetimepicker('date')\n // both dates are now equal, so check times\n if (endTime {\n const t1 = $('#event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#event_end_dt_dtp').datetimepicker('date')\n if (t2 {\n const t1 = $('#event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#event_end_dt_dtp').datetimepicker('date')\n if (t2 { // iwan\n $('table.table-rupes.table-clickable-rows td:not(.not-clickable)').on('click', function() {\n var url = $(this).parent().data('url');\n if (url!='') {\n if ($(this).parent().data('remote')==true) {\n $.get({url: url, dataType: 'script'});\n } else {\n Turbolinks.visit(url);\n }\n }\n });\n\n\n\n if($('[id^=DataTables_Table]').length == 0) {\n $('.datatable').DataTable({\n \"pageLength\": 100,\n \"autoWidth\": false\n });\n\n $('.datatable-not-sortable').DataTable({\n \"ordering\": false,\n \"autoWidth\": false,\n \"pageLength\": 100\n })\n }\n\n});\n","/**\n * FormValidation (https://formvalidation.io), v1.7.0 (71bbaaa)\n * The best validation library for JavaScript\n * (c) 2013 - 2020 Nguyen Huu Phuoc \n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.FormValidation = {}));\n}(this, (function (exports) { 'use strict';\n\n function t(t) {\n var e = t.length;\n var l = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]];\n var n = 0;\n var r = 0;\n\n while (e--) {\n r += l[n][parseInt(t.charAt(e), 10)];\n n = 1 - n;\n }\n\n return r % 10 === 0 && r > 0;\n }\n\n function t$1(t) {\n var e = t.length;\n var n = 5;\n\n for (var r = 0; r < e; r++) {\n n = ((n || 10) * 2 % 11 + parseInt(t.charAt(r), 10)) % 10;\n }\n\n return n === 1;\n }\n\n function t$2(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var n = t.length;\n var o = e.length;\n var l = Math.floor(o / 2);\n\n for (var r = 0; r < n; r++) {\n l = ((l || o) * 2 % (o + 1) + e.indexOf(t.charAt(r))) % o;\n }\n\n return l === 1;\n }\n\n function t$3(t) {\n var e = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var n = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n var r = t.reverse();\n var c = 0;\n\n for (var _t = 0; _t < r.length; _t++) {\n c = e[c][n[_t % 8][r[_t]]];\n }\n\n return c === 0;\n }\n\n var index = {\n luhn: t,\n mod11And10: t$1,\n mod37And36: t$2,\n verhoeff: t$3\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n 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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n 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\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n\n function s() {\n return {\n fns: {},\n clear: function clear() {\n this.fns = {};\n },\n emit: function emit(s) {\n for (var _len = arguments.length, f = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n f[_key - 1] = arguments[_key];\n }\n\n (this.fns[s] || []).map(function (s) {\n return s.apply(s, f);\n });\n },\n off: function off(s, f) {\n if (this.fns[s]) {\n var n = this.fns[s].indexOf(f);\n\n if (n >= 0) {\n this.fns[s].splice(n, 1);\n }\n }\n },\n on: function on(s, f) {\n (this.fns[s] = this.fns[s] || []).push(f);\n }\n };\n }\n\n function t$4() {\n return {\n filters: {},\n add: function add(t, e) {\n (this.filters[t] = this.filters[t] || []).push(e);\n },\n clear: function clear() {\n this.filters = {};\n },\n execute: function execute(t, e, i) {\n if (!this.filters[t] || !this.filters[t].length) {\n return e;\n }\n\n var s = e;\n var r = this.filters[t];\n var l = r.length;\n\n for (var _t = 0; _t < l; _t++) {\n s = r[_t].apply(s, i);\n }\n\n return s;\n },\n remove: function remove(t, e) {\n if (this.filters[t]) {\n this.filters[t] = this.filters[t].filter(function (t) {\n return t !== e;\n });\n }\n }\n };\n }\n\n function e(e, t, r, c) {\n var n = (r.getAttribute(\"type\") || \"\").toLowerCase();\n var a = r.tagName.toLowerCase();\n\n switch (a) {\n case \"textarea\":\n return r.value;\n\n case \"select\":\n var _e = r;\n var _t = _e.selectedIndex;\n return _t >= 0 ? _e.options.item(_t).value : \"\";\n\n case \"input\":\n if (\"radio\" === n || \"checkbox\" === n) {\n var _e2 = c.filter(function (e) {\n return e.checked;\n }).length;\n return _e2 === 0 ? \"\" : _e2 + \"\";\n } else {\n return r.value;\n }\n\n default:\n return \"\";\n }\n }\n\n function r(r, e) {\n var t = Array.isArray(e) ? e : [e];\n var a = r;\n t.forEach(function (r) {\n a = a.replace(\"%s\", r);\n });\n return a;\n }\n\n function s$1() {\n var s = function s(e) {\n return parseFloat(\"\".concat(e).replace(\",\", \".\"));\n };\n\n return {\n validate: function validate(a) {\n var t = a.value;\n\n if (t === \"\") {\n return {\n valid: true\n };\n }\n\n var n = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, a.options);\n var l = s(n.min);\n var o = s(n.max);\n return n.inclusive ? {\n message: r(a.l10n ? n.message || a.l10n.between[\"default\"] : n.message, [\"\".concat(l), \"\".concat(o)]),\n valid: parseFloat(t) >= l && parseFloat(t) <= o\n } : {\n message: r(a.l10n ? n.message || a.l10n.between.notInclusive : n.message, [\"\".concat(l), \"\".concat(o)]),\n valid: parseFloat(t) > l && parseFloat(t) < o\n };\n }\n };\n }\n\n function t$5() {\n return {\n validate: function validate(t) {\n return {\n valid: true\n };\n }\n };\n }\n\n function t$6(t, n) {\n if (\"function\" === typeof t) {\n return t.apply(this, n);\n } else if (\"string\" === typeof t) {\n var e = t;\n\n if (\"()\" === e.substring(e.length - 2)) {\n e = e.substring(0, e.length - 2);\n }\n\n var i = e.split(\".\");\n var o = i.pop();\n var f = window;\n\n var _iterator = _createForOfIteratorHelper(i),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _t = _step.value;\n f = f[_t];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return typeof f[o] === \"undefined\" ? null : f[o].apply(this, n);\n }\n }\n\n function o() {\n return {\n validate: function validate(o) {\n var l = t$6(o.options.callback, [o]);\n return \"boolean\" === typeof l ? {\n valid: l\n } : l;\n }\n };\n }\n\n function t$7() {\n return {\n validate: function validate(t) {\n var o = \"select\" === t.element.tagName.toLowerCase() ? t.element.querySelectorAll(\"option:checked\").length : t.elements.filter(function (e) {\n return e.checked;\n }).length;\n var s = t.options.min ? \"\".concat(t.options.min) : \"\";\n var n = t.options.max ? \"\".concat(t.options.max) : \"\";\n var a = t.l10n ? t.options.message || t.l10n.choice[\"default\"] : t.options.message;\n var l = !(s && o < parseInt(s, 10) || n && o > parseInt(n, 10));\n\n switch (true) {\n case !!s && !!n:\n a = r(t.l10n ? t.l10n.choice.between : t.options.message, [s, n]);\n break;\n\n case !!s:\n a = r(t.l10n ? t.l10n.choice.more : t.options.message, s);\n break;\n\n case !!n:\n a = r(t.l10n ? t.l10n.choice.less : t.options.message, n);\n break;\n }\n\n return {\n message: a,\n valid: l\n };\n }\n };\n }\n\n var t$8 = {\n AMERICAN_EXPRESS: {\n length: [15],\n prefix: [\"34\", \"37\"]\n },\n DANKORT: {\n length: [16],\n prefix: [\"5019\"]\n },\n DINERS_CLUB: {\n length: [14],\n prefix: [\"300\", \"301\", \"302\", \"303\", \"304\", \"305\", \"36\"]\n },\n DINERS_CLUB_US: {\n length: [16],\n prefix: [\"54\", \"55\"]\n },\n DISCOVER: {\n length: [16],\n prefix: [\"6011\", \"622126\", \"622127\", \"622128\", \"622129\", \"62213\", \"62214\", \"62215\", \"62216\", \"62217\", \"62218\", \"62219\", \"6222\", \"6223\", \"6224\", \"6225\", \"6226\", \"6227\", \"6228\", \"62290\", \"62291\", \"622920\", \"622921\", \"622922\", \"622923\", \"622924\", \"622925\", \"644\", \"645\", \"646\", \"647\", \"648\", \"649\", \"65\"]\n },\n ELO: {\n length: [16],\n prefix: [\"4011\", \"4312\", \"4389\", \"4514\", \"4573\", \"4576\", \"5041\", \"5066\", \"5067\", \"509\", \"6277\", \"6362\", \"6363\", \"650\", \"6516\", \"6550\"]\n },\n FORBRUGSFORENINGEN: {\n length: [16],\n prefix: [\"600722\"]\n },\n JCB: {\n length: [16],\n prefix: [\"3528\", \"3529\", \"353\", \"354\", \"355\", \"356\", \"357\", \"358\"]\n },\n LASER: {\n length: [16, 17, 18, 19],\n prefix: [\"6304\", \"6706\", \"6771\", \"6709\"]\n },\n MAESTRO: {\n length: [12, 13, 14, 15, 16, 17, 18, 19],\n prefix: [\"5018\", \"5020\", \"5038\", \"5868\", \"6304\", \"6759\", \"6761\", \"6762\", \"6763\", \"6764\", \"6765\", \"6766\"]\n },\n MASTERCARD: {\n length: [16],\n prefix: [\"51\", \"52\", \"53\", \"54\", \"55\"]\n },\n SOLO: {\n length: [16, 18, 19],\n prefix: [\"6334\", \"6767\"]\n },\n UNIONPAY: {\n length: [16, 17, 18, 19],\n prefix: [\"622126\", \"622127\", \"622128\", \"622129\", \"62213\", \"62214\", \"62215\", \"62216\", \"62217\", \"62218\", \"62219\", \"6222\", \"6223\", \"6224\", \"6225\", \"6226\", \"6227\", \"6228\", \"62290\", \"62291\", \"622920\", \"622921\", \"622922\", \"622923\", \"622924\", \"622925\"]\n },\n VISA: {\n length: [16],\n prefix: [\"4\"]\n },\n VISA_ELECTRON: {\n length: [16],\n prefix: [\"4026\", \"417500\", \"4405\", \"4508\", \"4844\", \"4913\", \"4917\"]\n }\n };\n function l() {\n return {\n validate: function validate(l) {\n if (l.value === \"\") {\n return {\n meta: {\n type: null\n },\n valid: true\n };\n }\n\n if (/[^0-9-\\s]+/.test(l.value)) {\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n\n var r = l.value.replace(/\\D/g, \"\");\n\n if (!t(r)) {\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n\n for (var _i = 0, _Object$keys = Object.keys(t$8); _i < _Object$keys.length; _i++) {\n var _e = _Object$keys[_i];\n\n for (var n in t$8[_e].prefix) {\n if (l.value.substr(0, t$8[_e].prefix[n].length) === t$8[_e].prefix[n] && t$8[_e].length.indexOf(r.length) !== -1) {\n return {\n meta: {\n type: _e\n },\n valid: true\n };\n }\n }\n }\n\n return {\n meta: {\n type: null\n },\n valid: false\n };\n }\n };\n }\n\n function t$9(t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n)) {\n return false;\n }\n\n if (t < 1e3 || t > 9999 || e <= 0 || e > 12) {\n return false;\n }\n\n var s = [31, t % 400 === 0 || t % 100 !== 0 && t % 4 === 0 ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n if (n <= 0 || n > s[e - 1]) {\n return false;\n }\n\n if (r === true) {\n var _r = new Date();\n\n var _s = _r.getFullYear();\n\n var a = _r.getMonth();\n\n var u = _r.getDate();\n\n return t < _s || t === _s && e - 1 < a || t === _s && e - 1 === a && n < u;\n }\n\n return true;\n }\n\n function n() {\n var n = function n(t, e, _n) {\n var s = e.indexOf(\"YYYY\");\n var a = e.indexOf(\"MM\");\n var l = e.indexOf(\"DD\");\n\n if (s === -1 || a === -1 || l === -1) {\n return null;\n }\n\n var o = t.split(\" \");\n var r = o[0].split(_n);\n\n if (r.length < 3) {\n return null;\n }\n\n var c = new Date(parseInt(r[s], 10), parseInt(r[a], 10) - 1, parseInt(r[l], 10));\n\n if (o.length > 1) {\n var _t = o[1].split(\":\");\n\n c.setHours(_t.length > 0 ? parseInt(_t[0], 10) : 0);\n c.setMinutes(_t.length > 1 ? parseInt(_t[1], 10) : 0);\n c.setSeconds(_t.length > 2 ? parseInt(_t[2], 10) : 0);\n }\n\n return c;\n };\n\n var s = function s(t, e) {\n var n = e.replace(/Y/g, \"y\").replace(/M/g, \"m\").replace(/D/g, \"d\").replace(/:m/g, \":M\").replace(/:mm/g, \":MM\").replace(/:S/, \":s\").replace(/:SS/, \":ss\");\n var s = t.getDate();\n var a = s < 10 ? \"0\".concat(s) : s;\n var l = t.getMonth() + 1;\n var o = l < 10 ? \"0\".concat(l) : l;\n var r = \"\".concat(t.getFullYear()).substr(2);\n var c = t.getFullYear();\n var i = t.getHours() % 12 || 12;\n var g = i < 10 ? \"0\".concat(i) : i;\n var u = t.getHours();\n var m = u < 10 ? \"0\".concat(u) : u;\n var d = t.getMinutes();\n var f = d < 10 ? \"0\".concat(d) : d;\n var p = t.getSeconds();\n var h = p < 10 ? \"0\".concat(p) : p;\n var $ = {\n H: \"\".concat(u),\n HH: \"\".concat(m),\n M: \"\".concat(d),\n MM: \"\".concat(f),\n d: \"\".concat(s),\n dd: \"\".concat(a),\n h: \"\".concat(i),\n hh: \"\".concat(g),\n m: \"\".concat(l),\n mm: \"\".concat(o),\n s: \"\".concat(p),\n ss: \"\".concat(h),\n yy: \"\".concat(r),\n yyyy: \"\".concat(c)\n };\n return n.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMs])\\1?|\"[^\"]*\"|'[^']*'/g, function (t) {\n return $[t] ? $[t] : t.slice(1, t.length - 1);\n });\n };\n\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n meta: {\n date: null\n },\n valid: true\n };\n }\n\n var l = Object.assign({}, {\n format: a.element && a.element.getAttribute(\"type\") === \"date\" ? \"YYYY-MM-DD\" : \"MM/DD/YYYY\",\n message: \"\"\n }, a.options);\n var o = a.l10n ? a.l10n.date[\"default\"] : l.message;\n var r$1 = {\n message: \"\".concat(o),\n meta: {\n date: null\n },\n valid: false\n };\n var c = l.format.split(\" \");\n var i = c.length > 1 ? c[1] : null;\n var g = c.length > 2 ? c[2] : null;\n var u = a.value.split(\" \");\n var m = u[0];\n var d = u.length > 1 ? u[1] : null;\n\n if (c.length !== u.length) {\n return r$1;\n }\n\n var f = l.separator || (m.indexOf(\"/\") !== -1 ? \"/\" : m.indexOf(\"-\") !== -1 ? \"-\" : m.indexOf(\".\") !== -1 ? \".\" : \"/\");\n\n if (f === null || m.indexOf(f) === -1) {\n return r$1;\n }\n\n var p = m.split(f);\n var h = c[0].split(f);\n\n if (p.length !== h.length) {\n return r$1;\n }\n\n var $ = p[h.indexOf(\"YYYY\")];\n var M = p[h.indexOf(\"MM\")];\n var Y = p[h.indexOf(\"DD\")];\n\n if (!/^\\d+$/.test($) || !/^\\d+$/.test(M) || !/^\\d+$/.test(Y) || $.length > 4 || M.length > 2 || Y.length > 2) {\n return r$1;\n }\n\n var D = parseInt($, 10);\n var x = parseInt(M, 10);\n var y = parseInt(Y, 10);\n\n if (!t$9(D, x, y)) {\n return r$1;\n }\n\n var I = new Date(D, x - 1, y);\n\n if (i) {\n var _t2 = d.split(\":\");\n\n if (i.split(\":\").length !== _t2.length) {\n return r$1;\n }\n\n var _e = _t2.length > 0 ? _t2[0].length <= 2 && /^\\d+$/.test(_t2[0]) ? parseInt(_t2[0], 10) : -1 : 0;\n\n var _n2 = _t2.length > 1 ? _t2[1].length <= 2 && /^\\d+$/.test(_t2[1]) ? parseInt(_t2[1], 10) : -1 : 0;\n\n var _s = _t2.length > 2 ? _t2[2].length <= 2 && /^\\d+$/.test(_t2[2]) ? parseInt(_t2[2], 10) : -1 : 0;\n\n if (_e === -1 || _n2 === -1 || _s === -1) {\n return r$1;\n }\n\n if (_s < 0 || _s > 60) {\n return r$1;\n }\n\n if (_e < 0 || _e >= 24 || g && _e > 12) {\n return r$1;\n }\n\n if (_n2 < 0 || _n2 > 59) {\n return r$1;\n }\n\n I.setHours(_e);\n I.setMinutes(_n2);\n I.setSeconds(_s);\n }\n\n var O = typeof l.min === \"function\" ? l.min() : l.min;\n var v = O instanceof Date ? O : O ? n(O, h, f) : I;\n var H = typeof l.max === \"function\" ? l.max() : l.max;\n var T = H instanceof Date ? H : H ? n(H, h, f) : I;\n var S = O instanceof Date ? s(v, l.format) : O;\n var b = H instanceof Date ? s(T, l.format) : H;\n\n switch (true) {\n case !!S && !b:\n return {\n message: r(a.l10n ? a.l10n.date.min : o, S),\n meta: {\n date: I\n },\n valid: I.getTime() >= v.getTime()\n };\n\n case !!b && !S:\n return {\n message: r(a.l10n ? a.l10n.date.max : o, b),\n meta: {\n date: I\n },\n valid: I.getTime() <= T.getTime()\n };\n\n case !!b && !!S:\n return {\n message: r(a.l10n ? a.l10n.date.range : o, [S, b]),\n meta: {\n date: I\n },\n valid: I.getTime() <= T.getTime() && I.getTime() >= v.getTime()\n };\n\n default:\n return {\n message: \"\".concat(o),\n meta: {\n date: I\n },\n valid: true\n };\n }\n }\n };\n }\n\n function o$1() {\n return {\n validate: function validate(o) {\n var t = \"function\" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare;\n return {\n valid: t === \"\" || o.value !== t\n };\n }\n };\n }\n\n function e$1() {\n return {\n validate: function validate(e) {\n return {\n valid: e.value === \"\" || /^\\d+$/.test(e.value)\n };\n }\n };\n }\n\n function t$a() {\n var t = function t(_t3, e) {\n var s = _t3.split(/\"/);\n\n var l = s.length;\n var n = [];\n var r = \"\";\n\n for (var _t = 0; _t < l; _t++) {\n if (_t % 2 === 0) {\n var _l = s[_t].split(e);\n\n var a = _l.length;\n\n if (a === 1) {\n r += _l[0];\n } else {\n n.push(r + _l[0]);\n\n for (var _t2 = 1; _t2 < a - 1; _t2++) {\n n.push(_l[_t2]);\n }\n\n r = _l[a - 1];\n }\n } else {\n r += '\"' + s[_t];\n\n if (_t < l - 1) {\n r += '\"';\n }\n }\n }\n\n n.push(r);\n return n;\n };\n\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var s = Object.assign({}, {\n multiple: false,\n separator: /[,;]/\n }, e.options);\n var l = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n var n = s.multiple === true || \"\".concat(s.multiple) === \"true\";\n\n if (n) {\n var _n = s.separator || /[,;]/;\n\n var r = t(e.value, _n);\n var a = r.length;\n\n for (var _t4 = 0; _t4 < a; _t4++) {\n if (!l.test(r[_t4])) {\n return {\n valid: false\n };\n }\n }\n\n return {\n valid: true\n };\n } else {\n return {\n valid: l.test(e.value)\n };\n }\n }\n };\n }\n\n function e$2() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t;\n var i = e.options.extension ? e.options.extension.toLowerCase().split(\",\") : null;\n var s = e.options.type ? e.options.type.toLowerCase().split(\",\") : null;\n var n = window[\"File\"] && window[\"FileList\"] && window[\"FileReader\"];\n\n if (n) {\n var _n = e.element.files;\n var o = _n.length;\n var a = 0;\n\n if (e.options.maxFiles && o > parseInt(\"\".concat(e.options.maxFiles), 10)) {\n return {\n meta: {\n error: \"INVALID_MAX_FILES\"\n },\n valid: false\n };\n }\n\n if (e.options.minFiles && o < parseInt(\"\".concat(e.options.minFiles), 10)) {\n return {\n meta: {\n error: \"INVALID_MIN_FILES\"\n },\n valid: false\n };\n }\n\n var r = {};\n\n for (var l = 0; l < o; l++) {\n a += _n[l].size;\n t = _n[l].name.substr(_n[l].name.lastIndexOf(\".\") + 1);\n r = {\n ext: t,\n file: _n[l],\n size: _n[l].size,\n type: _n[l].type\n };\n\n if (e.options.minSize && _n[l].size < parseInt(\"\".concat(e.options.minSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MIN_SIZE\"\n }, r),\n valid: false\n };\n }\n\n if (e.options.maxSize && _n[l].size > parseInt(\"\".concat(e.options.maxSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MAX_SIZE\"\n }, r),\n valid: false\n };\n }\n\n if (i && i.indexOf(t.toLowerCase()) === -1) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_EXTENSION\"\n }, r),\n valid: false\n };\n }\n\n if (_n[l].type && s && s.indexOf(_n[l].type.toLowerCase()) === -1) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_TYPE\"\n }, r),\n valid: false\n };\n }\n }\n\n if (e.options.maxTotalSize && a > parseInt(\"\".concat(e.options.maxTotalSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MAX_TOTAL_SIZE\",\n totalSize: a\n }, r),\n valid: false\n };\n }\n\n if (e.options.minTotalSize && a < parseInt(\"\".concat(e.options.minTotalSize), 10)) {\n return {\n meta: Object.assign({}, {\n error: \"INVALID_MIN_TOTAL_SIZE\",\n totalSize: a\n }, r),\n valid: false\n };\n }\n } else {\n t = e.value.substr(e.value.lastIndexOf(\".\") + 1);\n\n if (i && i.indexOf(t.toLowerCase()) === -1) {\n return {\n meta: {\n error: \"INVALID_EXTENSION\",\n ext: t\n },\n valid: false\n };\n }\n }\n\n return {\n valid: true\n };\n }\n };\n }\n\n function a() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var s = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, a.options);\n var t = parseFloat(\"\".concat(s.min).replace(\",\", \".\"));\n return s.inclusive ? {\n message: r(a.l10n ? s.message || a.l10n.greaterThan[\"default\"] : s.message, \"\".concat(t)),\n valid: parseFloat(a.value) >= t\n } : {\n message: r(a.l10n ? s.message || a.l10n.greaterThan.notInclusive : s.message, \"\".concat(t)),\n valid: parseFloat(a.value) > t\n };\n }\n };\n }\n\n function o$2() {\n return {\n validate: function validate(o) {\n var t = \"function\" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare;\n return {\n valid: t === \"\" || o.value === t\n };\n }\n };\n }\n\n function a$1() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = Object.assign({}, {\n decimalSeparator: \".\",\n thousandsSeparator: \"\"\n }, a.options);\n var t = e.decimalSeparator === \".\" ? \"\\\\.\" : e.decimalSeparator;\n var r = e.thousandsSeparator === \".\" ? \"\\\\.\" : e.thousandsSeparator;\n var o = new RegExp(\"^-?[0-9]{1,3}(\".concat(r, \"[0-9]{3})*(\").concat(t, \"[0-9]+)?$\"));\n var n = new RegExp(r, \"g\");\n var s = \"\".concat(a.value);\n\n if (!o.test(s)) {\n return {\n valid: false\n };\n }\n\n if (r) {\n s = s.replace(n, \"\");\n }\n\n if (t) {\n s = s.replace(t, \".\");\n }\n\n var i = parseFloat(s);\n return {\n valid: !isNaN(i) && isFinite(i) && Math.floor(i) === i\n };\n }\n };\n }\n\n function d() {\n return {\n validate: function validate(d) {\n if (d.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n ipv4: true,\n ipv6: true\n }, d.options);\n var e = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\/([0-9]|[1-2][0-9]|3[0-2]))?$/;\n var s = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*(\\/(\\d|\\d\\d|1[0-1]\\d|12[0-8]))?$/;\n\n switch (true) {\n case a.ipv4 && !a.ipv6:\n return {\n message: d.l10n ? a.message || d.l10n.ip.ipv4 : a.message,\n valid: e.test(d.value)\n };\n\n case !a.ipv4 && a.ipv6:\n return {\n message: d.l10n ? a.message || d.l10n.ip.ipv6 : a.message,\n valid: s.test(d.value)\n };\n\n case a.ipv4 && a.ipv6:\n default:\n return {\n message: d.l10n ? a.message || d.l10n.ip[\"default\"] : a.message,\n valid: e.test(d.value) || s.test(d.value)\n };\n }\n }\n };\n }\n\n function s$2() {\n return {\n validate: function validate(s) {\n if (s.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n inclusive: true,\n message: \"\"\n }, s.options);\n var l = parseFloat(\"\".concat(a.max).replace(\",\", \".\"));\n return a.inclusive ? {\n message: r(s.l10n ? a.message || s.l10n.lessThan[\"default\"] : a.message, \"\".concat(l)),\n valid: parseFloat(s.value) <= l\n } : {\n message: r(s.l10n ? a.message || s.l10n.lessThan.notInclusive : a.message, \"\".concat(l)),\n valid: parseFloat(s.value) < l\n };\n }\n };\n }\n\n function t$b() {\n return {\n validate: function validate(t) {\n var n = !!t.options && !!t.options.trim;\n var o = t.value;\n return {\n valid: !n && o !== \"\" || n && o !== \"\" && o.trim() !== \"\"\n };\n }\n };\n }\n\n function a$2() {\n return {\n validate: function validate(a) {\n if (a.value === \"\") {\n return {\n valid: true\n };\n }\n\n var e = Object.assign({}, {\n decimalSeparator: \".\",\n thousandsSeparator: \"\"\n }, a.options);\n var t = \"\".concat(a.value);\n\n if (t.substr(0, 1) === e.decimalSeparator) {\n t = \"0\".concat(e.decimalSeparator).concat(t.substr(1));\n } else if (t.substr(0, 2) === \"-\".concat(e.decimalSeparator)) {\n t = \"-0\".concat(e.decimalSeparator).concat(t.substr(2));\n }\n\n var r = e.decimalSeparator === \".\" ? \"\\\\.\" : e.decimalSeparator;\n var s = e.thousandsSeparator === \".\" ? \"\\\\.\" : e.thousandsSeparator;\n var i = new RegExp(\"^-?[0-9]{1,3}(\".concat(s, \"[0-9]{3})*(\").concat(r, \"[0-9]+)?$\"));\n var o = new RegExp(s, \"g\");\n\n if (!i.test(t)) {\n return {\n valid: false\n };\n }\n\n if (s) {\n t = t.replace(o, \"\");\n }\n\n if (r) {\n t = t.replace(r, \".\");\n }\n\n var l = parseFloat(t);\n return {\n valid: !isNaN(l) && isFinite(l)\n };\n }\n };\n }\n\n function r$1() {\n return {\n validate: function validate(r) {\n return t$6(r.options.promise, [r]);\n }\n };\n }\n\n function e$3() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var t = e.options.regexp;\n\n if (t instanceof RegExp) {\n return {\n valid: t.test(e.value)\n };\n } else {\n var n = t.toString();\n var o = e.options.flags ? new RegExp(n, e.options.flags) : new RegExp(n);\n return {\n valid: o.test(e.value)\n };\n }\n }\n };\n }\n\n function e$4(e, t) {\n var n = function n(e) {\n return Object.keys(e).map(function (t) {\n return \"\".concat(encodeURIComponent(t), \"=\").concat(encodeURIComponent(e[t]));\n }).join(\"&\");\n };\n\n return new Promise(function (o, s) {\n var d = Object.assign({}, {\n crossDomain: false,\n headers: {},\n method: \"GET\",\n params: {}\n }, t);\n var a = Object.keys(d.params).map(function (e) {\n return \"\".concat(encodeURIComponent(e), \"=\").concat(encodeURIComponent(d.params[e]));\n }).join(\"&\");\n var r = e.indexOf(\"?\");\n var c = \"GET\" === d.method ? \"\".concat(e).concat(r ? \"?\" : \"&\").concat(a) : e;\n\n if (d.crossDomain) {\n var _e = document.createElement(\"script\");\n\n var _t = \"___fetch\".concat(Date.now(), \"___\");\n\n window[_t] = function (e) {\n delete window[_t];\n o(e);\n };\n\n _e.src = \"\".concat(c).concat(r ? \"&\" : \"?\", \"callback=\").concat(_t);\n _e.async = true;\n\n _e.addEventListener(\"load\", function () {\n _e.parentNode.removeChild(_e);\n });\n\n _e.addEventListener(\"error\", function () {\n return s;\n });\n\n document.head.appendChild(_e);\n } else {\n var _e2 = new XMLHttpRequest();\n\n _e2.open(d.method, c);\n\n _e2.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n\n if (\"POST\" === d.method) {\n _e2.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n }\n\n Object.keys(d.headers).forEach(function (t) {\n return _e2.setRequestHeader(t, d.headers[t]);\n });\n\n _e2.addEventListener(\"load\", function () {\n o(JSON.parse(this.responseText));\n });\n\n _e2.addEventListener(\"error\", function () {\n return s;\n });\n\n _e2.send(n(d.params));\n }\n });\n }\n\n function a$3() {\n var a = {\n crossDomain: false,\n data: {},\n headers: {},\n method: \"GET\",\n validKey: \"valid\"\n };\n return {\n validate: function validate(t) {\n if (t.value === \"\") {\n return Promise.resolve({\n valid: true\n });\n }\n\n var s = Object.assign({}, a, t.options);\n var r = s.data;\n\n if (\"function\" === typeof s.data) {\n r = s.data.call(this, t);\n }\n\n if (\"string\" === typeof r) {\n r = JSON.parse(r);\n }\n\n r[s.name || t.field] = t.value;\n var o = \"function\" === typeof s.url ? s.url.call(this, t) : s.url;\n return e$4(o, {\n crossDomain: s.crossDomain,\n headers: s.headers,\n method: s.method,\n params: r\n }).then(function (e) {\n return Promise.resolve({\n message: e.message,\n meta: e,\n valid: \"\".concat(e[s.validKey]) === \"true\"\n });\n })[\"catch\"](function (e) {\n return Promise.reject({\n valid: false\n });\n });\n }\n };\n }\n\n function e$5() {\n return {\n validate: function validate(e) {\n if (e.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, {\n \"case\": \"lower\"\n }, e.options);\n var s = (a[\"case\"] || \"lower\").toLowerCase();\n return {\n message: a.message || (e.l10n ? \"upper\" === s ? e.l10n.stringCase.upper : e.l10n.stringCase[\"default\"] : a.message),\n valid: \"upper\" === s ? e.value === e.value.toUpperCase() : e.value === e.value.toLowerCase()\n };\n }\n };\n }\n\n function t$c() {\n var t = function t(e) {\n var t = e.length;\n\n for (var s = e.length - 1; s >= 0; s--) {\n var n = e.charCodeAt(s);\n\n if (n > 127 && n <= 2047) {\n t++;\n } else if (n > 2047 && n <= 65535) {\n t += 2;\n }\n\n if (n >= 56320 && n <= 57343) {\n s--;\n }\n }\n\n return \"\".concat(t);\n };\n\n return {\n validate: function validate(s) {\n var n = Object.assign({}, {\n message: \"\",\n trim: false,\n utf8Bytes: false\n }, s.options);\n var a = n.trim === true || \"\".concat(n.trim) === \"true\" ? s.value.trim() : s.value;\n\n if (a === \"\") {\n return {\n valid: true\n };\n }\n\n var r$1 = n.min ? \"\".concat(n.min) : \"\";\n var l = n.max ? \"\".concat(n.max) : \"\";\n var i = n.utf8Bytes ? t(a) : a.length;\n var g = true;\n var m = s.l10n ? n.message || s.l10n.stringLength[\"default\"] : n.message;\n\n if (r$1 && i < parseInt(r$1, 10) || l && i > parseInt(l, 10)) {\n g = false;\n }\n\n switch (true) {\n case !!r$1 && !!l:\n m = r(s.l10n ? n.message || s.l10n.stringLength.between : n.message, [r$1, l]);\n break;\n\n case !!r$1:\n m = r(s.l10n ? n.message || s.l10n.stringLength.more : n.message, \"\".concat(parseInt(r$1, 10) - 1));\n break;\n\n case !!l:\n m = r(s.l10n ? n.message || s.l10n.stringLength.less : n.message, \"\".concat(parseInt(l, 10) + 1));\n break;\n }\n\n return {\n message: m,\n valid: g\n };\n }\n };\n }\n\n function t$d() {\n var t = {\n allowEmptyProtocol: false,\n allowLocal: false,\n protocol: \"http, https, ftp\"\n };\n return {\n validate: function validate(o) {\n if (o.value === \"\") {\n return {\n valid: true\n };\n }\n\n var a = Object.assign({}, t, o.options);\n var l = a.allowLocal === true || \"\".concat(a.allowLocal) === \"true\";\n var f = a.allowEmptyProtocol === true || \"\".concat(a.allowEmptyProtocol) === \"true\";\n var u = a.protocol.split(\",\").join(\"|\").replace(/\\s/g, \"\");\n var e = new RegExp(\"^\" + \"(?:(?:\" + u + \")://)\" + (f ? \"?\" : \"\") + \"(?:\\\\S+(?::\\\\S*)?@)?\" + \"(?:\" + (l ? \"\" : \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" + \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" + \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\") + \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" + \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" + \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" + \"|\" + \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)\" + \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-?)*[a-z\\\\u00a1-\\\\uffff0-9])*\" + \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\" + (l ? \"?\" : \"\") + \")\" + \"(?::\\\\d{2,5})?\" + \"(?:/[^\\\\s]*)?$\", \"i\");\n return {\n valid: e.test(o.value)\n };\n }\n };\n }\n\n var s$3 = {\n between: s$1,\n blank: t$5,\n callback: o,\n choice: t$7,\n creditCard: l,\n date: n,\n different: o$1,\n digits: e$1,\n emailAddress: t$a,\n file: e$2,\n greaterThan: a,\n identical: o$2,\n integer: a$1,\n ip: d,\n lessThan: s$2,\n notEmpty: t$b,\n numeric: a$2,\n promise: r$1,\n regexp: e$3,\n remote: a$3,\n stringCase: e$5,\n stringLength: t$c,\n uri: t$d\n };\n\n var l$1 = /*#__PURE__*/function () {\n function l(i, s$1) {\n _classCallCheck(this, l);\n\n this.elements = {};\n this.ee = s();\n this.filter = t$4();\n this.plugins = {};\n this.results = new Map();\n this.validators = {};\n this.form = i;\n this.fields = s$1;\n }\n\n _createClass(l, [{\n key: \"on\",\n value: function on(e, t) {\n this.ee.on(e, t);\n return this;\n }\n }, {\n key: \"off\",\n value: function off(e, t) {\n this.ee.off(e, t);\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(e) {\n var _this$ee;\n\n for (var _len = arguments.length, t = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n t[_key - 1] = arguments[_key];\n }\n\n (_this$ee = this.ee).emit.apply(_this$ee, [e].concat(t));\n\n return this;\n }\n }, {\n key: \"registerPlugin\",\n value: function registerPlugin(e, t) {\n if (this.plugins[e]) {\n throw new Error(\"The plguin \".concat(e, \" is registered\"));\n }\n\n t.setCore(this);\n t.install();\n this.plugins[e] = t;\n return this;\n }\n }, {\n key: \"deregisterPlugin\",\n value: function deregisterPlugin(e) {\n var t = this.plugins[e];\n\n if (t) {\n t.uninstall();\n }\n\n delete this.plugins[e];\n return this;\n }\n }, {\n key: \"registerValidator\",\n value: function registerValidator(e, t) {\n if (this.validators[e]) {\n throw new Error(\"The validator \".concat(e, \" is registered\"));\n }\n\n this.validators[e] = t;\n return this;\n }\n }, {\n key: \"registerFilter\",\n value: function registerFilter(e, t) {\n this.filter.add(e, t);\n return this;\n }\n }, {\n key: \"deregisterFilter\",\n value: function deregisterFilter(e, t) {\n this.filter.remove(e, t);\n return this;\n }\n }, {\n key: \"executeFilter\",\n value: function executeFilter(e, t, i) {\n return this.filter.execute(e, t, i);\n }\n }, {\n key: \"addField\",\n value: function addField(e, t) {\n var i = Object.assign({}, {\n selector: \"\",\n validators: {}\n }, t);\n this.fields[e] = this.fields[e] ? {\n selector: i.selector || this.fields[e].selector,\n validators: Object.assign({}, this.fields[e].validators, i.validators)\n } : i;\n this.elements[e] = this.queryElements(e);\n this.emit(\"core.field.added\", {\n elements: this.elements[e],\n field: e,\n options: this.fields[e]\n });\n return this;\n }\n }, {\n key: \"removeField\",\n value: function removeField(e) {\n if (!this.fields[e]) {\n throw new Error(\"The field \".concat(e, \" validators are not defined. Please ensure the field is added first\"));\n }\n\n var t = this.elements[e];\n var i = this.fields[e];\n delete this.elements[e];\n delete this.fields[e];\n this.emit(\"core.field.removed\", {\n elements: t,\n field: e,\n options: i\n });\n return this;\n }\n }, {\n key: \"validate\",\n value: function validate() {\n var _this = this;\n\n this.emit(\"core.form.validating\");\n return this.filter.execute(\"validate-pre\", Promise.resolve(), []).then(function () {\n return Promise.all(Object.keys(_this.fields).map(function (e) {\n return _this.validateField(e);\n })).then(function (e) {\n switch (true) {\n case e.indexOf(\"Invalid\") !== -1:\n _this.emit(\"core.form.invalid\");\n\n return Promise.resolve(\"Invalid\");\n\n case e.indexOf(\"NotValidated\") !== -1:\n _this.emit(\"core.form.notvalidated\");\n\n return Promise.resolve(\"NotValidated\");\n\n default:\n _this.emit(\"core.form.valid\");\n\n return Promise.resolve(\"Valid\");\n }\n });\n });\n }\n }, {\n key: \"validateField\",\n value: function validateField(e) {\n var _this2 = this;\n\n var t = this.results.get(e);\n\n if (t === \"Valid\" || t === \"Invalid\") {\n return Promise.resolve(t);\n }\n\n this.emit(\"core.field.validating\", e);\n var i = this.elements[e];\n\n if (i.length === 0) {\n this.emit(\"core.field.valid\", e);\n return Promise.resolve(\"Valid\");\n }\n\n var s = i[0].getAttribute(\"type\");\n\n if (\"radio\" === s || \"checkbox\" === s || i.length === 1) {\n return this.validateElement(e, i[0]);\n } else {\n return Promise.all(i.map(function (t) {\n return _this2.validateElement(e, t);\n })).then(function (t) {\n switch (true) {\n case t.indexOf(\"Invalid\") !== -1:\n _this2.emit(\"core.field.invalid\", e);\n\n _this2.results.set(e, \"Invalid\");\n\n return Promise.resolve(\"Invalid\");\n\n case t.indexOf(\"NotValidated\") !== -1:\n _this2.emit(\"core.field.notvalidated\", e);\n\n _this2.results[\"delete\"](e);\n\n return Promise.resolve(\"NotValidated\");\n\n default:\n _this2.emit(\"core.field.valid\", e);\n\n _this2.results.set(e, \"Valid\");\n\n return Promise.resolve(\"Valid\");\n }\n });\n }\n }\n }, {\n key: \"validateElement\",\n value: function validateElement(e, t) {\n var _this3 = this;\n\n this.results[\"delete\"](e);\n var i = this.elements[e];\n var s = this.filter.execute(\"element-ignored\", false, [e, t, i]);\n\n if (s) {\n this.emit(\"core.element.ignored\", {\n element: t,\n elements: i,\n field: e\n });\n return Promise.resolve(\"Ignored\");\n }\n\n var l = this.fields[e].validators;\n this.emit(\"core.element.validating\", {\n element: t,\n elements: i,\n field: e\n });\n var r = Object.keys(l).map(function (i) {\n return function () {\n return _this3.executeValidator(e, t, i, l[i]);\n };\n });\n return this.waterfall(r).then(function (s) {\n var l = s.indexOf(\"Invalid\") === -1;\n\n _this3.emit(\"core.element.validated\", {\n element: t,\n elements: i,\n field: e,\n valid: l\n });\n\n var r = t.getAttribute(\"type\");\n\n if (\"radio\" === r || \"checkbox\" === r || i.length === 1) {\n _this3.emit(l ? \"core.field.valid\" : \"core.field.invalid\", e);\n }\n\n return Promise.resolve(l ? \"Valid\" : \"Invalid\");\n })[\"catch\"](function (s) {\n _this3.emit(\"core.element.notvalidated\", {\n element: t,\n elements: i,\n field: e\n });\n\n return Promise.resolve(s);\n });\n }\n }, {\n key: \"executeValidator\",\n value: function executeValidator(e, t, i, s) {\n var _this4 = this;\n\n var l = this.elements[e];\n var r = this.filter.execute(\"validator-name\", i, [i, e]);\n s.message = this.filter.execute(\"validator-message\", s.message, [this.locale, e, r]);\n\n if (!this.validators[r] || s.enabled === false) {\n this.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: this.normalizeResult(e, r, {\n valid: true\n }),\n validator: r\n });\n return Promise.resolve(\"Valid\");\n }\n\n var a = this.validators[r];\n var d = this.getElementValue(e, t, r);\n var o = this.filter.execute(\"field-should-validate\", true, [e, t, d, i]);\n\n if (!o) {\n this.emit(\"core.validator.notvalidated\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n return Promise.resolve(\"NotValidated\");\n }\n\n this.emit(\"core.validator.validating\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n var n = a().validate({\n element: t,\n elements: l,\n field: e,\n l10n: this.localization,\n options: s,\n value: d\n });\n var h = \"function\" === typeof n[\"then\"];\n\n if (h) {\n return n.then(function (s) {\n var r = _this4.normalizeResult(e, i, s);\n\n _this4.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: r,\n validator: i\n });\n\n return r.valid ? \"Valid\" : \"Invalid\";\n });\n } else {\n var _s = this.normalizeResult(e, i, n);\n\n this.emit(\"core.validator.validated\", {\n element: t,\n elements: l,\n field: e,\n result: _s,\n validator: i\n });\n return Promise.resolve(_s.valid ? \"Valid\" : \"Invalid\");\n }\n }\n }, {\n key: \"getElementValue\",\n value: function getElementValue(e$1, t, s) {\n var l = e(this.form, e$1, t, this.elements[e$1]);\n return this.filter.execute(\"field-value\", l, [l, e$1, t, s]);\n }\n }, {\n key: \"getElements\",\n value: function getElements(e) {\n return this.elements[e];\n }\n }, {\n key: \"getFields\",\n value: function getFields() {\n return this.fields;\n }\n }, {\n key: \"getFormElement\",\n value: function getFormElement() {\n return this.form;\n }\n }, {\n key: \"getLocale\",\n value: function getLocale() {\n return this.locale;\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(e) {\n return this.plugins[e];\n }\n }, {\n key: \"updateFieldStatus\",\n value: function updateFieldStatus(e, t, i) {\n var _this5 = this;\n\n var s = this.elements[e];\n var l = s[0].getAttribute(\"type\");\n var r = \"radio\" === l || \"checkbox\" === l ? [s[0]] : s;\n r.forEach(function (s) {\n return _this5.updateElementStatus(e, s, t, i);\n });\n\n if (!i) {\n switch (t) {\n case \"NotValidated\":\n this.emit(\"core.field.notvalidated\", e);\n this.results[\"delete\"](e);\n break;\n\n case \"Validating\":\n this.emit(\"core.field.validating\", e);\n this.results[\"delete\"](e);\n break;\n\n case \"Valid\":\n this.emit(\"core.field.valid\", e);\n this.results.set(e, \"Valid\");\n break;\n\n case \"Invalid\":\n this.emit(\"core.field.invalid\", e);\n this.results.set(e, \"Invalid\");\n break;\n }\n }\n\n return this;\n }\n }, {\n key: \"updateElementStatus\",\n value: function updateElementStatus(e, t, i, s) {\n var _this6 = this;\n\n var l = this.elements[e];\n var r = this.fields[e].validators;\n var a = s ? [s] : Object.keys(r);\n\n switch (i) {\n case \"NotValidated\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.notvalidated\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n });\n this.emit(\"core.element.notvalidated\", {\n element: t,\n elements: l,\n field: e\n });\n break;\n\n case \"Validating\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validating\", {\n element: t,\n elements: l,\n field: e,\n validator: i\n });\n });\n this.emit(\"core.element.validating\", {\n element: t,\n elements: l,\n field: e\n });\n break;\n\n case \"Valid\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validated\", {\n element: t,\n field: e,\n result: {\n message: r[i].message,\n valid: true\n },\n validator: i\n });\n });\n this.emit(\"core.element.validated\", {\n element: t,\n elements: l,\n field: e,\n valid: true\n });\n break;\n\n case \"Invalid\":\n a.forEach(function (i) {\n return _this6.emit(\"core.validator.validated\", {\n element: t,\n field: e,\n result: {\n message: r[i].message,\n valid: false\n },\n validator: i\n });\n });\n this.emit(\"core.element.validated\", {\n element: t,\n elements: l,\n field: e,\n valid: false\n });\n break;\n }\n\n return this;\n }\n }, {\n key: \"resetForm\",\n value: function resetForm(e) {\n var _this7 = this;\n\n Object.keys(this.fields).forEach(function (t) {\n return _this7.resetField(t, e);\n });\n this.emit(\"core.form.reset\", {\n reset: e\n });\n return this;\n }\n }, {\n key: \"resetField\",\n value: function resetField(e, t) {\n if (t) {\n var _t = this.elements[e];\n\n var _i = _t[0].getAttribute(\"type\");\n\n _t.forEach(function (e) {\n if (\"radio\" === _i || \"checkbox\" === _i) {\n e.removeAttribute(\"selected\");\n e.removeAttribute(\"checked\");\n e.checked = false;\n } else {\n e.setAttribute(\"value\", \"\");\n\n if (e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement) {\n e.value = \"\";\n }\n }\n });\n }\n\n this.updateFieldStatus(e, \"NotValidated\");\n this.emit(\"core.field.reset\", {\n field: e,\n reset: t\n });\n return this;\n }\n }, {\n key: \"revalidateField\",\n value: function revalidateField(e) {\n this.updateFieldStatus(e, \"NotValidated\");\n return this.validateField(e);\n }\n }, {\n key: \"disableValidator\",\n value: function disableValidator(e, t) {\n return this.toggleValidator(false, e, t);\n }\n }, {\n key: \"enableValidator\",\n value: function enableValidator(e, t) {\n return this.toggleValidator(true, e, t);\n }\n }, {\n key: \"updateValidatorOption\",\n value: function updateValidatorOption(e, t, i, s) {\n if (this.fields[e] && this.fields[e].validators && this.fields[e].validators[t]) {\n this.fields[e].validators[t][i] = s;\n }\n\n return this;\n }\n }, {\n key: \"setFieldOptions\",\n value: function setFieldOptions(e, t) {\n this.fields[e] = t;\n return this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this8 = this;\n\n Object.keys(this.plugins).forEach(function (e) {\n return _this8.plugins[e].uninstall();\n });\n this.ee.clear();\n this.filter.clear();\n this.results.clear();\n this.plugins = {};\n return this;\n }\n }, {\n key: \"setLocale\",\n value: function setLocale(e, t) {\n this.locale = e;\n this.localization = t;\n return this;\n }\n }, {\n key: \"waterfall\",\n value: function waterfall(e) {\n return e.reduce(function (e, t, i, s) {\n return e.then(function (e) {\n return t().then(function (t) {\n e.push(t);\n return e;\n });\n });\n }, Promise.resolve([]));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(e) {\n var t = this.fields[e].selector ? \"#\" === this.fields[e].selector.charAt(0) ? \"[id=\\\"\".concat(this.fields[e].selector.substring(1), \"\\\"]\") : this.fields[e].selector : \"[name=\\\"\".concat(e, \"\\\"]\");\n return [].slice.call(this.form.querySelectorAll(t));\n }\n }, {\n key: \"normalizeResult\",\n value: function normalizeResult(e, t, i) {\n var s = this.fields[e].validators[t];\n return Object.assign({}, i, {\n message: i.message || (s ? s.message : \"\") || (this.localization && this.localization[t] && this.localization[t][\"default\"] ? this.localization[t][\"default\"] : \"\") || \"The field \".concat(e, \" is not valid\")\n });\n }\n }, {\n key: \"toggleValidator\",\n value: function toggleValidator(e, t, i) {\n var _this9 = this;\n\n var s = this.fields[t].validators;\n\n if (i && s && s[i]) {\n this.fields[t].validators[i].enabled = e;\n } else if (!i) {\n Object.keys(s).forEach(function (i) {\n return _this9.fields[t].validators[i].enabled = e;\n });\n }\n\n return this.updateFieldStatus(t, \"NotValidated\", i);\n }\n }]);\n\n return l;\n }();\n\n function r$2(e, t) {\n var i = Object.assign({}, {\n fields: {},\n locale: \"en_US\",\n plugins: {}\n }, t);\n var r = new l$1(e, i.fields);\n r.setLocale(i.locale, i.localization);\n Object.keys(i.plugins).forEach(function (e) {\n return r.registerPlugin(e, i.plugins[e]);\n });\n Object.keys(s$3).forEach(function (e) {\n return r.registerValidator(e, s$3[e]);\n });\n Object.keys(i.fields).forEach(function (e) {\n return r.addField(e, i.fields[e]);\n });\n return r;\n }\n\n var t$e = /*#__PURE__*/function () {\n function t(_t) {\n _classCallCheck(this, t);\n\n this.opts = _t;\n }\n\n _createClass(t, [{\n key: \"setCore\",\n value: function setCore(t) {\n this.core = t;\n return this;\n }\n }, {\n key: \"install\",\n value: function install() {}\n }, {\n key: \"uninstall\",\n value: function uninstall() {}\n }]);\n\n return t;\n }();\n\n var index$1 = {\n getFieldValue: e\n };\n\n var e$6 = /*#__PURE__*/function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = t || {};\n _this.validatorNameFilter = _this.getValidatorName.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.registerFilter(\"validator-name\", this.validatorNameFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.deregisterFilter(\"validator-name\", this.validatorNameFilter);\n }\n }, {\n key: \"getValidatorName\",\n value: function getValidatorName(t, e) {\n return this.opts[t] || t;\n }\n }]);\n\n return e;\n }(t$e);\n\n var i = /*#__PURE__*/function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i() {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, {});\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.fieldValidHandler = _this.onFieldValid.bind(_assertThisInitialized(_this));\n _this.fieldInvalidHandler = _this.onFieldInvalid.bind(_assertThisInitialized(_this));\n _this.messageDisplayedHandler = _this.onMessageDisplayed.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.field.valid\", this.fieldValidHandler).on(\"core.field.invalid\", this.fieldInvalidHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"plugins.message.displayed\", this.messageDisplayedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"core.field.valid\", this.fieldValidHandler).off(\"core.field.invalid\", this.fieldInvalidHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"plugins.message.displayed\", this.messageDisplayedHandler);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n if (e.valid) {\n e.element.setAttribute(\"aria-invalid\", \"false\");\n e.element.removeAttribute(\"aria-describedby\");\n }\n }\n }, {\n key: \"onFieldValid\",\n value: function onFieldValid(e) {\n var i = this.core.getElements(e);\n\n if (i) {\n i.forEach(function (e) {\n e.setAttribute(\"aria-invalid\", \"false\");\n e.removeAttribute(\"aria-describedby\");\n });\n }\n }\n }, {\n key: \"onFieldInvalid\",\n value: function onFieldInvalid(e) {\n var i = this.core.getElements(e);\n\n if (i) {\n i.forEach(function (e) {\n return e.setAttribute(\"aria-invalid\", \"true\");\n });\n }\n }\n }, {\n key: \"onMessageDisplayed\",\n value: function onMessageDisplayed(e) {\n e.messageElement.setAttribute(\"role\", \"alert\");\n e.messageElement.setAttribute(\"aria-hidden\", \"false\");\n var i = this.core.getElements(e.field);\n var t = i.indexOf(e.element);\n var l = \"js-fv-\".concat(e.field, \"-\").concat(t, \"-\").concat(Date.now(), \"-message\");\n e.messageElement.setAttribute(\"id\", l);\n e.element.setAttribute(\"aria-describedby\", l);\n var a = e.element.getAttribute(\"type\");\n\n if (\"radio\" === a || \"checkbox\" === a) {\n i.forEach(function (e) {\n return e.setAttribute(\"aria-describedby\", l);\n });\n }\n }\n }]);\n\n return i;\n }(t$e);\n\n var t$f = /*#__PURE__*/function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.addedFields = new Map();\n _this.opts = Object.assign({}, {\n html5Input: false,\n pluginPrefix: \"data-fvp-\",\n prefix: \"data-fv-\"\n }, e);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n var _this2 = this;\n\n this.parsePlugins();\n var e = this.parseOptions();\n Object.keys(e).forEach(function (t) {\n if (!_this2.addedFields.has(t)) {\n _this2.addedFields.set(t, true);\n }\n\n _this2.core.addField(t, e[t]);\n });\n this.core.on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.addedFields.clear();\n this.core.off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this3 = this;\n\n var t = e.elements;\n\n if (!t || t.length === 0 || this.addedFields.has(e.field)) {\n return;\n }\n\n this.addedFields.set(e.field, true);\n t.forEach(function (t) {\n var s = _this3.parseElement(t);\n\n if (!_this3.isEmptyOption(s)) {\n var _t = {\n selector: e.options.selector,\n validators: Object.assign({}, e.options.validators || {}, s.validators)\n };\n\n _this3.core.setFieldOptions(e.field, _t);\n }\n });\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n if (e.field && this.addedFields.has(e.field)) {\n this.addedFields[\"delete\"](e.field);\n }\n }\n }, {\n key: \"parseOptions\",\n value: function parseOptions() {\n var _this4 = this;\n\n var e = this.opts.prefix;\n var t = {};\n var s = this.core.getFields();\n var a = this.core.getFormElement();\n var i = [].slice.call(a.querySelectorAll(\"[name], [\".concat(e, \"field]\")));\n i.forEach(function (s) {\n var a = _this4.parseElement(s);\n\n if (!_this4.isEmptyOption(a)) {\n var _i = s.getAttribute(\"name\") || s.getAttribute(\"\".concat(e, \"field\"));\n\n t[_i] = Object.assign({}, t[_i], a);\n }\n });\n Object.keys(t).forEach(function (e) {\n Object.keys(t[e].validators).forEach(function (a) {\n t[e].validators[a].enabled = t[e].validators[a].enabled || false;\n\n if (s[e] && s[e].validators && s[e].validators[a]) {\n Object.assign(t[e].validators[a], s[e].validators[a]);\n }\n });\n });\n return Object.assign({}, s, t);\n }\n }, {\n key: \"createPluginInstance\",\n value: function createPluginInstance(e, t) {\n var s = e.split(\".\");\n var a = window || this;\n\n for (var _e2 = 0, _t2 = s.length; _e2 < _t2; _e2++) {\n a = a[s[_e2]];\n }\n\n if (typeof a !== \"function\") {\n throw new Error(\"the plugin \".concat(e, \" doesn't exist\"));\n }\n\n return new a(t);\n }\n }, {\n key: \"parsePlugins\",\n value: function parsePlugins() {\n var _this5 = this;\n\n var e = this.core.getFormElement();\n var t = new RegExp(\"^\".concat(this.opts.pluginPrefix, \"([a-z0-9-]+)(___)*([a-z0-9-]+)*$\"));\n var s = e.attributes.length;\n var a = {};\n\n for (var i = 0; i < s; i++) {\n var _s = e.attributes[i].name;\n var n = e.attributes[i].value;\n var r = t.exec(_s);\n\n if (r && r.length === 4) {\n var _e3 = this.toCamelCase(r[1]);\n\n a[_e3] = Object.assign({}, r[3] ? _defineProperty({}, this.toCamelCase(r[3]), n) : {\n enabled: \"\" === n || \"true\" === n\n }, a[_e3]);\n }\n }\n\n Object.keys(a).forEach(function (e) {\n var t = a[e];\n var s = t[\"enabled\"];\n var i = t[\"class\"];\n\n if (s && i) {\n delete t[\"enabled\"];\n delete t[\"clazz\"];\n\n var _s2 = _this5.createPluginInstance(i, t);\n\n _this5.core.registerPlugin(e, _s2);\n }\n });\n }\n }, {\n key: \"isEmptyOption\",\n value: function isEmptyOption(e) {\n var t = e.validators;\n return Object.keys(t).length === 0 && t.constructor === Object;\n }\n }, {\n key: \"parseElement\",\n value: function parseElement(e) {\n var t = new RegExp(\"^\".concat(this.opts.prefix, \"([a-z0-9-]+)(___)*([a-z0-9-]+)*$\"));\n var s = e.attributes.length;\n var a = {};\n var i = e.getAttribute(\"type\");\n\n for (var n = 0; n < s; n++) {\n var _s3 = e.attributes[n].name;\n var r = e.attributes[n].value;\n\n if (this.opts.html5Input) {\n switch (true) {\n case \"minlength\" === _s3:\n a[\"stringLength\"] = Object.assign({}, {\n enabled: true,\n min: parseInt(r, 10)\n }, a[\"stringLength\"]);\n break;\n\n case \"maxlength\" === _s3:\n a[\"stringLength\"] = Object.assign({}, {\n enabled: true,\n max: parseInt(r, 10)\n }, a[\"stringLength\"]);\n break;\n\n case \"pattern\" === _s3:\n a[\"regexp\"] = Object.assign({}, {\n enabled: true,\n regexp: r\n }, a[\"regexp\"]);\n break;\n\n case \"required\" === _s3:\n a[\"notEmpty\"] = Object.assign({}, {\n enabled: true\n }, a[\"notEmpty\"]);\n break;\n\n case \"type\" === _s3 && \"color\" === r:\n a[\"color\"] = Object.assign({}, {\n enabled: true,\n type: \"hex\"\n }, a[\"color\"]);\n break;\n\n case \"type\" === _s3 && \"email\" === r:\n a[\"emailAddress\"] = Object.assign({}, {\n enabled: true\n }, a[\"emailAddress\"]);\n break;\n\n case \"type\" === _s3 && \"url\" === r:\n a[\"uri\"] = Object.assign({}, {\n enabled: true\n }, a[\"uri\"]);\n break;\n\n case \"type\" === _s3 && \"range\" === r:\n a[\"between\"] = Object.assign({}, {\n enabled: true,\n max: parseFloat(e.getAttribute(\"max\")),\n min: parseFloat(e.getAttribute(\"min\"))\n }, a[\"between\"]);\n break;\n\n case \"min\" === _s3 && i !== \"date\" && i !== \"range\":\n a[\"greaterThan\"] = Object.assign({}, {\n enabled: true,\n min: parseFloat(r)\n }, a[\"greaterThan\"]);\n break;\n\n case \"max\" === _s3 && i !== \"date\" && i !== \"range\":\n a[\"lessThan\"] = Object.assign({}, {\n enabled: true,\n max: parseFloat(r)\n }, a[\"lessThan\"]);\n break;\n }\n }\n\n var l = t.exec(_s3);\n\n if (l && l.length === 4) {\n var _e4 = this.toCamelCase(l[1]);\n\n a[_e4] = Object.assign({}, l[3] ? _defineProperty({}, this.toCamelCase(l[3]), this.normalizeValue(r)) : {\n enabled: \"\" === r || \"true\" === r\n }, a[_e4]);\n }\n }\n\n return {\n validators: a\n };\n }\n }, {\n key: \"normalizeValue\",\n value: function normalizeValue(e) {\n return e === \"true\" ? true : e === \"false\" ? false : e;\n }\n }, {\n key: \"toUpperCase\",\n value: function toUpperCase(e) {\n return e.charAt(1).toUpperCase();\n }\n }, {\n key: \"toCamelCase\",\n value: function toCamelCase(e) {\n return e.replace(/-./g, this.toUpperCase);\n }\n }]);\n\n return t;\n }(t$e);\n\n var o$3 = /*#__PURE__*/function (_t) {\n _inherits(o, _t);\n\n var _super = _createSuper(o);\n\n function o() {\n var _this;\n\n _classCallCheck(this, o);\n\n _this = _super.call(this, {});\n _this.onValidHandler = _this.onFormValid.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(o, [{\n key: \"install\",\n value: function install() {\n var t = this.core.getFormElement();\n\n if (t.querySelectorAll('[type=\"submit\"][name=\"submit\"]').length) {\n throw new Error(\"Do not use `submit` for the name attribute of submit button\");\n }\n\n this.core.on(\"core.form.valid\", this.onValidHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"core.form.valid\", this.onValidHandler);\n }\n }, {\n key: \"onFormValid\",\n value: function onFormValid() {\n var t = this.core.getFormElement();\n\n if (t instanceof HTMLFormElement) {\n t.submit();\n }\n }\n }]);\n\n return o;\n }(t$e);\n\n var e$7 = /*#__PURE__*/function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = t || {};\n _this.triggerExecutedHandler = _this.onTriggerExecuted.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"plugins.trigger.executed\", this.triggerExecutedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.off(\"plugins.trigger.executed\", this.triggerExecutedHandler);\n }\n }, {\n key: \"onTriggerExecuted\",\n value: function onTriggerExecuted(t) {\n if (this.opts[t.field]) {\n var _e = this.opts[t.field].split(\" \");\n\n var _iterator = _createForOfIteratorHelper(_e),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _t2 = _step.value;\n\n var _e2 = _t2.trim();\n\n if (this.opts[_e2]) {\n this.core.revalidateField(_e2);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n }]);\n\n return e;\n }(t$e);\n\n var e$8 = /*#__PURE__*/function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.opts = Object.assign({}, {\n excluded: e.defaultIgnore\n }, t);\n _this.ignoreValidationFilter = _this.ignoreValidation.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n this.core.registerFilter(\"element-ignored\", this.ignoreValidationFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.deregisterFilter(\"element-ignored\", this.ignoreValidationFilter);\n }\n }, {\n key: \"ignoreValidation\",\n value: function ignoreValidation(t, e, i) {\n return this.opts.excluded.apply(this, [t, e, i]);\n }\n }], [{\n key: \"defaultIgnore\",\n value: function defaultIgnore(t, e, i) {\n var r = !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);\n var n = e.getAttribute(\"disabled\");\n return n === \"\" || n === \"disabled\" || e.getAttribute(\"type\") === \"hidden\" || !r;\n }\n }]);\n\n return e;\n }(t$e);\n\n var t$g = /*#__PURE__*/function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.statuses = new Map();\n _this.opts = Object.assign({}, {\n onStatusChanged: function onStatusChanged() {}\n }, e);\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.statuses.clear();\n this.core.off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"areFieldsValid\",\n value: function areFieldsValid() {\n return Array.from(this.statuses.values()).every(function (e) {\n return e === \"Valid\" || e === \"NotValidated\" || e === \"Ignored\";\n });\n }\n }, {\n key: \"getStatuses\",\n value: function getStatuses() {\n return this.statuses;\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n this.statuses.set(e.field, \"NotValidated\");\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n if (this.statuses.has(e.field)) {\n this.statuses[\"delete\"](e.field);\n }\n\n this.opts.onStatusChanged(this.areFieldsValid());\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n this.statuses.set(e.field, \"Validating\");\n this.opts.onStatusChanged(false);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n this.statuses.set(e.field, e.valid ? \"Valid\" : \"Invalid\");\n\n if (e.valid) {\n this.opts.onStatusChanged(this.areFieldsValid());\n } else {\n this.opts.onStatusChanged(false);\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.statuses.set(e.field, \"NotValidated\");\n this.opts.onStatusChanged(false);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n this.statuses.set(e.field, \"Ignored\");\n this.opts.onStatusChanged(this.areFieldsValid());\n }\n }]);\n\n return t;\n }(t$e);\n\n function s$4(s, a) {\n a.split(\" \").forEach(function (a) {\n if (s.classList) {\n s.classList.add(a);\n } else if (\" \".concat(s.className, \" \").indexOf(\" \".concat(a, \" \"))) {\n s.className += \" \".concat(a);\n }\n });\n }\n\n function a$4(s, a) {\n a.split(\" \").forEach(function (a) {\n s.classList ? s.classList.remove(a) : s.className = s.className.replace(a, \"\");\n });\n }\n\n function c(c, e) {\n var t = [];\n var f = [];\n Object.keys(e).forEach(function (s) {\n if (s) {\n e[s] ? t.push(s) : f.push(s);\n }\n });\n f.forEach(function (s) {\n return a$4(c, s);\n });\n t.forEach(function (a) {\n return s$4(c, a);\n });\n }\n\n function e$9(e, t) {\n var l = e.matches || e.webkitMatchesSelector || e[\"mozMatchesSelector\"] || e[\"msMatchesSelector\"];\n\n if (l) {\n return l.call(e, t);\n }\n\n var c = [].slice.call(e.parentElement.querySelectorAll(t));\n return c.indexOf(e) >= 0;\n }\n\n function t$h(t, l) {\n var c = t;\n\n while (c) {\n if (e$9(c, l)) {\n break;\n }\n\n c = c.parentElement;\n }\n\n return c;\n }\n\n var s$5 = /*#__PURE__*/function (_e) {\n _inherits(s, _e);\n\n var _super = _createSuper(s);\n\n function s(e) {\n var _this;\n\n _classCallCheck(this, s);\n\n _this = _super.call(this, e);\n _this.messages = new Map();\n _this.defaultContainer = document.createElement(\"div\");\n _this.opts = Object.assign({}, {\n container: function container(e, t) {\n return _this.defaultContainer;\n }\n }, e);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.validatorNotValidatedHandler = _this.onValidatorNotValidated.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(s, [{\n key: \"install\",\n value: function install() {\n this.core.getFormElement().appendChild(this.defaultContainer);\n this.core.on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler).on(\"core.validator.validated\", this.validatorValidatedHandler).on(\"core.validator.notvalidated\", this.validatorNotValidatedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.core.getFormElement().removeChild(this.defaultContainer);\n this.messages.forEach(function (e) {\n return e.parentNode.removeChild(e);\n });\n this.messages.clear();\n this.core.off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler).off(\"core.validator.validated\", this.validatorValidatedHandler).off(\"core.validator.notvalidated\", this.validatorNotValidatedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this2 = this;\n\n var t = e.elements;\n\n if (t) {\n t.forEach(function (e) {\n var t = _this2.messages.get(e);\n\n if (t) {\n t.parentNode.removeChild(t);\n\n _this2.messages[\"delete\"](e);\n }\n });\n this.prepareFieldContainer(e.field, t);\n }\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n var _this3 = this;\n\n if (!e.elements.length || !e.field) {\n return;\n }\n\n var t = e.elements[0].getAttribute(\"type\");\n var s = \"radio\" === t || \"checkbox\" === t ? [e.elements[0]] : e.elements;\n s.forEach(function (e) {\n if (_this3.messages.has(e)) {\n var _t = _this3.messages.get(e);\n\n _t.parentNode.removeChild(_t);\n\n _this3.messages[\"delete\"](e);\n }\n });\n }\n }, {\n key: \"prepareFieldContainer\",\n value: function prepareFieldContainer(e, t) {\n var _this4 = this;\n\n if (t.length) {\n var _s = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _s || \"checkbox\" === _s) {\n this.prepareElementContainer(e, t[0], t);\n } else {\n t.forEach(function (s) {\n return _this4.prepareElementContainer(e, s, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementContainer\",\n value: function prepareElementContainer(e, s, i) {\n var a;\n\n switch (true) {\n case \"string\" === typeof this.opts.container:\n var _t2 = this.opts.container;\n _t2 = \"#\" === _t2.charAt(0) ? \"[id=\\\"\".concat(_t2.substring(1), \"\\\"]\") : _t2;\n a = this.core.getFormElement().querySelector(_t2);\n break;\n\n default:\n a = this.opts.container(e, s);\n break;\n }\n\n var l = document.createElement(\"div\");\n a.appendChild(l);\n c(l, {\n \"fv-plugins-message-container\": true\n });\n this.core.emit(\"plugins.message.placed\", {\n element: s,\n elements: i,\n field: e,\n messageElement: l\n });\n this.messages.set(s, l);\n }\n }, {\n key: \"getMessage\",\n value: function getMessage(e) {\n return typeof e.message === \"string\" ? e.message : e.message[this.core.getLocale()];\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(e) {\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var a = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n\n if (this.messages.has(a)) {\n var _s2 = this.messages.get(a);\n\n var _i = _s2.querySelector(\"[data-field=\\\"\".concat(e.field, \"\\\"][data-validator=\\\"\").concat(e.validator, \"\\\"]\"));\n\n if (!_i && !e.result.valid) {\n var _i2 = document.createElement(\"div\");\n\n _i2.innerHTML = this.getMessage(e.result);\n\n _i2.setAttribute(\"data-field\", e.field);\n\n _i2.setAttribute(\"data-validator\", e.validator);\n\n if (this.opts.clazz) {\n c(_i2, _defineProperty({}, this.opts.clazz, true));\n }\n\n _s2.appendChild(_i2);\n\n this.core.emit(\"plugins.message.displayed\", {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: _i2,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (_i && !e.result.valid) {\n _i.innerHTML = this.getMessage(e.result);\n this.core.emit(\"plugins.message.displayed\", {\n element: e.element,\n field: e.field,\n message: e.result.message,\n messageElement: _i,\n meta: e.result.meta,\n validator: e.validator\n });\n } else if (_i && e.result.valid) {\n _s2.removeChild(_i);\n }\n }\n }\n }, {\n key: \"onValidatorNotValidated\",\n value: function onValidatorNotValidated(e) {\n var t = e.elements;\n var s = e.element.getAttribute(\"type\");\n var i = \"radio\" === s || \"checkbox\" === s ? t[0] : e.element;\n\n if (this.messages.has(i)) {\n var _t4 = this.messages.get(i);\n\n var _s3 = _t4.querySelector(\"[data-field=\\\"\".concat(e.field, \"\\\"][data-validator=\\\"\").concat(e.validator, \"\\\"]\"));\n\n if (_s3) {\n _t4.removeChild(_s3);\n }\n }\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n var t = e.elements;\n var s = e.element.getAttribute(\"type\");\n var i = \"radio\" === s || \"checkbox\" === s ? t[0] : e.element;\n\n if (this.messages.has(i)) {\n var _t5 = this.messages.get(i);\n\n var _s4 = [].slice.call(_t5.querySelectorAll(\"[data-field=\\\"\".concat(e.field, \"\\\"]\")));\n\n _s4.forEach(function (e) {\n _t5.removeChild(e);\n });\n }\n }\n }], [{\n key: \"getClosestContainer\",\n value: function getClosestContainer(e, t, s) {\n var i = e;\n\n while (i) {\n if (i === t) {\n break;\n }\n\n i = i.parentElement;\n\n if (s.test(i.className)) {\n break;\n }\n }\n\n return i;\n }\n }]);\n\n return s;\n }(t$e);\n\n var l$2 = /*#__PURE__*/function (_e) {\n _inherits(l, _e);\n\n var _super = _createSuper(l);\n\n function l(e) {\n var _this;\n\n _classCallCheck(this, l);\n\n _this = _super.call(this, e);\n _this.results = new Map();\n _this.containers = new Map();\n _this.opts = Object.assign({}, {\n defaultMessageContainer: true,\n eleInvalidClass: \"\",\n eleValidClass: \"\",\n rowClasses: \"\",\n rowValidatingClass: \"\"\n }, e);\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(l, [{\n key: \"install\",\n value: function install() {\n var _t,\n _this2 = this;\n\n c(this.core.getFormElement(), (_t = {}, _defineProperty(_t, this.opts.formClass, true), _defineProperty(_t, \"fv-plugins-framework\", true), _t));\n this.core.on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"plugins.icon.placed\", this.iconPlacedHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n\n if (this.opts.defaultMessageContainer) {\n this.core.registerPlugin(\"___frameworkMessage\", new s$5({\n clazz: this.opts.messageClass,\n container: function container(e, t) {\n var l = \"string\" === typeof _this2.opts.rowSelector ? _this2.opts.rowSelector : _this2.opts.rowSelector(e, t);\n var o = t$h(t, l);\n return s$5.getClosestContainer(t, o, _this2.opts.rowPattern);\n }\n }));\n }\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n var _t2;\n\n this.results.clear();\n this.containers.clear();\n c(this.core.getFormElement(), (_t2 = {}, _defineProperty(_t2, this.opts.formClass, false), _defineProperty(_t2, \"fv-plugins-framework\", false), _t2));\n this.core.off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"plugins.icon.placed\", this.iconPlacedHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"onIconPlaced\",\n value: function onIconPlaced(e) {}\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this3 = this;\n\n var s = e.elements;\n\n if (s) {\n s.forEach(function (e) {\n var s = _this3.containers.get(e);\n\n if (s) {\n var _t3;\n\n c(s, (_t3 = {}, _defineProperty(_t3, _this3.opts.rowInvalidClass, false), _defineProperty(_t3, _this3.opts.rowValidatingClass, false), _defineProperty(_t3, _this3.opts.rowValidClass, false), _defineProperty(_t3, \"fv-plugins-icon-container\", false), _t3));\n\n _this3.containers[\"delete\"](e);\n }\n });\n this.prepareFieldContainer(e.field, s);\n }\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n var _this4 = this;\n\n e.elements.forEach(function (e) {\n var s = _this4.containers.get(e);\n\n if (s) {\n var _t4;\n\n c(s, (_t4 = {}, _defineProperty(_t4, _this4.opts.rowInvalidClass, false), _defineProperty(_t4, _this4.opts.rowValidatingClass, false), _defineProperty(_t4, _this4.opts.rowValidClass, false), _t4));\n }\n });\n }\n }, {\n key: \"prepareFieldContainer\",\n value: function prepareFieldContainer(e, t) {\n var _this5 = this;\n\n if (t.length) {\n var _s = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _s || \"checkbox\" === _s) {\n this.prepareElementContainer(e, t[0]);\n } else {\n t.forEach(function (t) {\n return _this5.prepareElementContainer(e, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementContainer\",\n value: function prepareElementContainer(e, i) {\n var l = \"string\" === typeof this.opts.rowSelector ? this.opts.rowSelector : this.opts.rowSelector(e, i);\n var o = t$h(i, l);\n\n if (o !== i) {\n var _t5;\n\n c(o, (_t5 = {}, _defineProperty(_t5, this.opts.rowClasses, true), _defineProperty(_t5, \"fv-plugins-icon-container\", true), _t5));\n this.containers.set(i, o);\n }\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n var o = this.containers.get(l);\n\n if (o) {\n var _t6;\n\n c(o, (_t6 = {}, _defineProperty(_t6, this.opts.rowInvalidClass, false), _defineProperty(_t6, this.opts.rowValidatingClass, true), _defineProperty(_t6, this.opts.rowValidClass, false), _t6));\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.removeClasses(e.element, e.elements);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n this.removeClasses(e.element, e.elements);\n }\n }, {\n key: \"removeClasses\",\n value: function removeClasses(e, s) {\n var _t7;\n\n var i = e.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e;\n c(l, (_t7 = {}, _defineProperty(_t7, this.opts.eleValidClass, false), _defineProperty(_t7, this.opts.eleInvalidClass, false), _t7));\n var o = this.containers.get(l);\n\n if (o) {\n var _t8;\n\n c(o, (_t8 = {}, _defineProperty(_t8, this.opts.rowInvalidClass, false), _defineProperty(_t8, this.opts.rowValidatingClass, false), _defineProperty(_t8, this.opts.rowValidClass, false), _t8));\n }\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n var _t9,\n _this6 = this;\n\n var s = e.elements;\n var i = e.element.getAttribute(\"type\");\n var l = \"radio\" === i || \"checkbox\" === i ? s[0] : e.element;\n c(l, (_t9 = {}, _defineProperty(_t9, this.opts.eleValidClass, e.valid), _defineProperty(_t9, this.opts.eleInvalidClass, !e.valid), _t9));\n var o = this.containers.get(l);\n\n if (o) {\n if (!e.valid) {\n var _t10;\n\n this.results.set(l, false);\n c(o, (_t10 = {}, _defineProperty(_t10, this.opts.rowInvalidClass, true), _defineProperty(_t10, this.opts.rowValidatingClass, false), _defineProperty(_t10, this.opts.rowValidClass, false), _t10));\n } else {\n this.results[\"delete\"](l);\n var _e2 = true;\n this.containers.forEach(function (t, s) {\n if (t === o && _this6.results.get(s) === false) {\n _e2 = false;\n }\n });\n\n if (_e2) {\n var _t11;\n\n c(o, (_t11 = {}, _defineProperty(_t11, this.opts.rowInvalidClass, false), _defineProperty(_t11, this.opts.rowValidatingClass, false), _defineProperty(_t11, this.opts.rowValidClass, true), _t11));\n }\n }\n }\n }\n }]);\n\n return l;\n }(t$e);\n\n var i$1 = /*#__PURE__*/function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i(e) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, e);\n _this.icons = new Map();\n _this.opts = Object.assign({}, {\n invalid: \"fv-plugins-icon--invalid\",\n onPlaced: function onPlaced() {},\n onSet: function onSet() {},\n valid: \"fv-plugins-icon--valid\",\n validating: \"fv-plugins-icon--validating\"\n }, e);\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.element.validating\", this.elementValidatingHandler).on(\"core.element.validated\", this.elementValidatedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.ignored\", this.elementIgnoredHandler).on(\"core.field.added\", this.fieldAddedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.icons.forEach(function (e) {\n return e.parentNode.removeChild(e);\n });\n this.icons.clear();\n this.core.off(\"core.element.validating\", this.elementValidatingHandler).off(\"core.element.validated\", this.elementValidatedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.ignored\", this.elementIgnoredHandler).off(\"core.field.added\", this.fieldAddedHandler);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n var _this2 = this;\n\n var t = e.elements;\n\n if (t) {\n t.forEach(function (e) {\n var t = _this2.icons.get(e);\n\n if (t) {\n t.parentNode.removeChild(t);\n\n _this2.icons[\"delete\"](e);\n }\n });\n this.prepareFieldIcon(e.field, t);\n }\n }\n }, {\n key: \"prepareFieldIcon\",\n value: function prepareFieldIcon(e, t) {\n var _this3 = this;\n\n if (t.length) {\n var _i = t[0].getAttribute(\"type\");\n\n if (\"radio\" === _i || \"checkbox\" === _i) {\n this.prepareElementIcon(e, t[0]);\n } else {\n t.forEach(function (t) {\n return _this3.prepareElementIcon(e, t);\n });\n }\n }\n }\n }, {\n key: \"prepareElementIcon\",\n value: function prepareElementIcon(e, i) {\n var n = document.createElement(\"i\");\n n.setAttribute(\"data-field\", e);\n i.parentNode.insertBefore(n, i.nextSibling);\n c(n, {\n \"fv-plugins-icon\": true\n });\n var l = {\n classes: {\n invalid: this.opts.invalid,\n valid: this.opts.valid,\n validating: this.opts.validating\n },\n element: i,\n field: e,\n iconElement: n\n };\n this.core.emit(\"plugins.icon.placed\", l);\n this.opts.onPlaced(l);\n this.icons.set(i, n);\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n var _this$setClasses;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses = {}, _defineProperty(_this$setClasses, this.opts.invalid, false), _defineProperty(_this$setClasses, this.opts.valid, false), _defineProperty(_this$setClasses, this.opts.validating, true), _this$setClasses));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"Validating\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(e) {\n var _this$setClasses2;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses2 = {}, _defineProperty(_this$setClasses2, this.opts.invalid, !e.valid), _defineProperty(_this$setClasses2, this.opts.valid, e.valid), _defineProperty(_this$setClasses2, this.opts.validating, false), _this$setClasses2));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: e.valid ? \"Valid\" : \"Invalid\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n var _this$setClasses3;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses3 = {}, _defineProperty(_this$setClasses3, this.opts.invalid, false), _defineProperty(_this$setClasses3, this.opts.valid, false), _defineProperty(_this$setClasses3, this.opts.validating, false), _this$setClasses3));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"NotValidated\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"onElementIgnored\",\n value: function onElementIgnored(e) {\n var _this$setClasses4;\n\n var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses4 = {}, _defineProperty(_this$setClasses4, this.opts.invalid, false), _defineProperty(_this$setClasses4, this.opts.valid, false), _defineProperty(_this$setClasses4, this.opts.validating, false), _this$setClasses4));\n var i = {\n element: e.element,\n field: e.field,\n iconElement: t,\n status: \"Ignored\"\n };\n this.core.emit(\"plugins.icon.set\", i);\n this.opts.onSet(i);\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(e, i, n, l) {\n var s = i.getAttribute(\"type\");\n var d = \"radio\" === s || \"checkbox\" === s ? n[0] : i;\n\n if (this.icons.has(d)) {\n var _e2 = this.icons.get(d);\n\n c(_e2, l);\n return _e2;\n } else {\n return null;\n }\n }\n }]);\n\n return i;\n }(t$e);\n\n var i$2 = /*#__PURE__*/function (_e) {\n _inherits(i, _e);\n\n var _super = _createSuper(i);\n\n function i(e) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, e);\n _this.invalidFields = new Map();\n _this.opts = Object.assign({}, {\n enabled: true\n }, e);\n _this.validatorHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.shouldValidateFilter = _this.shouldValidate.bind(_assertThisInitialized(_this));\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));\n _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.validator.validated\", this.validatorHandler).on(\"core.field.added\", this.fieldAddedHandler).on(\"core.element.notvalidated\", this.elementNotValidatedHandler).on(\"core.element.validating\", this.elementValidatingHandler).registerFilter(\"field-should-validate\", this.shouldValidateFilter);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.invalidFields.clear();\n this.core.off(\"core.validator.validated\", this.validatorHandler).off(\"core.field.added\", this.fieldAddedHandler).off(\"core.element.notvalidated\", this.elementNotValidatedHandler).off(\"core.element.validating\", this.elementValidatingHandler).deregisterFilter(\"field-should-validate\", this.shouldValidateFilter);\n }\n }, {\n key: \"shouldValidate\",\n value: function shouldValidate(e, i, t, l) {\n var d = (this.opts.enabled === true || this.opts.enabled[e] === true) && this.invalidFields.has(i) && !!this.invalidFields.get(i).length && this.invalidFields.get(i).indexOf(l) === -1;\n return !d;\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(e) {\n var i = this.invalidFields.has(e.element) ? this.invalidFields.get(e.element) : [];\n var t = i.indexOf(e.validator);\n\n if (e.result.valid && t >= 0) {\n i.splice(t, 1);\n } else if (!e.result.valid && t === -1) {\n i.push(e.validator);\n }\n\n this.invalidFields.set(e.element, i);\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n if (e.elements) {\n this.clearInvalidFields(e.elements);\n }\n }\n }, {\n key: \"onElementNotValidated\",\n value: function onElementNotValidated(e) {\n this.clearInvalidFields(e.elements);\n }\n }, {\n key: \"onElementValidating\",\n value: function onElementValidating(e) {\n this.clearInvalidFields(e.elements);\n }\n }, {\n key: \"clearInvalidFields\",\n value: function clearInvalidFields(e) {\n var _this2 = this;\n\n e.forEach(function (e) {\n return _this2.invalidFields[\"delete\"](e);\n });\n }\n }]);\n\n return i;\n }(t$e);\n\n var e$a = /*#__PURE__*/function (_t) {\n _inherits(e, _t);\n\n var _super = _createSuper(e);\n\n function e(t) {\n var _this;\n\n _classCallCheck(this, e);\n\n _this = _super.call(this, t);\n _this.isFormValid = false;\n _this.opts = Object.assign({}, {\n aspNetButton: false,\n buttons: function buttons(t) {\n return [].slice.call(t.querySelectorAll('[type=\"submit\"]:not([formnovalidate])'));\n }\n }, t);\n _this.submitHandler = _this.handleSubmitEvent.bind(_assertThisInitialized(_this));\n _this.buttonClickHandler = _this.handleClickEvent.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(e, [{\n key: \"install\",\n value: function install() {\n var _this2 = this;\n\n if (!(this.core.getFormElement() instanceof HTMLFormElement)) {\n return;\n }\n\n var t = this.core.getFormElement();\n this.submitButtons = this.opts.buttons(t);\n t.setAttribute(\"novalidate\", \"novalidate\");\n t.addEventListener(\"submit\", this.submitHandler);\n this.hiddenClickedEle = document.createElement(\"input\");\n this.hiddenClickedEle.setAttribute(\"type\", \"hidden\");\n t.appendChild(this.hiddenClickedEle);\n this.submitButtons.forEach(function (t) {\n t.addEventListener(\"click\", _this2.buttonClickHandler);\n });\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n var _this3 = this;\n\n var t = this.core.getFormElement();\n\n if (t instanceof HTMLFormElement) {\n t.removeEventListener(\"submit\", this.submitHandler);\n }\n\n this.submitButtons.forEach(function (t) {\n t.removeEventListener(\"click\", _this3.buttonClickHandler);\n });\n this.hiddenClickedEle.parentElement.removeChild(this.hiddenClickedEle);\n }\n }, {\n key: \"handleSubmitEvent\",\n value: function handleSubmitEvent(t) {\n this.validateForm(t);\n }\n }, {\n key: \"handleClickEvent\",\n value: function handleClickEvent(t) {\n var e = t.currentTarget;\n\n if (e instanceof HTMLElement) {\n if (this.opts.aspNetButton && this.isFormValid === true) ; else {\n var _e = this.core.getFormElement();\n\n _e.removeEventListener(\"submit\", this.submitHandler);\n\n this.clickedButton = t.target;\n var i = this.clickedButton.getAttribute(\"name\");\n var s = this.clickedButton.getAttribute(\"value\");\n\n if (i && s) {\n this.hiddenClickedEle.setAttribute(\"name\", i);\n this.hiddenClickedEle.setAttribute(\"value\", s);\n }\n\n this.validateForm(t);\n }\n }\n }\n }, {\n key: \"validateForm\",\n value: function validateForm(t) {\n var _this4 = this;\n\n t.preventDefault();\n this.core.validate().then(function (t) {\n if (t === \"Valid\" && _this4.opts.aspNetButton && !_this4.isFormValid && _this4.clickedButton) {\n _this4.isFormValid = true;\n\n _this4.clickedButton.removeEventListener(\"click\", _this4.buttonClickHandler);\n\n _this4.clickedButton.click();\n }\n });\n }\n }]);\n\n return e;\n }(t$e);\n\n var i$3 = /*#__PURE__*/function (_t) {\n _inherits(i, _t);\n\n var _super = _createSuper(i);\n\n function i(t) {\n var _this;\n\n _classCallCheck(this, i);\n\n _this = _super.call(this, t);\n _this.messages = new Map();\n _this.opts = Object.assign({}, {\n placement: \"top\",\n trigger: \"click\"\n }, t);\n _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this));\n _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this));\n _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this));\n _this.documentClickHandler = _this.onDocumentClicked.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(i, [{\n key: \"install\",\n value: function install() {\n this.tip = document.createElement(\"div\");\n c(this.tip, _defineProperty({\n \"fv-plugins-tooltip\": true\n }, \"fv-plugins-tooltip--\".concat(this.opts.placement), true));\n document.body.appendChild(this.tip);\n this.core.on(\"plugins.icon.placed\", this.iconPlacedHandler).on(\"core.validator.validated\", this.validatorValidatedHandler).on(\"core.element.validated\", this.elementValidatedHandler);\n\n if (\"click\" === this.opts.trigger) {\n document.addEventListener(\"click\", this.documentClickHandler);\n }\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.messages.clear();\n document.body.removeChild(this.tip);\n this.core.off(\"plugins.icon.placed\", this.iconPlacedHandler).off(\"core.validator.validated\", this.validatorValidatedHandler).off(\"core.element.validated\", this.elementValidatedHandler);\n\n if (\"click\" === this.opts.trigger) {\n document.removeEventListener(\"click\", this.documentClickHandler);\n }\n }\n }, {\n key: \"onIconPlaced\",\n value: function onIconPlaced(t) {\n var _this2 = this;\n\n c(t.iconElement, {\n \"fv-plugins-tooltip-icon\": true\n });\n\n switch (this.opts.trigger) {\n case \"hover\":\n t.iconElement.addEventListener(\"mouseenter\", function (e) {\n return _this2.show(t.element, e);\n });\n t.iconElement.addEventListener(\"mouseleave\", function (t) {\n return _this2.hide();\n });\n break;\n\n case \"click\":\n default:\n t.iconElement.addEventListener(\"click\", function (e) {\n return _this2.show(t.element, e);\n });\n break;\n }\n }\n }, {\n key: \"onValidatorValidated\",\n value: function onValidatorValidated(t) {\n if (!t.result.valid) {\n var _e2 = t.elements;\n\n var _i = t.element.getAttribute(\"type\");\n\n var s = \"radio\" === _i || \"checkbox\" === _i ? _e2[0] : t.element;\n var l = typeof t.result.message === \"string\" ? t.result.message : t.result.message[this.core.getLocale()];\n this.messages.set(s, l);\n }\n }\n }, {\n key: \"onElementValidated\",\n value: function onElementValidated(t) {\n if (t.valid) {\n var _e3 = t.elements;\n\n var _i2 = t.element.getAttribute(\"type\");\n\n var s = \"radio\" === _i2 || \"checkbox\" === _i2 ? _e3[0] : t.element;\n this.messages[\"delete\"](s);\n }\n }\n }, {\n key: \"onDocumentClicked\",\n value: function onDocumentClicked(t) {\n this.hide();\n }\n }, {\n key: \"show\",\n value: function show(t, i) {\n i.preventDefault();\n i.stopPropagation();\n\n if (!this.messages.has(t)) {\n return;\n }\n\n c(this.tip, {\n \"fv-plugins-tooltip--hide\": false\n });\n this.tip.innerHTML = \"\".concat(this.messages.get(t), \"\");\n var s = i.target;\n var l = s.getBoundingClientRect();\n var o = 0;\n var n = 0;\n\n switch (this.opts.placement) {\n case \"top\":\n default:\n o = l.top - l.height;\n n = l.left + l.width / 2 - this.tip.clientWidth / 2;\n break;\n\n case \"top-left\":\n o = l.top - l.height;\n n = l.left;\n break;\n\n case \"top-right\":\n o = l.top - l.height;\n n = l.left + l.width - this.tip.clientWidth;\n break;\n\n case \"bottom\":\n o = l.top + l.height;\n n = l.left + l.width / 2 - this.tip.clientWidth / 2;\n break;\n\n case \"bottom-left\":\n o = l.top + l.height;\n n = l.left;\n break;\n\n case \"bottom-right\":\n o = l.top + l.height;\n n = l.left + l.width - this.tip.clientWidth;\n break;\n\n case \"left\":\n o = l.top + l.height / 2 - this.tip.clientHeight / 2;\n n = l.left - this.tip.clientWidth;\n break;\n\n case \"right\":\n o = l.top + l.height / 2 - this.tip.clientHeight / 2;\n n = l.left + l.width;\n break;\n }\n\n var a = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n var d = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n o = o + a;\n n = n + d;\n this.tip.setAttribute(\"style\", \"top: \".concat(o, \"px; left: \").concat(n, \"px\"));\n }\n }, {\n key: \"hide\",\n value: function hide() {\n c(this.tip, {\n \"fv-plugins-tooltip--hide\": true\n });\n }\n }]);\n\n return i;\n }(t$e);\n\n var t$i = /*#__PURE__*/function (_e) {\n _inherits(t, _e);\n\n var _super = _createSuper(t);\n\n function t(e) {\n var _this;\n\n _classCallCheck(this, t);\n\n _this = _super.call(this, e);\n _this.handlers = [];\n _this.timers = new Map();\n\n _this.ieVersion = function () {\n var e = 3;\n var t = document.createElement(\"div\");\n var i = t[\"all\"] || [];\n\n while (t.innerHTML = \"\\x3c!--[if gt IE \" + ++e + \"]>
4 ? e : document[\"documentMode\"];\n }();\n\n var _t = document.createElement(\"div\");\n\n _this.defaultEvent = _this.ieVersion === 9 || !(\"oninput\" in _t) ? \"keyup\" : \"input\";\n _this.opts = Object.assign({}, {\n delay: 0,\n event: _this.defaultEvent,\n threshold: 0\n }, e);\n _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this));\n _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(t, [{\n key: \"install\",\n value: function install() {\n this.core.on(\"core.field.added\", this.fieldAddedHandler).on(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"uninstall\",\n value: function uninstall() {\n this.handlers.forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n this.handlers = [];\n this.timers.forEach(function (e) {\n return window.clearTimeout(e);\n });\n this.timers.clear();\n this.core.off(\"core.field.added\", this.fieldAddedHandler).off(\"core.field.removed\", this.fieldRemovedHandler);\n }\n }, {\n key: \"prepareHandler\",\n value: function prepareHandler(e, t) {\n var _this2 = this;\n\n t.forEach(function (t) {\n var i = [];\n\n switch (true) {\n case !!_this2.opts.event && _this2.opts.event[e] === false:\n i = [];\n break;\n\n case !!_this2.opts.event && !!_this2.opts.event[e]:\n i = _this2.opts.event[e].split(\" \");\n break;\n\n case \"string\" === typeof _this2.opts.event && _this2.opts.event !== _this2.defaultEvent:\n i = _this2.opts.event.split(\" \");\n break;\n\n default:\n var s = t.getAttribute(\"type\");\n var n = t.tagName.toLowerCase();\n var d = \"radio\" === s || \"checkbox\" === s || \"file\" === s || \"select\" === n ? \"change\" : _this2.ieVersion >= 10 && t.getAttribute(\"placeholder\") ? \"keyup\" : _this2.defaultEvent;\n i = [d];\n break;\n }\n\n i.forEach(function (i) {\n var s = function s(i) {\n return _this2.handleEvent(i, e, t);\n };\n\n _this2.handlers.push({\n element: t,\n event: i,\n field: e,\n handler: s\n });\n\n t.addEventListener(i, s);\n });\n });\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, t, i) {\n var _this3 = this;\n\n if (this.exceedThreshold(t, i) && this.core.executeFilter(\"plugins-trigger-should-validate\", true, [t, i])) {\n var s = function s() {\n return _this3.core.validateElement(t, i).then(function (s) {\n _this3.core.emit(\"plugins.trigger.executed\", {\n element: i,\n event: e,\n field: t\n });\n });\n };\n\n var n = this.opts.delay[t] || this.opts.delay;\n\n if (n === 0) {\n s();\n } else {\n var _e2 = this.timers.get(i);\n\n if (_e2) {\n window.clearTimeout(_e2);\n }\n\n this.timers.set(i, window.setTimeout(s, n * 1e3));\n }\n }\n }\n }, {\n key: \"onFieldAdded\",\n value: function onFieldAdded(e) {\n this.handlers.filter(function (t) {\n return t.field === e.field;\n }).forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n this.prepareHandler(e.field, e.elements);\n }\n }, {\n key: \"onFieldRemoved\",\n value: function onFieldRemoved(e) {\n this.handlers.filter(function (t) {\n return t.field === e.field && e.elements.indexOf(t.element) >= 0;\n }).forEach(function (e) {\n return e.element.removeEventListener(e.event, e.handler);\n });\n }\n }, {\n key: \"exceedThreshold\",\n value: function exceedThreshold(e, t) {\n var i = this.opts.threshold[e] === 0 || this.opts.threshold === 0 ? false : this.opts.threshold[e] || this.opts.threshold;\n\n if (!i) {\n return true;\n }\n\n var s = t.getAttribute(\"type\");\n\n if ([\"button\", \"checkbox\", \"file\", \"hidden\", \"image\", \"radio\", \"reset\", \"submit\"].indexOf(s) !== -1) {\n return true;\n }\n\n var n = this.core.getElementValue(e, t);\n return n.length >= i;\n }\n }]);\n\n return t;\n }(t$e);\n\n var index$2 = {\n Alias: e$6,\n Aria: i,\n Declarative: t$f,\n DefaultSubmit: o$3,\n Dependency: e$7,\n Excluded: e$8,\n FieldStatus: t$g,\n Framework: l$2,\n Icon: i$1,\n Message: s$5,\n Sequence: i$2,\n SubmitButton: e$a,\n Tooltip: i$3,\n Trigger: t$i\n };\n\n function s$6(s, t) {\n return s.classList ? s.classList.contains(t) : new RegExp(\"(^| )\".concat(t, \"( |$)\"), \"gi\").test(s.className);\n }\n\n var index$3 = {\n call: t$6,\n classSet: c,\n closest: t$h,\n fetch: e$4,\n format: r,\n hasClass: s$6,\n isValidDate: t$9\n };\n\n var p = {};\n\n exports.Plugin = t$e;\n exports.algorithms = index;\n exports.filters = index$1;\n exports.formValidation = r$2;\n exports.locales = p;\n exports.plugins = index$2;\n exports.utils = index$3;\n exports.validators = s$3;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (global.FormValidation = global.FormValidation || {}, global.FormValidation.locales = global.FormValidation.locales || {}, global.FormValidation.locales.en_US = factory()));\n}(this, (function () { 'use strict';\n\n /**\n * English language package\n * Translated by @nghuuphuoc\n */\n\n var en_US = {\n base64: {\n default: 'Please enter a valid base 64 encoded',\n },\n between: {\n default: 'Please enter a value between %s and %s',\n notInclusive: 'Please enter a value between %s and %s strictly',\n },\n bic: {\n default: 'Please enter a valid BIC number',\n },\n callback: {\n default: 'Please enter a valid value',\n },\n choice: {\n between: 'Please choose %s - %s options',\n default: 'Please enter a valid value',\n less: 'Please choose %s options at minimum',\n more: 'Please choose %s options at maximum',\n },\n color: {\n default: 'Please enter a valid color',\n },\n creditCard: {\n default: 'Please enter a valid credit card number',\n },\n cusip: {\n default: 'Please enter a valid CUSIP number',\n },\n date: {\n default: 'Please enter a valid date',\n max: 'Please enter a date before %s',\n min: 'Please enter a date after %s',\n range: 'Please enter a date in the range %s - %s',\n },\n different: {\n default: 'Please enter a different value',\n },\n digits: {\n default: 'Please enter only digits',\n },\n ean: {\n default: 'Please enter a valid EAN number',\n },\n ein: {\n default: 'Please enter a valid EIN number',\n },\n emailAddress: {\n default: 'Please enter a valid email address',\n },\n file: {\n default: 'Please choose a valid file',\n },\n greaterThan: {\n default: 'Please enter a value greater than or equal to %s',\n notInclusive: 'Please enter a value greater than %s',\n },\n grid: {\n default: 'Please enter a valid GRId number',\n },\n hex: {\n default: 'Please enter a valid hexadecimal number',\n },\n iban: {\n countries: {\n AD: 'Andorra',\n AE: 'United Arab Emirates',\n AL: 'Albania',\n AO: 'Angola',\n AT: 'Austria',\n AZ: 'Azerbaijan',\n BA: 'Bosnia and Herzegovina',\n BE: 'Belgium',\n BF: 'Burkina Faso',\n BG: 'Bulgaria',\n BH: 'Bahrain',\n BI: 'Burundi',\n BJ: 'Benin',\n BR: 'Brazil',\n CH: 'Switzerland',\n CI: 'Ivory Coast',\n CM: 'Cameroon',\n CR: 'Costa Rica',\n CV: 'Cape Verde',\n CY: 'Cyprus',\n CZ: 'Czech Republic',\n DE: 'Germany',\n DK: 'Denmark',\n DO: 'Dominican Republic',\n DZ: 'Algeria',\n EE: 'Estonia',\n ES: 'Spain',\n FI: 'Finland',\n FO: 'Faroe Islands',\n FR: 'France',\n GB: 'United Kingdom',\n GE: 'Georgia',\n GI: 'Gibraltar',\n GL: 'Greenland',\n GR: 'Greece',\n GT: 'Guatemala',\n HR: 'Croatia',\n HU: 'Hungary',\n IE: 'Ireland',\n IL: 'Israel',\n IR: 'Iran',\n IS: 'Iceland',\n IT: 'Italy',\n JO: 'Jordan',\n KW: 'Kuwait',\n KZ: 'Kazakhstan',\n LB: 'Lebanon',\n LI: 'Liechtenstein',\n LT: 'Lithuania',\n LU: 'Luxembourg',\n LV: 'Latvia',\n MC: 'Monaco',\n MD: 'Moldova',\n ME: 'Montenegro',\n MG: 'Madagascar',\n MK: 'Macedonia',\n ML: 'Mali',\n MR: 'Mauritania',\n MT: 'Malta',\n MU: 'Mauritius',\n MZ: 'Mozambique',\n NL: 'Netherlands',\n NO: 'Norway',\n PK: 'Pakistan',\n PL: 'Poland',\n PS: 'Palestine',\n PT: 'Portugal',\n QA: 'Qatar',\n RO: 'Romania',\n RS: 'Serbia',\n SA: 'Saudi Arabia',\n SE: 'Sweden',\n SI: 'Slovenia',\n SK: 'Slovakia',\n SM: 'San Marino',\n SN: 'Senegal',\n TL: 'East Timor',\n TN: 'Tunisia',\n TR: 'Turkey',\n VG: 'Virgin Islands, British',\n XK: 'Republic of Kosovo',\n },\n country: 'Please enter a valid IBAN number in %s',\n default: 'Please enter a valid IBAN number',\n },\n id: {\n countries: {\n BA: 'Bosnia and Herzegovina',\n BG: 'Bulgaria',\n BR: 'Brazil',\n CH: 'Switzerland',\n CL: 'Chile',\n CN: 'China',\n CZ: 'Czech Republic',\n DK: 'Denmark',\n EE: 'Estonia',\n ES: 'Spain',\n FI: 'Finland',\n HR: 'Croatia',\n IE: 'Ireland',\n IS: 'Iceland',\n LT: 'Lithuania',\n LV: 'Latvia',\n ME: 'Montenegro',\n MK: 'Macedonia',\n NL: 'Netherlands',\n PL: 'Poland',\n RO: 'Romania',\n RS: 'Serbia',\n SE: 'Sweden',\n SI: 'Slovenia',\n SK: 'Slovakia',\n SM: 'San Marino',\n TH: 'Thailand',\n TR: 'Turkey',\n ZA: 'South Africa',\n },\n country: 'Please enter a valid identification number in %s',\n default: 'Please enter a valid identification number',\n },\n identical: {\n default: 'Please enter the same value',\n },\n imei: {\n default: 'Please enter a valid IMEI number',\n },\n imo: {\n default: 'Please enter a valid IMO number',\n },\n integer: {\n default: 'Please enter a valid number',\n },\n ip: {\n default: 'Please enter a valid IP address',\n ipv4: 'Please enter a valid IPv4 address',\n ipv6: 'Please enter a valid IPv6 address',\n },\n isbn: {\n default: 'Please enter a valid ISBN number',\n },\n isin: {\n default: 'Please enter a valid ISIN number',\n },\n ismn: {\n default: 'Please enter a valid ISMN number',\n },\n issn: {\n default: 'Please enter a valid ISSN number',\n },\n lessThan: {\n default: 'Please enter a value less than or equal to %s',\n notInclusive: 'Please enter a value less than %s',\n },\n mac: {\n default: 'Please enter a valid MAC address',\n },\n meid: {\n default: 'Please enter a valid MEID number',\n },\n notEmpty: {\n default: 'Please enter a value',\n },\n numeric: {\n default: 'Please enter a valid float number',\n },\n phone: {\n countries: {\n AE: 'United Arab Emirates',\n BG: 'Bulgaria',\n BR: 'Brazil',\n CN: 'China',\n CZ: 'Czech Republic',\n DE: 'Germany',\n DK: 'Denmark',\n ES: 'Spain',\n FR: 'France',\n GB: 'United Kingdom',\n IN: 'India',\n MA: 'Morocco',\n NL: 'Netherlands',\n PK: 'Pakistan',\n RO: 'Romania',\n RU: 'Russia',\n SK: 'Slovakia',\n TH: 'Thailand',\n US: 'USA',\n VE: 'Venezuela',\n },\n country: 'Please enter a valid phone number in %s',\n default: 'Please enter a valid phone number',\n },\n promise: {\n default: 'Please enter a valid value',\n },\n regexp: {\n default: 'Please enter a value matching the pattern',\n },\n remote: {\n default: 'Please enter a valid value',\n },\n rtn: {\n default: 'Please enter a valid RTN number',\n },\n sedol: {\n default: 'Please enter a valid SEDOL number',\n },\n siren: {\n default: 'Please enter a valid SIREN number',\n },\n siret: {\n default: 'Please enter a valid SIRET number',\n },\n step: {\n default: 'Please enter a valid step of %s',\n },\n stringCase: {\n default: 'Please enter only lowercase characters',\n upper: 'Please enter only uppercase characters',\n },\n stringLength: {\n between: 'Please enter value between %s and %s characters long',\n default: 'Please enter a value with valid length',\n less: 'Please enter less than %s characters',\n more: 'Please enter more than %s characters',\n },\n uri: {\n default: 'Please enter a valid URI',\n },\n uuid: {\n default: 'Please enter a valid UUID number',\n version: 'Please enter a valid UUID version %s number',\n },\n vat: {\n countries: {\n AT: 'Austria',\n BE: 'Belgium',\n BG: 'Bulgaria',\n BR: 'Brazil',\n CH: 'Switzerland',\n CY: 'Cyprus',\n CZ: 'Czech Republic',\n DE: 'Germany',\n DK: 'Denmark',\n EE: 'Estonia',\n EL: 'Greece',\n ES: 'Spain',\n FI: 'Finland',\n FR: 'France',\n GB: 'United Kingdom',\n GR: 'Greece',\n HR: 'Croatia',\n HU: 'Hungary',\n IE: 'Ireland',\n IS: 'Iceland',\n IT: 'Italy',\n LT: 'Lithuania',\n LU: 'Luxembourg',\n LV: 'Latvia',\n MT: 'Malta',\n NL: 'Netherlands',\n NO: 'Norway',\n PL: 'Poland',\n PT: 'Portugal',\n RO: 'Romania',\n RS: 'Serbia',\n RU: 'Russia',\n SE: 'Sweden',\n SI: 'Slovenia',\n SK: 'Slovakia',\n VE: 'Venezuela',\n ZA: 'South Africa',\n },\n country: 'Please enter a valid VAT number in %s',\n default: 'Please enter a valid VAT number',\n },\n vin: {\n default: 'Please enter a valid VIN number',\n },\n zipCode: {\n countries: {\n AT: 'Austria',\n BG: 'Bulgaria',\n BR: 'Brazil',\n CA: 'Canada',\n CH: 'Switzerland',\n CZ: 'Czech Republic',\n DE: 'Germany',\n DK: 'Denmark',\n ES: 'Spain',\n FR: 'France',\n GB: 'United Kingdom',\n IE: 'Ireland',\n IN: 'India',\n IT: 'Italy',\n MA: 'Morocco',\n NL: 'Netherlands',\n PL: 'Poland',\n PT: 'Portugal',\n RO: 'Romania',\n RU: 'Russia',\n SE: 'Sweden',\n SG: 'Singapore',\n SK: 'Slovakia',\n US: 'USA',\n },\n country: 'Please enter a valid postal code in %s',\n default: 'Please enter a valid postal code',\n },\n };\n\n return en_US;\n\n})));\n","/**\n * FormValidation (https://formvalidation.io), v1.7.0 (71bbaaa)\n * The best validation library for JavaScript\n * (c) 2013 - 2020 Nguyen Huu Phuoc \n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (global.FormValidation = global.FormValidation || {}, global.FormValidation.plugins = global.FormValidation.plugins || {}, global.FormValidation.plugins.Bootstrap = factory()));\n}(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n 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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n var e = FormValidation.utils.classSet;\n\n var t = FormValidation.utils.hasClass;\n\n var n = FormValidation.plugins.Framework;\n\n var s = /*#__PURE__*/function (_n) {\n _inherits(s, _n);\n\n var _super = _createSuper(s);\n\n function s(e) {\n _classCallCheck(this, s);\n\n return _super.call(this, Object.assign({}, {\n eleInvalidClass: \"is-invalid\",\n eleValidClass: \"is-valid\",\n formClass: \"fv-plugins-bootstrap\",\n messageClass: \"fv-help-block\",\n rowInvalidClass: \"has-danger\",\n rowPattern: /^(.*)(col|offset)(-(sm|md|lg|xl))*-[0-9]+(.*)$/,\n rowSelector: \".form-group\",\n rowValidClass: \"has-success\"\n }, e));\n }\n\n _createClass(s, [{\n key: \"onIconPlaced\",\n value: function onIconPlaced(n) {\n var s = n.element.parentElement;\n\n if (t(s, \"input-group\")) {\n s.parentElement.insertBefore(n.iconElement, s.nextSibling);\n }\n\n var l = n.element.getAttribute(\"type\");\n\n if (\"checkbox\" === l || \"radio\" === l) {\n var _l = s.parentElement;\n\n if (t(s, \"form-check\")) {\n e(n.iconElement, {\n \"fv-plugins-icon-check\": true\n });\n s.parentElement.insertBefore(n.iconElement, s.nextSibling);\n } else if (t(s.parentElement, \"form-check\")) {\n e(n.iconElement, {\n \"fv-plugins-icon-check\": true\n });\n\n _l.parentElement.insertBefore(n.iconElement, _l.nextSibling);\n }\n }\n }\n }]);\n\n return s;\n }(n);\n\n return s;\n\n})));\n","// document.addEventListener(\"turbolinks:load\", () => {\n// if ($('#mapid').length>0) {\n// var mymap = L.map('mapid').setView([51.505, -0.09], 13);\n//\n// L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiMXc0biIsImEiOiJja2JsZTIxNHkwMWJ2MnhtaWM2NjNzMWY5In0.ZNG_8pJaqUl8QRljg5C1hQ', {\n// \t\tmaxZoom: 18,\n// \t\tattribution: 'Map data © OpenStreetMap contributors, ' +\n// \t\t\t'CC-BY-SA, ' +\n// \t\t\t'Imagery © Mapbox',\n// \t\tid: 'mapbox/streets-v11',\n// \t\ttileSize: 512,\n// \t\tzoomOffset: -1\n// \t}).addTo(mymap);\n// }\n//\n// })\ndocument.addEventListener(\"turbolinks:load\", () => { // iwan\n // window.disposeEventMap = () => {\n // window.eventMap.remove();\n // window.eventMap = null;\n // }\n\n if ($('#map-to-show').length>0) {\n window.eventMap = L.map('map-to-show');\n var lat = $('#map-to-show').data('latitude')\n var lng = $('#map-to-show').data('longitude')\n\n window.eventMarker = null\n if (lat && lng) {\n eventMap.setView([lat || 45.472584, lng || 9.195423], 6);\n eventMarker = L.marker([lat, lng]).addTo(eventMap)\n } else {\n eventMap.setView([45.472584, 9.195423], 1);\n }\n\n const eventTileLayer = L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiMXc0biIsImEiOiJja2hlc3NhaXcwYjN6MnJsdTRpYWcyczN2In0.LlYl7KJBquGkTOihGZAttw', {\n maxZoom: 18,\n attribution: 'Map data © OpenStreetMap contributors, ' +\n 'CC-BY-SA, ' +\n 'Imagery © Mapbox',\n id: 'mapbox/streets-v11',\n tileSize: 512,\n zoomOffset: -1\n });\n eventTileLayer.addTo(eventMap);\n }\n\n\n\n\n // window.showEventMap = () => {\n if ($('#map-to-edit').length>0) {\n // console.log('---pass---');\n window.eventMap = L.map('map-to-edit');\n var lat = $('#event_latitude').val()\n var lng = $('#event_longitude').val()\n eventMap.setView([lat || 45.472584, lng || 9.195423], 13);\n $('#lat-value').text(lat)\n $('#lon-value').text(lng)\n\n window.eventMarker = null\n // let eventMarker = null\n if (lat && lng) {\n eventMarker = L.marker([lat, lng]).addTo(eventMap)\n }\n\n const eventTileLayer = L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiMXc0biIsImEiOiJja2hlc3NhaXcwYjN6MnJsdTRpYWcyczN2In0.LlYl7KJBquGkTOihGZAttw', {\n maxZoom: 18,\n attribution: 'Map data © OpenStreetMap contributors, ' +\n 'CC-BY-SA, ' +\n 'Imagery © Mapbox',\n id: 'mapbox/streets-v11',\n tileSize: 512,\n zoomOffset: -1\n });\n eventTileLayer.addTo(eventMap);\n\n\n function onMapClick(e) {\n console.log(e);\n if (eventMarker!=null) {\n eventMarker.remove();\n }\n var ll = e.latlng;\n eventMarker = L.marker([ll.lat, ll.lng]).addTo(eventMap);\n\n $('#event_latitude').val(ll.lat)\n $('#event_longitude').val(ll.lng)\n $('#lat-value').text(ll.lat)\n $('#lon-value').text(ll.lng)\n }\n\n eventMap.on('click', onMapClick);\n\n // search\n var searchControl = new L.esri.Controls.Geosearch().addTo(eventMap);\n var results = new L.LayerGroup().addTo(eventMap);\n searchControl.on('results', function(data){\n results.clearLayers();\n for (var i = data.results.length - 1; i >= 0; i--) {\n if (eventMarker!=null) {\n eventMarker.remove();\n }\n var ll = data.results[i].latlng;\n eventMarker = L.marker(ll);\n results.addLayer(eventMarker);\n $('#event_latitude').val(ll.lat)\n $('#event_longitude').val(ll.lng)\n\n }\n });\n }\n // }\n\n\n $('#clear-position-btn').on('click', function() {\n if (eventMarker!=null) {\n eventMarker.remove();\n $('#event_latitude').val('')\n $('#event_longitude').val('')\n $('#lon-value').text('')\n $('#lat-value').text('')\n }\n })\n\n})\n","window.moment = require('moment');\nrequire('moment-timezone')\nrequire(\"tempusdominus-bootstrap-4\")\n\n\nwindow.init_macroevent_datetime_picker = () => {\n \n var basicStartDateTimePickerOptions2 = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#macro_event_start_dt_dtp').data('timezone'),\n minDate: $('#macro_event_start_dt_dtp').data('mindate'),\n maxDate: $('#macro_event_start_dt_dtp').data('maxdate'),\n date: $('#macro_event_start_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n var basicEndDateTimePickerOptions2 = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#macro_event_end_dt_dtp').data('timezone'),\n minDate: $('#macro_event_end_dt_dtp').data('mindate'),\n maxDate: $('#macro_event_end_dt_dtp').data('maxdate'),\n date: $('#macro_event_end_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n $('#macro_event_start_dt_dtp').datetimepicker(basicStartDateTimePickerOptions2)\n $('#macro_event_end_dt_dtp').datetimepicker(basicEndDateTimePickerOptions2)\n\n\n $('#macro_event_start_dt_dtp').on(\"change.datetimepicker\", ({date, oldDate}) => {\n const t1 = $('#macro_event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#macro_event_end_dt_dtp').datetimepicker('date')\n if (t2 {\n const t1 = $('#macro_event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#macro_event_end_dt_dtp').datetimepicker('date')\n if (t2 {\n \n // when uncheck 'show it' cb, uncheck the 'mandatory' cb\n $(document).on('click', '.participant_field', function() {\n if (!$(this).prop('checked')) {\n targez = $(this).data('targez')\n $(\"input[name='\"+targez+\"']\").prop('checked', false)\n }\n })\n // when check 'mandatory' cb, check the 'show it' cb\n $(document).on('click', '.participant_mandatory_field', function() {\n if ($(this).prop('checked')) {\n targez = $(this).data('targez')\n $(\"input[name='\"+targez+\"']\").prop('checked', true)\n }\n })\n\n\n var basicStartDateTimePickerOptions = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#event_start_dt_dtp').data('timezone'),\n minDate: $('#event_start_dt_dtp').data('mindate'),\n maxDate: $('#event_start_dt_dtp').data('maxdate'),\n date: $('#event_start_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n var basicEndDateTimePickerOptions = {\n format: 'DD-MM-YYYY HH:mm',\n showToday: true,\n locale: 'it', // https://github.com/moment/moment/tree/develop/locale\n // timeZone: $('#event_end_dt_dtp').data('timezone'),\n minDate: $('#event_end_dt_dtp').data('mindate'),\n maxDate: $('#event_end_dt_dtp').data('maxdate'),\n date: $('#event_end_dt_dtp').data('datez'),\n debug: false,\n icons: {\n time: 'far fa-clock'\n }\n }\n\n $('#event_start_dt_dtp').datetimepicker(basicStartDateTimePickerOptions)\n $('#event_end_dt_dtp').datetimepicker(basicEndDateTimePickerOptions)\n\n\n function clean_times() {\n // correct end_time (not date!) if it is before start_time\n var startTime = $('#event_start_dt_dtp').datetimepicker('date')\n var endTime = $('#event_end_dt_dtp').datetimepicker('date')\n // both dates are now equal, so check times\n if (endTime {\n const t1 = $('#event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#event_end_dt_dtp').datetimepicker('date')\n if (t2 {\n const t1 = $('#event_start_dt_dtp').datetimepicker('date')\n const t2 = $('#event_end_dt_dtp').datetimepicker('date')\n if (t2 { // iwan\n\n $modal = $('#sideModal');\n\n $modal.on('shown.bs.modal', function() {\n if (focus_on = $modal.data('focus_on')) {\n $(\"<%= focus_on %>\").focus();\n }\n // console.log(\"%%%%\");\n // showEventMap();\n });\n\n $modal.on('hidden.bs.modal', function() {\n $modal.data('focus_on', null)\n // disposeEventMap();\n });\n\n})\n","/*!\n * Start Bootstrap - SB Admin Pro v1.1.2 (https://shop.startbootstrap.com/product/sb-admin-pro)\n * Copyright 2013-2020 Start Bootstrap\n * Licensed under SEE_LICENSE (https://github.com/BlackrockDigital/sb-admin-pro/blob/master/LICENSE)\n */\n\nconst feather = require('feather-icons'); // iwan\n\ndocument.addEventListener(\"turbolinks:load\", () => { // iwan\n\n \"use strict\";\n\n // Enable Bootstrap tooltips via data-attributes globally\n $('[data-toggle=\"tooltip\"]').tooltip();\n\n // Enable Bootstrap popovers via data-attributes globally\n $('[data-toggle=\"popover\"]').popover();\n\n $(\".popover-dismiss\").popover({\n trigger: \"focus\"\n });\n\n // Add active state to sidbar nav links\n var path = window.location.href; // because the 'href' property of the DOM element is the absolute path\n $(\"#layoutSidenav_nav .sidenav a.nav-link\").each(function() {\n if (this.href === path) {\n $(this).addClass(\"active\");\n }\n });\n\n // Toggle the side navigation\n $(\"#sidebarToggle\").on(\"click\", function(e) {\n e.preventDefault();\n $(\"body\").toggleClass(\"sidenav-toggled\");\n });\n\n // Activate Feather icons\n feather.replace();\n\n // Activate Bootstrap scrollspy for the sticky nav component\n $(\"body\").scrollspy({\n target: \"#stickyNav\",\n offset: 82\n });\n\n // Scrolls to an offset anchor when a sticky nav link is clicked\n $('.nav-sticky a.nav-link[href*=\"#\"]:not([href=\"#\"])').click(function() {\n if (\n location.pathname.replace(/^\\//, \"\") ==\n this.pathname.replace(/^\\//, \"\") &&\n location.hostname == this.hostname\n ) {\n var target = $(this.hash);\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\n if (target.length) {\n $(\"html, body\").animate(\n {\n scrollTop: target.offset().top - 81\n },\n 200\n );\n return false;\n }\n }\n });\n\n // Click to collapse responsive sidebar\n $(\"#layoutSidenav_content\").click(function() {\n const BOOTSTRAP_LG_WIDTH = 992;\n if (window.innerWidth >= 992) {\n return;\n }\n if ($(\"body\").hasClass(\"sidenav-toggled\")) {\n $(\"body\").toggleClass(\"sidenav-toggled\");\n }\n });\n\n // Init sidebar\n let activatedPath = window.location.pathname.match(/([\\w-]+\\.html)/, '$1');\n\n if (activatedPath) {\n activatedPath = activatedPath[0];\n }\n else {\n activatedPath = 'index.html';\n }\n\n let targetAnchor = $('[href=\"' + activatedPath + '\"]');\n let collapseAncestors = targetAnchor.parents('.collapse');\n\n targetAnchor.addClass('active');\n\n collapseAncestors.each(function() {\n $(this).addClass('show');\n $('[data-target=\"#' + this.id + '\"]').removeClass('collapsed');\n\n })\n\n}); // iwan\n","/*\n * bootstrap-tagsinput v0.8.0\n *\n */\n\n(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function(item) {\n return 'badge badge-info';\n },\n focusClass: 'focus',\n itemValue: function(item) {\n return item ? item.toString() : item;\n },\n itemText: function(item) {\n return this.itemValue(item);\n },\n itemTitle: function(item) {\n return null;\n },\n freeInput: true,\n addOnBlur: true,\n maxTags: undefined,\n maxChars: undefined,\n confirmKeys: [13, 44],\n delimiter: ',',\n delimiterRegex: null,\n cancelConfirmKeysOnEmpty: false,\n onTagExists: function(item, $tag) {\n $tag.hide().fadeIn();\n },\n trimValue: false,\n allowDuplicates: false,\n triggerChange: true,\n editOnBackspace: false\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.isInit = true;\n this.itemsArray = [];\n\n this.$element = $(element);\n this.$element.addClass('sr-only');\n\n this.isSelect = (element.tagName === 'SELECT');\n this.multiple = (this.isSelect && element.hasAttribute('multiple'));\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.name = element.hasAttribute('name') ? this.$element.attr('name') : '';\n this.type = element.hasAttribute('type') ? this.$element.attr('type') : 'text';\n this.inputSize = Math.max(1, this.placeholderText.length);\n\n this.$container = $('
');\n this.$input = $('').appendTo(this.$container);\n\n this.$element.before(this.$container);\n\n this.build(options);\n this.isInit = false;\n }\n\n TagsInput.prototype = {\n constructor: TagsInput,\n\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function(item, dontPushVal, options) {\n var self = this;\n\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)\n return;\n\n // Ignore falsey values, except false\n if (item !== false && !item)\n return;\n\n // Trim value\n if (typeof item === \"string\" && self.options.trimValue) {\n item = $.trim(item);\n }\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (typeof item === \"object\" && !self.objectItems)\n throw(\"Can't add objects when itemValue option is not set\");\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/))\n return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0)\n self.remove(self.itemsArray[0]);\n\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;\n var items = item.split(delimiter);\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n\n if (!dontPushVal)\n self.pushVal(self.options.triggerChange);\n return;\n }\n }\n\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item),\n itemTitle = self.options.itemTitle(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];\n if (existing && !self.options.allowDuplicates) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".badge\", self.$container).filter(function() { return $(this).data(\"item\") === existing; });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // if length greater than limit\n if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)\n return;\n\n // raise beforeItemAdd arg\n var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});\n self.$element.trigger(beforeItemAddEvent);\n if (beforeItemAddEvent.cancel)\n return;\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n\n var $tag = $('' + htmlEncode(itemText) + '');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n\n // Check to see if the tag exists in its raw or uri-encoded form\n var optionExists = (\n $('option[value=\"' + encodeURIComponent(itemValue).replace(/\"/g, '\\\\\"') + '\"]', self.$element).length ||\n $('option[value=\"' + htmlEncode(itemValue).replace(/\"/g, '\\\\\"') + '\"]', self.$element).length\n );\n\n // add