1function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 2 3!function (t, e) { 4 "object" == (typeof exports === "undefined" ? "undefined" : _typeof(exports)) && "undefined" != typeof module ? module.exports = e(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], e) : t.parsley = e(t.jQuery); 5}(this, function (h) { 6 "use strict"; 7 8 function r(t) { 9 return (r = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (t) { 10 return _typeof(t); 11 } : function (t) { 12 return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : _typeof(t); 13 })(t); 14 } 15 16 function o() { 17 return (o = Object.assign || function (t) { 18 for (var e = 1; e < arguments.length; e++) { 19 var i = arguments[e]; 20 21 for (var n in i) { 22 Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]); 23 } 24 } 25 26 return t; 27 }).apply(this, arguments); 28 } 29 30 function l(t, e) { 31 return function (t) { 32 if (Array.isArray(t)) return t; 33 }(t) || function (t, e) { 34 var i = [], 35 n = !0, 36 r = !1, 37 s = void 0; 38 39 try { 40 for (var a, o = t[Symbol.iterator](); !(n = (a = o.next()).done) && (i.push(a.value), !e || i.length !== e); n = !0) { 41 ; 42 } 43 } catch (t) { 44 r = !0, s = t; 45 } finally { 46 try { 47 n || null == o["return"] || o["return"](); 48 } finally { 49 if (r) throw s; 50 } 51 } 52 53 return i; 54 }(t, e) || function () { 55 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 56 }(); 57 } 58 59 function u(t) { 60 return function (t) { 61 if (Array.isArray(t)) { 62 for (var e = 0, i = new Array(t.length); e < t.length; e++) { 63 i[e] = t[e]; 64 } 65 66 return i; 67 } 68 }(t) || function (t) { 69 if (Symbol.iterator in Object(t) || "[object Arguments]" === Object.prototype.toString.call(t)) return Array.from(t); 70 }(t) || function () { 71 throw new TypeError("Invalid attempt to spread non-iterable instance"); 72 }(); 73 } 74 75 var i, 76 t = 1, 77 e = {}, 78 d = { 79 attr: function attr(t, e, i) { 80 var n, 81 r, 82 s, 83 a = new RegExp("^" + e, "i"); 84 if (void 0 === i) i = {};else for (n in i) { 85 i.hasOwnProperty(n) && delete i[n]; 86 } 87 if (!t) return i; 88 89 for (n = (s = t.attributes).length; n--;) { 90 (r = s[n]) && r.specified && a.test(r.name) && (i[this.camelize(r.name.slice(e.length))] = this.deserializeValue(r.value)); 91 } 92 93 return i; 94 }, 95 checkAttr: function checkAttr(t, e, i) { 96 return t.hasAttribute(e + i); 97 }, 98 setAttr: function setAttr(t, e, i, n) { 99 t.setAttribute(this.dasherize(e + i), String(n)); 100 }, 101 getType: function getType(t) { 102 return t.getAttribute("type") || "text"; 103 }, 104 generateID: function generateID() { 105 return "" + t++; 106 }, 107 deserializeValue: function deserializeValue(e) { 108 var t; 109 110 try { 111 return e ? "true" == e || "false" != e && ("null" == e ? null : isNaN(t = Number(e)) ? /^[\[\{]/.test(e) ? JSON.parse(e) : e : t) : e; 112 } catch (t) { 113 return e; 114 } 115 }, 116 camelize: function camelize(t) { 117 return t.replace(/-+(.)?/g, function (t, e) { 118 return e ? e.toUpperCase() : ""; 119 }); 120 }, 121 dasherize: function dasherize(t) { 122 return t.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase(); 123 }, 124 warn: function warn() { 125 var t; 126 window.console && "function" == typeof window.console.warn && (t = window.console).warn.apply(t, arguments); 127 }, 128 warnOnce: function warnOnce(t) { 129 e[t] || (e[t] = !0, this.warn.apply(this, arguments)); 130 }, 131 _resetWarnings: function _resetWarnings() { 132 e = {}; 133 }, 134 trimString: function trimString(t) { 135 return t.replace(/^\s+|\s+$/g, ""); 136 }, 137 parse: { 138 date: function date(t) { 139 var e = t.match(/^(\d{4,})-(\d\d)-(\d\d)$/); 140 if (!e) return null; 141 var i = l(e.map(function (t) { 142 return parseInt(t, 10); 143 }), 4), 144 n = (i[0], i[1]), 145 r = i[2], 146 s = i[3], 147 a = new Date(n, r - 1, s); 148 return a.getFullYear() !== n || a.getMonth() + 1 !== r || a.getDate() !== s ? null : a; 149 },
150 string: function string(t) { 151 return t; 152 }, 153 integer: function integer(t) { 154 return isNaN(t) ? null : parseInt(t, 10); 155 }, 156 number: function number(t) { 157 if (isNaN(t)) throw null; 158 return parseFloat(t); 159 }, 160 "boolean": function boolean(t) { 161 return !/^\s*false\s*$/i.test(t); 162 }, 163 object: function object(t) { 164 return d.deserializeValue(t); 165 }, 166 regexp: function regexp(t) { 167 var e = ""; 168 return t = /^\/.*\/(?:[gimy]*)$/.test(t) ? (e = t.replace(/.*\/([gimy]*)$/, "$1"), t.replace(new RegExp("^/(.*?)/" + e + "$"), "$1")) : "^" + t + "$", new RegExp(t, e); 169 } 170 }, 171 parseRequirement: function parseRequirement(t, e) { 172 var i = this.parse[t || "string"]; 173 if (!i) throw 'Unknown requirement specification: "' + t + '"'; 174 var n = i(e); 175 if (null === n) throw "Requirement is not a ".concat(t, ': "').concat(e, '"'); 176 return n; 177 }, 178 namespaceEvents: function namespaceEvents(t, e) { 179 return (t = this.trimString(t || "").split(/\s+/))[0] ? h.map(t, function (t) { 180 return "".concat(t, ".").concat(e); 181 }).join(" ") : ""; 182 }, 183 difference: function difference(t, i) { 184 var n = []; 185 return h.each(t, function (t, e) { 186 -1 == i.indexOf(e) && n.push(e); 187 }), n; 188 }, 189 all: function all(t) { 190 return h.when.apply(h, u(t).concat([42, 42])); 191 }, 192 objectCreate: Object.create || (i = function i() {}, function (t) { 193 if (1 < arguments.length) throw Error("Second argument not supported"); 194 if ("object" != r(t)) throw TypeError("Argument must be an object"); 195 i.prototype = t; 196 var e = new i(); 197 return i.prototype = null, e; 198 }), 199 _SubmitSelector: 'input[type="submit"], button:submit' 200 }, 201 n = { 202 namespace: "data-parsley-", 203 inputs: "input, textarea, select", 204 excluded: "input[type=button], input[type=submit], input[type=reset], input[type=hidden]", 205 priorityEnabled: !0, 206 multiple: null, 207 group: null, 208 uiEnabled: !0, 209 validationThreshold: 3, 210 focus: "first", 211 trigger: !1, 212 triggerAfterFailure: "input", 213 errorClass: "parsley-error", 214 successClass: "parsley-success", 215 classHandler: function classHandler(t) {}, 216 errorsContainer: function errorsContainer(t) {}, 217 errorsWrapper: '<ul class="parsley-errors-list"></ul>', 218 errorTemplate: "<li></li>" 219 }, 220 s = function s() { 221 this.__id__ = d.generateID(); 222 }; 223 224 s.prototype = { 225 asyncSupport: !0, 226 _pipeAccordingToValidationResult: function _pipeAccordingToValidationResult() { 227 var e = this, 228 t = function t() { 229 var t = h.Deferred(); 230 return !0 !== e.validationResult && t.reject(), t.resolve().promise(); 231 }; 232 233 return [t, t]; 234 }, 235 actualizeOptions: function actualizeOptions() { 236 return d.attr(this.element, this.options.namespace, this.domOptions), this.parent && this.parent.actualizeOptions && this.parent.actualizeOptions(), this; 237 }, 238 _resetOptions: function _resetOptions(t) { 239 for (var e in this.domOptions = d.objectCreate(this.parent.options), this.options = d.objectCreate(this.domOptions), t) { 240 t.hasOwnProperty(e) && (this.options[e] = t[e]); 241 } 242 243 this.actualizeOptions(); 244 }, 245 _listeners: null, 246 on: function on(t, e) { 247 return this._listeners = this._listeners || {}, (this._listeners[t] = this._listeners[t] || []).push(e), this; 248 }, 249 subscribe: function subscribe(t, e) { 250 h.listenTo(this, t.toLowerCase(), e); 251 }, 252 off: function off(t, e) { 253 var i = this._listeners && this._listeners[t]; 254 if (i) if (e) for (var n = i.length; n--;) { 255 i[n] === e && i.splice(n, 1); 256 } else delete this._listeners[t]; 257 return this; 258 }, 259 unsubscribe: function unsubscribe(t, e) { 260 h.unsubscribeTo(this, t.toLowerCase()); 261 }, 262 trigger: function trigger(t, e, i) { 263 e = e || this; 264 var n, 265 r = this._listeners && this._listeners[t]; 266 if (r) for (var s = r.length; s--;) { 267 if (!1 === (n = r[s].call(e, e, i))) return n; 268 } 269 return !this.parent || this.parent.trigger(t, e, i); 270 }, 271 asyncIsValid: function asyncIsValid(t, e) { 272 return d.warnOnce("asyncIsValid is deprecated; please use whenValid instead"), this.whenValid({ 273 group: t, 274 force: e 275 }); 276 }, 277 _findRelated: function _findRelated() { 278 return this.options.multiple ? h(this.parent.element.querySelectorAll("[".concat(this.options.namespace, 'multiple="').concat(this.options.multiple, '"]'))) : this.$element; 279 } 280 }; 281 282 var c = function c(t) { 283 h.extend(!0, this, t); 284 }; 285 286 c.prototype = { 287 validate: function validate(t, e) { 288 if (this.fn) return 3 < arguments.length && (e = [].slice.call(arguments, 1, -1)), this.fn(t, e); 289 290 if (Array.isArray(t)) { 291 if (!this.validateMultiple) throw "Validator `" + this.name + "` does not handle multiple values"; 292 return this.validateMultiple.apply(this, arguments); 293 } 294 295 var i = arguments[arguments.length - 1]; 296 if (this.validateDate && i._isDateInput()) return null !== (t = d.parse.date(t)) && this.validateDate.apply(this, arguments); 297 if (this.validateNumber) return !t || !isNaN(t) && (t = parseFloat(t), this.validateNumber.apply(this, arguments)); 298 if (this.validateString) return this.validateString.apply(this, arguments); 299 throw "Validator `" + this.name + "` only handles multiple values"; 300 }, 301 parseRequirements: function parseRequirements(t, e) { 302 if ("string" != typeof t) return Array.isArray(t) ? t : [t]; 303 var i = this.requirementType; 304 305 if (Array.isArray(i)) { 306 for (var n = function (t, e) { 307 var i = t.match(/^\s*\[(.*)\]\s*$/); 308 if (!i) throw 'Requirement is not an array: "' + t + '"'; 309 var n = i[1].split(",").map(d.trimString); 310 if (n.length !== e) throw "Requirement has " + n.length + " values when " + e + " are needed"; 311 return n; 312 }(t, i.length), r = 0; r < n.length; r++) {
313 n[r] = d.parseRequirement(i[r], n[r]); 314 } 315 316 return n; 317 } 318 319 return h.isPlainObject(i) ? function (t, e, i) { 320 var n = null, 321 r = {}; 322 323 for (var s in t) { 324 if (s) { 325 var a = i(s); 326 "string" == typeof a && (a = d.parseRequirement(t[s], a)), r[s] = a; 327 } else n = d.parseRequirement(t[s], e); 328 } 329 330 return [n, r]; 331 }(i, t, e) : [d.parseRequirement(i, t)]; 332 }, 333 requirementType: "string", 334 priority: 2 335 }; 336 337 var a = function a(t, e) { 338 this.__class__ = "ValidatorRegistry", this.locale = "en", this.init(t || {}, e || {}); 339 }, 340 p = { 341 email: /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/, 342 number: /^-?(\d*\.)?\d+(e[-+]?\d+)?$/i, 343 integer: /^-?\d+$/, 344 digits: /^\d+$/,
345 alphanum: /^\w+$/i, 346 date: { 347 test: function test(t) { 348 return null !== d.parse.date(t); 349 } 350 }, 351 url: new RegExp("^(?:(?:https?|ftp)://)?(?:\\S+(?::\\S*)?@)?(?:(?:[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-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-zA-Z\\u00a1-\\uffff0-9]-*)*[a-zA-Z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-zA-Z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:/\\S*)?$") 352 }; 353 354 p.range = p.number; 355 356 var f = function f(t) { 357 var e = ("" + t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); 358 return e ? Math.max(0, (e[1] ? e[1].length : 0) - (e[2] ? +e[2] : 0)) : 0; 359 }, 360 m = function m(s, a) { 361 return function (t) { 362 for (var e = arguments.length, i = new Array(1 < e ? e - 1 : 0), n = 1; n < e; n++) { 363 i[n - 1] = arguments[n]; 364 } 365 366 return i.pop(), a.apply(void 0, [t].concat(u((r = s, i.map(d.parse[r]))))); 367 var r; 368 }; 369 }, 370 g = function g(t) { 371 return { 372 validateDate: m("date", t), 373 validateNumber: m("number", t), 374 requirementType: t.length <= 2 ? "string" : ["string", "string"], 375 priority: 30 376 }; 377 }; 378 379 a.prototype = { 380 init: function init(t, e) { 381 for (var i in this.catalog = e, this.validators = o({}, this.validators), t) { 382 this.addValidator(i, t[i].fn, t[i].priority); 383 } 384 385 window.Parsley.trigger("parsley:validator:init"); 386 }, 387 setLocale: function setLocale(t) { 388 if (void 0 === this.catalog[t]) throw new Error(t + " is not available in the catalog"); 389 return this.locale = t, this; 390 }, 391 addCatalog: function addCatalog(t, e, i) { 392 return "object" === r(e) && (this.catalog[t] = e), !0 === i ? this.setLocale(t) : this; 393 }, 394 addMessage: function addMessage(t, e, i) { 395 return void 0 === this.catalog[t] && (this.catalog[t] = {}), this.catalog[t][e] = i, this; 396 }, 397 addMessages: function addMessages(t, e) { 398 for (var i in e) { 399 this.addMessage(t, i, e[i]); 400 } 401 402 return this; 403 }, 404 addValidator: function addValidator(t, e, i) { 405 if (this.validators[t]) d.warn('Validator "' + t + '" is already defined.');else if (n.hasOwnProperty(t)) return void d.warn('"' + t + '" is a restricted keyword and is not a valid validator name.'); 406 return this._setValidator.apply(this, arguments); 407 }, 408 hasValidator: function hasValidator(t) { 409 return !!this.validators[t]; 410 }, 411 updateValidator: function updateValidator(t, e, i) { 412 return this.validators[t] ? this._setValidator.apply(this, arguments) : (d.warn('Validator "' + t + '" is not already defined.'), this.addValidator.apply(this, arguments)); 413 }, 414 removeValidator: function removeValidator(t) { 415 return this.validators[t] || d.warn('Validator "' + t + '" is not defined.'), delete this.validators[t], this; 416 }, 417 _setValidator: function _setValidator(t, e, i) { 418 for (var n in "object" !== r(e) && (e = { 419 fn: e, 420 priority: i 421 }), e.validate || (e = new c(e)), (this.validators[t] = e).messages || {}) { 422 this.addMessage(n, t, e.messages[n]); 423 } 424 425 return this; 426 }, 427 getErrorMessage: function getErrorMessage(t) { 428 var e; 429 "type" === t.name ? e = (this.catalog[this.locale][t.name] || {})[t.requirements] : e = this.formatMessage(this.catalog[this.locale][t.name], t.requirements); 430 return e || this.catalog[this.locale].defaultMessage || this.catalog.en.defaultMessage; 431 }, 432 formatMessage: function formatMessage(t, e) { 433 if ("object" !== r(e)) return "string" == typeof t ? t.replace(/%s/i, e) : ""; 434 435 for (var i in e) { 436 t = this.formatMessage(t, e[i]); 437 } 438 439 return t; 440 }, 441 validators: { 442 notblank: { 443 validateString: function validateString(t) { 444 return /\S/.test(t); 445 }, 446 priority: 2 447 }, 448 required: { 449 validateMultiple: function validateMultiple(t) { 450 return 0 < t.length; 451 }, 452 validateString: function validateString(t) { 453 return /\S/.test(t); 454 }, 455 priority: 512 456 }, 457 type: { 458 validateString: function validateString(t, e) { 459 var i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}, 460 n = i.step, 461 r = void 0 === n ? "any" : n, 462 s = i.base, 463 a = void 0 === s ? 0 : s, 464 o = p[e]; 465 if (!o) throw new Error("validator type `" + e + "` is not supported"); 466 if (!t) return !0; 467 if (!o.test(t)) return !1; 468 469 if ("number" === e && !/^any$/i.test(r || "")) { 470 var l = Number(t), 471 u = Math.max(f(r), f(a)); 472 if (f(l) > u) return !1; 473 474 var d = function d(t) { 475 return Math.round(t * Math.pow(10, u)); 476 }; 477 478 if ((d(l) - d(a)) % d(r) != 0) return !1; 479 } 480 481 return !0; 482 }, 483 requirementType: { 484 "": "string", 485 step: "string", 486 base: "number" 487 }, 488 priority: 256 489 }, 490 pattern: { 491 validateString: function validateString(t, e) { 492 return !t || e.test(t); 493 }, 494 requirementType: "regexp", 495 priority: 64 496 }, 497 minlength: { 498 validateString: function validateString(t, e) { 499 return !t || t.length >= e; 500 }, 501 requirementType: "integer", 502 priority: 30 503 }, 504 maxlength: { 505 validateString: function validateString(t, e) { 506 return t.length <= e; 507 }, 508 requirementType: "integer", 509 priority: 30 510 }, 511 length: { 512 validateString: function validateString(t, e, i) { 513 return !t || t.length >= e && t.length <= i; 514 }, 515 requirementType: ["integer", "integer"], 516 priority: 30 517 }, 518 mincheck: { 519 validateMultiple: function validateMultiple(t, e) { 520 return t.length >= e; 521 }, 522 requirementType: "integer", 523 priority: 30 524 }, 525 maxcheck: { 526 validateMultiple: function validateMultiple(t, e) { 527 return t.length <= e; 528 }, 529 requirementType: "integer", 530 priority: 30 531 }, 532 check: { 533 validateMultiple: function validateMultiple(t, e, i) { 534 return t.length >= e && t.length <= i; 535 }, 536 requirementType: ["integer", "integer"], 537 priority: 30 538 }, 539 min: g(function (t, e) { 540 return e <= t; 541 }), 542 max: g(function (t, e) { 543 return t <= e; 544 }), 545 range: g(function (t, e, i) { 546 return e <= t && t <= i; 547 }), 548 equalto: { 549 validateString: function validateString(t, e) { 550 if (!t) return !0; 551 var i = h(e); 552 return i.length ? t === i.val() : t === e; 553 }, 554 priority: 256 555 }, 556 euvatin: { 557 validateString: function validateString(t, e) { 558 if (!t) return !0; 559 return /^[A-Z][A-Z][A-Za-z0-9 -]{2,}$/.test(t); 560 }, 561 priority: 30 562 } 563 } 564 }; 565 var v = {}; 566 v.Form = { 567 _actualizeTriggers: function _actualizeTriggers() { 568 var e = this; 569 this.$element.on("submit.Parsley", function (t) { 570 e.onSubmitValidate(t); 571 }), this.$element.on("click.Parsley", d._SubmitSelector, function (t) { 572 e.onSubmitButton(t); 573 }), !1 !== this.options.uiEnabled && this.element.setAttribute("novalidate", ""); 574 }, 575 focus: function focus() { 576 if (!(this._focusedField = null) === this.validationResult || "none" === this.options.focus) return null; 577 578 for (var t = 0; t < this.fields.length; t++) { 579 var e = this.fields[t]; 580 if (!0 !== e.validationResult && 0 < e.validationResult.length && void 0 === e.options.noFocus && (this._focusedField = e.$element, "first" === this.options.focus)) break; 581 } 582 583 return null === this._focusedField ? null : this._focusedField.focus(); 584 }, 585 _destroyUI: function _destroyUI() { 586 this.$element.off(".Parsley"); 587 } 588 }, v.Field = { 589 _reflowUI: function _reflowUI() { 590 if (this._buildUI(), this._ui) { 591 var t = function t(e, i, n) { 592 for (var r = [], s = [], a = 0; a < e.length; a++) { 593 for (var o = !1, l = 0; l < i.length; l++) { 594 if (e[a].assert.name === i[l].assert.name) { 595 o = !0; 596 break; 597 } 598 } 599 600 o ? s.push(e[a]) : r.push(e[a]); 601 } 602 603 return { 604 kept: s, 605 added: r, 606 removed: n ? [] : t(i, e, !0).added 607 }; 608 }(this.validationResult, this._ui.lastValidationResult); 609 610 this._ui.lastValidationResult = this.validationResult, this._manageStatusClass(), this._manageErrorsMessages(t), this._actualizeTriggers(), !t.kept.length && !t.added.length || this._failedOnce || (this._failedOnce = !0, this._actualizeTriggers()); 611 } 612 }, 613 getErrorsMessages: function getErrorsMessages() { 614 if (!0 === this.validationResult) return []; 615 616 for (var t = [], e = 0; e < this.validationResult.length; e++) { 617 t.push(this.validationResult[e].errorMessage || this._getErrorMessage(this.validationResult[e].assert)); 618 } 619 620 return t; 621 }, 622 addError: function addError(t) { 623 var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, 624 i = e.message, 625 n = e.assert, 626 r = e.updateClass, 627 s = void 0 === r || r; 628 this._buildUI(), this._addError(t, { 629 message: i, 630 assert: n 631 }), s && this._errorClass(); 632 }, 633 updateError: function updateError(t) { 634 var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, 635 i = e.message, 636 n = e.assert, 637 r = e.updateClass, 638 s = void 0 === r || r; 639 this._buildUI(), this._updateError(t, { 640 message: i, 641 assert: n 642 }), s && this._errorClass(); 643 }, 644 removeError: function removeError(t) { 645 var e = (1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}).updateClass, 646 i = void 0 === e || e; 647 this._buildUI(), this._removeError(t), i && this._manageStatusClass(); 648 }, 649 _manageStatusClass: function _manageStatusClass() { 650 this.hasConstraints() && this.needsValidation() && !0 === this.validationResult ? this._successClass() : 0 < this.validationResult.length ? this._errorClass() : this._resetClass(); 651 }, 652 _manageErrorsMessages: function _manageErrorsMessages(t) { 653 if (void 0 === this.options.errorsMessagesDisabled) { 654 if (void 0 !== this.options.errorMessage) return t.added.length || t.kept.length ? (this._insertErrorWrapper(), 0 === this._ui.$errorsWrapper.find(".parsley-custom-error-message").length && this._ui.$errorsWrapper.append(h(this.options.errorTemplate).addClass("parsley-custom-error-message")), this._ui.$errorsWrapper.addClass("filled").find(".parsley-custom-error-message").html(this.options.errorMessage)) : this._ui.$errorsWrapper.removeClass("filled").find(".parsley-custom-error-message").remove(); 655 656 for (var e = 0; e < t.removed.length; e++) { 657 this._removeError(t.removed[e].assert.name); 658 } 659 660 for (e = 0; e < t.added.length; e++) { 661 this._addError(t.added[e].assert.name, { 662 message: t.added[e].errorMessage, 663 assert: t.added[e].assert 664 }); 665 } 666 667 for (e = 0; e < t.kept.length; e++) { 668 this._updateError(t.kept[e].assert.name, { 669 message: t.kept[e].errorMessage, 670 assert: t.kept[e].assert 671 }); 672 } 673 } 674 }, 675 _addError: function _addError(t, e) { 676 var i = e.message, 677 n = e.assert; 678 this._insertErrorWrapper(), this._ui.$errorClassHandler.attr("aria-describedby", this._ui.errorsWrapperId), this._ui.$errorsWrapper.addClass("filled").append(h(this.options.errorTemplate).addClass("parsley-" + t).html(i || this._getErrorMessage(n))); 679 }, 680 _updateError: function _updateError(t, e) { 681 var i = e.message, 682 n = e.assert; 683 684 this._ui.$errorsWrapper.addClass("filled").find(".parsley-" + t).html(i || this._getErrorMessage(n)); 685 }, 686 _removeError: function _removeError(t) { 687 this._ui.$errorClassHandler.removeAttr("aria-describedby"), this._ui.$errorsWrapper.removeClass("filled").find(".parsley-" + t).remove(); 688 }, 689 _getErrorMessage: function _getErrorMessage(t) { 690 var e = t.name + "Message"; 691 return void 0 !== this.options[e] ? window.Parsley.formatMessage(this.options[e], t.requirements) : window.Parsley.getErrorMessage(t); 692 }, 693 _buildUI: function _buildUI() { 694 if (!this._ui && !1 !== this.options.uiEnabled) { 695 var t = {}; 696 this.element.setAttribute(this.options.namespace + "id", this.__id__), t.$errorClassHandler = this._manageClassHandler(), t.errorsWrapperId = "parsley-id-" + (this.options.multiple ? "multiple-" + this.options.multiple : this.__id__), t.$errorsWrapper = h(this.options.errorsWrapper).attr("id", t.errorsWrapperId), t.lastValidationResult = [], t.validationInformationVisible = !1, this._ui = t; 697 } 698 }, 699 _manageClassHandler: function _manageClassHandler() { 700 if ("string" == typeof this.options.classHandler && h(this.options.classHandler).length) return h(this.options.classHandler); 701 var t = this.options.classHandler; 702 703 if ("string" == typeof this.options.classHandler && "function" == typeof window[this.options.classHandler] && (t = window[this.options.classHandler]), "function" == typeof t) { 704 var e = t.call(this, this); 705 if (void 0 !== e && e.length) return e; 706 } else { 707 if ("object" === r(t) && t instanceof jQuery && t.length) return t; 708 t && d.warn("The class handler `" + t + "` does not exist in DOM nor as a global JS function"); 709 } 710 711 return this._inputHolder(); 712 }, 713 _inputHolder: function _inputHolder() { 714 return this.options.multiple && "SELECT" !== this.element.nodeName ? this.$element.parent() : this.$element; 715 }, 716 _insertErrorWrapper: function _insertErrorWrapper() { 717 var t = this.options.errorsContainer; 718 if (0 !== this._ui.$errorsWrapper.parent().length) return this._ui.$errorsWrapper.parent(); 719 720 if ("string" == typeof t) { 721 if (h(t).length) return h(t).append(this._ui.$errorsWrapper); 722 "function" == typeof window[t] ? t = window[t] : d.warn("The errors container `" + t + "` does not exist in DOM nor as a global JS function"); 723 } 724 725 return "function" == typeof t && (t = t.call(this, this)), "object" === r(t) && t.length ? t.append(this._ui.$errorsWrapper) : this._inputHolder().after(this._ui.$errorsWrapper); 726 }, 727 _actualizeTriggers: function _actualizeTriggers() { 728 var t, 729 e = this, 730 i = this._findRelated(); 731 732 i.off(".Parsley"), this._failedOnce ? i.on(d.namespaceEvents(this.options.triggerAfterFailure, "Parsley"), function () { 733 e._validateIfNeeded(); 734 }) : (t = d.namespaceEvents(this.options.trigger, "Parsley")) && i.on(t, function (t) { 735 e._validateIfNeeded(t); 736 }); 737 }, 738 _validateIfNeeded: function _validateIfNeeded(t) { 739 var e = this; 740 t && /key|input/.test(t.type) && (!this._ui || !this._ui.validationInformationVisible) && this.getValue().length <= this.options.validationThreshold || (this.options.debounce ? (window.clearTimeout(this._debounced), this._debounced = window.setTimeout(function () { 741 return e.validate(); 742 }, this.options.debounce)) : this.validate()); 743 }, 744 _resetUI: function _resetUI() { 745 this._failedOnce = !1, this._actualizeTriggers(), void 0 !== this._ui && (this._ui.$errorsWrapper.removeClass("filled").children().remove(), this._resetClass(), this._ui.lastValidationResult = [], this._ui.validationInformationVisible = !1); 746 }, 747 _destroyUI: function _destroyUI() { 748 this._resetUI(), void 0 !== this._ui && this._ui.$errorsWrapper.remove(), delete this._ui; 749 }, 750 _successClass: function _successClass() { 751 this._ui.validationInformationVisible = !0, this._ui.$errorClassHandler.removeClass(this.options.errorClass).addClass(this.options.s
751uccessClass); 752 }, 753 _errorClass: function _errorClass() { 754 this._ui.validationInformationVisible = !0, this._ui.$errorClassHandler.removeClass(this.options.successClass).addClass(this.options.errorClass); 755 }, 756 _resetClass: function _resetClass() { 757 this._ui.$errorClassHandler.removeClass(this.options.successClass).removeClass(this.options.errorClass); 758 } 759 }; 760 761 var y = function y(t, e, i) { 762 this.__class__ = "Form", this.element = t, this.$element = h(t), this.domOptions = e, this.options = i, this.parent = window.Parsley, this.fields = [], this.validationResult = null; 763 }, 764 _ = { 765 pending: null, 766 resolved: !0, 767 rejected: !1 768 }; 769 770 y.prototype = { 771 onSubmitValidate: function onSubmitValidate(t) { 772 var e = this; 773 774 if (!0 !== t.parsley) { 775 var i = this._submitSource || this.$element.find(d._SubmitSelector)[0]; 776 777 if (this._submitSource = null, this.$element.find(".parsley-synthetic-submit-button").prop("disabled", !0), !i || null === i.getAttribute("formnovalidate")) { 778 window.Parsley._remoteCache = {}; 779 var n = this.whenValidate({ 780 event: t 781 }); 782 "resolved" === n.state() && !1 !== this._trigger("submit") || (t.stopImmediatePropagation(), t.preventDefault(), "pending" === n.state() && n.done(function () { 783 e._submit(i); 784 })); 785 } 786 } 787 }, 788 onSubmitButton: function onSubmitButton(t) { 789 this._submitSource = t.currentTarget; 790 }, 791 _submit: function _submit(t) { 792 if (!1 !== this._trigger("submit")) { 793 if (t) { 794 var e = this.$element.find(".parsley-synthetic-submit-button").prop("disabled", !1); 795 0 === e.length && (e = h('<input class="parsley-synthetic-submit-button" type="hidden">').appendTo(this.$element)), e.attr({ 796 name: t.getAttribute("name"), 797 value: t.getAttribute("value") 798 }); 799 } 800 801 this.$element.trigger(o(h.Event("submit"), { 802 parsley: !0 803 })); 804 } 805 }, 806 validate: function validate(t) { 807 if (1 <= arguments.length && !h.isPlainObject(t)) { 808 d.warnOnce("Calling validate on a parsley form without passing arguments as an object is deprecated."); 809 var e = Array.prototype.slice.call(arguments); 810 t = { 811 group: e[0], 812 force: e[1], 813 event: e[2] 814 }; 815 } 816 817 return _[this.whenValidate(t).state()]; 818 }, 819 whenValidate: function whenValidate() { 820 var t, 821 e = this, 822 i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, 823 n = i.group, 824 r = i.force, 825 s = i.event; 826 (this.submitEvent = s) && (this.submitEvent = o({}, s, { 827 preventDefault: function preventDefault() { 828 d.warnOnce("Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`"), e.validationResult = !1; 829 } 830 })), this.validationResult = !0, this._trigger("validate"), this._refreshFields(); 831 832 var a = this._withoutReactualizingFormOptions(function () { 833 return h.map(e.fields, function (t) { 834 return t.whenValidate({ 835 force: r, 836 group: n 837 }); 838 }); 839 }); 840 841 return (t = d.all(a).done(function () { 842 e._trigger("success"); 843 }).fail(function () { 844 e.validationResult = !1, e.focus(), e._trigger("error"); 845 }).always(function () { 846 e._trigger("validated"); 847 })).pipe.apply(t, u(this._pipeAccordingToValidationResult())); 848 }, 849 isValid: function isValid(t) { 850 if (1 <= arguments.length && !h.isPlainObject(t)) { 851 d.warnOnce("Calling isValid on a parsley form without passing arguments as an object is deprecated."); 852 var e = Array.prototype.slice.call(arguments); 853 t = { 854 group: e[0], 855 force: e[1] 856 }; 857 } 858 859 return _[this.whenValid(t).state()]; 860 }, 861 whenValid: function whenValid() { 862 var t = this, 863 e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, 864 i = e.group, 865 n = e.force; 866 867 this._refreshFields(); 868 869 var r = this._withoutReactualizingFormOptions(function () { 870 return h.map(t.fields, function (t) { 871 return t.whenValid({ 872 group: i, 873 force: n 874 }); 875 }); 876 }); 877 878 return d.all(r); 879 }, 880 refresh: function refresh() { 881 return this._refreshFields(), this; 882 }, 883 reset: function reset() { 884 for (var t = 0; t < this.fields.length; t++) { 885 this.fields[t].reset(); 886 } 887 888 this._trigger("reset"); 889 }, 890 destroy: function destroy() { 891 this._destroyUI(); 892 893 for (var t = 0; t < this.fields.length; t++) { 894 this.fields[t].destroy(); 895 } 896 897 this.$element.removeData("Parsley"), this._trigger("destroy"); 898 }, 899 _refreshFields: function _refreshFields() { 900 return this.actualizeOptions()._bindFields(); 901 }, 902 _bindFields: function _bindFields() { 903 var r = this, 904 t = this.fields; 905 return this.fields = [], this.fieldsMappedById = {}, this._withoutReactualizingFormOptions(function () { 906 r.$element.find(r.options.inputs).not(r.options.excluded).not("[".concat(r.options.namespace, "excluded=true]")).each(function (t, e) { 907 var i = new window.Parsley.Factory(e, {}, r); 908 909 if ("Field" === i.__class__ || "FieldMultiple" === i.__class__) { 910 var n = i.__class__ + "-" + i.__id__; 911 void 0 === r.fieldsMappedById[n] && (r.fieldsMappedById[n] = i, r.fields.push(i)); 912 } 913 }), h.each(d.difference(t, r.fields), function (t, e) { 914 e.reset(); 915 }); 916 }), this; 917 }, 918 _withoutReactualizingFormOptions: function _withoutReactualizingFormOptions(t) { 919 var e = this.actualizeOptions; 920 921 this.actualizeOptions = function () { 922 return this; 923 }; 924 925 var i = t(); 926 return this.actualizeOptions = e, i; 927 }, 928 _trigger: function _trigger(t) { 929 return this.trigger("form:" + t); 930 } 931 }; 932 933 var w = function w(t, e, i, n, r) { 934 var s = window.Parsley._validatorRegistry.validators[e], 935 a = new c(s); 936 o(this, { 937 validator: a, 938 name: e,
939 requirements: i, 940 priority: n = n || t.options[e + "Priority"] || a.priority, 941 isDomConstraint: r = !0 === r 942 }), this._parseRequirements(t.options); 943 }, 944 b = function b(t, e, i, n) { 945 this.__class__ = "Field", this.element = t, this.$element = h(t), void 0 !== n && (this.parent = n), this.options = i, this.domOptions = e, this.constraints = [], this.constraintsByName = {}, this.validationResult = !0, this._bindConstraints(); 946 }, 947 F = { 948 pending: null, 949 resolved: !0, 950 rejected: !(w.prototype = { 951 validate: function validate(t, e) { 952 var i; 953 return (i = this.validator).validate.apply(i, [t].concat(u(this.requirementList), [e])); 954 }, 955 _parseRequirements: function _parseRequirements(i) { 956 var n = this; 957 this.requirementList = this.validator.parseRequirements(this.requirements, function (t) { 958 return i[n.name + (e = t, e[0].toUpperCase() + e.slice(1))]; 959 var e; 960 }); 961 } 962 }) 963 }; 964 965 b.prototype = { 966 validate: function validate(t) { 967 1 <= arguments.length && !h.isPlainObject(t) && (d.warnOnce("Calling validate on a parsley field without passing arguments as an object is deprecated."), t = { 968 options: t 969 }); 970 var e = this.whenValidate(t); 971 if (!e) return !0; 972 973 switch (e.state()) { 974 case "pending": 975 return null; 976 977 case "resolved": 978 return !0; 979 980 case "rejected": 981 return this.validationResult; 982 } 983 }, 984 whenValidate: function whenValidate() { 985 var t, 986 e = this, 987 i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, 988 n = i.force, 989 r = i.group; 990 if (this.refresh(), !r || this._isInGroup(r)) return this.value = this.getValue(), this._trigger("validate"), (t = this.whenValid({ 991 force: n, 992 value: this.value, 993 _refreshed: !0 994 }).always(function () { 995 e._reflowUI(); 996 }).done(function () { 997 e._trigger("success"); 998 }).fail(function () { 999 e._trigger("error"); 1000 }).always(function () { 1001 e._trigger("validated"); 1002 })).pipe.apply(t, u(this._pipeAccordingToValidationResult())); 1003 }, 1004 hasConstraints: function hasConstraints() { 1005 return 0 !== this.constraints.length; 1006 }, 1007 needsValidation: function needsValidation(t) { 1008 return void 0 === t && (t = this.getValue()), !(!t.length && !this._isRequired() && void 0 === this.options.validateIfEmpty); 1009 }, 1010 _isInGroup: function _isInGroup(t) { 1011 return Array.isArray(this.options.group) ? -1 !== h.inArray(t, this.options.group) : this.options.group === t; 1012 }, 1013 isValid: function isValid(t) { 1014 if (1 <= arguments.length && !h.isPlainObject(t)) { 1015 d.warnOnce("Calling isValid on a parsley field without passing arguments as an object is deprecated."); 1016 var e = Array.prototype.slice.call(arguments); 1017 t = { 1018 force: e[0], 1019 value: e[1] 1020 }; 1021 } 1022 1023 var i = this.whenValid(t); 1024 return !i || F[i.state()]; 1025 }, 1026 whenValid: function whenValid() { 1027 var n = this, 1028 t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, 1029 e = t.force, 1030 i = void 0 !== e && e, 1031 r = t.value, 1032 s = t.group; 1033 1034 if (t._refreshed || this.refresh(), !s || this._isInGroup(s)) { 1035 if (this.validationResult = !0, !this.hasConstraints()) return h.when(); 1036 if (null == r && (r = this.getValue()), !this.needsValidation(r) && !0 !== i) return h.when(); 1037 1038 var a = this._getGroupedConstraints(), 1039 o = []; 1040 1041 return h.each(a, function (t, e) { 1042 var i = d.all(h.map(e, function (t) { 1043 return n._validateConstraint(r, t); 1044 })); 1045 if (o.push(i), "rejected" === i.state()) return !1; 1046 }), d.all(o); 1047 } 1048 }, 1049 _validateConstraint: function _validateConstraint(t, e) { 1050 var i = this, 1051 n = e.validate(t, this); 1052 return !1 === n && (n = h.Deferred().reject()), d.all([n]).fail(function (t) {
1053 i.validationResult instanceof Array || (i.validationResult = []), i.validationResult.push({ 1054 assert: e, 1055 errorMessage: "string" == typeof t && t 1056 }); 1057 }); 1058 }, 1059 getValue: function getValue() { 1060 var t; 1061 return null == (t = "function" == typeof this.options.value ? this.options.value(this) : void 0 !== this.options.value ? this.options.value : this.$element.val()) ? "" : this._handleWhitespace(t); 1062 }, 1063 reset: function reset() { 1064 return this._resetUI(), this._trigger("reset"); 1065 }, 1066 destroy: function destroy() { 1067 this._destroyUI(), this.$element.removeData("Parsley"), this.$element.removeData("FieldMultiple"), this._trigger("destroy"); 1068 }, 1069 refresh: function refresh() { 1070 return this._refreshConstraints(), this; 1071 }, 1072 _refreshConstraints: function _refreshConstraints() { 1073 return this.actualizeOptions()._bindConstraints(); 1074 }, 1075 refreshConstraints: function refreshConstraints() { 1076 return d.warnOnce("Parsley's refreshConstraints is deprecated. Please use refresh"), this.refresh(); 1077 }, 1078 addConstraint: function addConstraint(t, e, i, n) { 1079 if (window.Parsley._validatorRegistry.validators[t]) { 1080 var r = new w(this, t, e, i, n); 1081 "undefined" !== this.constraintsByName[r.name] && this.removeConstraint(r.name), this.constraints.push(r), this.constraintsByName[r.name] = r; 1082 } 1083 1084 return this; 1085 }, 1086 removeConstraint: function removeConstraint(t) { 1087 for (var e = 0; e < this.constraints.length; e++) { 1088 if (t === this.constraints[e].name) { 1089 this.constraints.splice(e, 1); 1090 break; 1091 } 1092 } 1093 1094 return delete this.constraintsByName[t], this; 1095 }, 1096 updateConstraint: function updateConstraint(t, e, i) { 1097 return this.removeConstraint(t).addConstraint(t, e, i); 1098 }, 1099 _bindConstraints: function _bindConstraints() { 1100 for (var t = [], e = {}, i = 0; i < this.constraints.length; i++) { 1101 !1 === this.constraints[i].isDomConstraint && (t.push(this.constraints[i]), e[this.constraints[i].name] = this.constraints[i]); 1102 } 1103 1104 for (var n in this.constraints = t, this.constraintsByName = e, this.options) { 1105 this.addConstraint(n, this.options[n], void 0, !0); 1106 } 1107 1108 return this._bindHtml5Constraints(); 1109 }, 1110 _bindHtml5Constraints: function _bindHtml5Constraints() { 1111 null !== this.element.getAttribute("required") && this.addConstraint("required", !0, void 0, !0), null !== this.element.getAttribute("pattern") && this.addConstraint("pattern", this.element.getAttribute("pattern"), void 0, !0); 1112 var t = this.element.getAttribute("min"), 1113 e = this.element.getAttribute("max"); 1114 null !== t && null !== e ? this.addConstraint("range", [t, e], void 0, !0) : null !== t ? this.addConstraint("min", t, void 0, !0) : null !== e && this.addConstraint("max", e, void 0, !0), null !== this.element.getAttribute("minlength") && null !== this.element.getAttribute("maxlength") ? this.addConstraint("length", [this.element.getAttribute("minlength"), this.element.getAttribute("maxlength")], void 0, !0) : null !== this.element.getAttribute("minlength") ? this.addConstraint("minlength", this.element.getAttribute("minlength"), void 0, !0) : null !== this.element.getAttribute("maxlength") && this.addConstraint("maxlength", this.element.getAttribute("maxlength"), void 0, !0); 1115 var i = d.getType(this.element); 1116 return "number" === i ? this.addConstraint("type", ["number", { 1117 step: this.element.getAttribute("step") || "1", 1118 base: t || this.element.getAttribute("value") 1119 }], void 0, !0) : /^(email|url|range|date)$/i.test(i) ? this.addConstraint("type", i, void 0, !0) : this; 1120 }, 1121 _isRequired: function _isRequired() { 1122 return void 0 !== this.constraintsByName.required && !1 !== this.constraintsByName.required.requirements; 1123 }, 1124 _trigger: function _trigger(t) { 1125 return this.trigger("field:" + t); 1126 }, 1127 _handleWhitespace: function _handleWhitespace(t) { 1128 return !0 === this.options.trimValue && d.warnOnce('data-parsley-trim-value="true" is deprecated, please use data-parsley-whitespace="trim"'), "squish" === this.options.whitespace && (t = t.replace(/\s{2,}/g, " ")), "trim" !== this.options.whitespace && "squish" !== this.options.whitespace && !0 !== this.options.trimValue || (t = d.trimString(t)), t; 1129 }, 1130 _isDateInput: function _isDateInput() { 1131 var t = this.constraintsByName.type; 1132 return t && "date" === t.requirements; 1133 }, 1134 _getGroupedConstraints: function _getGroupedConstraints() { 1135 if (!1 === this.options.priorityEnabled) return [this.constraints]; 1136 1137 for (var t = [], e = {}, i = 0; i < this.constraints.length; i++) { 1138 var n = this.constraints[i].priority; 1139 e[n] || t.push(e[n] = []), e[n].push(this.constraints[i]); 1140 } 1141 1142 return t.sort(function (t, e) { 1143 return e[0].priority - t[0].priority; 1144 }), t; 1145 } 1146 }; 1147 1148 var C = function C() { 1149 this.__class__ = "FieldMultiple"; 1150 }; 1151 1152 C.prototype = { 1153 addElement: function addElement(t) { 1154 return this.$elements.push(t), this; 1155 }, 1156 _refreshConstraints: function _refreshConstraints() { 1157 var t; 1158 if (this.constraints = [], "SELECT" === this.element.nodeName) return this.actualizeOptions()._bindConstraints(), this; 1159 1160 for (var e = 0; e < this.$elements.length; e++) { 1161 if (h("html").has(this.$elements[e]).length) { 1162 t = this.$elements[e].data("FieldMultiple")._refreshConstraints().constraints; 1163 1164 for (var i = 0; i < t.length; i++) { 1165 this.addConstraint(t[i].name, t[i].requirements, t[i].priority, t[i].isDomConstraint); 1166 } 1167 } else this.$elements.splice(e, 1); 1168 } 1169 1170 return this; 1171 }, 1172 getValue: function getValue() { 1173 if ("function" == typeof this.options.value) return this.options.value(this); 1174 if (void 0 !== this.options.value) return this.options.value; 1175 1176 if ("INPUT" === this.element.nodeName) { 1177 var t = d.getType(this.element); 1178 if ("radio" === t) return this._findRelated().filter(":checked").val() || ""; 1179 1180 if ("checkbox" === t) { 1181 var e = []; 1182 return this._findRelated().filter(":checked").each(function () { 1183 e.push(h(this).val()); 1184 }), e; 1185 } 1186 } 1187 1188 return "SELECT" === this.element.nodeName && null === this.$element.val() ? [] : this.$element.val(); 1189 }, 1190 _init: function _init() { 1191 return this.$elements = [this.$element], this; 1192 } 1193 }; 1194 1195 var A = function A(t, e, i) { 1196 this.element = t, this.$element = h(t); 1197 var n = this.$element.data("Parsley"); 1198 if (n) return void 0 !== i && n.parent === window.Parsley && (n.parent = i, n._resetOptions(n.options)), "object" === r(e) && o(n.options, e), n; 1199 if (!this.$element.length) throw new Error("You must bind Parsley on an existing element."); 1200 if (void 0 !== i && "Form" !== i.__class__) throw new Error("Parent instance must be a Form instance"); 1201 return this.parent = i || window.Parsley, this.init(e); 1202 }; 1203 1204 A.prototype = { 1205 init: function init(t) { 1206 return this.__class__ = "Parsley", this.__version__ = "2.9.1", this.__id__ = d.generateID(), this._resetOptions(t), "FORM" === this.element.nodeName || d.checkAttr(this.element, this.options.namespace, "validate") && !this.$element.is(this.options.inputs) ? this.bind("parsleyForm") : this.isMultiple() ? this.handleMultiple() : this.bind("parsleyField"); 1207 }, 1208 isMultiple: function isMultiple() { 1209 var t = d.getType(this.element); 1210 return "radio" === t || "checkbox" === t || "SELECT" === this.element.nodeName && null !== this.element.getAttribute("multiple"); 1211 }, 1212 handleMultiple: function handleMultiple() { 1213 var t, 1214 e, 1215 n = this; 1216 if (this.options.multiple = this.options.multiple || (t = this.element.getAttribute("name")) || this.element.getAttribute("id"), "SELECT" === this.element.nodeName && null !== this.element.getAttribute("multiple")) return this.options.multiple = this.options.multiple || this.__id__, this.bind("parsleyFieldMultiple"); 1217 if (!this.options.multiple) return d.warn("To be bound by Parsley, a radio, a checkbox and a multiple select input must have either a name or a multiple option.", this.$element), this; 1218 this.options.multiple = this.options.multiple.replace(/(:|\.|\[|\]|\{|\}|\$)/g, ""), t && h('input[name="' + t + '"]').each(function (t, e) { 1219 var i = d.getType(e); 1220 "radio" !== i && "checkbox" !== i || e.setAttribute(n.options.namespace + "multiple", n.options.multiple); 1221 }); 1222 1223 for (var i = this._findRelated(), r = 0; r < i.length; r++) { 1224 if (void 0 !== (e = h(i.get(r)).data("Parsley"))) { 1225 this.$element.data("FieldMultiple") || e.addElement(this.$element); 1226 break; 1227 } 1228 } 1229 1230 return this.bind("parsleyField", !0), e || this.bind("parsleyFieldMultiple"); 1231 }, 1232 bind: function bind(t, e) { 1233 var i; 1234 1235 switch (t) { 1236 case "parsleyForm": 1237 i = h.extend(new y(this.element, this.domOptions, this.options), new s(), window.ParsleyExtend)._bindFields(); 1238 break; 1239 1240 case "parsleyField": 1241 i = h.extend(new b(this.element, this.domOptions, this.options, this.parent), new s(), window.ParsleyExtend); 1242 break; 1243 1244 case "parsleyFieldMultiple": 1245 i = h.extend(new b(this.element, this.domOptions, this.options, this.parent), new C(), new s(), window.ParsleyExtend)._init(); 1246 break; 1247 1248 default: 1249 throw new Error(t + "is not a supported Parsley type"); 1250 } 1251 1252 return this.options.multiple && d.setAttr(this.element, this.options.namespace, "multiple", this.options.multiple), void 0 !== e ? this.$element.data("FieldMultiple", i) : (this.$element.data("Parsley", i), i._actualizeTriggers(), i._trigger("init")), i; 1253 } 1254 }; 1255 var E = h.fn.jquery.split("."); 1256 if (parseInt(E[0]) <= 1 && parseInt(E[1]) < 8) throw "The loaded version of jQuery is too old. Please upgrade to 1.8.x or better.";
1257 E.forEach || d.warn("Parsley requires ES5 to run properly. Please include https://github.com/es-shims/es5-shim"); 1258 var x = o(new s(), { 1259 element: document, 1260 $element: h(document), 1261 actualizeOptions: null, 1262 _resetOptions: null, 1263 Factory: A, 1264 version: "2.9.1" 1265 }); 1266 o(b.prototype, v.Field, s.prototype), o(y.prototype, v.Form, s.prototype), o(A.prototype, s.prototype), h.fn.parsley = h.fn.psly = function (t) { 1267 if (1 < this.length) { 1268 var e = []; 1269 return this.each(function () { 1270 e.push(h(this).parsley(t)); 1271 }), e; 1272 } 1273 1274 if (0 != this.length) return new A(this[0], t); 1275 }, void 0 === window.ParsleyExtend && (window.ParsleyExtend = {}), x.options = o(d.objectCreate(n), window.ParsleyConfig), window.ParsleyConfig = x.options, window.Parsley = window.psly = x, x.Utils = d, window.ParsleyUtils = {}, h.each(d, function (t, e) { 1276 "function" == typeof e && (window.ParsleyUtils[t] = function () { 1277 return d.warnOnce("Accessing `window.ParsleyUtils` is deprecated. Use `window.Parsley.Utils` instead."), d[t].apply(d, arguments); 1278 }); 1279 }); 1280 var $ = window.Parsley._validatorRegistry = new a(window.ParsleyConfig.validators, window.ParsleyConfig.i18n); 1281 window.ParsleyValidator = {}, h.each("setLocale addCatalog addMessage addMessages getErrorMessage formatMessage addValidator updateValidator removeValidator hasValidator".split(" "), function (t, e) { 1282 window.Parsley[e] = function () { 1283 return $[e].apply($, arguments); 1284 }, window.ParsleyValidator[e] = function () { 1285 var t; 1286 return d.warnOnce("Accessing the method '".concat(e, "' through Validator is deprecated. Simply call 'window.Parsley.").concat(e, "(...)'")), (t = window.Parsley)[e].apply(t, arguments); 1287 }; 1288 }), window.Parsley.UI = v, window.ParsleyUI = { 1289 removeError: function removeError(t, e, i) { 1290 var n = !0 !== i; 1291 return d.warnOnce("Accessing UI is deprecated. Call 'removeError' on the instance directly. Please comment in issue 1073 as to your need to call this method."), t.removeError(e, { 1292 updateClass: n 1293 }); 1294 }, 1295 getErrorsMessages: function getErrorsMessages(t) { 1296 return d.warnOnce("Accessing UI is deprecated. Call 'getErrorsMessages' on the instance directly."), t.getErrorsMessages(); 1297 } 1298 }, h.each("addError updateError".split(" "), function (t, a) { 1299 window.ParsleyUI[a] = function (t, e, i, n, r) { 1300 var s = !0 !== r; 1301 return d.warnOnce("Accessing UI is deprecated. Call '".concat(a, "' on the instance directly. Please comment in issue 1073 as to your need to call this method.")), t[a](e, { 1302 message: i, 1303 assert: n, 1304 updateClass: s 1305 }); 1306 }; 1307 }), !1 !== window.ParsleyConfig.autoBind && h(function () { 1308 h("[data-parsley-validate]").length && h("[data-parsley-validate]").parsley(); 1309 }); 1310 1311 var V = h({}), 1312 P = function P() { 1313 d.warnOnce("Parsley's pubsub module is deprecated; use the 'on' and 'off' methods on parsley instances or window.Parsley"); 1314 }; 1315 1316 function O(e, i) { 1317 return e.parsleyAdaptedCallback || (e.parsleyAdaptedCallback = function () { 1318 var t = Array.prototype.slice.call(arguments, 0); 1319 t.unshift(this), e.apply(i || V, t); 1320 }), e.parsleyAdaptedCallback; 1321 } 1322 1323 var T = "parsley:"; 1324 1325 function M(t) { 1326 return 0 === t.lastIndexOf(T, 0) ? t.substr(T.length) : t; 1327 } 1328 1329 return h.listen = function (t, e) { 1330 var i; 1331 if (P(), "object" === r(arguments[1]) && "function" == typeof arguments[2] && (i = arguments[1], e = arguments[2]), "function" != typeof e) throw new Error("Wrong parameters"); 1332 window.Parsley.on(M(t), O(e, i)); 1333 }, h.listenTo = function (t, e, i) { 1334 if (P(), !(t instanceof b || t instanceof y)) throw new Error("Mu
1334st give Parsley instance"); 1335 if ("string" != typeof e || "function" != typeof i) throw new Error("Wrong parameters"); 1336 t.on(M(e), O(i)); 1337 }, h.unsubscribe = function (t, e) { 1338 if (P(), "string" != typeof t || "function" != typeof e) throw new Error("Wrong arguments"); 1339 window.Parsley.off(M(t), e.parsleyAdaptedCallback); 1340 }, h.unsubscribeTo = function (t, e) { 1341 if (P(), !(t instanceof b || t instanceof y)) throw new Error("Must give Parsley instance"); 1342 t.off(M(e)); 1343 }, h.unsubscribeAll = function (e) { 1344 P(), window.Parsley.off(M(e)), h("form,input,textarea,select").each(function () { 1345 var t = h(this).data("Parsley"); 1346 t && t.off(M(e)); 1347 }); 1348 }, h.emit = function (t, e) { 1349 var i; 1350 P(); 1351 var n = e instanceof b || e instanceof y, 1352 r = Array.prototype.slice.call(arguments, n ? 2 : 1); 1353 r.unshift(M(t)), n || (e = window.Parsley), (i = e).trigger.apply(i, u(r)); 1354 }, h.extend(!0, x, { 1355 asyncValidators: { 1356 "default": { 1357 fn: function fn(t) { 1358 return 200 <= t.status && t.status < 300; 1359 }, 1360 url: !1 1361 }, 1362 reverse: { 1363 fn: function fn(t) { 1364 return t.status < 200 || 300 <= t.status; 1365 }, 1366 url: !1 1367 } 1368 }, 1369 addAsyncValidator: function addAsyncValidator(t, e, i, n) { 1370 return x.asyncValidators[t] = { 1371 fn: e, 1372 url: i || !1, 1373 options: n || {} 1374 }, this; 1375 } 1376 }), x.addValidator("remote", { 1377 requirementType: { 1378 "": "string", 1379 validator: "string", 1380 reverse: "boolean", 1381 options: "object" 1382 }, 1383 validateString: function validateString(t, e, i, n) { 1384 var r, 1385 s, 1386 a = {}, 1387 o = i.validator || (!0 === i.reverse ? "reverse" : "default"); 1388 if (void 0 === x.asyncValidators[o]) throw new Error("Calling an undefined async validator: `" + o + "`"); 1389 -1 < (e = x.asyncValidators[o].url || e).indexOf("{value}") ? e = e.replace("{value}", encodeURIComponent(t)) : a[n.element.getAttribute("name") || n.element.getAttribute("id")] = t; 1390 var l = h.extend(!0, i.options || {}, x.asyncValidators[o].options); 1391 r = h.extend(!0, {}, { 1392 url: e, 1393 data: a, 1394 type: "GET" 1395 }, l), n.trigger("field:ajaxoptions", n, r), s = h.param(r), void 0 === x._remoteCache && (x._remoteCache = {}); 1396 1397 var u = x._remoteCache[s] = x._remoteCache[s] || h.ajax(r), 1398 d = function d() { 1399 var t = x.asyncValidators[o].fn.call(n, u, e, i); 1400 return t || (t = h.Deferred().reject()), h.when(t); 1401 }; 1402 1403 return u.then(d, d); 1404 }, 1405 priority: -1 1406 }), x.on("form:submit", function () { 1407 x._remoteCache = {}; 1408 }), s.prototype.addAsyncValidator = function () { 1409 return d.warnOnce("Accessing the method `addAsyncValidator` through an instance is deprecated. Simply call `Parsley.addAsyncValidator(...)`"), x.addAsyncValidator.apply(x, arguments); 1410 }, x.addMessages("en", { 1411 defaultMessage: "This value seems to be invalid.", 1412 type: { 1413 email: "This value should be a valid email.", 1414 url: "This value should be a valid url.", 1415 number: "This value should be a valid number.", 1416 integer: "This value should be a valid integer.", 1417 digits: "This value should be digits.", 1418 alphanum: "This value should be alphanumeric." 1419 }, 1420 notblank: "This value should not be blank.", 1421 required: "This value is required.", 1422 pattern: "This value seems to be invalid.", 1423 min: "This value should be greater than or equal to %s.", 1424 max: "This value should be lower than or equal to %s.", 1425 range: "This value should be between %s and %s.", 1426 minlength: "This value is too short. It should have %s characters or more.", 1427 maxlength: "This value is too long. It should have %s characters or fewer.", 1428 length: "This value length is invalid. It should be between %s and %s characters long.", 1429 mincheck: "You must select at least %s choices.", 1430 maxcheck: "You must select %s choices or fewer.", 1431 check: "You must select between %s and %s choices.", 1432 equalto: "This value should be the same.", 1433 euvatin: "It's not a valid VAT Identification Number." 1434 }), x.setLocale("en"), new function () { 1435 var n = this, 1436 r = window || global; 1437 o(this, { 1438 isNativeEvent: function isNativeEvent(t) { 1439 return t.originalEvent && !1 !== t.originalEvent.isTrusted; 1440 }, 1441 fakeInputEvent: function fakeInputEvent(t) { 1442 n.isNativeEvent(t) && h(t.target).trigger("input"); 1443 }, 1444 misbehaves: function misbehaves(t) { 1445 n.isNativeEvent(t) && (n.behavesOk(t), h(document).on("change.inputevent", t.data.selector, n.fakeInputEvent), n.fakeInputEvent(t)); 1446 }, 1447 behavesOk: function behavesOk(t) { 1448 n.isNativeEvent(t) && h(document).off("input.inputevent", t.data.selector, n.behavesOk).off("change.inputevent", t.data.selector, n.misbehaves); 1449 }, 1450 install: function install() { 1451 if (!r.inputEventPatched) { 1452 r.inputEventPatched = "0.0.3"; 1453 1454 for (var t = ["select", 'input[type="checkbox"]', 'input[type="radio"]', 'input[type="file"]'], e = 0; e < t.length; e++) { 1455 var i = t[e]; 1456 h(document).on("input.inputevent", i, { 1457 selector: i 1458 }, n.behavesOk).on("change.inputevent", i, { 1459 selector: i 1460 }, n.misbehaves); 1461 } 1462 } 1463 }, 1464 uninstall: function uninstall() { 1465 delete r.inputEventPatched, h(document).off(".inputevent"); 1466 } 1467 }); 1468 }().install(), x; 1469}); 1470$(function () { 1471 $('.input-field').each(function () { 1472 canShowFloatLabel($(this)); 1473 }); 1474 $(document).on('input', '.input-field', function () { 1475 canShowFloatLabel($(this)); 1476 }); 1477 checkSelectChosen(); 1478}); 1479 1480function checkInputIsValid(input) { 1481 $(input).parsley().validate(); 1482} 1483 1484function removeValidationParsley(input) { 1485 $(input).parsley().reset(); 1486} 1487 1488function removeFloatLabel(input) { 1489 input.removeClass('input-not-empty'); 1490} 1491 1492function canShowFloatLabel(input) { 1493 if (input.val()) { 1494 input.addClass('input-not-empty'); 1495 } else { 1496 input.removeClass('input-not-empty'); 1497 } 1498} 1499 1500var checkSelectChosen = function checkSelectChosen() { 1501 if ($('.chosen-select').length > 0) { 1502 var disableSearch = $('.chosen-select').data('disableSearch') != undefined; 1503 $('.chosen-select').chosen({ 1504 width: '100%', 1505 no_results_text: "Nenhum resultado encontrado:", 1506 disable_search: disableSearch 1507 }); 1508 1509 if ($('.form').length > 0) { 1510 $('.form').parsley().on('field:error', function () { 1511 if (this.$element[0].type == 'select-multiple' || this.$element[0].type == 'select-one') { 1512 var chosen = this.$element.next('.chosen-container-single, .chosen-container-multi'); 1513 1514 if (chosen.length > 0) { 1515 chosen.find('.chosen-single, .chosen-choices').css('border-bottom', '1px solid #FF1E12'); 1516 chosen.next('.input-field-label').css('color', '#FF1E12'); 1517 } 1518 } 1519 }).on('field:success', function () { 1520 if (this.$element[0].type == 'select-multiple' || this.$element[0].type == 'select-one') { 1521 var chosen = this.$element.next('.chosen-container-single, .chosen-container-multi'); 1522 1523 if (chosen.length > 0) { 1524 chosen.find('.chosen-single, .chosen-choices').css('border', ''); 1525 chosen.next('.input-field-label').css('color', '#B2B2B2'); 1526 } 1527 } 1528 }); 1529 } 1530 } 1531}; 1532 1533$(function () { 1534 maskFields(); 1535 addCustomValidation(); 1536}); 1537/*Aplica mascaras para determinados campos*/ 1538 1539function maskFields() { 1540 /*CNPJ*/ 1541 $(document).on('focus', '[cnpj-mask]', function () { 1542 $(this).mask('00.000.000/0000-00'); 1543 }); 1544 /*Telefone fixo*/ 1545 1546 $(document).on('focus', '[phone-mask]', function () { 1547 $(this).mask('(00) 0000-0000'); 1548 }); 1549 /*Celular*/ 1550 1551 $(document).on('focus', '[cellphone-mask]', function () { 1552 //Mascara para aceitar 8 ou 9 digitos. 1553 var maskBehavior = function maskBehavior(val) { 1554 return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009'; 1555 }, 1556 options = { 1557 onKeyPress: function onKeyPress(val, e, field, options) {
1558 field.mask(maskBehavior.apply({}, arguments), options); 1559 } 1560 }; 1561 1562 $(this).mask(maskBehavior, options); 1563 }); 1564 /*Data*/ 1565 1566 $(document).on('focus', '[date-mask]', function () { 1567 $(this).mask('00/00/0000'); 1568 }); 1569 $(document).on('focus', '[cep-mask]', function () { 1570 $(this).mask('00000-000'); 1571 }); 1572} 1573/*Validações customizadas para o plugin parsley */ 1574 1575 1576function addCustomValidation() { 1577 addCustomValidationBool = true; 1578 window.Parsley.addValidator("fullphone", function (a) { 1579 var b = "" != a ? a.substr(5) : "", 1580 c = /^9?[2-9][0-9]{3}\-[0-9]{4}$/, 1581 d = "" != a ? a.substr(1, 2) : "", 1582 e = ["11", "12", "13", "14", "15", "16", "17", "18", "19", "21", "22", "24", "27", "28", "31", "32", "33", "34", "35", "37", "38", "41", "42", "43", "44", "45", "46", "47", "48", "49", "51", "53", "54", "55", "61", "62", "63", "64", "65", "66", "67", "68", "69", "71", "73", "74", "75", "77", "79", "81", "82", "83", "84", "85", "86", "87", "88", "89", "91", "92", "93", "94", "95", "96", "97", "98", "99"]; 1583 return e.indexOf(d) > -1 && c.test(b) ? !0 : !1; 1584 }).addValidator("cpf", function (a) { 1585 if (cpf = a.replace(/[^\d]+/g, ""), "" == cpf) return !1; 1586 if (11 != cpf.length || "00000000000" == cpf || "11111111111" == cpf || "22222222222" == cpf || "33333333333" == cpf || "44444444444" == cpf || "55555555555" == cpf || "66666666666" == cpf || "77777777777" == cpf || "88888888888" == cpf || "99999999999" == cpf) return !1; 1587 1588 for (add = 0, i = 0; i < 9; i++) { 1589 add += parseInt(cpf.charAt(i)) * (10 - i); 1590 } 1591 1592 if (rev = 11 - add % 11, (10 == rev || 11 == rev) && (rev = 0), rev != parseInt(cpf.charAt(9))) return !1; 1593 1594 for (add = 0, i = 0; i < 10; i++) { 1595 add += parseInt(cpf.charAt(i)) * (11 - i); 1596 } 1597 1598 return rev = 11 - add % 11, (10 == rev || 11 == rev) && (rev = 0), rev != parseInt(cpf.charAt(10)) ? !1 : !0; 1599 }, 512).addValidator("date", function (a, b) { 1600 var c = a.split("/"), 1601 d = new Date(c[1] + "/" + c[0] + "/" + c[2]); 1602 return d.getMonth() + 1 === +c[1] && d.getDate() === +c[0] && d.getFullYear() === +c[2]; 1603 }).addValidator("month_year", function (a) { 1604 var b = /^(0[1-9]|1[0-2])$/, 1605 c = a.split("/"), 1606 d = c[0], 1607 e = "20" + c[1], 1608 f = new Date(e, d), 1609 g = new Date(), 1610 h = new Date(g.getFullYear(), g.getMonth()); 1611 return null === d.match(b) || f > h == !1 ? !1 : !0; 1612 }).addValidator('cnpj', function (value, requirement) { 1613 var cnpj = value.replace(/[^0-9]/g, ''), 1614 len = cnpj.length - 2, 1615 numbers = cnpj.substring(0, len), 1616 digits = cnpj.substring(len), 1617 add = 0, 1618 pos = len - 7, 1619 invalidCNPJ = ['00000000000000', '11111111111111', '22222222222222', '33333333333333', '44444444444444', '55555555555555', '66666666666666', '77777777777777', '88888888888888', '99999999999999'], 1620 result; 1621 1622 if (cnpj.length < 11 || $.inArray(cnpj, invalidCNPJ) !== -1) { 1623 return false; 1624 } 1625 1626 for (i = len; i >= 1; i--) { 1627 add = add + parseInt(numbers.charAt(len - i)) * pos--; 1628 1629 if (pos < 2) { 1630 pos = 9; 1631 } 1632 } 1633 1634 result = add % 11 < 2 ? 0 : 11 - add % 11; 1635 1636 if (result != digits.charAt(0)) { 1637 return false; 1638 } 1639 1640 len = len + 1; 1641 numbers = cnpj.substring(0, len); 1642 add = 0; 1643 pos = len - 7; 1644 1645 for (i = 13; i >= 1; i--) { 1646 add = add + parseInt(numbers.charAt(len - i)) * pos--; 1647 1648 if (pos < 2) { 1649 pos = 9; 1650 } 1651 } 1652 1653 result = add % 11 < 2 ? 0 : 11 - add % 11; 1654 1655 if (result != digits.charAt(1)) { 1656 return false; 1657 } 1658 1659 return true; 1660 }, 32).addValidator('date_greater_or_equal_to', function (value, comparedate) { 1661 if (comparedate != '') { 1662 moment.locale('pt-BR'); 1663 var array = comparedate.split(","); 1664 var date1 = moment(value, "DD/MM/YYYY"); 1665 var date2 = moment(array[0] == 'today' ? moment() : array[0], "DD/MM/YYYY"); 1666 1667 if (array.length > 1) { 1668 var date3 = moment(array[1] == 'today' ? moment() : array[1], "DD/MM/YYYY"); 1669 1670 if (moment(date1).isSameOrAfter(moment(), 'day') || moment(date1).isSame(date3, 'day')) { 1671 return true; 1672 } 1673 } else { 1674 if (moment(date1).isSameOrAfter(moment(), 'day')) { 1675 return true; 1676 } 1677 } 1678 1679 return false;
1680 } 1681 }); 1682} 1683 1684!function (i) { 1685 "use strict"; 1686 1687 "function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery); 1688}(function (i) { 1689 "use strict"; 1690 1691 var e = window.Slick || {}; 1692 (e = function () { 1693 var e = 0; 1694 return function (t, o) { 1695 var s, 1696 n = this; 1697 n.defaults = { 1698 accessibility: !0, 1699 adaptiveHeight: !1, 1700 appendArrows: i(t), 1701 appendDots: i(t), 1702 arrows: !0, 1703 asNavFor: null, 1704 prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>', 1705 nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>', 1706 autoplay: !1, 1707 autoplaySpeed: 3e3, 1708 centerMode: !1, 1709 centerPadding: "50px", 1710 cssEase: "ease", 1711 customPaging: function customPaging(e, t) { 1712 return i('<button type="button" />').text(t + 1); 1713 }, 1714 dots: !1, 1715 dotsClass: "slick-dots", 1716 draggable: !0, 1717 easing: "linear", 1718 edgeFriction: .35, 1719 fade: !1, 1720 focusOnSelect: !1, 1721 focusOnChange: !1, 1722 infinite: !0, 1723 initialSlide: 0, 1724 lazyLoad: "ondemand", 1725 mobileFirst: !1, 1726 pauseOnHover: !0, 1727 pauseOnFocus: !0, 1728 pauseOnDotsHover: !1, 1729 respondTo: "window", 1730 responsive: null, 1731 rows: 1, 1732 rtl: !1, 1733 slide: "", 1734 slidesPerRow: 1, 1735 slidesToShow: 1, 1736 slidesToScroll: 1, 1737 speed: 500, 1738 swipe: !0, 1739 swipeToSlide: !1, 1740 touchMove: !0, 1741 touchThreshold: 5, 1742 useCSS: !0, 1743 useTransform: !0, 1744 variableWidth: !1, 1745 vertical: !1, 1746 verticalSwiping: !1, 1747 waitForAnimate: !0, 1748 zIndex: 1e3 1749 }, n.initials = { 1750 animating: !1, 1751 dragging: !1, 1752 autoPlayTimer: null, 1753 currentDirection: 0, 1754 currentLeft: null, 1755 currentSlide: 0, 1756 direction: 1, 1757 $dots: null, 1758 listWidth: null, 1759 listHeight: null, 1760 loadIndex: 0, 1761 $nextArrow: null, 1762 $prevArrow: null, 1763 scrolling: !1, 1764 slideCount: null, 1765 slideWidth: null, 1766 $slideTrack: null, 1767 $slides: null, 1768 sliding: !1, 1769 slideOffset: 0, 1770 swipeLeft: null, 1771 swiping: !1, 1772 $list: null, 1773 touchObject: {}, 1774 transformsEnabled: !1, 1775 unslicked: !1 1776 }, i.extend(n, n.initials), n.activeBreakpoint = null, n.animType = null, n.animProp = null, n.breakpoints = [], n.breakpointSettings = [], n.cssTransitions = !1, n.focussed = !1, n.interrupted = !1, n.hidden = "hidden", n.paused = !0, n.positionProp = null, n.respondTo = null, n.rowCount = 1, n.shouldClick = !0, n.$slider = i(t), n.$slidesCache = null, n.transformType = null, n.transitionType = null, n.visibilityChange = "visibilitychange", n.windowWidth = 0, n.windowTimer = null, s = i(t).data("slick") || {}, n.options = i.extend({}, n.defaults, o, s), n.currentSlide = n.options.initialSlide, n.originalSettings = n.options, void 0 !== document.mozHidden ? (n.hidden = "mozHidden", n.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (n.hidden = "webkitHidden", n.visibilityChange = "webkitvisibilitychange"), n.autoPlay = i.proxy(n.autoPlay, n), n.autoPlayClear = i.proxy(n.autoPlayClear, n), n.autoPlayIterator = i.proxy(n.autoPlayIterator, n), n.changeSlide = i.proxy(n.changeSlide, n), n.clickHandler = i.proxy(n.clickHandler, n), n.selectHandler = i.proxy(n.selectHandler, n), n.setPosition = i.proxy(n.setPosition, n), n.swipeHandler = i.proxy(n.swipeHandler, n), n.dragHandler = i.proxy(n.dragHandler, n), n.keyHandler = i.proxy(n.keyHandler, n), n.instanceUid = e++, n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, n.registerBreakpoints(), n.init(!0); 1777 }; 1778 }()).prototype.activateADA = function () { 1779 this.$slideTrack.find(".slick-active").attr({ 1780 "aria-hidden": "false" 1781 }).find("a, input, button, select").attr({ 1782 tabindex: "0" 1783 }); 1784 }, e.prototype.addSlide = e.prototype.slickAdd = function (e, t, o) { 1785 var s = this; 1786 if ("boolean" == typeof t) o = t, t = null;else if (t < 0 || t >= s.slideCount) return !1; 1787 s.unload(), "number" == typeof t ? 0 === t && 0 === s.$slides.length ? i(e).appendTo(s.$slideTrack) : o ? i(e).insertBefore(s.$slides.eq(t)) : i(e).insertAfter(s.$slides.eq(t)) : !0 === o ? i(e).prependTo(s.$slideTrack) : i(e).appendTo(s.$slideTrack), s.$slides = s.$slideTrack.children(this.options.slide), s.$slideTrack.children(this.options.slide).detach(), s.$slideTrack.append(s.$slides), s.$slides.each(function (e, t) { 1788 i(t).attr("data-slick-index", e); 1789 }), s.$slidesCache = s.$slides, s.reinit(); 1790 }, e.prototype.animateHeight = function () { 1791 var i = this; 1792 1793 if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) { 1794 var e = i.$slides.eq(i.currentSlide).outerHeight(!0); 1795 i.$list.animate({ 1796 height: e 1797 }, i.options.speed); 1798 } 1799 }, e.prototype.animateSlide = function (e, t) { 1800 var o = {}, 1801 s = this; 1802 s.animateHeight(), !0 === s.options.rtl && !1 === s.options.vertical && (e = -e), !1 === s.transformsEnabled ? !1 === s.options.vertical ? s.$slideTrack.animate({ 1803 left: e 1804 }, s.options.speed, s.options.easing, t) : s.$slideTrack.animate({ 1805 top: e 1806 }, s.options.speed, s.options.easing, t) : !1 === s.cssTransitions ? (!0 === s.options.rtl && (s.currentLeft = -s.currentLeft), i({ 1807 animStart: s.currentLeft 1808 }).animate({ 1809 animStart: e
1810 }, { 1811 duration: s.options.speed, 1812 easing: s.options.easing, 1813 step: function step(i) { 1814 i = Math.ceil(i), !1 === s.options.vertical ? (o[s.animType] = "translate(" + i + "px, 0px)", s.$slideTrack.css(o)) : (o[s.animType] = "translate(0px," + i + "px)", s.$slideTrack.css(o)); 1815 }, 1816 complete: function complete() { 1817 t && t.call(); 1818 } 1819 })) : (s.applyTransition(), e = Math.ceil(e), !1 === s.options.vertical ? o[s.animType] = "translate3d(" + e + "px, 0px, 0px)" : o[s.animType] = "translate3d(0px," + e + "px, 0px)", s.$slideTrack.css(o), t && setTimeout(function () { 1820 s.disableTransition(), t.call(); 1821 }, s.options.speed)); 1822 }, e.prototype.getNavTarget = function () { 1823 var e = this, 1824 t = e.options.asNavFor; 1825 return t && null !== t && (t = i(t).not(e.$slider)), t; 1826 }, e.prototype.asNavFor = function (e) { 1827 var t = this.getNavTarget(); 1828 null !== t && "object" == _typeof(t) && t.each(function () { 1829 var t = i(this).slick("getSlick"); 1830 t.unslicked || t.slideHandler(e, !0); 1831 }); 1832 }, e.prototype.applyTransition = function (i) { 1833 var e = this, 1834 t = {}; 1835 !1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t); 1836 }, e.prototype.autoPlay = function () { 1837 var i = this; 1838 i.autoPlayClear(), i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed)); 1839 }, e.prototype.autoPlayClear = function () { 1840 var i = this; 1841 i.autoPlayTimer && clearInterval(i.autoPlayTimer); 1842 }, e.prototype.autoPlayIterator = function () { 1843 var i = this, 1844 e = i.currentSlide + i.options.slidesToScroll; 1845 i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll, i.currentSlide - 1 == 0 && (i.direction = 1))), i.slideHandler(e)); 1846 }, e.prototype.buildArrows = function () { 1847 var e = this; 1848 !0 === e.options.arrows && (e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow"), e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow"), e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows), !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({ 1849 "aria-disabled": "true", 1850 tabindex: "-1" 1851 })); 1852 }, e.prototype.buildDots = function () { 1853 var e, 1854 t, 1855 o = this; 1856 1857 if (!0 === o.options.dots) { 1858 for (o.$slider.addClass("slick-dotted"), t = i("<ul />").addClass(o.options.dotsClass), e = 0; e <= o.getDotCount(); e += 1) { 1859 t.append(i("<li />").append(o.options.customPaging.call(this, o, e))); 1860 } 1861 1862 o.$dots = t.appendTo(o.options.appendDots), o.$dots.find("li").first().addClass("slick-active"); 1863 } 1864 }, e.prototype.buildOut = function () { 1865 var e = this; 1866 e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function (e, t) { 1867 i(t).attr("data-slick-index", e).data("originalStyling", i(t).attr("style") || ""); 1868 }), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? i('<div class="slick-track"/>').appendTo(e.$slider) : e.$slides.wrapAll('<div class="slick-track"/>').parent(), e.$list = e.$slideTrack.wrap('<div class="slick-list"/>').parent(), e.$slideTrack.css("opacity", 0), !0 !== e.options.centerMode && !0 !== e.options.swipeToSlide || (e.options.slidesToScroll = 1), i("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), !0 === e.options.draggable && e.$list.addClass("draggable"); 1869 }, e.prototype.buildRows = function () { 1870 var i, 1871 e, 1872 t, 1873 o, 1874 s, 1875 n, 1876 r, 1877 l = this; 1878 1879 if (o = document.createDocumentFragment(), n = l.$slider.children(), l.options.rows > 1) { 1880 for (r = l.options.slidesPerRow * l.options.rows, s = Math.ceil(n.length / r), i = 0; i < s; i++) { 1881 var d = document.createElement("div"); 1882 1883 for (e = 0; e < l.options.rows; e++) { 1884 var a = document.createElement("div"); 1885 1886 for (t = 0; t < l.options.slidesPerRow; t++) { 1887 var c = i * r + (e * l.options.slidesPerRow + t); 1888 n.get(c) && a.appendChild(n.get(c)); 1889 } 1890 1891 d.appendChild(a); 1892 } 1893 1894 o.appendChild(d); 1895 } 1896 1897 l.$slider.empty().append(o), l.$slider.children().children().children().css({ 1898 width: 100 / l.options.slidesPerRow + "%", 1899 display: "inline-block" 1900 }); 1901 } 1902 }, e.prototype.checkResponsive = function (e, t) { 1903 var o, 1904 s, 1905 n, 1906 r = this, 1907 l = !1, 1908 d = r.$slider.width(), 1909 a = window.innerWidth || i(window).width(); 1910 1911 if ("window" === r.respondTo ? n = a : "slider" === r.respondTo ? n = d : "min" === r.respondTo && (n = Math.min(a, d)), r.options.responsive && r.options.responsive.length && null !== r.options.responsive) { 1912 s = null; 1913 1914 for (o in r.breakpoints) { 1915 r.breakpoints.hasOwnProperty(o) && (!1 === r.originalSettings.mobileFirst ? n < r.breakpoints[o] && (s = r.breakpoints[o]) : n > r.breakpoints[o] && (s = r.breakpoints[o])); 1916 } 1917 1918 null !== s ? null !== r.activeBreakpoint ? (s !== r.activeBreakpoint || t) && (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.o
1918ptions = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : null !== r.activeBreakpoint && (r.activeBreakpoint = null, r.options = r.originalSettings, !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e), l = s), e || !1 === l || r.$slider.trigger("breakpoint", [r, l]); 1919 } 1920 }, e.prototype.changeSlide = function (e, t) { 1921 var o, 1922 s, 1923 n, 1924 r = this, 1925 l = i(e.currentTarget); 1926 1927 switch (l.is("a") && e.preventDefault(), l.is("li") || (l = l.closest("li")), n = r.slideCount % r.options.slidesToScroll != 0, o = n ? 0 : (r.slideCount - r.currentSlide) % r.options.slidesToScroll, e.data.message) { 1928 case "previous": 1929 s = 0 === o ? r.options.slidesToScroll : r.options.slidesToShow - o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide - s, !1, t); 1930 break; 1931 1932 case "next": 1933 s = 0 === o ? r.options.slidesToScroll : o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide + s, !1, t); 1934 break; 1935 1936 case "index": 1937 var d = 0 === e.data.index ? 0 : e.data.index || l.index() * r.options.slidesToScroll; 1938 r.slideHandler(r.checkNavigable(d), !1, t), l.children().trigger("focus"); 1939 break; 1940 1941 default: 1942 return; 1943 } 1944 }, e.prototype.checkNavigable = function (i) { 1945 var e, t; 1946 if (e = this.getNavigableIndexes(), t = 0, i > e[e.length - 1]) i = e[e.length - 1];else for (var o in e) { 1947 if (i < e[o]) { 1948 i = t; 1949 break; 1950 } 1951 1952 t = e[o]; 1953 } 1954 return i; 1955 }, e.prototype.cleanUpEvents = function () { 1956 var e = this; 1957 e.options.dots && null !== e.$dots && (i("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", i.proxy(e.interrupt, e, !0)).off("mouseleave.slick", i.proxy(e.interrupt, e, !1)), !0 === e.options.accessibility && e.$dots.off("keydown.slick", e.keyHandler)), e.$slider.off("focus.slick blur.slick"), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler), e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.
1957slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), i(document).off(e.visibilityChange, e.visibility), e.cleanUpSlideEvents(), !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().off("click.slick", e.selectHandler), i(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), i(window).off("resize.slick.slick-" + e.instanceUid, e.resize), i("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition); 1958 }, e.prototype.cleanUpSlideEvents = function () { 1959 var e = this; 1960 e.$list.off("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.off("mouseleave.slick", i.proxy(e.interrupt, e, !1)); 1961 }, e.prototype.cleanUpRows = function () { 1962 var i, 1963 e = this; 1964 e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"), e.$slider.empty().append(i)); 1965 }, e.prototype.clickHandler = function (i) { 1966 !1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault()); 1967 }, e.prototype.destroy = function (e) { 1968 var t = this; 1969 t.autoPlayClear(), t.touchObject = {}, t.cleanUpEvents(), i(".slick-cloned", t.$slider).detach(), t.$dots && t.$dots.remove(), t.$prevArrow && t.$prevArrow.length && (t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()), t.$nextArrow && t.$nextArrow.length && (t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()), t.$slides && (t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () { 1970 i(this).attr("style", i(this).data("originalStyling")); 1971 }), t.$slideTrack.children(this.options.slide).detach(), t.$slideTrack.detach(), t.$list.detach(), t.$slider.append(t.$slides)), t.cleanUpRows(), t.$slider.removeClass("slick-slider"), t.$slider.removeClass("slick-initialized"), t.$slider.removeClass("slick-dotted"), t.unslicked = !0, e || t.$slider.trigger("destroy", [t]); 1972 }, e.prototype.disableTransition = function (i) { 1973 var e = this, 1974 t = {}; 1975 t[e.transitionType] = "", !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t); 1976 }, e.prototype.fadeSlide = function (i, e) { 1977 var t = this; 1978 !1 === t.cssTransitions ? (t.$slides.eq(i).css({ 1979 zIndex: t.options.zIndex 1980 }), t.$slides.eq(i).animate({ 1981 opacity: 1 1982 }, t.options.speed, t.options.easing, e)) : (t.applyTransition(i), t.$slides.eq(i).css({ 1983 opacity: 1, 1984 zIndex: t.options.zIndex 1985 }), e && setTimeout(function () { 1986 t.disableTransition(i), e.call(); 1987 }, t.options.speed)); 1988 }, e.prototype.fadeSlideOut = function (i) { 1989 var e = this; 1990 !1 === e.cssTransitions ? e.$slides.eq(i).animate({ 1991 opacity: 0, 1992 zIndex: e.options.zIndex - 2 1993 }, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({ 1994 opacity: 0, 1995 zIndex: e.options.zIndex - 2 1996 })); 1997 }, e.prototype.filterSlides = e.prototype.slickFilter = function (i) { 1998 var e = this; 1999 null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit()); 2000 }, e.prototype.focusHandler = function () { 2001 var e = this; 2002 e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function (t) { 2003 t.stopImmediatePropagation(); 2004 var o = i(this); 2005 setTimeout(function () { 2006 e.options.pauseOnFocus && (e.focussed = o.is(":focus"), e.autoPlay()); 2007 }, 0); 2008 }); 2009 }, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function () { 2010 return this.currentSlide; 2011 }, e.prototype.getDotCount = function () { 2012 var i = this, 2013 e = 0, 2014 t = 0, 2015 o = 0; 2016 if (!0 === i.options.infinite) { 2017 if (i.slideCount <= i.options.slidesToShow) ++o;else for (; e < i.slideCount;) { 2018 ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2019 } 2020 }
2020 else if (!0 === i.options.centerMode) o = i.slideCount;else if (i.options.asNavFor) for (; e < i.slideCount;) { 2021 ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2022 } else o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll); 2023 return o - 1; 2024 }, e.prototype.getLeft = function (i) { 2025 var e, 2026 t, 2027 o, 2028 s, 2029 n = this, 2030 r = 0; 2031 return n.slideOffset = 0, t = n.$slides.first().outerHeight(!0), !0 === n.options.infinite ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1, s = -1, !0 === n.options.vertical && !0 === n.options.centerMode && (2 === n.options.slidesToShow ? s = -1.5 : 1 === n.options.slidesToShow && (s = -2)), r = t * n.options.slidesToShow * s), n.slideCount % n.options.slidesToScroll != 0 && i + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (i > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (i - n.slideCount)) * n.slideWidth * -1, r = (n.options.slidesToShow - (i - n.slideCount)) * t * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1, r = n.slideCount % n.options.slidesToScroll * t * -1))) : i + n.options.slidesToShow > n.slideCount && (n.slideOffset = (i + n.options.slidesToShow - n.slideCount) * n.slideWidth, r = (i + n.options.slidesToShow - n.slideCount) * t), n.slideCount <= n.options.slidesToShow && (n.slideOffset = 0, r = 0), !0 === n.options.centerMode && n.slideCount <= n.options.slidesToShow ? n.slideOffset = n.slideWidth * Math.floor(n.options.slidesToShow) / 2 - n.slideWidth * n.slideCount / 2 : !0 === n.options.centerMode && !0 === n.options.infinite ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : !0 === n.options.centerMode && (n.slideOffset = 0, n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)), e = !1 === n.options.vertical ? i * n.slideWidth * -1 + n.slideOffset : i * t * -1 + r, !0 === n.options.variableWidth && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, !0 === n.options.centerMode && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow + 1), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, e += (n.$list.width() - o.outerWidth()) / 2)), e; 2032 }, e.prototype.getOption = e.prototype.slickGetOption = function (i) { 2033 return this.options[i]; 2034 }, e.prototype.getNavigableIndexes = function () { 2035 var i, 2036 e = this, 2037 t = 0, 2038 o = 0, 2039 s = []; 2040 2041 for (!1 === e.options.infinite ? i = e.slideCount : (t = -1 * e.options.slidesToScroll, o = -1 * e.options.slidesToScroll, i = 2 * e.slideCount); t < i;) { 2042 s.push(t), t = o + e.options.slidesToScroll, o += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow; 2043 } 2044 2045 return s; 2046 }, e.prototype.getSlick = function () { 2047 return this; 2048 }, e.prototype.getSlideCount = function () { 2049 var e, 2050 t, 2051 o = this; 2052 return t = !0 === o.options.centerMode ? o.slideWidth * Math.floor(o.options.slidesToShow / 2) : 0, !0 === o.options.swipeToSlide ? (o.$slideTrack.find(".slick-slide").each(function (s, n) { 2053 if (n.offsetLeft - t + i(n).outerWidth() / 2 > -1 * o.swipeLeft) return e = n, !1; 2054 }), Math.abs(i(e).attr("data-slick-index") - o.currentSlide) || 1) : o.options.slidesToScroll; 2055 }, e.prototype.goTo = e.prototype.slickGoTo = function (i, e) { 2056 this.changeSlide({ 2057 data: { 2058 message: "index", 2059 index: parseInt(i) 2060 } 2061 }, e); 2062 }, e.prototype.init = function (e) { 2063 var t = this; 2064 i(t.$slider).hasClass("slick-initialized") || (i(t.$slider).addClass("slick-initialized"), t.buildRows(), t.buildOut(), t.setProps(), t.startLoad(), t.loadSlider(), t.initializeEvents(), t.updateArrows(), t.updateDots(), t.checkResponsive(!0), t.focusHandler()), e && t.$slider.trigger("init", [t]), !0 === t.options.accessibility && t.initADA(), t.options.autoplay && (t.paused = !1, t.autoPlay()); 2065 }, e.prototype.initADA = function () { 2066 var e = this,
2067 t = Math.ceil(e.slideCount / e.options.slidesToShow), 2068 o = e.getNavigableIndexes().filter(function (i) { 2069 return i >= 0 && i < e.slideCount; 2070 }); 2071 e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({ 2072 "aria-hidden": "true", 2073 tabindex: "-1" 2074 }).find("a, input, button, select").attr({ 2075 tabindex: "-1" 2076 }), null !== e.$dots && (e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function (t) { 2077 var s = o.indexOf(t); 2078 i(this).attr({ 2079 role: "tabpanel", 2080 id: "slick-slide" + e.instanceUid + t, 2081 tabindex: -1 2082 }), -1 !== s && i(this).attr({ 2083 "aria-describedby": "slick-slide-control" + e.instanceUid + s 2084 }); 2085 }), e.$dots.attr("role", "tablist").find("li").each(function (s) { 2086 var n = o[s]; 2087 i(this).attr({ 2088 role: "presentation" 2089 }), i(this).find("button").first().attr({ 2090 role: "tab", 2091 id: "slick-slide-control" + e.instanceUid + s, 2092 "aria-controls": "slick-slide" + e.instanceUid + n, 2093 "aria-label": s + 1 + " of " + t, 2094 "aria-selected": null, 2095 tabindex: "-1" 2096 }); 2097 }).eq(e.currentSlide).find("button").attr({ 2098 "aria-selected": "true", 2099 tabindex: "0" 2100 }).end()); 2101 2102 for (var s = e.currentSlide, n = s + e.options.slidesToShow; s < n; s++) { 2103 e.$slides.eq(s).attr("tabindex", 0); 2104 } 2105 2106 e.activateADA(); 2107 }, e.prototype.initArrowEvents = function () { 2108 var i = this; 2109 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", { 2110 message: "previous" 2111 }, i.changeSlide), i.$nextArrow.off("click.slick").on("click.slick", { 2112 message: "next" 2113 }, i.changeSlide), !0 === i.options.accessibility && (i.$prevArrow.on("keydown.slick", i.keyHandler), i.$nextArrow.on("keydown.slick", i.keyHandler))); 2114 }, e.prototype.initDotEvents = function () { 2115 var e = this; 2116 !0 === e.options.dots && (i("li", e.$dots).on("click.slick", { 2117 message: "index" 2118 }, e.changeSlide), !0 === e.options.accessibility && e.$dots.on("keydown.slick", e.keyHandler)), !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && i("li", e.$dots).on("mouseenter.slick", i.proxy(e.interrupt, e, !0)).on("mouseleave.slick", i.proxy(e.interrupt, e, !1)); 2119 }, e.prototype.initSlideEvents = function () { 2120 var e = this; 2121 e.options.pauseOnHover && (e.$list.on("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.on("mouseleave.slick", i.proxy(e.interrupt, e, !1))); 2122 }, e.prototype.initializeEvents = function () { 2123 var e = this; 2124 e.initArrowEvents(), e.initDotEvents(), e.initSlideEvents(), e.$list.on("touchstart.slick mousedown.slick", { 2125 action: "start" 2126 }, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", { 2127 action: "move" 2128 }, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", { 2129 action: "end" 2130 }
2130, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", { 2131 action: "end" 2132 }, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), i(document).on(e.visibilityChange, i.proxy(e.visibility, e)), !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), i(window).on("orientationchange.slick.slick-" + e.instanceUid, i.proxy(e.orientationChange, e)), i(window).on("resize.slick.slick-" + e.instanceUid, i.proxy(e.resize, e)), i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), i(e.setPosition); 2133 }, e.prototype.initUI = function () { 2134 var i = this; 2135 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show(); 2136 }, e.prototype.keyHandler = function (i) { 2137 var e = this; 2138 i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({ 2139 data: { 2140 message: !0 === e.options.rtl ? "next" : "previous" 2141 } 2142 }) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({ 2143 data: { 2144 message: !0 === e.options.rtl ? "previous" : "next" 2145 } 2146 })); 2147 }, e.prototype.lazyLoad = function () { 2148 function e(e) { 2149 i("img[data-lazy]", e).each(function () { 2150 var e = i(this), 2151 t = i(this).attr("data-lazy"), 2152 o = i(this).attr("data-srcset"), 2153 s = i(this).attr("data-sizes") || n.$slider.attr("data-sizes"), 2154 r = document.createElement("img"); 2155 r.onload = function () { 2156 e.animate({ 2157 opacity: 0 2158 }, 100, function () { 2159 o && (e.attr("srcset", o), s && e.attr("sizes", s)), e.attr("src", t).animate({ 2160 opacity: 1 2161 }, 200, function () { 2162 e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"); 2163 }), n.$slider.trigger("lazyLoaded", [n, e, t]); 2164 }); 2165 }, r.onerror = function () { 2166 e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, e, t]); 2167 }, r.src = t; 2168 }); 2169 } 2170 2171 var t, 2172 o, 2173 s, 2174 n = this; 2175 if (!0 === n.options.centerMode ? !0 === n.options.infinite ? s = (o = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (o = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), s = n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (o = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, s = Math.ceil(o + n.options.slidesToShow), !0 === n.options.fade && (o > 0 && o--, s <= n.slideCount && s++)), t = n.$slider.find(".slick-slide").slice(o, s), "anticipated" === n.options.lazyLoad) for (var r = o - 1, l = s, d = n.$slider.find(".slick-slide"), a = 0; a < n.options.slidesToScroll; a++) { 2176 r < 0 && (r = n.slideCount - 1), t = (t = t.add(d.eq(r))).add(d.eq(l)), r--, l++; 2177 } 2178 e(t), n.slideCount <= n.options.slidesToShow ? e(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? e(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && e(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow)); 2179 }, e.prototype.loadSlider = function () { 2180 var i = this; 2181 i.setPosition(), i.$slideTrack.css({ 2182 opacity: 1 2183 }), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad(); 2184 }, e.prototype.next = e.prototype.slickNext = function () { 2185 this.changeSlide({ 2186 data: { 2187 message: "next" 2188 } 2189 }); 2190 }, e.prototype.orientationChange = function () { 2191 var i = this; 2192 i.checkResponsive(), i.setPosition(); 2193 }, e.prototype.pause = e.prototype.slickPause = function () { 2194 var i = this; 2195 i.autoPlayClear(), i.paused = !0; 2196 }, e.prototype.play = e.prototype.slickPlay = function () { 2197 var i = this; 2198 i.autoPlay(), i.options.autoplay = !0, i.paused = !1, i.focussed = !1, i.interrupted = !1; 2199 }, e.prototype.postSlide = function (e) { 2200 var t = this; 2201 t.unslicked || (t.$slider.trigger("afterChange", [t, e]), t.animating = !1, t.slideCount > t.options.slidesToShow && t.setPosition(), t.swipeLeft = null, t.options.autoplay && t.autoPlay(), !0 === t.options.accessibility && (t.initADA(), t.options.focusOnChange && i(t.$slides.get(t.currentSlide)).attr("tabindex", 0).focus())); 2202 }, e.prototype.prev = e.prototype.slickPrev = function () { 2203 this.changeSlide({ 2204 data: { 2205 message: "previous" 2206 } 2207 }); 2208 }, e.prototype.preventDefault = function (i) { 2209 i.preventDefault(); 2210 }, e.prototype.progressiveLazyLoad = function (e) { 2211 e = e || 1; 2212 var t, 2213 o, 2214 s, 2215 n, 2216 r, 2217 l = this, 2218 d = i("img[data-lazy]", l.$slider); 2219 d.length ? (t = d.first(), o = t.attr("data-lazy"), s = t.attr("data-srcset"), n = t.attr("data-sizes") || l.$slider.attr("data-sizes"), (r = document.createElement("img")).onload = function () { 2220 s && (t.attr("srcset", s), n && t.attr("sizes", n)), t.attr("src", o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === l.options.adaptiveHeight && l.setPosition(), l.$slider.trigger("lazyLoaded", [l, t, o]), l.progressiveLazyLoad(); 2221 }, r.onerror = function () { 2222 e < 3 ? setTimeout(function () { 2223 l.progressiveLazyLoad(e + 1); 2224 }, 500) : (t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), l.$slider.trigger("lazyLoadError", [l, t, o]), l.progressiveLazyLoad()); 2225 }, r.src = o) : l.$slider.trigger("allImagesLoaded", [l]); 2226 }, e.prototype.refresh = function (e) { 2227 var t, 2228 o, 2229 s = this; 2230 o = s.slideCount - s.options.slidesToShow, !s.options.infinite && s.currentSlide > o && (s.currentSlide = o), s.slideCount <= s.options.slidesToShow && (s.currentSlide = 0), t = s.currentSlide, s.destroy(!0), i.extend(s, s.initials, { 2231 currentSlide: t 2232 }), s.init(), e || s.changeSlide({ 2233 data: { 2234 message: "index", 2235 index: t 2236 } 2237 }, !1); 2238 }, e.prototype.registerBreakpoints = function () { 2239 var e, 2240 t, 2241 o, 2242 s = this, 2243 n = s.options.responsive || null; 2244 2245 if ("array" === i.type(n) && n.length) { 2246 s.respondTo = s.options.respondTo || "window"; 2247 2248 for (e in n) { 2249 if (o = s.breakpoints.length - 1, n.hasOwnProperty(e)) { 2250 for (t = n[e].breakpoint; o >= 0;) { 2251 s.breakpoints[o] && s.breakpoints[o] === t && s.breakpoints.splice(o, 1), o--; 2252 } 2253 2254 s.breakpoints.push(t), s.breakpointSettings[t] = n[e].settings; 2255 } 2256 } 2257 2258 s.breakpoints.sort(function (i, e) { 2259 return s.options.mobileFirst ? i - e : e - i; 2260 }); 2261 } 2262 }, e.prototype.reinit = function () { 2263 var e = this; 2264 e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.cleanUpSlideEvents(), e.initSlideEvents(), e.checkResponsive(!1, !0), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.setPosition(), e.focusHandler(), e.paused = !e.options.autoplay, e.autoPlay(), e.$slider.trigger("reInit", [e]); 2265 }, e.prototype.resize = function () { 2266 var e = this; 2267 i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function () { 2268 e.windowWidth = i(window).width(), e.checkResponsive(), e.unslicked || e.setPosition(); 2269 }, 50)); 2270 }, e.prototype.removeSlide = e.prototype.slickRemove = function (i, e, t) { 2271 var o = this; 2272 if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i, o.slideCount < 1 || i < 0 || i > o.slideCount - 1) return !1; 2273 o.unload(), !0 === t ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(i).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit(); 2274 }, e.prototype.setCSS = function (i) { 2275 var e, 2276 t, 2277 o = this, 2278 s = {}; 2279 !0 === o.options.rtl && (i = -i), e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px", t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px", s[o.positionProp] = i, !1 === o.transformsEnabled ? o.$slideTrack.css(s) : (s = {}, !1 === o.cssTransitions ? (s[o.animType] = "translate(" + e + ", " + t + ")", o.$slideTrack.css(s)) : (s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)", o.$slideTrack.css(s))); 2280 }, e.prototype.setDimensions = function () { 2281 var i = this; 2282 !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({ 2283 padding: "0px " + i.options.centerPadding 2284 }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({ 2285 padding: i.options.centerPadding + " 0px" 2286 })), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length))); 2287 var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width(); 2288 !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e); 2289 }, e.prototype.setFade = function () { 2290 var e, 2291 t = this; 2292 t.$slides.each(function (o, s) { 2293 e = t.slideWidth * o * -1, !0 === t.options.rtl ? i(s).css({ 2294 position: "relative", 2295 right: e, 2296 top: 0, 2297 zIndex: t.options.zIndex - 2, 2298 opacity: 0 2299 }) : i(s).css({ 2300 position: "relative", 2301 left: e, 2302 top: 0, 2303 zIndex: t.options.zIndex - 2, 2304 opacity: 0 2305 }); 2306 }), t.$slides.eq(t.currentSlide).css({ 2307 zIndex: t.options.zIndex - 1, 2308 opacity: 1 2309 }); 2310 }, e.prototype.setHeight = function () { 2311 var i = this; 2312 2313 if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) { 2314 var e = i.$slides.eq(i.currentSlide).outerHeight(!0); 2315 i.$list.css("height", e); 2316 } 2317 }, e.prototype.setOption = e.prototype.slickSetOption = function () { 2318 var e, 2319 t, 2320 o, 2321 s, 2322 n, 2323 r = this, 2324 l = !1; 2325 if ("object" === i.type(arguments[0]) ? (o = arguments[0], l = arguments[1], n = "multiple") : "string" === i.type(arguments[0]) && (o = arguments[0], s = arguments[1], l = arguments[2], "responsive" === arguments[0] && "array" === i.type(arguments[1]) ? n = "responsive" : void 0 !== arguments[1] && (n = "single")), "single" === n) r.options[o] = s;else if ("multiple" === n) i.each(o, function (i, e) { 2326 r.options[i] = e; 2327 });else if ("responsive" === n) for (t in s) { 2328 if ("array" !== i.type(r.options.responsive)) r.options.responsive = [s[t]];else { 2329 for (e = r.options.responsive.length - 1; e >= 0;) { 2330 r.options.responsive[e].breakpoint === s[t].breakpoint && r.options.responsive.splice(e, 1), e--; 2331 } 2332 2333 r.options.responsive.push(s[t]); 2334 } 2335 } 2336 l && (r.unload(), r.reinit()); 2337 }, e.prototype.setPosition = function () { 2338 var i = this; 2339 i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i]); 2340 }, e.prototype.setProps = function () { 2341 var i = this, 2342 e = document.body.style; 2343 i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "
2343webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType; 2344 }, e.prototype.setSlideClasses = function (i) { 2345 var e, 2346 t, 2347 o, 2348 s, 2349 n = this; 2350 2351 if (t = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), n.$slides.eq(i).addClass("slick-current"), !0 === n.options.centerMode) { 2352 var r = n.options.slidesToShow % 2 == 0 ? 1 : 0; 2353 e = Math.floor(n.options.slidesToShow / 2), !0 === n.options.infinite && (i >= e && i <= n.slideCount - 1 - e ? n.$slides.slice(i - e + r, i + e + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = n.options.slidesToShow + i, t.slice(o - e + 1 + r, o + e + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === i ? t.eq(t.length - 1 - n.options.slidesToShow).addClass("slick-center") : i === n.slideCount - 1 && t.eq(n.options.slidesToShow).addClass("slick-center")), n.$slides.eq(i).addClass("slick-center"); 2354 } else i >= 0 && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : t.length <= n.options.slidesToShow ? t.addClass("slick-active").attr("aria-hidden", "false") : (s = n.slideCount % n.options.slidesToShow, o = !0 === n.options.infinite ? n.options.slidesToShow + i : i, n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i < n.options.slidesToShow ? t.slice(o - (n.options.slidesToShow - s), o + s).addClass("slick-active").attr("aria-hidden", "false") : t.slice(o, o + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")); 2355 2356 "ondemand" !== n.options.lazyLoad && "anticipated" !== n.options.lazyLoad || n.lazyLoad(); 2357 }, e.prototype.setupInfinite = function () { 2358 var e, 2359 t, 2360 o, 2361 s = this; 2362 2363 if (!0 === s.options.fade && (s.options.centerMode = !1), !0 === s.options.infinite && !1 === s.options.fade && (t = null, s.slideCount > s.options.slidesToShow)) { 2364 for (o = !0 === s.options.centerMode ? s.options.slidesToShow + 1 : s.options.slidesToShow, e = s.slideCount; e > s.slideCount - o; e -= 1) { 2365 t = e - 1, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t - s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned"); 2366 } 2367 2368 for (e = 0; e < o + s.slideCount; e += 1) { 2369 t = e, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t + s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned"); 2370 } 2371 2372 s.$slideTrack.find(".slick-cloned").find("[id]").each(function () { 2373 i(this).attr("id", ""); 2374 }); 2375 } 2376 }, e.prototype.interrupt = function (i) { 2377 var e = this; 2378 i || e.autoPlay(), e.interrupted = i; 2379 }, e.prototype.selectHandler = function (e) { 2380 var t = this, 2381 o = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide"), 2382 s = parseInt(o.attr("data-slick-index")); 2383 s || (s = 0), t.slideCount <= t.options.slidesToShow ? t.slideHandler(s, !1, !0) : t.slideHandler(s); 2384 }, e.prototype.slideHandler = function (i, e, t) { 2385 var o, 2386 s, 2387 n, 2388 r, 2389 l, 2390 d = null, 2391 a = this; 2392 if (e = e || !1, !(!0 === a.animating && !0 === a.options.waitForAnimate || !0 === a.options.fade && a.currentSlide === i)) if (!1 === e && a.asNavFor(i), o = i, d = a.getLeft(o), r = a.getLeft(a.currentSlide), a.currentLeft = null === a.swipeLeft ? r : a.swipeLeft, !1 === a.options.infinite && !1 === a.options.centerMode && (i < 0 || i > a.getDotCount() * a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function () { 2393 a.postSlide(o); 2394 }) : a.postSlide(o));else if (!1 === a.options.infinite && !0 === a.options.centerMode && (i < 0 || i > a.slideCount - a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function () { 2395 a.postSlide(o); 2396 }) : a.postSlide(o));else { 2397 if (a.options.autoplay && clearInterval(a.autoPlayTimer), s = o < 0 ? a.slideCount % a.options.slidesToScroll != 0 ? a.slideCount - a.slideCount % a.options.slidesToScroll : a.slideCount + o : o >= a.slideCount ? a.slideCount % a.options.slidesToScroll != 0 ? 0 : o - a.slideCount : o, a.animating = !0, a.$slider.trigger("beforeChange", [a, a.currentSlide, s]), n = a.currentSlide, a.currentSlide = s, a.setSlideClasses(a.currentSlide), a.options.asNavFor && (l = (l = a.getNavTarget()).slick("getSlick")).slideCount <= l.options.slidesToShow && l.setSlideClasses(a.currentSlide), a.updateDots(), a.updateArrows(), !0 === a.options.fade) return !0 !== t ? (a.fadeSlideOut(n), a.fadeSlide(s, function () { 2398 a.postSlide(s); 2399 })) : a.postSlide(s), void a.animateHeight(); 2400 !0 !== t ? a.animateSlide(d, function () { 2401 a.postSlide(s); 2402 }) : a.postSlide(s); 2403 } 2404 }, e.prototype.startLoad = function () { 2405 var i = this; 2406 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading"); 2407 }, e.prototype.swipeDirection = function () { 2408 var i, 2409 e, 2410 t, 2411 o, 2412 s = this; 2413 return i = s.touchObject.startX - s.touchObject.curX, e = s.touchObject.startY - s.touchObject.curY, t = Math.atan2(e, i), (o = Math.round(180 * t / Math.PI)) < 0 && (o = 360 - Math.abs(o)), o <= 45 && o >= 0 ? !1 === s.options.rtl ? "left" : "right" : o <= 360 && o >= 315 ? !1 === s.options.rtl ? "left" : "right" : o >= 135 && o <= 225 ? !1 === s.options.rtl ? "right" : "left" : !0 === s.options.verticalSwiping ? o >= 35 && o <= 135 ? "down" : "up" : "vertical"; 2414 }, e.prototype.swipeEnd = function (i) { 2415 var e, 2416 t, 2417 o = this; 2418 if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1, !1; 2419 if (o.interrupted = !1, o.shouldClick = !(o.touchObject.swipeLength > 10), void 0 === o.touchObject.curX) return !1; 2420 2421 if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) { 2422 switch (t = o.swipeDirection()) {
2423 case "left": 2424 case "down": 2425 e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0; 2426 break; 2427 2428 case "right": 2429 case "up": 2430 e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1; 2431 } 2432 2433 "vertical" != t && (o.slideHandler(e), o.touchObject = {}, o.$slider.trigger("swipe", [o, t])); 2434 } else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {}); 2435 }, e.prototype.swipeHandler = function (i) { 2436 var e = this; 2437 if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) { 2438 case "start": 2439 e.swipeStart(i); 2440 break; 2441 2442 case "move": 2443 e.swipeMove(i); 2444 break; 2445 2446 case "end": 2447 e.swipeEnd(i); 2448 } 2449 }, e.prototype.swipeMove = function (i) { 2450 var e, 2451 t, 2452 o, 2453 s, 2454 n, 2455 r, 2456 l = this; 2457 return n = void 0 !== i.originalEvent ? i.originalEvent.touches : null, !(!l.dragging || l.scrolling || n && 1 !== n.length) && (e = l.getLeft(l.currentSlide), l.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX, l.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY, l.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))), r = Math.round(Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))), !l.options.verticalSwiping && !l.swiping && r > 4 ? (l.scrolling = !0, !1) : (!0 === l.options.verticalSwiping && (l.touchObject.swipeLength = r), t = l.swipeDirection(), void 0 !== i.originalEvent && l.touchObject.swipeLength > 4 && (l.swiping = !0, i.preventDefault()), s = (!1 === l.options.rtl ? 1 : -1) * (l.touchObject.curX > l.touchObject.startX ? 1 : -1), !0 === l.options.verticalSwiping && (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1), o = l.touchObject.swipeLength, l.touchObject.edgeHit = !1, !1 === l.options.infinite && (0 === l.currentSlide && "right" === t || l.currentSlide >= l.getDotCount() && "left" === t) && (o = l.touchObject.swipeLength * l.options.edgeFriction, l.touchObject.edgeHit = !0), !1 === l.options.vertical ? l.swipeLeft = e + o * s : l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s, !0 === l.options.verticalSwiping && (l.swipeLeft = e + o * s), !0 !== l.options.fade && !1 !== l.options.touchMove && (!0 === l.animating ? (l.swipeLeft = null, !1) : void l.setCSS(l.swipeLeft)))); 2458 }, e.prototype.swipeStart = function (i) { 2459 var e, 2460 t = this; 2461 if (t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow) return t.touchObject = {}, !1; 2462 void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, t.dragging = !0; 2463 }, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function () { 2464 var i = this; 2465 null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit()); 2466 }, e.prototype.unload = function () { 2467 var e = this; 2468 i(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", ""); 2469 }
2469, e.prototype.unslick = function (i) { 2470 var e = this; 2471 e.$slider.trigger("unslick", [e, i]), e.destroy(); 2472 }, e.prototype.updateArrows = function () { 2473 var i = this; 2474 Math.floor(i.options.slidesToShow / 2), !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode ? (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"))); 2475 }, e.prototype.updateDots = function () { 2476 var i = this; 2477 null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").end(), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active")); 2478 }, e.prototype.visibility = function () { 2479 var i = this; 2480 i.options.autoplay && (document[i.hidden] ? i.interrupted = !0 : i.interrupted = !1); 2481 }, i.fn.slick = function () { 2482 var i, 2483 t, 2484 o = this, 2485 s = arguments[0], 2486 n = Array.prototype.slice.call(arguments, 1), 2487 r = o.length; 2488 2489 for (i = 0; i < r; i++) { 2490 if ("object" == _typeof(s) || void 0 === s ? o[i].slick = new e(o[i], s) : t = o[i].slick[s].apply(o[i].slick, n), void 0 !== t) return t; 2491 } 2492 2493 return o; 2494 }; 2495}); 2496/* 2497 slick-animation.js 2498 2499 Version: 0.3.3 Beta 2500 Author: Marvin Hübner 2501 Docs: https://github.com/marvinhuebner/slick-animation 2502 Repo: https://github.com/marvinhuebner/slick-animation 2503 */ 2504 2505!function (a) { 2506 a.fn.slickAnimation = function () { 2507 function n(a, n, t, i, o) { 2508 o = "undefined" != typeof o ? o : !1, 1 == n.opacity ? (a.addClass(t), a.addClass(i)) : (a.removeClass(t), a.removeClass(i)), o && a.css(n); 2509 } 2510 2511 function t(a, n) { 2512 return a ? 1e3 * a + 1e3 : n ? 1e3 * n : a || n ? 1e3 * a + 1e3 * n : 1e3; 2513 } 2514 2515 function i(a, n, t) { 2516 var i = ["animation-" + n, "-webkit-animation-" + n, "-moz-animation-" + n, "-o-animation-" + n, "-ms-animation-" + n], 2517 o = {}; 2518 i.forEach(function (a) { 2519 o[a] = t + "s"; 2520 }), a.css(o); 2521 } 2522 2523 var o = a(this), 2524 e = o.find(".slick-list .slick-track > div"), 2525 s = o.find('[data-slick-index="0"]'), 2526 r = "animated", 2527 c = { 2528 opacity: "1" 2529 }, 2530 d = { 2531 opacity: "0" 2532 }; 2533 return e.each(function () { 2534 var e = a(this); 2535 e.find("[data-animation-in]").each(function () { 2536 var u = a(this); 2537 u.css(d); 2538 var l = u.attr("data-animation-in"), 2539 f = u.attr("data-animation-out"), 2540 h = u.attr("data-delay-in"), 2541 m = u.attr("data-duration-in"), 2542 y = u.attr("data-delay-out"), 2543 C = u.attr("data-duration-out"); 2544 f ? (s.length > 0 && e.hasClass("slick-current") && (n(u, c, l, r, !0), h && i(u, "delay", h), m && i(u, "duration", m), setTimeout(function () { 2545 n(u, d, l, r), n(u, c, f, r), y && i(u, "delay", y), C && i(u, "duration", C); 2546 }, t(h, m))), o.on("afterChange", function (a, o, s) { 2547 e.hasClass("slick-current") && (n(u, c, l, r, !0), h && i(u, "delay", h), m && i(u, "duration", m), setTimeout(function () { 2548 n(u, d, l, r), n(u, c, f, r), y && i(u, "delay", y), C && i(u, "duration", C); 2549 }, t(h, m))); 2550 }), o.on("beforeChange", function (a, t, i) { 2551 n(u, d, f, r, !0); 2552 })) : (s.length > 0 && e.hasClass("slick-current") && (n(u, c, l, r, !0), h && i(u, "delay", h), m && i(u, "duration", m)), o.on("afterChange", function (a, t, o) { 2553 e.hasClass("slick-current") && (n(u, c, l, r, !0), h && i(u, "delay", h), m && i(u, "duration", m)); 2554 }), o.on("beforeChange", function (a, t, i) { 2555 n(u, d, l, r, !0); 2556 })); 2557 }); 2558 }), this; 2559 }; 2560}(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.