1/*! jQuery UI - v1.12.1 - 2016-09-14 2 * http://jqueryui.com 3 * Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js 4 * Copyright jQuery Foundation and other contributors; Licensed MIT */ 5 6(function (t) { 7 "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery); 8})(function (t) { 9 function e(t) { 10 for (var e = t.css("visibility"); "inherit" === e; ) 11 (t = t.parent()), (e = t.css("visibility")); 12 return "hidden" !== e; 13 } 14 function i(t) { 15 for (var e, i; t.length && t[0] !== document; ) { 16 if ( 17 ((e = t.css("position")), 18 ("absolute" === e || "relative" === e || "fixed" === e) && 19 ((i = parseInt(t.css("zIndex"), 10)), !isNaN(i) && 0 !== i)) 20 ) 21 return i; 22 t = t.parent(); 23 } 24 return 0; 25 } 26 function s() { 27 (this._curInst = null), 28 (this._keyEvent = !1), 29 (this._disabledInputs = []), 30 (this._datepickerShowing = !1), 31 (this._inDialog = !1), 32 (this._mainDivId = "ui-datepicker-div"), 33 (this._inlineClass = "ui-datepicker-inline"), 34 (this._appendClass = "ui-datepicker-append"), 35 (this._triggerClass = "ui-datepicker-trigger"), 36 (this._dialogClass = "ui-datepicker-dialog"), 37 (this._disableClass = "ui-datepicker-disabled"), 38 (this._unselectableClass = "ui-datepicker-unselectable"), 39 (this._currentClass = "ui-datepicker-current-day"), 40 (this._dayOverClass = "ui-datepicker-days-cell-over"), 41 (this.regional = []), 42 (this.regional[""] = { 43 closeText: "Done", 44 prevText: "Prev", 45 nextText: "Next", 46 currentText: "Today", 47 monthNames: [ 48 "January", 49 "February", 50 "March", 51 "April", 52 "May", 53 "June", 54 "July", 55 "August", 56 "September", 57 "October", 58 "November", 59 "December", 60 ], 61 monthNamesShort: [ 62 "Jan", 63 "Feb", 64 "Mar", 65 "Apr", 66 "May", 67 "Jun", 68 "Jul", 69 "Aug", 70 "Sep", 71 "Oct", 72 "Nov", 73 "Dec", 74 ], 75 dayNames: [ 76 "Sunday", 77 "Monday", 78 "Tuesday", 79 "Wednesday", 80 "Thursday", 81 "Friday", 82 "Saturday", 83 ], 84 dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 85 dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], 86 weekHeader: "Wk", 87 dateFormat: "mm/dd/yy", 88 firstDay: 0, 89 isRTL: !1, 90 showMonthAfterYear: !1, 91 yearSuffix: "", 92 }), 93 (this._defaults = { 94 showOn: "focus", 95 showAnim: "fadeIn", 96 showOptions: {}, 97 defaultDate: null, 98 appendText: "", 99 buttonText: "...", 100 buttonImage: "", 101 buttonImageOnly: !1, 102 hideIfNoPrevNext: !1, 103 navigationAsDateFormat: !1, 104 gotoCurrent: !1, 105 changeMonth: !1, 106 changeYear: !1, 107 yearRange: "c-10:c+10", 108 showOtherMonths: !1, 109 selectOtherMonths: !1, 110 showWeek: !1, 111 calculateWeek: this.iso8601Week, 112 shortYearCutoff: "+10", 113 minDate: null, 114 maxDate: null, 115 duration: "fast", 116 beforeShowDay: null, 117 beforeShow: null, 118 onSelect: null, 119 onChangeMonthYear: null, 120 onClose: null, 121 numberOfMonths: 1, 122 showCurrentAtPos: 0, 123 stepMonths: 1, 124 stepBigMonths: 12, 125 altField: "", 126 altFormat: "", 127 constrainInput: !0, 128 showButtonPanel: !1, 129 autoSize: !1, 130 disabled: !1, 131 }), 132 t.extend(this._defaults, this.regional[""]), 133 (this.regional.en = t.extend(!0, {}, this.regional[""])), 134 (this.regional["en-US"] = t.extend(!0, {}, this.regional.en)), 135 (this.dpDiv = n( 136 t( 137 "<div id='" + 138 this._mainDivId + 139 "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>", 140 ), 141 )); 142 } 143 function n(e) { 144 var i = 145 "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; 146 return e 147 .on("mouseout", i, function () { 148 t(this).removeClass("ui-state-hover"), 149 -1 !== this.className.indexOf("ui-datepicker-prev") && 150 t(this).removeClass("ui-datepicker-prev-hover"), 151 -1 !== this.className.indexOf("ui-datepicker-next") && 152 t(this).removeClass("ui-datepicker-next-hover"); 153 }) 154 .on("mouseover", i, o); 155 } 156 function o() { 157 t.datepicker._isDisabledDatepicker( 158 m.inline ? m.dpDiv.parent()[0] : m.input[0], 159 ) || 160 (t(this) 161 .parents(".ui-datepicker-calendar") 162 .find("a") 163 .removeClass("ui-state-hover"), 164 t(this).addClass("ui-state-hover"), 165 -1 !== this.className.indexOf("ui-datepicker-prev") && 166 t(this).addClass("ui-datepicker-prev-hover"), 167 -1 !== this.className.indexOf("ui-datepicker-next") && 168 t(this).addClass("ui-datepicker-next-hover")); 169 } 170 function a(e, i) { 171 t.extend(e, i); 172 for (var s in i) null == i[s] && (e[s] = i[s]); 173 return e; 174 } 175 function r(t) { 176 return function () { 177 var e = this.element.val(); 178 t.apply(this, arguments), 179 this._refresh(), 180 e !== this.element.val() && this._trigger("change"); 181 }; 182 } 183 (t.ui = t.ui || {}), (t.ui.version = "1.12.1");
184 var h = 0, 185 l = Array.prototype.slice; 186 (t.cleanData = (function (e) { 187 return function (i) { 188 var s, n, o; 189 for (o = 0; null != (n = i[o]); o++) 190 try { 191 (s = t._data(n, "events")), 192 s && s.remove && t(n).triggerHandler("remove"); 193 } catch (a) {} 194 e(i); 195 }; 196 })(t.cleanData)), 197 (t.widget = function (e, i, s) { 198 var n, 199 o, 200 a, 201 r = {}, 202 h = e.split(".")[0]; 203 e = e.split(".")[1]; 204 var l = h + "-" + e; 205 return ( 206 s || ((s = i), (i = t.Widget)), 207 t.isArray(s) && (s = t.extend.apply(null, [{}].concat(s))), 208 (t.expr[":"][l.toLowerCase()] = function (e) { 209 return !!t.data(e, l); 210 }), 211 (t[h] = t[h] || {}), 212 (n = t[h][e]), 213 (o = t[h][e] = 214 function (t, e) { 215 return this._createWidget 216 ? (arguments.length && this._createWidget(t, e), void 0) 217 : new o(t, e); 218 }), 219 t.extend(o, n, { 220 version: s.version, 221 _proto: t.extend({}, s), 222 _childConstructors: [], 223 }), 224 (a = new i()), 225 (a.options = t.widget.extend({}, a.options)), 226 t.each(s, function (e, s) { 227 return t.isFunction(s) 228 ? ((r[e] = (function () { 229 function t() { 230 return i.prototype[e].apply(this, arguments); 231 } 232 function n(t) { 233 return i.prototype[e].apply(this, t); 234 } 235 return function () { 236 var e, 237 i = this._super, 238 o = this._superApply; 239 return ( 240 (this._super = t), 241 (this._superApply = n), 242 (e = s.apply(this, arguments)), 243 (this._super = i), 244 (this._superApply = o), 245 e 246 ); 247 }; 248 })()), 249 void 0) 250 : ((r[e] = s), void 0); 251 }), 252 (o.prototype = t.widget.extend( 253 a, 254 { widgetEventPrefix: n ? a.widgetEventPrefix || e : e }, 255 r, 256 { constructor: o, namespace: h, widgetName: e, widgetFullName: l }, 257 )), 258 n 259 ? (t.each(n._childConstructors, function (e, i) { 260 var s = i.prototype; 261 t.widget(s.namespace + "." + s.widgetName, o, i._proto); 262 }), 263 delete n._childConstructors) 264 : i._childConstructors.push(o), 265 t.widget.bridge(e, o), 266 o 267 ); 268 }), 269 (t.widget.extend = function (e) { 270 for (var i, s, n = l.call(arguments, 1), o = 0, a = n.length; a > o; o++) 271 for (i in n[o]) 272 (s = n[o][i]), 273 n[o].hasOwnProperty(i) && 274 void 0 !== s && 275 (e[i] = t.isPlainObject(s) 276 ? t.isPlainObject(e[i]) 277 ? t.widget.extend({}, e[i], s) 278 : t.widget.extend({}, s) 279 : s); 280 return e; 281 }), 282 (t.widget.bridge = function (e, i) { 283 var s = i.prototype.widgetFullName || e; 284 t.fn[e] = function (n) { 285 var o = "string" == typeof n, 286 a = l.call(arguments, 1), 287 r = this; 288 return ( 289 o 290 ? this.length || "instance" !== n 291 ? this.each(function () { 292 var i, 293 o = t.data(this, s); 294 return "instance" === n 295 ? ((r = o), !1) 296 : o 297 ? t.isFunction(o[n]) && "_" !== n.charAt(0) 298 ? ((i = o[n].apply(o, a)), 299 i !== o && void 0 !== i 300 ? ((r = i && i.jquery ? r.pushStack(i.get()) : i), 301 !1) 302 : void 0) 303 : t.error( 304 "no such method '" + 305 n + 306 "' for " + 307 e + 308 " widget instance", 309 ) 310 : t.error( 311 "cannot call methods on " + 312 e + 313 " prior to initialization; " + 314 "attempted to call method '" + 315 n + 316 "'", 317 ); 318 }) 319 : (r = void 0) 320 : (a.length && (n = t.widget.extend.apply(null, [n].concat(a))), 321 this.each(function () { 322 var e = t.data(this, s); 323 e 324 ? (e.option(n || {}), e._init && e._init()) 325 : t.data(this, s, new i(n, this)); 326 })), 327 r 328 ); 329 }; 330 }), 331 (t.Widget = function () {}), 332 (t.Widget._childConstructors = []), 333 (t.Widget.prototype = { 334 widgetName: "widget", 335 widgetEventPrefix: "", 336 defaultElement: "<div>", 337 options: { classes: {}, disabled: !1, create: null }, 338 _createWidget: function (e, i) { 339 (i = t(i || this.defaultElement || this)[0]), 340 (this.element = t(i)), 341 (this.uuid = h++), 342 (this.eventNamespace = "." + this.widgetName + this.uuid),
343 (this.bindings = t()), 344 (this.hoverable = t()), 345 (this.focusable = t()), 346 (this.classesElementLookup = {}), 347 i !== this && 348 (t.data(i, this.widgetFullName, this), 349 this._on(!0, this.element, { 350 remove: function (t) { 351 t.target === i && this.destroy(); 352 }, 353 }), 354 (this.document = t(i.style ? i.ownerDocument : i.document || i)), 355 (this.window = t( 356 this.document[0].defaultView || this.document[0].parentWindow, 357 ))), 358 (this.options = t.widget.extend( 359 {}, 360 this.options, 361 this._getCreateOptions(), 362 e, 363 )), 364 this._create(), 365 this.options.disabled && 366 this._setOptionDisabled(this.options.disabled), 367 this._trigger("create", null, this._getCreateEventData()), 368 this._init(); 369 }, 370 _getCreateOptions: function () { 371 return {}; 372 }, 373 _getCreateEventData: t.noop, 374 _create: t.noop, 375 _init: t.noop, 376 destroy: function () { 377 var e = this; 378 this._destroy(), 379 t.each(this.classesElementLookup, function (t, i) { 380 e._removeClass(i, t); 381 }), 382 this.element.off(this.eventNamespace).removeData(this.widgetFullName), 383 this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), 384 this.bindings.off(this.eventNamespace); 385 }, 386 _destroy: t.noop, 387 widget: function () { 388 return this.element; 389 }, 390 option: function (e, i) { 391 var s, 392 n, 393 o, 394 a = e; 395 if (0 === arguments.length) return t.widget.extend({}, this.options); 396 if ("string" == typeof e) 397 if (((a = {}), (s = e.split(".")), (e = s.shift()), s.length)) { 398 for ( 399 n = a[e] = t.widget.extend({}, this.options[e]), o = 0; 400 s.length - 1 > o; 401 o++ 402 ) 403 (n[s[o]] = n[s[o]] || {}), (n = n[s[o]]); 404 if (((e = s.pop()), 1 === arguments.length)) 405 return void 0 === n[e] ? null : n[e]; 406 n[e] = i; 407 } else { 408 if (1 === arguments.length) 409 return void 0 === this.options[e] ? null : this.options[e]; 410 a[e] = i; 411 } 412 return this._setOptions(a), this; 413 }, 414 _setOptions: function (t) { 415 var e; 416 for (e in t) this._setOption(e, t[e]); 417 return this; 418 }, 419 _setOption: function (t, e) { 420 return ( 421 "classes" === t && this._setOptionClasses(e), 422 (this.options[t] = e), 423 "disabled" === t && this._setOptionDisabled(e), 424 this 425 ); 426 }, 427 _setOptionClasses: function (e) { 428 var i, s, n; 429 for (i in e) 430 (n = this.classesElementLookup[i]), 431 e[i] !== this.options.classes[i] && 432 n && 433 n.length && 434 ((s = t(n.get())), 435 this._removeClass(n, i), 436 s.addClass( 437 this._classes({ element: s, keys: i, classes: e, add: !0 }), 438 )); 439 }, 440 _setOptionDisabled: function (t) { 441 this._toggleClass( 442 this.widget(), 443 this.widgetFullName + "-disabled", 444 null, 445 !!t, 446 ), 447 t && 448 (this._removeClass(this.hoverable, null, "ui-state-hover"), 449 this._removeClass(this.focusable, null, "ui-state-focus")); 450 }, 451 enable: function () { 452 return this._setOptions({ disabled: !1 }); 453 }, 454 disable: function () { 455 return this._setOptions({ disabled: !0 }); 456 }, 457 _classes: function (e) { 458 function i(i, o) { 459 var a, r; 460 for (r = 0; i.length > r; r++) 461 (a = n.classesElementLookup[i[r]] || t()), 462 (a = e.add 463 ? t(t.unique(a.get().concat(e.element.get()))) 464 : t(a.not(e.element).get())), 465 (n.classesElementLookup[i[r]] = a), 466 s.push(i[r]), 467 o && e.classes[i[r]] && s.push(e.classes[i[r]]); 468 } 469 var s = [], 470 n = this; 471 return ( 472 (e = t.extend( 473 { element: this.element, classes: this.options.classes || {} }, 474 e, 475 )), 476 this._on(e.element, { remove: "_untrackClassesElement" }), 477 e.keys && i(e.keys.match(/\S+/g) || [], !0), 478 e.extra && i(e.extra.match(/\S+/g) || []), 479 s.join(" ") 480 ); 481 }, 482 _untrackClassesElement: function (e) { 483 var i = this; 484 t.each(i.classesElementLookup, function (s, n) { 485 -1 !== t.inArray(e.target, n) && 486 (i.classesElementLookup[s] = t(n.not(e.target).get())); 487 }); 488 }, 489 _removeClass: function (t, e, i) { 490 return this._toggleClass(t, e, i, !1); 491 }, 492 _addClass: function (t, e, i) { 493 return this._toggleClass(t, e, i, !0); 494 }, 495 _toggleClass: function (t, e, i, s) { 496 s = "boolean" == typeof s ? s : i; 497 var n = "string" == typeof t || null === t, 498 o = {
499 extra: n ? e : i, 500 keys: n ? t : e, 501 element: n ? this.element : t, 502 add: s, 503 }; 504 return o.element.toggleClass(this._classes(o), s), this; 505 }, 506 _on: function (e, i, s) { 507 var n, 508 o = this; 509 "boolean" != typeof e && ((s = i), (i = e), (e = !1)), 510 s 511 ? ((i = n = t(i)), (this.bindings = this.bindings.add(i))) 512 : ((s = i), (i = this.element), (n = this.widget())), 513 t.each(s, function (s, a) { 514 function r() { 515 return e || 516 (o.options.disabled !== !0 && 517 !t(this).hasClass("ui-state-disabled")) 518 ? ("string" == typeof a ? o[a] : a).apply(o, arguments) 519 : void 0; 520 } 521 "string" != typeof a && 522 (r.guid = a.guid = a.guid || r.guid || t.guid++); 523 var h = s.match(/^([\w:-]*)\s*(.*)$/), 524 l = h[1] + o.eventNamespace, 525 c = h[2]; 526 c ? n.on(l, c, r) : i.on(l, r); 527 }); 528 }, 529 _off: function (e, i) { 530 (i = 531 (i || "").split(" ").join(this.eventNamespace + " ") + 532 this.eventNamespace), 533 e.off(i).off(i), 534 (this.bindings = t(this.bindings.not(e).get())), 535 (this.focusable = t(this.focusable.not(e).get())), 536 (this.hoverable = t(this.hoverable.not(e).get())); 537 }, 538 _delay: function (t, e) { 539 function i() { 540 return ("string" == typeof t ? s[t] : t).apply(s, arguments); 541 } 542 var s = this; 543 return setTimeout(i, e || 0); 544 }, 545 _hoverable: function (e) { 546 (this.hoverable = this.hoverable.add(e)), 547 this._on(e, { 548 mouseenter: function (e) { 549 this._addClass(t(e.currentTarget), null, "ui-state-hover"); 550 }, 551 mouseleave: function (e) { 552 this._removeClass(t(e.currentTarget), null, "ui-state-hover"); 553 }, 554 }); 555 }, 556 _focusable: function (e) { 557 (this.focusable = this.focusable.add(e)), 558 this._on(e, { 559 focusin: function (e) { 560 this._addClass(t(e.currentTarget), null, "ui-state-focus"); 561 }, 562 focusout: function (e) { 563 this._removeClass(t(e.currentTarget), null, "ui-state-focus"); 564 }, 565 }); 566 }, 567 _trigger: function (e, i, s) { 568 var n, 569 o, 570 a = this.options[e]; 571 if ( 572 ((s = s || {}), 573 (i = t.Event(i)), 574 (i.type = ( 575 e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e 576 ).toLowerCase()), 577 (i.target = this.element[0]), 578 (o = i.originalEvent)) 579 ) 580 for (n in o) n in i || (i[n] = o[n]); 581 return ( 582 this.element.trigger(i, s), 583 !( 584 (t.isFunction(a) && 585 a.apply(this.element[0], [i].concat(s)) === !1) || 586 i.isDefaultPrevented() 587 ) 588 ); 589 }, 590 }), 591 t.each({ show: "fadeIn", hide: "fadeOut" }, function (e, i) { 592 t.Widget.prototype["_" + e] = function (s, n, o) { 593 "string" == typeof n && (n = { effect: n }); 594 var a, 595 r = n ? (n === !0 || "number" == typeof n ? i : n.effect || i) : e; 596 (n = n || {}), 597 "number" == typeof n && (n = { duration: n }), 598 (a = !t.isEmptyObject(n)), 599 (n.complete = o), 600 n.delay && s.delay(n.delay), 601 a && t.effects && t.effects.effect[r] 602 ? s[e](n) 603 : r !== e && s[r] 604 ? s[r](n.duration, n.easing, o) 605 : s.queue(function (i) { 606 t(this)[e](), o && o.call(s[0]), i(); 607 }); 608 }; 609 }), 610 t.widget, 611 (function () { 612 function e(t, e, i) { 613 return [ 614 parseFloat(t[0]) * (u.test(t[0]) ? e / 100 : 1), 615 parseFloat(t[1]) * (u.test(t[1]) ? i / 100 : 1), 616 ]; 617 } 618 function i(e, i) { 619 return parseInt(t.css(e, i), 10) || 0; 620 } 621 function s(e) { 622 var i = e[0]; 623 return 9 === i.nodeType 624 ? { 625 width: e.width(), 626 height: e.height(), 627 offset: { top: 0, left: 0 }, 628 } 629 : t.isWindow(i) 630 ? { 631 width: e.width(), 632 height: e.height(), 633 offset: { top: e.scrollTop(), left: e.scrollLeft() }, 634 } 635 : i.preventDefault 636 ? { width: 0, height: 0, offset: { top: i.pageY, left: i.pageX } } 637 : { 638 width: e.outerWidth(), 639 height: e.outerHeight(), 640 offset: e.offset(), 641 }; 642 } 643 var n, 644 o = Math.max, 645 a = Math.abs, 646 r = /left|center|right/, 647 h = /top|center|bottom/, 648 l = /[\+\-]\d+(\.[\d]+)?%?/, 649 c = /^\w+/, 650 u = /%$/, 651 d = t.fn.position; 652 (t.position = { 653 scrollbarWidth: function () { 654 if (void 0 !== n) return n; 655 var e, 656 i, 657 s = t( 658 "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>", 659 ), 660 o = s.children()[0]; 661 return ( 662 t("body").append(s), 663 (e = o.offsetWidth), 664 s.css("overflow", "scroll"), 665 (i = o.offsetWidth), 666 e === i && (i = s[0].clientWidth), 667 s.remove(), 668 (n = e - i) 669 ); 670 }, 671 getScrollInfo: function (e) { 672 var i = e.isWindow || e.isDocument ? "" : e.element.css("overflow-x"), 673 s = e.isWindow || e.isDocument ? "" : e.element.css("overflow-y"), 674 n = 675 "scroll" === i || 676 ("auto" === i && e.width < e.element[0].scrollWidth), 677 o = 678 "scroll" === s || 679 ("auto" === s && e.height < e.element[0].scrollHeight); 680 return { 681 width: o ? t.position.scrollbarWidth() : 0, 682 height: n ? t.position.scrollbarWidth() : 0, 683 }; 684 }, 685 getWithinInfo: function (e) { 686 var i = t(e || window), 687 s = t.isWindow(i[0]), 688 n = !!i[0] && 9 === i[0].nodeType, 689 o = !s && !n; 690 return { 691 element: i, 692 isWindow: s, 693 isDocument: n, 694 offset: o ? t(e).offset() : { left: 0, top: 0 }, 695 scrollLeft: i.scrollLeft(), 696 scrollTop: i.scrollTop(), 697 width: i.outerWidth(), 698 height: i.outerHeight(), 699 }; 700 }, 701 }), 702 (t.fn.position = function (n) { 703 if (!n || !n.of) return d.apply(this, arguments); 704 n = t.extend({}, n); 705 var u, 706 p, 707 f, 708 g, 709 m, 710 _, 711 v = t(n.of), 712 b = t.position.getWithinInfo(n.within), 713 y = t.position.getScrollInfo(b), 714 w = (n.collision || "flip").split(" "), 715 k = {}; 716 return ( 717 (_ = s(v)), 718 v[0].preventDefault && (n.at = "left top"), 719 (p = _.width), 720 (f = _.height), 721 (g = _.offset), 722 (m = t.extend({}, g)), 723 t.each(["my", "at"], function () { 724 var t, 725 e, 726 i = (n[this] || "").split(" "); 727 1 === i.length && 728 (i = r.test(i[0]) 729 ? i.concat(["center"]) 730 : h.test(i[0]) 731 ? ["center"].concat(i) 732 : ["center", "center"]), 733 (i[0] = r.test(i[0]) ? i[0] : "center"), 734 (i[1] = h.test(i[1]) ? i[1] : "center"), 735 (t = l.exec(i[0])), 736 (e = l.exec(i[1])), 737 (k[this] = [t ? t[0] : 0, e ? e[0] : 0]), 738 (n[this] = [c.exec(i[0])[0], c.exec(i[1])[0]]); 739 }), 740 1 === w.length && (w[1] = w[0]), 741 "right" === n.at[0] 742 ? (m.left += p) 743 : "center" === n.at[0] && (m.left += p / 2), 744 "bottom" === n.at[1] 745 ? (m.top += f) 746 : "center" === n.at[1] && (m.top += f / 2), 747 (u = e(k.at, p, f)), 748 (m.left += u[0]), 749 (m.top += u[1]), 750 this.each(function () { 751 var s, 752 r, 753 h = t(this), 754 l = h.outerWidth(), 755 c = h.outerHeight(), 756 d = i(this, "marginLeft"), 757 _ = i(this, "marginTop"), 758 x = l + d + i(this, "marginRight") + y.width, 759 C = c + _ + i(this, "marginBottom") + y.height, 760 D = t.extend({}, m), 761 I = e(k.my, h.outerWidth(), h.outerHeight()); 762 "right" === n.my[0] 763 ? (D.left -= l) 764 : "center" === n.my[0] && (D.left -= l / 2), 765 "bottom" === n.my[1] 766 ? (D.top -= c) 767 : "center" === n.my[1] && (D.top -= c / 2), 768 (D.left += I[0]), 769 (D.top += I[1]), 770 (s = { marginLeft: d, marginTop: _ }), 771 t.each(["left", "top"], function (e, i) { 772 t.ui.position[w[e]] && 773 t.ui.position[w[e]][i](D, { 774 targetWidth: p, 775 targetHeight: f, 776 elemWidth: l, 777 elemHeight: c, 778 collisionPosition: s, 779 collisionWidth: x, 780 collisionHeight: C, 781 offset: [u[0] + I[0], u[1] + I[1]], 782 my: n.my, 783 at: n.at, 784 within: b, 785 elem: h, 786 }); 787 }), 788 n.using && 789 (r = function (t) { 790 var e = g.left - D.left, 791 i = e + p - l, 792 s = g.top - D.top, 793 r = s + f - c, 794 u = { 795 target: { 796 element: v, 797 left: g.left, 798 top: g.top, 799 width: p, 800 height: f, 801 }, 802 element: { 803 element: h, 804 left: D.left, 805 top: D.top, 806 width: l, 807 height: c, 808 }, 809 horizontal: 0 > i ? "left" : e > 0 ? "right" : "center", 810 vertical: 0 > r ? "top" : s > 0 ? "bottom" : "middle", 811 }; 812 l > p && p > a(e + i) && (u.horizontal = "center"), 813 c > f && f > a(s + r) && (u.vertical = "middle"), 814 (u.important = 815 o(a(e), a(i)) > o(a(s), a(r)) 816 ? "horizontal" 817 : "vertical"), 818 n.using.call(this, t, u); 819 }), 820 h.offset(t.extend(D, { using: r })); 821 }) 822 ); 823 }), 824 (t.ui.position = { 825 fit: { 826 left: function (t, e) { 827 var i, 828 s = e.within, 829 n = s.isWindow ? s.scrollLeft : s.offset.left, 830 a = s.width, 831 r = t.left - e.collisionPosition.marginLeft, 832 h = n - r, 833 l = r + e.collisionWidth - a - n; 834 e.collisionWidth > a 835 ? h > 0 && 0 >= l 836 ? ((i = t.left + h + e.collisionWidth - a - n), 837 (t.left += h - i)) 838 : (t.left = 839 l > 0 && 0 >= h 840 ? n 841 : h > l 842 ? n + a - e.collisionWidth 843 : n) 844 : h > 0 845 ? (t.left += h) 846 : l > 0 847 ? (t.left -= l) 848 : (t.left = o(t.left - r, t.left)); 849 }, 850 top: function (t, e) { 851 var i, 852 s = e.within, 853 n = s.isWindow ? s.scrollTop : s.offset.top, 854 a = e.within.height, 855 r = t.top - e.collisionPosition.marginTop, 856 h = n - r, 857 l = r + e.collisionHeight - a - n; 858 e.collisionHeight > a 859 ? h > 0 && 0 >= l 860 ? ((i = t.top + h + e.collisionHeight - a - n), 861 (t.top += h - i)) 862 : (t.top = 863 l > 0 && 0 >= h 864 ? n 865 : h > l 866 ? n + a - e.collisionHeight 867 : n) 868 : h > 0 869 ? (t.top += h) 870 : l > 0 871 ? (t.top -= l) 872 : (t.top = o(t.top - r, t.top)); 873 }, 874 }, 875 flip: { 876 left: function (t, e) { 877 var i, 878 s, 879 n = e.within, 880 o = n.offset.left + n.scrollLeft, 881 r = n.width, 882 h = n.isWindow ? n.scrollLeft : n.offset.left, 883 l = t.left - e.collisionPosition.marginLeft, 884 c = l - h, 885 u = l + e.collisionWidth - r - h, 886 d = 887 "left" === e.my[0] 888 ? -e.elemWidth 889 : "right" === e.my[0] 890 ? e.elemWidth 891 : 0, 892 p = 893 "left" === e.at[0] 894 ? e.targetWidth 895 : "right" === e.at[0] 896 ? -e.targetWidth 897 : 0, 898 f = -2 * e.offset[0]; 899 0 > c 900 ? ((i = t.left + d + p + f + e.collisionWidth - r - o), 901 (0 > i || a(c) > i) && (t.left += d + p + f)) 902 : u > 0 && 903 ((s = 904 t.left - e.collisionPosition.marginLeft + d + p + f - h), 905 (s > 0 || u > a(s)) && (t.left += d + p + f)); 906 }, 907 top: function (t, e) { 908 var i, 909 s, 910 n = e.within, 911 o = n.offset.top + n.scrollTop, 912 r = n.height, 913 h = n.isWindow ? n.scrollTop : n.offset.top, 914 l = t.top - e.collisionPosition.marginTop, 915 c = l - h, 916 u = l + e.collisionHeight - r - h, 917 d = "top" === e.my[1], 918 p = d ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, 919 f = 920 "top" === e.at[1] 921 ? e.targetHeight 922 : "bottom" === e.at[1] 923 ? -e.targetHeight 924 : 0, 925 g = -2 * e.offset[1]; 926 0 > c 927 ? ((s = t.top + p + f + g + e.collisionHeight - r - o), 928 (0 > s || a(c) > s) && (t.top += p + f + g)) 929 : u > 0 && 930 ((i = t.top - e.collisionPosition.marginTop + p + f + g - h), 931 (i > 0 || u > a(i)) && (t.top += p + f + g)); 932 }, 933 }, 934 flipfit: { 935 left: function () { 936 t.ui.position.flip.left.apply(this, arguments), 937 t.ui.position.fit.left.apply(this, arguments); 938 }, 939 top: function () { 940 t.ui.position.flip.top.apply(this, arguments), 941 t.ui.position.fit.top.apply(this, arguments); 942 }, 943 }, 944 }); 945 })(), 946 t.ui.position, 947 t.extend(t.expr[":"], {
948 data: t.expr.createPseudo 949 ? t.expr.createPseudo(function (e) { 950 return function (i) { 951 return !!t.data(i, e); 952 }; 953 }) 954 : function (e, i, s) { 955 return !!t.data(e, s[3]); 956 }, 957 }), 958 t.fn.extend({ 959 disableSelection: (function () { 960 var t = 961 "onselectstart" in document.createElement("div") 962 ? "selectstart" 963 : "mousedown"; 964 return function () { 965 return this.on(t + ".ui-disableSelection", function (t) { 966 t.preventDefault(); 967 }); 968 }; 969 })(), 970 enableSelection: function () { 971 return this.off(".ui-disableSelection"); 972 }, 973 }); 974 var c = "ui-effects-", 975 u = "ui-effects-style", 976 d = "ui-effects-animated", 977 p = t; 978 (t.effects = { effect: {} }), 979 (function (t, e) { 980 function i(t, e, i) { 981 var s = u[e.type] || {}; 982 return null == t 983 ? i || !e.def 984 ? null 985 : e.def 986 : ((t = s.floor ? ~~t : parseFloat(t)), 987 isNaN(t) 988 ? e.def 989 : s.mod 990 ? (t + s.mod) % s.mod 991 : 0 > t 992 ? 0 993 : t > s.max 994 ? s.max 995 : t); 996 } 997 function s(i) { 998 var s = l(), 999 n = (s._rgba = []); 1000 return ( 1001 (i = i.toLowerCase()), 1002 f(h, function (t, o) { 1003 var a, 1004 r = o.re.exec(i), 1005 h = r && o.parse(r), 1006 l = o.space || "rgba"; 1007 return h 1008 ? ((a = s[l](h)), 1009 (s[c[l].cache] = a[c[l].cache]), 1010 (n = s._rgba = a._rgba), 1011 !1) 1012 : e; 1013 }), 1014 n.length 1015 ? ("0,0,0,0" === n.join() && t.extend(n, o.transparent), s) 1016 : o[i] 1017 ); 1018 } 1019 function n(t, e, i) { 1020 return ( 1021 (i = (i + 1) % 1), 1022 1 > 6 * i 1023 ? t + 6 * (e - t) * i 1024 : 1 > 2 * i 1025 ? e 1026 : 2 > 3 * i 1027 ? t + 6 * (e - t) * (2 / 3 - i) 1028 : t 1029 ); 1030 } 1031 var o, 1032 a = 1033 "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", 1034 r = /^([\-+])=\s*(\d+\.?\d*)/, 1035 h = [ 1036 { 1037 re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, 1038 parse: function (t) { 1039 return [t[1], t[2], t[3], t[4]]; 1040 }, 1041 }, 1042 { 1043 re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, 1044 parse: function (t) { 1045 return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]; 1046 }, 1047 }, 1048 { 1049 re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, 1050 parse: function (t) { 1051 return [ 1052 parseInt(t[1], 16), 1053 parseInt(t[2], 16), 1054 parseInt(t[3], 16), 1055 ]; 1056 }, 1057 }, 1058 { 1059 re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, 1060 parse: function (t) { 1061 return [ 1062 parseInt(t[1] + t[1], 16), 1063 parseInt(t[2] + t[2], 16), 1064 parseInt(t[3] + t[3], 16), 1065 ]; 1066 }, 1067 }, 1068 { 1069 re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, 1070 space: "hsla", 1071 parse: function (t) { 1072 return [t[1], t[2] / 100, t[3] / 100, t[4]]; 1073 }, 1074 }, 1075 ], 1076 l = (t.Color = function (e, i, s, n) { 1077 return new t.Color.fn.parse(e, i, s, n); 1078 }), 1079 c = { 1080 rgba: { 1081 props: { 1082 red: { idx: 0, type: "byte" }, 1083 green: { idx: 1, type: "byte" }, 1084 blue: { idx: 2, type: "byte" }, 1085 }, 1086 }, 1087 hsla: { 1088 props: { 1089 hue: { idx: 0, type: "degrees" }, 1090 saturation: { idx: 1, type: "percent" }, 1091 lightness: { idx: 2, type: "percent" }, 1092 }, 1093 }, 1094 }, 1095 u = { 1096 byte: { floor: !0, max: 255 }, 1097 percent: { max: 1 }, 1098 degrees: { mod: 360, floor: !0 },
1099 }, 1100 d = (l.support = {}), 1101 p = t("<p>")[0], 1102 f = t.each; 1103 (p.style.cssText = "background-color:rgba(1,1,1,.5)"), 1104 (d.rgba = p.style.backgroundColor.indexOf("rgba") > -1), 1105 f(c, function (t, e) { 1106 (e.cache = "_" + t), 1107 (e.props.alpha = { idx: 3, type: "percent", def: 1 }); 1108 }), 1109 (l.fn = t.extend(l.prototype, { 1110 parse: function (n, a, r, h) { 1111 if (n === e) return (this._rgba = [null, null, null, null]), this; 1112 (n.jquery || n.nodeType) && ((n = t(n).css(a)), (a = e)); 1113 var u = this, 1114 d = t.type(n), 1115 p = (this._rgba = []); 1116 return ( 1117 a !== e && ((n = [n, a, r, h]), (d = "array")), 1118 "string" === d 1119 ? this.parse(s(n) || o._default) 1120 : "array" === d 1121 ? (f(c.rgba.props, function (t, e) { 1122 p[e.idx] = i(n[e.idx], e); 1123 }), 1124 this) 1125 : "object" === d 1126 ? (n instanceof l 1127 ? f(c, function (t, e) { 1128 n[e.cache] && (u[e.cache] = n[e.cache].slice()); 1129 }) 1130 : f(c, function (e, s) { 1131 var o = s.cache; 1132 f(s.props, function (t, e) { 1133 if (!u[o] && s.to) { 1134 if ("alpha" === t || null == n[t]) return; 1135 u[o] = s.to(u._rgba); 1136 } 1137 u[o][e.idx] = i(n[t], e, !0); 1138 }), 1139 u[o] && 1140 0 > t.inArray(null, u[o].slice(0, 3)) && 1141 ((u[o][3] = 1), 1142 s.from && (u._rgba = s.from(u[o]))); 1143 }), 1144 this) 1145 : e 1146 ); 1147 }, 1148 is: function (t) { 1149 var i = l(t), 1150 s = !0, 1151 n = this; 1152 return ( 1153 f(c, function (t, o) { 1154 var a, 1155 r = i[o.cache]; 1156 return ( 1157 r && 1158 ((a = n[o.cache] || (o.to && o.to(n._rgba)) || []), 1159 f(o.props, function (t, i) { 1160 return null != r[i.idx] ? (s = r[i.idx] === a[i.idx]) : e; 1161 })), 1162 s 1163 ); 1164 }), 1165 s 1166 ); 1167 }, 1168 _space: function () { 1169 var t = [], 1170 e = this; 1171 return ( 1172 f(c, function (i, s) { 1173 e[s.cache] && t.push(i); 1174 }), 1175 t.pop() 1176 ); 1177 }, 1178 transition: function (t, e) { 1179 var s = l(t), 1180 n = s._space(), 1181 o = c[n], 1182 a = 0 === this.alpha() ? l("transparent") : this, 1183 r = a[o.cache] || o.to(a._rgba), 1184 h = r.slice(); 1185 return ( 1186 (s = s[o.cache]), 1187 f(o.props, function (t, n) { 1188 var o = n.idx, 1189 a = r[o], 1190 l = s[o], 1191 c = u[n.type] || {}; 1192 null !== l && 1193 (null === a 1194 ? (h[o] = l) 1195 : (c.mod && 1196 (l - a > c.mod / 2 1197 ? (a += c.mod) 1198 : a - l > c.mod / 2 && (a -= c.mod)), 1199 (h[o] = i((l - a) * e + a, n)))); 1200 }), 1201 this[n](h) 1202 ); 1203 }, 1204 blend: function (e) { 1205 if (1 === this._rgba[3]) return this; 1206 var i = this._rgba.slice(), 1207 s = i.pop(), 1208 n = l(e)._rgba; 1209 return l( 1210 t.map(i, function (t, e) { 1211 return (1 - s) * n[e] + s * t; 1212 }), 1213 ); 1214 }, 1215 toRgbaString: function () { 1216 var e = "rgba(", 1217 i = t.map(this._rgba, function (t, e) { 1218 return null == t ? (e > 2 ? 1 : 0) : t; 1219 }); 1220 return 1 === i[3] && (i.pop(), (e = "rgb(")), e + i.join() + ")"; 1221 }, 1222 toHslaString: function () { 1223 var e = "hsla(", 1224 i = t.map(this.hsla(), function (t, e) { 1225 return ( 1226 null == t && (t = e > 2 ? 1 : 0), 1227 e && 3 > e && (t = Math.round(100 * t) + "%"), 1228 t 1229 ); 1230 }); 1231 return 1 === i[3] && (i.pop(), (e = "hsl(")), e + i.join() + ")"; 1232 }, 1233 toHexString: function (e) { 1234 var i = this._rgba.slice(), 1235 s = i.pop(); 1236 return ( 1237 e && i.push(~~(255 * s)), 1238 "#" + 1239 t 1240 .map(i, function (t) { 1241 return ( 1242 (t = (t || 0).toString(16)), 1 === t.length ? "0" + t : t 1243 ); 1244 }) 1245 .join("") 1246 ); 1247 }, 1248 toString: function () { 1249 return 0 === this._rgba[3] ? "transparent" : this.toRgbaString(); 1250 }, 1251 })), 1252 (l.fn.parse.prototype = l.fn), 1253 (c.hsla.to = function (t) { 1254 if (null == t[0] || null == t[1] || null == t[2]) 1255 return [null, null, null, t[3]]; 1256 var e, 1257 i,
1258 s = t[0] / 255, 1259 n = t[1] / 255, 1260 o = t[2] / 255, 1261 a = t[3], 1262 r = Math.max(s, n, o), 1263 h = Math.min(s, n, o), 1264 l = r - h, 1265 c = r + h, 1266 u = 0.5 * c; 1267 return ( 1268 (e = 1269 h === r 1270 ? 0 1271 : s === r 1272 ? (60 * (n - o)) / l + 360 1273 : n === r 1274 ? (60 * (o - s)) / l + 120 1275 : (60 * (s - n)) / l + 240), 1276 (i = 0 === l ? 0 : 0.5 >= u ? l / c : l / (2 - c)), 1277 [Math.round(e) % 360, i, u, null == a ? 1 : a] 1278 ); 1279 }), 1280 (c.hsla.from = function (t) { 1281 if (null == t[0] || null == t[1] || null == t[2]) 1282 return [null, null, null, t[3]]; 1283 var e = t[0] / 360, 1284 i = t[1], 1285 s = t[2], 1286 o = t[3], 1287 a = 0.5 >= s ? s * (1 + i) : s + i - s * i, 1288 r = 2 * s - a; 1289 return [ 1290 Math.round(255 * n(r, a, e + 1 / 3)), 1291 Math.round(255 * n(r, a, e)), 1292 Math.round(255 * n(r, a, e - 1 / 3)), 1293 o, 1294 ]; 1295 }), 1296 f(c, function (s, n) { 1297 var o = n.props, 1298 a = n.cache, 1299 h = n.to, 1300 c = n.from; 1301 (l.fn[s] = function (s) { 1302 if ((h && !this[a] && (this[a] = h(this._rgba)), s === e)) 1303 return this[a].slice(); 1304 var n, 1305 r = t.type(s), 1306 u = "array" === r || "object" === r ? s : arguments, 1307 d = this[a].slice(); 1308 return ( 1309 f(o, function (t, e) { 1310 var s = u["object" === r ? t : e.idx]; 1311 null == s && (s = d[e.idx]), (d[e.idx] = i(s, e)); 1312 }), 1313 c ? ((n = l(c(d))), (n[a] = d), n) : l(d) 1314 ); 1315 }), 1316 f(o, function (e, i) { 1317 l.fn[e] || 1318 (l.fn[e] = function (n) { 1319 var o, 1320 a = t.type(n), 1321 h = "alpha" === e ? (this._hsla ? "hsla" : "rgba") : s, 1322 l = this[h](), 1323 c = l[i.idx]; 1324 return "undefined" === a 1325 ? c 1326 : ("function" === a && 1327 ((n = n.call(this, c)), (a = t.type(n))), 1328 null == n && i.empty 1329 ? this 1330 : ("string" === a && 1331 ((o = r.exec(n)), 1332 o && 1333 (n = 1334 c + 1335 parseFloat(o[2]) * ("+" === o[1] ? 1 : -1))), 1336 (l[i.idx] = n), 1337 this[h](l))); 1338 }); 1339 }); 1340 }), 1341 (l.hook = function (e) { 1342 var i = e.split(" "); 1343 f(i, function (e, i) { 1344 (t.cssHooks[i] = { 1345 set: function (e, n) { 1346 var o, 1347 a, 1348 r = ""; 1349 if ( 1350 "transparent" !== n && 1351 ("string" !== t.type(n) || (o = s(n))) 1352 ) { 1353 if (((n = l(o || n)), !d.rgba && 1 !== n._rgba[3])) { 1354 for ( 1355 a = "backgroundColor" === i ? e.parentNode : e; 1356 ("" === r || "transparent" === r) && a && a.style; 1357 1358 ) 1359 try { 1360 (r = t.css(a, "backgroundColor")), (a = a.parentNode); 1361 } catch (h) {} 1362 n = n.blend(r && "transparent" !== r ? r : "_default"); 1363 } 1364 n = n.toRgbaString(); 1365 } 1366 try { 1367 e.style[i] = n; 1368 } catch (h) {} 1369 }, 1370 }), 1371 (t.fx.step[i] = function (e) { 1372 e.colorInit || 1373 ((e.start = l(e.elem, i)), 1374 (e.end = l(e.end)), 1375 (e.colorInit = !0)), 1376 t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos)); 1377 }); 1378 }); 1379 }), 1380 l.hook(a), 1381 (t.cssHooks.borderColor = { 1382 expand: function (t) { 1383 var e = {}; 1384 return ( 1385 f(["Top", "Right", "Bottom", "Left"], function (i, s) { 1386 e["border" + s + "Color"] = t; 1387 }), 1388 e 1389 ); 1390 }, 1391 }), 1392 (o = t.Color.names = 1393 { 1394 aqua: "#00ffff", 1395 black: "#000000", 1396 blue: "#0000ff", 1397 fuchsia: "#ff00ff", 1398 gray: "#808080", 1399 green: "#008000", 1400 lime: "#00ff00", 1401 maroon: "#800000", 1402 navy: "#000080", 1403 olive: "#808000", 1404 purple: "#800080", 1405 red: "#ff0000", 1406 silver: "#c0c0c0", 1407 teal: "#008080", 1408 white: "#ffffff", 1409 yellow: "#ffff00", 1410 transparent: [null, null, null, 0], 1411 _default: "#ffffff", 1412 }); 1413 })(p), 1414 (function () { 1415 function e(e) { 1416 var i, 1417 s, 1418 n = e.ownerDocument.defaultView 1419 ? e.ownerDocument.defaultView.getComputedStyle(e, null) 1420 : e.currentStyle, 1421 o = {}; 1422 if (n && n.length && n[0] && n[n[0]]) 1423 for (s = n.length; s--; ) 1424 (i = n[s]), "string" == typeof n[i] && (o[t.camelCase(i)] = n[i]); 1425 else for (i in n) "string" == typeof n[i] && (o[i] = n[i]); 1426 return o; 1427 } 1428 function i(e, i) { 1429 var s, 1430 o, 1431 a = {}; 1432 for (s in i) 1433 (o = i[s]), 1434 e[s] !== o && 1435 (n[s] || ((t.fx.step[s] || !isNaN(parseFloat(o))) && (a[s] = o))); 1436 return a; 1437 } 1438 var s = ["add", "remove", "toggle"], 1439 n = { 1440 border: 1, 1441 borderBottom: 1, 1442 borderColor: 1, 1443 borderLeft: 1, 1444 borderRight: 1, 1445 borderTop: 1, 1446 borderWidth: 1, 1447 margin: 1, 1448 padding: 1, 1449 }; 1450 t.each( 1451 [ 1452 "borderLeftStyle", 1453 "borderRightStyle", 1454 "borderBottomStyle", 1455 "borderTopStyle", 1456 ], 1457 function (e, i) { 1458 t.fx.step[i] = function (t) { 1459 (("none" !== t.end && !t.setAttr) || (1 === t.pos && !t.setAttr)) && 1460 (p.style(t.elem, i, t.end), (t.setAttr = !0)); 1461 }; 1462 }, 1463 ), 1464 t.fn.addBack || 1465 (t.fn.addBack = function (t) { 1466 return this.add( 1467 null == t ? this.prevObject : this.prevObject.filter(t), 1468 ); 1469 }), 1470 (t.effects.animateClass = function (n, o, a, r) { 1471 var h = t.speed(o, a, r); 1472 return this.queue(function () { 1473 var o, 1474 a = t(this), 1475 r = a.attr("class") || "", 1476 l = h.children ? a.find("*").addBack() : a; 1477 (l = l.map(function () { 1478 var i = t(this); 1479 return { el: i, start: e(this) }; 1480 })), 1481 (o = function () { 1482 t.each(s, function (t, e) { 1483 n[e] && a[e + "Class"](n[e]); 1484 }); 1485 }), 1486 o(), 1487 (l = l.map(function () { 1488 return ( 1489 (this.end = e(this.el[0])), 1490 (this.diff = i(this.start, this.end)), 1491 this 1492 ); 1493 })), 1494 a.attr("class", r), 1495 (l = l.map(function () { 1496 var e = this, 1497 i = t.Deferred(), 1498 s = t.extend({}, h, { 1499 queue: !1, 1500 complete: function () { 1501 i.resolve(e); 1502 }, 1503 }); 1504 return this.el.animate(this.diff, s), i.promise(); 1505 })), 1506 t.when.apply(t, l.get()).done(function () { 1507 o(), 1508 t.each(arguments, function () { 1509 var e = this.el; 1510 t.each(this.diff, function (t) { 1511 e.css(t, ""); 1512 }); 1513 }), 1514 h.complete.call(a[0]); 1515 }); 1516 }); 1517 }), 1518 t.fn.extend({ 1519 addClass: (function (e) { 1520 return function (i, s, n, o) { 1521 return s 1522 ? t.effects.animateClass.call(this, { add: i }, s, n, o) 1523 : e.apply(this, arguments); 1524 }; 1525 })(t.fn.addClass), 1526 removeClass: (function (e) { 1527 return function (i, s, n, o) { 1528 return arguments.length > 1 1529 ? t.effects.animateClass.call(this, { remove: i }, s, n, o) 1530 : e.apply(this, arguments); 1531 }; 1532 })(t.fn.removeClass), 1533 toggleClass: (function (e) { 1534 return function (i, s, n, o, a) { 1535 return "boolean" == typeof s || void 0 === s 1536 ? n 1537 ? t.effects.animateClass.call( 1538 this, 1539 s ? { add: i } : { remove: i }, 1540 n, 1541 o, 1542 a, 1543 ) 1544 : e.apply(this, arguments) 1545 : t.effects.animateClass.call(this, { toggle: i }, s, n, o); 1546 }; 1547 })(t.fn.toggleClass), 1548 switchClass: function (e, i, s, n, o) { 1549 return t.effects.animateClass.call( 1550 this, 1551 { add: i, remove: e }, 1552 s, 1553 n, 1554 o, 1555 ); 1556 }, 1557 }); 1558 })(), 1559 (function () { 1560 function e(e, i, s, n) { 1561 return ( 1562 t.isPlainObject(e) && ((i = e), (e = e.effect)), 1563 (e = { effect: e }), 1564 null == i && (i = {}), 1565 t.isFunction(i) && ((n = i), (s = null), (i = {})), 1566 ("number" == typeof i || t.fx.speeds[i]) && 1567 ((n = s), (s = i), (i = {})), 1568 t.isFunction(s) && ((n = s), (s = null)), 1569 i && t.extend(e, i), 1570 (s = s || i.duration), 1571 (e.duration = t.fx.off 1572 ? 0 1573 : "number" == typeof s 1574 ? s 1575 : s in t.fx.speeds 1576 ? t.fx.speeds[s] 1577 : t.fx.speeds._default), 1578 (e.complete = n || i.complete), 1579 e 1580 ); 1581 } 1582 function i(e) { 1583 return !e || "number" == typeof e || t.fx.speeds[e] 1584 ? !0 1585 : "string" != typeof e || t.effects.effect[e] 1586 ? t.isFunction(e) 1587 ? !0 1588 : "object" != typeof e || e.effect 1589 ? !1 1590 : !0 1591 : !0; 1592 } 1593 function s(t, e) { 1594 var i = e.outerWidth(), 1595 s = e.outerHeight(), 1596 n = 1597 /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, 1598 o = n.exec(t) || ["", 0, i, s, 0]; 1599 return { 1600 top: parseFloat(o[1]) || 0, 1601 right: "auto" === o[2] ? i : parseFloat(o[2]), 1602 bottom: "auto" === o[3] ? s : parseFloat(o[3]), 1603 left: parseFloat(o[4]) || 0, 1604 }; 1605 } 1606 t.expr && 1607 t.expr.filters && 1608 t.expr.filters.animated && 1609 (t.expr.filters.animated = (function (e) { 1610 return function (i) { 1611 return !!t(i).data(d) || e(i); 1612 }; 1613 })(t.expr.filters.animated)), 1614 t.uiBackCompat !== !1 && 1615 t.extend(t.effects, { 1616 save: function (t, e) { 1617 for (var i = 0, s = e.length; s > i; i++) 1618 null !== e[i] && t.data(c + e[i], t[0].style[e[i]]); 1619 }, 1620 restore: function (t, e) { 1621 for (var i, s = 0, n = e.length; n > s; s++) 1622 null !== e[s] && ((i = t.data(c + e[s])), t.css(e[s], i)); 1623 }, 1624 setMode: function (t, e) { 1625 return ( 1626 "toggle" === e && (e = t.is(":hidden") ? "show" : "hide"), e 1627 ); 1628 }, 1629 createWrapper: function (e) { 1630 if (e.parent().is(".ui-effects-wrapper")) return e.parent(); 1631 var i = { 1632 width: e.outerWidth(!0), 1633 height: e.outerHeight(!0), 1634 float: e.css("float"), 1635 }, 1636 s = t("<div></div>").addClass("ui-effects-wrapper").css({ 1637 fontSize: "100%", 1638 background: "transparent", 1639 border: "none", 1640 margin: 0, 1641 padding: 0, 1642 }), 1643 n = { width: e.width(), height: e.height() }, 1644 o = document.activeElement; 1645 try { 1646 o.id; 1647 } catch (a) { 1648 o = document.body; 1649 } 1650 return (
1651 e.wrap(s), 1652 (e[0] === o || t.contains(e[0], o)) && t(o).trigger("focus"), 1653 (s = e.parent()), 1654 "static" === e.css("position") 1655 ? (s.css({ position: "relative" }), 1656 e.css({ position: "relative" })) 1657 : (t.extend(i, { 1658 position: e.css("position"), 1659 zIndex: e.css("z-index"), 1660 }), 1661 t.each(["top", "left", "bottom", "right"], function (t, s) { 1662 (i[s] = e.css(s)), 1663 isNaN(parseInt(i[s], 10)) && (i[s] = "auto"); 1664 }), 1665 e.css({ 1666 position: "relative", 1667 top: 0, 1668 left: 0, 1669 right: "auto", 1670 bottom: "auto", 1671 })), 1672 e.css(n), 1673 s.css(i).show() 1674 ); 1675 }, 1676 removeWrapper: function (e) { 1677 var i = document.activeElement; 1678 return ( 1679 e.parent().is(".ui-effects-wrapper") && 1680 (e.parent().replaceWith(e), 1681 (e[0] === i || t.contains(e[0], i)) && t(i).trigger("focus")), 1682 e 1683 ); 1684 }, 1685 }), 1686 t.extend(t.effects, { 1687 version: "1.12.1", 1688 define: function (e, i, s) { 1689 return ( 1690 s || ((s = i), (i = "effect")), 1691 (t.effects.effect[e] = s), 1692 (t.effects.effect[e].mode = i), 1693 s 1694 ); 1695 }, 1696 scaledDimensions: function (t, e, i) { 1697 if (0 === e) 1698 return { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }; 1699 var s = "horizontal" !== i ? (e || 100) / 100 : 1, 1700 n = "vertical" !== i ? (e || 100) / 100 : 1; 1701 return { 1702 height: t.height() * n, 1703 width: t.width() * s, 1704 outerHeight: t.outerHeight() * n, 1705 outerWidth: t.outerWidth() * s, 1706 }; 1707 }, 1708 clipToBox: function (t) { 1709 return { 1710 width: t.clip.right - t.clip.left, 1711 height: t.clip.bottom - t.clip.top, 1712 left: t.clip.left, 1713 top: t.clip.top, 1714 }; 1715 }, 1716 unshift: function (t, e, i) { 1717 var s = t.queue(); 1718 e > 1 && s.splice.apply(s, [1, 0].concat(s.splice(e, i))), 1719 t.dequeue(); 1720 }, 1721 saveStyle: function (t) { 1722 t.data(u, t[0].style.cssText); 1723 }, 1724 restoreStyle: function (t) { 1725 (t[0].style.cssText = t.data(u) || ""), t.removeData(u); 1726 }, 1727 mode: function (t, e) { 1728 var i = t.is(":hidden"); 1729 return ( 1730 "toggle" === e && (e = i ? "show" : "hide"), 1731 (i ? "hide" === e : "show" === e) && (e = "none"), 1732 e 1733 ); 1734 }, 1735 getBaseline: function (t, e) { 1736 var i, s; 1737 switch (t[0]) { 1738 case "top": 1739 i = 0; 1740 break; 1741 case "middle": 1742 i = 0.5; 1743 break; 1744 case "bottom": 1745 i = 1; 1746 break; 1747 default: 1748 i = t[0] / e.height; 1749 } 1750 switch (t[1]) { 1751 case "left": 1752 s = 0; 1753 break; 1754 case "center": 1755 s = 0.5; 1756 break; 1757 case "right": 1758 s = 1; 1759 break; 1760 default: 1761 s = t[1] / e.width; 1762 } 1763 return { x: s, y: i }; 1764 }, 1765 createPlaceholder: function (e) { 1766 var i, 1767 s = e.css("position"), 1768 n = e.position(); 1769 return ( 1770 e 1771 .css({ 1772 marginTop: e.css("marginTop"), 1773 marginBottom: e.css("marginBottom"), 1774 marginLeft: e.css("marginLeft"), 1775 marginRight: e.css("marginRight"), 1776 }) 1777 .outerWidth(e.outerWidth()) 1778 .outerHeight(e.outerHeight()), 1779 /^(static|relative)/.test(s) && 1780 ((s = "absolute"), 1781 (i = t("<" + e[0].nodeName + ">") 1782 .insertAfter(e) 1783 .css({ 1784 display: /^(inline|ruby)/.test(e.css("display")) 1785 ? "inline-block" 1786 : "block", 1787 visibility: "hidden", 1788 marginTop: e.css("marginTop"), 1789 marginBottom: e.css("marginBottom"), 1790 marginLeft: e.css("marginLeft"), 1791 marginRight: e.css("marginRight"), 1792 float: e.css("float"), 1793 }) 1794 .outerWidth(e.outerWidth()) 1795 .outerHeight(e.outerHeight()) 1796 .addClass("ui-effects-placeholder")), 1797 e.data(c + "placeholder", i)), 1798 e.css({ position: s, left: n.left, top: n.top }), 1799 i 1800 ); 1801 }, 1802 removePlaceholder: function (t) { 1803 var e = c + "placeholder", 1804 i = t.data(e); 1805 i && (i.remove(), t.removeData(e)); 1806 }, 1807 cleanUp: function (e) { 1808 t.effects.restoreStyle(e), t.effects.removePlaceholder(e); 1809 }, 1810 setTransition: function (e, i, s, n) { 1811 return ( 1812 (n = n || {}), 1813 t.each(i, function (t, i) { 1814 var o = e.cssUnit(i); 1815 o[0] > 0 && (n[i] = o[0] * s + o[1]); 1816 }), 1817 n 1818 ); 1819 }, 1820 }), 1821 t.fn.extend({ 1822 effect: function () { 1823 function i(e) { 1824 function i() { 1825 r.removeData(d), 1826 t.effects.cleanUp(r), 1827 "hide" === s.mode && r.hide(), 1828 a(); 1829 } 1830 function a() { 1831 t.isFunction(h) && h.call(r[0]), t.isFunction(e) && e(); 1832 } 1833 var r = t(this); 1834 (s.mode = c.shift()), 1835 t.uiBackCompat === !1 || o 1836 ? "none" === s.mode 1837 ? (r[l](), a()) 1838 : n.call(r[0], s, i) 1839 : (r.is(":hidden") ? "hide" === l : "show" === l) 1840 ? (r[l](), a()) 1841 : n.call(r[0], s, a); 1842 } 1843 var s = e.apply(this, arguments), 1844 n = t.effects.effect[s.effect], 1845 o = n.mode, 1846 a = s.queue, 1847 r = a || "fx", 1848 h = s.complete, 1849 l = s.mode, 1850 c = [], 1851 u = function (e) { 1852 var i = t(this), 1853 s = t.effects.mode(i, l) || o; 1854 i.data(d, !0), 1855 c.push(s), 1856 o && ("show" === s || (s === o && "hide" === s)) && i.show(),
1857 (o && "none" === s) || t.effects.saveStyle(i), 1858 t.isFunction(e) && e(); 1859 }; 1860 return t.fx.off || !n 1861 ? l 1862 ? this[l](s.duration, h) 1863 : this.each(function () { 1864 h && h.call(this); 1865 }) 1866 : a === !1 1867 ? this.each(u).each(i) 1868 : this.queue(r, u).queue(r, i); 1869 }, 1870 show: (function (t) { 1871 return function (s) { 1872 if (i(s)) return t.apply(this, arguments); 1873 var n = e.apply(this, arguments); 1874 return (n.mode = "show"), this.effect.call(this, n); 1875 }; 1876 })(t.fn.show), 1877 hide: (function (t) { 1878 return function (s) { 1879 if (i(s)) return t.apply(this, arguments); 1880 var n = e.apply(this, arguments); 1881 return (n.mode = "hide"), this.effect.call(this, n); 1882 }; 1883 })(t.fn.hide), 1884 toggle: (function (t) { 1885 return function (s) { 1886 if (i(s) || "boolean" == typeof s) 1887 return t.apply(this, arguments); 1888 var n = e.apply(this, arguments); 1889 return (n.mode = "toggle"), this.effect.call(this, n); 1890 }; 1891 })(t.fn.toggle), 1892 cssUnit: function (e) { 1893 var i = this.css(e), 1894 s = []; 1895 return ( 1896 t.each(["em", "px", "%", "pt"], function (t, e) { 1897 i.indexOf(e) > 0 && (s = [parseFloat(i), e]); 1898 }), 1899 s 1900 ); 1901 }, 1902 cssClip: function (t) { 1903 return t 1904 ? this.css( 1905 "clip", 1906 "rect(" + 1907 t.top + 1908 "px " + 1909 t.right + 1910 "px " + 1911 t.bottom + 1912 "px " + 1913 t.left + 1914 "px)", 1915 ) 1916 : s(this.css("clip"), this); 1917 }, 1918 transfer: function (e, i) { 1919 var s = t(this), 1920 n = t(e.to), 1921 o = "fixed" === n.css("position"), 1922 a = t("body"), 1923 r = o ? a.scrollTop() : 0, 1924 h = o ? a.scrollLeft() : 0, 1925 l = n.offset(), 1926 c = { 1927 top: l.top - r, 1928 left: l.left - h, 1929 height: n.innerHeight(), 1930 width: n.innerWidth(), 1931 }, 1932 u = s.offset(), 1933 d = t("<div class='ui-effects-transfer'></div>") 1934 .appendTo("body") 1935 .addClass(e.className) 1936 .css({ 1937 top: u.top - r, 1938 left: u.left - h, 1939 height: s.innerHeight(), 1940 width: s.innerWidth(), 1941 position: o ? "fixed" : "absolute", 1942 }) 1943 .animate(c, e.duration, e.easing, function () { 1944 d.remove(), t.isFunction(i) && i(); 1945 }); 1946 }, 1947 }), 1948 (t.fx.step.clip = function (e) { 1949 e.clipInit || 1950 ((e.start = t(e.elem).cssClip()), 1951 "string" == typeof e.end && (e.end = s(e.end, e.elem)), 1952 (e.clipInit = !0)), 1953 t(e.elem).cssClip({ 1954 top: e.pos * (e.end.top - e.start.top) + e.start.top, 1955 right: e.pos * (e.end.right - e.start.right) + e.start.right, 1956 bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom, 1957 left: e.pos * (e.end.left - e.start.left) + e.start.left, 1958 }); 1959 }); 1960 })(), 1961 (function () { 1962 var e = {}; 1963 t.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (t, i) { 1964 e[i] = function (e) { 1965 return Math.pow(e, t + 2); 1966 }; 1967 }), 1968 t.extend(e, { 1969 Sine: function (t) { 1970 return 1 - Math.cos((t * Math.PI) / 2); 1971 }, 1972 Circ: function (t) { 1973 return 1 - Math.sqrt(1 - t * t); 1974 }, 1975 Elastic: function (t) { 1976 return 0 === t || 1 === t 1977 ? t 1978 : -Math.pow(2, 8 * (t - 1)) *
1979 Math.sin(((80 * (t - 1) - 7.5) * Math.PI) / 15); 1980 }, 1981 Back: function (t) { 1982 return t * t * (3 * t - 2); 1983 }, 1984 Bounce: function (t) { 1985 for (var e, i = 4; ((e = Math.pow(2, --i)) - 1) / 11 > t; ); 1986 return ( 1987 1 / Math.pow(4, 3 - i) - 1988 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2) 1989 ); 1990 }, 1991 }), 1992 t.each(e, function (e, i) { 1993 (t.easing["easeIn" + e] = i), 1994 (t.easing["easeOut" + e] = function (t) { 1995 return 1 - i(1 - t); 1996 }), 1997 (t.easing["easeInOut" + e] = function (t) { 1998 return 0.5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2; 1999 }); 2000 }); 2001 })(); 2002 var f = t.effects; 2003 t.effects.define("blind", "hide", function (e, i) { 2004 var s = { 2005 up: ["bottom", "top"], 2006 vertical: ["bottom", "top"], 2007 down: ["top", "bottom"], 2008 left: ["right", "left"], 2009 horizontal: ["right", "left"], 2010 right: ["left", "right"], 2011 }, 2012 n = t(this), 2013 o = e.direction || "up", 2014 a = n.cssClip(), 2015 r = { clip: t.extend({}, a) }, 2016 h = t.effects.createPlaceholder(n); 2017 (r.clip[s[o][0]] = r.clip[s[o][1]]), 2018 "show" === e.mode && 2019 (n.cssClip(r.clip), h && h.css(t.effects.clipToBox(r)), (r.clip = a)), 2020 h && h.animate(t.effects.clipToBox(r), e.duration, e.easing), 2021 n.animate(r, { 2022 queue: !1, 2023 duration: e.duration, 2024 easing: e.easing, 2025 complete: i, 2026 }); 2027 }), 2028 t.effects.define("bounce", function (e, i) { 2029 var s, 2030 n, 2031 o, 2032 a = t(this), 2033 r = e.mode, 2034 h = "hide" === r, 2035 l = "show" === r, 2036 c = e.direction || "up", 2037 u = e.distance, 2038 d = e.times || 5, 2039 p = 2 * d + (l || h ? 1 : 0), 2040 f = e.duration / p, 2041 g = e.easing, 2042 m = "up" === c || "down" === c ? "top" : "left", 2043 _ = "up" === c || "left" === c, 2044 v = 0, 2045 b = a.queue().length; 2046 for ( 2047 t.effects.createPlaceholder(a), 2048 o = a.css(m), 2049 u || (u = a["top" === m ? "outerHeight" : "outerWidth"]() / 3), 2050 l && 2051 ((n = { opacity: 1 }), 2052 (n[m] = o), 2053 a 2054 .css("opacity", 0) 2055 .css(m, _ ? 2 * -u : 2 * u) 2056 .animate(n, f, g)), 2057 h && (u /= Math.pow(2, d - 1)), 2058 n = {}, 2059 n[m] = o; 2060 d > v; 2061 v++ 2062 ) 2063 (s = {}), 2064 (s[m] = (_ ? "-=" : "+=") + u), 2065 a.animate(s, f, g).animate(n, f, g), 2066 (u = h ? 2 * u : u / 2); 2067 h && 2068 ((s = { opacity: 0 }), 2069 (s[m] = (_ ? "-=" : "+=") + u), 2070 a.animate(s, f, g)), 2071 a.queue(i), 2072 t.effects.unshift(a, b, p + 1); 2073 }), 2074 t.effects.define("clip", "hide", function (e, i) { 2075 var s, 2076 n = {}, 2077 o = t(this), 2078 a = e.direction || "vertical", 2079 r = "both" === a, 2080 h = r || "horizontal" === a, 2081 l = r || "vertical" === a; 2082 (s = o.cssClip()), 2083 (n.clip = { 2084 top: l ? (s.bottom - s.top) / 2 : s.top, 2085 right: h ? (s.right - s.left) / 2 : s.right, 2086 bottom: l ? (s.bottom - s.top) / 2 : s.bottom, 2087 left: h ? (s.right - s.left) / 2 : s.left, 2088 }), 2089 t.effects.createPlaceholder(o), 2090 "show" === e.mode && (o.cssClip(n.clip), (n.clip = s)), 2091 o.animate(n, { 2092 queue: !1, 2093 duration: e.duration, 2094 easing: e.easing, 2095 complete: i, 2096 }); 2097 }), 2098 t.effects.define("drop", "hide", function (e, i) { 2099 var s, 2100 n = t(this), 2101 o = e.mode, 2102 a = "show" === o, 2103 r = e.direction || "left", 2104 h = "up" === r || "down" === r ? "top" : "left", 2105 l = "up" === r || "left" === r ? "-=" : "+=", 2106 c = "+=" === l ? "-=" : "+=", 2107 u = { opacity: 0 }; 2108 t.effects.createPlaceholder(n), 2109 (s = 2110 e.distance || n["top" === h ? "outerHeight" : "outerWidth"](!0) / 2), 2111 (u[h] = l + s), 2112 a && (n.css(u), (u[h] = c + s), (u.opacity = 1)), 2113 n.animate(u, { 2114 queue: !1, 2115 duration: e.duration, 2116 easing: e.easing, 2117 complete: i, 2118 }); 2119 }), 2120 t.effects.define("explode", "hide", function (e, i) { 2121 function s() { 2122 b.push(this), b.length === u * d && n(); 2123 } 2124 function n() { 2125 p.css({ visibility: "visible" }), t(b).remove(), i(); 2126 } 2127 var o, 2128 a, 2129 r, 2130 h, 2131 l, 2132 c, 2133 u = e.pieces ? Math.round(Math.sqrt(e.pieces)) : 3, 2134 d = u, 2135 p = t(this), 2136 f = e.mode, 2137 g = "show" === f, 2138 m = p.show().css("visibility", "hidden").offset(),
2139 _ = Math.ceil(p.outerWidth() / d), 2140 v = Math.ceil(p.outerHeight() / u), 2141 b = []; 2142 for (o = 0; u > o; o++) 2143 for (h = m.top + o * v, c = o - (u - 1) / 2, a = 0; d > a; a++) 2144 (r = m.left + a * _), 2145 (l = a - (d - 1) / 2), 2146 p 2147 .clone() 2148 .appendTo("body") 2149 .wrap("<div></div>") 2150 .css({ 2151 position: "absolute", 2152 visibility: "visible", 2153 left: -a * _, 2154 top: -o * v, 2155 }) 2156 .parent() 2157 .addClass("ui-effects-explode") 2158 .css({ 2159 position: "absolute", 2160 overflow: "hidden", 2161 width: _, 2162 height: v, 2163 left: r + (g ? l * _ : 0), 2164 top: h + (g ? c * v : 0), 2165 opacity: g ? 0 : 1, 2166 }) 2167 .animate( 2168 { 2169 left: r + (g ? 0 : l * _), 2170 top: h + (g ? 0 : c * v), 2171 opacity: g ? 1 : 0, 2172 }, 2173 e.duration || 500, 2174 e.easing, 2175 s, 2176 ); 2177 }), 2178 t.effects.define("fade", "toggle", function (e, i) { 2179 var s = "show" === e.mode; 2180 t(this) 2181 .css("opacity", s ? 0 : 1) 2182 .animate( 2183 { opacity: s ? 1 : 0 }, 2184 { queue: !1, duration: e.duration, easing: e.easing, complete: i }, 2185 ); 2186 }), 2187 t.effects.define("fold", "hide", function (e, i) { 2188 var s = t(this), 2189 n = e.mode, 2190 o = "show" === n, 2191 a = "hide" === n, 2192 r = e.size || 15, 2193 h = /([0-9]+)%/.exec(r), 2194 l = !!e.horizFirst, 2195 c = l ? ["right", "bottom"] : ["bottom", "right"], 2196 u = e.duration / 2, 2197 d = t.effects.createPlaceholder(s), 2198 p = s.cssClip(), 2199 f = { clip: t.extend({}, p) }, 2200 g = { clip: t.extend({}, p) }, 2201 m = [p[c[0]], p[c[1]]], 2202 _ = s.queue().length; 2203 h && (r = (parseInt(h[1], 10) / 100) * m[a ? 0 : 1]), 2204 (f.clip[c[0]] = r), 2205 (g.clip[c[0]] = r), 2206 (g.clip[c[1]] = 0), 2207 o && 2208 (s.cssClip(g.clip), d && d.css(t.effects.clipToBox(g)), (g.clip = p)), 2209 s 2210 .queue(function (i) { 2211 d && 2212 d 2213 .animate(t.effects.clipToBox(f), u, e.easing) 2214 .animate(t.effects.clipToBox(g), u, e.easing), 2215 i(); 2216 }) 2217 .animate(f, u, e.easing) 2218 .animate(g, u, e.easing) 2219 .queue(i), 2220 t.effects.unshift(s, _, 4); 2221 }), 2222 t.effects.define("highlight", "show", function (e, i) { 2223 var s = t(this), 2224 n = { backgroundColor: s.css("backgroundColor") }; 2225 "hide" === e.mode && (n.opacity = 0), 2226 t.effects.saveStyle(s), 2227 s 2228 .css({ 2229 backgroundImage: "none", 2230 backgroundColor: e.color || "#ffff99", 2231 }) 2232 .animate(n, { 2233 queue: !1, 2234 duration: e.duration, 2235 easing: e.easing, 2236 complete: i, 2237 }); 2238 }), 2239 t.effects.define("size", function (e, i) { 2240 var s, 2241 n, 2242 o, 2243 a = t(this), 2244 r = ["fontSize"], 2245 h = [ 2246 "borderTopWidth", 2247 "borderBottomWidth", 2248 "paddingTop", 2249 "paddingBottom", 2250 ], 2251 l = [ 2252 "borderLeftWidth", 2253 "borderRightWidth", 2254 "paddingLeft", 2255 "paddingRight", 2256 ], 2257 c = e.mode, 2258 u = "effect" !== c, 2259 d = e.scale || "both", 2260 p = e.origin || ["middle", "center"], 2261 f = a.css("position"), 2262 g = a.position(), 2263 m = t.effects.scaledDimensions(a), 2264 _ = e.from || m, 2265 v = e.to || t.effects.scaledDimensions(a, 0); 2266 t.effects.createPlaceholder(a), 2267 "show" === c && ((o = _), (_ = v), (v = o)), 2268 (n = { 2269 from: { y: _.height / m.height, x: _.width / m.width }, 2270 to: { y: v.height / m.height, x: v.width / m.width }, 2271 }), 2272 ("box" === d || "both" === d) && 2273 (n.from.y !== n.to.y && 2274 ((_ = t.effects.setTransition(a, h, n.from.y, _)), 2275 (v = t.effects.setTransition(a, h, n.to.y, v))), 2276 n.from.x !== n.to.x && 2277 ((_ = t.effects.setTransition(a, l, n.from.x, _)), 2278 (v = t.effects.setTransition(a, l, n.to.x, v)))), 2279 ("content" === d || "both" === d) && 2280 n.from.y !== n.to.y && 2281 ((_ = t.effects.setTransition(a, r, n.from.y, _)), 2282 (v = t.effects.setTransition(a, r, n.to.y, v))), 2283 p && 2284 ((s = t.effects.getBaseline(p, m)), 2285 (_.top = (m.outerHeight - _.outerHeight) * s.y + g.top), 2286 (_.left = (m.outerWidth - _.outerWidth) * s.x + g.left), 2287 (v.top = (m.outerHeight - v.outerHeight) * s.y + g.top), 2288 (v.left = (m.outerWidth - v.outerWidth) * s.x + g.left)), 2289 a.css(_), 2290 ("content" === d || "both" === d) && 2291 ((h = h.concat(["marginTop", "marginBottom"]).concat(r)), 2292 (l = l.concat(["marginLeft", "marginRight"])), 2293 a.find("*[width]").each(function () { 2294 var i = t(this), 2295 s = t.effects.scaledDimensions(i), 2296 o = { 2297 height: s.height * n.from.y, 2298 width: s.width * n.from.x, 2299 outerHeight: s.outerHeight * n.from.y, 2300 outerWidth: s.outerWidth * n.from.x, 2301 }, 2302 a = { 2303 height: s.height * n.to.y, 2304 width: s.width * n.to.x, 2305 outerHeight: s.height * n.to.y, 2306 outerWidth: s.width * n.to.x, 2307 }; 2308 n.from.y !== n.to.y && 2309 ((o = t.effects.setTransition(i, h, n.from.y, o)), 2310 (a = t.effects.setTransition(i, h, n.to.y, a))), 2311 n.from.x !== n.to.x && 2312 ((o = t.effects.setTransition(i, l, n.from.x, o)), 2313 (a = t.effects.setTransition(i, l, n.to.x, a))), 2314 u && t.effects.saveStyle(i), 2315 i.css(o), 2316 i.animate(a, e.duration, e.easing, function () { 2317 u && t.effects.restoreStyle(i); 2318 }); 2319 })), 2320 a.animate(v, { 2321 queue: !1, 2322 duration: e.duration, 2323 easing: e.easing, 2324 complete: function () { 2325 var e = a.offset(); 2326 0 === v.opacity && a.css("opacity", _.opacity), 2327 u || 2328 (a.css("position", "static" === f ? "relative" : f).offset(e), 2329 t.effects.saveStyle(a)), 2330 i(); 2331 }, 2332 }); 2333 }), 2334 t.effects.define("scale", function (e, i) { 2335 var s = t(this), 2336 n = e.mode, 2337 o = 2338 parseInt(e.percent, 10) || 2339 (0 === parseInt(e.percent, 10) ? 0 : "effect" !== n ? 0 : 100), 2340 a = t.extend( 2341 !0, 2342 { 2343 from: t.effects.scaledDimensions(s), 2344 to: t.effects.scaledDimensions(s, o, e.direction || "both"), 2345 origin: e.origin || ["middle", "center"], 2346 }, 2347 e, 2348 ); 2349 e.fade && ((a.from.opacity = 1), (a.to.opacity = 0)), 2350 t.effects.effect.size.call(this, a, i); 2351 }), 2352 t.effects.define("puff", "hide", function (e, i) { 2353 var s = t.extend(!0, {}, e, { 2354 fade: !0, 2355 percent: parseInt(e.percent, 10) || 150, 2356 }); 2357 t.effects.effect.scale.call(this, s, i); 2358 }), 2359 t.effects.define("pulsate", "show", function (e, i) { 2360 var s = t(this), 2361 n = e.mode, 2362 o = "show" === n, 2363 a = "hide" === n, 2364 r = o || a, 2365 h = 2 * (e.times || 5) + (r ? 1 : 0), 2366 l = e.duration / h, 2367 c = 0, 2368 u = 1, 2369 d = s.queue().length; 2370 for ( 2371 (o || !s.is(":visible")) && (s.css("opacity", 0).show(), (c = 1)); 2372 h > u; 2373 u++ 2374 ) 2375 s.animate({ opacity: c }, l, e.easing), (c = 1 - c); 2376 s.animate({ opacity: c }, l, e.easing), 2377 s.queue(i), 2378 t.effects.unshift(s, d, h + 1); 2379 }), 2380 t.effects.define("shake", function (e, i) { 2381 var s = 1, 2382 n = t(this), 2383 o = e.direction || "left", 2384 a = e.distance || 20, 2385 r = e.times || 3, 2386 h = 2 * r + 1, 2387 l = Math.round(e.duration / h), 2388 c = "up" === o || "down" === o ? "top" : "left", 2389 u = "up" === o || "left" === o, 2390 d = {}, 2391 p = {}, 2392 f = {}, 2393 g = n.queue().length; 2394 for ( 2395 t.effects.createPlaceholder(n), 2396 d[c] = (u ? "-=" : "+=") + a, 2397 p[c] = (u ? "+=" : "-=") + 2 * a, 2398 f[c] = (u ? "-=" : "+=") + 2 * a, 2399 n.animate(d, l, e.easing); 2400 r > s; 2401 s++ 2402 ) 2403 n.animate(p, l, e.easing).animate(f, l, e.easing); 2404 n 2405 .animate(p, l, e.easing) 2406 .animate(d, l / 2, e.easing) 2407 .queue(i), 2408 t.effects.unshift(n, g, h + 1); 2409 }), 2410 t.effects.define("slide", "show", function (e, i) { 2411 var s, 2412 n, 2413 o = t(this), 2414 a = { 2415 up: ["bottom", "top"], 2416 down: ["top", "bottom"], 2417 left: ["right", "left"], 2418 right: ["left", "right"], 2419 }, 2420 r = e.mode, 2421 h = e.direction || "left", 2422 l = "up" === h || "down" === h ? "top" : "left", 2423 c = "up" === h || "left" === h, 2424 u = e.distance || o["top" === l ? "outerHeight" : "outerWidth"](!0), 2425 d = {}; 2426 t.effects.createPlaceholder(o), 2427 (s = o.cssClip()), 2428 (n = o.position()[l]), 2429 (d[l] = (c ? -1 : 1) * u + n), 2430 (d.clip = o.cssClip()),
2431 (d.clip[a[h][1]] = d.clip[a[h][0]]), 2432 "show" === r && 2433 (o.cssClip(d.clip), o.css(l, d[l]), (d.clip = s), (d[l] = n)), 2434 o.animate(d, { 2435 queue: !1, 2436 duration: e.duration, 2437 easing: e.easing, 2438 complete: i, 2439 }); 2440 }); 2441 var f; 2442 t.uiBackCompat !== !1 && 2443 (f = t.effects.define("transfer", function (e, i) { 2444 t(this).transfer(e, i); 2445 })), 2446 (t.ui.focusable = function (i, s) { 2447 var n, 2448 o, 2449 a, 2450 r, 2451 h, 2452 l = i.nodeName.toLowerCase(); 2453 return "area" === l 2454 ? ((n = i.parentNode), 2455 (o = n.name), 2456 i.href && o && "map" === n.nodeName.toLowerCase() 2457 ? ((a = t("img[usemap='#" + o + "']")), 2458 a.length > 0 && a.is(":visible")) 2459 : !1) 2460 : (/^(input|select|textarea|button|object)$/.test(l) 2461 ? ((r = !i.disabled), 2462 r && ((h = t(i).closest("fieldset")[0]), h && (r = !h.disabled))) 2463 : (r = "a" === l ? i.href || s : s), 2464 r && t(i).is(":visible") && e(t(i))); 2465 }), 2466 t.extend(t.expr[":"], { 2467 focusable: function (e) { 2468 return t.ui.focusable(e, null != t.attr(e, "tabindex")); 2469 }, 2470 }), 2471 t.ui.focusable, 2472 (t.fn.form = function () { 2473 return "string" == typeof this[0].form 2474 ? this.closest("form") 2475 : t(this[0].form); 2476 }), 2477 (t.ui.formResetMixin = { 2478 _formResetHandler: function () { 2479 var e = t(this); 2480 setTimeout(function () { 2481 var i = e.data("ui-form-reset-instances"); 2482 t.each(i, function () { 2483 this.refresh(); 2484 }); 2485 }); 2486 }, 2487 _bindFormResetHandler: function () { 2488 if (((this.form = this.element.form()), this.form.length)) { 2489 var t = this.form.data("ui-form-reset-instances") || []; 2490 t.length || 2491 this.form.on("reset.ui-form-reset", this._formResetHandler), 2492 t.push(this), 2493 this.form.data("ui-form-reset-instances", t); 2494 } 2495 }, 2496 _unbindFormResetHandler: function () { 2497 if (this.form.length) { 2498 var e = this.form.data("ui-form-reset-instances"); 2499 e.splice(t.inArray(this, e), 1), 2500 e.length 2501 ? this.form.data("ui-form-reset-instances", e) 2502 : this.form 2503 .removeData("ui-form-reset-instances") 2504 .off("reset.ui-form-reset"); 2505 } 2506 }, 2507 }), 2508 "1.7" === t.fn.jquery.substring(0, 3) && 2509 (t.each(["Width", "Height"], function (e, i) { 2510 function s(e, i, s, o) { 2511 return ( 2512 t.each(n, function () { 2513 (i -= parseFloat(t.css(e, "padding" + this)) || 0), 2514 s && 2515 (i -= parseFloat(t.css(e, "border" + this + "Width")) || 0), 2516 o && (i -= parseFloat(t.css(e, "margin" + this)) || 0); 2517 }), 2518 i 2519 ); 2520 } 2521 var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"], 2522 o = i.toLowerCase(), 2523 a = { 2524 innerWidth: t.fn.innerWidth, 2525 innerHeight: t.fn.innerHeight, 2526 outerWidth: t.fn.outerWidth, 2527 outerHeight: t.fn.outerHeight, 2528 }; 2529 (t.fn["inner" + i] = function (e) { 2530 return void 0 === e 2531 ? a["inner" + i].call(this) 2532 : this.each(function () { 2533 t(this).css(o, s(this, e) + "px"); 2534 }); 2535 }), 2536 (t.fn["outer" + i] = function (e, n) { 2537 return "number" != typeof e 2538 ? a["outer" + i].call(this, e) 2539 : this.each(function () { 2540 t(this).css(o, s(this, e, !0, n) + "px"); 2541 }); 2542 }); 2543 }), 2544 (t.fn.addBack = function (t) { 2545 return this.add( 2546 null == t ? this.prevObject : this.prevObject.filter(t), 2547 ); 2548 })), 2549 (t.ui.keyCode = { 2550 BACKSPACE: 8, 2551 COMMA: 188, 2552 DELETE: 46, 2553 DOWN: 40, 2554 END: 35, 2555 ENTER: 13, 2556 ESCAPE: 27, 2557 HOME: 36, 2558 LEFT: 37, 2559 PAGE_DOWN: 34, 2560 PAGE_UP: 33, 2561 PERIOD: 190, 2562 RIGHT: 39, 2563 SPACE: 32, 2564 TAB: 9, 2565 UP: 38, 2566 }), 2567 (t.ui.escapeSelector = (function () { 2568 var t = /([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g; 2569 return function (e) { 2570 return e.replace(t, "\\$1"); 2571 }; 2572 })()), 2573 (t.fn.labels = function () { 2574 var e, i, s, n, o; 2575 return this[0].labels && this[0].labels.length 2576 ? this.pushStack(this[0].labels) 2577 : ((n = this.eq(0).parents("label")), 2578 (s = this.attr("id")), 2579 s &&
2580 ((e = this.eq(0).parents().last()), 2581 (o = e.add(e.length ? e.siblings() : this.siblings())), 2582 (i = "label[for='" + t.ui.escapeSelector(s) + "']"), 2583 (n = n.add(o.find(i).addBack(i)))), 2584 this.pushStack(n)); 2585 }), 2586 (t.fn.scrollParent = function (e) { 2587 var i = this.css("position"), 2588 s = "absolute" === i, 2589 n = e ? /(auto|scroll|hidden)/ : /(auto|scroll)/, 2590 o = this.parents() 2591 .filter(function () { 2592 var e = t(this); 2593 return s && "static" === e.css("position") 2594 ? !1 2595 : n.test( 2596 e.css("overflow") + e.css("overflow-y") + e.css("overflow-x"), 2597 ); 2598 }) 2599 .eq(0); 2600 return "fixed" !== i && o.length 2601 ? o 2602 : t(this[0].ownerDocument || document); 2603 }), 2604 t.extend(t.expr[":"], { 2605 tabbable: function (e) { 2606 var i = t.attr(e, "tabindex"), 2607 s = null != i; 2608 return (!s || i >= 0) && t.ui.focusable(e, s); 2609 }, 2610 }), 2611 t.fn.extend({ 2612 uniqueId: (function () { 2613 var t = 0; 2614 return function () { 2615 return this.each(function () { 2616 this.id || (this.id = "ui-id-" + ++t); 2617 }); 2618 }; 2619 })(), 2620 removeUniqueId: function () { 2621 return this.each(function () { 2622 /^ui-id-\d+$/.test(this.id) && t(this).removeAttr("id"); 2623 }); 2624 }, 2625 }), 2626 t.widget("ui.accordion", { 2627 version: "1.12.1", 2628 options: { 2629 active: 0, 2630 animate: {}, 2631 classes: { 2632 "ui-accordion-header": "ui-corner-top", 2633 "ui-accordion-header-collapsed": "ui-corner-all", 2634 "ui-accordion-content": "ui-corner-bottom", 2635 }, 2636 collapsible: !1, 2637 event: "click", 2638 header: "> li > :first-child, > :not(li):even", 2639 heightStyle: "auto", 2640 icons: { 2641 activeHeader: "ui-icon-triangle-1-s", 2642 header: "ui-icon-triangle-1-e", 2643 }, 2644 activate: null, 2645 beforeActivate: null, 2646 }, 2647 hideProps: { 2648 borderTopWidth: "hide", 2649 borderBottomWidth: "hide", 2650 paddingTop: "hide", 2651 paddingBottom: "hide", 2652 height: "hide", 2653 }, 2654 showProps: { 2655 borderTopWidth: "show", 2656 borderBottomWidth: "show", 2657 paddingTop: "show", 2658 paddingBottom: "show", 2659 height: "show", 2660 }, 2661 _create: function () { 2662 var e = this.options; 2663 (this.prevShow = this.prevHide = t()), 2664 this._addClass("ui-accordion", "ui-widget ui-helper-reset"), 2665 this.element.attr("role", "tablist"), 2666 e.collapsible || 2667 (e.active !== !1 && null != e.active) || 2668 (e.active = 0), 2669 this._processPanels(), 2670 0 > e.active && (e.active += this.headers.length), 2671 this._refresh(); 2672 }, 2673 _getCreateEventData: function () { 2674 return { 2675 header: this.active, 2676 panel: this.active.length ? this.active.next() : t(), 2677 }; 2678 }, 2679 _createIcons: function () { 2680 var e, 2681 i, 2682 s = this.options.icons; 2683 s && 2684 ((e = t("<span>")), 2685 this._addClass(e, "ui-accordion-header-icon", "ui-icon " + s.header), 2686 e.prependTo(this.headers), 2687 (i = this.active.children(".ui-accordion-header-icon")), 2688 this._removeClass(i, s.header) 2689 ._addClass(i, null, s.activeHeader) 2690 ._addClass(this.headers, "ui-accordion-icons")); 2691 }, 2692 _destroyIcons: function () { 2693 this._removeClass(this.headers, "ui-accordion-icons"), 2694 this.headers.children(".ui-accordion-header-icon").remove(); 2695 }, 2696 _destroy: function () { 2697 var t; 2698 this.element.removeAttr("role"), 2699 this.headers 2700 .removeAttr( 2701 "role aria-expanded aria-selected aria-controls tabIndex", 2702 ) 2703 .removeUniqueId(), 2704 this._destroyIcons(), 2705 (t = this.headers 2706 .next() 2707 .css("display", "") 2708 .removeAttr("role aria-hidden aria-labelledby") 2709 .removeUniqueId()), 2710 "content" !== this.options.heightStyle && t.css("height", ""); 2711 }, 2712 _setOption: function (t, e) { 2713 return "active" === t 2714 ? (this._activate(e), void 0) 2715 : ("event" === t && 2716 (this.options.event && 2717 this._off(this.headers, this.options.event), 2718 this._setupEvents(e)), 2719 this._super(t, e), 2720 "collapsible" !== t || 2721 e || 2722 this.options.active !== !1 || 2723 this._activate(0), 2724 "icons" === t && (this._destroyIcons(), e && this._createIcons()), 2725 void 0); 2726 }, 2727 _setOptionDisabled: function (t) { 2728 this._super(t), 2729 this.element.attr("aria-disabled", t), 2730 this._toggleClass(null, "ui-state-disabled", !!t), 2731 this._toggleClass( 2732 this.headers.add(this.headers.next()), 2733 null, 2734 "ui-state-disabled", 2735 !!t, 2736 ); 2737 }, 2738 _keydown: function (e) { 2739 if (!e.altKey && !e.ctrlKey) { 2740 var i = t.ui.keyCode, 2741 s = this.headers.length, 2742 n = this.headers.index(e.target), 2743 o = !1; 2744 switch (e.keyCode) { 2745 case i.RIGHT: 2746 case i.DOWN: 2747 o = this.headers[(n + 1) % s]; 2748 break; 2749 case i.LEFT: 2750 case i.UP: 2751 o = this.headers[(n - 1 + s) % s]; 2752 break; 2753 case i.SPACE: 2754 case i.ENTER: 2755 this._eventHandler(e); 2756 break; 2757 case i.HOME: 2758 o = this.headers[0]; 2759 break; 2760 case i.END: 2761 o = this.headers[s - 1]; 2762 } 2763 o && 2764 (t(e.target).attr("tabIndex", -1), 2765 t(o).attr("tabIndex", 0), 2766 t(o).trigger("focus"), 2767 e.preventDefault()); 2768 } 2769 }, 2770 _panelKeyDown: function (e) { 2771 e.keyCode === t.ui.keyCode.UP && 2772 e.ctrlKey && 2773 t(e.currentTarget).prev().trigger("focus"); 2774 }, 2775 refresh: function () { 2776 var e = this.options; 2777 this._processPanels(), 2778 (e.active === !1 && e.collapsible === !0) || !this.headers.length 2779 ? ((e.active = !1), (this.active = t())) 2780 : e.active === !1 2781 ? this._activate(0) 2782 : this.active.length && 2783 !t.contains(this.element[0], this.active[0]) 2784 ? this.headers.length === 2785 this.headers.find(".ui-state-disabled").length 2786 ? ((e.active = !1), (this.active = t())) 2787 : this._activate(Math.max(0, e.active - 1)) 2788 : (e.active = this.headers.index(this.active)), 2789 this._destroyIcons(), 2790 this._refresh(); 2791 }, 2792 _processPanels: function () { 2793 var t = this.headers, 2794 e = this.panels; 2795 (this.headers = this.element.find(this.options.header)), 2796 this._addClass( 2797 this.headers, 2798 "ui-accordion-header ui-accordion-header-collapsed", 2799 "ui-state-default", 2800 ), 2801 (this.panels = this.headers 2802 .next() 2803 .filter(":not(.ui-accordion-content-active)") 2804 .hide()), 2805 this._addClass( 2806 this.panels, 2807 "ui-accordion-content", 2808 "ui-helper-reset ui-widget-content", 2809 ), 2810 e && (this._off(t.not(this.headers)), this._off(e.not(this.panels))); 2811 }, 2812 _refresh: function () { 2813 var e, 2814 i = this.options, 2815 s = i.heightStyle, 2816 n = this.element.parent(); 2817 (this.active = this._findActive(i.active)), 2818 this._addClass( 2819 this.active, 2820 "ui-accordion-header-active", 2821 "ui-state-active", 2822 )._removeClass(this.active, "ui-accordion-header-collapsed"), 2823 this._addClass(this.active.next(), "ui-accordion-content-active"), 2824 this.active.next().show(), 2825 this.headers 2826 .attr("role", "tab") 2827 .each(function () { 2828 var e = t(this), 2829 i = e.uniqueId().attr("id"), 2830 s = e.next(), 2831 n = s.uniqueId().attr("id"); 2832 e.attr("aria-controls", n), s.attr("aria-labelledby", i); 2833 }) 2834 .next() 2835 .attr("role", "tabpanel"), 2836 this.headers 2837 .not(this.active) 2838 .attr({ 2839 "aria-selected": "false", 2840 "aria-expanded": "false", 2841 tabIndex: -1, 2842 }) 2843 .next() 2844 .attr({ "aria-hidden": "true" }) 2845 .hide(), 2846 this.active.length 2847 ? this.active 2848 .attr({ 2849 "aria-selected": "true", 2850 "aria-expanded": "true", 2851 tabIndex: 0, 2852 }) 2853 .next() 2854 .attr({ "aria-hidden": "false" }) 2855 : this.headers.eq(0).attr("tabIndex", 0), 2856 this._createIcons(), 2857 this._setupEvents(i.event), 2858 "fill" === s 2859 ? ((e = n.height()), 2860 this.element.siblings(":visible").each(function () { 2861 var i = t(this), 2862 s = i.css("position"); 2863 "absolute" !== s && "fixed" !== s && (e -= i.outerHeight(!0)); 2864 }), 2865 this.headers.each(function () { 2866 e -= t(this).outerHeight(!0); 2867 }), 2868 this.headers 2869 .next() 2870 .each(function () { 2871 t(this).height( 2872 Math.max(0, e - t(this).innerHeight() + t(this).height()), 2873 ); 2874 }) 2875 .css("overflow", "auto")) 2876 : "auto" === s && 2877 ((e = 0), 2878 this.headers 2879 .next() 2880 .each(function () { 2881 var i = t(this).is(":visible"); 2882 i || t(this).show(), 2883 (e = Math.max(e, t(this).css("height", "").height())), 2884 i || t(this).hide(); 2885 }) 2886 .height(e)); 2887 }, 2888 _activate: function (e) { 2889 var i = this._findActive(e)[0]; 2890 i !== this.active[0] && 2891 ((i = i || this.active[0]), 2892 this._eventHandler({ 2893 target: i, 2894 currentTarget: i, 2895 preventDefault: t.noop, 2896 })); 2897 }, 2898 _findActive: function (e) { 2899 return "number" == typeof e ? this.headers.eq(e) : t(); 2900 }, 2901 _setupEvents: function (e) { 2902 var i = { keydown: "_keydown" }; 2903 e && 2904 t.each(e.split(" "), function (t, e) { 2905 i[e] = "_eventHandler"; 2906 }), 2907 this._off(this.headers.add(this.headers.next())), 2908 this._on(this.headers, i), 2909 this._on(this.headers.next(), { keydown: "_panelKeyDown" }), 2910 this._hoverable(this.headers), 2911 this._focusable(this.headers); 2912 }, 2913 _eventHandler: function (e) { 2914 var i, 2915 s, 2916 n = this.options, 2917 o = this.active, 2918 a = t(e.currentTarget), 2919 r = a[0] === o[0], 2920 h = r && n.collapsible, 2921 l = h ? t() : a.next(), 2922 c = o.next(), 2923 u = { 2924 oldHeader: o, 2925 oldPanel: c, 2926 newHeader: h ? t() : a, 2927 newPanel: l, 2928 }; 2929 e.preventDefault(), 2930 (r && !n.collapsible) || 2931 this._trigger("beforeActivate", e, u) === !1 || 2932 ((n.active = h ? !1 : this.headers.index(a)), 2933 (this.active = r ? t() : a), 2934 this._toggle(u), 2935 this._removeClass( 2936 o, 2937 "ui-accordion-header-active", 2938 "ui-state-active", 2939 ), 2940 n.icons && 2941 ((i = o.children(".ui-accordion-header-icon")), 2942 this._removeClass(i, null, n.icons.activeHeader)._addClass( 2943 i, 2944 null, 2945 n.icons.header, 2946 )), 2947 r || 2948 (this._removeClass(a, "ui-accordion-header-collapsed")._addClass( 2949 a, 2950 "ui-accordion-header-active", 2951 "ui-state-active", 2952 ), 2953 n.icons && 2954 ((s = a.children(".ui-accordion-header-icon")), 2955 this._removeClass(s, null, n.icons.header)._addClass( 2956 s, 2957 null, 2958 n.icons.activeHeader, 2959 )), 2960 this._addClass(a.next(), "ui-accordion-content-active"))); 2961 }, 2962 _toggle: function (e) { 2963 var i = e.newPanel, 2964 s = this.prevShow.length ? this.prevShow : e.oldPanel; 2965 this.prevShow.add(this.prevHide).stop(!0, !0), 2966 (this.prevShow = i), 2967 (this.prevHide = s), 2968 this.options.animate 2969 ? this._animate(i, s, e) 2970 : (s.hide(), i.show(), this._toggleComplete(e)), 2971 s.attr({ "aria-hidden": "true" }), 2972 s.prev().attr({ "aria-selected": "false", "aria-expanded": "false" }), 2973 i.length && s.length 2974 ? s.prev().attr({ tabIndex: -1, "aria-expanded": "false" }) 2975 : i.length && 2976 this.headers 2977 .filter(function () { 2978 return 0 === parseInt(t(this).attr("tabIndex"), 10); 2979 }) 2980 .attr("tabIndex", -1), 2981 i.attr("aria-hidden", "false").prev().attr({ 2982 "aria-selected": "true", 2983 "aria-expanded": "true", 2984 tabIndex: 0, 2985 }); 2986 }, 2987 _animate: function (t, e, i) { 2988 var s, 2989 n, 2990 o, 2991 a = this, 2992 r = 0, 2993 h = t.css("box-sizing"), 2994 l = t.length && (!e.length || t.index() < e.index()), 2995 c = this.options.animate || {}, 2996 u = (l && c.down) || c, 2997 d = function () { 2998 a._toggleComplete(i); 2999 }; 3000 return ( 3001 "number" == typeof u && (o = u), 3002 "string" == typeof u && (n = u), 3003 (n = n || u.easing || c.easing), 3004 (o = o || u.duration || c.duration), 3005 e.length 3006 ? t.length 3007 ? ((s = t.show().outerHeight()), 3008 e.animate(this.hideProps, { 3009 duration: o, 3010 easing: n, 3011 step: function (t, e) { 3012 e.now = Math.round(t); 3013 }, 3014 }), 3015 t.hide().animate(this.showProps, { 3016 duration: o, 3017 easing: n, 3018 complete: d, 3019 step: function (t, i) { 3020 (i.now = Math.round(t)), 3021 "height" !== i.prop 3022 ? "content-box" === h && (r += i.now) 3023 : "content" !== a.options.heightStyle && 3024 ((i.now = Math.round(s - e.outerHeight() - r)), 3025 (r = 0)); 3026 }, 3027 }), 3028 void 0) 3029 : e.animate(this.hideProps, o, n, d) 3030 : t.animate(this.showProps, o, n, d) 3031 ); 3032 }, 3033 _toggleComplete: function (t) { 3034 var e = t.oldPanel, 3035 i = e.prev(); 3036 this._removeClass(e, "ui-accordion-content-active"), 3037 this._removeClass(i, "ui-accordion-header-active")._addClass( 3038 i, 3039 "ui-accordion-header-collapsed", 3040 ), 3041 e.length && (e.parent()[0].className = e.parent()[0].className), 3042 this._trigger("activate", null, t); 3043 }, 3044 }), 3045 (t.ui.safeActiveElement = function (t) { 3046 var e;
3047 try { 3048 e = t.activeElement; 3049 } catch (i) { 3050 e = t.body; 3051 } 3052 return e || (e = t.body), e.nodeName || (e = t.body), e; 3053 }), 3054 t.widget("ui.menu", { 3055 version: "1.12.1", 3056 defaultElement: "<ul>", 3057 delay: 300, 3058 options: { 3059 icons: { submenu: "ui-icon-caret-1-e" }, 3060 items: "> *", 3061 menus: "ul", 3062 position: { my: "left top", at: "right top" }, 3063 role: "menu", 3064 blur: null, 3065 focus: null, 3066 select: null, 3067 }, 3068 _create: function () { 3069 (this.activeMenu = this.element), 3070 (this.mouseHandled = !1), 3071 this.element 3072 .uniqueId() 3073 .attr({ role: this.options.role, tabIndex: 0 }), 3074 this._addClass("ui-menu", "ui-widget ui-widget-content"), 3075 this._on({ 3076 "mousedown .ui-menu-item": function (t) { 3077 t.preventDefault(); 3078 }, 3079 "click .ui-menu-item": function (e) { 3080 var i = t(e.target), 3081 s = t(t.ui.safeActiveElement(this.document[0])); 3082 !this.mouseHandled && 3083 i.not(".ui-state-disabled").length && 3084 (this.select(e), 3085 e.isPropagationStopped() || (this.mouseHandled = !0), 3086 i.has(".ui-menu").length 3087 ? this.expand(e) 3088 : !this.element.is(":focus") && 3089 s.closest(".ui-menu").length && 3090 (this.element.trigger("focus", [!0]), 3091 this.active && 3092 1 === this.active.parents(".ui-menu").length && 3093 clearTimeout(this.timer))); 3094 }, 3095 "mouseenter .ui-menu-item": function (e) { 3096 if (!this.previousFilter) { 3097 var i = t(e.target).closest(".ui-menu-item"), 3098 s = t(e.currentTarget); 3099 i[0] === s[0] && 3100 (this._removeClass( 3101 s.siblings().children(".ui-state-active"), 3102 null, 3103 "ui-state-active", 3104 ), 3105 this.focus(e, s)); 3106 } 3107 }, 3108 mouseleave: "collapseAll", 3109 "mouseleave .ui-menu": "collapseAll", 3110 focus: function (t, e) { 3111 var i = 3112 this.active || this.element.find(this.options.items).eq(0); 3113 e || this.focus(t, i); 3114 }, 3115 blur: function (e) { 3116 this._delay(function () { 3117 var i = !t.contains( 3118 this.element[0], 3119 t.ui.safeActiveElement(this.document[0]), 3120 ); 3121 i && this.collapseAll(e); 3122 }); 3123 }, 3124 keydown: "_keydown", 3125 }), 3126 this.refresh(), 3127 this._on(this.document, { 3128 click: function (t) { 3129 this._closeOnDocumentClick(t) && this.collapseAll(t), 3130 (this.mouseHandled = !1); 3131 }, 3132 }); 3133 }, 3134 _destroy: function () { 3135 var e = this.element 3136 .find(".ui-menu-item") 3137 .removeAttr("role aria-disabled"), 3138 i = e 3139 .children(".ui-menu-item-wrapper") 3140 .removeUniqueId() 3141 .removeAttr("tabIndex role aria-haspopup"); 3142 this.element 3143 .removeAttr("aria-activedescendant") 3144 .find(".ui-menu") 3145 .addBack() 3146 .removeAttr( 3147 "role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex", 3148 ) 3149 .removeUniqueId() 3150 .show(), 3151 i.children().each(function () { 3152 var e = t(this); 3153 e.data("ui-menu-submenu-caret") && e.remove(); 3154 }); 3155 }, 3156 _keydown: function (e) { 3157 var i, 3158 s, 3159 n, 3160 o, 3161 a = !0; 3162 switch (e.keyCode) { 3163 case t.ui.keyCode.PAGE_UP: 3164 this.previousPage(e); 3165 break; 3166 case t.ui.keyCode.PAGE_DOWN: 3167 this.nextPage(e); 3168 break; 3169 case t.ui.keyCode.HOME: 3170 this._move("first", "first", e); 3171 break; 3172 case t.ui.keyCode.END: 3173 this._move("last", "last", e); 3174 break; 3175 case t.ui.keyCode.UP: 3176 this.previous(e); 3177 break; 3178 case t.ui.keyCode.DOWN: 3179 this.next(e); 3180 break; 3181 case t.ui.keyCode.LEFT: 3182 this.collapse(e); 3183 break; 3184 case t.ui.keyCode.RIGHT: 3185 this.active && 3186 !this.active.is(".ui-state-disabled") && 3187 this.expand(e); 3188 break; 3189 case t.ui.keyCode.ENTER: 3190 case t.ui.keyCode.SPACE: 3191 this._activate(e); 3192 break; 3193 case t.ui.keyCode.ESCAPE: 3194 this.collapse(e); 3195 break; 3196 default: 3197 (a = !1), 3198 (s = this.previousFilter || ""), 3199 (o = !1), 3200 (n = 3201 e.keyCode >= 96 && 105 >= e.keyCode 3202 ? "" + (e.keyCode - 96) 3203 : String.fromCharCode(e.keyCode)), 3204 clearTimeout(this.filterTimer), 3205 n === s ? (o = !0) : (n = s + n), 3206 (i = this._filterMenuItems(n)), 3207 (i = 3208 o && -1 !== i.index(this.active.next()) 3209 ? this.active.nextAll(".ui-menu-item") 3210 : i), 3211 i.length || 3212 ((n = String.fromCharCode(e.keyCode)), 3213 (i = this._filterMenuItems(n))), 3214 i.length 3215 ? (this.focus(e, i), 3216 (this.previousFilter = n), 3217 (this.filterTimer = this._delay(function () { 3218 delete this.previousFilter; 3219 }, 1e3))) 3220 : delete this.previousFilter; 3221 } 3222 a && e.preventDefault(); 3223 }, 3224 _activate: function (t) { 3225 this.active && 3226 !this.active.is(".ui-state-disabled") && 3227 (this.active.children("[aria-haspopup='true']").length 3228 ? this.expand(t) 3229 : this.select(t)); 3230 }, 3231 refresh: function () { 3232 var e, 3233 i, 3234 s, 3235 n, 3236 o, 3237 a = this, 3238 r = this.options.icons.submenu, 3239 h = this.element.find(this.options.menus); 3240 this._toggleClass( 3241 "ui-menu-icons", 3242 null, 3243 !!this.element.find(".ui-icon").length, 3244 ), 3245 (s = h 3246 .filter(":not(.ui-menu)") 3247 .hide() 3248 .attr({ 3249 role: this.options.role, 3250 "aria-hidden": "true", 3251 "aria-expanded": "false", 3252 }) 3253 .each(function () { 3254 var e = t(this), 3255 i = e.prev(), 3256 s = t("<span>").data("ui-menu-submenu-caret", !0); 3257 a._addClass(s, "ui-menu-icon", "ui-icon " + r), 3258 i.attr("aria-haspopup", "true").prepend(s), 3259 e.attr("aria-labelledby", i.attr("id")); 3260 })), 3261 this._addClass(s, "ui-menu", "ui-widget ui-widget-content ui-front"), 3262 (e = h.add(this.element)), 3263 (i = e.find(this.options.items)), 3264 i.not(".ui-menu-item").each(function () { 3265 var e = t(this); 3266 a._isDivider(e) && 3267 a._addClass(e, "ui-menu-divider", "ui-widget-content"); 3268 }), 3269 (n = i.not(".ui-menu-item, .ui-menu-divider")), 3270 (o = n 3271 .children() 3272 .not(".ui-menu") 3273 .uniqueId() 3274 .attr({ tabIndex: -1, role: this._itemRole() })), 3275 this._addClass(n, "ui-menu-item")._addClass( 3276 o, 3277 "ui-menu-item-wrapper", 3278 ), 3279 i.filter(".ui-state-disabled").attr("aria-disabled", "true"), 3280 this.active && 3281 !t.contains(this.element[0], this.active[0]) && 3282 this.blur(); 3283 }, 3284 _itemRole: function () { 3285 return { menu: "menuitem", listbox: "option" }[this.options.role]; 3286 }, 3287 _setOption: function (t, e) { 3288 if ("icons" === t) { 3289 var i = this.element.find(".ui-menu-icon"); 3290 this._removeClass(i, null, this.options.icons.submenu)._addClass( 3291 i, 3292 null, 3293 e.submenu, 3294 ); 3295 } 3296 this._super(t, e); 3297 }, 3298 _setOptionDisabled: function (t) { 3299 this._super(t), 3300 this.element.attr("aria-disabled", t + ""), 3301 this._toggleClass(null, "ui-state-disabled", !!t); 3302 }, 3303 focus: function (t, e) { 3304 var i, s, n; 3305 this.blur(t, t && "focus" === t.type), 3306 this._scrollIntoView(e), 3307 (this.active = e.first()), 3308 (s = this.active.children(".ui-menu-item-wrapper")), 3309 this._addClass(s, null, "ui-state-active"), 3310 this.options.role && 3311 this.element.attr("aria-activedescendant", s.attr("id")), 3312 (n = this.active 3313 .parent() 3314 .closest(".ui-menu-item") 3315 .children(".ui-menu-item-wrapper")), 3316 this._addClass(n, null, "ui-state-active"), 3317 t && "keydown" === t.type 3318 ? this._close() 3319 : (this.timer = this._delay(function () { 3320 this._close(); 3321 }, this.delay)), 3322 (i = e.children(".ui-menu")), 3323 i.length && t && /^mouse/.test(t.type) && this._startOpening(i), 3324 (this.activeMenu = e.parent()), 3325 this._trigger("focus", t, { item: e }); 3326 }, 3327 _scrollIntoView: function (e) { 3328 var i, s, n, o, a, r; 3329 this._hasScroll() && 3330 ((i = parseFloat(t.css(this.activeMenu[0], "borderTopWidth")) || 0), 3331 (s = parseFloat(t.css(this.activeMenu[0], "paddingTop")) || 0), 3332 (n = e.offset().top - this.activeMenu.offset().top - i - s), 3333 (o = this.activeMenu.scrollTop()), 3334 (a = this.activeMenu.height()), 3335 (r = e.outerHeight()), 3336 0 > n 3337 ? this.activeMenu.scrollTop(o + n) 3338 : n + r > a && this.activeMenu.scrollTop(o + n - a + r)); 3339 }, 3340 blur: function (t, e) { 3341 e || clearTimeout(this.timer), 3342 this.active && 3343 (this._removeClass( 3344 this.active.children(".ui-menu-item-wrapper"), 3345 null, 3346 "ui-state-active", 3347 ), 3348 this._trigger("blur", t, { item: this.active }), 3349 (this.active = null)); 3350 }, 3351 _startOpening: function (t) { 3352 clearTimeout(this.timer), 3353 "true" === t.attr("aria-hidden") && 3354 (this.timer = this._delay(function () { 3355 this._close(), this._open(t); 3356 }, this.delay)); 3357 }, 3358 _open: function (e) { 3359 var i = t.extend({ of: this.active }, this.options.position); 3360 clearTimeout(this.timer), 3361 this.element 3362 .find(".ui-menu") 3363 .not(e.parents(".ui-menu")) 3364 .hide() 3365 .attr("aria-hidden", "true"), 3366 e 3367 .show() 3368 .removeAttr("aria-hidden") 3369 .attr("aria-expanded", "true") 3370 .position(i); 3371 }, 3372 collapseAll: function (e, i) { 3373 clearTimeout(this.timer), 3374 (this.timer = this._delay(function () { 3375 var s = i 3376 ? this.element 3377 : t(e && e.target).closest(this.element.find(".ui-menu")); 3378 s.length || (s = this.element), 3379 this._close(s), 3380 this.blur(e), 3381 this._removeClass( 3382 s.find(".ui-state-active"), 3383 null, 3384 "ui-state-active", 3385 ), 3386 (this.activeMenu = s); 3387 }, this.delay)); 3388 }, 3389 _close: function (t) { 3390 t || (t = this.active ? this.active.parent() : this.element), 3391 t 3392 .find(".ui-menu") 3393 .hide() 3394 .attr("aria-hidden", "true") 3395 .attr("aria-expanded", "false"); 3396 }, 3397 _closeOnDocumentClick: function (e) { 3398 return !t(e.target).closest(".ui-menu").length; 3399 }, 3400 _isDivider: function (t) { 3401 return !/[^\-\u2014\u2013\s]/.test(t.text()); 3402 }, 3403 collapse: function (t) { 3404 var e = 3405 this.active && 3406 this.active.parent().closest(".ui-menu-item", this.element); 3407 e && e.length && (this._close(), this.focus(t, e)); 3408 }, 3409 expand: function (t) { 3410 var e = 3411 this.active && 3412 this.active.children(".ui-menu ").find(this.options.items).first(); 3413 e && 3414 e.length && 3415 (this._open(e.parent()), 3416 this._delay(function () { 3417 this.focus(t, e); 3418 })); 3419 }, 3420 next: function (t) { 3421 this._move("next", "first", t); 3422 }, 3423 previous: function (t) { 3424 this._move("prev", "last", t); 3425 }, 3426 isFirstItem: function () { 3427 return this.active && !this.active.prevAll(".ui-menu-item").length; 3428 }, 3429 isLastItem: function () { 3430 return this.active && !this.active.nextAll(".ui-menu-item").length; 3431 }, 3432 _move: function (t, e, i) { 3433 var s; 3434 this.active && 3435 (s = 3436 "first" === t || "last" === t 3437 ? this.active["first" === t ? "prevAll" : "nextAll"]( 3438 ".ui-menu-item", 3439 ).eq(-1) 3440 : this.active[t + "All"](".ui-menu-item").eq(0)), 3441 (s && s.length && this.active) || 3442 (s = this.activeMenu.find(this.options.items)[e]()), 3443 this.focus(i, s); 3444 }, 3445 nextPage: function (e) { 3446 var i, s, n; 3447 return this.active 3448 ? (this.isLastItem() || 3449 (this._hasScroll() 3450 ? ((s = this.active.offset().top), 3451 (n = this.element.height()), 3452 this.active.nextAll(".ui-menu-item").each(function () { 3453 return (i = t(this)), 0 > i.offset().top - s - n; 3454 }), 3455 this.focus(e, i)) 3456 : this.focus( 3457 e, 3458 this.activeMenu 3459 .find(this.options.items) 3460 [this.active ? "last" : "first"](), 3461 )), 3462 void 0) 3463 : (this.next(e), void 0); 3464 }, 3465 previousPage: function (e) { 3466 var i, s, n; 3467 return this.active 3468 ? (this.isFirstItem() || 3469 (this._hasScroll() 3470 ? ((s = this.active.offset().top), 3471 (n = this.element.height()), 3472 this.active.prevAll(".ui-menu-item").each(function () { 3473 return (i = t(this)), i.offset().top - s + n > 0; 3474 }), 3475 this.focus(e, i)) 3476 : this.focus( 3477 e, 3478 this.activeMenu.find(this.options.items).first(), 3479 )), 3480 void 0) 3481 : (this.next(e), void 0); 3482 }, 3483 _hasScroll: function () { 3484 return this.element.outerHeight() < this.element.prop("scrollHeight"); 3485 }, 3486 select: function (e) { 3487 this.active = this.active || t(e.target).closest(".ui-menu-item"); 3488 var i = { item: this.active }; 3489 this.active.has(".ui-menu").length || this.collapseAll(e, !0), 3490 this._trigger("select", e, i); 3491 }, 3492 _filterMenuItems: function (e) { 3493 var i = e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), 3494 s = RegExp("^" + i, "i"); 3495 return this.activeMenu 3496 .find(this.options.items) 3497 .filter(".ui-menu-item") 3498 .filter(function () { 3499 return s.test( 3500 t.trim(t(this).children(".ui-menu-item-wrapper").text()), 3501 ); 3502 }); 3503 }, 3504 }), 3505 t.widget("ui.autocomplete", { 3506 version: "1.12.1", 3507 defaultElement: "<input>", 3508 options: { 3509 appendTo: null, 3510 autoFocus: !1, 3511 delay: 300, 3512 minLength: 1, 3513 position: { my: "left top", at: "left bottom", collision: "none" }, 3514 source: null, 3515 change: null, 3516 close: null, 3517 focus: null, 3518 open: null, 3519 response: null, 3520 search: null, 3521 select: null, 3522 }, 3523 requestIndex: 0, 3524 pending: 0, 3525 _create: function () { 3526 var e, 3527 i, 3528 s, 3529 n = this.element[0].no
3529deName.toLowerCase(), 3530 o = "textarea" === n, 3531 a = "input" === n; 3532 (this.isMultiLine = o || (!a && this._isContentEditable(this.element))), 3533 (this.valueMethod = this.element[o || a ? "val" : "text"]), 3534 (this.isNewMenu = !0), 3535 this._addClass("ui-autocomplete-input"), 3536 this.element.attr("autocomplete", "off"), 3537 this._on(this.element, { 3538 keydown: function (n) { 3539 if (this.element.prop("readOnly")) 3540 return (e = !0), (s = !0), (i = !0), void 0; 3541 (e = !1), (s = !1), (i = !1); 3542 var o = t.ui.keyCode; 3543 switch (n.keyCode) { 3544 case o.PAGE_UP: 3545 (e = !0), this._move("previousPage", n); 3546 break; 3547 case o.PAGE_DOWN: 3548 (e = !0), this._move("nextPage", n); 3549 break; 3550 case o.UP: 3551 (e = !0), this._keyEvent("previous", n); 3552 break; 3553 case o.DOWN: 3554 (e = !0), this._keyEvent("next", n); 3555 break; 3556 case o.ENTER: 3557 this.menu.active && 3558 ((e = !0), n.preventDefault(), this.menu.select(n)); 3559 break; 3560 case o.TAB: 3561 this.menu.active && this.menu.select(n); 3562 break; 3563 case o.ESCAPE: 3564 this.menu.element.is(":visible") && 3565 (this.isMultiLine || this._value(this.term), 3566 this.close(n), 3567 n.preventDefault()); 3568 break; 3569 default: 3570 (i = !0), this._searchTimeout(n); 3571 } 3572 }, 3573 keypress: function (s) { 3574 if (e) 3575 return ( 3576 (e = !1), 3577 (!this.isMultiLine || this.menu.element.is(":visible")) && 3578 s.preventDefault(), 3579 void 0 3580 ); 3581 if (!i) { 3582 var n = t.ui.keyCode; 3583 switch (s.keyCode) { 3584 case n.PAGE_UP: 3585 this._move("previousPage", s); 3586 break; 3587 case n.PAGE_DOWN: 3588 this._move("nextPage", s); 3589 break; 3590 case n.UP: 3591 this._keyEvent("previous", s); 3592 break; 3593 case n.DOWN: 3594 this._keyEvent("next", s); 3595 } 3596 } 3597 }, 3598 input: function (t) { 3599 return s 3600 ? ((s = !1), t.preventDefault(), void 0) 3601 : (this._searchTimeout(t), void 0); 3602 }, 3603 focus: function () { 3604 (this.selectedItem = null), (this.previous = this._value()); 3605 }, 3606 blur: function (t) { 3607 return this.cancelBlur 3608 ? (delete this.cancelBlur, void 0) 3609 : (clearTimeout(this.searching), 3610 this.close(t), 3611 this._change(t), 3612 void 0); 3613 }, 3614 }), 3615 this._initSource(), 3616 (this.menu = t("<ul>") 3617 .appendTo(this._appendTo()) 3618 .menu({ role: null }) 3619 .hide() 3620 .menu("instance")), 3621 this._addClass(this.menu.element, "ui-autocomplete", "ui-front"), 3622 this._on(this.menu.element, { 3623 mousedown: function (e) { 3624 e.preventDefault(), 3625 (this.cancelBlur = !0), 3626 this._delay(function () { 3627 delete this.cancelBlur, 3628 this.element[0] !== 3629 t.ui.safeActiveElement(this.document[0]) && 3630 this.element.trigger("focus"); 3631 }); 3632 }, 3633 menufocus: function (e, i) { 3634 var s, n; 3635 return this.isNewMenu && 3636 ((this.isNewMenu = !1), 3637 e.originalEvent && /^mouse/.test(e.originalEvent.type)) 3638 ? (this.menu.blur(), 3639 this.document.one("mousemove", function () { 3640 t(e.target).trigger(e.originalEvent); 3641 }), 3642 void 0) 3643 : ((n = i.item.data("ui-autocomplete-item")), 3644 !1 !== this._trigger("focus", e, { item: n }) && 3645 e.originalEvent && 3646 /^key/.test(e.originalEvent.type) && 3647 this._value(n.value), 3648 (s = i.item.attr("aria-label") || n.value), 3649 s && 3650 t.trim(s).length && 3651 (this.liveRegion.children().hide(), 3652 t("<div>").text(s).appendTo(this.liveRegion)), 3653 void 0); 3654 }, 3655 menuselect: function (e, i) { 3656 var s = i.item.data("ui-autocomplete-item"), 3657 n = this.previous; 3658 this.element[0] !== t.ui.safeActiveElement(this.document[0]) && 3659 (this.element.trigger("focus"), 3660 (this.previous = n), 3661 this._delay(function () { 3662 (this.previous = n), (this.selectedItem = s); 3663 })), 3664 !1 !== this._trigger("select", e, { item: s }) && 3665 this._value(s.value),
3666 (this.term = this._value()), 3667 this.close(e), 3668 (this.selectedItem = s); 3669 }, 3670 }), 3671 (this.liveRegion = t("<div>", { 3672 role: "status", 3673 "aria-live": "assertive", 3674 "aria-relevant": "additions", 3675 }).appendTo(this.document[0].body)), 3676 this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), 3677 this._on(this.window, { 3678 beforeunload: function () { 3679 this.element.removeAttr("autocomplete"); 3680 }, 3681 }); 3682 }, 3683 _destroy: function () { 3684 clearTimeout(this.searching), 3685 this.element.removeAttr("autocomplete"), 3686 this.menu.element.remove(), 3687 this.liveRegion.remove(); 3688 }, 3689 _setOption: function (t, e) { 3690 this._super(t, e), 3691 "source" === t && this._initSource(), 3692 "appendTo" === t && this.menu.element.appendTo(this._appendTo()), 3693 "disabled" === t && e && this.xhr && this.xhr.abort(); 3694 }, 3695 _isEventTargetInWidget: function (e) { 3696 var i = this.menu.element[0]; 3697 return ( 3698 e.target === this.element[0] || 3699 e.target === i || 3700 t.contains(i, e.target) 3701 ); 3702 }, 3703 _closeOnClickOutside: function (t) { 3704 this._isEventTargetInWidget(t) || this.close(); 3705 }, 3706 _appendTo: function () { 3707 var e = this.options.appendTo; 3708 return ( 3709 e && 3710 (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), 3711 (e && e[0]) || (e = this.element.closest(".ui-front, dialog")), 3712 e.length || (e = this.document[0].body), 3713 e 3714 ); 3715 }, 3716 _initSource: function () { 3717 var e, 3718 i, 3719 s = this; 3720 t.isArray(this.options.source) 3721 ? ((e = this.options.source), 3722 (this.source = function (i, s) { 3723 s(t.ui.autocomplete.filter(e, i.term)); 3724 })) 3725 : "string" == typeof this.options.source 3726 ? ((i = this.options.source), 3727 (this.source = function (e, n) { 3728 s.xhr && s.xhr.abort(), 3729 (s.xhr = t.ajax({ 3730 url: i, 3731 data: e, 3732 dataType: "json", 3733 success: function (t) { 3734 n(t); 3735 }, 3736 error: function () { 3737 n([]); 3738 }, 3739 })); 3740 })) 3741 : (this.source = this.options.source); 3742 }, 3743 _searchTimeout: function (t) { 3744 clearTimeout(this.searching), 3745 (this.searching = this._delay(function () { 3746 var e = this.term === this._value(), 3747 i = this.menu.element.is(":visible"), 3748 s = t.altKey || t.ctrlKey || t.metaKey || t.shiftKey; 3749 (!e || (e && !i && !s)) && 3750 ((this.selectedItem = null), this.search(null, t)); 3751 }, this.options.delay)); 3752 }, 3753 search: function (t, e) { 3754 return ( 3755 (t = null != t ? t : this._value()), 3756 (this.term = this._value()), 3757 t.length < this.options.minLength 3758 ? this.close(e) 3759 : this._trigger("search", e) !== !1 3760 ? this._search(t) 3761 : void 0 3762 ); 3763 }, 3764 _search: function (t) { 3765 this.pending++, 3766 this._addClass("ui-autocomplete-loading"), 3767 (this.cancelSearch = !1), 3768 this.source({ term: t }, this._response()); 3769 }, 3770 _response: function () { 3771 var e = ++this.requestIndex; 3772 return t.proxy(function (t) { 3773 e === this.requestIndex && this.__response(t), 3774 this.pending--, 3775 this.pending || this._removeClass("ui-autocomplete-loading"); 3776 }, this); 3777 }, 3778 __response: function (t) { 3779 t && (t = this._normalize(t)), 3780 this._trigger("response", null, { content: t }), 3781 !this.options.disabled && t && t.length && !this.cancelSearch 3782 ? (this._suggest(t), this._trigger("open")) 3783 : this._close(); 3784 }, 3785 close: function (t) { 3786 (this.cancelSearch = !0), this._close(t); 3787 }, 3788 _close: function (t) { 3789 this._off(this.document, "mousedown"), 3790 this.menu.element.is(":visible") && 3791 (this.menu.element.hide(), 3792 this.menu.blur(), 3793 (this.isNewMenu = !0), 3794 this._trigger("close", t)); 3795 }, 3796 _change: function (t) {
3797 this.previous !== this._value() && 3798 this._trigger("change", t, { item: this.selectedItem }); 3799 }, 3800 _normalize: function (e) { 3801 return e.length && e[0].label && e[0].value 3802 ? e 3803 : t.map(e, function (e) { 3804 return "string" == typeof e 3805 ? { label: e, value: e } 3806 : t.extend({}, e, { 3807 label: e.label || e.value, 3808 value: e.value || e.label, 3809 }); 3810 }); 3811 }, 3812 _suggest: function (e) { 3813 var i = this.menu.element.empty(); 3814 this._renderMenu(i, e), 3815 (this.isNewMenu = !0), 3816 this.menu.refresh(), 3817 i.show(), 3818 this._resizeMenu(), 3819 i.position(t.extend({ of: this.element }, this.options.position)), 3820 this.options.autoFocus && this.menu.next(), 3821 this._on(this.document, { mousedown: "_closeOnClickOutside" }); 3822 }, 3823 _resizeMenu: function () { 3824 var t = this.menu.element; 3825 t.outerWidth( 3826 Math.max(t.width("").outerWidth() + 1, this.element.outerWidth()), 3827 ); 3828 }, 3829 _renderMenu: function (e, i) { 3830 var s = this; 3831 t.each(i, function (t, i) { 3832 s._renderItemData(e, i); 3833 }); 3834 }, 3835 _renderItemData: function (t, e) { 3836 return this._renderItem(t, e).data("ui-autocomplete-item", e); 3837 }, 3838 _renderItem: function (e, i) { 3839 return t("<li>").append(t("<div>").text(i.label)).appendTo(e); 3840 }, 3841 _move: function (t, e) { 3842 return this.menu.element.is(":visible") 3843 ? (this.menu.isFirstItem() && /^previous/.test(t)) || 3844 (this.menu.isLastItem() && /^next/.test(t)) 3845 ? (this.isMultiLine || this._value(this.term), 3846 this.menu.blur(), 3847 void 0) 3848 : (this.menu[t](e), void 0) 3849 : (this.search(null, e), void 0); 3850 }, 3851 widget: function () { 3852 return this.menu.element; 3853 }, 3854 _value: function () { 3855 return this.valueMethod.apply(this.element, arguments); 3856 }, 3857 _keyEvent: function (t, e) { 3858 (!this.isMultiLine || this.menu.element.is(":visible")) && 3859 (this._move(t, e), e.preventDefault()); 3860 }, 3861 _isContentEditable: function (t) { 3862 if (!t.length) return !1; 3863 var e = t.prop("contentEditable"); 3864 return "inherit" === e 3865 ? this._isContentEditable(t.parent()) 3866 : "true" === e; 3867 }, 3868 }), 3869 t.extend(t.ui.autocomplete, { 3870 escapeRegex: function (t) { 3871 return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); 3872 }, 3873 filter: function (e, i) { 3874 var s = RegExp(t.ui.autocomplete.escapeRegex(i), "i"); 3875 return t.grep(e, function (t) { 3876 return s.test(t.label || t.value || t); 3877 }); 3878 }, 3879 }), 3880 t.widget("ui.autocomplete", t.ui.autocomplete, { 3881 options: { 3882 messages: { 3883 noResults: "No search results.", 3884 results: function (t) { 3885 return ( 3886 t + 3887 (t > 1 ? " results are" : " result is") + 3888 " available, use up and down arrow keys to navigate." 3889 ); 3890 }, 3891 }, 3892 }, 3893 __response: function (e) { 3894 var i; 3895 this._superApply(arguments), 3896 this.options.disabled || 3897 this.cancelSearch || 3898 ((i = 3899 e && e.length 3900 ? this.options.messages.results(e.length) 3901 : this.options.messages.noResults), 3902 this.liveRegion.children().hide(), 3903 t("<div>").text(i).appendTo(this.liveRegion)); 3904 }, 3905 }), 3906 t.ui.autocomplete; 3907 var g = /ui-corner-([a-z]){2,6}/g; 3908 t.widget("ui.controlgroup", { 3909 version: "1.12.1", 3910 defaultElement: "<div>", 3911 options: { 3912 direction: "horizontal", 3913 disabled: null, 3914 onlyVisible: !0, 3915 items: { 3916 button: 3917 "input[type=button], input[type=submit], input[type=reset], button, a", 3918 controlgroupLabel: ".ui-controlgroup-label", 3919 checkboxradio: "input[type='checkbox'], input[type='radio']", 3920 selectmenu: "select", 3921 spinner: ".ui-spinner-input", 3922 }, 3923 }, 3924 _create: function () { 3925 this._enhance(); 3926 }, 3927 _enhance: function () { 3928 this.element.attr("role", "toolbar"), this.refresh(); 3929 }, 3930 _destroy: function () { 3931 this._callChildMethod("destroy"), 3932 this.childWidgets.removeData("ui-controlgroup-data"), 3933 this.element.removeAttr("role"), 3934 this.options.items.controlgroupLabel && 3935 this.element 3936 .find(this.options.items.controlgroupLabel) 3937 .find(".ui-controlgroup-label-contents") 3938 .contents() 3939 .unwrap(); 3940 }, 3941 _initWidgets: function () { 3942 var e = this, 3943 i = []; 3944 t.each(this.options.items, function (s, n) { 3945 var o, 3946 a = {}; 3947 return n 3948 ? "controlgroupLabel" === s 3949 ? ((o = e.element.find(n)), 3950 o.each(function () { 3951 var e = t(this); 3952 e.children(".ui-controlgroup-label-contents").length || 3953 e 3954 .contents() 3955 .wrapAll( 3956 "<span class='ui-controlgroup-label-contents'></span>", 3957 ); 3958 }), 3959 e._addClass( 3960 o, 3961 null, 3962 "ui-widget ui-widget-content ui-state-default", 3963 ), 3964 (i = i.concat(o.get())), 3965 void 0)
3966 : (t.fn[s] && 3967 ((a = e["_" + s + "Options"] 3968 ? e["_" + s + "Options"]("middle") 3969 : { classes: {} }), 3970 e.element.find(n).each(function () { 3971 var n = t(this), 3972 o = n[s]("instance"), 3973 r = t.widget.extend({}, a); 3974 if ("button" !== s || !n.parent(".ui-spinner").length) { 3975 o || (o = n[s]()[s]("instance")), 3976 o && (r.classes = e._resolveClassesValues(r.classes, o)), 3977 n[s](r); 3978 var h = n[s]("widget"); 3979 t.data( 3980 h[0], 3981 "ui-controlgroup-data", 3982 o ? o : n[s]("instance"), 3983 ), 3984 i.push(h[0]); 3985 } 3986 })), 3987 void 0) 3988 : void 0; 3989 }), 3990 (this.childWidgets = t(t.unique(i))), 3991 this._addClass(this.childWidgets, "ui-controlgroup-item"); 3992 }, 3993 _callChildMethod: function (e) { 3994 this.childWidgets.each(function () { 3995 var i = t(this), 3996 s = i.data("ui-controlgroup-data"); 3997 s && s[e] && s[e](); 3998 }); 3999 }, 4000 _updateCornerClass: function (t, e) { 4001 var i = 4002 "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all", 4003 s = this._buildSimpleOptions(e, "label").classes.label; 4004 this._removeClass(t, null, i), this._addClass(t, null, s); 4005 }, 4006 _buildSimpleOptions: function (t, e) { 4007 var i = "vertical" === this.options.direction, 4008 s = { classes: {} }; 4009 return ( 4010 (s.classes[e] = { 4011 middle: "", 4012 first: "ui-corner-" + (i ? "top" : "left"), 4013 last: "ui-corner-" + (i ? "bottom" : "right"), 4014 only: "ui-corner-all", 4015 }[t]), 4016 s 4017 ); 4018 }, 4019 _spinnerOptions: function (t) { 4020 var e = this._buildSimpleOptions(t, "ui-spinner"); 4021 return ( 4022 (e.classes["ui-spinner-up"] = ""), 4023 (e.classes["ui-spinner-down"] = ""), 4024 e 4025 ); 4026 }, 4027 _buttonOptions: function (t) { 4028 return this._buildSimpleOptions(t, "ui-button"); 4029 }, 4030 _checkboxradioOptions: function (t) { 4031 return this._buildSimpleOptions(t, "ui-checkboxradio-label"); 4032 }, 4033 _selectmenuOptions: function (t) { 4034 var e = "vertical" === this.options.direction; 4035 return { 4036 width: e ? "auto" : !1, 4037 classes: { 4038 middle: { 4039 "ui-selectmenu-button-open": "", 4040 "ui-selectmenu-button-closed": "", 4041 }, 4042 first: { 4043 "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"), 4044 "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left"), 4045 }, 4046 last: { 4047 "ui-selectmenu-button-open": e ? "" : "ui-corner-tr", 4048 "ui-selectmenu-button-closed": 4049 "ui-corner-" + (e ? "bottom" : "right"), 4050 }, 4051 only: { 4052 "ui-selectmenu-button-open": "ui-corner-top", 4053 "ui-selectmenu-button-closed": "ui-corner-all", 4054 }, 4055 }[t], 4056 }; 4057 }, 4058 _resolveClassesValues: function (e, i) { 4059 var s = {}; 4060 return ( 4061 t.each(e, function (n) { 4062 var o = i.options.classes[n] || ""; 4063 (o = t.trim(o.replace(g, ""))), 4064 (s[n] = (o + " " + e[n]).replace(/\s+/g, " ")); 4065 }), 4066 s 4067 ); 4068 }, 4069 _setOption: function (t, e) { 4070 return ( 4071 "direction" === t && 4072 this._removeClass("ui-controlgroup-" + this.options.direction), 4073 this._super(t, e), 4074 "disabled" === t 4075 ? (this._callChildMethod(e ? "disable" : "enable"), void 0) 4076 : (this.refresh(), void 0) 4077 ); 4078 }, 4079 refresh: function () { 4080 var e, 4081 i = this; 4082 this._addClass( 4083 "ui-controlgroup ui-controlgroup-" + this.options.direction, 4084 ), 4085 "horizontal" === this.options.direction && 4086 this._addClass(null, "ui-helper-clearfix"), 4087 this._initWidgets(), 4088 (e = this.childWidgets), 4089 this.options.onlyVisible && (e = e.filter(":visible")), 4090 e.length && 4091 (t.each(["first", "last"], function (t, s) { 4092 var n = e[s]().data("ui-controlgroup-data"); 4093 if (n && i["_" + n.widgetName + "Options"]) { 4094 var o = i["_" + n.widgetName + "Options"]( 4095 1 === e.length ? "only" : s, 4096 ); 4097 (o.classes = i._resolveClassesValues(o.classes, n)), 4098 n.element[n.widgetName](o); 4099 } else i._updateCornerClass(e[s](), s); 4100 }), 4101 this._callChildMethod("refresh")); 4102 }, 4103 }), 4104 t.widget("ui.checkboxradio", [ 4105 t.ui.formResetMixin, 4106 { 4107 version: "1.12.1", 4108 options: { 4109 disabled: null, 4110 label: null, 4111 icon: !0, 4112 classes: { 4113 "ui-checkboxradio-label": "ui-corner-all", 4114 "ui-checkboxradio-icon": "ui-corner-all", 4115 }, 4116 }, 4117 _getCreateOptions: function () { 4118 var e, 4119 i, 4120 s = this, 4121 n = this._super() || {}; 4122 return ( 4123 this._readType(), 4124 (i = this.element.labels()), 4125 (this.label = t(i[i.length - 1])), 4126 this.label.length || 4127 t.error("No label found for checkboxradio widget"), 4128 (this.originalLabel = ""), 4129 this.label 4130 .contents() 4131 .not(this.element[0]) 4132 .each(function () { 4133 s.originalLabel += 4134 3 === this.nodeType ? t(this).text() : this.outerHTML; 4135 }), 4136 this.originalLabel && (n.label = this.originalLabel), 4137 (e = this.element[0].disabled), 4138 null != e && (n.disabled = e), 4139 n 4140 ); 4141 }, 4142 _create: function () { 4143 var t = this.element[0].checked; 4144 this._bindFormResetHandler(), 4145 null == this.options.disabled && 4146 (this.options.disabled = this.element[0].disabled), 4147 this._setOption("disabled", this.options.disabled), 4148 this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"), 4149 this._addClass( 4150 this.label, 4151 "ui-checkboxradio-label", 4152 "ui-button ui-widget", 4153 ), 4154 "radio" === this.type && 4155 this._addClass(this.label, "ui-checkboxradio-radio-label"), 4156 this.options.label && this.options.label !== this.originalLabel 4157 ? this._updateLabel() 4158 : this.originalLabel && (this.options.label = this.originalLabel), 4159 this._enhance(), 4160 t && 4161 (this._addClass( 4162 this.label, 4163 "ui-checkboxradio-checked", 4164 "ui-state-active", 4165 ), 4166 this.icon && this._addClass(this.icon, null, "ui-state-hover")), 4167 this._on({ 4168 change: "_toggleClasses", 4169 focus: function () { 4170 this._addClass( 4171 this.label, 4172 null, 4173 "ui-state-focus ui-visual-focus", 4174 ); 4175 }, 4176 blur: function () { 4177 this._removeClass( 4178 this.label, 4179 null, 4180 "ui-state-focus ui-visual-focus", 4181 ); 4182 }, 4183 }); 4184 }, 4185 _readType: function () { 4186 var e = this.element[0].nodeName.toLowerCase();
4187 (this.type = this.element[0].type), 4188 ("input" === e && /radio|checkbox/.test(this.type)) || 4189 t.error( 4190 "Can't create checkboxradio on element.nodeName=" + 4191 e + 4192 " and element.type=" + 4193 this.type, 4194 ); 4195 }, 4196 _enhance: function () { 4197 this._updateIcon(this.element[0].checked); 4198 }, 4199 widget: function () { 4200 return this.label; 4201 }, 4202 _getRadioGroup: function () { 4203 var e, 4204 i = this.element[0].name, 4205 s = "input[name='" + t.ui.escapeSelector(i) + "']"; 4206 return i 4207 ? ((e = this.form.length 4208 ? t(this.form[0].elements).filter(s) 4209 : t(s).filter(function () { 4210 return 0 === t(this).form().length; 4211 })), 4212 e.not(this.element)) 4213 : t([]); 4214 }, 4215 _toggleClasses: function () { 4216 var e = this.element[0].checked; 4217 this._toggleClass( 4218 this.label, 4219 "ui-checkboxradio-checked", 4220 "ui-state-active", 4221 e, 4222 ), 4223 this.options.icon && 4224 "checkbox" === this.type && 4225 this._toggleClass( 4226 this.icon, 4227 null, 4228 "ui-icon-check ui-state-checked", 4229 e, 4230 )._toggleClass(this.icon, null, "ui-icon-blank", !e), 4231 "radio" === this.type && 4232 this._getRadioGroup().each(function () { 4233 var e = t(this).checkboxradio("instance"); 4234 e && 4235 e._removeClass( 4236 e.label, 4237 "ui-checkboxradio-checked", 4238 "ui-state-active", 4239 ); 4240 }); 4241 }, 4242 _destroy: function () { 4243 this._unbindFormResetHandler(), 4244 this.icon && (this.icon.remove(), this.iconSpace.remove()); 4245 }, 4246 _setOption: function (t, e) { 4247 return "label" !== t || e 4248 ? (this._super(t, e), 4249 "disabled" === t 4250 ? (this._toggleClass(this.label, null, "ui-state-disabled", e), 4251 (this.element[0].disabled = e), 4252 void 0) 4253 : (this.refresh(), void 0)) 4254 : void 0; 4255 }, 4256 _updateIcon: function (e) { 4257 var i = "ui-icon ui-icon-background "; 4258 this.options.icon 4259 ? (this.icon || 4260 ((this.icon = t("<span>")), 4261 (this.iconSpace = t("<span> </span>")),
4262 this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")), 4263 "checkbox" === this.type 4264 ? ((i += e 4265 ? "ui-icon-check ui-state-checked" 4266 : "ui-icon-blank"), 4267 this._removeClass( 4268 this.icon, 4269 null, 4270 e ? "ui-icon-blank" : "ui-icon-check", 4271 )) 4272 : (i += "ui-icon-blank"), 4273 this._addClass(this.icon, "ui-checkboxradio-icon", i), 4274 e || 4275 this._removeClass( 4276 this.icon, 4277 null, 4278 "ui-icon-check ui-state-checked", 4279 ), 4280 this.icon.prependTo(this.label).after(this.iconSpace)) 4281 : void 0 !== this.icon && 4282 (this.icon.remove(), this.iconSpace.remove(), delete this.icon); 4283 }, 4284 _updateLabel: function () { 4285 var t = this.label.contents().not(this.element[0]); 4286 this.icon && (t = t.not(this.icon[0])), 4287 this.iconSpace && (t = t.not(this.iconSpace[0])), 4288 t.remove(), 4289 this.label.append(this.options.label); 4290 }, 4291 refresh: function () { 4292 var t = this.element[0].checked, 4293 e = this.element[0].disabled; 4294 this._updateIcon(t), 4295 this._toggleClass( 4296 this.label, 4297 "ui-checkboxradio-checked", 4298 "ui-state-active", 4299 t, 4300 ), 4301 null !== this.options.label && this._updateLabel(), 4302 e !== this.options.disabled && this._setOptions({ disabled: e }); 4303 }, 4304 }, 4305 ]), 4306 t.ui.checkboxradio, 4307 t.widget("ui.button", { 4308 version: "1.12.1", 4309 defaultElement: "<button>", 4310 options: { 4311 classes: { "ui-button": "ui-corner-all" }, 4312 disabled: null, 4313 icon: null, 4314 iconPosition: "beginning", 4315 label: null, 4316 showLabel: !0, 4317 }, 4318 _getCreateOptions: function () { 4319 var t, 4320 e = this._super() || {}; 4321 return ( 4322 (this.isInput = this.element.is("input")), 4323 (t = this.element[0].disabled), 4324 null != t && (e.disabled = t), 4325 (this.originalLabel = this.isInput 4326 ? this.element.val() 4327 : this.element.html()), 4328 this.originalLabel && (e.label = this.originalLabel), 4329 e 4330 ); 4331 }, 4332 _create: function () { 4333 !this.option.showLabel & !this.options.icon && 4334 (this.options.showLabel = !0), 4335 null == this.options.disabled && 4336 (this.options.disabled = this.element[0].disabled || !1), 4337 (this.hasTitle = !!this.element.attr("title")), 4338 this.options.label && 4339 this.options.label !== this.originalLabel && 4340 (this.isInput 4341 ? this.element.val(this.options.label) 4342 : this.element.html(this.options.label)), 4343 this._addClass("ui-button", "ui-widget"), 4344 this._setOption("disabled", this.options.disabled), 4345 this._enhance(), 4346 this.element.is("a") && 4347 this._on({ 4348 keyup: function (e) { 4349 e.keyCode === t.ui.keyCode.SPACE && 4350 (e.preventDefault(), 4351 this.element[0].click 4352 ? this.element[0].click() 4353 : this.element.trigger("click")); 4354 }, 4355 }); 4356 }, 4357 _enhance: function () { 4358 this.element.is("button") || this.element.attr("role", "button"), 4359 this.options.icon && 4360 (this._updateIcon("icon", this.options.icon), 4361 this._updateTooltip()); 4362 }, 4363 _updateTooltip: function () { 4364 (this.title = this.element.attr("title")), 4365 this.options.showLabel || 4366 this.title || 4367 this.element.attr("title", this.options.label); 4368 }, 4369 _updateIcon: function (e, i) { 4370 var s = "iconPosition" !== e, 4371 n = s ? this.options.iconPosition : i, 4372 o = "top" === n || "bottom" === n; 4373 this.icon 4374 ? s && this._removeClass(this.icon, null, this.options.icon) 4375 : ((this.icon = t("<span>")), 4376 this._addClass(this.icon, "ui-button-icon", "ui-icon"), 4377 this.options.showLabel || this._addClass("ui-button-icon-only")), 4378 s && this._addClass(this.icon, null, i), 4379 this._attachIcon(n), 4380 o 4381 ? (this._addClass(this.icon, null, "ui-widget-icon-block"),
4382 this.iconSpace && this.iconSpace.remove()) 4383 : (this.iconSpace || 4384 ((this.iconSpace = t("<span> </span>")), 4385 this._addClass(this.iconSpace, "ui-button-icon-space")), 4386 this._removeClass(this.icon, null, "ui-wiget-icon-block"), 4387 this._attachIconSpace(n)); 4388 }, 4389 _destroy: function () { 4390 this.element.removeAttr("role"), 4391 this.icon && this.icon.remove(), 4392 this.iconSpace && this.iconSpace.remove(), 4393 this.hasTitle || this.element.removeAttr("title"); 4394 }, 4395 _attachIconSpace: function (t) { 4396 this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"]( 4397 this.iconSpace, 4398 ); 4399 }, 4400 _attachIcon: function (t) { 4401 this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"]( 4402 this.icon, 4403 ); 4404 }, 4405 _setOptions: function (t) { 4406 var e = void 0 === t.showLabel ? this.options.showLabel : t.showLabel, 4407 i = void 0 === t.icon ? this.options.icon : t.icon; 4408 e || i || (t.showLabel = !0), this._super(t); 4409 }, 4410 _setOption: function (t, e) { 4411 "icon" === t && 4412 (e 4413 ? this._updateIcon(t, e) 4414 : this.icon && 4415 (this.icon.remove(), this.iconSpace && this.iconSpace.remove())), 4416 "iconPosition" === t && this._updateIcon(t, e), 4417 "showLabel" === t && 4418 (this._toggleClass("ui-button-icon-only", null, !e), 4419 this._updateTooltip()), 4420 "label" === t && 4421 (this.isInput 4422 ? this.element.val(e) 4423 : (this.element.html(e), 4424 this.icon && 4425 (this._attachIcon(this.options.iconPosition), 4426 this._attachIconSpace(this.options.iconPosition)))), 4427 this._super(t, e), 4428 "disabled" === t && 4429 (this._toggleClass(null, "ui-state-disabled", e), 4430 (this.element[0].disabled = e), 4431 e && this.element.blur()); 4432 }, 4433 refresh: function () { 4434 var t = this.element.is("input, button") 4435 ? this.element[0].disabled 4436 : this.element.hasClass("ui-button-disabled"); 4437 t !== this.options.disabled && this._setOptions({ disabled: t }), 4438 this._updateTooltip(); 4439 }, 4440 }), 4441 t.uiBackCompat !== !1 && 4442 (t.widget("ui.button", t.ui.button, { 4443 options: { text: !0, icons: { primary: null, secondary: null } }, 4444 _create: function () { 4445 this.options.showLabel && 4446 !this.options.text && 4447 (this.options.showLabel = this.options.text), 4448 !this.options.showLabel && 4449 this.options.text && 4450 (this.options.text = this.options.showLabel), 4451 this.options.icon || 4452 (!this.options.icons.primary && !this.options.icons.secondary) 4453 ? this.options.icon && 4454 (this.options.icons.primary = this.options.icon) 4455 : this.options.icons.primary 4456 ? (this.options.icon = this.options.icons.primary) 4457 : ((this.options.icon = this.options.icons.secondary), 4458 (this.options.iconPosition = "end")), 4459 this._super(); 4460 }, 4461 _setOption: function (t, e) { 4462 return "text" === t 4463 ? (this._super("showLabel", e), void 0) 4464 : ("showLabel" === t && (this.options.text = e), 4465 "icon" === t && (this.options.icons.primary = e), 4466 "icons" === t && 4467 (e.primary 4468 ? (this._super("icon", e.primary), 4469 this._super("iconPosition", "beginning")) 4470 : e.secondary && 4471 (this._super("icon", e.secondary), 4472 this._super("iconPosition", "end"))), 4473 this._superApply(arguments), 4474 void 0); 4475 }, 4476 }), 4477 (t.fn.button = (function (e) { 4478 return function () { 4479 return !this.length || 4480 (this.length && "INPUT" !== this[0].tagName) || 4481 (this.length && 4482 "INPUT" === this[0].tagName && 4483 "checkbox" !== this.attr("type") && 4484 "radio" !== this.attr("type")) 4485 ? e.apply(this, arguments) 4486 : (t.ui.checkboxradio || t.error("Checkboxradio widget missing"), 4487 0 === arguments.length 4488 ? this.checkboxradio({ icon: !1 }) 4489 : this.checkboxradio.apply(this, arguments)); 4490 }; 4491 })(t.fn.button)), 4492 (t.fn.buttonset = function () { 4493 return ( 4494 t.ui.controlgroup || t.error("Controlgroup widget missing"), 4495 "option" === arguments[0] && "items" === arguments[1] && arguments[2] 4496 ? this.controlgroup.apply(this, [ 4497 arguments[0], 4498 "items.button", 4499 arguments[2], 4500 ]) 4501 : "option" === arguments[0] && "items" === arguments[1] 4502 ? this.controlgroup.apply(this, [arguments[0], "items.button"]) 4503 : ("object" == typeof arguments[0] && 4504 arguments[0].items && 4505 (arguments[0].items = { button: arguments[0].items }), 4506 this.controlgroup.apply(this, arguments)) 4507 ); 4508 })), 4509 t.ui.button, 4510 t.extend(t.ui, { datepicker: { version: "1.12.1" } }); 4511 var m; 4512 t.extend(s.prototype, { 4513 markerClassName: "hasDatepicker", 4514 maxRows: 4, 4515 _widgetDatepicker: function () { 4516 return this.dpDiv; 4517 }, 4518 setDefaults: function (t) { 4519 return a(this._defaults, t || {}), this; 4520 }, 4521 _attachDatepicker: function (e, i) { 4522 var s, n, o;
4523 (s = e.nodeName.toLowerCase()), 4524 (n = "div" === s || "span" === s), 4525 e.id || ((this.uuid += 1), (e.id = "dp" + this.uuid)), 4526 (o = this._newInst(t(e), n)), 4527 (o.settings = t.extend({}, i || {})), 4528 "input" === s 4529 ? this._connectDatepicker(e, o) 4530 : n && this._inlineDatepicker(e, o); 4531 }, 4532 _newInst: function (e, i) { 4533 var s = e[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); 4534 return { 4535 id: s, 4536 input: e, 4537 selectedDay: 0, 4538 selectedMonth: 0, 4539 selectedYear: 0, 4540 drawMonth: 0, 4541 drawYear: 0, 4542 inline: i, 4543 dpDiv: i 4544 ? n( 4545 t( 4546 "<div class='" + 4547 this._inlineClass + 4548 " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>", 4549 ), 4550 ) 4551 : this.dpDiv, 4552 }; 4553 }, 4554 _connectDatepicker: function (e, i) { 4555 var s = t(e); 4556 (i.append = t([])), 4557 (i.trigger = t([])), 4558 s.hasClass(this.markerClassName) || 4559 (this._attachments(s, i), 4560 s 4561 .addClass(this.markerClassName) 4562 .on("keydown", this._doKeyDown) 4563 .on("keypress", this._doKeyPress) 4564 .on("keyup", this._doKeyUp), 4565 this._autoSize(i), 4566 t.data(e, "datepicker", i), 4567 i.settings.disabled && this._disableDatepicker(e)); 4568 }, 4569 _attachments: function (e, i) { 4570 var s, 4571 n, 4572 o, 4573 a = this._get(i, "appendText"), 4574 r = this._get(i, "isRTL"); 4575 i.append && i.append.remove(), 4576 a && 4577 ((i.append = t( 4578 "<span class='" + this._appendClass + "'>" + a + "</span>", 4579 )), 4580 e[r ? "before" : "after"](i.append)), 4581 e.off("focus", this._showDatepicker), 4582 i.trigger && i.trigger.remove(), 4583 (s = this._get(i, "showOn")), 4584 ("focus" === s || "both" === s) && e.on("focus", this._showDatepicker), 4585 ("button" === s || "both" === s) && 4586 ((n = this._get(i, "buttonText")), 4587 (o = this._get(i, "buttonImage")), 4588 (i.trigger = t( 4589 this._get(i, "buttonImageOnly") 4590 ? t("<img/>") 4591 .addClass(this._triggerClass) 4592 .attr({ src: o, alt: n, title: n }) 4593 : t("<button type='button'></button>") 4594 .addClass(this._triggerClass) 4595 .html(o ? t("<img/>").attr({ src: o, alt: n, title: n }) : n), 4596 )), 4597 e[r ? "before" : "after"](i.trigger), 4598 i.trigger.on("click", function () { 4599 return ( 4600 t.datepicker._datepickerShowing && 4601 t.datepicker._lastInput === e[0] 4602 ? t.datepicker._hideDatepicker() 4603 : t.datepicker._datepickerShowing && 4604 t.datepicker._lastInput !== e[0] 4605 ? (t.datepicker._hideDatepicker(), 4606 t.datepicker._showDatepicker(e[0])) 4607 : t.datepicker._showDatepicker(e[0]), 4608 !1 4609 ); 4610 })); 4611 }, 4612 _autoSize: function (t) { 4613 if (this._get(t, "autoSize") && !t.inline) { 4614 var e, 4615 i, 4616 s, 4617 n, 4618 o = new Date(2009, 11, 20), 4619 a = this._get(t, "dateFormat"); 4620 a.match(/[DM]/) && 4621 ((e = function (t) { 4622 for (i = 0, s = 0, n = 0; t.length > n; n++) 4623 t[n].length > i && ((i = t[n].length), (s = n)); 4624 return s; 4625 }), 4626 o.setMonth( 4627 e(this._get(t, a.match(/MM/) ? "monthNames" : "monthNamesShort")), 4628 ), 4629 o.setDate( 4630 e(this._get(t, a.match(/DD/) ? "dayNames" : "dayNamesShort")) + 4631 20 - 4632 o.getDay(), 4633 )), 4634 t.input.attr("size", this._formatDate(t, o).length); 4635 } 4636 }, 4637 _inlineDatepicker: function (e, i) { 4638 var s = t(e); 4639 s.hasClass(this.markerClassName) || 4640 (s.addClass(this.markerClassName).append(i.dpDiv), 4641 t.data(e, "datepicker", i), 4642 this._setDate(i, this._getDefaultDate(i), !0), 4643 this._updateDatepicker(i), 4644 this._updateAlternate(i), 4645 i.settings.disabled && this._disableDatepicker(e), 4646 i.dpDiv.css("display", "block")); 4647 }, 4648 _dialogDatepicker: function (e, i, s, n, o) { 4649 var r, 4650 h, 4651 l, 4652 c, 4653 u, 4654 d = this._dialogInst; 4655 return ( 4656 d || 4657 ((this.uuid += 1), 4658 (r = "dp" + this.uuid), 4659 (this._dialogInput = t( 4660 "<input type='text' id='" + 4661 r + 4662 "' style='position: absolute; top: -100px; width: 0px;'/>", 4663 )),
4664 this._dialogInput.on("keydown", this._doKeyDown), 4665 t("body").append(this._dialogInput), 4666 (d = this._dialogInst = this._newInst(this._dialogInput, !1)), 4667 (d.settings = {}), 4668 t.data(this._dialogInput[0], "datepicker", d)), 4669 a(d.settings, n || {}), 4670 (i = i && i.constructor === Date ? this._formatDate(d, i) : i), 4671 this._dialogInput.val(i), 4672 (this._pos = o ? (o.length ? o : [o.pageX, o.pageY]) : null), 4673 this._pos || 4674 ((h = document.documentElement.clientWidth), 4675 (l = document.documentElement.clientHeight), 4676 (c = document.documentElement.scrollLeft || document.body.scrollLeft), 4677 (u = document.documentElement.scrollTop || document.body.scrollTop), 4678 (this._pos = [h / 2 - 100 + c, l / 2 - 150 + u])), 4679 this._dialogInput 4680 .css("left", this._pos[0] + 20 + "px") 4681 .css("top", this._pos[1] + "px"), 4682 (d.settings.onSelect = s), 4683 (this._inDialog = !0), 4684 this.dpDiv.addClass(this._dialogClass), 4685 this._showDatepicker(this._dialogInput[0]), 4686 t.blockUI && t.blockUI(this.dpDiv), 4687 t.data(this._dialogInput[0], "datepicker", d), 4688 this 4689 ); 4690 }, 4691 _destroyDatepicker: function (e) { 4692 var i, 4693 s = t(e), 4694 n = t.data(e, "datepicker"); 4695 s.hasClass(this.markerClassName) && 4696 ((i = e.nodeName.toLowerCase()), 4697 t.removeData(e, "datepicker"), 4698 "input" === i 4699 ? (n.append.remove(), 4700 n.trigger.remove(), 4701 s 4702 .removeClass(this.markerClassName) 4703 .off("focus", this._showDatepicker) 4704 .off("keydown", this._doKeyDown) 4705 .off("keypress", this._doKeyPress) 4706 .off("keyup", this._doKeyUp)) 4707 : ("div" === i || "span" === i) && 4708 s.removeClass(this.markerClassName).empty(), 4709 m === n && (m = null)); 4710 }, 4711 _enableDatepicker: function (e) { 4712 var i, 4713 s, 4714 n = t(e), 4715 o = t.data(e, "datepicker"); 4716 n.hasClass(this.markerClassName) && 4717 ((i = e.nodeName.toLowerCase()), 4718 "input" === i 4719 ? ((e.disabled = !1), 4720 o.trigger 4721 .filter("button") 4722 .each(function () { 4723 this.disabled = !1; 4724 }) 4725 .end() 4726 .filter("img") 4727 .css({ opacity: "1.0", cursor: "" })) 4728 : ("div" === i || "span" === i) && 4729 ((s = n.children("." + this._inlineClass)), 4730 s.children().removeClass("ui-state-disabled"), 4731 s 4732 .find("select.ui-datepicker-month, select.ui-datepicker-year") 4733 .prop("disabled", !1)), 4734 (this._disabledInputs = t.map(this._disabledInputs, function (t) { 4735 return t === e ? null : t; 4736 }))); 4737 }, 4738 _disableDatepicker: function (e) { 4739 var i, 4740 s, 4741 n = t(e), 4742 o = t.data(e, "datepicker"); 4743 n.hasClass(this.markerClassName) && 4744 ((i = e.nodeName.toLowerCase()), 4745 "input" === i 4746 ? ((e.disabled = !0), 4747 o.trigger 4748 .filter("button") 4749 .each(function () { 4750 this.disabled = !0; 4751 }) 4752 .end() 4753 .filter("img") 4754 .css({ opacity: "0.5", cursor: "default" })) 4755 : ("div" === i || "span" === i) && 4756 ((s = n.children("." + this._inlineClass)), 4757 s.children().addClass("ui-state-disabled"), 4758 s 4759 .find("select.ui-datepicker-month, select.ui-datepicker-year") 4760 .prop("disabled", !0)), 4761 (this._disabledInputs = t.map(this._disabledInputs, function (t) { 4762 return t === e ? null : t; 4763 })), 4764 (this._disabledInputs[this._disabledInputs.length] = e)); 4765 }, 4766 _isDisabledDatepicker: function (t) { 4767 if (!t) return !1; 4768 for (var e = 0; this._disabledInputs.length > e; e++) 4769 if (this._disabledInputs[e] === t) return !0; 4770 return !1; 4771 }, 4772 _getInst: function (e) {
4773 try { 4774 return t.data(e, "datepicker"); 4775 } catch (i) { 4776 throw "Missing instance data for this datepicker"; 4777 } 4778 }, 4779 _optionDatepicker: function (e, i, s) { 4780 var n, 4781 o, 4782 r, 4783 h, 4784 l = this._getInst(e); 4785 return 2 === arguments.length && "string" == typeof i 4786 ? "defaults" === i 4787 ? t.extend({}, t.datepicker._defaults) 4788 : l 4789 ? "all" === i 4790 ? t.extend({}, l.settings) 4791 : this._get(l, i) 4792 : null 4793 : ((n = i || {}), 4794 "string" == typeof i && ((n = {}), (n[i] = s)), 4795 l && 4796 (this._curInst === l && this._hideDatepicker(), 4797 (o = this._getDateDatepicker(e, !0)), 4798 (r = this._getMinMaxDate(l, "min")), 4799 (h = this._getMinMaxDate(l, "max")), 4800 a(l.settings, n), 4801 null !== r && 4802 void 0 !== n.dateFormat && 4803 void 0 === n.minDate && 4804 (l.settings.minDate = this._formatDate(l, r)), 4805 null !== h && 4806 void 0 !== n.dateFormat && 4807 void 0 === n.maxDate && 4808 (l.settings.maxDate = this._formatDate(l, h)), 4809 "disabled" in n && 4810 (n.disabled 4811 ? this._disableDatepicker(e) 4812 : this._enableDatepicker(e)), 4813 this._attachments(t(e), l), 4814 this._autoSize(l), 4815 this._setDate(l, o), 4816 this._updateAlternate(l), 4817 this._updateDatepicker(l)), 4818 void 0); 4819 }, 4820 _changeDatepicker: function (t, e, i) { 4821 this._optionDatepicker(t, e, i); 4822 }, 4823 _refreshDatepicker: function (t) { 4824 var e = this._getInst(t); 4825 e && this._updateDatepicker(e); 4826 }, 4827 _setDateDatepicker: function (t, e) { 4828 var i = this._getInst(t); 4829 i && 4830 (this._setDate(i, e), 4831 this._updateDatepicker(i), 4832 this._updateAlternate(i)); 4833 }, 4834 _getDateDatepicker: function (t, e) { 4835 var i = this._getInst(t); 4836 return ( 4837 i && !i.inline && this._setDateFromField(i, e), 4838 i ? this._getDate(i) : null 4839 ); 4840 }, 4841 _doKeyDown: function (e) { 4842 var i, 4843 s, 4844 n, 4845 o = t.datepicker._getInst(e.target), 4846 a = !0, 4847 r = o.dpDiv.is(".ui-datepicker-rtl"); 4848 if (((o._keyEvent = !0), t.datepicker._datepickerShowing)) 4849 switch (e.keyCode) { 4850 case 9: 4851 t.datepicker._hideDatepicker(), (a = !1); 4852 break; 4853 case 13: 4854 return ( 4855 (n = t( 4856 "td." + 4857 t.datepicker._dayOverClass + 4858 ":not(." + 4859 t.datepicker._currentClass + 4860 ")", 4861 o.dpDiv, 4862 )), 4863 n[0] && 4864 t.datepicker._selectDay( 4865 e.target, 4866 o.selectedMonth, 4867 o.selectedYear, 4868 n[0], 4869 ), 4870 (i = t.datepicker._get(o, "onSelect")), 4871 i 4872 ? ((s = t.datepicker._formatDate(o)), 4873 i.apply(o.input ? o.input[0] : null, [s, o])) 4874 : t.datepicker._hideDatepicker(), 4875 !1 4876 ); 4877 case 27: 4878 t.datepicker._hideDatepicker(); 4879 break; 4880 case 33: 4881 t.datepicker._adjustDate( 4882 e.target, 4883 e.ctrlKey 4884 ? -t.datepicker._get(o, "stepBigMonths") 4885 : -t.datepicker._get(o, "stepMonths"), 4886 "M", 4887 ); 4888 break; 4889 case 34: 4890 t.datepicker._adjustDate( 4891 e.target, 4892 e.ctrlKey 4893 ? +t.datepicker._get(o, "stepBigMonths") 4894 : +t.datepicker._get(o, "stepMonths"), 4895 "M", 4896 ); 4897 break; 4898 case 35: 4899 (e.ctrlKey || e.metaKey) && t.datepicker._clearDate(e.target), 4900 (a = e.ctrlKey || e.metaKey); 4901 break; 4902 case 36: 4903 (e.ctrlKey || e.metaKey) && t.datepicker._gotoToday(e.target), 4904 (a = e.ctrlKey || e.metaKey); 4905 break; 4906 case 37: 4907 (e.ctrlKey || e.metaKey) && 4908 t.datepicker._adjustDate(e.target, r ? 1 : -1, "D"), 4909 (a = e.ctrlKey || e.metaKey), 4910 e.originalEvent.altKey && 4911 t.datepicker._adjustDate( 4912 e.target, 4913 e.ctrlKey 4914 ? -t.datepicker._get(o, "stepBigMonths") 4915 : -t.datepicker._get(o, "stepMonths"), 4916 "M", 4917 ); 4918 break; 4919 case 38: 4920 (e.ctrlKey || e.metaKey) && 4921 t.datepicker._adjustDate(e.target, -7, "D"), 4922 (a = e.ctrlKey || e.metaKey); 4923 break; 4924 case 39: 4925 (e.ctrlKey || e.metaKey) && 4926 t.datepicker._adjustDate(e.target, r ? -1 : 1, "D"), 4927 (a = e.ctrlKey || e.metaKey), 4928 e.originalEvent.altKey && 4929 t.datepicker._adjustDate( 4930 e.target, 4931 e.ctrlKey 4932 ? +t.datepicker._get(o, "stepBigMonths") 4933 : +t.datepicker._get(o, "stepMonths"), 4934 "M", 4935 ); 4936 break; 4937 case 40: 4938 (e.ctrlKey || e.metaKey) && 4939 t.datepicker._adjustDate(e.target, 7, "D"), 4940 (a = e.ctrlKey || e.metaKey); 4941 break; 4942 default: 4943 a = !1; 4944 } 4945 else 4946 36 === e.keyCode && e.ctrlKey 4947 ? t.datepicker._showDatepicker(this) 4948 : (a = !1); 4949 a && (e.preventDefault(), e.stopPropagation()); 4950 }, 4951 _doKeyPress: function (e) { 4952 var i, 4953 s, 4954 n = t.datepicker._getInst(e.target); 4955 return t.datepicker._get(n, "constrainInput") 4956 ? ((i = t.datepicker._possibleChars( 4957 t.datepicker._get(n, "dateFormat"), 4958 )), 4959 (s = String.fromCharCode( 4960 null == e.charCode ? e.keyCode : e.charCode, 4961 )), 4962 e.ctrlKey || e.metaKey || " " > s || !i || i.indexOf(s) > -1) 4963 : void 0; 4964 }, 4965 _doKeyUp: function (e) { 4966 var i, 4967 s = t.datepicker._getInst(e.target);
4968 if (s.input.val() !== s.lastVal) 4969 try { 4970 (i = t.datepicker.parseDate( 4971 t.datepicker._get(s, "dateFormat"), 4972 s.input ? s.input.val() : null, 4973 t.datepicker._getFormatConfig(s), 4974 )), 4975 i && 4976 (t.datepicker._setDateFromField(s), 4977 t.datepicker._updateAlternate(s), 4978 t.datepicker._updateDatepicker(s)); 4979 } catch (n) {} 4980 return !0; 4981 }, 4982 _showDatepicker: function (e) { 4983 if ( 4984 ((e = e.target || e), 4985 "input" !== e.nodeName.toLowerCase() && 4986 (e = t("input", e.parentNode)[0]), 4987 !t.datepicker._isDisabledDatepicker(e) && t.datepicker._lastInput !== e) 4988 ) { 4989 var s, n, o, r, h, l, c; 4990 (s = t.datepicker._getInst(e)), 4991 t.datepicker._curInst && 4992 t.datepicker._curInst !== s && 4993 (t.datepicker._curInst.dpDiv.stop(!0, !0), 4994 s && 4995 t.datepicker._datepickerShowing && 4996 t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])), 4997 (n = t.datepicker._get(s, "beforeShow")), 4998 (o = n ? n.apply(e, [e, s]) : {}), 4999 o !== !1 && 5000 (a(s.settings, o), 5001 (s.lastVal = null), 5002 (t.datepicker._lastInput = e), 5003 t.datepicker._setDateFromField(s), 5004 t.datepicker._inDialog && (e.value = ""), 5005 t.datepicker._pos || 5006 ((t.datepicker._pos = t.datepicker._findPos(e)), 5007 (t.datepicker._pos[1] += e.offsetHeight)), 5008 (r = !1), 5009 t(e) 5010 .parents() 5011 .each(function () { 5012 return (r |= "fixed" === t(this).css("position")), !r; 5013 }), 5014 (h = { left: t.datepicker._pos[0], top: t.datepicker._pos[1] }), 5015 (t.datepicker._pos = null), 5016 s.dpDiv.empty(), 5017 s.dpDiv.css({ 5018 position: "absolute", 5019 display: "block", 5020 top: "-1000px", 5021 }), 5022 t.datepicker._updateDatepicker(s), 5023 (h = t.datepicker._checkOffset(s, h, r)), 5024 s.dpDiv.css({ 5025 position: 5026 t.datepicker._inDialog && t.blockUI 5027 ? "static" 5028 : r 5029 ? "fixed" 5030 : "absolute", 5031 display: "none", 5032 left: h.left + "px", 5033 top: h.top + "px", 5034 }), 5035 s.inline || 5036 ((l = t.datepicker._get(s, "showAnim")), 5037 (c = t.datepicker._get(s, "duration")), 5038 s.dpDiv.css("z-index", i(t(e)) + 1), 5039 (t.datepicker._datepickerShowing = !0), 5040 t.effects && t.effects.effect[l] 5041 ? s.dpDiv.show(l, t.datepicker._get(s, "showOptions"), c) 5042 : s.dpDiv[l || "show"](l ? c : null), 5043 t.datepicker._shouldFocusInput(s) && s.input.trigger("focus"), 5044 (t.datepicker._curInst = s))); 5045 } 5046 }, 5047 _updateDatepicker: function (e) { 5048 (this.maxRows = 4), 5049 (m = e), 5050 e.dpDiv.empty().append(this._generateHTML(e)), 5051 this._attachHandlers(e); 5052 var i, 5053 s = this._getNumberOfMonths(e), 5054 n = s[1], 5055 a = 17, 5056 r = e.dpDiv.find("." + this._dayOverClass + " a"); 5057 r.length > 0 && o.apply(r.get(0)), 5058 e.dpDiv 5059 .removeClass( 5060 "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4", 5061 ) 5062 .width(""), 5063 n > 1 && 5064 e.dpDiv 5065 .addClass("ui-datepicker-multi-" + n) 5066 .css("width", a * n + "em"), 5067 e.dpDiv[(1 !== s[0] || 1 !== s[1] ? "add" : "remove") + "Class"]( 5068 "ui-datepicker-multi", 5069 ), 5070 e.dpDiv[(this._get(e, "isRTL") ? "add" : "remove") + "Class"]( 5071 "ui-datepicker-rtl", 5072 ), 5073 e === t.datepicker._curInst && 5074 t.datepicker._datepickerShowing && 5075 t.datepicker._shouldFocusInput(e) && 5076 e.input.trigger("focus"), 5077 e.yearshtml && 5078 ((i = e.yearshtml), 5079 setTimeout(function () { 5080 i === e.yearshtml && 5081 e.yearshtml && 5082 e.dpDiv 5083 .find("select.ui-datepicker-year:first") 5084 .replaceWith(e.yearshtml), 5085 (i = e.yearshtml = null); 5086 }, 0)); 5087 }, 5088 _shouldFocusInput: function (t) { 5089 return ( 5090 t.input && 5091 t.input.is(":visible") && 5092 !t.input.is(":disabled") && 5093 !t.input.is(":focus") 5094 ); 5095 }, 5096 _checkOffset: function (e, i, s) { 5097 var n = e.dpDiv.outerWidth(), 5098 o = e.dpDiv.outerHeight(), 5099 a = e.input ? e.input.outerWidth() : 0, 5100 r = e.input ? e.input.outerHeight() : 0, 5101 h = 5102 document.documentElement.clientWidth + 5103 (s ? 0 : t(document).scrollLeft()), 5104 l = 5105 document.documentElement.clientHeight + 5106 (s ? 0 : t(document).scrollTop()); 5107 return ( 5108 (i.left -= this._get(e, "isRTL") ? n - a : 0), 5109 (i.left -= 5110 s && i.left === e.input.offset().left ? t(document).scrollLeft() : 0), 5111 (i.top -= 5112 s && i.top === e.input.offset().top + r 5113 ? t(document).scrollTop() 5114 : 0), 5115 (i.left -= Math.min( 5116 i.left, 5117 i.left + n > h && h > n ? Math.abs(i.left + n - h) : 0, 5118 )), 5119 (i.top -= Math.min( 5120 i.top, 5121 i.top + o > l && l > o ? Math.abs(o + r) : 0, 5122 )), 5123 i 5124 ); 5125 }, 5126 _findPos: function (e) { 5127 for ( 5128 var i, s = this._getInst(e), n = this._get(s, "isRTL"); 5129 e && 5130 ("hidden" === e.type || 1 !== e.nodeType || t.expr.filters.hidden(e)); 5131 5132 ) 5133 e = e[n ? "previousSibling" : "nextSibling"]; 5134 return (i = t(e).offset()), [i.left, i.top]; 5135 }, 5136 _hideDatepicker: function (e) { 5137 var i, 5138 s, 5139 n, 5140 o, 5141 a = this._curInst; 5142 !a || 5143 (e && a !== t.data(e, "datepicker")) || 5144 (this._datepickerShowing && 5145 ((i = this._get(a, "showAnim")), 5146 (s = this._get(a, "duration")), 5147 (n = function () { 5148 t.datepicker._tidyDialog(a); 5149 }), 5150 t.effects && (t.effects.effect[i] || t.effects[i]) 5151 ? a.dpDiv.hide(i, t.datepicker._get(a, "showOptions"), s, n) 5152 : a.dpDiv[ 5153 "slideDown" === i 5154 ? "slideUp" 5155 : "fadeIn" === i 5156 ? "fadeOut" 5157 : "hide" 5158 ](i ? s : null, n), 5159 i || n(), 5160 (this._datepickerShowing = !1), 5161 (o = this._get(a, "onClose")), 5162 o && 5163 o.apply(a.input ? a.input[0] : null, [ 5164 a.input ? a.input.val() : "", 5165 a, 5166 ]), 5167 (this._lastInput = null),
5168 this._inDialog && 5169 (this._dialogInput.css({ 5170 position: "absolute", 5171 left: "0", 5172 top: "-100px", 5173 }), 5174 t.blockUI && (t.unblockUI(), t("body").append(this.dpDiv))), 5175 (this._inDialog = !1))); 5176 }, 5177 _tidyDialog: function (t) { 5178 t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar"); 5179 }, 5180 _checkExternalClick: function (e) { 5181 if (t.datepicker._curInst) { 5182 var i = t(e.target), 5183 s = t.datepicker._getInst(i[0]); 5184 ((i[0].id !== t.datepicker._mainDivId && 5185 0 === i.parents("#" + t.datepicker._mainDivId).length && 5186 !i.hasClass(t.datepicker.markerClassName) && 5187 !i.closest("." + t.datepicker._triggerClass).length && 5188 t.datepicker._datepickerShowing && 5189 (!t.datepicker._inDialog || !t.blockUI)) || 5190 (i.hasClass(t.datepicker.markerClassName) && 5191 t.datepicker._curInst !== s)) && 5192 t.datepicker._hideDatepicker(); 5193 } 5194 }, 5195 _adjustDate: function (e, i, s) { 5196 var n = t(e), 5197 o = this._getInst(n[0]); 5198 this._isDisabledDatepicker(n[0]) || 5199 (this._adjustInstDate( 5200 o, 5201 i + ("M" === s ? this._get(o, "showCurrentAtPos") : 0), 5202 s, 5203 ), 5204 this._updateDatepicker(o)); 5205 }, 5206 _gotoToday: function (e) { 5207 var i, 5208 s = t(e), 5209 n = this._getInst(s[0]); 5210 this._get(n, "gotoCurrent") && n.currentDay 5211 ? ((n.selectedDay = n.currentDay), 5212 (n.drawMonth = n.selectedMonth = n.currentMonth), 5213 (n.drawYear = n.selectedYear = n.currentYear)) 5214 : ((i = new Date()), 5215 (n.selectedDay = i.getDate()), 5216 (n.drawMonth = n.selectedMonth = i.getMonth()), 5217 (n.drawYear = n.selectedYear = i.getFullYear())), 5218 this._notifyChange(n), 5219 this._adjustDate(s); 5220 }, 5221 _selectMonthYear: function (e, i, s) { 5222 var n = t(e), 5223 o = this._getInst(n[0]); 5224 (o["selected" + ("M" === s ? "Month" : "Year")] = o[ 5225 "draw" + ("M" === s ? "Month" : "Year") 5226 ] = 5227 parseInt(i.options[i.selectedIndex].value, 10)), 5228 this._notifyChange(o), 5229 this._adjustDate(n); 5230 }, 5231 _selectDay: function (e, i, s, n) { 5232 var o, 5233 a = t(e); 5234 t(n).hasClass(this._unselectableClass) || 5235 this._isDisabledDatepicker(a[0]) || 5236 ((o = this._getInst(a[0])), 5237 (o.selectedDay = o.currentDay = t("a", n).html()), 5238 (o.selectedMonth = o.currentMonth = i), 5239 (o.selectedYear = o.currentYear = s), 5240 this._selectDate( 5241 e, 5242 this._formatDate(o, o.currentDay, o.currentMonth, o.currentYear), 5243 )); 5244 }, 5245 _clearDate: function (e) { 5246 var i = t(e); 5247 this._selectDate(i, ""); 5248 }, 5249 _selectDate: function (e, i) { 5250 var s, 5251 n = t(e), 5252 o = this._getInst(n[0]); 5253 (i = null != i ? i : this._formatDate(o)), 5254 o.input && o.input.val(i), 5255 this._updateAlternate(o), 5256 (s = this._get(o, "onSelect")), 5257 s 5258 ? s.apply(o.input ? o.input[0] : null, [i, o]) 5259 : o.input && o.input.trigger("change"), 5260 o.inline 5261 ? this._updateDatepicker(o) 5262 : (this._hideDatepicker(), 5263 (this._lastInput = o.input[0]), 5264 "object" != typeof o.input[0] && o.input.trigger("focus"), 5265 (this._lastInput = null)); 5266 }, 5267 _updateAlternate: function (e) { 5268 var i, 5269 s, 5270 n, 5271 o = this._get(e, "altField"); 5272 o && 5273 ((i = this._get(e, "altFormat") || this._get(e, "dateFormat")), 5274 (s = this._getDate(e)), 5275 (n = this.formatDate(i, s, this._getFormatConfig(e))), 5276 t(o).val(n)); 5277 },
5278 noWeekends: function (t) { 5279 var e = t.getDay(); 5280 return [e > 0 && 6 > e, ""]; 5281 }, 5282 iso8601Week: function (t) { 5283 var e, 5284 i = new Date(t.getTime()); 5285 return ( 5286 i.setDate(i.getDate() + 4 - (i.getDay() || 7)), 5287 (e = i.getTime()), 5288 i.setMonth(0), 5289 i.setDate(1), 5290 Math.floor(Math.round((e - i) / 864e5) / 7) + 1 5291 ); 5292 }, 5293 parseDate: function (e, i, s) { 5294 if (null == e || null == i) throw "Invalid arguments"; 5295 if (((i = "object" == typeof i ? "" + i : i + ""), "" === i)) return null; 5296 var n, 5297 o, 5298 a, 5299 r, 5300 h = 0, 5301 l = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff, 5302 c = 5303 "string" != typeof l 5304 ? l 5305 : (new Date().getFullYear() % 100) + parseInt(l, 10), 5306 u = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort, 5307 d = (s ? s.dayNames : null) || this._defaults.dayNames, 5308 p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort, 5309 f = (s ? s.monthNames : null) || this._defaults.monthNames, 5310 g = -1, 5311 m = -1, 5312 _ = -1, 5313 v = -1, 5314 b = !1, 5315 y = function (t) { 5316 var i = e.length > n + 1 && e.charAt(n + 1) === t; 5317 return i && n++, i; 5318 }, 5319 w = function (t) { 5320 var e = y(t), 5321 s = 5322 "@" === t 5323 ? 14 5324 : "!" === t 5325 ? 20 5326 : "y" === t && e 5327 ? 4 5328 : "o" === t 5329 ? 3 5330 : 2, 5331 n = "y" === t ? s : 1, 5332 o = RegExp("^\\d{" + n + "," + s + "}"), 5333 a = i.substring(h).match(o); 5334 if (!a) throw "Missing number at position " + h; 5335 return (h += a[0].length), parseInt(a[0], 10); 5336 }, 5337 k = function (e, s, n) { 5338 var o = -1, 5339 a = t 5340 .map(y(e) ? n : s, function (t, e) { 5341 return [[e, t]]; 5342 }) 5343 .sort(function (t, e) { 5344 return -(t[1].length - e[1].length); 5345 }); 5346 if ( 5347 (t.each(a, function (t, e) { 5348 var s = e[1]; 5349 return i.substr(h, s.length).toLowerCase() === s.toLowerCase() 5350 ? ((o = e[0]), (h += s.length), !1) 5351 : void 0; 5352 }), 5353 -1 !== o) 5354 ) 5355 return o + 1; 5356 throw "Unknown name at position " + h; 5357 }, 5358 x = function () { 5359 if (i.charAt(h) !== e.charAt(n)) 5360 throw "Unexpected literal at position " + h; 5361 h++; 5362 }; 5363 for (n = 0; e.length > n; n++) 5364 if (b) "'" !== e.charAt(n) || y("'") ? x() : (b = !1); 5365 else 5366 switch (e.charAt(n)) { 5367 case "d": 5368 _ = w("d"); 5369 break; 5370 case "D": 5371 k("D", u, d); 5372 break; 5373 case "o": 5374 v = w("o"); 5375 break; 5376 case "m": 5377 m = w("m"); 5378 break; 5379 case "M": 5380 m = k("M", p, f); 5381 break; 5382 case "y": 5383 g = w("y"); 5384 break; 5385 case "@": 5386 (r = new Date(w("@"))), 5387 (g = r.getFullYear()), 5388 (m = r.getMonth() + 1), 5389 (_ = r.getDate()); 5390 break; 5391 case "!": 5392 (r = new Date((w("!") - this._ticksTo1970) / 1e4)), 5393 (g = r.getFullYear()), 5394 (m = r.getMonth() + 1), 5395 (_ = r.getDate()); 5396 break; 5397 case "'": 5398 y("'") ? x() : (b = !0); 5399 break; 5400 default: 5401 x(); 5402 } 5403 if (i.length > h && ((a = i.substr(h)), !/^\s+/.test(a))) 5404 throw "Extra/unparsed characters found in date: " + a; 5405 if ( 5406 (-1 === g 5407 ? (g = new Date().getFullYear()) 5408 : 100 > g && 5409 (g += 5410 new Date().getFullYear() - 5411 (new Date().getFullYear() % 100) + 5412 (c >= g ? 0 : -100)), 5413 v > -1) 5414 ) 5415 for (m = 1, _ = v; ; ) { 5416 if (((o = this._getDaysInMonth(g, m - 1)), o >= _)) break; 5417 m++, (_ -= o); 5418 } 5419 if ( 5420 ((r = this._daylightSavingAdjust(new Date(g, m - 1, _))), 5421 r.getFullYear() !== g || r.getMonth() + 1 !== m || r.getDate() !== _) 5422 ) 5423 throw "Invalid date"; 5424 return r; 5425 }, 5426 ATOM: "yy-mm-dd", 5427 COOKIE: "D, dd M yy", 5428 ISO_8601: "yy-mm-dd", 5429 RFC_822: "D, d M y", 5430 RFC_850: "DD, dd-M-y", 5431 RFC_1036: "D, d M y", 5432 RFC_1123: "D, d M yy", 5433 RFC_2822: "D, d M yy", 5434 RSS: "D, d M y", 5435 TICKS: "!", 5436 TIMESTAMP: "@", 5437 W3C: "yy-mm-dd", 5438 _ticksTo1970: 5439 1e7 * 5440 60 * 5441 60 * 5442 24 * 5443 (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)), 5444 formatDate: function (t, e, i) { 5445 if (!e) return ""; 5446 var s, 5447 n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort, 5448 o = (i ? i.dayNames : null) || this._defaults.dayNames, 5449 a = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort, 5450 r = (i ? i.monthNames : null) || this._defaults.monthNames, 5451 h = function (e) { 5452 var i = t.length > s + 1 && t.charAt(s + 1) === e; 5453 return i && s++, i; 5454 }, 5455 l = function (t, e, i) { 5456 var s = "" + e; 5457 if (h(t)) for (; i > s.length; ) s = "0" + s; 5458 return s; 5459 }, 5460 c = function (t, e, i, s) { 5461 return h(t) ? s[e] : i[e]; 5462 }, 5463 u = "", 5464 d = !1; 5465 if (e) 5466 for (s = 0; t.length > s; s++) 5467 if (d) "'" !== t.charAt(s) || h("'") ? (u += t.charAt(s)) : (d = !1); 5468 else 5469 switch (t.charAt(s)) { 5470 case "d": 5471 u += l("d", e.getDate(), 2); 5472 break; 5473 case "D": 5474 u += c("D", e.getDay(), n, o); 5475 break; 5476 case "o": 5477 u += l( 5478 "o", 5479 Math.round( 5480 (new Date( 5481 e.getFullYear(), 5482 e.getMonth(), 5483 e.getDate(), 5484 ).getTime() - 5485 new Date(e.getFullYear(), 0, 0).getTime()) / 5486 864e5, 5487 ), 5488 3, 5489 ); 5490 break; 5491 case "m": 5492 u += l("m", e.getMonth() + 1, 2); 5493 break; 5494 case "M": 5495 u += c("M", e.getMonth(), a, r); 5496 break; 5497 case "y": 5498 u += h("y") 5499 ? e.getFullYear() 5500 : (10 > e.getFullYear() % 100 ? "0" : "") + 5501 (e.getFullYear() % 100); 5502 break; 5503 case "@": 5504 u += e.getTime(); 5505 break; 5506 case "!": 5507 u += 1e4 * e.getTime() + this._ticksTo1970; 5508 break;
5509 case "'": 5510 h("'") ? (u += "'") : (d = !0); 5511 break; 5512 default: 5513 u += t.charAt(s); 5514 } 5515 return u; 5516 }, 5517 _possibleChars: function (t) { 5518 var e, 5519 i = "", 5520 s = !1, 5521 n = function (i) { 5522 var s = t.length > e + 1 && t.charAt(e + 1) === i; 5523 return s && e++, s; 5524 }; 5525 for (e = 0; t.length > e; e++) 5526 if (s) "'" !== t.charAt(e) || n("'") ? (i += t.charAt(e)) : (s = !1); 5527 else 5528 switch (t.charAt(e)) { 5529 case "d": 5530 case "m": 5531 case "y": 5532 case "@": 5533 i += "0123456789"; 5534 break; 5535 case "D": 5536 case "M": 5537 return null; 5538 case "'": 5539 n("'") ? (i += "'") : (s = !0); 5540 break; 5541 default: 5542 i += t.charAt(e); 5543 } 5544 return i; 5545 }, 5546 _get: function (t, e) { 5547 return void 0 !== t.settings[e] ? t.settings[e] : this._defaults[e]; 5548 }, 5549 _setDateFromField: function (t, e) { 5550 if (t.input.val() !== t.lastVal) { 5551 var i = this._get(t, "dateFormat"), 5552 s = (t.lastVal = t.input ? t.input.val() : null), 5553 n = this._getDefaultDate(t), 5554 o = n, 5555 a = this._getFormatConfig(t); 5556 try { 5557 o = this.parseDate(i, s, a) || n; 5558 } catch (r) { 5559 s = e ? "" : s; 5560 } 5561 (t.selectedDay = o.getDate()), 5562 (t.drawMonth = t.selectedMonth = o.getMonth()), 5563 (t.drawYear = t.selectedYear = o.getFullYear()), 5564 (t.currentDay = s ? o.getDate() : 0), 5565 (t.currentMonth = s ? o.getMonth() : 0), 5566 (t.currentYear = s ? o.getFullYear() : 0), 5567 this._adjustInstDate(t); 5568 } 5569 }, 5570 _getDefaultDate: function (t) { 5571 return this._restrictMinMax( 5572 t, 5573 this._determineDate(t, this._get(t, "defaultDate"), new Date()), 5574 ); 5575 }, 5576 _determineDate: function (e, i, s) { 5577 var n = function (t) { 5578 var e = new Date(); 5579 return e.setDate(e.getDate() + t), e; 5580 }, 5581 o = function (i) { 5582 try { 5583 return t.datepicker.parseDate( 5584 t.datepicker._get(e, "dateFormat"), 5585 i, 5586 t.datepicker._getFormatConfig(e), 5587 ); 5588 } catch (s) {} 5589 for ( 5590 var n = 5591 (i.toLowerCase().match(/^c/) 5592 ? t.datepicker._getDate(e) 5593 : null) || new Date(), 5594 o = n.getFullYear(), 5595 a = n.getMonth(), 5596 r = n.getDate(), 5597 h = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, 5598 l = h.exec(i); 5599 l; 5600 5601 ) { 5602 switch (l[2] || "d") { 5603 case "d": 5604 case "D": 5605 r += parseInt(l[1], 10); 5606 break; 5607 case "w": 5608 case "W": 5609 r += 7 * parseInt(l[1], 10); 5610 break; 5611 case "m": 5612 case "M": 5613 (a += parseInt(l[1], 10)), 5614 (r = Math.min(r, t.datepicker._getDaysInMonth(o, a))); 5615 break; 5616 case "y": 5617 case "Y": 5618 (o += parseInt(l[1], 10)), 5619 (r = Math.min(r, t.datepicker._getDaysInMonth(o, a))); 5620 } 5621 l = h.exec(i); 5622 } 5623 return new Date(o, a, r); 5624 }, 5625 a = 5626 null == i || "" === i 5627 ? s 5628 : "string" == typeof i 5629 ? o(i) 5630 : "number" == typeof i 5631 ? isNaN(i) 5632 ? s 5633 : n(i) 5634 : new Date(i.getTime()); 5635 return ( 5636 (a = a && "Invalid Date" == "" + a ? s : a), 5637 a && 5638 (a.setHours(0), 5639 a.setMinutes(0), 5640 a.setSeconds(0), 5641 a.setMilliseconds(0)), 5642 this._daylightSavingAdjust(a) 5643 ); 5644 }, 5645 _daylightSavingAdjust: function (t) { 5646 return t 5647 ? (t.setHours(t.getHours() > 12 ? t.getHours() + 2 : 0), t) 5648 : null; 5649 }, 5650 _setDate: function (t, e, i) { 5651 var s = !e, 5652 n = t.selectedMonth, 5653 o = t.selectedYear, 5654 a = this._restrictMinMax(t, this._determineDate(t, e, new Date())); 5655 (t.selectedDay = t.currentDay = a.getDate()), 5656 (t.drawMonth = t.selectedMonth = t.currentMonth = a.getMonth()), 5657 (t.drawYear = t.selectedYear = t.currentYear = a.getFullYear()), 5658 (n === t.selectedMonth && o === t.selectedYear) || 5659 i || 5660 this._notifyChange(t), 5661 this._adjustInstDate(t), 5662 t.input && t.input.val(s ? "" : this._formatDate(t)); 5663 }, 5664 _getDate: function (t) { 5665 var e = 5666 !t.currentYear || (t.input && "" === t.input.val()) 5667 ? null 5668 : this._daylightSavingAdjust( 5669 new Date(t.currentYear, t.currentMonth, t.currentDay), 5670 ); 5671 return e; 5672 }, 5673 _attachHandlers: function (e) { 5674 var i = this._get(e, "stepMonths"), 5675 s = "#" + e.id.replace(/\\\\/g, "\\");
5676 e.dpDiv.find("[data-handler]").map(function () { 5677 var e = { 5678 prev: function () { 5679 t.datepicker._adjustDate(s, -i, "M"); 5680 }, 5681 next: function () { 5682 t.datepicker._adjustDate(s, +i, "M"); 5683 }, 5684 hide: function () { 5685 t.datepicker._hideDatepicker(); 5686 }, 5687 today: function () { 5688 t.datepicker._gotoToday(s); 5689 }, 5690 selectDay: function () { 5691 return ( 5692 t.datepicker._selectDay( 5693 s, 5694 +this.getAttribute("data-month"), 5695 +this.getAttribute("data-year"), 5696 this, 5697 ), 5698 !1 5699 ); 5700 }, 5701 selectMonth: function () { 5702 return t.datepicker._selectMonthYear(s, this, "M"), !1; 5703 }, 5704 selectYear: function () { 5705 return t.datepicker._selectMonthYear(s, this, "Y"), !1; 5706 }, 5707 }; 5708 t(this).on( 5709 this.getAttribute("data-event"), 5710 e[this.getAttribute("data-handler")], 5711 ); 5712 }); 5713 }, 5714 _generateHTML: function (t) { 5715 var e, 5716 i, 5717 s, 5718 n, 5719 o, 5720 a, 5721 r, 5722 h, 5723 l, 5724 c, 5725 u, 5726 d, 5727 p, 5728 f, 5729 g, 5730 m, 5731 _, 5732 v, 5733 b, 5734 y, 5735 w, 5736 k, 5737 x, 5738 C, 5739 D, 5740 I, 5741 T, 5742 P, 5743 M, 5744 S, 5745 H, 5746 z, 5747 O, 5748 A, 5749 N, 5750 W, 5751 E, 5752 F, 5753 L, 5754 R = new Date(), 5755 B = this._daylightSavingAdjust( 5756 new Date(R.getFullYear(), R.getMonth(), R.getDate()), 5757 ), 5758 Y = this._get(t, "isRTL"), 5759 j = this._get(t, "showButtonPanel"), 5760 q = this._get(t, "hideIfNoPrevNext"), 5761 K = this._get(t, "navigationAsDateFormat"), 5762 U = this._getNumberOfMonths(t), 5763 V = this._get(t, "showCurrentAtPos"), 5764 $ = this._get(t, "stepMonths"), 5765 X = 1 !== U[0] || 1 !== U[1], 5766 G = this._daylightSavingAdjust( 5767 t.currentDay 5768 ? new Date(t.currentYear, t.currentMonth, t.currentDay) 5769 : new Date(9999, 9, 9), 5770 ), 5771 Q = this._getMinMaxDate(t, "min"), 5772 J = this._getMinMaxDate(t, "max"), 5773 Z = t.drawMonth - V, 5774 te = t.drawYear; 5775 if ((0 > Z && ((Z += 12), te--), J)) 5776 for ( 5777 e = this._daylightSavingAdjust( 5778 new Date( 5779 J.getFullYear(), 5780 J.getMonth() - U[0] * U[1] + 1, 5781 J.getDate(), 5782 ), 5783 ), 5784 e = Q && Q > e ? Q : e; 5785 this._daylightSavingAdjust(new Date(te, Z, 1)) > e; 5786 5787 ) 5788 Z--, 0 > Z && ((Z = 11), te--); 5789 for ( 5790 t.drawMonth = Z, 5791 t.drawYear = te, 5792 i = this._get(t, "prevText"), 5793 i = K 5794 ? this.formatDate( 5795 i, 5796 this._daylightSavingAdjust(new Date(te, Z - $, 1)), 5797 this._getFormatConfig(t), 5798 ) 5799 : i, 5800 s = this._canAdjustMonth(t, -1, te, Z) 5801 ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + 5802 i + 5803 "'><span class='ui-icon ui-icon-circle-triangle-" + 5804 (Y ? "e" : "w") + 5805 "'>" + 5806 i + 5807 "</span></a>" 5808 : q 5809 ? "" 5810 : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + 5811 i + 5812 "'><span class='ui-icon ui-icon-circle-triangle-" + 5813 (Y ? "e" : "w") + 5814 "'>" + 5815 i + 5816 "</span></a>", 5817 n = this._get(t, "nextText"), 5818 n = K 5819 ? this.formatDate( 5820 n, 5821 this._daylightSavingAdjust(new Date(te, Z + $, 1)), 5822 this._getFormatConfig(t), 5823 ) 5824 : n, 5825 o = this._canAdjustMonth(t, 1, te, Z) 5826 ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + 5827 n + 5828 "'><span class='ui-icon ui-icon-circle-triangle-" + 5829 (Y ? "w" : "e") + 5830 "'>" + 5831 n + 5832 "</span></a>" 5833 : q 5834 ? "" 5835 : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + 5836 n + 5837 "'><span class='ui-icon ui-icon-circle-triangle-" + 5838 (Y ? "w" : "e") + 5839 "'>" + 5840 n + 5841 "</span></a>", 5842 a = this._get(t, "currentText"), 5843 r = this._get(t, "gotoCurrent") && t.currentDay ? G : B, 5844 a = K ? this.formatDate(a, r, this._getFormatConfig(t)) : a, 5845 h = t.inline 5846 ? "" 5847 : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + 5848 this._get(t, "closeText") + 5849 "</button>", 5850 l = j 5851 ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + 5852 (Y ? h : "") + 5853 (this._isInRange(t, r) 5854 ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + 5855 a + 5856 "</button>" 5857 : "") + 5858 (Y ? "" : h) + 5859 "</div>" 5860 : "", 5861 c = parseInt(this._get(t, "firstDay"), 10), 5862 c = isNaN(c) ? 0 : c, 5863 u = this._get(t, "showWeek"), 5864 d = this._get(t, "dayNames"), 5865 p = this._get(t, "dayNamesMin"), 5866 f = this._get(t, "monthNames"), 5867 g = this._get(t, "monthNamesShort"), 5868 m = this._get(t, "beforeShowDay"), 5869 _ = this._get(t, "showOtherMonths"), 5870 v = this._get(t, "selectOtherMonths"), 5871 b = this._getDefaultDate(t), 5872 y = "", 5873 k = 0; 5874 U[0] > k; 5875 k++ 5876 ) { 5877 for (x = "", this.maxRows = 4, C = 0; U[1] > C; C++) { 5878 if ( 5879 ((D = this._daylightSavingAdjust(new Date(te, Z, t.selectedDay))), 5880 (I = " ui-corner-all"), 5881 (T = ""), 5882 X) 5883 ) { 5884 if (((T += "<div class='ui-datepicker-group"), U[1] > 1)) 5885 switch (C) { 5886 case 0: 5887 (T += " ui-datepicker-group-first"), 5888 (I = " ui-corner-" + (Y ? "right" : "left")); 5889 break; 5890 case U[1] - 1: 5891 (T += " ui-datepicker-group-last"), 5892 (I = " ui-corner-" + (Y ? "left" : "right")); 5893 break; 5894 default: 5895 (T += " ui-datepicker-group-middle"), (I = ""); 5896 } 5897 T += "'>"; 5898 } 5899 for ( 5900 T += 5901 "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + 5902 I + 5903 "'>" + 5904 (/all|left/.test(I) && 0 === k ? (Y ? o : s) : "") + 5905 (/all|right/.test(I) && 0 === k ? (Y ? s : o) : "") + 5906 this._generateMonthYearHeader( 5907 t, 5908 Z, 5909 te, 5910 Q, 5911 J, 5912 k > 0 || C > 0, 5913 f, 5914 g, 5915 ) + 5916 "</div><table class='ui-datepicker-calendar'><thead>" + 5917 "<tr>", 5918 P = u 5919 ? "<th class='ui-datepicker-week-col'>" + 5920 this._get(t, "weekHeader") + 5921 "</th>" 5922 : "", 5923 w = 0; 5924 7 > w; 5925 w++ 5926 ) 5927 (M = (w + c) % 7), 5928 (P += 5929 "<th scope='col'" + 5930 ((w + c + 6) % 7 >= 5 5931 ? " class='ui-datepicker-week-end'" 5932 : "") + 5933 ">" + 5934 "<span title='" + 5935 d[M] + 5936 "'>" + 5937 p[M] + 5938 "</span></th>"); 5939 for ( 5940 T += P + "</tr></thead><tbody>", 5941 S = this._getDaysInMonth(te, Z), 5942 te === t.selectedYear && 5943 Z === t.selectedMonth && 5944 (t.selectedDay = Math.min(t.selectedDay, S)), 5945 H = (this._getFirstDayOfMonth(te, Z) - c + 7) % 7,
5946 z = Math.ceil((H + S) / 7), 5947 O = X ? (this.maxRows > z ? this.maxRows : z) : z, 5948 this.maxRows = O, 5949 A = this._daylightSavingAdjust(new Date(te, Z, 1 - H)), 5950 N = 0; 5951 O > N; 5952 N++ 5953 ) { 5954 for ( 5955 T += "<tr>", 5956 W = u 5957 ? "<td class='ui-datepicker-week-col'>" + 5958 this._get(t, "calculateWeek")(A) + 5959 "</td>" 5960 : "", 5961 w = 0; 5962 7 > w; 5963 w++ 5964 ) 5965 (E = m ? m.apply(t.input ? t.input[0] : null, [A]) : [!0, ""]), 5966 (F = A.getMonth() !== Z), 5967 (L = (F && !v) || !E[0] || (Q && Q > A) || (J && A > J)), 5968 (W += 5969 "<td class='" + 5970 ((w + c + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + 5971 (F ? " ui-datepicker-other-month" : "") + 5972 ((A.getTime() === D.getTime() && 5973 Z === t.selectedMonth && 5974 t._keyEvent) || 5975 (b.getTime() === A.getTime() && b.getTime() === D.getTime()) 5976 ? " " + this._dayOverClass 5977 : "") + 5978 (L 5979 ? " " + this._unselectableClass + " ui-state-disabled" 5980 : "") + 5981 (F && !_ 5982 ? "" 5983 : " " + 5984 E[1] + 5985 (A.getTime() === G.getTime() 5986 ? " " + this._currentClass 5987 : "") + 5988 (A.getTime() === B.getTime() 5989 ? " ui-datepicker-today" 5990 : "")) + 5991 "'" + 5992 ((F && !_) || !E[2] 5993 ? "" 5994 : " title='" + E[2].replace(/'/g, "'") + "'") + 5995 (L 5996 ? "" 5997 : " data-handler='selectDay' data-event='click' data-month='" + 5998 A.getMonth() + 5999 "' data-year='" + 6000 A.getFullYear() + 6001 "'") + 6002 ">" + 6003 (F && !_ 6004 ? " " 6005 : L 6006 ? "<span class='ui-state-default'>" + 6007 A.getDate() + 6008 "</span>" 6009 : "<a class='ui-state-default" + 6010 (A.getTime() === B.getTime() 6011 ? " ui-state-highlight" 6012 : "") + 6013 (A.getTime() === G.getTime() 6014 ? " ui-state-active" 6015 : "") + 6016 (F ? " ui-priority-secondary" : "") + 6017 "' href='#'>" + 6018 A.getDate() + 6019 "</a>") + 6020 "</td>"), 6021 A.setDate(A.getDate() + 1), 6022 (A = this._daylightSavingAdjust(A)); 6023 T += W + "</tr>"; 6024 } 6025 Z++, 6026 Z > 11 && ((Z = 0), te++), 6027 (T += 6028 "</tbody></table>" + 6029 (X 6030 ? "</div>" + 6031 (U[0] > 0 && C === U[1] - 1 6032 ? "<div class='ui-datepicker-row-break'></div>" 6033 : "") 6034 : "")), 6035 (x += T); 6036 } 6037 y += x; 6038 } 6039 return (y += l), (t._keyEvent = !1), y; 6040 }, 6041 _generateMonthYearHeader: function (t, e, i, s, n, o, a, r) { 6042 var h, 6043 l, 6044 c, 6045 u, 6046 d, 6047 p, 6048 f, 6049 g, 6050 m = this._get(t, "changeMonth"), 6051 _ = this._get(t, "changeYear"), 6052 v = this._get(t, "showMonthAfterYear"), 6053 b = "<div class='ui-datepicker-title'>", 6054 y = ""; 6055 if (o || !m) y += "<span class='ui-datepicker-month'>" + a[e] + "</span>"; 6056 else { 6057 for ( 6058 h = s && s.getFullYear() === i, 6059 l = n && n.getFullYear() === i, 6060 y += 6061 "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>", 6062 c = 0; 6063 12 > c; 6064 c++ 6065 ) 6066 (!h || c >= s.getMonth()) && 6067 (!l || n.getMonth() >= c) && 6068 (y += 6069 "<option value='" + 6070 c + 6071 "'" + 6072 (c === e ? " selected='selected'" : "") + 6073 ">" + 6074 r[c] + 6075 "</option>"); 6076 y += "</select>"; 6077 } 6078 if ((v || (b += y + (!o && m && _ ? "" : " ")), !t.yearshtml)) 6079 if (((t.yearshtml = ""), o || !_)) 6080 b += "<span class='ui-datepicker-year'>" + i + "</span>"; 6081 else { 6082 for ( 6083 u = this._get(t, "yearRange").split(":"), 6084 d = new Date().getFullYear(), 6085 p = function (t) { 6086 var e = t.match(/c[+\-].*/) 6087 ? i + parseInt(t.substring(1), 10) 6088 : t.match(/[+\-].*/) 6089 ? d + parseInt(t, 10) 6090 : parseInt(t, 10); 6091 return isNaN(e) ? d : e; 6092 }, 6093 f = p(u[0]), 6094 g = Math.max(f, p(u[1] || "")), 6095 f = s ? Math.max(f, s.getFullYear()) : f, 6096 g = n ? Math.min(g, n.getFullYear()) : g, 6097 t.yearshtml += 6098 "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; 6099 g >= f; 6100 f++ 6101 ) 6102 t.yearshtml += 6103 "<option value='" + 6104 f + 6105 "'" + 6106 (f === i ? " selected='selected'" : "") + 6107 ">" + 6108 f + 6109 "</option>"; 6110 (t.yearshtml += "</select>"), 6111 (b += t.yearshtml), 6112 (t.yearshtml = null); 6113 } 6114 return ( 6115 (b += this._get(t, "yearSuffix")), 6116 v && (b += (!o && m && _ ? "" : " ") + y), 6117 (b += "</div>") 6118 ); 6119 }, 6120 _adjustInstDate: function (t, e, i) { 6121 var s = t.selectedYear + ("Y" === i ? e : 0), 6122 n = t.selectedMonth + ("M" === i ? e : 0), 6123 o = 6124 Math.min(t.selectedDay, this._getDaysInMonth(s, n)) + 6125 ("D" === i ? e : 0), 6126 a = this._restrictMinMax( 6127 t, 6128 this._daylightSavingAdjust(new Date(s, n, o)), 6129 ); 6130 (t.selectedDay = a.getDate()), 6131 (t.drawMonth = t.selectedMonth = a.getMonth()), 6132 (t.drawYear = t.selectedYear = a.getFullYear()), 6133 ("M" === i || "Y" === i) && this._notifyChange(t); 6134 }, 6135 _restrictMinMax: function (t, e) { 6136 var i = this._getMinMaxDate(t, "min"),
6137 s = this._getMinMaxDate(t, "max"), 6138 n = i && i > e ? i : e; 6139 return s && n > s ? s : n; 6140 }, 6141 _notifyChange: function (t) { 6142 var e = this._get(t, "onChangeMonthYear"); 6143 e && 6144 e.apply(t.input ? t.input[0] : null, [ 6145 t.selectedYear, 6146 t.selectedMonth + 1, 6147 t, 6148 ]); 6149 }, 6150 _getNumberOfMonths: function (t) { 6151 var e = this._get(t, "numberOfMonths"); 6152 return null == e ? [1, 1] : "number" == typeof e ? [1, e] : e; 6153 }, 6154 _getMinMaxDate: function (t, e) { 6155 return this._determineDate(t, this._get(t, e + "Date"), null); 6156 }, 6157 _getDaysInMonth: function (t, e) { 6158 return 32 - this._daylightSavingAdjust(new Date(t, e, 32)).getDate(); 6159 }, 6160 _getFirstDayOfMonth: function (t, e) { 6161 return new Date(t, e, 1).getDay(); 6162 }, 6163 _canAdjustMonth: function (t, e, i, s) { 6164 var n = this._getNumberOfMonths(t), 6165 o = this._daylightSavingAdjust( 6166 new Date(i, s + (0 > e ? e : n[0] * n[1]), 1), 6167 ); 6168 return ( 6169 0 > e && o.setDate(this._getDaysInMonth(o.getFullYear(), o.getMonth())), 6170 this._isInRange(t, o) 6171 ); 6172 }, 6173 _isInRange: function (t, e) { 6174 var i, 6175 s, 6176 n = this._getMinMaxDate(t, "min"), 6177 o = this._getMinMaxDate(t, "max"), 6178 a = null, 6179 r = null, 6180 h = this._get(t, "yearRange"); 6181 return ( 6182 h && 6183 ((i = h.split(":")), 6184 (s = new Date().getFullYear()), 6185 (a = parseInt(i[0], 10)), 6186 (r = parseInt(i[1], 10)), 6187 i[0].match(/[+\-].*/) && (a += s), 6188 i[1].match(/[+\-].*/) && (r += s)), 6189 (!n || e.getTime() >= n.getTime()) && 6190 (!o || e.getTime() <= o.getTime()) && 6191 (!a || e.getFullYear() >= a) && 6192 (!r || r >= e.getFullYear()) 6193 ); 6194 }, 6195 _getFormatConfig: function (t) { 6196 var e = this._get(t, "shortYearCutoff"); 6197 return ( 6198 (e = 6199 "string" != typeof e 6200 ? e 6201 : (new Date().getFullYear() % 100) + parseInt(e, 10)), 6202 { 6203 shortYearCutoff: e, 6204 dayNamesShort: this._get(t, "dayNamesShort"), 6205 dayNames: this._get(t, "dayNames"), 6206 monthNamesShort: this._get(t, "monthNamesShort"), 6207 monthNames: this._get(t, "monthNames"), 6208 } 6209 ); 6210 }, 6211 _formatDate: function (t, e, i, s) { 6212 e || 6213 ((t.currentDay = t.selectedDay), 6214 (t.currentMonth = t.selectedMonth), 6215 (t.currentYear = t.selectedYear)); 6216 var n = e
6217 ? "object" == typeof e 6218 ? e 6219 : this._daylightSavingAdjust(new Date(s, i, e)) 6220 : this._daylightSavingAdjust( 6221 new Date(t.currentYear, t.currentMonth, t.currentDay), 6222 ); 6223 return this.formatDate( 6224 this._get(t, "dateFormat"), 6225 n, 6226 this._getFormatConfig(t), 6227 ); 6228 }, 6229 }), 6230 (t.fn.datepicker = function (e) { 6231 if (!this.length) return this; 6232 t.datepicker.initialized || 6233 (t(document).on("mousedown", t.datepicker._checkExternalClick), 6234 (t.datepicker.initialized = !0)), 6235 0 === t("#" + t.datepicker._mainDivId).length && 6236 t("body").append(t.datepicker.dpDiv); 6237 var i = Array.prototype.slice.call(arguments, 1); 6238 return "string" != typeof e || 6239 ("isDisabled" !== e && "getDate" !== e && "widget" !== e) 6240 ? "option" === e && 6241 2 === arguments.length && 6242 "string" == typeof arguments[1] 6243 ? t.datepicker["_" + e + "Datepicker"].apply( 6244 t.datepicker, 6245 [this[0]].concat(i), 6246 ) 6247 : this.each(function () { 6248 "string" == typeof e 6249 ? t.datepicker["_" + e + "Datepicker"].apply( 6250 t.datepicker, 6251 [this].concat(i), 6252 ) 6253 : t.datepicker._attachDatepicker(this, e); 6254 }) 6255 : t.datepicker["_" + e + "Datepicker"].apply( 6256 t.datepicker, 6257 [this[0]].concat(i), 6258 ); 6259 }), 6260 (t.datepicker = new s()), 6261 (t.datepicker.initialized = !1), 6262 (t.datepicker.uuid = new Date().getTime()), 6263 (t.datepicker.version = "1.12.1"), 6264 t.datepicker, 6265 (t.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())); 6266 var _ = !1; 6267 t(document).on("mouseup", function () { 6268 _ = !1; 6269 }), 6270 t.widget("ui.mouse", { 6271 version: "1.12.1", 6272 options: { 6273 cancel: "input, textarea, button, select, option", 6274 distance: 1, 6275 delay: 0, 6276 }, 6277 _mouseInit: function () { 6278 var e = this; 6279 this.element 6280 .on("mousedown." + this.widgetName, function (t) { 6281 return e._mouseDown(t); 6282 }) 6283 .on("click." + this.widgetName, function (i) { 6284 return !0 === t.data(i.target, e.widgetName + ".preventClickEvent") 6285 ? (t.removeData(i.target, e.widgetName + ".preventClickEvent"), 6286 i.stopImmediatePropagation(), 6287 !1) 6288 : void 0; 6289 }), 6290 (this.started = !1); 6291 }, 6292 _mouseDestroy: function () { 6293 this.element.off("." + this.widgetName), 6294 this._mouseMoveDelegate && 6295 this.document 6296 .off("mousemove." + this.widgetName, this._mouseMoveDelegate) 6297 .off("mouseup." + this.widgetName, this._mouseUpDelegate); 6298 }, 6299 _mouseDown: function (e) { 6300 if (!_) { 6301 (this._mouseMoved = !1), 6302 this._mouseStarted && this._mouseUp(e), 6303 (this._mouseDownEvent = e); 6304 var i = this, 6305 s = 1 === e.which, 6306 n = 6307 "string" == typeof this.options.cancel && e.target.nodeName 6308 ? t(e.target).closest(this.options.cancel).length 6309 : !1; 6310 return s && !n && this._mouseCapture(e) 6311 ? ((this.mouseDelayMet = !this.options.delay), 6312 this.mouseDelayMet || 6313 (this._mouseDelayTimer = setTimeout(function () { 6314 i.mouseDelayMet = !0; 6315 }, this.options.delay)), 6316 this._mouseDistanceMet(e) && 6317 this._mouseDelayMet(e) && 6318 ((this._mouseStarted = this._mouseStart(e) !== !1), 6319 !this._mouseStarted) 6320 ? (e.preventDefault(), !0) 6321 : (!0 === 6322 t.data(e.target, this.widgetName + ".preventClickEvent") && 6323 t.removeData( 6324 e.target, 6325 this.widgetName + ".preventClickEvent", 6326 ), 6327 (this._mouseMoveDelegate = function (t) { 6328 return i._mouseMove(t); 6329 }), 6330 (this._mouseUpDelegate = function (t) { 6331 return i._mouseUp(t); 6332 }), 6333 this.document 6334 .on("mousemove." + this.widgetName, this._mouseMoveDelegate) 6335 .on("mouseup." + this.widgetName, this._mouseUpDelegate), 6336 e.preventDefault(), 6337 (_ = !0), 6338 !0)) 6339 : !0; 6340 } 6341 }, 6342 _mouseMove: function (e) { 6343 if (this._mouseMoved) { 6344 if ( 6345 t.ui.ie && 6346 (!document.documentMode || 9 > document.documentMode) && 6347 !e.button 6348 ) 6349 return this._mouseUp(e); 6350 if (!e.which) 6351 if ( 6352 e.originalEvent.altKey || 6353 e.originalEvent.ctrlKey || 6354 e.originalEvent.metaKey || 6355 e.originalEvent.shiftKey 6356 ) 6357 this.ignoreMissingWhich = !0; 6358 else if (!this.ignoreMissingWhich) return this._mouseUp(e); 6359 } 6360 return ( 6361 (e.which || e.button) && (this._mouseMoved = !0), 6362 this._mouseStarted 6363 ? (this._mouseDrag(e), e.preventDefault()) 6364 : (this._mouseDistanceMet(e) && 6365 this._mouseDelayMet(e) && 6366 ((this._mouseStarted = 6367 this._mouseStart(this._mouseDownEvent, e) !== !1), 6368 this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), 6369 !this._mouseStarted) 6370 ); 6371 }, 6372 _mouseUp: function (e) { 6373 this.document 6374 .off("mousemove." + this.widgetName, this._mouseMoveDelegate) 6375 .off("mouseup." + this.widgetName, this._mouseUpDelegate), 6376 this._mouseStarted && 6377 ((this._mouseStarted = !1), 6378 e.target === this._mouseDownEvent.target && 6379 t.data(e.target, this.widgetName + ".preventClickEvent", !0), 6380 this._mouseStop(e)), 6381 this._mouseDelayTimer && 6382 (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), 6383 (this.ignoreMissingWhich = !1), 6384 (_ = !1), 6385 e.preventDefault(); 6386 }, 6387 _mouseDistanceMet: function (t) { 6388 return ( 6389 Math.max( 6390 Math.abs(this._mouseDownEvent.pageX - t.pageX), 6391 Math.abs(this._mouseDownEvent.pageY - t.pageY), 6392 ) >= this.options.distance 6393 ); 6394 }, 6395 _mouseDelayMet: function () { 6396 return this.mouseDelayMet; 6397 }, 6398 _mouseStart: function () {}, 6399 _mouseDrag: function () {}, 6400 _mouseStop: function () {}, 6401 _mouseCapture: function () { 6402 return !0; 6403 }, 6404 }), 6405 (t.ui.plugin = { 6406 add: function (e, i, s) { 6407 var n, 6408 o = t.ui[e].prototype; 6409 for (n in s) 6410 (o.plugins[n] = o.plugins[n] || []), o.plugins[n].push([i, s[n]]); 6411 }, 6412 call: function (t, e, i, s) { 6413 var n, 6414 o = t.plugins[e]; 6415 if ( 6416 o && 6417 (s || 6418 (t.element[0].parentNode && 6419 11 !== t.element[0].parentNode.nodeType)) 6420 ) 6421 for (n = 0; o.length > n; n++) 6422 t.options[o[n][0]] && o[n][1].apply(t.element, i); 6423 }, 6424 }), 6425 (t.ui.safeBlur = function (e) { 6426 e && "body" !== e.nodeName.toLowerCase() && t(e).trigger("blur"); 6427 }), 6428 t.widget("ui.draggable", t.ui.mouse, { 6429 version: "1.12.1", 6430 widgetEventPrefix: "drag", 6431 options: { 6432 addClasses: !0, 6433 appendTo: "parent", 6434 axis: !1, 6435 connectToSortable: !1, 6436 containment: !1, 6437 cursor: "auto", 6438 cursorAt: !1, 6439 grid: !1, 6440 handle: !1, 6441 helper: "original", 6442 iframeFix: !1, 6443 opacity: !1, 6444 refreshPositions: !1, 6445 revert: !1, 6446 revertDuration: 500, 6447 scope: "default", 6448 scroll: !0, 6449 scrollSensitivity: 20, 6450 scrollSpeed: 20, 6451 snap: !1, 6452 snapMode: "both", 6453 snapTolerance: 20, 6454 stack: !1, 6455 zIndex: !1, 6456 drag: null, 6457 start: null, 6458 stop: null, 6459 }, 6460 _create: function () { 6461 "original" === this.options.helper && this._setPositionRelative(), 6462 this.options.addClasses && this._addClass("ui-draggable"), 6463 this._setHandleClassName(), 6464 this._mouseInit(); 6465 }, 6466 _setOption: function (t, e) { 6467 this._super(t, e), 6468 "handle" === t && 6469 (this._removeHandleClassName(), this._setHandleClassName()); 6470 }, 6471 _destroy: function () { 6472 return (this.helper || this.element).is(".ui-draggable-dragging") 6473 ? ((this.destroyOnClear = !0), void 0) 6474 : (this._removeHandleClassName(), this._mouseDestroy(), void 0); 6475 }, 6476 _mouseCapture: function (e) { 6477 var i = this.options; 6478 return this.helper || 6479 i.disabled || 6480 t(e.target).closest(".ui-resizable-handle").length > 0 6481 ? !1 6482 : ((this.handle = this._getHandle(e)), 6483 this.handle 6484 ? (this._blurActiveElement(e), 6485 this._blockFrames(i.iframeFix === !0 ? "iframe" : i.iframeFix), 6486 !0) 6487 : !1); 6488 }, 6489 _blockFrames: function (e) { 6490 this.iframeBlocks = this.document.find(e).map(function () { 6491 var e = t(this); 6492 return t("<div>") 6493 .css("position", "absolute") 6494 .appendTo(e.parent()) 6495 .outerWidth(e.outerWidth()) 6496 .outerHeight(e.outerHeight()) 6497 .offset(e.offset())[0]; 6498 }); 6499 }, 6500 _unblockFrames: function () { 6501 this.iframeBlocks && 6502 (this.iframeBlocks.remove(), delete this.iframeBlocks); 6503 }, 6504 _blurActiveElement: function (e) { 6505 var i = t.ui.safeActiveElement(this.document[0]), 6506 s = t(e.target); 6507 s.closest(i).length || t.ui.safeBlur(i); 6508 }, 6509 _mouseStart: function (e) { 6510 var i = this.options; 6511 return ( 6512 (this.helper = this._createHelper(e)), 6513 this._addClass(this.helper, "ui-draggable-dragging"), 6514 this._cacheHelperProportions(), 6515 t.ui.ddmanager && (t.ui.ddmanager.current = this), 6516 this._cacheMargins(), 6517 (this.cssPosition = this.helper.css("position")), 6518 (this.scrollParent = this.helper.scrollParent(!0)), 6519 (this.offsetParent = this.helper.offsetParent()), 6520 (this.hasFixedAncestor = 6521 this.helper.parents().filter(function () { 6522 return "fixed" === t(this).css("position"); 6523 }).length > 0), 6524 (this.positionAbs = this.element.offset()), 6525 this._refreshOffsets(e), 6526 (this.originalPosition = this.position = 6527 this._generatePosition(e, !1)), 6528 (this.originalPageX = e.pageX), 6529 (this.originalPageY = e.pageY), 6530 i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt), 6531 this._setContainment(), 6532 this._trigger("start", e) === !1 6533 ? (this._clear(), !1) 6534 : (this._cacheHelperProportions(), 6535 t.ui.ddmanager && 6536 !i.dropBehaviour && 6537 t.ui.ddmanager.prepareOffsets(this, e), 6538 this._mouseDrag(e, !0), 6539 t.ui.ddmanager && t.ui.ddmanager.dragStart(this, e), 6540 !0) 6541 ); 6542 }, 6543 _refreshOffsets: function (t) { 6544 (this.offset = { 6545 top: this.positionAbs.top - this.margins.top, 6546 left: this.positionAbs.left - this.margins.left, 6547 scroll: !1, 6548 parent: this._getParentOffset(), 6549 relative: this._getRelativeOffset(), 6550 }), 6551 (this.offset.click = { 6552 left: t.pageX - this.offset.left, 6553 top: t.pageY - this.offset.top, 6554 }); 6555 }, 6556 _mouseDrag: function (e, i) { 6557 if ( 6558 (this.hasFixedAncestor && 6559 (this.offset.parent = this._getParentOffset()), 6560 (this.position = this._generatePosition(e, !0)), 6561 (this.positionAbs = this._convertPositionTo("absolute")), 6562 !i) 6563 ) { 6564 var s = this._uiHash(); 6565 if (this._trigger("drag", e, s) === !1) 6566 return this._mouseUp(new t.Event("mouseup", e)), !1; 6567 this.position = s.position; 6568 } 6569 return ( 6570 (this.helper[0].style.left = this.position.left + "px"), 6571 (this.helper[0].style.top = this.position.top + "px"), 6572 t.ui.ddmanager && t.ui.ddmanager.drag(this, e), 6573 !1 6574 ); 6575 }, 6576 _mouseStop: function (e) { 6577 var i = this, 6578 s = !1; 6579 return ( 6580 t.ui.ddmanager && 6581 !this.options.dropBehaviour && 6582 (s = t.ui.ddmanager.drop(this, e)), 6583 this.dropped && ((s = this.dropped), (this.dropped = !1)), 6584 ("invalid" === this.options.revert && !s) || 6585 ("valid" === this.options.revert && s) || 6586 this.options.revert === !0 || 6587 (t.isFunction(this.options.revert) && 6588 this.options.revert.call(this.element, s)) 6589 ? t(this.helper).animate( 6590 this.originalPosition, 6591 parseInt(this.options.revertDuration, 10), 6592 function () { 6593 i._trigger("stop", e) !== !1 && i._clear(); 6594 }, 6595 ) 6596 : this._trigger("stop", e) !== !1 && this._clear(), 6597 !1 6598 ); 6599 }, 6600 _mouseUp: function (e) { 6601 return ( 6602 this._unblockFrames(), 6603 t.ui.ddmanager && t.ui.ddmanager.dragStop(this, e), 6604 this.handleElement.is(e.target) && this.element.trigger("focus"), 6605 t.ui.mouse.prototype._mouseUp.call(this, e) 6606 ); 6607 }, 6608 cancel: function () { 6609 return ( 6610 this.helper.is(".ui-draggable-dragging") 6611 ? this._mouseUp(new t.Event("mouseup", { target: this.element[0] })) 6612 : this._clear(), 6613 this 6614 ); 6615 }, 6616 _getHandle: function (e) { 6617 return this.options.handle 6618 ? !!t(e.target).closest(this.element.find(this.options.handle)).length 6619 : !0; 6620 }, 6621 _setHandleClassName: function () { 6622 (this.handleElement = this.options.handle 6623 ? this.element.find(this.options.handle) 6624 : this.element), 6625 this._addClass(this.handleElement, "ui-draggable-handle"); 6626 }, 6627 _removeHandleClassName: function () { 6628 this._removeClass(this.handleElement, "ui-draggable-handle"); 6629 }, 6630 _createHelper: function (e) { 6631 var i = this.options, 6632 s = t.isFunction(i.helper), 6633 n = s 6634 ? t(i.helper.apply(this.element[0], [e])) 6635 : "clone" === i.helper 6636 ? this.element.clone().removeAttr("id") 6637 : this.element; 6638 return ( 6639 n.parents("body").length || 6640 n.appendTo( 6641 "parent" === i.appendTo ? this.element[0].parentNode : i.appendTo, 6642 ), 6643 s && n[0] === this.element[0] && this._setPositionRelative(), 6644 n[0] === this.element[0] || 6645 /(fixed|absolute)/.test(n.css("position")) || 6646 n.css("position", "absolute"), 6647 n 6648 ); 6649 }, 6650 _setPositionRelative: function () { 6651 /^(?:r|a|f)/.test(this.element.css("position")) || 6652 (this.element[0].style.position = "relative"); 6653 }, 6654 _adjustOffsetFromHelper: function (e) { 6655 "string" == typeof e && (e = e.split(" ")), 6656 t.isArray(e) && (e = { left: +e[0], top: +e[1] || 0 }), 6657 "left" in e && (this.offset.click.left = e.left + this.margins.left), 6658 "right" in e && 6659 (this.offset.click.left = 6660 this.helperProportions.width - e.right + this.margins.left), 6661 "top" in e && (this.offset.click.top = e.top + this.margins.top), 6662 "bottom" in e && 6663 (this.offset.click.top = 6664 this.helperProportions.height - e.bottom + this.margins.top); 6665 }, 6666 _isRootNode: function (t) { 6667 return /(html|body)/i.test(t.tagName) || t === this.document[0]; 6668 }, 6669 _getParentOffset: function () { 6670 var e = this.offsetParent.offset(), 6671 i = this.document[0]
6671; 6672 return ( 6673 "absolute" === this.cssPosition && 6674 this.scrollParent[0] !== i && 6675 t.contains(this.scrollParent[0], this.offsetParent[0]) && 6676 ((e.left += this.scrollParent.scrollLeft()), 6677 (e.top += this.scrollParent.scrollTop())), 6678 this._isRootNode(this.offsetParent[0]) && (e = { top: 0, left: 0 }), 6679 { 6680 top: 6681 e.top + 6682 (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), 6683 left: 6684 e.left + 6685 (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0), 6686 } 6687 ); 6688 }, 6689 _getRelativeOffset: function () { 6690 if ("relative" !== this.cssPosition) return { top: 0, left: 0 }; 6691 var t = this.element.position(), 6692 e = this._isRootNode(this.scrollParent[0]); 6693 return { 6694 top: 6695 t.top - 6696 (parseInt(this.helper.css("top"), 10) || 0) + 6697 (e ? 0 : this.scrollParent.scrollTop()), 6698 left: 6699 t.left - 6700 (parseInt(this.helper.css("left"), 10) || 0) + 6701 (e ? 0 : this.scrollParent.scrollLeft()), 6702 }; 6703 }, 6704 _cacheMargins: function () { 6705 this.margins = { 6706 left: parseInt(this.element.css("marginLeft"), 10) || 0, 6707 top: parseInt(this.element.css("marginTop"), 10) || 0, 6708 right: parseInt(this.element.css("marginRight"), 10) || 0, 6709 bottom: parseInt(this.element.css("marginBottom"), 10) || 0, 6710 }; 6711 }, 6712 _cacheHelperProportions: function () { 6713 this.helperProportions = { 6714 width: this.helper.outerWidth(), 6715 height: this.helper.outerHeight(), 6716 }; 6717 }, 6718 _setContainment: function () { 6719 var e, 6720 i, 6721 s, 6722 n = this.options, 6723 o = this.document[0]; 6724 return ( 6725 (this.relativeContainer = null), 6726 n.containment 6727 ? "window" === n.containment 6728 ? ((this.containment = [ 6729 t(window).scrollLeft() - 6730 this.offset.relative.left - 6731 this.offset.parent.left, 6732 t(window).scrollTop() - 6733 this.offset.relative.top - 6734 this.offset.parent.top, 6735 t(window).scrollLeft() + 6736 t(window).width() - 6737 this.helperProportions.width - 6738 this.margins.left, 6739 t(window).scrollTop() + 6740 (t(window).height() || o.body.parentNode.scrollHeight) - 6741 this.helperProportions.height - 6742 this.margins.top, 6743 ]), 6744 void 0) 6745 : "document" === n.containment 6746 ? ((this.containment = [ 6747 0, 6748 0, 6749 t(o).width() - 6750 this.helperProportions.width - 6751 this.margins.left, 6752 (t(o).height() || o.body.parentNode.scrollHeight) - 6753 this.helperProportions.height - 6754 this.margins.top, 6755 ]), 6756 void 0) 6757 : n.containment.constructor === Array 6758 ? ((this.containment = n.containment), void 0) 6759 : ("parent" === n.containment && 6760 (n.containment = this.helper[0].parentNode), 6761 (i = t(n.containment)), 6762 (s = i[0]), 6763 s && 6764 ((e = /(scroll|auto)/.test(i.css("overflow"))), 6765 (this.containment = [ 6766 (parseInt(i.css("borderLeftWidth"), 10) || 0) + 6767 (parseInt(i.css("paddingLeft"), 10) || 0), 6768 (parseInt(i.css("borderTopWidth"), 10) || 0) + 6769 (parseInt(i.css("paddingTop"), 10) || 0), 6770 (e 6771 ? Math.max(s.scrollWidth, s.offsetWidth) 6772 : s.offsetWidth) - 6773 (parseInt(i.css("borderRightWidth"), 10) || 0) - 6774 (parseInt(i.css("paddingRight"), 10) || 0) - 6775 this.helperProportions.width - 6776 this.margins.left - 6777 this.margins.right, 6778 (e 6779 ? Math.max(s.scrollHeight, s.offsetHeight) 6780 : s.offsetHeight) - 6781 (parseInt(i.css("borderBottomWidth"), 10) || 0) - 6782 (parseInt(i.css("paddingBottom"), 10) || 0) - 6783 this.helperProportions.height - 6784 this.margins.top - 6785 this.margins.bottom, 6786 ]), 6787 (this.relativeContainer = i)), 6788 void 0) 6789 : ((this.containment = null), void 0) 6790 ); 6791 }, 6792 _convertPositionTo: function (t, e) { 6793 e || (e = this.position); 6794 var i = "absolute" === t ? 1 : -1,
6795 s = this._isRootNode(this.scrollParent[0]); 6796 return { 6797 top: 6798 e.top + 6799 this.offset.relative.top * i + 6800 this.offset.parent.top * i - 6801 ("fixed" === this.cssPosition 6802 ? -this.offset.scroll.top 6803 : s 6804 ? 0 6805 : this.offset.scroll.top) * 6806 i, 6807 left: 6808 e.left + 6809 this.offset.relative.left * i + 6810 this.offset.parent.left * i - 6811 ("fixed" === this.cssPosition 6812 ? -this.offset.scroll.left 6813 : s 6814 ? 0 6815 : this.offset.scroll.left) * 6816 i, 6817 }; 6818 }, 6819 _generatePosition: function (t, e) { 6820 var i, 6821 s, 6822 n, 6823 o, 6824 a = this.options, 6825 r = this._isRootNode(this.scrollParent[0]), 6826 h = t.pageX, 6827 l = t.pageY; 6828 return ( 6829 (r && this.offset.scroll) || 6830 (this.offset.scroll = { 6831 top: this.scrollParent.scrollTop(), 6832 left: this.scrollParent.scrollLeft(), 6833 }), 6834 e && 6835 (this.containment && 6836 (this.relativeContainer 6837 ? ((s = this.relativeContainer.offset()), 6838 (i = [ 6839 this.containment[0] + s.left, 6840 this.containment[1] + s.top, 6841 this.containment[2] + s.left, 6842 this.containment[3] + s.top, 6843 ])) 6844 : (i = this.containment), 6845 t.pageX - this.offset.click.left < i[0] && 6846 (h = i[0] + this.offset.click.left), 6847 t.pageY - this.offset.click.top < i[1] && 6848 (l = i[1] + this.offset.click.top), 6849 t.pageX - this.offset.click.left > i[2] && 6850 (h = i[2] + this.offset.click.left), 6851 t.pageY - this.offset.click.top > i[3] && 6852 (l = i[3] + this.offset.click.top)), 6853 a.grid && 6854 ((n = a.grid[1] 6855 ? this.originalPageY + 6856 Math.round((l - this.originalPageY) / a.grid[1]) * a.grid[1] 6857 : this.originalPageY), 6858 (l = i 6859 ? n - this.offset.click.top >= i[1] || 6860 n - this.offset.click.top > i[3] 6861 ? n 6862 : n - this.offset.click.top >= i[1] 6863 ? n - a.grid[1] 6864 : n + a.grid[1] 6865 : n), 6866 (o = a.grid[0] 6867 ? this.originalPageX + 6868 Math.round((h - this.originalPageX) / a.grid[0]) * a.grid[0] 6869 : this.originalPageX), 6870 (h = i 6871 ? o - this.offset.click.left >= i[0] || 6872 o - this.offset.click.left > i[2] 6873 ? o 6874 : o - this.offset.click.left >= i[0] 6875 ? o - a.grid[0] 6876 : o + a.grid[0] 6877 : o)), 6878 "y" === a.axis && (h = this.originalPageX), 6879 "x" === a.axis && (l = this.originalPageY)), 6880 { 6881 top: 6882 l - 6883 this.offset.click.top - 6884 this.offset.relative.top - 6885 this.offset.parent.top + 6886 ("fixed" === this.cssPosition 6887 ? -this.offset.scroll.top 6888 : r 6889 ? 0 6890 : this.offset.scroll.top), 6891 left: 6892 h - 6893 this.offset.click.left - 6894 this.offset.relative.left - 6895 this.offset.parent.left + 6896 ("fixed" === this.cssPosition 6897 ? -this.offset.scroll.left 6898 : r 6899 ? 0 6900 : this.offset.scroll.left), 6901 } 6902 ); 6903 }, 6904 _clear: function () { 6905 this._removeClass(this.helper, "ui-draggable-dragging"), 6906 this.helper[0] === this.element[0] || 6907 this.cancelHelperRemoval || 6908 this.helper.remove(), 6909 (this.helper = null), 6910 (this.cancelHelperRemoval = !1), 6911 this.destroyOnClear && this.destroy(); 6912 }, 6913 _trigger: function (e, i, s) { 6914 return ( 6915 (s = s || this._uiHash()), 6916 t.ui.plugin.call(this, e, [i, s, this], !0),
6917 /^(drag|start|stop)/.test(e) && 6918 ((this.positionAbs = this._convertPositionTo("absolute")), 6919 (s.offset = this.positionAbs)), 6920 t.Widget.prototype._trigger.call(this, e, i, s) 6921 ); 6922 }, 6923 plugins: {}, 6924 _uiHash: function () { 6925 return { 6926 helper: this.helper, 6927 position: this.position, 6928 originalPosition: this.originalPosition, 6929 offset: this.positionAbs, 6930 }; 6931 }, 6932 }), 6933 t.ui.plugin.add("draggable", "connectToSortable", { 6934 start: function (e, i, s) { 6935 var n = t.extend({}, i, { item: s.element }); 6936 (s.sortables = []), 6937 t(s.options.connectToSortable).each(function () { 6938 var i = t(this).sortable("instance"); 6939 i && 6940 !i.options.disabled && 6941 (s.sortables.push(i), 6942 i.refreshPositions(), 6943 i._trigger("activate", e, n)); 6944 }); 6945 }, 6946 stop: function (e, i, s) { 6947 var n = t.extend({}, i, { item: s.element }); 6948 (s.cancelHelperRemoval = !1), 6949 t.each(s.sortables, function () { 6950 var t = this; 6951 t.isOver 6952 ? ((t.isOver = 0), 6953 (s.cancelHelperRemoval = !0), 6954 (t.cancelHelperRemoval = !1), 6955 (t._storedCSS = { 6956 position: t.placeholder.css("position"), 6957 top: t.placeholder.css("top"), 6958 left: t.placeholder.css("left"), 6959 }), 6960 t._mouseStop(e), 6961 (t.options.helper = t.options._helper)) 6962 : ((t.cancelHelperRemoval = !0), t._trigger("deactivate", e, n)); 6963 }); 6964 }, 6965 drag: function (e, i, s) { 6966 t.each(s.sortables, function () { 6967 var n = !1, 6968 o = this; 6969 (o.positionAbs = s.positionAbs), 6970 (o.helperProportions = s.helperProportions), 6971 (o.offset.click = s.offset.click), 6972 o._intersectsWith(o.containerCache) && 6973 ((n = !0), 6974 t.each(s.sortables, function () { 6975 return ( 6976 (this.positionAbs = s.positionAbs), 6977 (this.helperProportions = s.helperProportions), 6978 (this.offset.click = s.offset.click), 6979 this !== o && 6980 this._intersectsWith(this.containerCache) && 6981 t.contains(o.element[0], this.element[0]) && 6982 (n = !1), 6983 n 6984 ); 6985 })), 6986 n 6987 ? (o.isOver || 6988 ((o.isOver = 1), 6989 (s._parent = i.helper.parent()), 6990 (o.currentItem = i.helper 6991 .appendTo(o.element) 6992 .data("ui-sortable-item", !0)), 6993 (o.options._helper = o.options.helper), 6994 (o.options.helper = function () { 6995 return i.helper[0]; 6996 }), 6997 (e.target = o.currentItem[0]), 6998 o._mouseCapture(e, !0), 6999 o._mouseStart(e, !0, !0), 7000 (o.offset.click.top = s.offset.click.top), 7001 (o.offset.click.left = s.offset.click.left), 7002 (o.offset.parent.left -= 7003 s.offset.parent.left - o.offset.parent.left), 7004 (o.offset.parent.top -= 7005 s.offset.parent.top - o.offset.parent.top), 7006 s._trigger("toSortable", e), 7007 (s.dropped = o.element), 7008 t.each(s.sortables, function () { 7009 this.refreshPositions(); 7010 }), 7011 (s.currentItem = s.element), 7012 (o.fromOutside = s)), 7013 o.currentItem && (o._mouseDrag(e), (i.position = o.position))) 7014 : o.isOver && 7015 ((o.isOver = 0), 7016 (o.cancelHelperRemoval = !0), 7017 (o.options._revert = o.options.revert), 7018 (o.options.revert = !1), 7019 o._trigger("out", e, o._uiHash(o)), 7020 o._mouseStop(e, !0), 7021 (o.options.revert = o.options._revert), 7022 (o.options.helper = o.options._helper), 7023 o.placeholder && o.placeholder.remove(), 7024 i.helper.appendTo(s._parent), 7025 s._refreshOffsets(e), 7026 (i.position = s._generatePosition(e, !0)), 7027 s._trigger("fromSortable", e), 7028 (s.dropped = !1), 7029 t.each(s.sortables, function () { 7030 this.refreshPositions(); 7031 })); 7032 }); 7033 }, 7034 }), 7035 t.ui.plugin.add("draggable", "cursor", { 7036 start: function (e, i, s) { 7037 var n = t("body"), 7038 o = s.options; 7039 n.css("cursor") && (o._cursor = n.css("cursor")), 7040 n.css("cursor", o.cursor); 7041 }, 7042 stop: function (e, i, s) { 7043 var n = s.options; 7044 n._cursor && t("body").css("cursor", n._cursor); 7045 }, 7046 }), 7047 t.ui.plugin.add("draggable", "opacity", { 7048 start: function (e, i, s) { 7049 var n = t(i.helper), 7050 o = s.options;
7051 n.css("opacity") && (o._opacity = n.css("opacity")), 7052 n.css("opacity", o.opacity); 7053 }, 7054 stop: function (e, i, s) { 7055 var n = s.options; 7056 n._opacity && t(i.helper).css("opacity", n._opacity); 7057 }, 7058 }), 7059 t.ui.plugin.add("draggable", "scroll", { 7060 start: function (t, e, i) { 7061 i.scrollParentNotHidden || 7062 (i.scrollParentNotHidden = i.helper.scrollParent(!1)), 7063 i.scrollParentNotHidden[0] !== i.document[0] && 7064 "HTML" !== i.scrollParentNotHidden[0].tagName && 7065 (i.overflowOffset = i.scrollParentNotHidden.offset()); 7066 }, 7067 drag: function (e, i, s) { 7068 var n = s.options, 7069 o = !1, 7070 a = s.scrollParentNotHidden[0], 7071 r = s.document[0]; 7072 a !== r && "HTML" !== a.tagName 7073 ? ((n.axis && "x" === n.axis) || 7074 (s.overflowOffset.top + a.offsetHeight - e.pageY < 7075 n.scrollSensitivity 7076 ? (a.scrollTop = o = a.scrollTop + n.scrollSpeed) 7077 : e.pageY - s.overflowOffset.top < n.scrollSensitivity && 7078 (a.scrollTop = o = a.scrollTop - n.scrollSpeed)), 7079 (n.axis && "y" === n.axis) || 7080 (s.overflowOffset.left + a.offsetWidth - e.pageX < 7081 n.scrollSensitivity 7082 ? (a.scrollLeft = o = a.scrollLeft + n.scrollSpeed) 7083 : e.pageX - s.overflowOffset.left < n.scrollSensitivity && 7084 (a.scrollLeft = o = a.scrollLeft - n.scrollSpeed))) 7085 : ((n.axis && "x" === n.axis) || 7086 (e.pageY - t(r).scrollTop() < n.scrollSensitivity 7087 ? (o = t(r).scrollTop(t(r).scrollTop() - n.scrollSpeed)) 7088 : t(window).height() - (e.pageY - t(r).scrollTop()) < 7089 n.scrollSensitivity && 7090 (o = t(r).scrollTop(t(r).scrollTop() + n.scrollSpeed))), 7091 (n.axis && "y" === n.axis) || 7092 (e.pageX - t(r).scrollLeft() < n.scrollSensitivity 7093 ? (o = t(r).scrollLeft(t(r).scrollLeft() - n.scrollSpeed)) 7094 : t(window).width() - (e.pageX - t(r).scrollLeft()) < 7095 n.scrollSensitivity && 7096 (o = t(r).scrollLeft(t(r).scrollLeft() + n.scrollSpeed)))), 7097 o !== !1 && 7098 t.ui.ddmanager && 7099 !n.dropBehaviour && 7100 t.ui.ddmanager.prepareOffsets(s, e); 7101 }, 7102 }), 7103 t.ui.plugin.add("draggable", "snap", { 7104 start: function (e, i, s) { 7105 var n = s.options; 7106 (s.snapElements = []), 7107 t( 7108 n.snap.constructor !== String 7109 ? n.snap.items || ":data(ui-draggable)" 7110 : n.snap, 7111 ).each(function () { 7112 var e = t(this), 7113 i = e.offset(); 7114 this !== s.element[0] && 7115 s.snapElements.push({ 7116 item: this, 7117 width: e.outerWidth(), 7118 height: e.outerHeight(), 7119 top: i.top, 7120 left: i.left, 7121 }); 7122 }); 7123 }, 7124 drag: function (e, i, s) { 7125 var n, 7126 o, 7127 a, 7128 r, 7129 h, 7130 l, 7131 c, 7132 u, 7133 d, 7134 p, 7135 f = s.options, 7136 g = f.snapTolerance, 7137 m = i.offset.left, 7138 _ = m + s.helperProportions.width, 7139 v = i.offset.top, 7140 b = v + s.helperProportions.height; 7141 for (d = s.snapElements.length - 1; d >= 0; d--) 7142 (h = s.snapElements[d].left - s.margins.left), 7143 (l = h + s.snapElements[d].width), 7144 (c = s.snapElements[d].top - s.margins.top), 7145 (u = c + s.snapElements[d].height), 7146 h - g > _ || 7147 m > l + g || 7148 c - g > b || 7149 v > u + g || 7150 !t.contains( 7151 s.snapElements[d].item.ownerDocument, 7152 s.snapElements[d].item, 7153 ) 7154 ? (s.snapElements[d].snapping && 7155 s.options.snap.release && 7156 s.options.snap.release.call( 7157 s.element, 7158 e, 7159 t.extend(s._uiHash(), { snapItem: s.snapElements[d].item }), 7160 ), 7161 (s.snapElements[d].snapping = !1)) 7162 : ("inner" !== f.snapMode && 7163 ((n = g >= Math.abs(c - b)), 7164 (o = g >= Math.abs(u - v)), 7165 (a = g >= Math.abs(h - _)), 7166 (r = g >= Math.abs(l - m)), 7167 n && 7168 (i.position.top = s._convertPositionTo("relative", { 7169 top: c - s.helperProportions.height, 7170 left: 0, 7171 }).top), 7172 o && 7173 (i.position.top = s._convertPositionTo("relative", { 7174 top: u, 7175 left: 0, 7176 }).top), 7177 a && 7178 (i.position.left = s._convertPositionTo("relative", { 7179 top: 0, 7180 left: h - s.helperProportions.width, 7181 }).left), 7182 r && 7183 (i.position.left = s._convertPositionTo("relative", { 7184 top: 0, 7185 left: l, 7186 }).left)), 7187 (p = n || o || a || r), 7188 "outer" !== f.snapMode && 7189 ((n = g >= Math.abs(c - v)), 7190 (o = g >= Math.abs(u - b)), 7191 (a = g >= Math.abs(h - m)), 7192 (r = g >= Math.abs(l - _)), 7193 n && 7194 (i.position.top = s._convertPositionTo("relative", { 7195 top: c, 7196 left: 0, 7197 }).top), 7198 o && 7199 (i.position.top = s._convertPositionTo("relative", { 7200 top: u - s.helperProportions.height, 7201 left: 0, 7202 }).top), 7203 a && 7204 (i.position.left = s._convertPositionTo("relative", { 7205 top: 0, 7206 left: h, 7207 }).left), 7208 r && 7209 (i.position.left = s._convertPositionTo("relative", { 7210 top: 0, 7211 left: l - s.helperProportions.width, 7212 }).left)), 7213 !s.snapElements[d].snapping && 7214 (n || o || a || r || p) && 7215 s.options.snap.snap && 7216 s.options.snap.snap.call( 7217 s.element, 7218 e, 7219 t.extend(s._uiHash(), { snapItem: s.snapElements[d].item }), 7220 ), 7221 (s.snapElements[d].snapping = n || o || a || r || p)); 7222 }, 7223 }), 7224 t.ui.plugin.add("draggable", "stack", { 7225 start: function (e, i, s) { 7226 var n, 7227 o = s.options,
7228 a = t.makeArray(t(o.stack)).sort(function (e, i) { 7229 return ( 7230 (parseInt(t(e).css("zIndex"), 10) || 0) - 7231 (parseInt(t(i).css("zIndex"), 10) || 0) 7232 ); 7233 }); 7234 a.length && 7235 ((n = parseInt(t(a[0]).css("zIndex"), 10) || 0), 7236 t(a).each(function (e) { 7237 t(this).css("zIndex", n + e); 7238 }), 7239 this.css("zIndex", n + a.length)); 7240 }, 7241 }), 7242 t.ui.plugin.add("draggable", "zIndex", { 7243 start: function (e, i, s) { 7244 var n = t(i.helper), 7245 o = s.options; 7246 n.css("zIndex") && (o._zIndex = n.css("zIndex")), 7247 n.css("zIndex", o.zIndex); 7248 }, 7249 stop: function (e, i, s) { 7250 var n = s.options; 7251 n._zIndex && t(i.helper).css("zIndex", n._zIndex); 7252 }, 7253 }), 7254 t.ui.draggable, 7255 t.widget("ui.resizable", t.ui.mouse, { 7256 version: "1.12.1", 7257 widgetEventPrefix: "resize", 7258 options: { 7259 alsoResize: !1, 7260 animate: !1, 7261 animateDuration: "slow", 7262 animateEasing: "swing", 7263 aspectRatio: !1, 7264 autoHide: !1, 7265 classes: { "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se" }, 7266 containment: !1, 7267 ghost: !1, 7268 grid: !1, 7269 handles: "e,s,se", 7270 helper: !1, 7271 maxHeight: null, 7272 maxWidth: null, 7273 minHeight: 10, 7274 minWidth: 10, 7275 zIndex: 90, 7276 resize: null, 7277 start: null, 7278 stop: null, 7279 }, 7280 _num: function (t) { 7281 return parseFloat(t) || 0; 7282 }, 7283 _isNumber: function (t) { 7284 return !isNaN(parseFloat(t)); 7285 }, 7286 _hasScroll: function (e, i) { 7287 if ("hidden" === t(e).css("overflow")) return !1; 7288 var s = i && "left" === i ? "scrollLeft" : "scrollTop", 7289 n = !1; 7290 return e[s] > 0 ? !0 : ((e[s] = 1), (n = e[s] > 0), (e[s] = 0), n); 7291 }, 7292 _create: function () { 7293 var e, 7294 i = this.options, 7295 s = this; 7296 this._addClass("ui-resizable"), 7297 t.extend(this, { 7298 _aspectRatio: !!i.aspectRatio, 7299 aspectRatio: i.aspectRatio, 7300 originalElement: this.element, 7301 _proportionallyResizeElements: [], 7302 _helper: 7303 i.helper || i.ghost || i.animate 7304 ? i.helper || "ui-resizable-helper" 7305 : null, 7306 }), 7307 this.element[0].nodeName.match( 7308 /^(canvas|textarea|input|select|button|img)$/i, 7309 ) && 7310 (this.element.wrap( 7311 t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css( 7312 { 7313 position: this.element.css("position"), 7314 width: this.element.outerWidth(), 7315 height: this.element.outerHeight(), 7316 top: this.element.css("top"), 7317 left: this.element.css("left"), 7318 }, 7319 ), 7320 ), 7321 (this.element = this.element 7322 .parent() 7323 .data("ui-resizable", this.element.resizable("instance"))), 7324 (this.elementIsWrapper = !0), 7325 (e = { 7326 marginTop: this.originalElement.css("marginTop"), 7327 marginRight: this.originalElement.css("marginRight"), 7328 marginBottom: this.originalElement.css("marginBottom"), 7329 marginLeft: this.originalElement.css("marginLeft"), 7330 }), 7331 this.element.css(e), 7332 this.originalElement.css("margin", 0), 7333 (this.originalResizeStyle = this.originalElement.css("resize")), 7334 this.originalElement.css("resize", "none"), 7335 this._proportionallyResizeElements.push( 7336 this.originalElement.css({ 7337 position: "static", 7338 zoom: 1, 7339 display: "block", 7340 }), 7341 ), 7342 this.originalElement.css(e), 7343 this._proportionallyResize()), 7344 this._setupHandles(), 7345 i.autoHide && 7346 t(this.element) 7347 .on("mouseenter", function () { 7348 i.disabled || 7349 (s._removeClass("ui-resizable-autohide"), s._handles.show()); 7350 }) 7351 .on("mouseleave", function () { 7352 i.disabled || 7353 s.resizing || 7354 (s._addClass("ui-resizable-autohide"), s._handles.hide()); 7355 }), 7356 this._mouseInit(); 7357 }, 7358 _destroy: function () { 7359 this._mouseDestroy(); 7360 var e, 7361 i = function (e) { 7362 t(e) 7363 .removeData("resizable") 7364 .removeData("ui-resizable") 7365 .off(".resizable") 7366 .find(".ui-resizable-handle") 7367 .remove(); 7368 }; 7369 return ( 7370 this.elementIsWrapper && 7371 (i(this.element), 7372 (e = this.element), 7373 this.originalElement 7374 .css({ 7375 position: e.css("position"), 7376 width: e.outerWidth(), 7377 height: e.outerHeight(), 7378 top: e.css("top"), 7379 left: e.css("left"), 7380 }) 7381 .insertAfter(e), 7382 e.remove()), 7383 this.originalElement.css("resize", this.originalResizeStyle), 7384 i(this.originalElement), 7385 this 7386 ); 7387 }, 7388 _setOption: function (t, e) { 7389 switch ((this._super(t, e), t)) { 7390 case "handles": 7391 this._removeHandles(), this._setupHandles(); 7392 break; 7393 default: 7394 } 7395 }, 7396 _setupHandles: function () { 7397 var e, 7398 i, 7399 s, 7400 n, 7401 o, 7402 a = this.options, 7403 r = this; 7404 if ( 7405 ((this.handles = 7406 a.handles || 7407 (t(".ui-resizable-handle", this.element).length 7408 ? { 7409 n: ".ui-resizable-n", 7410 e: ".ui-resizable-e", 7411 s: ".ui-resizable-s", 7412 w: ".ui-resizable-w", 7413 se: ".ui-resizable-se", 7414 sw: ".ui-resizable-sw", 7415 ne: ".ui-resizable-ne", 7416 nw: ".ui-resizable-nw", 7417 } 7418 : "e,s,se")),
7419 (this._handles = t()), 7420 this.handles.constructor === String) 7421 ) 7422 for ( 7423 "all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), 7424 s = this.handles.split(","), 7425 this.handles = {}, 7426 i = 0; 7427 s.length > i; 7428 i++ 7429 ) 7430 (e = t.trim(s[i])), 7431 (n = "ui-resizable-" + e), 7432 (o = t("<div>")), 7433 this._addClass(o, "ui-resizable-handle " + n), 7434 o.css({ zIndex: a.zIndex }), 7435 (this.handles[e] = ".ui-resizable-" + e), 7436 this.element.append(o); 7437 (this._renderAxis = function (e) { 7438 var i, s, n, o; 7439 e = e || this.element; 7440 for (i in this.handles) 7441 this.handles[i].constructor === String 7442 ? (this.handles[i] = this.element 7443 .children(this.handles[i]) 7444 .first() 7445 .show()) 7446 : (this.handles[i].jquery || this.handles[i].nodeType) && 7447 ((this.handles[i] = t(this.handles[i])), 7448 this._on(this.handles[i], { mousedown: r._mouseDown })), 7449 this.elementIsWrapper && 7450 this.originalElement[0].nodeName.match( 7451 /^(textarea|input|select|button)$/i, 7452 ) && 7453 ((s = t(this.handles[i], this.element)), 7454 (o = /sw|ne|nw|se|n|s/.test(i) 7455 ? s.outerHeight() 7456 : s.outerWidth()), 7457 (n = [ 7458 "padding", 7459 /ne|nw|n/.test(i) 7460 ? "Top" 7461 : /se|sw|s/.test(i) 7462 ? "Bottom" 7463 : /^e$/.test(i) 7464 ? "Right" 7465 : "Left", 7466 ].join("")), 7467 e.css(n, o), 7468 this._proportionallyResize()), 7469 (this._handles = this._handles.add(this.handles[i])); 7470 }), 7471 this._renderAxis(this.element), 7472 (this._handles = this._handles.add( 7473 this.element.find(".ui-resizable-handle"), 7474 )), 7475 this._handles.disableSelection(), 7476 this._handles.on("mouseover", function () { 7477 r.resizing || 7478 (this.className && 7479 (o = this.className.match( 7480 /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i, 7481 )), 7482 (r.axis = o && o[1] ? o[1] : "se")); 7483 }), 7484 a.autoHide && 7485 (this._handles.hide(), this._addClass("ui-resizable-autohide")); 7486 }, 7487 _removeHandles: function () { 7488 this._handles.remove(); 7489 }, 7490 _mouseCapture: function (e) { 7491 var i, 7492 s, 7493 n = !1; 7494 for (i in this.handles) 7495 (s = t(this.handles[i])[0]), 7496 (s === e.target || t.contains(s, e.target)) && (n = !0); 7497 return !this.options.disabled && n; 7498 }, 7499 _mouseStart: function (e) { 7500 var i, 7501 s, 7502 n, 7503 o = this.options, 7504 a = this.element; 7505 return ( 7506 (this.resizing = !0), 7507 this._renderProxy(), 7508 (i = this._num(this.helper.css("left"))), 7509 (s = this._num(this.helper.css("top"))), 7510 o.containment && 7511 ((i += t(o.containment).scrollLeft() || 0), 7512 (s += t(o.containment).scrollTop() || 0)), 7513 (this.offset = this.helper.offset()), 7514 (this.position = { left: i, top: s }), 7515 (this.size = this._helper 7516 ? { width: this.helper.width(), height: this.helper.height() } 7517 : { width: a.width(), height: a.height() }), 7518 (this.originalSize = this._helper 7519 ? { width: a.outerWidth(), height: a.outerHeight() } 7520 : { width: a.width(), height: a.height() }), 7521 (this.sizeDiff = { 7522 width: a.outerWidth() - a.width(), 7523 height: a.outerHeight() - a.height(), 7524 }), 7525 (this.originalPosition = { left: i, top: s }), 7526 (this.originalMousePosition = { left: e.pageX, top: e.pageY }), 7527 (this.aspectRatio = 7528 "number" == typeof o.aspectRatio 7529 ? o.aspectRatio 7530 : this.originalSize.width / this.originalSize.height || 1), 7531 (n = t(".ui-resizable-" + this.axis).css("cursor")), 7532 t("body").css("cursor", "auto" === n ? this.axis + "-resize" : n), 7533 this._addClass("ui-resizable-resizing"), 7534 this._propagate("start", e),
7535 !0 7536 ); 7537 }, 7538 _mouseDrag: function (e) { 7539 var i, 7540 s, 7541 n = this.originalMousePosition, 7542 o = this.axis, 7543 a = e.pageX - n.left || 0, 7544 r = e.pageY - n.top || 0, 7545 h = this._change[o]; 7546 return ( 7547 this._updatePrevProperties(), 7548 h 7549 ? ((i = h.apply(this, [e, a, r])), 7550 this._updateVirtualBoundaries(e.shiftKey), 7551 (this._aspectRatio || e.shiftKey) && 7552 (i = this._updateRatio(i, e)), 7553 (i = this._respectSize(i, e)), 7554 this._updateCache(i), 7555 this._propagate("resize", e), 7556 (s = this._applyChanges()), 7557 !this._helper && 7558 this._proportionallyResizeElements.length && 7559 this._proportionallyResize(), 7560 t.isEmptyObject(s) || 7561 (this._updatePrevProperties(), 7562 this._trigger("resize", e, this.ui()), 7563 this._applyChanges()), 7564 !1) 7565 : !1 7566 ); 7567 }, 7568 _mouseStop: function (e) { 7569 this.resizing = !1; 7570 var i, 7571 s, 7572 n, 7573 o, 7574 a, 7575 r, 7576 h, 7577 l = this.options, 7578 c = this; 7579 return ( 7580 this._helper && 7581 ((i = this._proportionallyResizeElements), 7582 (s = i.length && /textarea/i.test(i[0].nodeName)), 7583 (n = s && this._hasScroll(i[0], "left") ? 0 : c.sizeDiff.height), 7584 (o = s ? 0 : c.sizeDiff.width), 7585 (a = { 7586 width: c.helper.width() - o, 7587 height: c.helper.height() - n, 7588 }), 7589 (r = 7590 parseFloat(c.element.css("left")) + 7591 (c.position.left - c.originalPosition.left) || null), 7592 (h = 7593 parseFloat(c.element.css("top")) + 7594 (c.position.top - c.originalPosition.top) || null), 7595 l.animate || this.element.css(t.extend(a, { top: h, left: r })), 7596 c.helper.height(c.size.height), 7597 c.helper.width(c.size.width), 7598 this._helper && !l.animate && this._proportionallyResize()), 7599 t("body").css("cursor", "auto"), 7600 this._removeClass("ui-resizable-resizing"), 7601 this._propagate("stop", e), 7602 this._helper && this.helper.remove(), 7603 !1 7604 ); 7605 }, 7606 _updatePrevProperties: function () { 7607 (this.prevPosition = { 7608 top: this.position.top, 7609 left: this.position.left, 7610 }), 7611 (this.prevSize = { 7612 width: this.size.width, 7613 height: this.size.height, 7614 }); 7615 }, 7616 _applyChanges: function () { 7617 var t = {}; 7618 return ( 7619 this.position.top !== this.prevPosition.top && 7620 (t.top = this.position.top + "px"), 7621 this.position.left !== this.prevPosition.left && 7622 (t.left = this.position.left + "px"), 7623 this.size.width !== this.prevSize.width && 7624 (t.width = this.size.width + "px"), 7625 this.size.height !== this.prevSize.height && 7626 (t.height = this.size.height + "px"), 7627 this.helper.css(t), 7628 t 7629 ); 7630 }, 7631 _updateVirtualBoundaries: function (t) { 7632 var e, 7633 i, 7634 s, 7635 n, 7636 o, 7637 a = this.options; 7638 (o = { 7639 minWidth: this._isNumber(a.minWidth) ? a.minWidth : 0, 7640 maxWidth: this._isNumber(a.maxWidth) ? a.maxWidth : 1 / 0, 7641 minHeight: this._isNumber(a.minHeight) ? a.minHeight : 0, 7642 maxHeight: this._isNumber(a.maxHeight) ? a.maxHeight : 1 / 0, 7643 }), 7644 (this._aspectRatio || t) && 7645 ((e = o.minHeight * this.aspectRatio), 7646 (s = o.minWidth / this.aspectRatio), 7647 (i = o.maxHeight * this.aspectRatio), 7648 (n = o.maxWidth / this.aspectRatio), 7649 e > o.minWidth && (o.minWidth = e), 7650 s > o.minHeight && (o.minHeight = s), 7651 o.maxWidth > i && (o.maxWidth = i), 7652 o.maxHeight > n && (o.maxHeight = n)), 7653 (this._vBoundaries = o); 7654 }, 7655 _updateCache: function (t) { 7656 (this.offset = this.helper.offset()), 7657 this._isNumber(t.left) && (this.position.left = t.left), 7658 this._isNumber(t.top) && (this.position.top = t.top), 7659 this._isNumber(t.height) && (this.size.height = t.height), 7660 this._isNumber(t.width) && (this.size.width = t.width); 7661 }, 7662 _updateRatio: function (t) { 7663 var e = this.position, 7664 i = this.size, 7665 s = this.axis; 7666 return ( 7667 this._isNumber(t.height) 7668 ? (t.width = t.height * this.aspectRatio) 7669 : this._isNumber(t.width) && 7670 (t.height = t.width / this.aspectRatio), 7671 "sw" === s && 7672 ((t.left = e.left + (i.width - t.width)), (t.top = null)), 7673 "nw" === s && 7674 ((t.top = e.top + (i.height - t.height)), 7675 (t.left = e.left + (i.width - t.width))), 7676 t 7677 ); 7678 }, 7679 _respectSize: function (t) { 7680 var e = this._vBoundaries, 7681 i = this.axis, 7682 s = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width, 7683 n = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height, 7684 o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width, 7685 a = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height, 7686 r = this.originalPosition.left + this.originalSize.width, 7687 h = this.originalPosition.top + this.originalSize.height, 7688 l = /sw|nw|w/.test(i), 7689 c = /nw|ne|n/.test(i); 7690 return ( 7691 o && (t.width = e.minWidth), 7692 a && (t.height = e.minHeight),
7693 s && (t.width = e.maxWidth), 7694 n && (t.height = e.maxHeight), 7695 o && l && (t.left = r - e.minWidth), 7696 s && l && (t.left = r - e.maxWidth), 7697 a && c && (t.top = h - e.minHeight), 7698 n && c && (t.top = h - e.maxHeight), 7699 t.width || t.height || t.left || !t.top 7700 ? t.width || t.height || t.top || !t.left || (t.left = null) 7701 : (t.top = null), 7702 t 7703 ); 7704 }, 7705 _getPaddingPlusBorderDimensions: function (t) { 7706 for ( 7707 var e = 0, 7708 i = [], 7709 s = [ 7710 t.css("borderTopWidth"), 7711 t.css("borderRightWidth"), 7712 t.css("borderBottomWidth"), 7713 t.css("borderLeftWidth"), 7714 ], 7715 n = [ 7716 t.css("paddingTop"), 7717 t.css("paddingRight"), 7718 t.css("paddingBottom"), 7719 t.css("paddingLeft"), 7720 ]; 7721 4 > e; 7722 e++ 7723 ) 7724 (i[e] = parseFloat(s[e]) || 0), (i[e] += parseFloat(n[e]) || 0); 7725 return { height: i[0] + i[2], width: i[1] + i[3] }; 7726 }, 7727 _proportionallyResize: function () { 7728 if (this._proportionallyResizeElements.length) 7729 for ( 7730 var t, e = 0, i = this.helper || this.element; 7731 this._proportionallyResizeElements.length > e; 7732 e++ 7733 ) 7734 (t = this._proportionallyResizeElements[e]), 7735 this.outerDimensions || 7736 (this.outerDimensions = 7737 this._getPaddingPlusBorderDimensions(t)), 7738 t.css({ 7739 height: i.height() - this.outerDimensions.height || 0, 7740 width: i.width() - this.outerDimensions.width || 0, 7741 }); 7742 }, 7743 _renderProxy: function () { 7744 var e = this.element, 7745 i = this.options; 7746 (this.elementOffset = e.offset()), 7747 this._helper 7748 ? ((this.helper = 7749 this.helper || t("<div style='overflow:hidden;'></div>")), 7750 this._addClass(this.helper, this._helper), 7751 this.helper.css({ 7752 width: this.element.outerWidth(), 7753 height: this.element.outerHeight(), 7754 position: "absolute", 7755 left: this.elementOffset.left + "px", 7756 top: this.elementOffset.top + "px", 7757 zIndex: ++i.zIndex, 7758 }), 7759 this.helper.appendTo("body").disableSelection()) 7760 : (this.helper = this.element); 7761 }, 7762 _change: { 7763 e: function (t, e) { 7764 return { width: this.originalSize.width + e }; 7765 }, 7766 w: function (t, e) { 7767 var i = this.originalSize, 7768 s = this.originalPosition; 7769 return { left: s.left + e, width: i.width - e }; 7770 }, 7771 n: function (t, e, i) { 7772 var s = this.originalSize, 7773 n = this.originalPosition; 7774 return { top: n.top + i, height: s.height - i }; 7775 }, 7776 s: function (t, e, i) { 7777 return { height: this.originalSize.height + i }; 7778 }, 7779 se: function (e, i, s) { 7780 return t.extend( 7781 this._change.s.apply(this, arguments), 7782 this._change.e.apply(this, [e, i, s]), 7783 ); 7784 }, 7785 sw: function (e, i, s) { 7786 return t.extend( 7787 this._change.s.apply(this, arguments), 7788 this._change.w.apply(this, [e, i, s]), 7789 ); 7790 }, 7791 ne: function (e, i, s) { 7792 return t.extend( 7793 this._change.n.apply(this, arguments), 7794 this._change.e.apply(this, [e, i, s]), 7795 ); 7796 }, 7797 nw: function (e, i, s) { 7798 return t.extend( 7799 this._change.n.apply(this, arguments), 7800 this._change.w.apply(this, [e, i, s]), 7801 ); 7802 }, 7803 }, 7804 _propagate: function (e, i) { 7805 t.ui.plugin.call(this, e, [i, this.ui()]), 7806 "resize" !== e && this._trigger(e, i, this.ui()); 7807 }, 7808 plugins: {}, 7809 ui: function () { 7810 return { 7811 originalElement: this.originalElement, 7812 element: this.element, 7813 helper: this.helper, 7814 position: this.position, 7815 size: this.size, 7816 originalSize: this.originalSize, 7817 originalPosition: this.originalPosition, 7818 }; 7819 }, 7820 }), 7821 t.ui.plugin.add("resizable", "animate", { 7822 stop: function (e) { 7823 var i = t(this).resizable("instance"), 7824 s = i.options, 7825 n = i._proportionallyResizeElements, 7826 o = n.length && /textarea/i.test(n[0].nodeName), 7827 a = o && i._hasScroll(n[0], "left") ? 0 : i.sizeDiff.height, 7828 r = o ? 0 : i.sizeDiff.width, 7829 h = { width: i.size.width - r, height: i.size.height - a }, 7830 l = 7831 parseFloat(i.element.css("left")) + 7832 (i.position.left - i.originalPosition.left) || null, 7833 c = 7834 parseFloat(i.element.css("top")) + 7835 (i.position.top - i.originalPosition.top) || null; 7836 i.element.animate(t.extend(h, c && l ? { top: c, left: l } : {}), { 7837 duration: s.animateDuration, 7838 easing: s.animateEasing, 7839 step: function () { 7840 var s = { 7841 width: parseFloat(i.element.css("width")), 7842 height: parseFloat(i.element.css("height")), 7843 top: parseFloat(i.element.css("top")), 7844 left: parseFloat(i.element.css("left")), 7845 }; 7846 n && n.length && t(n[0]).css({ width: s.width, height: s.height }), 7847 i._updateCache(s), 7848 i._propagate("resize", e); 7849 }, 7850 }); 7851 }, 7852 }), 7853 t.ui.plugin.add("resizable", "containment", { 7854 start: function () { 7855 var e, 7856 i, 7857 s, 7858 n, 7859 o, 7860 a, 7861 r, 7862 h = t(this).resizable("instance"), 7863 l = h.options, 7864 c = h.element, 7865 u = l.containment, 7866 d = 7867 u instanceof t 7868 ? u.get(0) 7869 : /parent/.test(u) 7870 ? c.parent().get(0) 7871 : u; 7872 d && 7873 ((h.containerElement = t(d)), 7874 /document/.test(u) || u === document 7875 ? ((h.containerOffset = { left: 0, top: 0 }), 7876 (h.containerPosition = { left: 0, top: 0 }), 7877 (h.parentData = { 7878 element: t(document), 7879 left: 0, 7880 top: 0, 7881 width: t(document).width(), 7882 height: 7883 t(document).height() || document.body.parentNode.scrollHeight, 7884 })) 7885 : ((e = t(d)), 7886 (i = []), 7887 t(["Top", "Right", "Left", "Bottom"]).each(function (t, s) { 7888 i[t] = h._num(e.css("padding" + s)); 7889 }), 7890 (h.containerOffset = e.offset()), 7891 (h.containerPosition = e.position()), 7892 (h.containerSize = {
7893 height: e.innerHeight() - i[3], 7894 width: e.innerWidth() - i[1], 7895 }), 7896 (s = h.containerOffset), 7897 (n = h.containerSize.height), 7898 (o = h.containerSize.width), 7899 (a = h._hasScroll(d, "left") ? d.scrollWidth : o), 7900 (r = h._hasScroll(d) ? d.scrollHeight : n), 7901 (h.parentData = { 7902 element: d, 7903 left: s.left, 7904 top: s.top, 7905 width: a, 7906 height: r, 7907 }))); 7908 }, 7909 resize: function (e) { 7910 var i, 7911 s, 7912 n, 7913 o, 7914 a = t(this).resizable("instance"), 7915 r = a.options, 7916 h = a.containerOffset, 7917 l = a.position, 7918 c = a._aspectRatio || e.shiftKey, 7919 u = { top: 0, left: 0 }, 7920 d = a.containerElement, 7921 p = !0; 7922 d[0] !== document && /static/.test(d.css("position")) && (u = h), 7923 l.left < (a._helper ? h.left : 0) && 7924 ((a.size.width = 7925 a.size.width + 7926 (a._helper 7927 ? a.position.left - h.left 7928 : a.position.left - u.left)), 7929 c && ((a.size.height = a.size.width / a.aspectRatio), (p = !1)), 7930 (a.position.left = r.helper ? h.left : 0)), 7931 l.top < (a._helper ? h.top : 0) && 7932 ((a.size.height = 7933 a.size.height + 7934 (a._helper ? a.position.top - h.top : a.position.top)), 7935 c && ((a.size.width = a.size.height * a.aspectRatio), (p = !1)), 7936 (a.position.top = a._helper ? h.top : 0)), 7937 (n = a.containerElement.get(0) === a.element.parent().get(0)), 7938 (o = /relative|absolute/.test(a.containerElement.css("position"))), 7939 n && o 7940 ? ((a.offset.left = a.parentData.left + a.position.left), 7941 (a.offset.top = a.parentData.top + a.position.top)) 7942 : ((a.offset.left = a.element.offset().left), 7943 (a.offset.top = a.element.offset().top)), 7944 (i = Math.abs( 7945 a.sizeDiff.width + 7946 (a._helper ? a.offset.left - u.left : a.offset.left - h.left), 7947 )), 7948 (s = Math.abs( 7949 a.sizeDiff.height + 7950 (a._helper ? a.offset.top - u.top : a.offset.top - h.top), 7951 )), 7952 i + a.size.width >= a.parentData.width && 7953 ((a.size.width = a.parentData.width - i), 7954 c && ((a.size.height = a.size.width / a.aspectRatio), (p = !1))), 7955 s + a.size.height >= a.parentData.height && 7956 ((a.size.height = a.parentData.height - s), 7957 c && ((a.size.width = a.size.height * a.aspectRatio), (p = !1))), 7958 p || 7959 ((a.position.left = a.prevPosition.left), 7960 (a.position.top = a.prevPosition.top), 7961 (a.size.width = a.prevSize.width), 7962 (a.size.height = a.prevSize.height)); 7963 }, 7964 stop: function () { 7965 var e = t(this).resizable("instance"), 7966 i = e.options, 7967 s = e.containerOffset, 7968 n = e.containerPosition, 7969 o = e.containerElement, 7970 a = t(e.helper), 7971 r = a.offset(), 7972 h = a.outerWidth() - e.sizeDiff.width, 7973 l = a.outerHeight() - e.sizeDiff.height; 7974 e._helper && 7975 !i.animate && 7976 /relative/.test(o.css("position")) && 7977 t(this).css({ left: r.left - n.left - s.left, width: h, height: l }), 7978 e._helper && 7979 !i.animate && 7980 /static/.test(o.css("position")) && 7981 t(this).css({ 7982 left: r.left - n.left - s.left, 7983 width: h, 7984 height: l, 7985 }); 7986 }, 7987 }), 7988 t.ui.plugin.add("resizable", "alsoResize", { 7989 start: function () { 7990 var e = t(this).resizable("instance"), 7991 i = e.options; 7992 t(i.alsoResize).each(function () { 7993 var e = t(this); 7994 e.data("ui-resizable-alsoresize", { 7995 width: parseFloat(e.width()), 7996 height: parseFloat(e.height()), 7997 left: parseFloat(e.css("left")), 7998 top: parseFloat(e.css("top")), 7999 }); 8000 }); 8001 }, 8002 resize: function (e, i) { 8003 var s = t(this).resizable("instance"), 8004 n = s.options, 8005 o = s.originalSize, 8006 a = s.originalPosition, 8007 r = { 8008 height: s.size.height - o.height || 0, 8009 width: s.size.width - o.width || 0, 8010 top: s.position.top - a.top || 0, 8011 left: s.position.left - a.left || 0, 8012 }; 8013 t(n.alsoResize).each(function () { 8014 var e = t(this), 8015 s = t(this).data("ui-resizable-alsoresize"), 8016 n = {}, 8017 o = e.parents(i.originalElement[0]).length 8018 ? ["width", "height"] 8019 : ["width", "height", "top", "left"]; 8020 t.each(o, function (t, e) { 8021 var i = (s[e] || 0) + (r[e] || 0); 8022 i && i >= 0 && (n[e] = i || null); 8023 }), 8024 e.css(n); 8025 }); 8026 }, 8027 stop: function () { 8028 t(this).removeData("ui-resizable-alsoresize"); 8029 }, 8030 }), 8031 t.ui.plugin.add("resizable", "ghost", { 8032 start: function () { 8033 var e = t(this).resizable("instance"), 8034 i = e.size; 8035 (e.ghost = e.originalElement.clone()), 8036 e.ghost.css({ 8037 opacity: 0.25, 8038 display: "block", 8039 position: "relative", 8040 height: i.height, 8041 width: i.width, 8042 margin: 0, 8043 left: 0, 8044 top: 0, 8045 }), 8046 e._addClass(e.ghost, "ui-resizable-ghost"), 8047 t.uiBackCompat !== !1 &&
8048 "string" == typeof e.options.ghost && 8049 e.ghost.addClass(this.options.ghost), 8050 e.ghost.appendTo(e.helper); 8051 }, 8052 resize: function () { 8053 var e = t(this).resizable("instance"); 8054 e.ghost && 8055 e.ghost.css({ 8056 position: "relative", 8057 height: e.size.height, 8058 width: e.size.width, 8059 }); 8060 }, 8061 stop: function () { 8062 var e = t(this).resizable("instance"); 8063 e.ghost && e.helper && e.helper.get(0).removeChild(e.ghost.get(0)); 8064 }, 8065 }), 8066 t.ui.plugin.add("resizable", "grid", { 8067 resize: function () { 8068 var e, 8069 i = t(this).resizable("instance"), 8070 s = i.options, 8071 n = i.size, 8072 o = i.originalSize, 8073 a = i.originalPosition, 8074 r = i.axis, 8075 h = "number" == typeof s.grid ? [s.grid, s.grid] : s.grid, 8076 l = h[0] || 1, 8077 c = h[1] || 1, 8078 u = Math.round((n.width - o.width) / l) * l, 8079 d = Math.round((n.height - o.height) / c) * c, 8080 p = o.width + u, 8081 f = o.height + d, 8082 g = s.maxWidth && p > s.maxWidth, 8083 m = s.maxHeight && f > s.maxHeight, 8084 _ = s.minWidth && s.minWidth > p, 8085 v = s.minHeight && s.minHeight > f; 8086 (s.grid = h), 8087 _ && (p += l), 8088 v && (f += c), 8089 g && (p -= l), 8090 m && (f -= c), 8091 /^(se|s|e)$/.test(r) 8092 ? ((i.size.width = p), (i.size.height = f)) 8093 : /^(ne)$/.test(r) 8094 ? ((i.size.width = p), 8095 (i.size.height = f), 8096 (i.position.top = a.top - d)) 8097 : /^(sw)$/.test(r) 8098 ? ((i.size.width = p), 8099 (i.size.height = f), 8100 (i.position.left = a.left - u)) 8101 : ((0 >= f - c || 0 >= p - l) && 8102 (e = i._getPaddingPlusBorderDimensions(this)), 8103 f - c > 0 8104 ? ((i.size.height = f), (i.position.top = a.top - d)) 8105 : ((f = c - e.height), 8106 (i.size.height = f), 8107 (i.position.top = a.top + o.height - f)), 8108 p - l > 0 8109 ? ((i.size.width = p), (i.position.left = a.left - u)) 8110 : ((p = l - e.width), 8111 (i.size.width = p), 8112 (i.position.left = a.left + o.width - p))); 8113 }, 8114 }), 8115 t.ui.resizable, 8116 t.widget("ui.dialog", { 8117 version: "1.12.1", 8118 options: { 8119 appendTo: "body", 8120 autoOpen: !0, 8121 buttons: [], 8122 classes: { 8123 "ui-dialog": "ui-corner-all", 8124 "ui-dialog-titlebar": "ui-corner-all", 8125 }, 8126 closeOnEscape: !0, 8127 closeText: "Close", 8128 draggable: !0, 8129 hide: null, 8130 height: "auto", 8131 maxHeight: null, 8132 maxWidth: null, 8133 minHeight: 150, 8134 minWidth: 150, 8135 modal: !1, 8136 position: { 8137 my: "center", 8138 at: "center", 8139 of: window, 8140 collision: "fit", 8141 using: function (e) { 8142 var i = t(this).css(e).offset().top; 8143 0 > i && t(this).css("top", e.top - i); 8144 }, 8145 }, 8146 resizable: !0, 8147 show: null, 8148 title: null, 8149 width: 300, 8150 beforeClose: null, 8151 close: null, 8152 drag: null, 8153 dragStart: null, 8154 dragStop: null, 8155 focus: null, 8156 open: null, 8157 resize: null, 8158 resizeStart: null, 8159 resizeStop: null, 8160 }, 8161 sizeRelatedOptions: { 8162 buttons: !0, 8163 height: !0, 8164 maxHeight: !0, 8165 maxWidth: !0, 8166 minHeight: !0, 8167 minWidth: !0, 8168 width: !0, 8169 }, 8170 resizableRelatedOptions: { 8171 maxHeight: !0, 8172 maxWidth: !0, 8173 minHeight: !0, 8174 minWidth: !0, 8175 }, 8176 _create: function () { 8177 (this.originalCss = { 8178 display: this.element[0].style.display, 8179 width: this.element[0].style.width, 8180 minHeight: this.element[0].style.minHeight, 8181 maxHeight: this.element[0].style.maxHeight, 8182 height: this.element[0].style.height, 8183 }), 8184 (this.originalPosition = { 8185 parent: this.element.parent(), 8186 index: this.element.parent().children().index(this.element), 8187 }), 8188 (this.originalTitle = this.element.attr("title")), 8189 null == this.options.title && 8190 null != this.originalTitle && 8191 (this.options.title = this.originalTitle), 8192 this.options.disabled && (this.options.disabled = !1), 8193 this._createWrapper(), 8194 this.element.show().removeAttr("title").appendTo(this.uiDialog), 8195 this._addClass("ui-dialog-content", "ui-widget-content"), 8196 this._createTitlebar(), 8197 this._createButtonPane(), 8198 this.options.draggable && t.fn.draggable && this._makeDraggable(), 8199 this.options.resizable && t.fn.resizable && this._makeResizable(), 8200 (this._isOpen = !1), 8201 this._trackFocus(); 8202 }, 8203 _init: function () { 8204 this.options.autoOpen && this.open(); 8205 }, 8206 _appendTo: function () { 8207 var e = this.options.appendTo; 8208 return e && (e.jquery || e.nodeType) 8209 ? t(e) 8210 : this.document.find(e || "body").eq(0); 8211 }, 8212 _destroy: function () { 8213 var t, 8214 e = this.originalPosition; 8215 this._untrackInstance(), 8216 this._destroyOverlay(), 8217 this.element.removeUniqueId().css(this.originalCss).detach(), 8218 this.uiDialog.remove(), 8219 this.originalTitle && this.element.attr("title", this.originalTitle), 8220 (t = e.parent.children().eq(e.index)), 8221 t.length && t[0] !== this.element[0] 8222 ? t.before(this.element) 8223 : e.parent.append(this.element); 8224 }, 8225 widget: function () { 8226 return this.uiDialog; 8227 }, 8228 disable: t.noop, 8229 enable: t.noop, 8230 close: function (e) { 8231 var i = this; 8232 this._isOpen && 8233 this._trigger("beforeClose", e) !== !1 && 8234 ((this._isOpen = !1), 8235 (this._focusedElement = null),
8236 this._destroyOverlay(), 8237 this._untrackInstance(), 8238 this.opener.filter(":focusable").trigger("focus").length || 8239 t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])), 8240 this._hide(this.uiDialog, this.options.hide, function () { 8241 i._trigger("close", e); 8242 })); 8243 }, 8244 isOpen: function () { 8245 return this._isOpen; 8246 }, 8247 moveToTop: function () { 8248 this._moveToTop(); 8249 }, 8250 _moveToTop: function (e, i) { 8251 var s = !1, 8252 n = this.uiDialog 8253 .siblings(".ui-front:visible") 8254 .map(function () { 8255 return +t(this).css("z-index"); 8256 }) 8257 .get(), 8258 o = Math.max.apply(null, n); 8259 return ( 8260 o >= +this.uiDialog.css("z-index") && 8261 (this.uiDialog.css("z-index", o + 1), (s = !0)), 8262 s && !i && this._trigger("focus", e), 8263 s 8264 ); 8265 }, 8266 open: function () { 8267 var e = this; 8268 return this._isOpen 8269 ? (this._moveToTop() && this._focusTabbable(), void 0) 8270 : ((this._isOpen = !0), 8271 (this.opener = t(t.ui.safeActiveElement(this.document[0]))), 8272 this._size(), 8273 this._position(), 8274 this._createOverlay(), 8275 this._moveToTop(null, !0), 8276 this.overlay && 8277 this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), 8278 this._show(this.uiDialog, this.options.show, function () { 8279 e._focusTabbable(), e._trigger("focus"); 8280 }), 8281 this._makeFocusTarget(), 8282 this._trigger("open"), 8283 void 0); 8284 }, 8285 _focusTabbable: function () { 8286 var t = this._focusedElement; 8287 t || (t = this.element.find("[autofocus]")), 8288 t.length || (t = this.element.find(":tabbable")), 8289 t.length || (t = this.uiDialogButtonPane.find(":tabbable")), 8290 t.length || (t = this.uiDialogTitlebarClose.filter(":tabbable")), 8291 t.length || (t = this.uiDialog), 8292 t.eq(0).trigger("focus"); 8293 }, 8294 _keepFocus: function (e) { 8295 function i() { 8296 var e = t.ui.safeActiveElement(this.document[0]), 8297 i = this.uiDialog[0] === e || t.contains(this.uiDialog[0], e); 8298 i || this._focusTabbable(); 8299 } 8300 e.preventDefault(), i.call(this), this._delay(i); 8301 }, 8302 _createWrapper: function () { 8303 (this.uiDialog = t("<div>") 8304 .hide() 8305 .attr({ tabIndex: -1, role: "dialog" }) 8306 .appendTo(this._appendTo())), 8307 this._addClass( 8308 this.uiDialog, 8309 "ui-dialog", 8310 "ui-widget ui-widget-content ui-front", 8311 ), 8312 this._on(this.uiDialog, { 8313 keydown: function (e) { 8314 if ( 8315 this.options.closeOnEscape && 8316 !e.isDefaultPrevented() && 8317 e.keyCode && 8318 e.keyCode === t.ui.keyCode.ESCAPE 8319 ) 8320 return e.preventDefault(), this.close(e), void 0; 8321 if (e.keyCode === t.ui.keyCode.TAB && !e.isDefaultPrevented()) { 8322 var i = this.uiDialog.find(":tabbable"), 8323 s = i.filter(":first"), 8324 n = i.filter(":last"); 8325 (e.target !== n[0] && e.target !== this.uiDialog[0]) || 8326 e.shiftKey 8327 ? (e.target !== s[0] && e.target !== this.uiDialog[0]) || 8328 !e.shiftKey || 8329 (this._delay(function () { 8330 n.trigger("focus"); 8331 }), 8332 e.preventDefault()) 8333 : (this._delay(function () { 8334 s.trigger("focus"); 8335 }), 8336 e.preventDefault()); 8337 } 8338 }, 8339 mousedown: function (t) { 8340 this._moveToTop(t) && this._focusTabbable(); 8341 }, 8342 }), 8343 this.element.find("[aria-describedby]").length || 8344 this.uiDialog.attr({ 8345 "aria-describedby": this.element.uniqueId().attr("id"), 8346 }); 8347 }, 8348 _createTitlebar: function () { 8349 var e; 8350 (this.uiDialogTitlebar = t("<div>")), 8351 this._addClass( 8352 this.uiDialogTitlebar, 8353 "ui-dialog-titlebar", 8354 "ui-widget-header ui-helper-clearfix", 8355 ), 8356 this._on(this.uiDialogTitlebar, { 8357 mousedown: function (e) { 8358 t(e.target).closest(".ui-dialog-titlebar-close") || 8359 this.uiDialog.trigger("focus"); 8360 }, 8361 }), 8362 (this.uiDialogTitlebarClose = t("<button type='button'></button>") 8363 .button({ 8364 label: t("<a>").text(this.options.closeText).html(), 8365 icon: "ui-icon-closethick", 8366 showLabel: !1, 8367 }) 8368 .appendTo(this.uiDialogTitlebar)), 8369 this._addClass( 8370 this.uiDialogTitlebarClose, 8371 "ui-dialog-titlebar-close", 8372 ), 8373 this._on(this.uiDialogTitlebarClose, { 8374 click: function (t) { 8375 t.preventDefault(), this.close(t); 8376 }, 8377 }), 8378 (e = t("<span>").uniqueId().prependTo(this.uiDialogTitlebar)), 8379 this._addClass(e, "ui-dialog-title"), 8380 this._title(e),
8381 this.uiDialogTitlebar.prependTo(this.uiDialog), 8382 this.uiDialog.attr({ "aria-labelledby": e.attr("id") }); 8383 }, 8384 _title: function (t) { 8385 this.options.title ? t.text(this.options.title) : t.html(" "); 8386 }, 8387 _createButtonPane: function () { 8388 (this.uiDialogButtonPane = t("<div>")), 8389 this._addClass( 8390 this.uiDialogButtonPane, 8391 "ui-dialog-buttonpane", 8392 "ui-widget-content ui-helper-clearfix", 8393 ), 8394 (this.uiButtonSet = t("<div>").appendTo(this.uiDialogButtonPane)), 8395 this._addClass(this.uiButtonSet, "ui-dialog-buttonset"), 8396 this._createButtons(); 8397 }, 8398 _createButtons: function () { 8399 var e = this, 8400 i = this.options.buttons; 8401 return ( 8402 this.uiDialogButtonPane.remove(), 8403 this.uiButtonSet.empty(), 8404 t.isEmptyObject(i) || (t.isArray(i) && !i.length) 8405 ? (this._removeClass(this.uiDialog, "ui-dialog-buttons"), void 0) 8406 : (t.each(i, function (i, s) { 8407 var n, o; 8408 (s = t.isFunction(s) ? { click: s, text: i } : s), 8409 (s = t.extend({ type: "button" }, s)), 8410 (n = s.click), 8411 (o = { 8412 icon: s.icon, 8413 iconPosition: s.iconPosition, 8414 showLabel: s.showLabel, 8415 icons: s.icons, 8416 text: s.text, 8417 }), 8418 delete s.click, 8419 delete s.icon, 8420 delete s.iconPosition, 8421 delete s.showLabel, 8422 delete s.icons, 8423 "boolean" == typeof s.text && delete s.text, 8424 t("<button></button>", s) 8425 .button(o) 8426 .appendTo(e.uiButtonSet) 8427 .on("click", function () { 8428 n.apply(e.element[0], arguments); 8429 }); 8430 }), 8431 this._addClass(this.uiDialog, "ui-dialog-buttons"), 8432 this.uiDialogButtonPane.appendTo(this.uiDialog), 8433 void 0) 8434 ); 8435 }, 8436 _makeDraggable: function () { 8437 function e(t) { 8438 return { position: t.position, offset: t.offset }; 8439 } 8440 var i = this, 8441 s = this.options; 8442 this.uiDialog.draggable({ 8443 cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", 8444 handle: ".ui-dialog-titlebar", 8445 containment: "document", 8446 start: function (s, n) { 8447 i._addClass(t(this), "ui-dialog-dragging"), 8448 i._blockFrames(), 8449 i._trigger("dragStart", s, e(n)); 8450 }, 8451 drag: function (t, s) { 8452 i._trigger("drag", t, e(s)); 8453 }, 8454 stop: function (n, o) { 8455 var a = o.offset.left - i.document.scrollLeft(), 8456 r = o.offset.top - i.document.scrollTop(); 8457 (s.position = { 8458 my: "left top", 8459 at: 8460 "left" + 8461 (a >= 0 ? "+" : "") + 8462 a + 8463 " " + 8464 "top" + 8465 (r >= 0 ? "+" : "") + 8466 r, 8467 of: i.window, 8468 }), 8469 i._removeClass(t(this), "ui-dialog-dragging"), 8470 i._unblockFrames(), 8471 i._trigger("dragStop", n, e(o)); 8472 }, 8473 }); 8474 }, 8475 _makeResizable: function () { 8476 function e(t) { 8477 return { 8478 originalPosition: t.originalPosition, 8479 originalSize: t.originalSize, 8480 position: t.position, 8481 size: t.size, 8482 }; 8483 } 8484 var i = this, 8485 s = this.options, 8486 n = s.resizable, 8487 o = this.uiDialog.css("position"), 8488 a = "string" == typeof n ? n : "n,e,s,w,se,sw,ne,nw"; 8489 this.uiDialog 8490 .resizable({ 8491 cancel: ".ui-dialog-content", 8492 containment: "document", 8493 alsoResize: this.element, 8494 maxWidth: s.maxWidth, 8495 maxHeight: s.maxHeight, 8496 minWidth: s.minWidth, 8497 minHeight: this._minHeight(), 8498 handles: a, 8499 start: function (s, n) { 8500 i._addClass(t(this), "ui-dialog-resizing"), 8501 i._blockFrames(), 8502 i._trigger("resizeStart", s, e(n)); 8503 }, 8504 resize: function (t, s) { 8505 i._trigger("resize", t, e(s)); 8506 }, 8507 stop: function (n, o) { 8508 var a = i.uiDialog.offset(), 8509 r = a.left - i.document.scrollLeft(), 8510 h = a.top - i.document.scrollTop(); 8511 (s.height = i.uiDialog.height()), 8512 (s.width = i.uiDialog.width()), 8513 (s.position = { 8514 my: "left top", 8515 at: 8516 "left" + 8517 (r >= 0 ? "+" : "") + 8518 r + 8519 " " + 8520 "top" + 8521 (h >= 0 ? "+" : "") + 8522 h, 8523 of: i.window, 8524 }), 8525 i._removeClass(t(this), "ui-dialog-resizing"), 8526 i._unblockFrames(), 8527 i._trigger("resizeStop", n, e(o)); 8528 }, 8529 }) 8530 .css("position", o); 8531 }, 8532 _trackFocus: function () { 8533 this._on(this.widget(), { 8534 focusin: function (e) { 8535 this._makeFocusTarget(), (this._focusedElement = t(e.target)); 8536 }, 8537 }); 8538 }, 8539 _makeFocusTarget: function () { 8540 this._untrackInstance(), this._trackingInstances().unshift(this); 8541 }, 8542 _untrackInstance: function () { 8543 var e = this._trackingInstances(), 8544 i = t.inArray(this, e); 8545 -1 !== i && e.splice(i, 1); 8546 }, 8547 _trackingInstances: function () { 8548 var t = this.document.data("ui-dialog-instances"); 8549 return t || ((t = []), this.document.data("ui-dialog-instances", t)), t; 8550 }, 8551 _minHeight: function () { 8552 var t = this.options; 8553 return "auto" === t.height 8554 ? t.minHeight 8555 : Math.min(t.minHeight, t.height); 8556 }, 8557 _position: function () { 8558 var t = this.uiDialog.is(":visible"); 8559 t || this.uiDialog.show(), 8560 this.uiDialog.position(this.options.position), 8561 t || this.uiDialog.hide(); 8562 }, 8563 _setOptions: function (e) { 8564 var i = this, 8565 s = !1, 8566 n = {}; 8567 t.each(e, function (t, e) { 8568 i._setOption(t, e), 8569 t in i.sizeRelatedOptions && (s = !0), 8570 t in i.resizableRelatedOptions && (n[t] = e); 8571 }), 8572 s && (this._size(), this._position()), 8573 this.uiDialog.is(":data(ui-resizable)") && 8574 this.uiDialog.resizable("option", n); 8575 }, 8576 _setOption: function (e, i) { 8577 var s, 8578 n, 8579 o = this.uiDialog; 8580 "disabled" !== e && 8581 (this._super(e, i), 8582 "appendTo" === e && this.uiDialog.appendTo(this._appendTo()), 8583 "buttons" === e && this._createButtons(), 8584 "closeText" === e && 8585 this.uiDialogTitlebarClose.button({ 8586 label: t("<a>") 8587 .text("" + this.options.closeText) 8588 .html(), 8589 }), 8590 "draggable" === e && 8591 ((s = o.is(":data(ui-draggable)")), 8592 s && !i && o.draggable("destroy"), 8593 !s && i && this._makeDraggable()), 8594 "position" === e && this._position(), 8595 "resizable" === e && 8596 ((n = o.is(":data(ui-resizable)")), 8597 n && !i && o.resizable("destroy"), 8598 n && "string" == typeof i && o.resizable("option", "handles", i), 8599 n || i === !1 || this._makeResizable()), 8600 "title" === e && 8601 this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))); 8602 }, 8603 _size: function () { 8604 var t, 8605 e, 8606 i, 8607 s = this.options; 8608 this.element 8609 .show() 8610 .css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }), 8611 s.minWidth > s.width && (s.width = s.minWidth), 8612 (t = this.uiDialog 8613 .css({ height: "auto", width: s.width }) 8614 .outerHeight()), 8615 (e = Math.max(0, s.minHeight - t)), 8616 (i = 8617 "number" == typeof s.maxHeight 8618 ? Math.max(0, s.maxHeight - t) 8619 : "none"), 8620 "auto" === s.height 8621 ? this.element.css({ minHeight: e, maxHeight: i, height: "auto" }) 8622 : this.element.height(Math.max(0, s.height - t)), 8623 this.uiDialog.is(":data(ui-resizable)") && 8624 this.uiDialog.resizable("option", "minHeight", this._minHeight()); 8625 }, 8626 _blockFrames: function () { 8627 this.iframeBlocks = this.document.find("iframe").map(function () { 8628 var e = t(this); 8629 return t("<div>") 8630 .css({ 8631 position: "absolute", 8632 width: e.outerWidth(), 8633 height: e.outerHeight(), 8634 }) 8635 .appendTo(e.parent()) 8636 .offset(e.offset())[0]; 8637 }); 8638 }, 8639 _unblockFrames: function () { 8640 this.iframeBlocks && 8641 (this.iframeBlocks.remove(), delete this.iframeBlocks); 8642 }, 8643 _allowInteraction: function (e) { 8644 return t(e.target).closest(".ui-dialog").length 8645 ? !0 8646 : !!t(e.target).closest(".ui-datepicker").length; 8647 }, 8648 _createOverlay: function () { 8649 if (this.options.modal) { 8650 var e = !0; 8651 this._delay(function () { 8652 e = !1; 8653 }), 8654 this.document.data("ui-dialog-overlays") || 8655 this._on(this.document, { 8656 focusin: function (t) { 8657 e || 8658 this._allowInteraction(t) || 8659 (t.preventDefault(), 8660 this._trackingInstances()[0]._focusTabbable()); 8661 }, 8662 }),
8663 (this.overlay = t("<div>").appendTo(this._appendTo())), 8664 this._addClass(this.overlay, null, "ui-widget-overlay ui-front"), 8665 this._on(this.overlay, { mousedown: "_keepFocus" }), 8666 this.document.data( 8667 "ui-dialog-overlays", 8668 (this.document.data("ui-dialog-overlays") || 0) + 1, 8669 ); 8670 } 8671 }, 8672 _destroyOverlay: function () { 8673 if (this.options.modal && this.overlay) { 8674 var t = this.document.data("ui-dialog-overlays") - 1; 8675 t 8676 ? this.document.data("ui-dialog-overlays", t) 8677 : (this._off(this.document, "focusin"), 8678 this.document.removeData("ui-dialog-overlays")), 8679 this.overlay.remove(), 8680 (this.overlay = null); 8681 } 8682 }, 8683 }), 8684 t.uiBackCompat !== !1 && 8685 t.widget("ui.dialog", t.ui.dialog, { 8686 options: { dialogClass: "" }, 8687 _createWrapper: function () { 8688 this._super(), this.uiDialog.addClass(this.options.dialogClass); 8689 }, 8690 _setOption: function (t, e) { 8691 "dialogClass" === t && 8692 this.uiDialog.removeClass(this.options.dialogClass).addClass(e), 8693 this._superApply(arguments); 8694 }, 8695 }), 8696 t.ui.dialog, 8697 t.widget("ui.droppable", { 8698 version: "1.12.1", 8699 widgetEventPrefix: "drop", 8700 options: { 8701 accept: "*", 8702 addClasses: !0, 8703 greedy: !1, 8704 scope: "default", 8705 tolerance: "intersect", 8706 activate: null, 8707 deactivate: null, 8708 drop: null, 8709 out: null, 8710 over: null, 8711 }, 8712 _create: function () { 8713 var e, 8714 i = this.options, 8715 s = i.accept; 8716 (this.isover = !1), 8717 (this.isout = !0), 8718 (this.accept = t.isFunction(s) 8719 ? s 8720 : function (t) { 8721 return t.is(s); 8722 }), 8723 (this.proportions = function () { 8724 return arguments.length 8725 ? ((e = arguments[0]), void 0) 8726 : e 8727 ? e 8728 : (e = { 8729 width: this.element[0].offsetWidth, 8730 height: this.element[0].offsetHeight, 8731 }); 8732 }), 8733 this._addToManager(i.scope), 8734 i.addClasses && this._addClass("ui-droppable"); 8735 }, 8736 _addToManager: function (e) { 8737 (t.ui.ddmanager.droppables[e] = t.ui.ddmanager.droppables[e] || []), 8738 t.ui.ddmanager.droppables[e].push(this); 8739 }, 8740 _splice: function (t) { 8741 for (var e = 0; t.length > e; e++) t[e] === this && t.splice(e, 1); 8742 }, 8743 _destroy: function () { 8744 var e = t.ui.ddmanager.droppables[this.options.scope]; 8745 this._splice(e); 8746 }, 8747 _setOption: function (e, i) { 8748 if ("accept" === e) 8749 this.accept = t.isFunction(i) 8750 ? i 8751 : function (t) { 8752 return t.is(i); 8753 }; 8754 else if ("scope" === e) { 8755 var s = t.ui.ddmanager.droppables[this.options.scope]; 8756 this._splice(s), this._addToManager(i); 8757 } 8758 this._super(e, i); 8759 }, 8760 _activate: function (e) { 8761 var i = t.ui.ddmanager.current; 8762 this._addActiveClass(), i && this._trigger("activate", e, this.ui(i)); 8763 }, 8764 _deactivate: function (e) { 8765 var i = t.ui.ddmanager.current; 8766 this._removeActiveClass(), 8767 i && this._trigger("deactivate", e, this.ui(i)); 8768 }, 8769 _over: function (e) { 8770 var i = t.ui.ddmanager.current; 8771 i && 8772 (i.currentItem || i.element)[0] !== this.element[0] && 8773 this.accept.call(this.element[0], i.currentItem || i.element) && 8774 (this._addHoverClass(), this._trigger("over", e, this.ui(i))); 8775 }, 8776 _out: function (e) { 8777 var i = t.ui.ddmanager.current; 8778 i && 8779 (i.currentItem || i.element)[0] !== this.element[0] && 8780 this.accept.call(this.element[0], i.currentItem || i.element) && 8781 (this._removeHoverClass(), this._trigger("out", e, this.ui(i))); 8782 }, 8783 _drop: function (e, i) { 8784 var s = i || t.ui.ddmanager.current, 8785 n = !1; 8786 return s && (s.currentItem || s.element)[0] !== this.element[0] 8787 ? (this.element 8788 .find(":data(ui-droppable)") 8789 .not(".ui-draggable-dragging") 8790 .each(function () { 8791 var i = t(this).droppable("instance"); 8792 return i.options.greedy && 8793 !i.options.disabled && 8794 i.options.scope === s.options.scope && 8795 i.accept.call(i.element[0], s.currentItem || s.element) && 8796 v( 8797 s, 8798 t.extend(i, { offset: i.element.offset() }), 8799 i.options.tolerance, 8800 e, 8801 ) 8802 ? ((n = !0), !1) 8803 : void 0; 8804 }), 8805 n 8806 ? !1 8807 : this.accept.call(this.element[0], s.currentItem || s.element) 8808 ? (this._removeActiveClass(), 8809 this._removeHoverClass(), 8810 this._trigger("drop", e, this.ui(s)), 8811 this.element) 8812 : !1) 8813 : !1; 8814 }, 8815 ui: function (t) { 8816 return { 8817 draggable: t.currentItem || t.element, 8818 helper: t.helper, 8819 position: t.position, 8820 offset: t.positionAbs, 8821 }; 8822 }, 8823 _addHoverClass: function () { 8824 this._addClass("ui-droppable-hover"); 8825 }, 8826 _removeHoverClass: function () { 8827 this._removeClass("ui-droppable-hover"); 8828 }, 8829 _addActiveClass: function () { 8830 this._addClass("ui-droppable-active"); 8831 }, 8832 _removeActiveClass: function () { 8833 this._removeClass("ui-droppable-active"); 8834 }, 8835 }); 8836 var v = (t.ui.intersect = (function () { 8837 function t(t, e, i) { 8838 return t >
8838= e && e + i > t; 8839 } 8840 return function (e, i, s, n) { 8841 if (!i.offset) return !1; 8842 var o = (e.positionAbs || e.position.absolute).left + e.margins.left, 8843 a = (e.positionAbs || e.position.absolute).top + e.margins.top, 8844 r = o + e.helperProportions.width, 8845 h = a + e.helperProportions.height, 8846 l = i.offset.left, 8847 c = i.offset.top, 8848 u = l + i.proportions().width, 8849 d = c + i.proportions().height; 8850 switch (s) { 8851 case "fit": 8852 return o >= l && u >= r && a >= c && d >= h; 8853 case "intersect": 8854 return ( 8855 o + e.helperProportions.width / 2 > l && 8856 u > r - e.helperProportions.width / 2 && 8857 a + e.helperProportions.height / 2 > c && 8858 d > h - e.helperProportions.height / 2 8859 ); 8860 case "pointer": 8861 return ( 8862 t(n.pageY, c, i.proportions().height) && 8863 t(n.pageX, l, i.proportions().width) 8864 ); 8865 case "touch": 8866 return ( 8867 ((a >= c && d >= a) || (h >= c && d >= h) || (c > a && h > d)) && 8868 ((o >= l && u >= o) || (r >= l && u >= r) || (l > o && r > u)) 8869 ); 8870 default: 8871 return !1; 8872 } 8873 }; 8874 })()); 8875 (t.ui.ddmanager = { 8876 current: null, 8877 droppables: { default: [] }, 8878 prepareOffsets: function (e, i) { 8879 var s, 8880 n, 8881 o = t.ui.ddmanager.droppables[e.options.scope] || [], 8882 a = i ? i.type : null, 8883 r = (e.currentItem || e.element).find(":data(ui-droppable)").addBack(); 8884 t: for (s = 0; o.length > s; s++) 8885 if ( 8886 !( 8887 o[s].options.disabled || 8888 (e && 8889 !o[s].accept.call(o[s].element[0], e.currentItem || e.element)) 8890 ) 8891 ) { 8892 for (n = 0; r.length > n; n++) 8893 if (r[n] === o[s].element[0]) { 8894 o[s].proportions().height = 0; 8895 continue t; 8896 } 8897 (o[s].visible = "none" !== o[s].element.css("display")), 8898 o[s].visible && 8899 ("mousedown" === a && o[s]._activate.call(o[s], i), 8900 (o[s].offset = o[s].element.offset()), 8901 o[s].proportions({ 8902 width: o[s].element[0].offsetWidth, 8903 height: o[s].element[0].offsetHeight, 8904 })); 8905 } 8906 }, 8907 drop: function (e, i) { 8908 var s = !1; 8909 return ( 8910 t.each( 8911 (t.ui.ddmanager.droppables[e.options.scope] || []).slice(), 8912 function () { 8913 this.options && 8914 (!this.options.disabled && 8915 this.visible && 8916 v(e, this, this.options.tolerance, i) && 8917 (s = this._drop.call(this, i) || s), 8918 !this.options.disabled && 8919 this.visible && 8920 this.accept.call(this.element[0], e.currentItem || e.element) && 8921 ((this.isout = !0), 8922 (this.isover = !1), 8923 this._deactivate.call(this, i))); 8924 }, 8925 ), 8926 s 8927 ); 8928 }, 8929 dragStart: function (e, i) { 8930 e.element.parentsUntil("body").on("scroll.droppable", function () { 8931 e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i); 8932 }); 8933 }, 8934 drag: function (e, i) { 8935 e.options.refreshPositions && t.ui.ddmanager.prepareOffsets(e, i), 8936 t.each(t.ui.ddmanager.droppables[e.options.scope] || [], function () { 8937 if (!this.options.disabled && !this.greedyChild && this.visible) { 8938 var s, 8939 n, 8940 o, 8941 a = v(e, this, this.options.tolerance, i), 8942 r = 8943 !a && this.isover 8944 ? "isout" 8945 : a && !this.isover 8946 ? "isover" 8947 : null; 8948 r && 8949 (this.options.greedy && 8950 ((n = this.options.scope), 8951 (o = this.element 8952 .parents(":data(ui-droppable)") 8953 .filter(function () { 8954 return t(this).droppable("instance").options.scope === n; 8955 })), 8956 o.length && 8957 ((s = t(o[0]).droppable("instance")),
8958 (s.greedyChild = "isover" === r))), 8959 s && 8960 "isover" === r && 8961 ((s.isover = !1), (s.isout = !0), s._out.call(s, i)), 8962 (this[r] = !0), 8963 (this["isout" === r ? "isover" : "isout"] = !1), 8964 this["isover" === r ? "_over" : "_out"].call(this, i), 8965 s && 8966 "isout" === r && 8967 ((s.isout = !1), (s.isover = !0), s._over.call(s, i))); 8968 } 8969 }); 8970 }, 8971 dragStop: function (e, i) { 8972 e.element.parentsUntil("body").off("scroll.droppable"), 8973 e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i); 8974 }, 8975 }), 8976 t.uiBackCompat !== !1 && 8977 t.widget("ui.droppable", t.ui.droppable, { 8978 options: { hoverClass: !1, activeClass: !1 }, 8979 _addActiveClass: function () { 8980 this._super(), 8981 this.options.activeClass && 8982 this.element.addClass(this.options.activeClass); 8983 }, 8984 _removeActiveClass: function () { 8985 this._super(), 8986 this.options.activeClass && 8987 this.element.removeClass(this.options.activeClass); 8988 }, 8989 _addHoverClass: function () { 8990 this._super(), 8991 this.options.hoverClass && 8992 this.element.addClass(this.options.hoverClass); 8993 }, 8994 _removeHoverClass: function () { 8995 this._super(), 8996 this.options.hoverClass && 8997 this.element.removeClass(this.options.hoverClass); 8998 }, 8999 }), 9000 t.ui.droppable, 9001 t.widget("ui.progressbar", { 9002 version: "1.12.1", 9003 options: { 9004 classes: { 9005 "ui-progressbar": "ui-corner-all", 9006 "ui-progressbar-value": "ui-corner-left", 9007 "ui-progressbar-complete": "ui-corner-right", 9008 }, 9009 max: 100, 9010 value: 0, 9011 change: null, 9012 complete: null, 9013 }, 9014 min: 0, 9015 _create: function () { 9016 (this.oldValue = this.options.value = this._constrainedValue()), 9017 this.element.attr({ role: "progressbar", "aria-valuemin": this.min }), 9018 this._addClass("ui-progressbar", "ui-widget ui-widget-content"), 9019 (this.valueDiv = t("<div>").appendTo(this.element)), 9020 this._addClass( 9021 this.valueDiv, 9022 "ui-progressbar-value", 9023 "ui-widget-header", 9024 ), 9025 this._refreshValue(); 9026 }, 9027 _destroy: function () { 9028 this.element.removeAttr( 9029 "role aria-valuemin aria-valuemax aria-valuenow", 9030 ), 9031 this.valueDiv.remove(); 9032 }, 9033 value: function (t) { 9034 return void 0 === t 9035 ? this.options.value 9036 : ((this.options.value = this._constrainedValue(t)), 9037 this._refreshValue(), 9038 void 0); 9039 }, 9040 _constrainedValue: function (t) { 9041 return ( 9042 void 0 === t && (t = this.options.value), 9043 (this.indeterminate = t === !1), 9044 "number" != typeof t && (t = 0), 9045 this.indeterminate 9046 ? !1 9047 : Math.min(this.options.max, Math.max(this.min, t)) 9048 ); 9049 }, 9050 _setOptions: function (t) { 9051 var e = t.value; 9052 delete t.value, 9053 this._super(t), 9054 (this.options.value = this._constrainedValue(e)), 9055 this._refreshValue(); 9056 }, 9057 _setOption: function (t, e) { 9058 "max" === t && (e = Math.max(this.min, e)), this._super(t, e); 9059 }, 9060 _setOptionDisabled: function (t) { 9061 this._super(t), 9062 this.element.attr("aria-disabled", t), 9063 this._toggleClass(null, "ui-state-disabled", !!t); 9064 }, 9065 _percentage: function () { 9066 return this.indeterminate 9067 ? 100 9068 : (100 * (this.options.value - this.min)) / 9069 (this.options.max - this.min); 9070 }, 9071 _refreshValue: function () { 9072 var e = this.options.value, 9073 i = this._percentage(); 9074 this.valueDiv 9075 .toggle(this.indeterminate || e > this.min) 9076 .width(i.toFixed(0) + "%"), 9077 this._toggleClass( 9078 this.valueDiv, 9079 "ui-progressbar-complete", 9080 null, 9081 e === this.options.max, 9082 )._toggleClass( 9083 "ui-progressbar-indeterminate", 9084 null, 9085 this.indeterminate, 9086 ), 9087 this.indeterminate 9088 ? (this.element.removeAttr("aria-valuenow"), 9089 this.overlayDiv || 9090 ((this.overlayDiv = t("<div>").appendTo(this.valueDiv)), 9091 this._addClass(this.overlayDiv, "ui-progressbar-overlay"))) 9092 : (this.element.attr({ 9093 "aria-valuemax": this.options.max, 9094 "aria-valuenow": e, 9095 }), 9096 this.overlayDiv && 9097 (this.overlayDiv.remove(), (this.overlayDiv = null))), 9098 this.oldValue !== e && ((this.oldValue = e), this._trigger("change")), 9099 e === this.options.max && this._trigger("complete"); 9100 }, 9101 }), 9102 t.widget("ui.selectable", t.ui.mouse, { 9103 version: "1.12.1", 9104 options: { 9105 appendTo: "body", 9106 autoRefresh: !0, 9107 distance: 0, 9108 filter: "*", 9109 tolerance: "touch", 9110 selected: null, 9111 selecting: null, 9112 start: null, 9113 stop: null, 9114 unselected: null, 9115 unselecting: null, 9116 }, 9117 _create: function () { 9118 var e = this; 9119 this._addClass("ui-selectable"), 9120 (this.dragged = !1), 9121 (this.refresh = function () { 9122 (e.elementPos = t(e.element[0]).offset()), 9123 (e.selectees = t(e.options.filter, e.element[0])), 9124 e._addClass(e.selectees, "ui-selectee"), 9125 e.selectees.each(function () { 9126 var i = t(this), 9127 s = i.offset(), 9128 n = { 9129 left: s.left - e.elementPos.left, 9130 top: s.top - e.elementPos.top, 9131 }; 9132 t.data(this, "selectable-item", { 9133 element: this, 9134 $element: i, 9135 left: n.left, 9136 top: n.top, 9137 right: n.left + i.outerWidth(), 9138 bottom: n.top + i.outerHeight(), 9139 startselected: !1, 9140 selected: i.hasClass("ui-selected"), 9141 selecting: i.hasClass("ui-selecting"), 9142 unselecting: i.hasClass("ui-unselecting"), 9143 }); 9144 }); 9145 }), 9146 this.refresh(), 9147 this._mouseInit(), 9148 (this.helper = t("<div>")), 9149 this._addClass(this.helper, "ui-selectable-helper"); 9150 }, 9151 _destroy: function () { 9152 this.selectees.removeData("selectable-item"), this._mouseDestroy(); 9153 }, 9154 _mouseStart: function (e) { 9155 var i = this, 9156 s = this.options; 9157 (this.opos = [e.pageX, e.pageY]), 9158 (this.elementPos = t(this.element[0]).offset()), 9159 this.options.disabled || 9160 ((this.selectees = t(s.filter, this.element[0])), 9161 this._trigger("start", e),
9162 t(s.appendTo).append(this.helper), 9163 this.helper.css({ 9164 left: e.pageX, 9165 top: e.pageY, 9166 width: 0, 9167 height: 0, 9168 }), 9169 s.autoRefresh && this.refresh(), 9170 this.selectees.filter(".ui-selected").each(function () { 9171 var s = t.data(this, "selectable-item"); 9172 (s.startselected = !0), 9173 e.metaKey || 9174 e.ctrlKey || 9175 (i._removeClass(s.$element, "ui-selected"), 9176 (s.selected = !1), 9177 i._addClass(s.$element, "ui-unselecting"), 9178 (s.unselecting = !0), 9179 i._trigger("unselecting", e, { unselecting: s.element })); 9180 }), 9181 t(e.target) 9182 .parents() 9183 .addBack() 9184 .each(function () { 9185 var s, 9186 n = t.data(this, "selectable-item"); 9187 return n 9188 ? ((s = 9189 (!e.metaKey && !e.ctrlKey) || 9190 !n.$element.hasClass("ui-selected")), 9191 i 9192 ._removeClass( 9193 n.$element, 9194 s ? "ui-unselecting" : "ui-selected", 9195 ) 9196 ._addClass( 9197 n.$element, 9198 s ? "ui-selecting" : "ui-unselecting", 9199 ), 9200 (n.unselecting = !s), 9201 (n.selecting = s), 9202 (n.selected = s), 9203 s 9204 ? i._trigger("selecting", e, { selecting: n.element }) 9205 : i._trigger("unselecting", e, { 9206 unselecting: n.element, 9207 }), 9208 !1) 9209 : void 0; 9210 })); 9211 }, 9212 _mouseDrag: function (e) { 9213 if (((this.dragged = !0), !this.options.disabled)) { 9214 var i, 9215 s = this, 9216 n = this.options, 9217 o = this.opos[0], 9218 a = this.opos[1], 9219 r = e.pageX, 9220 h = e.pageY; 9221 return ( 9222 o > r && ((i = r), (r = o), (o = i)), 9223 a > h && ((i = h), (h = a), (a = i)), 9224 this.helper.css({ left: o, top: a, width: r - o, height: h - a }), 9225 this.selectees.each(function () { 9226 var i = t.data(this, "selectable-item"), 9227 l = !1, 9228 c = {}; 9229 i && 9230 i.element !== s.element[0] && 9231 ((c.left = i.left + s.elementPos.left), 9232 (c.right = i.right + s.elementPos.left), 9233 (c.top = i.top + s.elementPos.top), 9234 (c.bottom = i.bottom + s.elementPos.top), 9235 "touch" === n.tolerance 9236 ? (l = !( 9237 c.left > r || 9238 o > c.right || 9239 c.top > h || 9240 a > c.bottom 9241 )) 9242 : "fit" === n.tolerance && 9243 (l = 9244 c.left > o && r > c.right && c.top > a && h > c.bottom), 9245 l 9246 ? (i.selected && 9247 (s._removeClass(i.$element, "ui-selected"), 9248 (i.selected = !1)), 9249 i.unselecting && 9250 (s._removeClass(i.$element, "ui-unselecting"), 9251 (i.unselecting = !1)), 9252 i.selecting || 9253 (s._addClass(i.$element, "ui-selecting"), 9254 (i.selecting = !0), 9255 s._trigger("selecting", e, { selecting: i.element }))) 9256 : (i.selecting && 9257 ((e.metaKey || e.ctrlKey) && i.startselected 9258 ? (s._removeClass(i.$element, "ui-selecting"), 9259 (i.selecting = !1), 9260 s._addClass(i.$element, "ui-selected"), 9261 (i.selected = !0)) 9262 : (s._removeClass(i.$element, "ui-selecting"), 9263 (i.selecting = !1), 9264 i.startselected && 9265 (s._addClass(i.$element, "ui-unselecting"), 9266 (i.unselecting = !0)), 9267 s._trigger("unselecting", e, { 9268 unselecting: i.element, 9269 }))), 9270 i.selected && 9271 (e.metaKey || 9272 e.ctrlKey || 9273 i.startselected || 9274 (s._removeClass(i.$element, "ui-selected"), 9275 (i.selected = !1), 9276 s._addClass(i.$element, "ui-unselecting"), 9277 (i.unselecting = !0), 9278 s._trigger("unselecting", e, { 9279 unselecting: i.element, 9280 }))))); 9281 }), 9282 !1 9283 ); 9284 } 9285 }, 9286 _mouseStop: function (e) { 9287 var i = this; 9288 return ( 9289 (this.dragged = !1), 9290 t(".ui-unselecting", this.element[0]).each(function () { 9291 var s = t.data(this, "selectable-item"); 9292 i._removeClass(s.$element, "ui-unselecting"), 9293 (s.unselecting = !1), 9294 (s.startselected = !1), 9295 i._trigger("unselected", e, { unselected: s.element }); 9296 }), 9297 t(".ui-selecting", this.element[0]).each(function () { 9298 var s = t.data(this, "selectable-item"); 9299 i 9300 ._removeClass(s.$element, "ui-selecting") 9301 ._addClass(s.$element, "ui-selected"), 9302 (s.selecting = !1), 9303 (s.selected = !0), 9304 (s.startselected = !0), 9305 i._trigger("selected", e, { selected: s.element }); 9306 }), 9307 this._trigger("stop", e), 9308 this.helper.remove(), 9309 !1 9310 ); 9311 }, 9312 }), 9313 t.widget("ui.selectmenu", [ 9314 t.ui.formResetMixin, 9315 { 9316 version: "1.12.1", 9317 defaultElement: "<select>", 9318 options: { 9319 appendTo: null, 9320 classes: { 9321 "ui-selectmenu-button-open": "ui-corner-top", 9322 "ui-selectmenu-button-closed": "ui-corner-all", 9323 }, 9324 disabled: null, 9325 icons: { button: "ui-icon-triangle-1-s" }, 9326 position: { my: "left top", at: "left bottom", collision: "none" }, 9327 width: !1, 9328 change: null, 9329 close: null, 9330 focus: null, 9331 open: null, 9332 select: null, 9333 }, 9334 _create: function () { 9335 var e = this.element.uniqueId().attr("id"); 9336 (this.ids = { element: e, button: e + "-button", menu: e + "-menu" }), 9337 this._drawButton(), 9338 this._drawMenu(), 9339 this._bindFormResetHandler(), 9340 (this._rendered = !1),
9341 (this.menuItems = t()); 9342 }, 9343 _drawButton: function () { 9344 var e, 9345 i = this, 9346 s = this._parseOption( 9347 this.element.find("option:selected"), 9348 this.element[0].selectedIndex, 9349 ); 9350 (this.labels = this.element.labels().attr("for", this.ids.button)), 9351 this._on(this.labels, { 9352 click: function (t) { 9353 this.button.focus(), t.preventDefault(); 9354 }, 9355 }), 9356 this.element.hide(), 9357 (this.button = t("<span>", { 9358 tabindex: this.options.disabled ? -1 : 0, 9359 id: this.ids.button, 9360 role: "combobox", 9361 "aria-expanded": "false", 9362 "aria-autocomplete": "list", 9363 "aria-owns": this.ids.menu, 9364 "aria-haspopup": "true", 9365 title: this.element.attr("title"), 9366 }).insertAfter(this.element)), 9367 this._addClass( 9368 this.button, 9369 "ui-selectmenu-button ui-selectmenu-button-closed", 9370 "ui-button ui-widget", 9371 ), 9372 (e = t("<span>").appendTo(this.button)), 9373 this._addClass( 9374 e, 9375 "ui-selectmenu-icon", 9376 "ui-icon " + this.options.icons.button, 9377 ), 9378 (this.buttonItem = this._renderButtonItem(s).appendTo(this.button)), 9379 this.options.width !== !1 && this._resizeButton(), 9380 this._on(this.button, this._buttonEvents), 9381 this.button.one("focusin", function () { 9382 i._rendered || i._refreshMenu(); 9383 }); 9384 }, 9385 _drawMenu: function () { 9386 var e = this; 9387 (this.menu = t("<ul>", { 9388 "aria-hidden": "true", 9389 "aria-labelledby": this.ids.button, 9390 id: this.ids.menu, 9391 })), 9392 (this.menuWrap = t("<div>").append(this.menu)), 9393 this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"), 9394 this.menuWrap.appendTo(this._appendTo()), 9395 (this.menuInstance = this.menu 9396 .menu({ 9397 classes: { "ui-menu": "ui-corner-bottom" }, 9398 role: "listbox", 9399 select: function (t, i) { 9400 t.preventDefault(), 9401 e._setSelection(), 9402 e._select(i.item.data("ui-selectmenu-item"), t); 9403 }, 9404 focus: function (t, i) { 9405 var s = i.item.data("ui-selectmenu-item"); 9406 null != e.focusIndex && 9407 s.index !== e.focusIndex && 9408 (e._trigger("focus", t, { item: s }), 9409 e.isOpen || e._select(s, t)), 9410 (e.focusIndex = s.index), 9411 e.button.attr( 9412 "aria-activedescendant", 9413 e.menuItems.eq(s.index).attr("id"), 9414 ); 9415 }, 9416 }) 9417 .menu("instance")), 9418 this.menuInstance._off(this.menu, "mouseleave"), 9419 (this.menuInstance._closeOnDocumentClick = function () { 9420 return !1; 9421 }), 9422 (this.menuInstance._isDivider = function () { 9423 return !1; 9424 }); 9425 }, 9426 refresh: function () { 9427 this._refreshMenu(), 9428 this.buttonItem.replaceWith( 9429 (this.buttonItem = this._renderButtonItem( 9430 this._getSelectedItem().data("ui-selectmenu-item") || {}, 9431 )), 9432 ), 9433 null === this.options.width && this._resizeButton(); 9434 }, 9435 _refreshMenu: function () { 9436 var t, 9437 e = this.element.find("option"); 9438 this.menu.empty(), 9439 this._parseOptions(e), 9440 this._renderMenu(this.menu, this.items), 9441 this.menuInstance.refresh(), 9442 (this.menuItems = this.menu 9443 .find("li") 9444 .not(".ui-selectmenu-optgroup") 9445 .find(".ui-menu-item-wrapper")), 9446 (this._rendered = !0), 9447 e.length && 9448 ((t = this._getSelectedItem()), 9449 this.menuInstance.focus(null, t), 9450 this._setAria(t.data("ui-selectmenu-item")), 9451 this._setOption("disabled", this.element.prop("disabled"))); 9452 }, 9453 open: function (t) { 9454 this.options.disabled || 9455 (this._rendered 9456 ? (this._removeClass( 9457 this.menu.find(".ui-state-active"), 9458 null, 9459 "ui-state-active", 9460 ), 9461 this.menuInstance.focus(null, this._getSelectedItem())) 9462 : this._refreshMenu(), 9463 this.menuItems.length && 9464 ((this.isOpen = !0), 9465 this._toggleAttr(), 9466 this._resizeMenu(), 9467 this._position(), 9468 this._on(this.document, this._documentClick), 9469 this._trigger("open", t))); 9470 }, 9471 _position: function () { 9472 this.menuWrap.position( 9473 t.extend({ of: this.button }, this.options.position), 9474 ); 9475 }, 9476 close: function (t) { 9477 this.isOpen && 9478 ((this.isOpen = !1), 9479 this._toggleAttr(), 9480 (this.range = null),
9481 this._off(this.document), 9482 this._trigger("close", t)); 9483 }, 9484 widget: function () { 9485 return this.button; 9486 }, 9487 menuWidget: function () { 9488 return this.menu; 9489 }, 9490 _renderButtonItem: function (e) { 9491 var i = t("<span>"); 9492 return ( 9493 this._setText(i, e.label), 9494 this._addClass(i, "ui-selectmenu-text"), 9495 i 9496 ); 9497 }, 9498 _renderMenu: function (e, i) { 9499 var s = this, 9500 n = ""; 9501 t.each(i, function (i, o) { 9502 var a; 9503 o.optgroup !== n && 9504 ((a = t("<li>", { text: o.optgroup })), 9505 s._addClass( 9506 a, 9507 "ui-selectmenu-optgroup", 9508 "ui-menu-divider" + 9509 (o.element.parent("optgroup").prop("disabled") 9510 ? " ui-state-disabled" 9511 : ""), 9512 ), 9513 a.appendTo(e), 9514 (n = o.optgroup)), 9515 s._renderItemData(e, o); 9516 }); 9517 }, 9518 _renderItemData: function (t, e) { 9519 return this._renderItem(t, e).data("ui-selectmenu-item", e); 9520 }, 9521 _renderItem: function (e, i) { 9522 var s = t("<li>"), 9523 n = t("<div>", { title: i.element.attr("title") }); 9524 return ( 9525 i.disabled && this._addClass(s, null, "ui-state-disabled"), 9526 this._setText(n, i.label), 9527 s.append(n).appendTo(e) 9528 ); 9529 }, 9530 _setText: function (t, e) { 9531 e ? t.text(e) : t.html(" "); 9532 }, 9533 _move: function (t, e) { 9534 var i, 9535 s, 9536 n = ".ui-menu-item"; 9537 this.isOpen 9538 ? (i = this.menuItems.eq(this.focusIndex).parent("li")) 9539 : ((i = this.menuItems 9540 .eq(this.element[0].selectedIndex) 9541 .parent("li")), 9542 (n += ":not(.ui-state-disabled)")), 9543 (s = 9544 "first" === t || "last" === t 9545 ? i["first" === t ? "prevAll" : "nextAll"](n).eq(-1) 9546 : i[t + "All"](n).eq(0)), 9547 s.length && this.menuInstance.focus(e, s); 9548 }, 9549 _getSelectedItem: function () { 9550 return this.menuItems.eq(this.element[0].selectedIndex).parent("li"); 9551 }, 9552 _toggle: function (t) { 9553 this[this.isOpen ? "close" : "open"](t); 9554 }, 9555 _setSelection: function () { 9556 var t; 9557 this.range && 9558 (window.getSelection 9559 ? ((t = window.getSelection()), 9560 t.removeAllRanges(), 9561 t.addRange(this.range)) 9562 : this.range.select(), 9563 this.button.focus()); 9564 }, 9565 _documentClick: { 9566 mousedown: function (e) { 9567 this.isOpen && 9568 (t(e.target).closest( 9569 ".ui-selectmenu-menu, #" + t.ui.escapeSelector(this.ids.button), 9570 ).length || 9571 this.close(e)); 9572 }, 9573 }, 9574 _buttonEvents: { 9575 mousedown: function () { 9576 var t; 9577 window.getSelection 9578 ? ((t = window.getSelection()), 9579 t.rangeCount && (this.range = t.getRangeAt(0))) 9580 : (this.range = document.selection.createRange()); 9581 }, 9582 click: function (t) { 9583 this._setSelection(), this._toggle(t); 9584 }, 9585 keydown: function (e) { 9586 var i = !0; 9587 switch (e.keyCode) { 9588 case t.ui.keyCode.TAB: 9589 case t.ui.keyCode.ESCAPE: 9590 this.close(e), (i = !1); 9591 break; 9592 case t.ui.keyCode.ENTER: 9593 this.isOpen && this._selectFocusedItem(e); 9594 break; 9595 case t.ui.keyCode.UP: 9596 e.altKey ? this._toggle(e) : this._move("prev", e); 9597 break; 9598 case t.ui.keyCode.DOWN: 9599 e.altKey ? this._toggle(e) : this._move("next", e); 9600 break; 9601 case t.ui.keyCode.SPACE: 9602 this.isOpen ? this._selectFocusedItem(e) : this._toggle(e); 9603 break; 9604 case t.ui.keyCode.LEFT: 9605 this._move("prev", e); 9606 break; 9607 case t.ui.keyCode.RIGHT: 9608 this._move("next", e); 9609 break; 9610 case t.ui.keyCode.HOME: 9611 case t.ui.keyCode.PAGE_UP: 9612 this._move("first", e); 9613 break; 9614 case t.ui.keyCode.END: 9615 case t.ui.keyCode.PAGE_DOWN: 9616 this._move("last", e); 9617 break; 9618 default: 9619 this.menu.trigger(e), (i = !1); 9620 } 9621 i && e.preventDefault(); 9622 }, 9623 }, 9624 _selectFocusedItem: function (t) { 9625 var e = this.menuItems.eq(this.focusIndex).parent("li"); 9626 e.hasClass("ui-state-disabled") || 9627 this._select(e.data("ui-selectmenu-item"), t); 9628 }, 9629 _select: function (t, e) { 9630 var i = this.element[0].selectedIndex; 9631 (this.element[0].selectedIndex = t.index), 9632 this.buttonItem.replaceWith( 9633 (this.buttonItem = this._renderButtonItem(t)), 9634 ), 9635 this._setAria(t), 9636 this._trigger("select", e, { item: t }), 9637 t.index !== i && this._trigger("change", e, { item: t }), 9638 this.close(e); 9639 }, 9640 _setAria: function (t) { 9641 var e = this.menuItems.eq(t.index).attr("id"); 9642 this.button.attr({ 9643 "aria-labelledby": e, 9644 "aria-activedescendant": e, 9645 }), 9646 this.menu.attr("aria-activedescendant", e); 9647 }, 9648 _setOption: function (t, e) { 9649 if ("icons" === t) { 9650 var i = this.button.find("span.ui-icon"); 9651 this._removeClass(i, null, this.options.icons.button)._addClass( 9652 i, 9653 null, 9654 e.button, 9655 ); 9656 } 9657 this._super(t, e), 9658 "appendTo" === t && this.menuWrap.appendTo(this._appendTo()), 9659 "width" === t && this._resizeButton(); 9660 }, 9661 _setOptionDisabled: function (t) { 9662 this._super(t), 9663 this.menuInstance.option("disabled", t), 9664 this.button.attr("aria-disabled", t), 9665 this._toggleClass(this.button, null, "ui-state-disabled", t), 9666 this.element.prop("disabled", t), 9667 t 9668 ? (this.button.attr("tabindex", -1), this.close()) 9669 : this.button.attr("tabindex", 0); 9670 }, 9671 _appendTo: function () { 9672 var e = this.options.appendTo; 9673 return ( 9674 e && 9675 (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), 9676 (e && e[0]) || (e = this.element.closest(".ui-front, dialog")), 9677 e.length || (e = this.document[0].body), 9678 e 9679 ); 9680 }, 9681 _toggleAttr: function () { 9682 this.button.attr("aria-expanded", this.isOpen), 9683 this._removeClass( 9684 this.button, 9685 "ui-selectmenu-button-" + (this.isOpen ? "closed" : "open"), 9686 ) 9687 ._addClass( 9688 this.button, 9689 "ui-selectmenu-button-" + (this.isOpen ? "open" : "closed"), 9690 ) 9691 ._toggleClass( 9692 this.menuWrap, 9693 "ui-selectmenu-open", 9694 null, 9695 this.isOpen, 9696 ), 9697 this.menu.attr("aria-hidden", !this.isOpen); 9698 }, 9699 _resizeButton: function () { 9700 var t = this.options.width; 9701 return t === !1 9702 ? (this.button.css("width", ""), void 0) 9703 : (null === t && 9704 ((t = this.element.show().outerWidth()), this.element.hide()), 9705 this.button.outerWidth(t), 9706 void 0); 9707 }, 9708 _resizeMenu: function () { 9709 this.menu.outerWidth( 9710 Math.max( 9711 this.button.outerWidth(), 9712 this.menu.width("").outerWidth() + 1, 9713 ), 9714 ); 9715 }, 9716 _getCreateOptions: function () { 9717 var t = this._super(); 9718 return (t.disabled = this.element.prop("disabled")), t; 9719 }, 9720 _parseOptions: function (e) { 9721 var i = this, 9722 s = []; 9723 e.each(function (e, n) { 9724 s.push(i._parseOption(t(n), e)); 9725 }), 9726 (this.items = s); 9727 }, 9728 _parseOption: function (t, e) { 9729 var i = t.parent("optgroup"); 9730 return { 9731 element: t, 9732 index: e, 9733 value: t.val(), 9734 label: t.text(), 9735 optgroup: i.attr("label") || "", 9736 disabled: i.prop("disabled") || t.prop("disabled"), 9737 }; 9738 }, 9739 _destroy: function () { 9740 this._unbindFormResetHandler(), 9741 this.menuWrap.remove(), 9742 this.button.remove(), 9743 this.element.show(), 9744 this.element.removeUniqueId(), 9745 this.labels.attr("for", this.ids.element); 9746 }, 9747 }, 9748 ]), 9749 t.widget("ui.slider", t.ui.mouse, { 9750 version: "1.12.1", 9751 widgetEventPrefix: "slide", 9752 options: { 9753 animate: !1, 9754 classes: { 9755 "ui-slider": "ui-corner-all", 9756 "ui-slider-handle": "ui-corner-all", 9757 "ui-slider-range": "ui-corner-all ui-widget-header", 9758 }, 9759 distance: 0, 9760 max: 100, 9761 min: 0, 9762 orientation: "horizontal", 9763 range: !1, 9764 step: 1, 9765 value: 0, 9766 values: null, 9767 change: null, 9768 slide: null, 9769 start: null, 9770 stop: null, 9771 }, 9772 numPages: 5, 9773 _create: function () { 9774 (this._keySliding = !1), 9775 (this._mouseSliding = !1), 9776 (this._animateOff = !0), 9777 (this._handleIndex = null),
9778 this._detectOrientation(), 9779 this._mouseInit(), 9780 this._calculateNewMax(), 9781 this._addClass( 9782 "ui-slider ui-slider-" + this.orientation, 9783 "ui-widget ui-widget-content", 9784 ), 9785 this._refresh(), 9786 (this._animateOff = !1); 9787 }, 9788 _refresh: function () { 9789 this._createRange(), 9790 this._createHandles(), 9791 this._setupEvents(), 9792 this._refreshValue(); 9793 }, 9794 _createHandles: function () { 9795 var e, 9796 i, 9797 s = this.options, 9798 n = this.element.find(".ui-slider-handle"), 9799 o = "<span tabindex='0'></span>", 9800 a = []; 9801 for ( 9802 i = (s.values && s.values.length) || 1, 9803 n.length > i && (n.slice(i).remove(), (n = n.slice(0, i))), 9804 e = n.length; 9805 i > e; 9806 e++ 9807 ) 9808 a.push(o); 9809 (this.handles = n.add(t(a.join("")).appendTo(this.element))), 9810 this._addClass(this.handles, "ui-slider-handle", "ui-state-default"), 9811 (this.handle = this.handles.eq(0)), 9812 this.handles.each(function (e) { 9813 t(this).data("ui-slider-handle-index", e).attr("tabIndex", 0); 9814 }); 9815 }, 9816 _createRange: function () { 9817 var e = this.options; 9818 e.range 9819 ? (e.range === !0 && 9820 (e.values 9821 ? e.values.length && 2 !== e.values.length 9822 ? (e.values = [e.values[0], e.values[0]]) 9823 : t.isArray(e.values) && (e.values = e.values.slice(0)) 9824 : (e.values = [this._valueMin(), this._valueMin()])), 9825 this.range && this.range.length 9826 ? (this._removeClass( 9827 this.range, 9828 "ui-slider-range-min ui-slider-range-max", 9829 ), 9830 this.range.css({ left: "", bottom: "" })) 9831 : ((this.range = t("<div>").appendTo(this.element)), 9832 this._addClass(this.range, "ui-slider-range")), 9833 ("min" === e.range || "max" === e.range) && 9834 this._addClass(this.range, "ui-slider-range-" + e.range)) 9835 : (this.range && this.range.remove(), (this.range = null)); 9836 }, 9837 _setupEvents: function () { 9838 this._off(this.handles), 9839 this._on(this.handles, this._handleEvents), 9840 this._hoverable(this.handles), 9841 this._focusable(this.handles); 9842 }, 9843 _destroy: function () { 9844 this.handles.remove(), 9845 this.range && this.range.remove(), 9846 this._mouseDestroy(); 9847 }, 9848 _mouseCapture: function (e) { 9849 var i, 9850 s, 9851 n, 9852 o, 9853 a, 9854 r, 9855 h, 9856 l, 9857 c = this, 9858 u = this.options; 9859 return u.disabled 9860 ? !1 9861 : ((this.elementSize = { 9862 width: this.element.outerWidth(), 9863 height: this.element.outerHeight(), 9864 }), 9865 (this.elementOffset = this.element.offset()), 9866 (i = { x: e.pageX, y: e.pageY }), 9867 (s = this._normValueFromMouse(i)), 9868 (n = this._valueMax() - this._valueMin() + 1), 9869 this.handles.each(function (e) { 9870 var i = Math.abs(s - c.values(e)); 9871 (n > i || 9872 (n === i && 9873 (e === c._lastChangedValue || c.values(e) === u.min))) && 9874 ((n = i), (o = t(this)), (a = e)); 9875 }), 9876 (r = this._start(e, a)), 9877 r === !1 9878 ? !1 9879 : ((this._mouseSliding = !0), 9880 (this._handleIndex = a), 9881 this._addClass(o, null, "ui-state-active"), 9882 o.trigger("focus"), 9883 (h = o.offset()), 9884 (l = !t(e.target).parents().addBack().is(".ui-slider-handle")), 9885 (this._clickOffset = l 9886 ? { left: 0, top: 0 } 9887 : { 9888 left: e.pageX - h.left - o.width() / 2, 9889 top: 9890 e.pageY - 9891 h.top - 9892 o.height() / 2 - 9893 (parseInt(o.css("borderTopWidth"), 10) || 0) - 9894 (parseInt(o.css("borderBottomWidth"), 10) || 0) + 9895 (parseInt(o.css("marginTop"), 10) || 0), 9896 }), 9897 this.handles.hasClass("ui-state-hover") || this._slide(e, a, s), 9898 (this._animateOff = !0), 9899 !0)); 9900 }, 9901 _mouseStart: function () { 9902 return !0; 9903 }, 9904 _mouseDrag: function (t) { 9905 var e = { x: t.pageX, y: t.pageY }, 9906 i = this._normValueFromMouse(e); 9907 return this._slide(t, this._handleIndex, i), !1; 9908 }, 9909 _mouseStop: function (t) { 9910 return ( 9911 this._removeClass(this.handles, null, "ui-state-active"), 9912 (this._mouseSliding = !1), 9913 this._stop(t, this._handleIndex), 9914 this._change(t, this._handleIndex), 9915 (this._handleIndex = null),
9916 (this._clickOffset = null), 9917 (this._animateOff = !1), 9918 !1 9919 ); 9920 }, 9921 _detectOrientation: function () { 9922 this.orientation = 9923 "vertical" === this.options.orientation ? "vertical" : "horizontal"; 9924 }, 9925 _normValueFromMouse: function (t) { 9926 var e, i, s, n, o; 9927 return ( 9928 "horizontal" === this.orientation 9929 ? ((e = this.elementSize.width), 9930 (i = 9931 t.x - 9932 this.elementOffset.left - 9933 (this._clickOffset ? this._clickOffset.left : 0))) 9934 : ((e = this.elementSize.height), 9935 (i = 9936 t.y - 9937 this.elementOffset.top - 9938 (this._clickOffset ? this._clickOffset.top : 0))), 9939 (s = i / e), 9940 s > 1 && (s = 1), 9941 0 > s && (s = 0), 9942 "vertical" === this.orientation && (s = 1 - s), 9943 (n = this._valueMax() - this._valueMin()), 9944 (o = this._valueMin() + s * n), 9945 this._trimAlignValue(o) 9946 ); 9947 }, 9948 _uiHash: function (t, e, i) { 9949 var s = { 9950 handle: this.handles[t], 9951 handleIndex: t, 9952 value: void 0 !== e ? e : this.value(), 9953 }; 9954 return ( 9955 this._hasMultipleValues() && 9956 ((s.value = void 0 !== e ? e : this.values(t)), 9957 (s.values = i || this.values())), 9958 s 9959 ); 9960 }, 9961 _hasMultipleValues: function () { 9962 return this.options.values && this.options.values.length; 9963 }, 9964 _start: function (t, e) { 9965 return this._trigger("start", t, this._uiHash(e)); 9966 }, 9967 _slide: function (t, e, i) { 9968 var s, 9969 n, 9970 o = this.value(), 9971 a = this.values(); 9972 this._hasMultipleValues() && 9973 ((n = this.values(e ? 0 : 1)), 9974 (o = this.values(e)), 9975 2 === this.options.values.length && 9976 this.options.range === !0 && 9977 (i = 0 === e ? Math.min(n, i) : Math.max(n, i)), 9978 (a[e] = i)), 9979 i !== o && 9980 ((s = this._trigger("slide", t, this._uiHash(e, i, a))), 9981 s !== !1 && 9982 (this._hasMultipleValues() ? this.values(e, i) : this.value(i))); 9983 }, 9984 _stop: function (t, e) { 9985 this._trigger("stop", t, this._uiHash(e)); 9986 }, 9987 _change: function (t, e) { 9988 this._keySliding || 9989 this._mouseSliding || 9990 ((this._lastChangedValue = e), 9991 this._trigger("change", t, this._uiHash(e))); 9992 }, 9993 value: function (t) { 9994 return arguments.length 9995 ? ((this.options.value = this._trimAlignValue(t)), 9996 this._refreshValue(), 9997 this._change(null, 0), 9998 void 0) 9999 : this._value(); 10000 }, 10001 values: function (e, i) { 10002 var s, n, o; 10003 if (arguments.length > 1) 10004 return ( 10005 (this.options.values[e] = this._trimAlignValue(i)), 10006 this._refreshValue(), 10007 this._change(null, e), 10008 void 0 10009 ); 10010 if (!arguments.length) return this._values(); 10011 if (!t.isArray(arguments[0])) 10012 return this._hasMultipleValues() ? this._values(e) : this.value(); 10013 for ( 10014 s = this.options.values, n = arguments[0], o = 0; 10015 s.length > o; 10016 o += 1 10017 ) 10018 (s[o] = this._trimAlignValue(n[o])), this._change(null, o); 10019 this._refreshValue(); 10020 }, 10021 _setOption: function (e, i) { 10022 var s, 10023 n = 0; 10024 switch ( 10025 ("range" === e && 10026 this.options.range === !0 && 10027 ("min" === i 10028 ? ((this.options.value = this._values(0)), 10029 (this.options.values = null)) 10030 : "max" === i && 10031 ((this.options.value = this._values( 10032 this.options.values.length - 1, 10033 )), 10034 (this.options.values = null))), 10035 t.isArray(this.options.values) && (n = this.options.values.length), 10036 this._super(e, i), 10037 e) 10038 ) { 10039 case "orientation": 10040 this._detectOrientation(), 10041 this._removeClass( 10042 "ui-slider-horizontal ui-slider-vertical", 10043 )._addClass("ui-slider-" + this.orientation), 10044 this._refreshValue(), 10045 this.options.range && this._refreshRange(i), 10046 this.handles.css("horizontal" === i ? "bottom" : "left", ""); 10047 break; 10048 case "value": 10049 (this._animateOff = !0), 10050 this._refreshValue(), 10051 this._change(null, 0), 10052 (this._animateOff = !1); 10053 break; 10054 case "values": 10055 for ( 10056 this._animateOff = !0, this._refreshValue(), s = n - 1; 10057 s >= 0; 10058 s-- 10059 ) 10060 this._change(null, s); 10061 this._animateOff = !1; 10062 break; 10063 case "step": 10064 case "min": 10065 case "max": 10066 (this._animateOff = !0), 10067 this._calculateNewMax(), 10068 this._refreshValue(), 10069 (this._animateOff = !1); 10070 break; 10071 case "range": 10072 (this._animateOff = !0), this._refresh(), (this._animateOff = !1); 10073 } 10074 }, 10075 _setOptionDisabled: function (t) { 10076 this._super(t), this._toggleClass(null, "ui-state-disabled", !!t); 10077 }, 10078 _value: function () { 10079 var t = this.options.value; 10080 return (t = this._trimAlignValue(t)); 10081 }, 10082 _values: function (t) { 10083 var e, i, s; 10084 if (arguments.length) 10085 return (e = this.options.values[t]), (e = this._trimAlignValue(e)); 10086 if (this._hasMultipleValues()) { 10087 for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) 10088 i[s] = this._trimAlignValue(i[s]); 10089 return i; 10090 } 10091 return []; 10092 }, 10093 _trimAlignValue: function (t) { 10094 if (this._valueMin() >= t) return this._valueMin(); 10095 if (t >= this._valueMax()) return this._valueMax(); 10096 var e = this.options.step > 0 ? this.options.step : 1, 10097 i = (t - this._valueMin()) % e, 10098 s = t - i; 10099 return ( 10100 2 * Math.abs(i) >= e && (s += i > 0 ? e : -e), 10101 parseFloat(s.toFixed(5)) 10102 ); 10103 }, 10104 _calculateNewMax: function () { 10105 var t = this.options.max, 10106 e = this._valueMin(), 10107 i = this.options.step, 10108 s = Math.round((t - e) / i) * i; 10109 (t = s + e), 10110 t > this.options.max && (t -= i), 10111 (this.max = parseFloat(t.toFixed(this._precision()))); 10112 }, 10113 _precision: function () { 10114 var t = this._precisionOf(this.options.step); 10115 return ( 10116 null !== this.options.min && 10117 (t = Math.max(t, this._precisionOf(this.options.min))), 10118 t 10119 ); 10120 }, 10121 _precisionOf: function (t) { 10122 var e = "" + t, 10123 i = e.indexOf("."); 10124 return -1 === i ? 0 : e.length - i - 1; 10125 }, 10126 _valueMin: function () { 10127 return this.options.min; 10128 }, 10129 _valueMax: function () { 10130 return this.max; 10131 }, 10132 _refreshRange: function (t) { 10133 "vertical" === t && this.range.css({ width: "", left: "" }), 10134 "horizontal" === t && this.range.css({ height: "", bottom: "" }); 10135 }, 10136 _refreshValue: function () { 10137 var e, 10138 i, 10139 s, 10140 n, 10141 o, 10142 a = this.options.range, 10143 r = this.options, 10144 h = this, 10145 l = this._animateOff ? !1 : r.animate, 10146 c = {}; 10147 this._hasMultipleValues() 10148 ? this.handles.each(function (s) { 10149 (i = 10150 100 * 10151 ((h.values(s) - h._valueMin()) / 10152 (h._valueMax() - h._valueMin()))), 10153 (c["horizontal" === h.orientation ? "left" : "bottom"] = 10154 i + "%"), 10155 t(this).stop(1, 1)[l ? "animate" : "css"](c, r.animate), 10156 h.options.range === !0 && 10157 ("horizontal" === h.orientation 10158 ? (0 === s && 10159 h.range 10160 .stop(1, 1) 10161 [l ? "animate" : "css"]({ left: i + "%" }, r.animate), 10162 1 === s && 10163 h.range[l ? "animate" : "css"]( 10164 { width: i - e + "%" }, 10165 { queue: !1, duration: r.animate }, 10166 )) 10167 : (0 === s && 10168 h.range 10169 .stop(1, 1) 10170 [ 10171 l ? "animate" : "css" 10172 ]({ bottom: i + "%" }, r.animate), 10173 1 === s && 10174 h.range[l ? "animate" : "css"]( 10175 { height: i - e + "%" }, 10176 { queue: !1, duration: r.animate }, 10177 ))), 10178 (e = i); 10179 }) 10180 : ((s = this.value()), 10181 (n = this._valueMin()), 10182 (o = this._valueMax()), 10183 (i = o !== n ? 100 * ((s - n) / (o - n)) : 0), 10184 (c["horizontal" === this.orientation ? "left" : "bottom"] = 10185 i + "%"), 10186 this.handle.stop(1, 1)[l ? "animate" : "css"](c, r.animate), 10187 "min" === a && 10188 "horizontal" === this.orientation && 10189 this.range 10190 .stop(1, 1) 10191 [l ? "animate" : "css"]({ width: i + "%" }, r.animate), 10192 "max" === a && 10193 "horizontal" === this.orientation && 10194 this.range 10195 .stop(1, 1) 10196 [l ? "animate" : "css"]({ width: 100 - i + "%" }, r.animate), 10197 "min" === a && 10198 "vertical" === this.orientation && 10199 this.range 10200 .stop(1, 1) 10201 [l ? "animate" : "css"]({ height: i + "%" }, r.animate), 10202 "max" === a && 10203 "vertical" === this.orientation && 10204 this.range 10205 .stop(1, 1) 10206 [l ? "animate" : "css"]({ height: 100 - i + "%" }, r.animate)); 10207 }, 10208 _handleEvents: { 10209 keydown: function (e) { 10210 var i, 10211 s, 10212 n, 10213 o, 10214 a = t(e.target).data("ui-slider-handle-index"); 10215 switch (e.keyCode) { 10216 case t.ui.keyCode.HOME: 10217 case t.ui.keyCode.END: 10218 case t.ui.keyCode.PAGE_UP: 10219 case t.ui.keyCode.PAGE_DOWN: 10220 case t.ui.keyCode.UP: 10221 case t.ui.keyCode.RIGHT: 10222 case t.ui.keyCode.DOWN: 10223 case t.ui.keyCode.LEFT: 10224 if ( 10225 (e.preventDefault(), 10226 !this._keySliding && 10227 ((this._keySliding = !0), 10228 this._addClass(t(e.target), null, "ui-state-active"), 10229 (i = this._start(e, a)), 10230 i === !1)) 10231 ) 10232 return; 10233 } 10234 switch ( 10235 ((o = this.options.step), 10236 (s = n = this._hasMultipleValues() ? this.values(a) : this.value()), 10237 e.keyCode) 10238 ) { 10239 case t.ui.keyCode.HOME: 10240 n = this._valueMin(); 10241 break; 10242 case t.ui.keyCode.END: 10243 n = this._valueMax(); 10244 break; 10245 case t.ui.keyCode.PAGE_UP: 10246 n = this._trimAlignValue( 10247 s + (this._valueMax() - this._valueMin()) / this.numPages, 10248 ); 10249 break; 10250 case t.ui.keyCode.PAGE_DOWN: 10251 n = this._trimAlignValue( 10252 s - (this._valueMax() - this._valueMin()) / this.numPages, 10253 ); 10254 break; 10255 case t.ui.keyCode.UP: 10256 case t.ui.keyCode.RIGHT: 10257 if (s === this._valueMax()) return; 10258 n = this._trimAlignValue(s + o); 10259 break; 10260 case t.ui.keyCode.DOWN: 10261 case t.ui.keyCode.LEFT: 10262 if (s === this._valueMin()) return; 10263 n = this._trimAlignValue(s - o); 10264 } 10265 this._slide(e, a, n); 10266 }, 10267 keyup: function (e) { 10268 var i = t(e.target).data("ui-slider-handle-index"); 10269 this._keySliding && 10270 ((this._keySliding = !1), 10271 this._stop(e, i), 10272 this._change(e, i), 10273 this._removeClass(t(e.target), null, "ui-state-active")); 10274 }, 10275 }, 10276 }), 10277 t.widget("ui.sortable", t.ui.mouse, { 10278 version: "1.12.1", 10279 widgetEventPrefix: "sort", 10280 ready: !1, 10281 options: { 10282 appendTo: "parent", 10283 axis: !1, 10284 connectWith: !1, 10285 containment: !1, 10286 cursor: "auto", 10287 cursorAt: !1, 10288 dropOnEmpty: !0, 10289 forcePlaceholderSize: !1, 10290 forceHelperSize: !1, 10291 grid: !1, 10292 handle: !1, 10293 helper: "original", 10294 items: "> *", 10295 opacity: !1, 10296 placeholder: !1, 10297 revert: !1, 10298 scroll: !0, 10299 scrollSensitivity: 20, 10300 scrollSpeed: 20, 10301 scope: "default", 10302 tolerance: "intersect", 10303 zIndex: 1e3, 10304 activate: null, 10305 beforeStop: null, 10306 change: null, 10307 deactivate: null, 10308 out: null, 10309 over: null, 10310 receive: null, 10311 remove: null, 10312 sort: null, 10313 start: null, 10314 stop: null, 10315 update: null, 10316 }, 10317 _isOverAxis: function (t, e, i) { 10318 return t >
10318= e && e + i > t; 10319 }, 10320 _isFloating: function (t) { 10321 return ( 10322 /left|right/.test(t.css("float")) || 10323 /inline|table-cell/.test(t.css("display")) 10324 ); 10325 }, 10326 _create: function () { 10327 (this.containerCache = {}), 10328 this._addClass("ui-sortable"), 10329 this.refresh(), 10330 (this.offset = this.element.offset()), 10331 this._mouseInit(), 10332 this._setHandleClassName(), 10333 (this.ready = !0); 10334 }, 10335 _setOption: function (t, e) { 10336 this._super(t, e), "handle" === t && this._setHandleClassName(); 10337 }, 10338 _setHandleClassName: function () { 10339 var e = this; 10340 this._removeClass( 10341 this.element.find(".ui-sortable-handle"), 10342 "ui-sortable-handle", 10343 ), 10344 t.each(this.items, function () { 10345 e._addClass( 10346 this.instance.options.handle 10347 ? this.item.find(this.instance.options.handle) 10348 : this.item, 10349 "ui-sortable-handle", 10350 ); 10351 }); 10352 }, 10353 _destroy: function () { 10354 this._mouseDestroy(); 10355 for (var t = this.items.length - 1; t >= 0; t--) 10356 this.items[t].item.removeData(this.widgetName + "-item"); 10357 return this; 10358 }, 10359 _mouseCapture: function (e, i) { 10360 var s = null, 10361 n = !1, 10362 o = this; 10363 return this.reverting 10364 ? !1 10365 : this.options.disabled || "static" === this.options.type 10366 ? !1 10367 : (this._refreshItems(e), 10368 t(e.target) 10369 .parents() 10370 .each(function () { 10371 return t.data(this, o.widgetName + "-item") === o 10372 ? ((s = t(this)), !1) 10373 : void 0; 10374 }), 10375 t.data(e.target, o.widgetName + "-item") === o && 10376 (s = t(e.target)), 10377 s 10378 ? !this.options.handle || 10379 i || 10380 (t(this.options.handle, s) 10381 .find("*") 10382 .addBack() 10383 .each(function () { 10384 this === e.target && (n = !0); 10385 }), 10386 n) 10387 ? ((this.currentItem = s), 10388 this._removeCurrentsFromItems(), 10389 !0) 10390 : !1 10391 : !1); 10392 }, 10393 _mouseStart: function (e, i, s) { 10394 var n, 10395 o, 10396 a = this.options; 10397 if ( 10398 ((this.currentContainer = this), 10399 this.refreshPositions(), 10400 (this.helper = this._createHelper(e)), 10401 this._cacheHelperProportions(), 10402 this._cacheMargins(), 10403 (this.scrollParent = this.helper.scrollParent()), 10404 (this.offset = this.currentItem.offset()), 10405 (this.offset = { 10406 top: this.offset.top - this.margins.top, 10407 left: this.offset.left - this.margins.left, 10408 }), 10409 t.extend(this.offset, { 10410 click: { 10411 left: e.pageX - this.offset.left, 10412 top: e.pageY - this.offset.top, 10413 }, 10414 parent: this._getParentOffset(), 10415 relative: this._getRelativeOffset(), 10416 }), 10417 this.helper.css("position", "absolute"), 10418 (this.cssPosition = this.helper.css("position")), 10419 (this.originalPosition = this._generatePosition(e)), 10420 (this.originalPageX = e.pageX), 10421 (this.originalPageY = e.pageY), 10422 a.cursorAt && this._adjustOffsetFromHelper(a.cursorAt), 10423 (this.domPosition = { 10424 prev: this.currentItem.prev()[0], 10425 parent: this.currentItem.parent()[0], 10426 }), 10427 this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), 10428 this._createPlaceholder(), 10429 a.containment && this._setContainment(), 10430 a.cursor && 10431 "auto" !== a.cursor && 10432 ((o = this.document.find("body")), 10433 (this.storedCursor = o.css("cursor")), 10434 o.css("cursor", a.cursor), 10435 (this.storedStylesheet = t( 10436 "<style>*{ cursor: " + a.cursor + " !important; }</style>", 10437 ).appendTo(o))), 10438 a.opacity && 10439 (this.helper.css("opacity") && 10440 (this._storedOpacity = this.helper.css("opacity")), 10441 this.helper.css("opacity", a.opacity)), 10442 a.zIndex && 10443 (this.helper.css("zIndex") && 10444 (this._storedZIndex = this.helper.css("zIndex")), 10445 this.helper.css("zIndex", a.zIndex)), 10446 this.scrollParent[0] !== this.document[0] && 10447 "HTML" !== this.scrollParent[0].tagName && 10448 (this.overflowOffset = this.scrollParent.offset()), 10449 this._trigger("start", e, this._uiHash()), 10450 this._preserveHelperProportions || this._cacheHelperProportions(), 10451 !s) 10452 ) 10453 for (n = this.containers.length - 1; n >= 0; n--) 10454 this.containers[n]._trigger("activate", e, this._uiHash(this)); 10455 return ( 10456 t.ui.ddmanager && (t.ui.ddmanager.current = this), 10457 t.ui.ddmanager && 10458 !a.dropBehaviour && 10459 t.ui.ddmanager.prepareOffsets(this, e), 10460 (this.dragging = !0), 10461 this._addClass(this.helper, "ui-sortable-helper"), 10462 this._mouseDrag(e), 10463 !0 10464 ); 10465 }, 10466 _mouseDrag: function (e) { 10467 var i, 10468 s, 10469 n, 10470 o, 10471 a = this.options, 10472 r = !1; 10473 for ( 10474 this.position = this._generatePosition(e), 10475 this.positionAbs = this._convertPositionTo("absolute"), 10476 this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), 10477 this.options.scroll && 10478 (this.scrollParent[0] !== this.document[0] && 10479 "HTML" !== this.scrollParent[0].tagName 10480 ? (this.overflowOffset.top + 10481 this.scrollParent[0].offsetHeight - 10482 e.pageY < 10483 a.scrollSensitivity 10484 ? (this.scrollParent[0].scrollTop = r = 10485 this.scrollParent[0].scrollTop + a.scrollSpeed) 10486 : e.pageY - this.overflowOffset.top < a.scrollSensitivity && 10487 (this.scrollParent[0].scrollTop = r = 10488 this.scrollParent[0].scrollTop - a.scrollSpeed), 10489 this.overflowOffset.left + 10490 this.scrollParent[0].offsetWidth - 10491 e.pageX < 10492 a.scrollSensitivity 10493 ? (this.scrollParent[0].scrollLeft = r = 10494 this.scrollParent[0].scrollLeft + a.scrollSpeed) 10495 : e.pageX - this.overflowOffset.left < 10496 a.scrollSensitivity && 10497 (this.scrollParent[0].scrollLeft = r = 10498 this.scrollParent[0].scrollLeft - a.scrollSpeed)) 10499 : (e.pageY - this.document.scrollTop() < a.scrollSensitivity 10500 ? (r = this.document.scrollTop( 10501 this.document.scrollTop() - a.scrollSpeed, 10502 )) 10503 : this.window.height() - 10504 (e.pageY - this.document.scrollTop()) < 10505 a.scrollSensitivity && 10506 (r = this.document.scrollTop( 10507 this.document.scrollTop() + a.scrollSpeed, 10508 )), 10509 e.pageX - this.document.scrollLeft() < a.scrollSensitivity 10510 ? (r = this.document.scrollLeft( 10511 this.document.scrollLeft() - a.scrollSpeed, 10512 )) 10513 : this.window.width() - 10514 (e.pageX - this.document.scrollLeft()) < 10515 a.scrollSensitivity && 10516 (r = this.document.scrollLeft( 10517 this.document.scrollLeft() + a.scrollSpeed, 10518 ))), 10519 r !== !1 && 10520 t.ui.ddmanager && 10521 !a.dropBehaviour && 10522 t.ui.ddmanager.prepareOffsets(this, e)), 10523 this.positionAbs = this._convertPositionTo("absolute"), 10524 (this.options.axis && "y" === this.options.axis) || 10525 (this.helper[0].style.left = this.position.left + "px"), 10526 (this.options.axis && "x" === this.options.axis) || 10527 (this.helper[0].style.top = this.position.top + "px"), 10528 i = this.items.length - 1; 10529 i >= 0; 10530 i-- 10531 ) 10532 if ( 10533 ((s = this.items[i]), 10534 (n = s.item[0]), 10535 (o = this._intersectsWithPointer(s)), 10536 o && 10537 s.instance === this.currentContainer && 10538 n !== this.currentItem[0] && 10539 this.placeholder[1 === o ? "next" : "prev"]()[0] !== n && 10540 !t.contains(this.placeholder[0], n) && 10541 ("semi-dynamic" === this.options.type 10542 ? !t.contains(this.element[0], n) 10543 : !0)) 10544 ) { 10545 if ( 10546 ((this.direction = 1 === o ? "down" : "up"), 10547 "pointer" !== this.options.tolerance && 10548 !this._intersectsWithSides(s)) 10549 ) 10550 break; 10551 this._rearrange(e, s), this._trigger("change", e, this._uiHash()); 10552 break; 10553 } 10554 return ( 10555 this._contactContainers(e), 10556 t.ui.ddmanager && t.ui.ddmanager.drag(this, e), 10557 this._trigger("sort", e, this._uiHash()), 10558 (this.lastPositionAbs = this.positionAbs), 10559 !1 10560 ); 10561 }, 10562 _mouseStop: function (e, i) { 10563 if (e) { 10564 if ( 10565 (t.ui.ddmanager && 10566 !this.options.dropBehaviour && 10567 t.ui.ddmanager.drop(this, e), 10568 this.options.revert) 10569 ) { 10570 var s = this, 10571 n = this.placeholder.offset(), 10572 o = this.options.axis, 10573 a = {}; 10574 (o && "x" !== o) || 10575 (a.left = 10576 n.left - 10577 this.offset.parent.left - 10578 this.margins.left + 10579 (this.offsetParent[0] === this.document[0].body 10580 ? 0 10581 : this.offsetParent[0].scrollLeft)), 10582 (o && "y" !== o) || 10583 (a.top = 10584 n.top - 10585 this.offset.parent.top - 10586 this.margins.top + 10587 (this.offsetParent[0] === this.document[0].body 10588 ? 0 10589 : this.offsetParent[0].scrollTop)), 10590 (this.reverting = !0), 10591 t(this.helper).animate( 10592 a, 10593 parseInt(this.options.revert, 10) || 500, 10594 function () { 10595 s._clear(e); 10596 }, 10597 ); 10598 } else this._clear(e, i); 10599 return !1; 10600 } 10601 }, 10602 cancel: function () { 10603 if (this.dragging) { 10604 this._mouseUp(new t.Event("mouseup", { target: null })), 10605 "original" === this.options.helper 10606 ? (this.currentItem.css(this._storedCSS), 10607 this._removeClass(this.currentItem, "ui-sortable-helper")) 10608 : this.currentItem.show(); 10609 for (var e = this.containers.length - 1; e >= 0; e--) 10610 this.containers[e]._trigger("deactivate", null, this._uiHash(this)), 10611 this.containers[e].containerCache.over && 10612 (this.containers[e]._trigger("out", null, this._uiHash(this)), 10613 (this.containers[e].containerCache.over = 0)); 10614 } 10615 return ( 10616 this.placeholder && 10617 (this.placeholder[0].parentNode && 10618 this.placeholder[0].parentNode.removeChild(this.placeholder[0]), 10619 "original" !== this.options.helper && 10620 this.helper && 10621 this.helper[0].parentNode && 10622 this.helper.remove(), 10623 t.extend(this, { 10624 helper: null, 10625 dragging: !1, 10626 reverting: !1, 10627 _noFinalSort: null, 10628 }), 10629 this.domPosition.prev 10630 ? t(this.domPosition.prev).after(this.currentItem) 10631 : t(this.domPosition.parent).prepend(this.currentItem)), 10632 this 10633 ); 10634 }, 10635 serialize: function (e) { 10636 var i = this._getItemsAsjQuery(e && e.connected), 10637 s = []; 10638 return ( 10639 (e = e || {}), 10640 t(i).each(function () { 10641 var i = (t(e.item || this).attr(e.attribute || "id") || "").match( 10642 e.expression || /(.+)[\-=_](.+)/, 10643 ); 10644 i && 10645 s.push( 10646 (e.key || i[1] + "[]") + 10647 "=" + 10648 (e.key && e.expression ? i[1] : i[2]), 10649 ); 10650 }), 10651 !s.length && e.key && s.push(e.key + "="), 10652 s.join("&") 10653 ); 10654 }, 10655 toArray: function (e) { 10656 var i = this._getItemsAsjQuery(e && e.connected), 10657 s = []; 10658 return ( 10659 (e = e || {}), 10660 i.each(function () { 10661 s.push(t(e.item || this).attr(e.attribute || "id") || ""); 10662 }), 10663 s 10664 ); 10665 }, 10666 _intersectsWith: function (t) { 10667 var e = this.positionAbs.left, 10668 i = e + this.helperProportions.width, 10669 s = this.positionAbs.top, 10670 n = s + this.helperProportions.height, 10671 o = t.left, 10672 a = o + t.width, 10673 r = t.top, 10674 h = r + t.height, 10675 l = this.offset.click.top, 10676 c = this.offset.click.left, 10677 u = "x" === this.options.axis || (s + l > r && h > s + l), 10678 d = "y" === this.options.axis || (e + c > o && a > e + c), 10679 p = u && d; 10680 return "pointer" === this.options.tolerance || 10681 this.options.forcePointerForContainers || 10682 ("pointer" !== this.options.tolerance && 10683 this.helperProportions[this.floating ? "width" : "height"] > 10684 t[this.floating ? "width" : "height"]) 10685 ? p 10686 : e + this.helperProportions.width / 2 > o && 10687 a > i - this.helperProportions.width / 2 && 10688 s + this.helperProportions.height / 2 > r && 10689 h > n - this.helperProportions.height / 2; 10690 }, 10691 _intersectsWithPointer: function (t) { 10692 var e, 10693 i, 10694 s = 10695 "x" === this.options.axis || 10696 this._isOverAxis( 10697 this.positionAbs.top + this.offset.click.top, 10698 t.top, 10699 t.height, 10700 ), 10701 n = 10702 "y" === this.options.axis || 10703 this._isOverAxis( 10704 this.positionAbs.left + this.offset.click.left, 10705 t.left, 10706 t.width, 10707 ), 10708 o = s && n; 10709 return o 10710 ? ((e = this._getDragVerticalDirection()), 10711 (i = this._getDragHorizontalDirection()), 10712 this.floating 10713 ? "right" === i || "down" === e 10714 ? 2 10715 : 1 10716 : e && ("down" === e ? 2 : 1)) 10717 : !1; 10718 }, 10719 _intersectsWithSides: function (t) { 10720 var e = this._isOverAxis( 10721 this.positionAbs.top + this.offset.click.top, 10722 t.top + t.height / 2, 10723 t.height, 10724 ), 10725 i = this._isOverAxis( 10726 this.positionAbs.left + this.offset.click.left, 10727 t.left + t.width / 2, 10728 t.width, 10729 ), 10730 s = this._getDragVerticalDirection(), 10731 n = this._getDragHorizontalDirection(); 10732 return this.floating && n 10733 ? ("right" === n && i) || ("left" === n && !i) 10734 : s && (("down" === s && e) || ("up" === s && !e)); 10735 }, 10736 _getDragVerticalDirection: function () { 10737 var t = this.positionAbs.top - this.lastPositionAbs.top; 10738 return 0 !== t && (t > 0 ? "down" : "up"); 10739 }, 10740 _getDragHorizontalDirection: function () { 10741 var t = this.positionAbs.left - this.lastPositionAbs.left; 10742 return 0 !== t && (t > 0 ? "right" : "left"); 10743 }, 10744 refresh: function (t) { 10745 return ( 10746 this._refreshItems(t), 10747 this._setHandleClassName(), 10748 this.refreshPositions(), 10749 this 10750 ); 10751 }, 10752 _connectWith: function () { 10753 var t = this.options; 10754 return t.connect
10754With.constructor === String 10755 ? [t.connectWith] 10756 : t.connectWith; 10757 }, 10758 _getItemsAsjQuery: function (e) { 10759 function i() { 10760 r.push(this); 10761 } 10762 var s, 10763 n, 10764 o, 10765 a, 10766 r = [], 10767 h = [], 10768 l = this._connectWith(); 10769 if (l && e) 10770 for (s = l.length - 1; s >= 0; s--) 10771 for (o = t(l[s], this.document[0]), n = o.length - 1; n >= 0; n--) 10772 (a = t.data(o[n], this.widgetFullName)), 10773 a && 10774 a !== this && 10775 !a.options.disabled && 10776 h.push([ 10777 t.isFunction(a.options.items) 10778 ? a.options.items.call(a.element) 10779 : t(a.options.items, a.element) 10780 .not(".ui-sortable-helper") 10781 .not(".ui-sortable-placeholder"), 10782 a, 10783 ]); 10784 for ( 10785 h.push([ 10786 t.isFunction(this.options.items) 10787 ? this.options.items.call(this.element, null, { 10788 options: this.options, 10789 item: this.currentItem, 10790 }) 10791 : t(this.options.items, this.element) 10792 .not(".ui-sortable-helper") 10793 .not(".ui-sortable-placeholder"), 10794 this, 10795 ]), 10796 s = h.length - 1; 10797 s >= 0; 10798 s-- 10799 ) 10800 h[s][0].each(i); 10801 return t(r); 10802 }, 10803 _removeCurrentsFromItems: function () { 10804 var e = this.currentItem.find(":data(" + this.widgetName + "-item)"); 10805 this.items = t.grep(this.items, function (t) { 10806 for (var i = 0; e.length > i; i++) if (e[i] === t.item[0]) return !1; 10807 return !0; 10808 }); 10809 }, 10810 _refreshItems: function (e) { 10811 (this.items = []), (this.containers = [this]); 10812 var i, 10813 s, 10814 n, 10815 o, 10816 a, 10817 r, 10818 h, 10819 l, 10820 c = this.items, 10821 u = [ 10822 [ 10823 t.isFunction(this.options.items) 10824 ? this.options.items.call(this.element[0], e, { 10825 item: this.currentItem, 10826 }) 10827 : t(this.options.items, this.element), 10828 this, 10829 ], 10830 ], 10831 d = this._connectWith(); 10832 if (d && this.ready) 10833 for (i = d.length - 1; i >= 0; i--) 10834 for (n = t(d[i], this.document[0]), s = n.length - 1; s >= 0; s--) 10835 (o = t.data(n[s], this.widgetFullName)), 10836 o && 10837 o !== this && 10838 !o.options.disabled && 10839 (u.push([ 10840 t.isFunction(o.options.items) 10841 ? o.options.items.call(o.element[0], e, { 10842 item: this.currentItem, 10843 }) 10844 : t(o.options.items, o.element), 10845 o, 10846 ]), 10847 this.containers.push(o)); 10848 for (i = u.length - 1; i >= 0; i--) 10849 for (a = u[i][1], r = u[i][0], s = 0, l = r.length; l > s; s++) 10850 (h = t(r[s])), 10851 h.data(this.widgetName + "-item", a), 10852 c.push({ 10853 item: h, 10854 instance: a, 10855 width: 0, 10856 height: 0, 10857 left: 0, 10858 top: 0, 10859 }); 10860 }, 10861 refreshPositions: function (e) { 10862 (this.floating = this.items.length 10863 ? "x" === this.options.axis || this._isFloating(this.items[0].item) 10864 : !1), 10865 this.offsetParent && 10866 this.helper && 10867 (this.offset.parent = this._getParentOffset()); 10868 var i, s, n, o; 10869 for (i = this.items.length - 1; i >= 0; i--) 10870 (s = this.items[i]), 10871 (s.instance !== this.currentContainer && 10872 this.currentContainer && 10873 s.item[0] !== this.currentItem[0]) || 10874 ((n = this.options.toleranceElement 10875 ? t(this.options.toleranceElement, s.item) 10876 : s.item), 10877 e || ((s.width = n.outerWidth()), (s.height = n.outerHeight())), 10878 (o = n.offset()), 10879 (s.left = o.left), 10880 (s.top = o.top)); 10881 if (this.options.custom && this.options.custom.refreshContainers
10881) 10882 this.options.custom.refreshContainers.call(this); 10883 else 10884 for (i = this.containers.length - 1; i >= 0; i--) 10885 (o = this.containers[i].element.offset()), 10886 (this.containers[i].containerCache.left = o.left), 10887 (this.containers[i].containerCache.top = o.top), 10888 (this.containers[i].containerCache.width = 10889 this.containers[i].element.outerWidth()), 10890 (this.containers[i].containerCache.height = 10891 this.containers[i].element.outerHeight()); 10892 return this; 10893 }, 10894 _createPlaceholder: function (e) { 10895 e = e || this; 10896 var i, 10897 s = e.options; 10898 (s.placeholder && s.placeholder.constructor !== String) || 10899 ((i = s.placeholder), 10900 (s.placeholder = { 10901 element: function () { 10902 var s = e.currentItem[0].nodeName.toLowerCase(), 10903 n = t("<" + s + ">", e.document[0]); 10904 return ( 10905 e 10906 ._addClass( 10907 n, 10908 "ui-sortable-placeholder", 10909 i || e.currentItem[0].className, 10910 ) 10911 ._removeClass(n, "ui-sortable-helper"), 10912 "tbody" === s 10913 ? e._createTrPlaceholder( 10914 e.currentItem.find("tr").eq(0), 10915 t("<tr>", e.document[0]).appendTo(n), 10916 ) 10917 : "tr" === s 10918 ? e._createTrPlaceholder(e.currentItem, n) 10919 : "img" === s && n.attr("src", e.currentItem.attr("src")), 10920 i || n.css("visibility", "hidden"), 10921 n 10922 ); 10923 }, 10924 update: function (t, n) { 10925 (!i || s.forcePlaceholderSize) && 10926 (n.height() || 10927 n.height(
10928 e.currentItem.innerHeight() - 10929 parseInt(e.currentItem.css("paddingTop") || 0, 10) - 10930 parseInt(e.currentItem.css("paddingBottom") || 0, 10), 10931 ), 10932 n.width() || 10933 n.width( 10934 e.currentItem.innerWidth() - 10935 parseInt(e.currentItem.css("paddingLeft") || 0, 10) - 10936 parseInt(e.currentItem.css("paddingRight") || 0, 10), 10937 )); 10938 }, 10939 })), 10940 (e.placeholder = t( 10941 s.placeholder.element.call(e.element, e.currentItem), 10942 )), 10943 e.currentItem.after(e.placeholder), 10944 s.placeholder.update(e, e.placeholder); 10945 }, 10946 _createTrPlaceholder: function (e, i) { 10947 var s = this; 10948 e.children().each(function () { 10949 t("<td> </td>", s.document[0]) 10950 .attr("colspan", t(this).attr("colspan") || 1) 10951 .appendTo(i); 10952 }); 10953 }, 10954 _contactContainers: function (e) { 10955 var i, 10956 s, 10957 n, 10958 o, 10959 a, 10960 r, 10961 h, 10962 l, 10963 c, 10964 u, 10965 d = null, 10966 p = null; 10967 for (i = this.containers.length - 1; i >= 0; i--) 10968 if (!t.contains(this.currentItem[0], this.containers[i].element[0])) 10969 if (this._intersectsWith(this.containers[i].containerCache)) { 10970 if (d && t.contains(this.containers[i].element[0], d.element[0])) 10971 continue; 10972 (d = this.containers[i]), (p = i); 10973 } else 10974 this.containers[i].containerCache.over && 10975 (this.containers[i]._trigger("out", e, this._uiHash(this)), 10976 (this.containers[i].containerCache.over = 0)); 10977 if (d) 10978 if (1 === this.containers.length) 10979 this.containers[p].containerCache.over || 10980 (this.containers[p]._trigger("over", e, this._uiHash(this)), 10981 (this.containers[p].containerCache.over = 1)); 10982 else { 10983 for ( 10984 n = 1e4, 10985 o = null, 10986 c = d.floating || this._isFloating(this.currentItem), 10987 a = c ? "left" : "top", 10988 r = c ? "width" : "height", 10989 u = c ? "pageX" : "pageY", 10990 s = this.items.length - 1; 10991 s >= 0; 10992 s-- 10993 ) 10994 t.contains( 10995 this.containers[p].element[0], 10996 this.items[s].item[0], 10997 ) && 10998 this.items[s].item[0] !== this.currentItem[0] && 10999 ((h = this.items[s].item.offset()[a]), 11000 (l = !1), 11001 e[u] - h > this.items[s][r] / 2 && (l = !0), 11002 n > Math.abs(e[u] - h) && 11003 ((n = Math.abs(e[u] - h)), 11004 (o = this.items[s]), 11005 (this.direction = l ? "up" : "down"))); 11006 if (!o && !this.options.dropOnEmpty) return; 11007 if (this.currentContainer === this.containers[p]) 11008 return ( 11009 this.currentContainer.containerCache.over || 11010 (this.containers[p]._trigger("over", e, this._uiHash()), 11011 (this.currentContainer.containerCache.over = 1)), 11012 void 0 11013 ); 11014 o 11015 ? this._rearrange(e, o, null, !0) 11016 : this._rearrange(e, null, this.containers[p].element, !0), 11017 this._trigger("change", e, this._uiHash()), 11018 this.containers[p]._trigger("change", e, this._uiHash(this)), 11019 (this.currentContainer = this.containers[p]), 11020 this.options.placeholder.update( 11021 this.currentContainer, 11022 this.placeholder, 11023 ), 11024 this.containers[p]._trigger("over", e, this._uiHash(this)), 11025 (this.containers[p].containerCache.over = 1); 11026 } 11027 }, 11028 _createHelper: function (e) { 11029 var i = this.options, 11030 s = t.isFunction(i.helper) 11031 ? t(i.helper.apply(this.element[0], [e, this.currentItem])) 11032 : "clone" === i.helper 11033 ? this.currentItem.clone() 11034 : this.currentItem; 11035 return ( 11036 s.parents("body").length || 11037 t( 11038 "parent" !== i.appendTo 11039 ? i.appendTo 11040 : this.currentItem[0].parentNode, 11041 )[0].appendChild(s[0]), 11042 s[0] === this.currentItem[0] && 11043 (this._storedCSS = { 11044 width: this.currentItem[0].style.width, 11045 height: this.currentItem[0].style.height, 11046 position: this.currentItem.css("position"), 11047 top: this.currentItem.css("top"), 11048 left: this.currentItem.css("left"), 11049 }), 11050 (!s[0].style.width || i.forceHelperSize) && 11051 s.width(this.currentItem.width()), 11052 (!s[0].style.height || i.forceHelperSize) && 11053 s.height(this.currentItem.height()), 11054 s 11055 ); 11056 }, 11057 _adjustOffsetFromHelper: function (e) { 11058 "string" == typeof e && (e = e.split(" ")), 11059 t.isArray(e) && (e = { left: +e[0], top: +e[1] || 0 }), 11060 "left" in e && (this.offset.click.left = e.left + this.margins.left), 11061 "right" in e && 11062 (this.offset.click.left = 11063 this.helperProportions.width - e.right + this.margins.left), 11064 "top" in e && (this.offset.click.top = e.top + this.margins.top), 11065 "bottom" in e && 11066 (this.offset.click.top = 11067 this.helperProportions.height - e.bottom + this.margins.top); 11068 }, 11069 _getParentOffset: function () { 11070 this.offsetParent = this.helper.offsetParent(); 11071 var e = this.offsetParent.offset(); 11072 return ( 11073 "absolute" === this.cssPosition && 11074 this.scrollParent[0] !== this.document[0] && 11075 t.contains(this.scrollParent[0], this.offsetParent[0]) && 11076 ((e.left += this.scrollParent.scrollLeft()), 11077 (e.top += this.scrollParent.scrollTop())), 11078 (this.offsetParent[0] === this.document[0].body || 11079 (this.offsetParent[0].tagName && 11080 "html" === this.offsetParent[0].tagName.toLowerCase() && 11081 t.ui.ie)) && 11082 (e = { top: 0, left: 0 }), 11083 { 11084 top: 11085 e.top + 11086 (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), 11087 left: 11088 e.left + 11089 (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0), 11090 } 11091 ); 11092 }, 11093 _getRelativeOffset: function () { 11094 if ("relative" === this.cssPosition) { 11095 var t = this.currentItem.position(); 11096 return { 11097 top: 11098 t.top - 11099 (parseInt(this.helper.css("top"), 10) || 0) + 11100 this.scrollParent.scrollTop(), 11101 left: 11102 t.left - 11103 (parseInt(this.helper.css("left"), 10) || 0) + 11104 this.scrollParent.scrollLeft(), 11105 }; 11106 } 11107 return { top: 0, left: 0 }; 11108 }, 11109 _cacheMargins: function () { 11110 this.margins = { 11111 left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, 11112 top: parseInt(this.currentItem.css("marginTop"), 10) || 0, 11113 }; 11114 }, 11115 _cacheHelperProportions: function () { 11116 this.helperProportions = { 11117 width: this.helper.outerWidth(), 11118 height: this.helper.outerHeight(), 11119 }; 11120 }, 11121 _setContainment: function () { 11122 var e, 11123 i, 11124 s, 11125 n = this.options; 11126 "parent" === n.containment && 11127 (n.containment = this.helper[0].parentNode), 11128 ("document" === n.containment || "window" === n.containment) && 11129 (this.containment = [ 11130 0 - this.offset.relative.left - this.offset.parent.left, 11131 0 - this.offset.relative.top - this.offset.parent.top, 11132 "document" === n.containment 11133 ? this.document.width() 11134 : this.window.width() - 11135 this.helperProportions.width - 11136 this.margins.left, 11137 ("document" === n.containment 11138 ? this.document.height() || 11139 document.body.parentNode.scrollHeight 11140 : this.window.height() || 11141 this.document[0].body.parentNode.scrollHeight) - 11142 this.helperProportions.height - 11143 this.margins.top, 11144 ]), 11145 /^(document|window|parent)$/.test(n.containment) || 11146 ((e = t(n.containment)[0]), 11147 (i = t(n.containment).offset()), 11148 (s = "hidden" !== t(e).css("overflow")), 11149 (this.containment = [ 11150 i.left + 11151 (parseInt(t(e).css("borderLeftWidth"), 10) || 0) + 11152 (parseInt(t(e).css("paddingLeft"), 10) || 0) - 11153 this.margins.left, 11154 i.top + 11155 (parseInt(t(e).css("borderTopWidth"), 10) || 0) + 11156 (parseInt(t(e).css("paddingTop"), 10) || 0) - 11157 this.margins.top, 11158 i.left + 11159 (s ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - 11160 (parseInt(t(e).css("borderLeftWidth"), 10) || 0) - 11161 (parseInt(t(e).css("paddingRight"), 10) || 0) - 11162 this.helperProportions.width - 11163 this.margins.left, 11164 i.top + 11165 (s 11166 ? Math.max(e.scrollHeight, e.offsetHeight) 11167 : e.offsetHeight) - 11168 (parseInt(t(e).css("borderTopWidth"), 10) || 0) - 11169 (parseInt(t(e).css("paddingBottom"), 10) || 0) - 11170 this.helperProportions.height - 11171 this.margins.top, 11172 ])); 11173 }, 11174 _convertPositionTo: function (e, i) { 11175 i || (i = this.position); 11176 var s = "absolute" === e ? 1 : -1, 11177 n = 11178 "absolute" !== this.cssPosition || 11179 (this.scrollParent[0] !== this.document[0] && 11180 t.contains(this.scrollParent[0], this.offsetParent[0])) 11181 ? this.scrollParent 11182 : this.offsetParent, 11183 o = /(html|body)/i.test(n[0].tagName); 11184 return { 11185 top: 11186 i.top + 11187 this.offset.relative.top * s + 11188 this.offset.parent.top * s - 11189 ("fixed" === this.cssPosition 11190 ? -this.scrollParent.scrollTop() 11191 : o 11192 ? 0 11193 : n.scrollTop()) * 11194 s, 11195 left: 11196 i.left + 11197 this.offset.relative.left * s + 11198 this.offset.parent.left * s - 11199 ("fixed" === this.cssPosition 11200 ? -this.scrollParent.scrollLeft() 11201 : o 11202 ? 0 11203 : n.scrollLeft()) * 11204 s, 11205 }; 11206 }, 11207 _generatePosition: function (e) { 11208 var i, 11209 s, 11210 n = this.options, 11211 o = e.pageX, 11212 a = e.pageY, 11213 r = 11214 "absolute" !== this.cssPosition || 11215 (this.scrollParent[0] !== this.document[0] && 11216 t.contains(this.scrollParent[0], this.offsetParent[0])) 11217 ? this.scrollParent 11218 : this.offsetParent, 11219 h = /(html|body)/i.test(r[0].tagName); 11220 return ( 11221 "relative" !== this.cssPosition || 11222 (this.scrollParent[0] !== this.document[0] && 11223 this.scrollParent[0] !== this.offsetParent[0]) || 11224 (this.offset.relative = this._getRelativeOffset()), 11225 this.originalPosition && 11226 (this.containment && 11227 (e.pageX - this.offset.click.left < this.containment[0] && 11228 (o = this.containment[0] + this.offset.click.left), 11229 e.pageY - this.offset.click.top < this.containment[1] && 11230 (a = this.containment[1] + this.offset.click.top), 11231 e.pageX - this.offset.click.left > this.containment[2] && 11232 (o = this.containment[2] + this.offset.click.left), 11233 e.pageY - this.offset.click.top > this.containment[3] && 11234 (a = this.containment[3] + this.offset.click.top)), 11235 n.grid && 11236 ((i = 11237 this.originalPageY + 11238 Math.round((a - this.originalPageY) / n.grid[1]) * n.grid[1]), 11239 (a = this.containment 11240 ? i - this.offset.click.top >= this.containment[1] && 11241 i - this.offset.click.top <= this.containment[3] 11242 ? i 11243 : i - this.offset.click.top >= this.containment[1] 11244 ? i - n.grid[1] 11245 : i + n.grid[1] 11246 : i), 11247 (s = 11248 this.originalPageX + 11249 Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0]), 11250 (o = this.containment 11251 ? s - this.offset.click.left >= this.containment[0] && 11252 s - this.offset.click.left <= this.containment[2] 11253 ? s 11254 : s - this.offset.click.left >= this.containment[0] 11255 ? s - n.grid[0] 11256 : s + n.grid[0] 11257 : s))), 11258 { 11259 top: 11260 a - 11261 this.offset.click.top - 11262 this.offset.relative.top - 11263 this.offset.parent.top + 11264 ("fixed" === this.cssPosition 11265 ? -this.scrollParent.scrollTop() 11266 : h 11267 ? 0 11268 : r.scrollTop()), 11269 left: 11270 o - 11271 this.offset.click.left - 11272 this.offset.relative.left - 11273 this.offset.parent.left + 11274 ("fixed" === this.cssPosition 11275 ? -this.scrollParent.scrollLeft() 11276 : h 11277 ? 0 11278 : r.scrollLeft()), 11279 } 11280 ); 11281 }, 11282 _rearrange: function (t, e, i, s) { 11283 i 11284 ? i[0].appendChild(this.placeholder[0]) 11285 : e.item[0].parentNode.insertBefore( 11286 this.placeholder[0],
11287 "down" === this.direction ? e.item[0] : e.item[0].nextSibling, 11288 ), 11289 (this.counter = this.counter ? ++this.counter : 1); 11290 var n = this.counter; 11291 this._delay(function () { 11292 n === this.counter && this.refreshPositions(!s); 11293 }); 11294 }, 11295 _clear: function (t, e) { 11296 function i(t, e, i) { 11297 return function (s) { 11298 i._trigger(t, s, e._uiHash(e)); 11299 }; 11300 } 11301 this.reverting = !1; 11302 var s, 11303 n = []; 11304 if ( 11305 (!this._noFinalSort && 11306 this.currentItem.parent().length && 11307 this.placeholder.before(this.currentItem), 11308 (this._noFinalSort = null), 11309 this.helper[0] === this.currentItem[0]) 11310 ) { 11311 for (s in this._storedCSS) 11312 ("auto" === this._storedCSS[s] || 11313 "static" === this._storedCSS[s]) && 11314 (this._storedCSS[s] = ""); 11315 this.currentItem.css(this._storedCSS), 11316 this._removeClass(this.currentItem, "ui-sortable-helper"); 11317 } else this.currentItem.show(); 11318 for ( 11319 this.fromOutside && 11320 !e && 11321 n.push(function (t) { 11322 this._trigger("receive", t, this._uiHash(this.fromOutside)); 11323 }), 11324 (!this.fromOutside && 11325 this.domPosition.prev === 11326 this.currentItem.prev().not(".ui-sortable-helper")[0] && 11327 this.domPosition.parent === this.currentItem.parent()[0]) || 11328 e || 11329 n.push(function (t) { 11330 this._trigger("update", t, this._uiHash()); 11331 }), 11332 this !== this.currentContainer && 11333 (e || 11334 (n.push(function (t) { 11335 this._trigger("remove", t, this._uiHash()); 11336 }), 11337 n.push( 11338 function (t) { 11339 return function (e) { 11340 t._trigger("receive", e, this._uiHash(this)); 11341 }; 11342 }.call(this, this.currentContainer), 11343 ), 11344 n.push( 11345 function (t) { 11346 return function (e) { 11347 t._trigger("update", e, this._uiHash(this)); 11348 }; 11349 }.call(this, this.currentContainer), 11350 ))), 11351 s = this.containers.length - 1; 11352 s >= 0; 11353 s-- 11354 ) 11355 e || n.push(i("deactivate", this, this.containers[s])), 11356 this.containers[s].containerCache.over && 11357 (n.push(i("out", this, this.containers[s])), 11358 (this.containers[s].containerCache.over = 0)); 11359 if ( 11360 (this.storedCursor && 11361 (this.document.find("body").css("cursor", this.storedCursor), 11362 this.storedStylesheet.remove()), 11363 this._storedOpacity && 11364 this.helper.css("opacity", this._storedOpacity), 11365 this._storedZIndex && 11366 this.helper.css( 11367 "zIndex", 11368 "auto" === this._storedZIndex ? "" : this._storedZIndex, 11369 ), 11370 (this.dragging = !1), 11371 e || this._trigger("beforeStop", t, this._uiHash()), 11372 this.placeholder[0].parentNode.removeChild(this.placeholder[0]), 11373 this.cancelHelperRemoval || 11374 (this.helper[0] !== this.currentItem[0] && this.helper.remove(), 11375 (this.helper = null)), 11376 !e) 11377 ) { 11378 for (s = 0; n.length > s; s++) n[s].call(this, t); 11379 this._trigger("stop", t, this._uiHash()); 11380 } 11381 return (this.fromOutside = !1), !this.cancelHelperRemoval; 11382 }, 11383 _trigger: function () { 11384 t.Widget.prototype._trigger.apply(this, arguments) === !1 && 11385 this.cancel(); 11386 }, 11387 _uiHash: function (e) { 11388 var i = e || this; 11389 return { 11390 helper: i.helper, 11391 placeholder: i.placeholder || t([]), 11392 position: i.position, 11393 originalPosition: i.originalPosition, 11394 offset: i.positionAbs, 11395 item: i.currentItem, 11396 sender: e ? e.element : null, 11397 }; 11398 }, 11399 }), 11400 t.widget("ui.spinner", { 11401 version: "1.12.1", 11402 defaultElement: "<input>", 11403 widgetEventPrefix: "spin", 11404 options: { 11405 classes: { 11406 "ui-spinner": "ui-corner-all", 11407 "ui-spinner-down": "ui-corner-br", 11408 "ui-spinner-up": "ui-corner-tr", 11409 }, 11410 culture: null, 11411 icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }, 11412 incremental: !0, 11413 max: null, 11414 min: null, 11415 numberFormat: null, 11416 page: 10, 11417 step: 1, 11418 change: null, 11419 spin: null, 11420 start: null, 11421 stop: null, 11422 }, 11423 _create: function () { 11424 this._setOption("max", this.options.max), 11425 this._setOption("min", this.options.min), 11426 this._setOption("step", this.options.step), 11427 "" !== this.value() && this._value(this.element.val(), !0), 11428 this._draw(), 11429 this._on(this._events), 11430 this._refresh(), 11431 this._on(this.window, { 11432 beforeunload: function () { 11433 this.element.removeAttr("autocomplete"); 11434 }, 11435 }); 11436 }, 11437 _getCreateOptions: function () { 11438 var e = this._super(), 11439 i = this.element; 11440 return ( 11441 t.each(["min", "max", "step"], function (t, s) { 11442 var n = i.attr(s);
11443 null != n && n.length && (e[s] = n); 11444 }), 11445 e 11446 ); 11447 }, 11448 _events: { 11449 keydown: function (t) { 11450 this._start(t) && this._keydown(t) && t.preventDefault(); 11451 }, 11452 keyup: "_stop", 11453 focus: function () { 11454 this.previous = this.element.val(); 11455 }, 11456 blur: function (t) { 11457 return this.cancelBlur 11458 ? (delete this.cancelBlur, void 0) 11459 : (this._stop(), 11460 this._refresh(), 11461 this.previous !== this.element.val() && 11462 this._trigger("change", t), 11463 void 0); 11464 }, 11465 mousewheel: function (t, e) { 11466 if (e) { 11467 if (!this.spinning && !this._start(t)) return !1; 11468 this._spin((e > 0 ? 1 : -1) * this.options.step, t), 11469 clearTimeout(this.mousewheelTimer), 11470 (this.mousewheelTimer = this._delay(function () { 11471 this.spinning && this._stop(t); 11472 }, 100)), 11473 t.preventDefault(); 11474 } 11475 }, 11476 "mousedown .ui-spinner-button": function (e) { 11477 function i() { 11478 var e = 11479 this.element[0] === t.ui.safeActiveElement(this.document[0]); 11480 e || 11481 (this.element.trigger("focus"), 11482 (this.previous = s), 11483 this._delay(function () { 11484 this.previous = s; 11485 })); 11486 } 11487 var s; 11488 (s = 11489 this.element[0] === t.ui.safeActiveElement(this.document[0]) 11490 ? this.previous 11491 : this.element.val()), 11492 e.preventDefault(), 11493 i.call(this), 11494 (this.cancelBlur = !0), 11495 this._delay(function () { 11496 delete this.cancelBlur, i.call(this); 11497 }), 11498 this._start(e) !== !1 && 11499 this._repeat( 11500 null, 11501 t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, 11502 e, 11503 ); 11504 }, 11505 "mouseup .ui-spinner-button": "_stop", 11506 "mouseenter .ui-spinner-button": function (e) { 11507 return t(e.currentTarget).hasClass("ui-state-active") 11508 ? this._start(e) === !1 11509 ? !1 11510 : (this._repeat( 11511 null, 11512 t(e.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, 11513 e, 11514 ), 11515 void 0) 11516 : void 0; 11517 }, 11518 "mouseleave .ui-spinner-button": "_stop", 11519 }, 11520 _enhance: function () { 11521 this.uiSpinner = this.element 11522 .attr("autocomplete", "off") 11523 .wrap("<span>") 11524 .parent() 11525 .append("<a></a><a></a>"); 11526 }, 11527 _draw: function () { 11528 this._enhance(), 11529 this._addClass( 11530 this.uiSpinner, 11531 "ui-spinner", 11532 "ui-widget ui-widget-content", 11533 ), 11534 this._addClass("ui-spinner-input"), 11535 this.element.attr("role", "spinbutton"), 11536 (this.buttons = this.uiSpinner 11537 .children("a") 11538 .attr("tabIndex", -1) 11539 .attr("aria-hidden", !0) 11540 .button({ classes: { "ui-button": "" } })), 11541 this._removeClass(this.buttons, "ui-corner-all"), 11542 this._addClass( 11543 this.buttons.first(), 11544 "ui-spinner-button ui-spinner-up", 11545 ), 11546 this._addClass( 11547 this.buttons.last(), 11548 "ui-spinner-button ui-spinner-down", 11549 ), 11550 this.buttons 11551 .first() 11552 .button({ icon: this.options.icons.up, showLabel: !1 }), 11553 this.buttons 11554 .last() 11555 .button({ icon: this.options.icons.down, showLabel: !1 }), 11556 this.buttons.height() > Math.ceil(0.5 * this.uiSpinner.height()) && 11557 this.uiSpinner.height() > 0 && 11558 this.uiSpinner.height(this.uiSpinner.height()); 11559 }, 11560 _keydown: function (e) { 11561 var i = this.options, 11562 s = t.ui.keyCode; 11563 switch (e.keyCode) { 11564 case s.UP: 11565 return this._repeat(null, 1, e), !0; 11566 case s.DOWN: 11567 return this._repeat(null, -1, e), !0; 11568 case s.PAGE_UP: 11569 return this._repeat(null, i.page, e), !0; 11570 case s.PAGE_DOWN: 11571 return this._repeat(null, -i.page, e), !0; 11572 } 11573 return !1; 11574 }, 11575 _start: function (t) { 11576 return this.spinning || this._trigger("start", t) !== !1 11577 ? (this.counter || (this.counter = 1), (this.spinning = !0), !0) 11578 : !1; 11579 }, 11580 _repeat: function (t, e, i) { 11581 (t = t || 500), 11582 clearTimeout(this.timer), 11583 (this.timer = this._delay(function () { 11584 this._repeat(40, e, i); 11585 }, t)), 11586 this._spin(e * this.options.step, i); 11587 }, 11588 _spin: function (t, e) { 11589 var i = this.value() || 0; 11590 this.counter || (this.counter = 1), 11591 (i = this._adjustValue(i + t * this._increment(this.counter))), 11592 (this.spinning && this._trigger("spin", e, { value: i }) === !1) || 11593 (this._value(i), this.counter++); 11594 }, 11595 _increment: function (e) { 11596 var i = this.options.incremental; 11597 return i 11598 ? t.isFunction(i) 11599 ? i(e) 11600 : Math.floor((e * e * e) / 5e4 - (e * e) / 500 + (17 * e) / 200 + 1) 11601 : 1; 11602 }, 11603 _precision: function () { 11604 var t = this._precisionOf(this.options.step); 11605 return ( 11606 null !== this.options.min && 11607 (t = Math.max(t, this._precisionOf(this.options.min))), 11608 t 11609 ); 11610 }, 11611 _precisionOf: function (t) { 11612 var e = "" + t, 11613 i = e.indexOf("."); 11614 return -1 === i ? 0 : e.length - i - 1; 11615 }, 11616 _adjustValue: function (t) { 11617 var e, 11618 i, 11619 s = this.options; 11620 return ( 11621 (e = null !== s.min ? s.min : 0), 11622 (i = t - e), 11623 (i = Math.round(i / s.step) * s.step), 11624 (t = e + i), 11625 (t = parseFloat(t.toFixed(this._precision()))), 11626 null !== s.max && t > s.max 11627 ? s.max 11628 : null !== s.min && s.min > t 11629 ? s.min 11630 : t 11631 ); 11632 }, 11633 _stop: function (t) { 11634 this.spinning && 11635 (clearTimeout(this.timer), 11636 clearTimeout(this.mousewheelTimer), 11637 (this.counter = 0), 11638 (this.spinning = !1), 11639 this._trigger("stop", t)); 11640 }, 11641 _setOption: function (t, e) { 11642 var i, s, n; 11643 return "culture" === t || "numberFormat" === t 11644 ? ((i = this._parse(this.element.val())), 11645 (this.options[t] = e), 11646 this.element.val(this._format(i)), 11647 void 0) 11648 : (("max" === t || "min" === t || "step" === t) && 11649 "string" == typeof e && 11650 (e = this._parse(e)), 11651 "icons" === t && 11652 ((s = this.buttons.first().find(".ui-icon")), 11653 this._removeClass(s, null, this.options.icons.up), 11654 this._addClass(s, null, e.up), 11655 (n = this.buttons.last().find(".ui-icon")), 11656 this._removeClass(n, null, this.options.icons.down), 11657 this._addClass(n, null, e.down)), 11658 this._super(t, e), 11659 void 0); 11660 }, 11661 _setOptionDisabled: function (t) { 11662 this._super(t), 11663 this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t), 11664 this.element.prop("disabled", !!t), 11665 this.buttons.button(t ? "disable" : "enable"); 11666 }, 11667 _setOptions: r(function (t) { 11668 this._super(t); 11669 }), 11670 _parse: function (t) { 11671 return ( 11672 "string" == typeof t && 11673 "" !== t && 11674 (t = 11675 window.Globalize && this.options.numberFormat 11676 ? Globalize.parseFloat(t, 10, this.options.culture) 11677 : +t), 11678 "" === t || isNaN(t) ? null : t 11679 ); 11680 }, 11681 _format: function (t) { 11682 return "" === t 11683 ? "" 11684 : window.Globalize && this.options.numberFormat 11685 ? Globalize.format( 11686 t, 11687 this.options.numberFormat, 11688 this.options.culture, 11689 ) 11690 : t; 11691 }, 11692 _refresh: function () { 11693 this.element.attr({ 11694 "aria-valuemin": this.options.min, 11695 "aria-valuemax": this.options.max, 11696 "aria-valuenow": this._parse(this.element.val()), 11697 }); 11698 }, 11699 isValid: function () { 11700 var t = this.value(); 11701 return null === t ? !1 : t === this._adjustValue(t); 11702 }, 11703 _value: function (t, e) { 11704 var i; 11705 "" !== t && 11706 ((i = this._parse(t)), 11707 null !== i && 11708 (e || (i = this._adjustValue(i)), (t = this._format(i)))), 11709 this.element.val(t), 11710 this._refresh(); 11711 }, 11712 _destroy: function () { 11713 this.element 11714 .prop("disabled", !1) 11715 .removeAttr( 11716 "autocomplete role aria-valuemin aria-valuemax aria-valuenow", 11717 ), 11718 this.uiSpinner.replaceWith(this.element); 11719 }, 11720 stepUp: r(function (t) { 11721 this._stepUp(t); 11722 }), 11723 _stepUp: function (t) { 11724 this._start() && 11725 (this._spin((t || 1) * this.options.step), this._stop()); 11726 }, 11727 stepDown: r(function (t) { 11728 this._stepDown(t); 11729 }), 11730 _stepDown: function (t) { 11731 this._start() && 11732 (this._spin((t || 1) * -this.options.step), this._stop()); 11733 }, 11734 pageUp: r(function (t) { 11735 this._stepUp((t || 1) * this.options.page); 11736 }), 11737 pageDown: r(function (t) { 11738 this._stepDown((t || 1) * this.options.page); 11739 }), 11740 value: function (t) { 11741 return arguments.length 11742 ? (r(this._value).call(this, t), void 0) 11743 : this._parse(this.element.val()); 11744 }, 11745 widget: function () { 11746 return this.uiSpinner; 11747 }, 11748 }), 11749 t.uiBackCompat !== !1 && 11750 t.widget("ui.spinner", t.ui.spinner, { 11751 _enhance: function () { 11752 this.uiSpinner = this.element 11753 .attr("autocomplete", "off") 11754 .wrap(this._uiSpinnerHtml()) 11755 .parent() 11756 .append(this._buttonHtml()); 11757 }, 11758 _uiSpinnerHtml: function () { 11759 return "<span>"; 11760 }, 11761 _buttonHtml: function () { 11762 return "<a></a><a></a>"; 11763 }, 11764 }), 11765 t.ui.spinner, 11766 t.widget("ui.tabs", { 11767 version: "1.12.1", 11768 delay: 300, 11769 options: { 11770 active: null, 11771 classes: { 11772 "ui-tabs": "ui-corner-all", 11773 "ui-tabs-nav": "ui-corner-all", 11774 "ui-tabs-panel": "ui-corner-bottom", 11775 "ui-tabs-tab": "ui-corner-top", 11776 }, 11777 collapsible: !1, 11778 event: "click", 11779 heightStyle: "content", 11780 hide: null, 11781 show: null, 11782 activate: null, 11783 beforeActivate: null, 11784 beforeLoad: null, 11785 load: null, 11786 }, 11787 _isLocal: (function () { 11788 var t = /#.*$/; 11789 return function (e) { 11790 var i, s; 11791 (i = e.href.replace(t, "")), (s = location.href.replace(t, "")); 11792 try { 11793 i = decodeURIComponent(i); 11794 } catch (n) {} 11795 try { 11796 s = decodeURIComponent(s); 11797 } catch (n) {} 11798 return e.hash.length > 1 && i === s; 11799 }; 11800 })(), 11801 _create: function () { 11802 var e = this, 11803 i = this.options; 11804 (this.running = !1), 11805 this._addClass("ui-tabs", "ui-widget ui-widget-content"),
11806 this._toggleClass("ui-tabs-collapsible", null, i.collapsible), 11807 this._processTabs(), 11808 (i.active = this._initialActive()), 11809 t.isArray(i.disabled) && 11810 (i.disabled = t 11811 .unique( 11812 i.disabled.concat( 11813 t.map(this.tabs.filter(".ui-state-disabled"), function (t) { 11814 return e.tabs.index(t); 11815 }), 11816 ), 11817 ) 11818 .sort()), 11819 (this.active = 11820 this.options.active !== !1 && this.anchors.length 11821 ? this._findActive(i.active) 11822 : t()), 11823 this._refresh(), 11824 this.active.length && this.load(i.active); 11825 }, 11826 _initialActive: function () { 11827 var e = this.options.active, 11828 i = this.options.collapsible, 11829 s = location.hash.substring(1); 11830 return ( 11831 null === e && 11832 (s && 11833 this.tabs.each(function (i, n) { 11834 return t(n).attr("aria-controls") === s 11835 ? ((e = i), !1) 11836 : void 0; 11837 }), 11838 null === e && 11839 (e = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), 11840 (null === e || -1 === e) && (e = this.tabs.length ? 0 : !1)), 11841 e !== !1 && 11842 ((e = this.tabs.index(this.tabs.eq(e))), 11843 -1 === e && (e = i ? !1 : 0)), 11844 !i && e === !1 && this.anchors.length && (e = 0), 11845 e 11846 ); 11847 }, 11848 _getCreateEventData: function () { 11849 return { 11850 tab: this.active, 11851 panel: this.active.length ? this._getPanelForTab(this.active) : t(), 11852 }; 11853 }, 11854 _tabKeydown: function (e) { 11855 var i = t(t.ui.safeActiveElement(this.document[0])).closest("li"), 11856 s = this.tabs.index(i), 11857 n = !0; 11858 if (!this._handlePageNav(e)) { 11859 switch (e.keyCode) { 11860 case t.ui.keyCode.RIGHT: 11861 case t.ui.keyCode.DOWN: 11862 s++; 11863 break; 11864 case t.ui.keyCode.UP: 11865 case t.ui.keyCode.LEFT: 11866 (n = !1), s--; 11867 break; 11868 case t.ui.keyCode.END: 11869 s = this.anchors.length - 1; 11870 break; 11871 case t.ui.keyCode.HOME: 11872 s = 0; 11873 break; 11874 case t.ui.keyCode.SPACE: 11875 return ( 11876 e.preventDefault(), 11877 clearTimeout(this.activating), 11878 this._activate(s), 11879 void 0 11880 ); 11881 case t.ui.keyCode.ENTER: 11882 return ( 11883 e.preventDefault(), 11884 clearTimeout(this.activating), 11885 this._activate(s === this.options.active ? !1 : s), 11886 void 0 11887 ); 11888 default: 11889 return; 11890 } 11891 e.preventDefault(), 11892 clearTimeout(this.activating), 11893 (s = this._focusNextTab(s, n)), 11894 e.ctrlKey || 11895 e.metaKey || 11896 (i.attr("aria-selected", "false"), 11897 this.tabs.eq(s).attr("aria-selected", "true"), 11898 (this.activating = this._delay(function () { 11899 this.option("active", s); 11900 }, this.delay))); 11901 } 11902 }, 11903 _panelKeydown: function (e) { 11904 this._handlePageNav(e) || 11905 (e.ctrlKey && 11906 e.keyCode === t.ui.keyCode.UP && 11907 (e.preventDefault(), this.active.trigger("focus"))); 11908 }, 11909 _handlePageNav: function (e) { 11910 return e.altKey && e.keyCode === t.ui.keyCode.PAGE_UP 11911 ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), 11912 !0) 11913 : e.altKey && e.keyCode === t.ui.keyCode.PAGE_DOWN 11914 ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), 11915 !0) 11916 : void 0; 11917 }, 11918 _findNextTab: function (e, i) { 11919 function s() { 11920 return e > n && (e = 0), 0 > e && (e = n), e; 11921 } 11922 for ( 11923 var n = this.tabs.length - 1; 11924 -1 !== t.inArray(s(), this.options.disabled); 11925 11926 ) 11927 e = i ? e + 1 : e - 1; 11928 return e; 11929 }, 11930 _focusNextTab: function (t, e) { 11931 return ( 11932 (t = this._findNextTab(t, e)), this.tabs.eq(t).trigger("focus"), t 11933 ); 11934 }, 11935 _setOption: function (t, e) { 11936 return "active" === t 11937 ? (this._activate(e), void 0) 11938 : (this._super(t, e), 11939 "collapsible" === t && 11940 (this._toggleClass("ui-tabs-collapsible", null, e), 11941 e || this.options.active !== !1 || this._activate(0)), 11942 "event" === t && this._setupEvents(e), 11943 "heightStyle" === t && this._setupHeightStyle(e), 11944 void 0); 11945 }, 11946 _sanitizeSelector: function (t) { 11947 return t 11948 ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") 11949 : ""; 11950 }, 11951 refresh: function () { 11952 var e = this.options, 11953 i = this.tablist.children(":has(a[href])"); 11954 (e.disabled = t.map(i.filter(".ui-state-disabled"), function (t) { 11955 return i.index(t); 11956 })), 11957 this._processTabs(), 11958 e.active !== !1 && this.anchors.length 11959 ? this.active.length && !t.contains(this.tablist[0], this.active[0]) 11960 ? this.tabs.length === e.disabled.length 11961 ? ((e.active = !1), (this.active = t())) 11962 : this._activate( 11963 this._findNextTab(Math.max(0, e.active - 1), !1), 11964 ) 11965 : (e.active = this.tabs.index(this.active)) 11966 : ((e.active = !1), (this.active = t())), 11967 this._refresh(); 11968 }, 11969 _refresh: function () { 11970 this._setOptionDisabled(this.options.disabled), 11971 this._setupEvents(this.options.event), 11972 this._setupHeightStyle(this.options.heightStyle), 11973 this.tabs.not(this.active).attr({ 11974 "aria-selected": "false", 11975 "aria-expanded": "false", 11976 tabIndex: -1, 11977 }), 11978 this.panels 11979 .not(this._getPanelForTab(this.active)) 11980 .hide() 11981 .attr({ "aria-hidden": "true" }), 11982 this.active.length 11983 ? (this.active.attr({ 11984 "aria-selected": "true", 11985 "aria-expanded": "true", 11986 tabIndex: 0, 11987 }), 11988 this._addClass(this.active, "ui-tabs-active", "ui-state-active"), 11989 this._getPanelForTab(this.active) 11990 .show() 11991 .attr({ "aria-hidden": "false" })) 11992 : this.tabs.eq(0).attr("tabIndex", 0); 11993 }, 11994 _processTabs: function () { 11995 var e = this, 11996 i = this.tabs, 11997 s = this.anchors, 11998 n = this.panels; 11999 (this.tablist = this._getList().attr("role", "tablist")), 12000 this._addClass( 12001 this.tablist, 12002 "ui-tabs-nav", 12003 "ui-helper-reset ui-helper-clearfix ui-widget-header", 12004 ), 12005 this.tablist 12006 .on("mousedown" + this.eventNamespace, "> li", function (e) { 12007 t(this).is(".ui-state-disabled") && e.preventDefault(); 12008 }) 12009 .on("focus" + this.eventNamespace, ".ui-tabs-anchor", function () { 12010 t(this).closest("li").is(".ui-state-disabled") && this.blur(); 12011 }), 12012 (this.tabs = this.tablist 12013 .find("> li:has(a[href])") 12014 .attr({ role: "tab", tabIndex: -1 })), 12015 this._addClass(this.tabs, "ui-tabs-tab", "ui-state-default"), 12016 (this.anchors = this.tabs 12017 .map(function () { 12018 return t("a", this)[0]; 12019 }) 12020 .attr({ role: "presentation", tabIndex: -1 })), 12021 this._addClass(this.anchors, "ui-tabs-anchor"),
12022 (this.panels = t()), 12023 this.anchors.each(function (i, s) { 12024 var n, 12025 o, 12026 a, 12027 r = t(s).uniqueId().attr("id"), 12028 h = t(s).closest("li"), 12029 l = h.attr("aria-controls"); 12030 e._isLocal(s) 12031 ? ((n = s.hash), 12032 (a = n.substring(1)), 12033 (o = e.element.find(e._sanitizeSelector(n)))) 12034 : ((a = h.attr("aria-controls") || t({}).uniqueId()[0].id), 12035 (n = "#" + a), 12036 (o = e.element.find(n)), 12037 o.length || 12038 ((o = e._createPanel(a)), 12039 o.insertAfter(e.panels[i - 1] || e.tablist)), 12040 o.attr("aria-live", "polite")), 12041 o.length && (e.panels = e.panels.add(o)), 12042 l && h.data("ui-tabs-aria-controls", l), 12043 h.attr({ "aria-controls": a, "aria-labelledby": r }), 12044 o.attr("aria-labelledby", r); 12045 }), 12046 this.panels.attr("role", "tabpanel"), 12047 this._addClass(this.panels, "ui-tabs-panel", "ui-widget-content"), 12048 i && 12049 (this._off(i.not(this.tabs)), 12050 this._off(s.not(this.anchors)), 12051 this._off(n.not(this.panels))); 12052 }, 12053 _getList: function () { 12054 return this.tablist || this.element.find("ol, ul").eq(0); 12055 }, 12056 _createPanel: function (e) { 12057 return t("<div>").attr("id", e).data("ui-tabs-destroy", !0); 12058 }, 12059 _setOptionDisabled: function (e) { 12060 var i, s, n; 12061 for ( 12062 t.isArray(e) && 12063 (e.length 12064 ? e.length === this.anchors.length && (e = !0) 12065 : (e = !1)), 12066 n = 0; 12067 (s = this.tabs[n]); 12068 n++ 12069 ) 12070 (i = t(s)), 12071 e === !0 || -1 !== t.inArray(n, e) 12072 ? (i.attr("aria-disabled", "true"), 12073 this._addClass(i, null, "ui-state-disabled")) 12074 : (i.removeAttr("aria-disabled"), 12075 this._removeClass(i, null, "ui-state-disabled")); 12076 (this.options.disabled = e), 12077 this._toggleClass( 12078 this.widget(), 12079 this.widgetFullName + "-disabled", 12080 null, 12081 e === !0, 12082 ); 12083 }, 12084 _setupEvents: function (e) { 12085 var i = {}; 12086 e && 12087 t.each(e.split(" "), function (t, e) { 12088 i[e] = "_eventHandler"; 12089 }), 12090 this._off(this.anchors.add(this.tabs).add(this.panels)), 12091 this._on(!0, this.anchors, { 12092 click: function (t) { 12093 t.preventDefault(); 12094 }, 12095 }), 12096 this._on(this.anchors, i), 12097 this._on(this.tabs, { keydown: "_tabKeydown" }), 12098 this._on(this.panels, { keydown: "_panelKeydown" }), 12099 this._focusable(this.tabs), 12100 this._hoverable(this.tabs); 12101 }, 12102 _setupHeightStyle: function (e) { 12103 var i, 12104 s = this.element.parent(); 12105 "fill" === e 12106 ? ((i = s.height()), 12107 (i -= this.element.outerHeight() - this.element.height()), 12108 this.element.siblings(":visible").each(function () { 12109 var e = t(this), 12110 s = e.css("position"); 12111 "absolute" !== s && "fixed" !== s && (i -= e.outerHeight(!0)); 12112 }), 12113 this.element 12114 .children() 12115 .not(this.panels) 12116 .each(function () { 12117 i -= t(this).outerHeight(!0); 12118 }), 12119 this.panels 12120 .each(function () { 12121 t(this).height( 12122 Math.max(0, i - t(this).innerHeight() + t(this).height()), 12123 ); 12124 }) 12125 .css("overflow", "auto")) 12126 : "auto" === e && 12127 ((i = 0), 12128 this.panels 12129 .each(function () { 12130 i = Math.max(i, t(this).height("").height()); 12131 }) 12132 .height(i)); 12133 }, 12134 _eventHandler: function (e) { 12135 var i = this.options, 12136 s = this.active, 12137 n = t(e.currentTarget), 12138 o = n.closest("li"), 12139 a = o[0] === s[0], 12140 r = a && i.collapsible, 12141 h = r ? t() : this._getPanelForTab(o), 12142 l = s.length ? this._getPanelForTab(s) : t(), 12143 c = { oldTab: s, oldPanel: l, newTab: r ? t() : o, newPanel: h }; 12144 e.preventDefault(), 12145 o.hasClass("ui-state-disabled") || 12146 o.hasClass("ui-tabs-loading") || 12147 this.running || 12148 (a && !i.collapsible) || 12149 this._trigger("beforeActivate", e, c) === !1 || 12150 ((i.active = r ? !1 : this.tabs.index(o)), 12151 (this.active = a ? t() : o), 12152 this.xhr && this.xhr.abort(), 12153 l.length || 12154 h.length || 12155 t.error("jQuery UI Tabs: Mismatching fragment identifier."), 12156 h.length && this.load(this.tabs.index(o), e), 12157 this._toggle(e, c)); 12158 }, 12159 _toggle: function (e, i) { 12160 function s() { 12161 (o.running = !1), o._trigger("activate", e, i); 12162 } 12163 function n() { 12164 o._addClass( 12165 i.newTab.closest("li"), 12166 "ui-tabs-active", 12167 "ui-state-active", 12168 ), 12169 a.length && o.options.show 12170 ? o._show(a, o.options.show, s) 12171 : (a.show(), s()); 12172 } 12173 var o = this, 12174 a = i.newPanel, 12175 r = i.oldPanel; 12176 (this.running = !0), 12177 r.length && this.options.hide 12178 ? this._hide(r, this.options.hide, function () { 12179 o._removeClass( 12180 i.oldTab.closest("li"), 12181 "ui-tabs-active", 12182 "ui-state-active", 12183 ), 12184 n(); 12185 }) 12186 : (this._removeClass( 12187 i.oldTab.closest("li"), 12188 "ui-tabs-active", 12189 "ui-state-active", 12190 ), 12191 r.hide(), 12192 n()), 12193 r.attr("aria-hidden", "true"), 12194 i.oldTab.attr({ "aria-selected": "false", "aria-expanded": "false" }), 12195 a.length && r.length 12196 ? i.oldTab.attr("tabIndex", -1) 12197 : a.length && 12198 this.tabs 12199 .filter(function () { 12200 return 0 === t(this).attr("tabIndex"); 12201 }) 12202 .attr("tabIndex", -1), 12203 a.attr("aria-hidden", "false"), 12204 i.newTab.attr({ 12205 "aria-selected": "true", 12206 "aria-expanded": "true", 12207 tabIndex: 0, 12208 }); 12209 }, 12210 _activate: function (e) { 12211 var i, 12212 s = this._findActive(e); 12213 s[0] !== this.active[0] && 12214 (s.length || (s = this.active), 12215 (i = s.find(".ui-tabs-anchor")[0]), 12216 this._eventHandler({ 12217 target: i, 12218 currentTarget: i, 12219 preventDefault: t.noop, 12220 })); 12221 }, 12222 _findActive: function (e) { 12223 return e === !1 ? t() : this.tabs.eq(e); 12224 }, 12225 _getIndex: function (e) { 12226 return ( 12227 "string" == typeof e && 12228 (e = this.anchors.index( 12229 this.anchors.filter("[href$='" + t.ui.escapeSelector(e) + "']"), 12230 )), 12231 e 12232 ); 12233 }, 12234 _destroy: function () { 12235 this.xhr && this.xhr.abort(), 12236 this.tablist.removeAttr("role").off(this.eventNamespace), 12237 this.anchors.removeAttr("role tabIndex").removeUniqueId(), 12238 this.tabs.add(this.panels).each(function () { 12239 t.data(this, "ui-tabs-destroy") 12240 ? t(this).remove() 12241 : t(this).removeAttr( 12242 "role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded", 12243 ); 12244 }), 12245 this.tabs.each(function () { 12246 var e = t(this), 12247 i = e.data("ui-tabs-aria-controls"); 12248 i 12249 ? e.attr("aria-controls", i).removeData("ui-tabs-aria-controls") 12250 : e.removeAttr("aria-controls"); 12251 }), 12252 this.panels.show(), 12253 "content" !== this.options.heightStyle && 12254 this.panels.css("height", ""); 12255 }, 12256 enable: function (e) { 12257 var i = this.options.disabled; 12258 i !== !1 && 12259 (void 0 === e 12260 ? (i = !1) 12261 : ((e = this._getIndex(e)), 12262 (i = t.isArray(i) 12263 ? t.map(i, function (t) { 12264 return t !== e ? t : null; 12265 }) 12266 : t.map(this.tabs, function (t, i) { 12267 return i !== e ? i : null; 12268 }))), 12269 this._setOptionDisabled(i)); 12270 }, 12271 disable: function (e) { 12272 var i = this.options.disabled; 12273 if (i !== !0) { 12274 if (void 0 === e) i = !0; 12275 else { 12276 if (((e = this._getIndex(e)), -1 !== t.inArray(e, i))) return; 12277 i = t.isArray(i) ? t.merge([e], i).sort() : [e]; 12278 } 12279 this._setOptionDisabled(i); 12280 } 12281 }, 12282 load: function (e, i) { 12283 e = this._getIndex(e); 12284 var s = this, 12285 n = this.tabs.eq(e), 12286 o = n.find(".ui-tabs-anchor"), 12287 a = this._getPanelForTab(n), 12288 r = { tab: n, panel: a }, 12289 h = function (t, e) { 12290 "abort" === e && s.panels.stop(!1, !0), 12291 s._removeClass(n, "ui-tabs-loading"), 12292 a.removeAttr("aria-busy"), 12293 t === s.xhr && delete s.xhr; 12294 }; 12295 this._isLocal(o[0]) || 12296 ((this.xhr = t.ajax(this._ajaxSettings(o, i, r))), 12297 this.xhr && 12298 "canceled" !== this.xhr.statusText && 12299 (this._addClass(n, "ui-tabs-loading"), 12300 a.attr("aria-busy", "true"), 12301 this.xhr 12302 .done(function (t, e, n) { 12303 setTimeout(function () { 12304 a.html(t), s._trigger("load", i, r), h(n, e); 12305 }, 1); 12306 }) 12307 .fail(function (t, e) { 12308 setTimeout(function () { 12309 h(t, e); 12310 }, 1); 12311 }))); 12312 }, 12313 _ajaxSettings: function (e, i, s) { 12314 var n = this; 12315 return { 12316 url: e.attr("href").replace(/#.*$/, ""), 12317 beforeSend: function (e, o) { 12318 return n._trigger( 12319 "beforeLoad", 12320 i, 12321 t.extend({ jqXHR: e, ajaxSettings: o }, s), 12322 ); 12323 }, 12324 }; 12325 }, 12326 _getPanelForTab: function (e) { 12327 var i = t(e).attr("aria-controls"); 12328 return this.element.find(this._sanitizeSelector("#" + i)); 12329 }, 12330 }), 12331 t.uiBackCompat !== !1 && 12332 t.widget("ui.tabs", t.ui.tabs, { 12333 _processTabs: function () { 12334 this._superApply(arguments), this._addClass(this.tabs, "ui-tab"); 12335 }, 12336 }), 12337 t.ui.tabs, 12338 t.widget("ui.tooltip", { 12339 version: "1.12.1", 12340 options: { 12341 classes: { "ui-tooltip": "ui-corner-all ui-widget-shadow" }, 12342 content: function () { 12343 var e = t(this).attr("title") || ""; 12344 return t("<a>").text(e).html(); 12345 }, 12346 hide: !0, 12347 items: "[title]:not([disabled])", 12348 position: { 12349 my: "left top+15", 12350 at: "left bottom", 12351 collision: "flipfit flip", 12352 }, 12353 show: !0, 12354 track: !1, 12355 close: null, 12356 open: null, 12357 }, 12358 _addDescribedBy: function (e, i) { 12359 var s = (e.attr("aria-describedby") || "").split(/\s+/); 12360 s.push(i), 12361 e 12362 .data("ui-tooltip-id", i) 12363 .attr("aria-describedby", t.trim(s.join(" "))); 12364 }, 12365 _removeDescribedBy: function (e) { 12366 var i = e.data("ui-tooltip-id"), 12367 s = (e.attr("aria-describedby") || "").split(/\s+/), 12368 n = t.inArray(i, s); 12369 -1 !== n && s.splice(n, 1), 12370 e.removeData("ui-tooltip-id"), 12371 (s = t.trim(s.join(" "))), 12372 s ? e.attr("aria-describedby", s) : e.removeAttr("aria-describedby"); 12373 }, 12374 _create: function () {
12375 this._on({ mouseover: "open", focusin: "open" }), 12376 (this.tooltips = {}), 12377 (this.parents = {}), 12378 (this.liveRegion = t("<div>") 12379 .attr({ 12380 role: "log", 12381 "aria-live": "assertive", 12382 "aria-relevant": "additions", 12383 }) 12384 .appendTo(this.document[0].body)), 12385 this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"), 12386 (this.disabledTitles = t([])); 12387 }, 12388 _setOption: function (e, i) { 12389 var s = this; 12390 this._super(e, i), 12391 "content" === e && 12392 t.each(this.tooltips, function (t, e) { 12393 s._updateContent(e.element); 12394 }); 12395 }, 12396 _setOptionDisabled: function (t) { 12397 this[t ? "_disable" : "_enable"](); 12398 }, 12399 _disable: function () { 12400 var e = this; 12401 t.each(this.tooltips, function (i, s) { 12402 var n = t.Event("blur"); 12403 (n.target = n.currentTarget = s.element[0]), e.close(n, !0); 12404 }), 12405 (this.disabledTitles = this.disabledTitles.add( 12406 this.element 12407 .find(this.options.items) 12408 .addBack() 12409 .filter(function () { 12410 var e = t(this); 12411 return e.is("[title]") 12412 ? e 12413 .data("ui-tooltip-title", e.attr("title")) 12414 .removeAttr("title") 12415 : void 0; 12416 }), 12417 )); 12418 }, 12419 _enable: function () { 12420 this.disabledTitles.each(function () { 12421 var e = t(this); 12422 e.data("ui-tooltip-title") && 12423 e.attr("title", e.data("ui-tooltip-title")); 12424 }), 12425 (this.disabledTitles = t([])); 12426 }, 12427 open: function (e) { 12428 var i = this, 12429 s = t(e ? e.target : this.element).closest(this.options.items); 12430 s.length && 12431 !s.data("ui-tooltip-id") && 12432 (s.attr("title") && s.data("ui-tooltip-title", s.attr("title")), 12433 s.data("ui-tooltip-open", !0), 12434 e && 12435 "mouseover" === e.type && 12436 s.parents().each(function () { 12437 var e, 12438 s = t(this); 12439 s.data("ui-tooltip-open") && 12440 ((e = t.Event("blur")), 12441 (e.target = e.currentTarget = this), 12442 i.close(e, !0)), 12443 s.attr("title") && 12444 (s.uniqueId(), 12445 (i.parents[this.id] = { 12446 element: this, 12447 title: s.attr("title"), 12448 }), 12449 s.attr("title", "")); 12450 }), 12451 this._registerCloseHandlers(e, s), 12452 this._updateContent(s, e)); 12453 }, 12454 _updateContent: function (t, e) { 12455 var i, 12456 s = this.options.content, 12457 n = this, 12458 o = e ? e.type : null; 12459 return "string" == typeof s || s.nodeType || s.jquery 12460 ? this._open(e, t, s) 12461 : ((i = s.call(t[0], function (i) { 12462 n._delay(function () { 12463 t.data("ui-tooltip-open") && 12464 (e && (e.type = o), this._open(e, t, i)); 12465 }); 12466 })), 12467 i && this._open(e, t, i), 12468 void 0); 12469 }, 12470 _open: function (e, i, s) { 12471 function n(t) { 12472 (l.of = t), a.is(":hidden") || a.position(l); 12473 } 12474 var o, 12475 a, 12476 r, 12477 h, 12478 l = t.extend({}, this.options.position); 12479 if (s) { 12480 if ((o = this._find(i))) 12481 return o.tooltip.find(".ui-tooltip-content").html(s), void 0; 12482 i.is("[title]") && 12483 (e && "mouseover" === e.type 12484 ? i.attr("title", "") 12485 : i.removeAttr("title")), 12486 (o = this._tooltip(i)), 12487 (a = o.tooltip), 12488 this._addDescribedBy(i, a.attr("id")), 12489 a.find(".ui-tooltip-content").html(s), 12490 this.liveRegion.children().hide(), 12491 (h = t("<div>").html(a.find(".ui-tooltip-content").html())), 12492 h.removeAttr("name").find("[name]").removeAttr("name"), 12493 h.removeAttr("id").find("[id]").removeAttr("id"), 12494 h.appendTo(this.liveRegion), 12495 this.options.track && e && /^mouse/.test(e.type) 12496 ? (this._on(this.document, { mousemove: n }), n(e)) 12497 : a.position(t.extend({ of: i }, this.options.position)), 12498 a.hide(), 12499 this._show(a, this.options.show), 12500 this.options.track && 12501 this.options.show && 12502 this.options.show.delay && 12503 (r = this.delayedShow = 12504 setInterval(function () { 12505 a.is(":visible") && (n(l.of), clearInterval(r)); 12506 }, t.fx.interval)), 12507 this._trigger("open", e, { tooltip: a }); 12508 } 12509 }, 12510 _registerCloseHandlers: function (e, i) { 12511 var s = { 12512 keyup: function (e) { 12513 if (e.keyCode === t.ui.keyCode.ESCAPE) { 12514 var s = t.Event(e); 12515 (s.currentTarget = i[0]), this.close(s, !0); 12516 } 12517 }, 12518 }; 12519 i[0] !== this.element[0] && 12520 (s.remove = function () { 12521 this._removeTooltip(this._find(i).tooltip); 12522 }), 12523 (e && "mouseover" !== e.type) || (s.mouseleave = "close"), 12524 (e && "focusin" !== e.type) || (s.focusout = "close"), 12525 this._on(!0, i, s); 12526 }, 12527 close: function (e) { 12528 var i, 12529 s = this, 12530 n = t(e ? e.currentTarget : this.element), 12531 o = this._find(n); 12532 return o 12533 ? ((i = o.tooltip), 12534 o.closing || 12535 (clearInterval(this.delayedShow), 12536 n.data("ui-tooltip-title") && 12537 !n.attr("title") && 12538 n.attr("title", n.data("ui-tooltip-title")), 12539 this._removeDescribedBy(n), 12540 (o.hiding = !0), 12541 i.stop(!0), 12542 this._hide(i, this.options.hide, function () { 12543 s._removeTooltip(t(this)); 12544 }), 12545 n.removeData("ui-tooltip-open"), 12546 this._off(n, "mouseleave focusout keyup"), 12547 n[0] !== this.element[0] && this._off(n, "remove"), 12548 this._off(this.document, "mousemove"), 12549 e && 12550 "mouseleave" === e.type && 12551 t.each(this.parents, function (e, i) { 12552 t(i.element).attr("title", i.title), delete s.parents[e]; 12553 }), 12554 (o.closing = !0), 12555 this._trigger("close", e, { tooltip: i }), 12556 o.hiding || (o.closing = !1)), 12557 void 0) 12558 : (n.removeData("ui-tooltip-open"), void 0); 12559 }, 12560 _tooltip: function (e) { 12561 var i = t("<div>").attr("role", "tooltip"), 12562 s = t("<div>").appendTo(i), 12563 n = i.uniqueId().attr("id"); 12564 return ( 12565 this._addClass(s, "ui-tooltip-content"), 12566 this._addClass(i, "ui-tooltip", "ui-widget ui-widget-content"), 12567 i.appendTo(this._appendTo(e)), 12568 (this.tooltips[n] = { element: e, tooltip: i }) 12569 ); 12570 }, 12571 _find: function (t) { 12572 var e = t.data("ui-tooltip-id");
12573 return e ? this.tooltips[e] : null; 12574 }, 12575 _removeTooltip: function (t) { 12576 t.remove(), delete this.tooltips[t.attr("id")]; 12577 }, 12578 _appendTo: function (t) { 12579 var e = t.closest(".ui-front, dialog"); 12580 return e.length || (e = this.document[0].body), e; 12581 }, 12582 _destroy: function () { 12583 var e = this; 12584 t.each(this.tooltips, function (i, s) { 12585 var n = t.Event("blur"), 12586 o = s.element; 12587 (n.target = n.currentTarget = o[0]), 12588 e.close(n, !0), 12589 t("#" + i).remove(), 12590 o.data("ui-tooltip-title") && 12591 (o.attr("title") || o.attr("title", o.data("ui-tooltip-title")), 12592 o.removeData("ui-tooltip-title")); 12593 }), 12594 this.liveRegion.remove(); 12595 }, 12596 }), 12597 t.uiBackCompat !== !1 && 12598 t.widget("ui.tooltip", t.ui.tooltip, { 12599 options: { tooltipClass: null }, 12600 _tooltip: function () { 12601 var t = this._superApply(arguments); 12602 return ( 12603 this.options.tooltipClass && 12604 t.tooltip.addClass(this.options.tooltipClass), 12605 t 12606 ); 12607 }, 12608 }), 12609 t.ui.tooltip; 12610}); 12611 12612/*! 12613 * Flickity PACKAGED v2.0.10 12614 * Touch, responsive, flickable carousels 12615 * 12616 * Licensed GPLv3 for open source use 12617 * or Flickity Commercial License for commercial use 12618 * 12619 * http://flickity.metafizzy.co 12620 * Copyright 2017 Metafizzy 12621 */ 12622 12623!(function (t, e) { 12624 "function" == typeof define && define.amd 12625 ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) { 12626 return e(t, i); 12627 }) 12628 : "object" == typeof module && module.exports 12629 ? (module.exports = e(t, require("jquery"))) 12630 : (t.jQueryBridget = e(t, t.jQuery)); 12631})(window, function (t, e) { 12632 "use strict"; 12633 function i(i, o, a) { 12634 function h(t, e, n) { 12635 var s, 12636 o = "$()." + i + '("' + e + '")'; 12637 return ( 12638 t.each(function (t, h) { 12639 var l = a.data(h, i); 12640 if (!l) 12641 return void r( 12642 i + " not initialized. Cannot call methods, i.e. " + o, 12643 ); 12644 var c = l[e]; 12645 if (!c || "_" == e.charAt(0)) 12646 return void r(o + " is not a valid method"); 12647 var d = c.apply(l, n); 12648 s = void 0 === s ? d : s; 12649 }), 12650 void 0 !== s ? s : t 12651 ); 12652 } 12653 function l(t, e) { 12654 t.each(function (t, n) { 12655 var s = a.data(n, i); 12656 s ? (s.option(e), s._init()) : ((s = new o(n, e)), a.data(n, i, s)); 12657 }); 12658 } 12659 (a = a || e || t.jQuery), 12660 a && 12661 (o.prototype.option || 12662 (o.prototype.option = function (t) { 12663 a.isPlainObject(t) && 12664 (this.options = a.extend(!0, this.options, t)); 12665 }), 12666 (a.fn[i] = function (t) { 12667 if ("string" == typeof t) { 12668 var e = s.call(arguments, 1); 12669 return h(this, t, e); 12670 } 12671 return l(this, t), this; 12672 }), 12673 n(a)); 12674 } 12675 function n(t) { 12676 !t || (t && t.bridget) || (t.bridget = i); 12677 } 12678 var s = Array.prototype.slice, 12679 o = t.console, 12680 r = 12681 "undefined" == typeof o 12682 ? function () {} 12683 : function (t) { 12684 o.error(t); 12685 }; 12686 return n(e || t.jQuery), i; 12687}), 12688 (function (t, e) { 12689 "function" == typeof define && define.amd 12690 ? define("ev-emitter/ev-emitter", e) 12691 : "object" == typeof module && module.exports 12692 ? (module.exports = e()) 12693 : (t.EvEmitter = e()); 12694 })("undefined" != typeof window ? window : this, function () { 12695 function t() {} 12696 var e = t.prototype; 12697 return ( 12698 (e.on = function (t, e) { 12699 if (t && e) { 12700 var i = (this._events = this._events || {}), 12701 n = (i[t] = i[t] || []); 12702 return n.indexOf(e) == -1 && n.push(e), this; 12703 } 12704 }), 12705 (e.once = function (t, e) { 12706 if (t && e) { 12707 this.on(t, e); 12708 var i = (this._onceEvents = this._onceEvents || {}), 12709 n = (i[t] = i[t] || {}); 12710 return (n[e] = !0), this; 12711 } 12712 }), 12713 (e.off = function (t, e) { 12714 var i = this._events && this._events[t]; 12715 if (i && i.length) { 12716 var n = i.indexOf(e); 12717 return n != -1 && i.splice(n, 1), this; 12718 } 12719 }), 12720 (e.emitEvent = function (t, e) { 12721 var i = this._events && this._events[t]; 12722 if (i && i.length) { 12723 (i = i.slice(0)), (e = e || []); 12724 for ( 12725 var n = this._onceEvents && this._onceEvents[t], s = 0; 12726 s < i.length; 12727 s++ 12728 ) { 12729 var o = i[s], 12730 r = n && n[o]; 12731 r && (this.off(t, o), delete n[o]), o.apply(this, e); 12732 } 12733 return this; 12734 } 12735 }), 12736 (e.allOff = function () { 12737 delete this._events, delete this._onceEvents; 12738 }), 12739 t 12740 ); 12741 }), 12742 (function (t, e) { 12743 "use strict"; 12744 "function" == typeof define && define.amd 12745 ? define("get-size/get-size", [], function () { 12746 return e(); 12747 }) 12748 : "object" == typeof module && module.exports 12749 ? (module.exports = e()) 12750 : (t.getSize = e()); 12751 })(window, function () { 12752 "use strict"; 12753 function t(t) { 12754 var e = parseFloat(t), 12755 i = t.indexOf("%") == -1 && !isNaN(e); 12756 return i && e; 12757 } 12758 function e() {} 12759 function i() { 12760 for ( 12761 var t = { 12762 width: 0, 12763 height: 0, 12764 innerWidth: 0, 12765 innerHeight: 0, 12766 outerWidth: 0, 12767 outerHeight: 0, 12768 }, 12769 e = 0; 12770 e < l; 12771 e++ 12772 ) { 12773 var i = h[e]; 12774 t[i] = 0; 12775 } 12776 return t; 12777 } 12778 function n(t) { 12779 var e = getComputedStyle(t); 12780 return ( 12781 e || 12782 a( 12783 "Style returned " + 12784 e + 12785 ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1", 12786 ), 12787 e 12788 ); 12789 } 12790 function s() { 12791 if (!c) { 12792 c = !0; 12793 var e = document.createElement("div"); 12794 (e.style.width = "200px"), 12795 (e.style.padding = "1px 2px 3px 4px"), 12796 (e.style.borderStyle = "solid"), 12797 (e.style.borderWidth = "1px 2px 3px 4px"), 12798 (e.style.boxSizing = "border-box"); 12799 var i = document.body || document.documentElement; 12800 i.appendChild(e); 12801 var s = n(e); 12802 (o.isBoxSizeOuter = r = 200 == t(s.width)), i.removeChild(e); 12803 } 12804 } 12805 function o(e) { 12806 if ( 12807 (s(), 12808 "string" == typeof e && (e = document.querySelector(e)), 12809 e && "object" == typeof e && e.nodeType) 12810 ) { 12811 var o = n(e); 12812 if ("none" == o.display) return i(); 12813 var a = {}; 12814 (a.width = e.offsetWidth), (a.height = e.offsetHeight); 12815 for ( 12816 var c = (a.isBorderBox = "border-box" == o.boxSizing), d = 0; 12817 d < l; 12818 d++ 12819 ) { 12820 var u = h[d], 12821 f = o[u], 12822 p = parseFloat(f); 12823 a[u] = isNaN(p) ? 0 : p; 12824 } 12825 var v = a.paddingLeft + a.paddingRight, 12826 g = a.paddingTop + a.paddingBottom, 12827 m = a.marginLeft + a.marginRight, 12828 y = a.marginTop + a.marginBottom, 12829 E = a.borderLeftWidth + a.borderRightWidth, 12830 S = a.borderTopWidth + a.borderBottomWidth, 12831 b = c && r, 12832 x = t(o.width); 12833 x !== !1 && (a.width = x + (b ? 0 : v + E)); 12834 var C = t(o.height); 12835 return ( 12836 C !== !1 && (a.height = C + (b ? 0 : g + S)), 12837 (a.innerWidth = a.width - (v + E)), 12838 (a.innerHeight = a.height - (g + S)), 12839 (a.outerWidth = a.width + m), 12840 (a.outerHeight = a.height + y), 12841 a 12842 ); 12843 } 12844 } 12845 var r, 12846 a = 12847 "undefined" == typeof console 12848 ? e 12849 : function (t) { 12850 console.error(t); 12851 }, 12852 h = [ 12853 "paddingLeft", 12854 "paddingRight", 12855 "paddingTop", 12856 "paddingBottom", 12857 "marginLeft", 12858 "marginRight", 12859 "marginTop", 12860 "marginBottom", 12861 "borderLeftWidth", 12862 "borderRightWidth", 12863 "borderTopWidth", 12864 "borderBottomWidth", 12865 ], 12866 l = h.length, 12867 c = !1; 12868 return o; 12869 }), 12870 (function (t, e) { 12871 "use strict"; 12872 "function" == typeof define && define.amd 12873 ? define("desandro-matches-selector/matches-selector", e) 12874 : "object" == typeof module && module.exports 12875 ? (module.exports = e()) 12876 : (t.matchesSelector = e()); 12877 })(window, function () { 12878 "use strict"; 12879 var t = (function () { 12880 var t = window.Element.prototype; 12881 if (t.matches) return "matches"; 12882 if (t.matchesSelector) return "matchesSelector"; 12883 for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) { 12884 var n = e[i], 12885 s = n + "MatchesSelector"; 12886 if (t[s]) return s; 12887 } 12888 })(); 12889 return function (e, i) { 12890 return e[t](i); 12891 }; 12892 }), 12893 (function (t, e) { 12894 "function" == typeof define && define.amd 12895 ? define( 12896 "fizzy-ui-utils/utils", 12897 ["desandro-matches-selector/matches-selector"], 12898 function (i) { 12899 return e(t, i); 12900 }, 12901 ) 12902 : "object" == typeof module && module.exports 12903 ? (module.exports = e(t, require("desandro-matches-selector"))) 12904 : (t.fizzyUIUtils = e(t, t.matchesSelector)); 12905 })(window, function (t, e) { 12906 var i = {}; 12907 (i.extend = function (t, e) { 12908 for (var i in e) t[i] = e[i]; 12909 return t; 12910 }), 12911 (i.modulo = function (t, e) { 12912 return ((t % e) + e) % e; 12913 }), 12914 (i.makeArray = function (t) { 12915 var e = []; 12916 if (Array.isArray(t)) e = t; 12917 else if (t && "object" == typeof t && "number" == typeof t.length) 12918 for (var i = 0; i < t.length; i++) e.push(t[i]); 12919 else e.push(t); 12920 return e; 12921 }), 12922 (i.removeFrom = function (t, e) { 12923 var i = t.indexOf(e); 12924 i != -1 && t.splice(i, 1); 12925 }), 12926 (i.getParent = function (t, i) { 12927 for (; t.parentNode && t != document.body; ) 12928 if (((t = t.parentNode), e(t, i))) return t; 12929 }), 12930 (i.getQueryElement = function (t) { 12931 return "string" == typeof t ? document.querySelector(t) : t; 12932 }), 12933 (i.handleEvent = function (t) { 12934 var e = "on" + t.type; 12935 this[e] && this[e](t); 12936 }), 12937 (i.filterFindElements = function (t, n) { 12938 t = i.makeArray(t); 12939 var s = []; 12940 return ( 12941 t.forEach(function (t) { 12942 if (t instanceof HTMLElement) { 12943 if (!n) return void s.push(t); 12944 e(t, n) && s.push(t); 12945 for (var i = t.querySelectorAll(n), o = 0; o < i.length; o++) 12946 s.push(i[o]); 12947 } 12948 }), 12949 s 12950 ); 12951 }), 12952 (i.debounceMethod = function (t, e, i) { 12953 var n = t.prototype[e], 12954 s = e + "Timeout"; 12955 t.prototype[e] = function () { 12956 var t = this[s]; 12957 t && clearTimeout(t); 12958 var e = arguments, 12959 o = this; 12960 this[s] = setTimeout(function () { 12961 n.apply(o, e), delete o[s]; 12962 }, i || 100); 12963 }; 12964 }), 12965 (i.docReady = function (t) { 12966 var e = document.readyState; 12967 "complete" == e || "interactive" == e 12968 ? setTimeout(t) 12969 : document.addEventListener("DOMContentLoaded", t); 12970 }), 12971 (i.toDashed = function (t) { 12972 return t 12973 .replace(/(.)([A-Z])/g, function (t, e, i) { 12974 return e + "-" + i; 12975 }) 12976 .toLowerCase(); 12977 }); 12978 var n = t.console; 12979 return ( 12980 (i.htmlInit = function (e, s) { 12981 i.docReady(function () { 12982 var o = i.toDashed(s), 12983 r = "data-" + o, 12984 a = document.querySelectorAll("[" + r + "]"), 12985 h = document.querySelectorAll(".js-" + o), 12986 l = i.makeArray(a).concat(i.makeArray(h)), 12987 c = r + "-options", 12988 d = t.jQuery; 12989 l.forEach(function (t) { 12990 var i, 12991 o = t.getAttribute(r) || t.getAttribute(c); 12992 try { 12993 i = o && JSON.parse(o); 12994 } catch (a) { 12995 return void ( 12996 n && 12997 n.error("Error parsing " + r + " on " + t.className + ": " + a) 12998 ); 12999 } 13000 var h = new e(t, i); 13001 d && d.data(t, s, h); 13002 }); 13003 }); 13004 }), 13005 i 13006 ); 13007 }), 13008 (function (t, e) { 13009 "function" == typeof define && define.amd 13010 ? define("flickity/js/cell", ["get-size/get-size"], function (i) { 13011 return e(t, i); 13012 }) 13013 : "object" == typeof module && module.exports 13014 ? (module.exports = e(t, require("get-size"))) 13015 : ((t.Flickity = t.Flickity || {}), 13016 (t.Flickity.Cell = e(t, t.getSize))); 13017 })(window, function (t, e) { 13018 function i(t, e) { 13019 (this.element = t), (this.parent = e), this.create(); 13020 } 13021 var n = i.prototype; 13022 return ( 13023 (n.create = function () { 13024 (this.element.style.position = "absolute"), 13025 (this.x = 0), 13026 (this.shift = 0); 13027 }), 13028 (n.destroy = function () { 13029 this.element.style.position = ""; 13030 var t = this.parent.originSide; 13031 this.element.style[t] = ""; 13032 }), 13033 (n.getSize = function () { 13034 this.size = e(this.element); 13035 }), 13036 (n.setPosition = function (t) { 13037 (this.x = t), this.updateTarget(), this.renderPosition(t); 13038 }), 13039 (n.updateTarget = n.setDefaultTarget = 13040 function () { 13041 var t = 13042 "left" == this.parent.originSide ? "marginLeft" : "marginRight"; 13043 this.target = 13044 this.x + this.size[t] + this.size.width * this.parent.cellAlign; 13045 }), 13046 (n.renderPosition = function (t) { 13047 var e = this.parent.originSide; 13048 this.element.style[e] = this.parent.getPositionValue(t); 13049 }), 13050 (n.wrapShift = function (t) { 13051 (this.shift = t), 13052 this.renderPosition(this.x + this.parent.slideableWidth * t); 13053 }), 13054 (n.remove = function () { 13055 this.element.parentNode.removeChild(this.element); 13056 }), 13057 i 13058 ); 13059 }), 13060 (function (t, e) { 13061 "function" == typeof define && define.amd 13062 ? define("flickity/js/slide", e) 13063 : "object" == typeof module && module.exports 13064 ? (module.exports = e()) 13065 : ((t.Flickity = t.Flickity || {}), (t.Flickity.Slide = e())); 13066 })(window, function () { 13067 "use strict"; 13068 function t(t) { 13069 (this.parent = t), 13070 (this.isOriginLeft = "left" == t.originSide), 13071 (this.cells = []), 13072 (this.outerWidth = 0), 13073 (this.height = 0); 13074 } 13075 var e = t.prototype; 13076 return ( 13077 (e.addCell = function (t) { 13078 if ( 13079 (this.cells.push(t), 13080 (this.outerWidth += t.size.outerWidth), 13081 (this.height = Math.max(t.size.outerHeight, this.height)), 13082 1 == this.cells.length) 13083 ) { 13084 this.x = t.x; 13085 var e = this.isOriginLeft ? "marginLeft" : "marginRight"; 13086 this.firstMargin = t.size[e]; 13087 } 13088 }), 13089 (e.updateTarget = function () { 13090 var t = this.isOriginLeft ? "marginRight" : "marginLeft", 13091 e = this.getLastCell(), 13092 i = e ? e.size[t] : 0, 13093 n = this.outerWidth - (this.firstMargin + i); 13094 this.target = this.x + this.firstMargin + n * this.parent.cellAlign; 13095 }), 13096 (e.getLastCell = function () { 13097 return this.cells[this.cells.length - 1]; 13098 }), 13099 (e.select = function () { 13100 this.changeSelectedClass("add"); 13101 }), 13102 (e.unselect = function () { 13103 this.changeSelectedClass("remove"); 13104 }), 13105 (e.changeSelectedClass = function (t) {
13106 this.cells.forEach(function (e) { 13107 e.element.classList[t]("is-selected"); 13108 }); 13109 }), 13110 (e.getCellElements = function () { 13111 return this.cells.map(function (t) { 13112 return t.element; 13113 }); 13114 }), 13115 t 13116 ); 13117 }), 13118 (function (t, e) { 13119 "function" == typeof define && define.amd 13120 ? define("flickity/js/animate", ["fizzy-ui-utils/utils"], function (i) { 13121 return e(t, i); 13122 }) 13123 : "object" == typeof module && module.exports 13124 ? (module.exports = e(t, require("fizzy-ui-utils"))) 13125 : ((t.Flickity = t.Flickity || {}), 13126 (t.Flickity.animatePrototype = e(t, t.fizzyUIUtils))); 13127 })(window, function (t, e) { 13128 var i = t.requestAnimationFrame || t.webkitRequestAnimationFrame, 13129 n = 0; 13130 i || 13131 (i = function (t) { 13132 var e = new Date().getTime(), 13133 i = Math.max(0, 16 - (e - n)), 13134 s = setTimeout(t, i); 13135 return (n = e + i), s; 13136 }); 13137 var s = {}; 13138 (s.startAnimation = function () { 13139 this.isAnimating || 13140 ((this.isAnimating = !0), (this.restingFrames = 0), this.animate()); 13141 }), 13142 (s.animate = function () { 13143 this.applyDragForce(), this.applySelectedAttraction(); 13144 var t = this.x; 13145 if ( 13146 (this.integratePhysics(), 13147 this.positionSlider(), 13148 this.settle(t), 13149 this.isAnimating) 13150 ) { 13151 var e = this; 13152 i(function () { 13153 e.animate(); 13154 }); 13155 } 13156 }); 13157 var o = (function () { 13158 var t = document.documentElement.style; 13159 return "string" == typeof t.transform ? "transform" : "WebkitTransform"; 13160 })(); 13161 return ( 13162 (s.positionSlider = function () { 13163 var t = this.x; 13164 this.options.wrapAround && 13165 this.cells.length > 1 && 13166 ((t = e.modulo(t, this.slideableWidth)), 13167 (t -= this.slideableWidth), 13168 this.shiftWrapCells(t)), 13169 (t += this.cursorPosition), 13170 (t = this.options.rightToLeft && o ? -t : t); 13171 var i = this.getPositionValue(t); 13172 this.slider.style[o] = this.isAnimating 13173 ? "translate3d(" + i + ",0,0)" 13174 : "translateX(" + i + ")"; 13175 var n = this.slides[0]; 13176 if (n) { 13177 var s = -this.x - n.target, 13178 r = s / this.slidesWidth; 13179 this.dispatchEvent("scroll", null, [r, s]); 13180 } 13181 }), 13182 (s.positionSliderAtSelected = function () { 13183 this.cells.length && 13184 ((this.x = -this.selectedSlide.target), this.positionSlider()); 13185 }), 13186 (s.getPositionValue = function (t) { 13187 return this.options.percentPosition 13188 ? 0.01 * Math.round((t / this.size.innerWidth) * 1e4) + "%" 13189 : Math.round(t) + "px"; 13190 }), 13191 (s.settle = function (t) { 13192 this.isPointerDown || 13193 Math.round(100 * this.x) != Math.round(100 * t) || 13194 this.restingFrames++, 13195 this.restingFrames > 2 && 13196 ((this.isAnimating = !1), 13197 delete this.isFreeScrolling, 13198 this.positionSlider(), 13199 this.dispatchEvent("settle")); 13200 }), 13201 (s.shiftWrapCells = function (t) { 13202 var e = this.cursorPosition + t; 13203 this._shiftCells(this.beforeShiftCells, e, -1); 13204 var i = 13205 this.size.innerWidth - 13206 (t + this.slideableWidth + this.cursorPosition); 13207 this._shiftCells(this.afterShiftCells, i, 1); 13208 }), 13209 (s._shiftCells = function (t, e, i) { 13210 for (var n = 0; n < t.length; n++) { 13211 var s = t[n], 13212 o = e > 0 ? i : 0; 13213 s.wrapShift(o), (e -= s.size.outerWidth); 13214 } 13215 }), 13216 (s._unshiftCells = function (t) { 13217 if (t && t.length) for (var e = 0; e < t.length; e++) t[e].wrapShift(0); 13218 }), 13219 (s.integratePhysics = function () { 13220 (this.x += this.velocity), (this.velocity *= this.getFrictionFactor()); 13221 }), 13222 (s.applyForce = function (t) { 13223 this.velocity += t; 13224 }), 13225 (s.getFrictionFactor = function () { 13226 return ( 13227 1 - 13228 this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"] 13229 ); 13230 }), 13231 (s.getRestingPosition = function () { 13232 return this.x + this.velocity / (1 - this.getFrictionFactor()); 13233 }), 13234 (s.applyDragForce = function () { 13235 if (this.isPointerDown) { 13236 var t = this.dragX - this.x, 13237 e = t - this.velocity; 13238 this.applyForce(e); 13239 } 13240 }), 13241 (s.applySelectedAttraction = function () { 13242 if (!this.isPointerDown && !this.isFreeScrolling && this.cells.length) { 13243 var t = this.selectedSlide.target * -1 - this.x, 13244 e = t * this.options.selectedAttraction; 13245 this.applyForce(e); 13246 } 13247 }), 13248 s 13249 ); 13250 }), 13251 (function (t, e) { 13252 if ("function" == typeof define && define.amd) 13253 define("flickity/js/flickity", [ 13254 "ev-emitter/ev-emitter", 13255 "get-size/get-size", 13256 "fizzy-ui-utils/utils", 13257 "./cell", 13258 "./slide", 13259 "./animate", 13260 ], function (i, n, s, o, r, a) { 13261 return e(t, i, n, s, o, r, a); 13262 }); 13263 else if ("object" == typeof module && module.exports) 13264 module.exports = e( 13265 t, 13266 require("ev-emitter"), 13267 require("get-size"), 13268 require("fizzy-ui-utils"), 13269 require("./cell"),
13270 require("./slide"), 13271 require("./animate"), 13272 ); 13273 else { 13274 var i = t.Flickity; 13275 t.Flickity = e( 13276 t, 13277 t.EvEmitter, 13278 t.getSize, 13279 t.fizzyUIUtils, 13280 i.Cell, 13281 i.Slide, 13282 i.animatePrototype, 13283 ); 13284 } 13285 })(window, function (t, e, i, n, s, o, r) { 13286 function a(t, e) { 13287 for (t = n.makeArray(t); t.length; ) e.appendChild(t.shift()); 13288 } 13289 function h(t, e) { 13290 var i = n.getQueryElement(t); 13291 if (!i) 13292 return void (d && d.error("Bad element for Flickity: " + (i || t))); 13293 if (((this.element = i), this.element.flickityGUID)) { 13294 var s = f[this.element.flickityGUID]; 13295 return s.option(e), s; 13296 } 13297 l && (this.$element = l(this.element)), 13298 (this.options = n.extend({}, this.constructor.defaults)), 13299 this.option(e), 13300 this._create(); 13301 } 13302 var l = t.jQuery, 13303 c = t.getComputedStyle, 13304 d = t.console, 13305 u = 0, 13306 f = {}; 13307 (h.defaults = { 13308 accessibility: !0, 13309 cellAlign: "center", 13310 freeScrollFriction: 0.075, 13311 friction: 0.28, 13312 namespaceJQueryEvents: !0, 13313 percentPosition: !0, 13314 resize: !0, 13315 selectedAttraction: 0.025, 13316 setGallerySize: !0, 13317 }), 13318 (h.createMethods = []); 13319 var p = h.prototype; 13320 n.extend(p, e.prototype), 13321 (p._create = function () { 13322 var e = (this.guid = ++u); 13323 (this.element.flickityGUID = e), 13324 (f[e] = this), 13325 (this.selectedIndex = 0), 13326 (this.restingFrames = 0), 13327 (this.x = 0), 13328 (this.velocity = 0), 13329 (this.originSide = this.options.rightToLeft ? "right" : "left"), 13330 (this.viewport = document.createElement("div")), 13331 (this.viewport.className = "flickity-viewport"), 13332 this._createSlider(), 13333 (this.options.resize || this.options.watchCSS) && 13334 t.addEventListener("resize", this), 13335 h.createMethods.forEach(function (t) { 13336 this[t](); 13337 }, this), 13338 this.options.watchCSS ? this.watchCSS() : this.activate(); 13339 }), 13340 (p.option = function (t) { 13341 n.extend(this.options, t); 13342 }), 13343 (p.activate = function () { 13344 if (!this.isActive) { 13345 (this.isActive = !0), 13346 this.element.classList.add("flickity-enabled"), 13347 this.options.rightToLeft && 13348 this.element.classList.add("flickity-rtl"),
13349 this.getSize(); 13350 var t = this._filterFindCellElements(this.element.children); 13351 a(t, this.slider), 13352 this.viewport.appendChild(this.slider), 13353 this.element.appendChild(this.viewport), 13354 this.reloadCells(), 13355 this.options.accessibility && 13356 ((this.element.tabIndex = 0), 13357 this.element.addEventListener("keydown", this)), 13358 this.emitEvent("activate"); 13359 var e, 13360 i = this.options.initialIndex; 13361 (e = this.isInitActivated 13362 ? this.selectedIndex 13363 : void 0 !== i && this.cells[i] 13364 ? i 13365 : 0), 13366 this.select(e, !1, !0), 13367 (this.isInitActivated = !0); 13368 } 13369 }), 13370 (p._createSlider = function () { 13371 var t = document.createElement("div"); 13372 (t.className = "flickity-slider"), 13373 (t.style[this.originSide] = 0), 13374 (this.slider = t); 13375 }), 13376 (p._filterFindCellElements = function (t) { 13377 return n.filterFindElements(t, this.options.cellSelector); 13378 }), 13379 (p.reloadCells = function () { 13380 (this.cells = this._makeCells(this.slider.children)), 13381 this.positionCells(), 13382 this._getWrapShiftCells(), 13383 this.setGallerySize(); 13384 }), 13385 (p._makeCells = function (t) { 13386 var e = this._filterFindCellElements(t), 13387 i = e.map(function (t) { 13388 return new s(t, this); 13389 }, this); 13390 return i; 13391 }), 13392 (p.getLastCell = function () { 13393 return this.cells[this.cells.length - 1]; 13394 }), 13395 (p.getLastSlide = function () { 13396 return this.slides[this.slides.length - 1]; 13397 }), 13398 (p.positionCells = function () { 13399 this._sizeCells(this.cells), this._positionCells(0); 13400 }), 13401 (p._positionCells = function (t) { 13402 (t = t || 0), (this.maxCellHeight = t ? this.maxCellHeight || 0 : 0); 13403 var e = 0; 13404 if (t > 0) { 13405 var i = this.cells[t - 1]; 13406 e = i.x + i.size.outerWidth; 13407 } 13408 for (var n = this.cells.length, s = t; s < n; s++) { 13409 var o = this.cells[s]; 13410 o.setPosition(e), 13411 (e += o.size.outerWidth), 13412 (this.maxCellHeight = Math.max( 13413 o.size.outerHeight, 13414 this.maxCellHeight, 13415 )); 13416 } 13417 (this.slideableWidth = e), 13418 this.updateSlides(), 13419 this._containSlides(), 13420 (this.slidesWidth = n 13421 ? this.getLastSlide().target - this.slides[0].target 13422 : 0); 13423 }), 13424 (p._sizeCells = function (t) { 13425 t.forEach(function (t) { 13426 t.getSize(); 13427 }); 13428 }), 13429 (p.updateSlides = function () { 13430 if (((this.slides = []), this.cells.length)) { 13431 var t = new o(this); 13432 this.slides.push(t); 13433 var e = "left" == this.originSide, 13434 i = e ? "marginRight" : "marginLeft", 13435 n = this._getCanCellFit(); 13436 this.cells.forEach(function (e, s) { 13437 if (!t.cells.length) return void t.addCell(e); 13438 var r = 13439 t.outerWidth - t.firstMargin + (e.size.outerWidth - e.size[i]); 13440 n.call(this, s, r) 13441 ? t.addCell(e) 13442 : (t.updateTarget(), 13443 (t = new o(this)), 13444 this.slides.push(t), 13445 t.addCell(e)); 13446 }, this), 13447 t.updateTarget(), 13448 this.updateSelectedSlide(); 13449 } 13450 }), 13451 (p._getCanCellFit = function () { 13452 var t = this.options.groupCells; 13453 if (!t) 13454 return function () { 13455 return !1; 13456 }; 13457 if ("number" == typeof t) { 13458 var e = parseInt(t, 10); 13459 return function (t) { 13460 return t % e !== 0; 13461 }; 13462 } 13463 var i = "string" == typeof t && t.match(/^(\d+)%$/), 13464 n = i ? parseInt(i[1], 10) / 100 : 1; 13465 return function (t, e) { 13466 return e <= (this.size.innerWidth + 1) * n; 13467 }; 13468 }), 13469 (p._init = p.reposition = 13470 function () { 13471 this.positionCells(), this.positionSliderAtSelected(); 13472 }), 13473 (p.getSize = function () { 13474 (this.size = i(this.element)), 13475 this.setCellAlign(), 13476 (this.cursorPosition = this.size.innerWidth * this.cellAlign); 13477 }); 13478 var v = { 13479 center: { left: 0.5, right: 0.5 }, 13480 left: { left: 0, right: 1 }, 13481 right: { right: 0, left: 1 }, 13482 }; 13483 return ( 13484 (p.setCellAlign = function () { 13485 var t = v[this.options.cellAlign]; 13486 this.cellAlign = t ? t[this.originSide] : this.options.cellAlign; 13487 }), 13488 (p.setGallerySize = function () { 13489 if (this.options.setGallerySize) { 13490 var t = 13491 this.options.adaptiveHeight && this.selectedSlide 13492 ? this.selectedSlide.height 13493 : this.maxCellHeight; 13494 this.viewport.style.height = t + "px"; 13495 } 13496 }), 13497 (p._getWrapShiftCells = function () { 13498 if (this.options.wrapAround) { 13499 this._unshiftCells(this.beforeShiftCells), 13500 this._unshiftCells(this.afterShiftCells); 13501 var t = this.cursorPosition, 13502 e = this.cells.length - 1; 13503 (this.beforeShiftCells = this._getGapCells(t, e, -1)), 13504 (t = this.size.innerWidth - this.cursorPosition), 13505 (this.afterShiftCells = this._getGapCells(t, 0, 1)); 13506 } 13507 }), 13508 (p._getGapCells = function (t, e, i) { 13509 for (var n = []; t > 0; ) { 13510 var s = this.cells[e]; 13511 if (!s) break; 13512 n.push(s), (e += i), (t -= s.size.outerWidth); 13513 } 13514 return n; 13515 }), 13516 (p._containSlides = function () { 13517 if ( 13518 this.options.contain && 13519 !this.options.wrapAround && 13520 this.cells.length 13521 ) { 13522 var t = this.options.rightToLeft, 13523 e = t ? "marginRight" : "marginLeft", 13524 i = t ? "marginLeft" : "marginRight", 13525 n = this.slideableWidth - this.getLastCell().size[i], 13526 s = n < this.size.innerWidth, 13527 o = this.cursorPosition + this.cells[0].size[e], 13528 r = n - this.size.innerWidth * (1 - this.cellAlign);
13529 this.slides.forEach(function (t) { 13530 s 13531 ? (t.target = n * this.cellAlign) 13532 : ((t.target = Math.max(t.target, o)), 13533 (t.target = Math.min(t.target, r))); 13534 }, this); 13535 } 13536 }), 13537 (p.dispatchEvent = function (t, e, i) { 13538 var n = e ? [e].concat(i) : i; 13539 if ((this.emitEvent(t, n), l && this.$element)) { 13540 t += this.options.namespaceJQueryEvents ? ".flickity" : ""; 13541 var s = t; 13542 if (e) { 13543 var o = l.Event(e); 13544 (o.type = t), (s = o); 13545 } 13546 this.$element.trigger(s, i); 13547 } 13548 }), 13549 (p.select = function (t, e, i) { 13550 this.isActive && 13551 ((t = parseInt(t, 10)), 13552 this._wrapSelect(t), 13553 (this.options.wrapAround || e) && 13554 (t = n.modulo(t, this.slides.length)), 13555 this.slides[t] && 13556 ((this.selectedIndex = t), 13557 this.updateSelectedSlide(), 13558 i ? this.positionSliderAtSelected() : this.startAnimation(), 13559 this.options.adaptiveHeight && this.setGallerySize(), 13560 this.dispatchEvent("select"), 13561 this.dispatchEvent("cellSelect"))); 13562 }), 13563 (p._wrapSelect = function (t) { 13564 var e = this.slides.length, 13565 i = this.options.wrapAround && e > 1; 13566 if (!i) return t; 13567 var s = n.modulo(t, e), 13568 o = Math.abs(s - this.selectedIndex), 13569 r = Math.abs(s + e - this.selectedIndex), 13570 a = Math.abs(s - e - this.selectedIndex); 13571 !this.isDragSelect && r < o 13572 ? (t += e) 13573 : !this.isDragSelect && a < o && (t -= e), 13574 t < 0 13575 ? (this.x -= this.slideableWidth) 13576 : t >= e && (this.x += this.slideableWidth); 13577 }), 13578 (p.previous = function (t, e) { 13579 this.select(this.selectedIndex - 1, t, e); 13580 }), 13581 (p.next = function (t, e) { 13582 this.select(this.selectedIndex + 1, t, e); 13583 }), 13584 (p.updateSelectedSlide = function () { 13585 var t = this.slides[this.selectedIndex]; 13586 t && 13587 (this.unselectSelectedSlide(), 13588 (this.selectedSlide = t), 13589 t.select(), 13590 (this.selectedCells = t.cells), 13591 (this.selectedElements = t.getCellElements()), 13592 (this.selectedCell = t.cells[0]), 13593 (this.selectedElement = this.selectedElements[0])); 13594 }), 13595 (p.unselectSelectedSlide = function () { 13596 this.selectedSlide && this.selectedSlide.unselect(); 13597 }), 13598 (p.selectCell = function (t, e, i) { 13599 var n; 13600 "number" == typeof t 13601 ? (n = this.cells[t]) 13602 : ("string" == typeof t && (t = this.element.querySelector(t)), 13603 (n = this.getCell(t))); 13604 for (var s = 0; n && s < this.slides.length; s++) { 13605 var o = this.slides[s], 13606 r = o.cells.indexOf(n); 13607 if (r != -1) return void this.select(s, e, i); 13608 } 13609 }), 13610 (p.getCell = function (t) { 13611 for (var e = 0; e < this.cells.length; e++) { 13612 var i = this.cells[e]; 13613 if (i.element == t) return i; 13614 } 13615 }), 13616 (p.getCells = function (t) { 13617 t = n.makeArray(t); 13618 var e = []; 13619 return ( 13620 t.forEach(function (t) { 13621 var i = this.getCell(t); 13622 i && e.push(i); 13623 }, this), 13624 e 13625 ); 13626 }), 13627 (p.getCellElements = function () { 13628 return this.cells.map(function (t) { 13629 return t.element; 13630 }); 13631 }), 13632 (p.getParentCell = function (t) { 13633 var e = this.getCell(t); 13634 return e 13635 ? e 13636 : ((t = n.getParent(t, ".flickity-slider > *")), this.getCell(t)); 13637 }), 13638 (p.getAdjacentCellElements = function (t, e) { 13639 if (!t) return this.selectedSlide.getCellElements(); 13640 e = void 0 === e ? this.selectedIndex : e; 13641 var i = this.slides.length; 13642 if (1 + 2 * t >= i) return this.getCellElements(); 13643 for (var s = [], o = e - t; o <= e + t; o++) { 13644 var r = this.options.wrapAround ? n.modulo(o, i) : o, 13645 a = this.slides[r]; 13646 a && (s = s.concat(a.getCellElements())); 13647 } 13648 return s; 13649 }), 13650 (p.uiChange = function () { 13651 this.emitEvent("uiChange"); 13652 }), 13653 (p.childUIPointerDown = function (t) { 13654 this.emitEvent("childUIPointerDown", [t]); 13655 }), 13656 (p.onresize = function () { 13657 this.watchCSS(), this.resize(); 13658 }), 13659 n.debounceMethod(h, "onresize", 150), 13660 (p.resize = function () { 13661 if (this.isActive) {
13662 this.getSize(), 13663 this.options.wrapAround && 13664 (this.x = n.modulo(this.x, this.slideableWidth)), 13665 this.positionCells(), 13666 this._getWrapShiftCells(), 13667 this.setGallerySize(), 13668 this.emitEvent("resize"); 13669 var t = this.selectedElements && this.selectedElements[0]; 13670 this.selectCell(t, !1, !0); 13671 } 13672 }), 13673 (p.watchCSS = function () { 13674 var t = this.options.watchCSS; 13675 if (t) { 13676 var e = c(this.element, ":after").content; 13677 e.indexOf("flickity") != -1 ? this.activate() : this.deactivate(); 13678 } 13679 }), 13680 (p.onkeydown = function (t) { 13681 if ( 13682 this.options.accessibility && 13683 (!document.activeElement || document.activeElement == this.element) 13684 ) 13685 if (37 == t.keyCode) { 13686 var e = this.options.rightToLeft ? "next" : "previous"; 13687 this.uiChange(), this[e](); 13688 } else if (39 == t.keyCode) { 13689 var i = this.options.rightToLeft ? "previous" : "next"; 13690 this.uiChange(), this[i](); 13691 } 13692 }), 13693 (p.deactivate = function () { 13694 this.isActive && 13695 (this.element.classList.remove("flickity-enabled"), 13696 this.element.classList.remove("flickity-rtl"), 13697 this.cells.forEach(function (t) { 13698 t.destroy(); 13699 }), 13700 this.unselectSelectedSlide(), 13701 this.element.removeChild(this.viewport), 13702 a(this.slider.children, this.element), 13703 this.options.accessibility && 13704 (this.element.removeAttribute("tabIndex"), 13705 this.element.removeEventListener("keydown", this)), 13706 (this.isActive = !1), 13707 this.emitEvent("deactivate")); 13708 }), 13709 (p.destroy = function () { 13710 this.deactivate(), 13711 t.removeEventListener("resize", this), 13712 this.emitEvent("destroy"), 13713 l && this.$element && l.removeData(this.element, "flickity"), 13714 delete this.element.flickityGUID, 13715 delete f[this.guid]; 13716 }), 13717 n.extend(p, r), 13718 (h.data = function (t) { 13719 t = n.getQueryElement(t); 13720 var e = t && t.flickityGUID; 13721 return e && f[e]; 13722 }), 13723 n.htmlInit(h, "flickity"), 13724 l && l.bridget && l.bridget("flickity", h), 13725 (h.setJQuery = function (t) { 13726 l = t; 13727 }), 13728 (h.Cell = s), 13729 h 13730 ); 13731 }), 13732 (function (t, e) { 13733 "function" == typeof define && define.amd 13734 ? define( 13735 "unipointer/unipointer", 13736 ["ev-emitter/ev-emitter"], 13737 function (i) { 13738 return e(t, i); 13739 }, 13740 ) 13741 : "object" == typeof module && module.exports 13742 ? (module.exports = e(t, require("ev-emitter"))) 13743 : (t.Unipointer = e(t, t.EvEmitter)); 13744 })(window, function (t, e) { 13745 function i() {} 13746 function n() {} 13747 var s = (n.prototype = Object.create(e.prototype)); 13748 (s.bindStartEvent = function (t) { 13749 this._bindStartEvent(t, !0); 13750 }), 13751 (s.unbindStartEvent = function (t) { 13752 this._bindStartEvent(t, !1); 13753 }), 13754 (s._bindStartEvent = function (e, i) { 13755 i = void 0 === i || !!i; 13756 var n = i ? "addEventListener" : "removeEventListener"; 13757 t.PointerEvent 13758 ? e[n]("pointerdown", this) 13759 : (e[n]("mousedown", this), e[n]("touchstart", this)); 13760 }), 13761 (s.handleEvent = function (t) { 13762 var e = "on" + t.type; 13763 this[e] && this[e](t); 13764 }), 13765 (s.getTouch = function (t) { 13766 for (var e = 0; e < t.length; e++) { 13767 var i = t[e]; 13768 if (i.identifier == this.pointerIdentifier) return i; 13769 } 13770 }), 13771 (s.onmousedown = function (t) { 13772 var e = t.button; 13773 (e && 0 !== e && 1 !== e) || this._pointerDown(t, t); 13774 }), 13775 (s.ontouchstart = function (t) { 13776 this._pointerDown(t, t.changedTouches[0]); 13777 }), 13778 (s.onpointerdown = function (t) { 13779 this._pointerDown(t, t); 13780 }), 13781 (s._pointerDown = function (t, e) { 13782 this.isPointerDown || 13783 ((this.isPointerDown = !0), 13784 (this.pointerIdentifier = 13785 void 0 !== e.pointerId ? e.pointerId : e.identifier), 13786 this.pointerDown(t, e)); 13787 }), 13788 (s.pointerDown = function (t, e) { 13789 this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]); 13790 }); 13791 var o = { 13792 mousedown: ["mousemove", "mouseup"], 13793 touchstart: ["touchmove", "touchend", "touchcancel"], 13794 pointerdown: ["pointermove", "pointerup", "pointercancel"], 13795 }; 13796 return ( 13797 (s._bindPostStartEvents = function (e) { 13798 if (e) { 13799 var i = o[e.type];
13800 i.forEach(function (e) { 13801 t.addEventListener(e, this); 13802 }, this), 13803 (this._boundPointerEvents = i); 13804 } 13805 }), 13806 (s._unbindPostStartEvents = function () { 13807 this._boundPointerEvents && 13808 (this._boundPointerEvents.forEach(function (e) { 13809 t.removeEventListener(e, this); 13810 }, this), 13811 delete this._boundPointerEvents); 13812 }), 13813 (s.onmousemove = function (t) { 13814 this._pointerMove(t, t); 13815 }), 13816 (s.onpointermove = function (t) { 13817 t.pointerId == this.pointerIdentifier && this._pointerMove(t, t); 13818 }), 13819 (s.ontouchmove = function (t) { 13820 var e = this.getTouch(t.changedTouches); 13821 e && this._pointerMove(t, e); 13822 }), 13823 (s._pointerMove = function (t, e) { 13824 this.pointerMove(t, e); 13825 }), 13826 (s.pointerMove = function (t, e) { 13827 this.emitEvent("pointerMove", [t, e]); 13828 }), 13829 (s.onmouseup = function (t) { 13830 this._pointerUp(t, t); 13831 }), 13832 (s.onpointerup = function (t) { 13833 t.pointerId == this.pointerIdentifier && this._pointerUp(t, t); 13834 }), 13835 (s.ontouchend = function (t) { 13836 var e = this.getTouch(t.changedTouches); 13837 e && this._pointerUp(t, e); 13838 }), 13839 (s._pointerUp = function (t, e) { 13840 this._pointerDone(), this.pointerUp(t, e); 13841 }), 13842 (s.pointerUp = function (t, e) { 13843 this.emitEvent("pointerUp", [t, e]); 13844 }), 13845 (s._pointerDone = function () { 13846 (this.isPointerDown = !1), 13847 delete this.pointerIdentifier, 13848 this._unbindPostStartEvents(), 13849 this.pointerDone(); 13850 }), 13851 (s.pointerDone = i), 13852 (s.onpointercancel = function (t) { 13853 t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t); 13854 }), 13855 (s.ontouchcancel = function (t) { 13856 var e = this.getTouch(t.changedTouches); 13857 e && this._pointerCancel(t, e); 13858 }), 13859 (s._pointerCancel = function (t, e) { 13860 this._pointerDone(), this.pointerCancel(t, e); 13861 }), 13862 (s.pointerCancel = function (t, e) { 13863 this.emitEvent("pointerCancel", [t, e]); 13864 }), 13865 (n.getPointerPoint = function (t) { 13866 return { x: t.pageX, y: t.pageY }; 13867 }), 13868 n 13869 ); 13870 }), 13871 (function (t, e) { 13872 "function" == typeof define && define.amd 13873 ? define( 13874 "unidragger/unidragger", 13875 ["unipointer/unipointer"], 13876 function (i) { 13877 return e(t, i); 13878 }, 13879 ) 13880 : "object" == typeof module && module.exports 13881 ? (module.exports = e(t, require("unipointer"))) 13882 : (t.Unidragger = e(t, t.Unipointer)); 13883 })(window, function (t, e) { 13884 function i() {} 13885 var n = (i.prototype = Object.create(e.prototype)); 13886 return ( 13887 (n.bindHandles = function () { 13888 this._bindHandles(!0); 13889 }), 13890 (n.unbindHandles = function () { 13891 this._bindHandles(!1); 13892 }), 13893 (n._bindHandles = function (e) { 13894 e = void 0 === e || !!e; 13895 for ( 13896 var i = e ? "addEventListener" : "removeEventListener", n = 0; 13897 n < this.handles.length; 13898 n++ 13899 ) { 13900 var s = this.handles[n]; 13901 this._bindStartEvent(s, e), 13902 s[i]("click", this), 13903 t.PointerEvent && 13904 (s.style.touchAction = e ? this._touchActionValue : ""); 13905 } 13906 }), 13907 (n._touchActionValue = "none"), 13908 (n.pointerDown = function (t, e) { 13909 if ("INPUT" == t.target.nodeName && "range" == t.target.type) 13910 return (this.isPointerDown = !1), void delete this.pointerIdentifier; 13911 this._dragPointerDown(t, e); 13912 var i = document.activeElement; 13913 i && i.blur && i.blur(), 13914 this._bindPostStartEvents(t), 13915 this.emitEvent("pointerDown", [t, e]); 13916 }), 13917 (n._dragPointerDown = function (t, i) { 13918 this.pointerDownPoint = e.getPointerPoint(i); 13919 var n = this.canPreventDefaultOnPointerDown(t, i); 13920 n && t.preventDefault(); 13921 }), 13922 (n.canPreventDefaultOnPointerDown = function (t) { 13923 return "SELECT" != t.target.nodeName; 13924 }), 13925 (n.pointerMove = function (t, e) { 13926 var i = this._dragPointerMove(t, e); 13927 this.emitEvent("pointerMove", [t, e, i]), this._dragMove(t, e, i); 13928 }), 13929 (n._dragPointerMove = function (t, i) { 13930 var n = e.getPointerPoint(i), 13931 s = { 13932 x: n.x - this.pointerDownPoint.x, 13933 y: n.y - this.pointerDownPoint.y, 13934 }; 13935 return ( 13936 !this.isDragging && this.hasDragStarted(s) && this._dragStart(t, i), s 13937 ); 13938 }), 13939 (n.hasDragStarted = function (t) { 13940 return Math.abs(t.x) > 3 || Math.abs(t.y) > 3; 13941 }), 13942 (n.pointerUp = function (t, e) { 13943 this.emitEvent("pointerUp", [t, e]), this._dragPointerUp(t, e); 13944 }), 13945 (n._dragPointerUp = function (t, e) { 13946 this.isDragging ? this._dragEnd(t, e) : this._staticClick(t, e); 13947 }), 13948 (n._dragStart = function (t, i) { 13949 (this.isDragging = !0), 13950 (this.dragStartPoint = e.getPointerPoint(i)),
13951 (this.isPreventingClicks = !0), 13952 this.dragStart(t, i); 13953 }), 13954 (n.dragStart = function (t, e) { 13955 this.emitEvent("dragStart", [t, e]); 13956 }), 13957 (n._dragMove = function (t, e, i) { 13958 this.isDragging && this.dragMove(t, e, i); 13959 }), 13960 (n.dragMove = function (t, e, i) { 13961 t.preventDefault(), this.emitEvent("dragMove", [t, e, i]); 13962 }), 13963 (n._dragEnd = function (t, e) { 13964 (this.isDragging = !1), 13965 setTimeout( 13966 function () { 13967 delete this.isPreventingClicks; 13968 }.bind(this), 13969 ), 13970 this.dragEnd(t, e); 13971 }), 13972 (n.dragEnd = function (t, e) { 13973 this.emitEvent("dragEnd", [t, e]); 13974 }), 13975 (n.onclick = function (t) { 13976 this.isPreventingClicks && t.preventDefault(); 13977 }), 13978 (n._staticClick = function (t, e) { 13979 if (!this.isIgnoringMouseUp || "mouseup" != t.type) { 13980 var i = t.target.nodeName; 13981 ("INPUT" != i && "TEXTAREA" != i) || t.target.focus(), 13982 this.staticClick(t, e), 13983 "mouseup" != t.type && 13984 ((this.isIgnoringMouseUp = !0), 13985 setTimeout( 13986 function () { 13987 delete this.isIgnoringMouseUp; 13988 }.bind(this), 13989 400, 13990 )); 13991 } 13992 }), 13993 (n.staticClick = function (t, e) { 13994 this.emitEvent("staticClick", [t, e]); 13995 }), 13996 (i.getPointerPoint = e.getPointerPoint), 13997 i 13998 ); 13999 }), 14000 (function (t, e) { 14001 "function" == typeof define && define.amd 14002 ? define( 14003 "flickity/js/drag", 14004 ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], 14005 function (i, n, s) { 14006 return e(t, i, n, s); 14007 }, 14008 ) 14009 : "object" == typeof module && module.exports 14010 ? (module.exports = e( 14011 t, 14012 require("./flickity"), 14013 require("unidragger"), 14014 require("fizzy-ui-utils"), 14015 )) 14016 : (t.Flickity = e(t, t.Flickity, t.Unidragger, t.fizzyUIUtils)); 14017 })(window, function (t, e, i, n) { 14018 function s(t) { 14019 var e = "touchstart" == t.type, 14020 i = "touch" == t.pointerType, 14021 n = d[t.target.nodeName]; 14022 return e || i || n; 14023 } 14024 function o() { 14025 return { x: t.pageXOffset, y: t.pageYOffset }; 14026 } 14027 n.extend(e.defaults, { draggable: !0, dragThreshold: 3 }), 14028 e.createMethods.push("_createDrag"); 14029 var r = e.prototype; 14030 n.extend(r, i.prototype), (r._touchActionValue = "pan-y"); 14031 var a = "createTouch" in document, 14032 h = !1; 14033 (r._createDrag = function () { 14034 this.on("activate", this.bindDrag), 14035 this.on("uiChange", this._uiChangeDrag), 14036 this.on("childUIPointerDown", this._childUIPointerDownDrag), 14037 this.on("deactivate", this.unbindDrag), 14038 a && !h && (t.addEventListener("touchmove", function () {}), (h = !0)); 14039 }), 14040 (r.bindDrag = function () { 14041 this.options.draggable && 14042 !this.isDragBound && 14043 (this.element.classList.add("is-draggable"), 14044 (this.handles = [this.viewport]), 14045 this.bindHandles(), 14046 (this.isDragBound = !0)); 14047 }), 14048 (r.unbindDrag = function () { 14049 this.isDragBound && 14050 (this.element.classList.remove("is-draggable"), 14051 this.unbindHandles(), 14052 delete this.isDragBound); 14053 }), 14054 (r._uiChangeDrag = function () { 14055 delete this.isFreeScrolling; 14056 }), 14057 (r._childUIPointerDownDrag = function (t) { 14058 t.preventDefault(), this.pointerDownFocus(t); 14059 }); 14060 var l = { TEXTAREA: !0, INPUT: !0, OPTION: !0 }, 14061 c = { 14062 radio: !0, 14063 checkbox: !0, 14064 button: !0, 14065 submit: !0, 14066 image: !0, 14067 file: !0, 14068 }; 14069 (r.pointerDown = function (e, i) { 14070 var n = l[e.target.nodeName] && !c[e.target.type]; 14071 if (n) 14072 return (this.isPointerDown = !1), void delete this.pointerIdentifier; 14073 this._dragPointerDown(e, i); 14074 var s = document.activeElement; 14075 s && s.blur && s != this.element && s != document.body && s.blur(), 14076 this.pointerDownFocus(e), 14077 (this.dragX = this.x), 14078 this.viewport.classList.add("is-pointer-down"), 14079 this._bindPostStartEvents(e), 14080 (this.pointerDownScroll = o()), 14081 t.addEventListener("scroll", this), 14082 this.dispatchEvent("pointerDown", e, [i]); 14083 }), 14084 (r.pointerDownFocus = function (e) { 14085 var i = s(e); 14086 if (this.options.accessibility && !i) { 14087 var n = t.pageYOffset; 14088 this.element.focus(), 14089 t.pageYOffset != n && t.scrollTo(t.pageXOffset, n); 14090 } 14091 }); 14092 var d = { INPUT: !0, SELECT: !0 }; 14093 return ( 14094 (r.canPreventDefaultOnPointerDown = function (t) { 14095 var e = s(t); 14096 return !e; 14097 }), 14098 (r.hasDragStarted = function (t) { 14099 return Math.abs(t.x) > this.options.dragThreshold; 14100 }), 14101 (r.pointerUp = function (t, e) { 14102 delete this.isTouchScrolling, 14103 this.viewport.classList.remove("is-pointer-down"), 14104 this.dispatchEvent("pointerUp", t, [e]), 14105 this._dragPointerUp(t, e); 14106 }), 14107 (r.pointerDone = function () { 14108 t.removeEventListener("scroll", this), delete this.pointerDownScroll; 14109 }), 14110 (r.dragStart = function (e, i) { 14111 (this.dragStartPosition = this.x), 14112 this.startAnimation(), 14113 t.removeEventListener("scroll", this), 14114 this.dispatchEvent("dragStart", e, [i]); 14115 }), 14116 (r.pointerMove = function (t, e) { 14117 var i = this._dragPointerMove(t, e); 14118 this.dispatchEvent("pointerMove", t, [e, i]), this._dragMove(t, e, i); 14119 }), 14120 (r.dragMove = function (t, e, i) { 14121 t.preventDefault(), (this.previousDragX = this.dragX); 14122 var n = this.options.rightToLeft ? -1 : 1, 14123 s = this.dragStartPosition + i.x * n; 14124 if (!this.options.wrapAround && this.slides.length) { 14125 var o = Math.max(-this.slides[0].target, this.dragStartPosition); 14126 s = s > o ? 0.5 * (s + o) : s; 14127 var r = Math.min(-this.getLastSlide().target, this.dragStartPosition); 14128 s = s < r ? 0.5 * (s + r) : s; 14129 }
14130 (this.dragX = s), 14131 (this.dragMoveTime = new Date()), 14132 this.dispatchEvent("dragMove", t, [e, i]); 14133 }), 14134 (r.dragEnd = function (t, e) { 14135 this.options.freeScroll && (this.isFreeScrolling = !0); 14136 var i = this.dragEndRestingSelect(); 14137 if (this.options.freeScroll && !this.options.wrapAround) { 14138 var n = this.getRestingPosition(); 14139 this.isFreeScrolling = 14140 -n > this.slides[0].target && -n < this.getLastSlide().target; 14141 } else 14142 this.options.freeScroll || 14143 i != this.selectedIndex || 14144 (i += this.dragEndBoostSelect()); 14145 delete this.previousDragX, 14146 (this.isDragSelect = this.options.wrapAround), 14147 this.select(i), 14148 delete this.isDragSelect, 14149 this.dispatchEvent("dragEnd", t, [e]); 14150 }), 14151 (r.dragEndRestingSelect = function () { 14152 var t = this.getRestingPosition(), 14153 e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)), 14154 i = this._getClosestResting(t, e, 1), 14155 n = this._getClosestResting(t, e, -1), 14156 s = i.distance < n.distance ? i.index : n.index; 14157 return s; 14158 }), 14159 (r._getClosestResting = function (t, e, i) { 14160 for ( 14161 var n = this.selectedIndex, 14162 s = 1 / 0, 14163 o = 14164 this.options.contain && !this.options.wrapAround 14165 ? function (t, e) { 14166 return t <= e; 14167 } 14168 : function (t, e) { 14169 return t < e; 14170 }; 14171 o(e, s) && 14172 ((n += i), (s = e), (e = this.getSlideDistance(-t, n)), null !== e); 14173 14174 ) 14175 e = Math.abs(e); 14176 return { distance: s, index: n - i }; 14177 }), 14178 (r.getSlideDistance = function (t, e) { 14179 var i = this.slides.length, 14180 s = this.options.wrapAround && i > 1, 14181 o = s ? n.modulo(e, i) : e, 14182 r = this.slides[o]; 14183 if (!r) return null; 14184 var a = s ? this.slideableWidth * Math.floor(e / i) : 0; 14185 return t - (r.target + a); 14186 }), 14187 (r.dragEndBoostSelect = function () { 14188 if ( 14189 void 0 === this.previousDragX || 14190 !this.dragMoveTime || 14191 new Date() - this.dragMoveTime > 100 14192 ) 14193 return 0; 14194 var t = this.getSlideDistance(-this.dragX, this.selectedIndex), 14195 e = this.previousDragX - this.dragX; 14196 return t > 0 && e > 0 ? 1 : t < 0 && e < 0 ? -1 : 0; 14197 }), 14198 (r.staticClick = function (t, e) { 14199 var i = this.getParentCell(t.target), 14200 n = i && i.element, 14201 s = i && this.cells.indexOf(i); 14202 this.dispatchEvent("staticClick", t, [e, n, s]); 14203 }), 14204 (r.onscroll = function () { 14205 var t = o(), 14206 e = this.pointerDownScroll.x - t.x, 14207 i = this.pointerDownScroll.y - t.y; 14208 (Math.abs(e) > 3 || Math.abs(i) > 3) && this._pointerDone(); 14209 }), 14210 e 14211 ); 14212 }), 14213 (function (t, e) { 14214 "function" == typeof define && define.amd 14215 ? define( 14216 "tap-listener/tap-listener", 14217 ["unipointer/unipointer"], 14218 function (i) { 14219 return e(t, i); 14220 }, 14221 ) 14222 : "object" == typeof module && module.exports 14223 ? (module.exports = e(t, require("unipointer"))) 14224 : (t.TapListener = e(t, t.Unipointer)); 14225 })(window, function (t, e) { 14226 function i(t) { 14227 this.bindTap(t); 14228 } 14229 var n = (i.prototype = Object.create(e.prototype)); 14230 return ( 14231 (n.bindTap = function (t) { 14232 t && 14233 (this.unbindTap(), 14234 (this.tapElement = t), 14235 this._bindStartEvent(t, !0)); 14236 }), 14237 (n.unbindTap = function () { 14238 this.tapElement && 14239 (this._bindStartEvent(this.tapElement, !0), delete this.tapElement); 14240 }), 14241 (n.pointerUp = function (i, n) { 14242 if (!this.isIgnoringMouseUp || "mouseup" != i.type) { 14243 var s = e.getPointerPoint(n), 14244 o = this.tapElement.getBoundingClientRect(), 14245 r = t.pageXOffset, 14246 a = t.pageYOffset, 14247 h = 14248 s.x >= o.left + r && 14249 s.x <= o.right + r && 14250 s.y >= o.top + a && 14251 s.y <= o.bottom + a; 14252 if ((h && this.emitEvent("tap", [i, n]), "mouseup" != i.type)) { 14253 this.isIgnoringMouseUp = !0; 14254 var l = this; 14255 setTimeout(function () { 14256 delete l.isIgnoringMouseUp; 14257 }, 400); 14258 } 14259 } 14260 }), 14261 (n.destroy = function () { 14262 this.pointerDone(), this.unbindTap(); 14263 }), 14264 i 14265 ); 14266 }), 14267 (function (t, e) { 14268 "function" == typeof define && define.amd 14269 ? define( 14270 "flickity/js/prev-next-button", 14271 ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], 14272 function (i, n, s) { 14273 return e(t, i, n, s); 14274 }, 14275 ) 14276 : "object" == typeof module && module.exports 14277 ? (module.exports = e( 14278 t, 14279 require("./flickity"), 14280 require("tap-listener"), 14281 require("fizzy-ui-utils"), 14282 )) 14283 : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils); 14284 })(window, function (t, e, i, n) { 14285 "use strict"; 14286 function s(t, e) { 14287 (this.direction = t), (this.parent = e), this._create(); 14288 } 14289 function o(t) { 14290 return "string" == typeof t 14291 ? t 14292 : "M " + 14293 t.x0 + 14294 ",50 L " + 14295 t.x1 + 14296 "," + 14297 (t.y1 + 50) + 14298 " L " + 14299 t.x2 + 14300 "," + 14301 (t.y2 + 50) + 14302 " L " + 14303 t.x3 + 14304 ",50 L " + 14305 t.x2 + 14306 "," + 14307 (50 - t.y2) + 14308 " L " + 14309 t.x1 + 14310 "," + 14311 (50 - t.y1) + 14312 " Z"; 14313 } 14314 var r = "http://www.w3.org/2000/svg"; 14315 (s.prototype = new i()), 14316 (s.prototype._create = function () { 14317 (this.isEnabled = !0), (this.isPrevious = this.direction == -1); 14318 var t = this.parent.options.rightToLeft ? 1 : -1; 14319 this.isLeft = this.direction == t; 14320 var e = (this.element = document.createElement("button")); 14321 (e.className = "flickity-prev-next-button"), 14322 (e.className += this.isPrevious ? " previous" : " next"), 14323 e.setAttribute("type", "button"), 14324 this.disable(), 14325 e.setAttribute("aria-label", this.isPrevious ? "previous" : "next"); 14326 var i = this.createSVG(); 14327 e.appendChild(i), 14328 this.on("tap", this.onTap), 14329 this.parent.on("select", this.update.bind(this)), 14330 this.on( 14331 "pointerDown", 14332 this.parent.childUIPointerDown.bind(this.parent), 14333 ); 14334 }), 14335 (s.prototype.activate = function () { 14336 this.bindTap(this.element), 14337 this.element.addEventListener("click", this), 14338 this.parent.element.appendChild(this.element); 14339 }), 14340 (s.prototype.deactivate = function () { 14341 this.parent.element.removeChild(this.element), 14342 i.prototype.destroy.call(this), 14343 this.element.removeEventListener("click", this); 14344 }), 14345 (s.prototype.createSVG = function () { 14346 var t = document.createElementNS(r, "svg"); 14347 t.setAttribute("viewBox", "0 0 100 100"); 14348 var e = document.createElementNS(r, "path"), 14349 i = o(this.parent.options.arrowShape); 14350 return ( 14351 e.setAttribute("d", i), 14352 e.setAttribute("class", "arrow"), 14353 this.isLeft || 14354 e.setAttribute("transform", "translate(100, 100) rotate(180) "), 14355 t.appendChild(e), 14356 t 14357 ); 14358 }), 14359 (s.prototype.onTap = function () { 14360 if (this.isEnabled) { 14361 this.parent.uiChange(); 14362 var t = this.isPrevious ? "previous" : "next"; 14363 this.parent[t](); 14364 } 14365 }), 14366 (s.prototype.handleEvent = n.handleEvent), 14367 (s.prototype.onclick = function () { 14368 var t = document.activeElement; 14369 t && t == this.element && this.onTap(); 14370 }), 14371 (s.prototype.enable = function () { 14372 this.isEnabled || ((this.element.disabled = !1), (this.isEnabled = !0)); 14373 }), 14374 (s.prototype.disable = function () { 14375 this.isEnabled && ((this.element.disabled = !0), (this.isEnabled = !1)); 14376 }), 14377 (s.prototype.update = function () { 14378 var t = this.parent.slides; 14379 if (this.parent.options.wrapAround && t.length > 1) 14380 return void this.enable(); 14381 var e = t.length ? t.length - 1 : 0, 14382 i = this.isPrevious ? 0 : e, 14383 n = this.parent.selectedIndex == i ? "disable" : "enable"; 14384 this[n](); 14385 }), 14386 (s.prototype.destroy = function () { 14387 this.deactivate(); 14388 }), 14389 n.extend(e.defaults, { 14390 prevNextButtons: !0, 14391 arrowShape: { x0: 10, x1: 60, y1: 50, x2: 70, y2: 40, x3: 30 }, 14392 }), 14393 e.createMethods.push("_createPrevNextButtons"); 14394 var a = e.prototype; 14395 return ( 14396 (a._createPrevNextButtons = function () { 14397 this.options.prevNextButtons && 14398 ((this.prevButton = new s(-1, this)), 14399 (this.nextButton = new s(1, this)), 14400 this.on("activate", this.activatePrevNextButtons)); 14401 }), 14402 (a.activatePrevNextButtons = function () { 14403 this.prevButton.activate(), 14404 this.nextButton.activate(), 14405 this.on("deactivate", this.deactivatePrevNextButtons); 14406 }), 14407 (a.deactivatePrevNextButtons = function () { 14408 this.prevButton.deactivate(), 14409 this.nextButton.deactivate(), 14410 this.off("deactivate", this.deactivatePrevNextButtons); 14411 }), 14412 (e.PrevNextButton = s), 14413 e 14414 ); 14415 }), 14416 (function (t, e) { 14417 "function" == typeof define && define.amd 14418 ? define( 14419 "flickity/js/page-dots", 14420 ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], 14421 function (i, n, s) { 14422 return e(t, i, n, s); 14423 }, 14424 ) 14425 : "object" == typeof module && module.exports 14426 ? (module.exports = e( 14427 t, 14428 require("./flickity"), 14429 require("tap-listener"), 14430 require("fizzy-ui-utils"), 14431 )) 14432 : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils); 14433 })(window, function (t, e, i, n) { 14434 function s(t) { 14435 (this.parent = t), this._create(); 14436 } 14437 (s.prototype = new i()), 14438 (s.prototype._create = function () { 14439 (this.holder = document.createElement("ol")), 14440 (this.holder.className = "flickity-page-dots"), 14441 (this.dots = []), 14442 this.on("tap", this.onTap), 14443 this.on( 14444 "pointerDown", 14445 this.parent.childUIPointerDown.bind(this.parent), 14446 ); 14447 }), 14448 (s.prototype.activate = function () { 14449 this.setDots(), 14450 this.bindTap(this.holder), 14451 this.parent.element.appendChild(this.holder); 14452 }), 14453 (s.prototype.deactivate = function () { 14454 this.parent.element.removeChild(this.holder), 14455 i.prototype.destroy.call(this); 14456 }), 14457 (s.prototype.setDots = function () { 14458 var t = this.parent.slides.length - this.dots.length; 14459 t > 0 ? this.addDots(t) : t < 0 && this.removeDots(-t); 14460 }), 14461 (s.prototype.addDots = function (t) { 14462 for (var e = document.createDocumentFragment(), i = []; t; ) { 14463 var n = document.createElement("li"); 14464 (n.className = "dot"), e.appendChild(n), i.push(n), t--; 14465 } 14466 this.holder.appendChild(e), (this.dots = this.dots.concat(i)); 14467 }), 14468 (s.prototype.removeDots = function (t) { 14469 var e = this.dots.splice(this.dots.length - t, t); 14470 e.forEach(function (t) { 14471 this.holder.removeChild(t); 14472 }, this); 14473 }), 14474 (s.prototype.updateSelected = function () { 14475 this.selectedDot && (this.selectedDot.className = "dot"), 14476 this.dots.length && 14477 ((this.selectedDot = this.dots[this.parent.selectedIndex]), 14478 (this.selectedDot.className = "dot is-selected")); 14479 }), 14480 (s.prototype.onTap = function (t) { 14481 var e = t.target; 14482 if ("LI" == e.nodeName) { 14483 this.parent.uiChange(); 14484 var i = this.dots.indexOf(e); 14485 this.parent.select(i); 14486 } 14487 }), 14488 (s.prototype.destroy = function () { 14489 this.deactivate(); 14490 }), 14491 (e.PageDots = s), 14492 n.extend(e.defaults, { pageDots: !0 }), 14493 e.createMethods.push("_createPageDots"); 14494 var o = e.prototype; 14495 return ( 14496 (o._createPageDots = function () { 14497 this.options.pageDots && 14498 ((this.pageDots = new s(this)), 14499 this.on("activate", this.activatePageDots), 14500 this.on("select", this.updateSelectedPageDots), 14501 this.on("cellChange", this.updatePageDots), 14502 this.on("resize", this.updatePageDots), 14503 this.on("deactivate", this.deactivatePageDots)); 14504 }), 14505 (o.activatePageDots = function () { 14506 this.pageDots.activate(); 14507 }), 14508 (o.updateSelectedPageDots = function () { 14509 this.pageDots.updateSelected(); 14510 }), 14511 (o.updatePageDots = function () { 14512 this.pageDots.setDots(); 14513 }), 14514 (o.deactivatePageDots = function () { 14515 this.pageDots.deactivate(); 14516 }), 14517 (e.PageDots = s), 14518 e 14519 ); 14520 }), 14521 (function (t, e) { 14522 "function" == typeof define && define.amd 14523 ? define( 14524 "flickity/js/player", 14525 ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], 14526 function (t, i, n) { 14527 return e(t, i, n); 14528 }, 14529 ) 14530 : "object" == typeof module && module.exports 14531 ? (module.exports = e( 14532 require("ev-emitter"), 14533 require("fizzy-ui-utils"), 14534 require("./flickity"), 14535 )) 14536 : e(t.EvEmitter, t.fizzyUIUtils, t.Flickity); 14537 })(window, function (t, e, i) { 14538 function n(t) { 14539 (this.parent = t), 14540 (this.state = "stopped"), 14541 o && 14542 ((this.onVisibilityChange = function () { 14543 this.visibilityChange(); 14544 }.bind(this)), 14545 (this.onVisibilityPlay = function () { 14546 this.visibilityPlay(); 14547 }.bind(this))); 14548 } 14549 var s, o; 14550 "hidden" in document 14551 ? ((s = "hidden"), (o = "visibilitychange")) 14552 : "webkitHidden" in document && 14553 ((s = "webkitHidden"), (o = "webkitvisibilitychange")), 14554 (n.prototype = Object.create(t.prototype)), 14555 (n.prototype.play = function () { 14556 if ("playing" != this.state) { 14557 var t = document[s]; 14558 if (o && t) 14559 return void document.addEventListener(o, this.onVisibilityPlay); 14560 (this.state = "playing"), 14561 o && document.addEventListener(o, this.onVisibilityChange), 14562 this.tick(); 14563 } 14564 }), 14565 (n.prototype.tick = function () { 14566 if ("playing" == this.state) { 14567 var t = this.parent.options.autoPlay; 14568 t = "number" == typeof t ? t : 3e3; 14569 var e = this; 14570 this.clear(), 14571 (this.timeout = setTimeout(function () { 14572 e.parent.next(!0), e.tick(); 14573 }, t)); 14574 } 14575 }), 14576 (n.prototype.stop = function () { 14577 (this.state = "stopped"), 14578 this.clear(), 14579 o && document.removeEventListener(o, this.onVisibilityChange); 14580 }), 14581 (n.prototype.clear = function () { 14582 clearTimeout(this.timeout); 14583 }), 14584 (n.prototype.pause = function () { 14585 "playing" == this.state && ((this.state = "paused"), this.clear()); 14586 }), 14587 (n.prototype.unpause = function () { 14588 "paused" == this.state && this.play(); 14589 }), 14590 (n.prototype.visibilityChange = function () { 14591 var t = document[s]; 14592 this[t ? "pause" : "unpause"](); 14593 }), 14594 (n.prototype.visibilityPlay = function () { 14595 this.play(), document.removeEventListener(o, this.onVisibilityPlay); 14596 }), 14597 e.extend(i.defaults, { pauseAutoPlayOnHover: !0 }), 14598 i.createMethods.push("_createPlayer"); 14599 var r = i.prototype; 14600 return ( 14601 (r._createPlayer = function () { 14602 (this.player = new n(this)), 14603 this.on("activate", this.activatePlayer), 14604 this.on("uiChange", this.stopPlayer), 14605 this.on("pointerDown", this.stopPlayer), 14606 this.on("deactiv
14606ate", this.deactivatePlayer); 14607 }), 14608 (r.activatePlayer = function () { 14609 this.options.autoPlay && 14610 (this.player.play(), 14611 this.element.addEventListener("mouseenter", this)); 14612 }), 14613 (r.playPlayer = function () { 14614 this.player.play(); 14615 }), 14616 (r.stopPlayer = function () { 14617 this.player.stop(); 14618 }), 14619 (r.pausePlayer = function () { 14620 this.player.pause(); 14621 }), 14622 (r.unpausePlayer = function () { 14623 this.player.unpause(); 14624 }), 14625 (r.deactivatePlayer = function () { 14626 this.player.stop(), 14627 this.element.removeEventListener("mouseenter", this); 14628 }), 14629 (r.onmouseenter = function () { 14630 this.options.pauseAutoPlayOnHover && 14631 (this.player.pause(), 14632 this.element.addEventListener("mouseleave", this)); 14633 }), 14634 (r.onmouseleave = function () { 14635 this.player.unpause(), 14636 this.element.removeEventListener("mouseleave", this); 14637 }), 14638 (i.Player = n), 14639 i 14640 ); 14641 }), 14642 (function (t, e) { 14643 "function" == typeof define && define.amd 14644 ? define( 14645 "flickity/js/add-remove-cell", 14646 ["./flickity", "fizzy-ui-utils/utils"], 14647 function (i, n) { 14648 return e(t, i, n); 14649 }, 14650 ) 14651 : "object" == typeof module && module.exports 14652 ? (module.exports = e( 14653 t, 14654 require("./flickity"), 14655 require("fizzy-ui-utils"), 14656 )) 14657 : e(t, t.Flickity, t.fizzyUIUtils); 14658 })(window, function (t, e, i) { 14659 function n(t) { 14660 var e = document.createDocumentFragment(); 14661 return ( 14662 t.forEach(function (t) { 14663 e.appendChild(t.element); 14664 }), 14665 e 14666 ); 14667 } 14668 var s = e.prototype; 14669 return ( 14670 (s.insert = function (t, e) { 14671 var i = this._makeCells(t); 14672 if (i && i.length) { 14673 var s = this.cells.length; 14674 e = void 0 === e ? s : e; 14675 var o = n(i), 14676 r = e == s; 14677 if (r) this.slider.appendChild(o); 14678 else { 14679 var a = this.cells[e].element; 14680 this.slider.insertBefore(o, a); 14681 } 14682 if (0 === e) this.cells = i.concat(this.cells); 14683 else if (r) this.cells = this.cells.concat(i); 14684 else { 14685 var h = this.cells.splice(e, s - e); 14686 this.cells = this.cells.concat(i).concat(h); 14687 } 14688 this._sizeCells(i); 14689 var l = e > this.selectedIndex ? 0 : i.length; 14690 this._cellAddedRemoved(e, l); 14691 } 14692 }), 14693 (s.append = function (t) { 14694 this.insert(t, this.cells.length); 14695 }), 14696 (s.prepend = function (t) { 14697 this.insert(t, 0); 14698 }), 14699 (s.remove = function (t) { 14700 var e, 14701 n, 14702 s = this.getCells(t), 14703 o = 0, 14704 r = s.length; 14705 for (e = 0; e < r; e++) { 14706 n = s[e]; 14707 var a = this.cells.indexOf(n) < this.selectedIndex; 14708 o -= a ? 1 : 0; 14709 } 14710 for (e = 0; e < r; e++) 14711 (n = s[e]), n.remove(), i.removeFrom(this.cells, n); 14712 s.length && this._cellAddedRemoved(0, o); 14713 }), 14714 (s._cellAddedRemoved = function (t, e) { 14715 (e = e || 0), 14716 (this.selectedIndex += e), 14717 (this.selectedIndex = Math.max( 14718 0, 14719 Math.min(this.slides.length - 1, this.selectedIndex), 14720 )), 14721 this.cellChange(t, !0), 14722 this.emitEvent("cellAddedRemoved", [t, e]); 14723 }), 14724 (s.cellSizeChange = function (t) { 14725 var e = this.getCell(t); 14726 if (e) { 14727 e.getSize(); 14728 var i = this.cells.indexOf(e); 14729 this.cellChange(i); 14730 } 14731 }), 14732 (s.cellChange = function (t, e) { 14733 var i = this.slideableWidth; 14734 if ( 14735 (this._positionCells(t), 14736 this._getWrapShiftCells(), 14737 this.setGallerySize(), 14738 this.emitEvent("cellChange", [t]), 14739 this.options.freeScroll) 14740 ) { 14741 var n = i - this.slideableWidth; 14742 (this.x += n * this.cellAlign), this.positionSlider(); 14743 } else 14744 e && this.positionSliderAtSelected(), this.select(this.selectedIndex); 14745 }), 14746 e 14747 ); 14748 }), 14749 (function (t, e) { 14750 "function" == typeof define && define.amd 14751 ? define( 14752 "flickity/js/lazyload", 14753 ["./flickity", "fizzy-ui-utils/utils"], 14754 function (i, n) { 14755 return e(t, i, n); 14756 }, 14757 ) 14758 : "object" == typeof module && module.exports 14759 ? (module.exports = e( 14760 t, 14761 require("./flickity"), 14762 require("fizzy-ui-utils"), 14763 )) 14764 : e(t, t.Flickity, t.fizzyUIUtils); 14765 })(window, function (t, e, i) { 14766 "use strict"; 14767 function n(t) { 14768 if ("IMG" == t.nodeName && t.getAttribute("data-flickity-lazyload")) 14769 return [t]; 14770 var e = t.querySelectorAll("img[data-flickity-lazyload]"); 14771 return i.makeArray(e); 14772 } 14773 function s(t, e) { 14774 (this.img = t), (this.flickity = e), this.load(); 14775 } 14776 e.createMethods.push("_createLazyload"); 14777 var o = e.prototype; 14778 return ( 14779 (o._createLazyload = function () { 14780 this.on("select", this.lazyLoad); 14781 }), 14782 (o.lazyLoad = function () { 14783 var t = this.options.lazyLoad; 14784 if (t) { 14785 var e = "number" == typeof t ? t : 0, 14786 i = this.getAdjacentCellElements(e), 14787 o = [];
14788 i.forEach(function (t) { 14789 var e = n(t); 14790 o = o.concat(e); 14791 }), 14792 o.forEach(function (t) { 14793 new s(t, this); 14794 }, this); 14795 } 14796 }), 14797 (s.prototype.handleEvent = i.handleEvent), 14798 (s.prototype.load = function () { 14799 this.img.addEventListener("load", this), 14800 this.img.addEventListener("error", this), 14801 (this.img.src = this.img.getAttribute("data-flickity-lazyload")), 14802 this.img.removeAttribute("data-flickity-lazyload"); 14803 }), 14804 (s.prototype.onload = function (t) { 14805 this.complete(t, "flickity-lazyloaded"); 14806 }), 14807 (s.prototype.onerror = function (t) { 14808 this.complete(t, "flickity-lazyerror"); 14809 }), 14810 (s.prototype.complete = function (t, e) { 14811 this.img.removeEventListener("load", this), 14812 this.img.removeEventListener("error", this); 14813 var i = this.flickity.getParentCell(this.img), 14814 n = i && i.element; 14815 this.flickity.cellSizeChange(n), 14816 this.img.classList.add(e), 14817 this.flickity.dispatchEvent("lazyLoad", t, n); 14818 }), 14819 (e.LazyLoader = s), 14820 e 14821 ); 14822 }), 14823 (function (t, e) { 14824 "function" == typeof define && define.amd 14825 ? define( 14826 "flickity/js/index", 14827 [ 14828 "./flickity", 14829 "./drag", 14830 "./prev-next-button", 14831 "./page-dots", 14832 "./player", 14833 "./add-remove-cell", 14834 "./lazyload", 14835 ], 14836 e, 14837 ) 14838 : "object" == typeof module && 14839 module.exports && 14840 (module.exports = e( 14841 require("./flickity"), 14842 require("./drag"), 14843 require("./prev-next-button"), 14844 require("./page-dots"), 14845 require("./player"), 14846 require("./add-remove-cell"), 14847 require("./lazyload"), 14848 )); 14849 })(window, function (t) { 14850 return t; 14851 }), 14852 (function (t, e) { 14853 "function" == typeof define && define.amd 14854 ? define( 14855 "flickity-as-nav-for/as-nav-for", 14856 ["flickity/js/index", "fizzy-ui-utils/utils"], 14857 e, 14858 ) 14859 : "object" == typeof module && module.exports 14860 ? (module.exports = e(require("flickity"), require("fizzy-ui-utils"))) 14861 : (t.Flickity = e(t.Flickity, t.fizzyUIUtils)); 14862 })(window, function (t, e) { 14863 function i(t, e, i) { 14864 return (e - t) * i + t; 14865 } 14866 t.createMethods.push("_createAsNavFor"); 14867 var n = t.prototype; 14868 return ( 14869 (n._createAsNavFor = function () { 14870 this.on("activate", this.activateAsNavFor), 14871 this.on("deactivate", this.deactivateAsNavFor), 14872 this.on("destroy", this.destroyAsNavFor); 14873 var t = this.options.asNavFor; 14874 if (t) { 14875 var e = this; 14876 setTimeout(function () { 14877 e.setNavCompanion(t); 14878 }); 14879 } 14880 }), 14881 (n.setNavCompanion = function (i) { 14882 i = e.getQueryElement(i); 14883 var n = t.data(i); 14884 if (n && n != this) { 14885 this.navCompanion = n; 14886 var s = this; 14887 (this.onNavCompanionSelect = function () { 14888 s.navCompanionSelect(); 14889 }), 14890 n.on("select", this.onNavCompanionSelect), 14891 this.on("staticClick", this.onNavStaticClick), 14892 this.navCompanionSelect(!0); 14893 } 14894 }), 14895 (n.navCompanionSelect = function (t) { 14896 if (this.navCompanion) { 14897 var e = this.navCompanion.selectedCells[0], 14898 n = this.navCompanion.cells.indexOf(e), 14899 s = n + this.navCompanion.selectedCells.length - 1, 14900 o = Math.floor(i(n, s, this.navCompanion.cellAlign)); 14901 if ( 14902 (this.selectCell(o, !1, t), 14903 this.removeNavSelectedElements(), 14904 !(o >= this.cells.length)) 14905 ) { 14906 var r = this.cells.slice(n, s + 1); 14907 (this.navSelectedElements = r.map(function (t) { 14908 return t.element; 14909 })), 14910 this.changeNavSelectedClass("add"); 14911 } 14912 } 14913 }), 14914 (n.changeNavSelectedClass = function (t) {
14915 this.navSelectedElements.forEach(function (e) { 14916 e.classList[t]("is-nav-selected"); 14917 }); 14918 }), 14919 (n.activateAsNavFor = function () { 14920 this.navCompanionSelect(!0); 14921 }), 14922 (n.removeNavSelectedElements = function () { 14923 this.navSelectedElements && 14924 (this.changeNavSelectedClass("remove"), 14925 delete this.navSelectedElements); 14926 }), 14927 (n.onNavStaticClick = function (t, e, i, n) { 14928 "number" == typeof n && this.navCompanion.selectCell(n); 14929 }), 14930 (n.deactivateAsNavFor = function () { 14931 this.removeNavSelectedElements(); 14932 }), 14933 (n.destroyAsNavFor = function () { 14934 this.navCompanion && 14935 (this.navCompanion.off("select", this.onNavCompanionSelect), 14936 this.off("staticClick", this.onNavStaticClick), 14937 delete this.navCompanion); 14938 }), 14939 t 14940 ); 14941 }), 14942 (function (t, e) { 14943 "use strict"; 14944 "function" == typeof define && define.amd 14945 ? define( 14946 "imagesloaded/imagesloaded", 14947 ["ev-emitter/ev-emitter"], 14948 function (i) { 14949 return e(t, i); 14950 }, 14951 ) 14952 : "object" == typeof module && module.exports 14953 ? (module.exports = e(t, require("ev-emitter"))) 14954 : (t.imagesLoaded = e(t, t.EvEmitter)); 14955 })("undefined" != typeof window ? window : this, function (t, e) { 14956 function i(t, e) { 14957 for (var i in e) t[i] = e[i]; 14958 return t; 14959 } 14960 function n(t) { 14961 var e = []; 14962 if (Array.isArray(t)) e = t; 14963 else if ("number" == typeof t.length) 14964 for (var i = 0; i < t.length; i++) e.push(t[i]); 14965 else e.push(t); 14966 return e; 14967 } 14968 function s(t, e, o) { 14969 return this instanceof s 14970 ? ("string" == typeof t && (t = document.querySelectorAll(t)), 14971 (this.elements = n(t)), 14972 (this.options = i({}, this.options)), 14973 "function" == typeof e ? (o = e) : i(this.options, e), 14974 o && this.on("always", o), 14975 this.getImages(), 14976 a && (this.jqDeferred = new a.Deferred()), 14977 void setTimeout( 14978 function () { 14979 this.check(); 14980 }.bind(this), 14981 )) 14982 : new s(t, e, o); 14983 } 14984 function o(t) { 14985 this.img = t; 14986 } 14987 function r(t, e) { 14988 (this.url = t), (this.element = e), (this.img = new Image()); 14989 } 14990 var a = t.jQuery, 14991 h = t.console; 14992 (s.prototype = Object.create(e.prototype)), 14993 (s.prototype.options = {}), 14994 (s.prototype.getImages = function () { 14995 (this.images = []), this.elements.forEach(this.addElementImages, this); 14996 }), 14997 (s.prototype.addElementImages = function (t) { 14998 "IMG" == t.nodeName && this.addImage(t), 14999 this.options.background === !0 && this.addElementBackgroundImages(t); 15000 var e = t.nodeType; 15001 if (e && l[e]) { 15002 for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) { 15003 var s = i[n]; 15004 this.addImage(s); 15005 } 15006 if ("string" == typeof this.options.background) { 15007 var o = t.querySelectorAll(this.options.background); 15008 for (n = 0; n < o.length; n++) { 15009 var r = o[n]; 15010 this.addElementBackgroundImages(r); 15011 } 15012 } 15013 } 15014 }); 15015 var l = { 1: !0, 9: !0, 11: !0 }; 15016 return ( 15017 (s.prototype.addElementBackgroundImages = function (t) { 15018 var e = getComputedStyle(t); 15019 if (e) 15020 for ( 15021 var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); 15022 null !== n; 15023 15024 ) { 15025 var s = n && n[2]; 15026 s && this.addBackground(s, t), (n = i.exec(e.backgroundImage)); 15027 } 15028 }), 15029 (s.prototype.addImage = function (t) { 15030 var e = new o(t); 15031 this.images.push(e); 15032 }), 15033 (s.prototype.addBackground = function (t, e) { 15034 var i = new r(t, e); 15035 this.images.push(i); 15036 }), 15037 (s.prototype.check = function () { 15038 function t(t, i, n) { 15039 setTimeout(function () { 15040 e.progress(t, i, n); 15041 }); 15042 } 15043 var e = this; 15044 return ( 15045 (this.progressedCount = 0), 15046 (this.hasAnyBroken = !1), 15047 this.images.length
15048 ? void this.images.forEach(function (e) { 15049 e.once("progress", t), e.check(); 15050 }) 15051 : void this.complete() 15052 ); 15053 }), 15054 (s.prototype.progress = function (t, e, i) { 15055 this.progressedCount++, 15056 (this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded), 15057 this.emitEvent("progress", [this, t, e]), 15058 this.jqDeferred && 15059 this.jqDeferred.notify && 15060 this.jqDeferred.notify(this, t), 15061 this.progressedCount == this.images.length && this.complete(), 15062 this.options.debug && h && h.log("progress: " + i, t, e); 15063 }), 15064 (s.prototype.complete = function () { 15065 var t = this.hasAnyBroken ? "fail" : "done"; 15066 if ( 15067 ((this.isComplete = !0), 15068 this.emitEvent(t, [this]), 15069 this.emitEvent("always", [this]), 15070 this.jqDeferred) 15071 ) { 15072 var e = this.hasAnyBroken ? "reject" : "resolve"; 15073 this.jqDeferred[e](this); 15074 } 15075 }), 15076 (o.prototype = Object.create(e.prototype)), 15077 (o.prototype.check = function () { 15078 var t = this.getIsImageComplete(); 15079 return t 15080 ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") 15081 : ((this.proxyImage = new Image()), 15082 this.proxyImage.addEventListener("load", this), 15083 this.proxyImage.addEventListener("error", this), 15084 this.img.addEventListener("load", this), 15085 this.img.addEventListener("error", this), 15086 void (this.proxyImage.src = this.img.src)); 15087 }), 15088 (o.prototype.getIsImageComplete = function () { 15089 return this.img.complete && void 0 !== this.img.naturalWidth; 15090 }), 15091 (o.prototype.confirm = function (t, e) { 15092 (this.isLoaded = t), this.emitEvent("progress", [this, this.img, e]); 15093 }), 15094 (o.prototype.handleEvent = function (t) { 15095 var e = "on" + t.type; 15096 this[e] && this[e](t); 15097 }), 15098 (o.prototype.onload = function () { 15099 this.confirm(!0, "onload"), this.unbindEvents(); 15100 }), 15101 (o.prototype.onerror = function () { 15102 this.confirm(!1, "onerror"), this.unbindEvents(); 15103 }), 15104 (o.prototype.unbindEvents = function () { 15105 this.proxyImage.removeEventListener("load", this), 15106 this.proxyImage.removeEventListener("error", this), 15107 this.img.removeEventListener("load", this), 15108 this.img.removeEventListener("error", this); 15109 }), 15110 (r.prototype = Object.create(o.prototype)), 15111 (r.prototype.check = function () { 15112 this.img.addEventListener("load", this), 15113 this.img.addEventListener("error", this), 15114 (this.img.src = this.url); 15115 var t = this.getIsImageComplete(); 15116 t && 15117 (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), 15118 this.unbindEvents()); 15119 }), 15120 (r.prototype.unbindEvents = function () { 15121 this.img.removeEventListener("load", this), 15122 this.img.removeEventListener("error", this); 15123 }), 15124 (r.prototype.confirm = function (t, e) { 15125 (this.isLoaded = t), 15126 this.emitEvent("progress", [this, this.element, e]); 15127 }), 15128 (s.makeJQueryPlugin = function (e) { 15129 (e = e || t.jQuery), 15130 e && 15131 ((a = e), 15132 (a.fn.imagesLoaded = function (t, e) { 15133 var i = new s(this, t, e); 15134 return i.jqDeferred.promise(a(this)); 15135 })); 15136 }), 15137 s.makeJQueryPlugin(), 15138 s 15139 ); 15140 }), 15141 (function (t, e) { 15142 "function" == typeof define && define.amd 15143 ? define( 15144 ["flickity/js/index", "imagesloaded/imagesloaded"], 15145 function (i, n) { 15146 return e(t, i, n); 15147 }, 15148 ) 15149 : "object" == typeof module && module.exports 15150 ? (module.exports = e(t, require("flickity"), require("imagesloaded"))) 15151 : (t.Flickity = e(t, t.Flickity, t.imagesLoaded)); 15152 })(window, function (t, e, i) { 15153 "use strict"; 15154 e.createMethods.push("_createImagesLoaded"); 15155 var n = e.prototype; 15156 return ( 15157 (n._createImagesLoaded = function () { 15158 this.on("activate", this.imagesLoaded); 15159 }), 15160 (n.imagesLoaded = function () { 15161 function t(t, i) { 15162 var n = e.getParentCell(i.img); 15163 e.cellSizeChange(n && n.element), 15164 e.options.freeScroll || e.positionSliderAtSelected(); 15165 } 15166 if (this.options.imagesLoaded) { 15167 var e = this; 15168 i(this.slider).on("progress", t); 15169 } 15170 }), 15171 e 15172 ); 15173 }); 15174 15175/*! 15176 * modernizr v3.5.0
15177 * Build https://modernizr.com/download?-touchevents-setclasses-dontmin 15178 * 15179 * Copyright (c) 15180 * Faruk Ates 15181 * Paul Irish 15182 * Alex Sexton 15183 * Ryan Seddon 15184 * Patrick Kettner 15185 * Stu Cox 15186 * Richard Herrera 15187 15188 * MIT License 15189 */ 15190 15191/* 15192 * Modernizr tests which native CSS3 and HTML5 features are available in the 15193 * current UA and makes the results available to you in two ways: as properties on 15194 * a global `Modernizr` object, and as classes on the `<html>` element. This 15195 * information allows you to progressively enhance your pages with a granular level 15196 * of control over the experience. 15197 */ 15198 15199(function (window, document, undefined) { 15200 var classes = []; 15201 15202 var tests = []; 15203 15204 /** 15205 * 15206 * ModernizrProto is the constructor for Modernizr 15207 * 15208 * @class 15209 * @access public 15210 */ 15211 15212 var ModernizrProto = { 15213 // The current version, dummy 15214 _version: "3.5.0", 15215 15216 // Any settings that don't work as separate modules 15217 // can go in here as configuration. 15218 _config: { 15219 classPrefix: "", 15220 enableClasses: true, 15221 enableJSClass: true, 15222 usePrefixes: true, 15223 }, 15224 15225 // Queue of tests 15226 _q: [], 15227 15228 // Stub these for people who are listening 15229 on: function (test, cb) { 15230 // I don't really think people should do this, but we can 15231 // safe guard it a bit. 15232 // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests. 15233 // This is in case people listen to synchronous tests. I would leave it out, 15234 // but the code to *disallow* sync tests in the real version of this 15235 // function is actually larger than this. 15236 var self = this; 15237 setTimeout(function () { 15238 cb(self[test]); 15239 }, 0); 15240 }, 15241 15242 addTest: function (name, fn, options) { 15243 tests.push({ name: name, fn: fn, options: options }); 15244 }, 15245 15246 addAsyncTest: function (fn) { 15247 tests.push({ name: null, fn: fn }); 15248 }, 15249 }; 15250 15251 // Fake some of Object.create so we can force non test results to be non "own" properties. 15252 var Modernizr = function () {}; 15253 Modernizr.prototype = ModernizrProto; 15254 15255 // Leak modernizr globally when you `require` it rather than force it here. 15256 // Overwrite name so constructor name is nicer :D 15257 Modernizr = new Modernizr(); 15258 15259 /** 15260 * is returns a boolean if the typeof an obj is exactly type. 15261 * 15262 * @access private 15263 * @function is 15264 * @param {*} obj - A thing we want to check the type of 15265 * @param {string} type - A string to compare the typeof against 15266 * @returns {boolean} 15267 */ 15268 15269 function is(obj, type) { 15270 return typeof obj === type; 15271 } 15272 /** 15273 * Run through all tests and detect their support in the current UA. 15274 * 15275 * @access private 15276 */ 15277 15278 function testRunner() { 15279 var featureNames; 15280 var feature; 15281 var aliasIdx; 15282 var result; 15283 var nameIdx; 15284 var featureName; 15285 var featureNameSplit; 15286 15287 for (var featureIdx in tests) { 15288 if (tests.hasOwnProperty(featureIdx)) { 15289 featureNames = []; 15290 feature = tests[featureIdx]; 15291 // run the test, throw the return value into the Modernizr, 15292 // then based on that boolean, define an appropriate className 15293 // and push it into an array of classes we'll join later. 15294 // 15295 // If there is no name, it's an 'async' test that is run, 15296 // but not directly added to the object. That should 15297 // be done with a post-run addTest call. 15298 if (feature.name) { 15299 featureNames.push(feature.name.toLowerCase()); 15300 15301 if ( 15302 feature.options && 15303 feature.options.aliases && 15304 feature.options.aliases.length 15305 ) { 15306 // Add all the aliases into the names list 15307 for ( 15308 aliasIdx = 0; 15309 aliasIdx < feature.options.aliases.length; 15310 aliasIdx++ 15311 ) { 15312 featureNames.push( 15313 feature.options.aliases[aliasIdx].toLowerCase(), 15314 ); 15315 } 15316 } 15317 } 15318 15319 // Run the test, or use the raw value if it's not a function 15320 result = is(feature.fn, "function") ? feature.fn() : feature.fn; 15321 15322 // Set each of the names on the Modernizr object 15323 for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) { 15324 featureName = featureNames[nameIdx];
15325 // Support dot properties as sub tests. We don't do checking to make sure 15326 // that the implied parent tests have been added. You must call them in 15327 // order (either in the test, or make the parent test a dependency). 15328 // 15329 // Cap it to TWO to make the logic simple and because who needs that kind of subtesting 15330 // hashtag famous last words 15331 featureNameSplit = featureName.split("."); 15332 15333 if (featureNameSplit.length === 1) { 15334 Modernizr[featureNameSplit[0]] = result; 15335 } else { 15336 // cast to a Boolean, if not one already 15337 if ( 15338 Modernizr[featureNameSplit[0]] && 15339 !(Modernizr[featureNameSplit[0]] instanceof Boolean) 15340 ) { 15341 Modernizr[featureNameSplit[0]] = new Boolean( 15342 Modernizr[featureNameSplit[0]], 15343 ); 15344 } 15345 15346 Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result; 15347 } 15348 15349 classes.push((result ? "" : "no-") + featureNameSplit.join("-")); 15350 } 15351 } 15352 } 15353 } 15354 /** 15355 * docElement is a convenience wrapper to grab the root element of the document 15356 * 15357 * @access private 15358 * @returns {HTMLElement|SVGElement} The root element of the document 15359 */ 15360 15361 var docElement = document.documentElement; 15362 15363 /** 15364 * A convenience helper to check if the document we are running in is an SVG document 15365 * 15366 * @access private 15367 * @returns {boolean} 15368 */ 15369 15370 var isSVG = docElement.nodeName.toLowerCase() === "svg"; 15371 15372 /** 15373 * setClasses takes an array of class names and adds them to the root element 15374 * 15375 * @access private 15376 * @function setClasses 15377 * @param {string[]} classes - Array of class names 15378 */ 15379 15380 // Pass in an and array of class names, e.g.:
15381 // ['no-webp', 'borderradius', ...] 15382 function setClasses(classes) { 15383 var className = docElement.className; 15384 var classPrefix = Modernizr._config.classPrefix || ""; 15385 15386 if (isSVG) { 15387 className = className.baseVal; 15388 } 15389 15390 // Change `no-js` to `js` (independently of the `enableClasses` option) 15391 // Handle classPrefix on this too 15392 if (Modernizr._config.enableJSClass) { 15393 var reJS = new RegExp("(^|\\s)" + classPrefix + "no-js(\\s|$)"); 15394 className = className.replace(reJS, "$1" + classPrefix + "js$2"); 15395 } 15396 15397 if (Modernizr._config.enableClasses) { 15398 // Add the new classes 15399 className += " " + classPrefix + classes.join(" " + classPrefix); 15400 if (isSVG) { 15401 docElement.className.baseVal = className; 15402 } else { 15403 docElement.className = className; 15404 } 15405 } 15406 } 15407 15408 /** 15409 * List of property values to set for css tests. See ticket #21 15410 * http://git.io/vUGl4 15411 * 15412 * @memberof Modernizr 15413 * @name Modernizr._prefixes 15414 * @optionName Modernizr._prefixes 15415 * @optionProp prefixes 15416 * @access public 15417 * @example 15418 * 15419 * Modernizr._prefixes is the internal list of prefixes that we test against 15420 * inside of things like [prefixed](#modernizr-prefixed) and [prefixedCSS](#-code-modernizr-prefixedcss). It is simply 15421 * an array of kebab-case vendor prefixes you can use within your code. 15422 * 15423 * Some common use cases include 15424 * 15425 * Generating all possible prefixed version of a CSS property 15426 * ```js 15427 * var rule = Modernizr._prefixes.join('transform: rotate(20deg); '); 15428 * 15429 * rule === 'transform: rotate(20deg); webkit-transform: rotate(20deg); moz-transform: rotate(20deg); o-transform: rotate(20deg); ms-transform: rotate(20deg);' 15430 * ``` 15431 * 15432 * Generating all possible prefixed version of a CSS value 15433 * ```js 15434 * rule = 'display:' + Modernizr._prefixes.join('flex; display:') + 'flex'; 15435 * 15436 * rule === 'display:flex; display:-webkit-flex; display:-moz-flex; display:-o-flex; display:-ms-flex; display:flex' 15437 * ``` 15438 */ 15439 15440 // we use ['',''] rather than an empty array in order to allow a pattern of .`join()`ing prefixes to test 15441 // values in feature detects to continue to work 15442 var prefixes = ModernizrProto._config.usePrefixes 15443 ? " -webkit- -moz- -o- -ms- ".split(" ") 15444 : ["", ""]; 15445 15446 // expose these for the plugin API. Look in the source for how to join() them against your input 15447 ModernizrProto._prefixes = prefixes; 15448 15449 /** 15450 * createElement is a convenience wrapper around document.createElement. Since we 15451 * use createElement all over the place, this allows for (slightly) smaller code 15452 * as well as abstracting away issues with creating elements in contexts other than 15453 * HTML documents (e.g. SVG documents). 15454 * 15455 * @access private 15456 * @function createElement 15457 * @returns {HTMLElement|SVGElement} An HTML or SVG element 15458 */ 15459 15460 function createElement() { 15461 if (typeof document.createElement !== "function") { 15462 // This is the case in IE7, where the type of createElement is "object". 15463 // For this reason, we cannot call apply() as Object is not a Function. 15464 return document.createElement(arguments[0]); 15465 } else if (isSVG) { 15466 return document.createElementNS.call( 15467 document, 15468 "http://www.w3.org/2000/svg", 15469 arguments[0], 15470 ); 15471 } else { 15472 return document.createElement.apply(document, arguments); 15473 } 15474 } 15475 15476 /** 15477 * getBody returns the body of a document, or an element that can stand in for 15478 * the body if a real body does not exist 15479 * 15480 * @access private 15481 * @function getBody 15482 * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an 15483 * artificially created element that stands in for the body 15484 */ 15485 15486 function getBody() { 15487 // After page load injecting a fake body doesn't work so check if body exists 15488 var body = document.body; 15489 15490 if (!body) { 15491 // Can't use the real body create a fake one. 15492 body = createElement(isSVG ? "svg" : "body"); 15493 body.fake = true; 15494 } 15495 15496 return body; 15497 } 15498 15499 /** 15500 * injectElementWithStyles injects an element with style element and some CSS rules 15501 * 15502 * @access private 15503 * @function injectElementWithStyles 15504 * @param {string} rule - String representing a css rule 15505 * @param {function} callback - A function that is used to test the injected element 15506 * @param {number} [nodes] - An integer representing the number of additional nodes you want injected 15507 * @param {string[]}
15507 [testnames] - An array of strings that are used as ids for the additional nodes 15508 * @returns {boolean} 15509 */ 15510 15511 function injectElementWithStyles(rule, callback, nodes, testnames) { 15512 var mod = "modernizr"; 15513 var style; 15514 var ret; 15515 var node; 15516 var docOverflow; 15517 var div = createElement("div"); 15518 var body = getBody(); 15519 15520 if (parseInt(nodes, 10)) { 15521 // In order not to give false positives we create a node for each test 15522 // This also allows the method to scale for unspecified uses 15523 while (nodes--) { 15524 node = createElement("div"); 15525 node.id = testnames ? testnames[nodes] : mod + (nodes + 1); 15526 div.appendChild(node); 15527 } 15528 } 15529 15530 style = createElement("style"); 15531 style.type = "text/css"; 15532 style.id = "s" + mod; 15533 15534 // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. 15535 // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 15536 (!body.fake ? div : body).appendChild(style); 15537 body.appendChild(div); 15538 15539 if (style.styleSheet) { 15540 style.styleSheet.cssText = rule; 15541 } else { 15542 style.appendChild(document.createTextNode(rule)); 15543 } 15544 div.id = mod; 15545 15546 if (body.fake) { 15547 //avoid crashing IE8, if background image is used 15548 body.style.background = ""; 15549 //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible 15550 body.style.overflow = "hidden"; 15551 docOverflow = docElement.style.overflow; 15552 docElement.style.overflow = "hidden"; 15553 docElement.appendChild(body); 15554 } 15555 15556 ret = callback(div, rule); 15557 // If this is done after page load we don't want to remove the body so check if body exists 15558 if (body.fake) { 15559 body.parentNode.removeChild(body); 15560 docElement.style.overflow = docOverflow; 15561 // Trigger layout so kinetic scrolling isn't disabled in iOS6+ 15562 // eslint-disable-next-line 15563 docElement.offsetHeight; 15564 } else { 15565 div.parentNode.removeChild(div); 15566 } 15567 15568 return !!ret; 15569 } 15570 15571 /** 15572 * testStyles injects an element with style element and some CSS rules 15573 * 15574 * @memberof Modernizr 15575 * @name Modernizr.testStyles 15576 * @optionName Modernizr.testStyles() 15577 * @optionProp testStyles 15578 * @access public 15579 * @function testStyles 15580 * @param {string} rule - String representing a css rule 15581 * @param {function} callback - A function that is used to test the injected element 15582 * @param {number} [nodes] - An integer representing the number of additional nodes you want injected 15583 * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes 15584 * @returns {boolean} 15585 * @example 15586 * 15587 * `Modernizr.testStyles` takes a CSS rule and injects it onto the current page 15588 * along with (possibly multiple) DOM elements. This lets you check for features 15589 * that can not be detected by simply checking the [IDL](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Interface_development_guide/IDL_interface_rules). 15590 * 15591 * ```js 15592 * Modernizr.testStyles('#modernizr { width: 9px; color: papayawhip; }', function(elem, rule) { 15593 * // elem is the first DOM node in the page (by default #modernizr) 15594 * // rule is the first argument you supplied - the CSS rule in string form 15595 * 15596 * addTest('widthworks', elem.style.width === '9px') 15597 * }); 15598 * ``` 15599 * 15600 * If your test requires multiple nodes, you can include a third argument 15601 * indicating how many additional div elements to include on the page. The 15602 * additional nodes are injected as children of the `elem` that is returned as 15603 * the first argument to the callback. 15604 * 15605 * ```js 15606 * Modernizr.testStyles('#modernizr {width: 1px}; #modernizr2 {width: 2px}', function(elem) { 15607 * document.getElementById('modernizr').style.width === '1px'; // true 15608 * document.getElementById('modernizr2').style.width === '2px'; // true 15609 * elem.firstChild === document.getElementById('modernizr2'); // true 15610 * }, 1); 15611 * ``` 15612 * 15613 * By default, all of the additional elements have an ID of `modernizr[n]`, where
15614 * `n` is its index (e.g. the first additional, second overall is `#modernizr2`, 15615 * the second additional is `#modernizr3`, etc.). 15616 * If you want to have more meaningful IDs for your function, you can provide 15617 * them as the fourth argument, as an array of strings 15618 * 15619 * ```js 15620 * Modernizr.testStyles('#foo {width: 10px}; #bar {height: 20px}', function(elem) { 15621 * elem.firstChild === document.getElementById('foo'); // true 15622 * elem.lastChild === document.getElementById('bar'); // true 15623 * }, 2, ['foo', 'bar']); 15624 * ``` 15625 * 15626 */ 15627 15628 var testStyles = (ModernizrProto.testStyles = injectElementWithStyles); 15629 15630 /*! 15631{ 15632 "name": "Touch Events", 15633 "property": "touchevents", 15634 "caniuse" : "touch", 15635 "tags": ["media", "attribute"], 15636 "notes": [{ 15637 "name": "Touch Events spec", 15638 "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/" 15639 }], 15640 "warnings": [ 15641 "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device" 15642 ], 15643 "knownBugs": [ 15644 "False-positive on some configurations of Nokia N900", 15645 "False-positive on some BlackBerry 6.0 builds â https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695" 15646 ] 15647} 15648!*/ 15649 /* DOC 15650Indicates if the browser supports the W3C Touch Events API. 15651 15652This *does not* necessarily reflect a touchscreen device: 15653 15654* Older touchscreen devices only emulate mouse events 15655* Modern IE touch devices implement the Pointer Events API instead: use `Modernizr.pointerevents` to detect support for that 15656* Some browsers & OS setups may enable touch APIs when no touchscreen is connected 15657* Future browsers may implement other event models for touch interactions 15658 15659See this article: [You Can't Detect A Touchscreen](http://www.stucox.com/blog/you-cant-detect-a-touchscreen/). 15660 15661It's recommended to bind both mouse and touch/pointer events simultaneously â see [this HTML5 Rocks tutorial](http://www.html5rocks.com/en/mobile/touchandmouse/). 15662 15663This test will also return `true` for Firefox 4 Multitouch support. 15664*/ 15665 15666 // Chrome (desktop) used to lie about its support on this, but that has since been rectified: http://crbug.com/36415 15667 Modernizr.addTest("touchevents", function () { 15668 var bool; 15669 if ( 15670 "ontouchstart" in window || 15671 (window.DocumentTouch && document instanceof DocumentTouch) 15672 ) { 15673 bool = true; 15674 } else { 15675 // include the 'heartz' as a way to have a non matching MQ to help terminate the join 15676 // https://git.io/vznFH 15677 var query = [ 15678 "@media (", 15679 prefixes.join("touch-enabled),("), 15680 "heartz", 15681 ")", 15682 "{#modernizr{top:9px;position:absolute}}", 15683 ].join(""); 15684 testStyles(query, function (node) { 15685 bool = node.offsetTop === 9; 15686 }); 15687 } 15688 return bool; 15689 }); 15690 15691 // Run each test 15692 testRunner(); 15693 15694 // Remove the "no-js" class if it exists 15695 setClasses(classes); 15696 15697 delete ModernizrProto.addTest; 15698 delete ModernizrProto.addAsyncTest; 15699 15700 // Run the things that are supposed to run after the tests 15701 for (var i = 0; i < Modernizr._q.length; i++) { 15702 Modernizr._q[i](); 15703 } 15704 15705 // Leak Modernizr namespace 15706 window.Modernizr = Modernizr; 15707})(window, document); 15708 15709/** 15710 * matter-js 0.14.2 by @liabru 2018-06-11 15711 * http://brm.io/matter-js/ 15712 * License MIT 15713 */ 15714!(function (e) { 15715 if ("object" == typeof exports && "undefined" != typeof module) 15716 module.exports = e(); 15717 else if ("function" == typeof define && define.amd) define([], e); 15718 else { 15719 var t; 15720 (t = 15721 "undefined" != typeof window 15722 ? window 15723 : "undefined" != typeof global 15724 ? global 15725 : "undefined" != typeof self 15726 ? self 15727 : this), 15728 (t.Matter = e()); 15729 } 15730})(function () { 15731 return (function () { 15732 function e(t, n, o) { 15733 function i(s, a) { 15734 if (!n[s]) { 15735 if (!t[s]) { 15736 var l = "function" == typeof require && require; 15737 if (!a && l) return l(s, !0); 15738 if (r) return r(s, !0); 15739 var c = new Error("Cannot find module '" + s + "'"); 15740 throw ((c.code = "MODULE_NOT_FOUND"), c); 15741 } 15742 var d = (n[s] = { exports: {} }); 15743 t[s][0].call( 15744 d.exports, 15745 function (e) { 15746 return i(t[s][1][e] || e); 15747 }, 15748 d, 15749 d.exports, 15750 e, 15751 t, 15752 n, 15753 o, 15754 ); 15755 } 15756 return n[s].exports; 15757 } 15758 for ( 15759 var r = "function" == typeof require && require, s = 0; 15760 s < o.length; 15761 s++ 15762 ) 15763 i(o[s]); 15764 return i; 15765 } 15766 return e; 15767 })()( 15768 { 15769 1: [ 15770 function (e, t, n) { 15771 var o = {}; 15772 t.exports = o; 15773 var i = e("../geometry/Vertices"), 15774 r = e("../geometry/Vector"), 15775 s = e("../core/Sleeping"), 15776 a = (e("../render/Render"), e("../core/Common")), 15777 l = e("../geometry/Bounds"), 15778 c = e("../geometry/Axes"); 15779 !(function () { 15780 (o._inertiaScale = 4), 15781 (o._nextCollidingGroupId = 1), 15782 (o._nextNonCollidingGroupId = -1), 15783 (o._nextCategory = 1), 15784 (o.create = function (t) { 15785 var n = { 15786 id: a.nextId(), 15787 type: "body", 15788 label: "Body", 15789 parts: [], 15790 plugin: {}, 15791 angle: 0, 15792 vertices: i.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"), 15793 position: { x: 0, y: 0 }, 15794 force: { x: 0, y: 0 }, 15795 torque: 0, 15796 positionImpulse: { x: 0, y: 0 }, 15797 constraintImpulse: { x: 0, y: 0, angle: 0 }, 15798 totalContacts: 0, 15799 speed: 0, 15800 angularSpeed: 0, 15801 velocity: { x: 0, y: 0 }, 15802 angularVelocity: 0, 15803 isSensor: !1, 15804 isStatic: !1, 15805 isSleeping: !1, 15806 motion: 0, 15807 sleepThreshold: 60, 15808 density: 0.001, 15809 restitution: 0, 15810 friction: 0.1, 15811 frictionStatic: 0.5, 15812 frictionAir: 0.01, 15813 collisionFilter: { 15814 category: 1, 15815 mask: 4294967295, 15816 group: 0, 15817 }, 15818 slop: 0.05, 15819 timeScale: 1, 15820 render: { 15821 visible: !0, 15822 opacity: 1, 15823 sprite: { xScale: 1, yScale: 1, xOffset: 0, yOffset: 0 }, 15824 lineWidth: 0, 15825 }, 15826 }, 15827 o = a.extend(n, t); 15828 return e(o, t), o; 15829 }), 15830 (o.nextGroup = function (e) { 15831 return e 15832 ? o._nextNonCollidingGroupId-- 15833 : o._nextCollidingGroupId++; 15834 }), 15835 (o.nextCategory = function () { 15836 return ( 15837 (o._nextCategory = o._nextCategory << 1), o._nextCategory 15838 ); 15839 }); 15840 var e = function (e, t) { 15841 (t = t || {}), 15842 o.set(e, { 15843 bounds: e.bounds || l.create(e.vertices), 15844 positionPrev: e.positionPrev || r.clone(e.position), 15845 anglePrev: e.anglePrev || e.angle, 15846 vertices: e.vertices, 15847 parts: e.parts || [e], 15848 isStatic: e.isStatic, 15849 isSleeping: e.isSleeping, 15850 parent: e.parent || e, 15851 }), 15852 i.rotate(e.vertices, e.angle, e.position), 15853 c.rotate(e.axes, e.angle), 15854 l.update(e.bounds, e.vertices, e.velocity), 15855 o.set(e, { 15856 axes: t.axes || e.axes, 15857 area: t.area || e.area, 15858 mass: t.mass || e.mass, 15859 inertia: t.inertia || e.inertia, 15860 }); 15861 var n = e.isStatic 15862 ? "#2e2b44" 15863 : a.choose([ 15864 "#006BA6", 15865 "#0496FF", 15866 "#FFBC42", 15867 "#D81159", 15868 "#8F2D56", 15869 ]); 15870 (e.render.fillStyle = e.render.fillStyle || n), 15871 (e.render.strokeStyle = e.render.strokeStyle || "#000"), 15872 (e.render.sprite.xOffset += 15873 -(e.bounds.min.x - e.position.x) /
15874 (e.bounds.max.x - e.bounds.min.x)), 15875 (e.render.sprite.yOffset += 15876 -(e.bounds.min.y - e.position.y) / 15877 (e.bounds.max.y - e.bounds.min.y)); 15878 }; 15879 (o.set = function (e, t, n) { 15880 var i; 15881 "string" == typeof t && ((i = t), (t = {}), (t[i] = n)); 15882 for (i in t) 15883 if (((n = t[i]), t.hasOwnProperty(i))) 15884 switch (i) { 15885 case "isStatic": 15886 o.setStatic(e, n); 15887 break; 15888 case "isSleeping": 15889 s.set(e, n); 15890 break; 15891 case "mass": 15892 o.setMass(e, n); 15893 break; 15894 case "density": 15895 o.setDensity(e, n); 15896 break; 15897 case "inertia": 15898 o.setInertia(e, n); 15899 break; 15900 case "vertices": 15901 o.setVertices(e, n); 15902 break; 15903 case "position": 15904 o.setPosition(e, n); 15905 break; 15906 case "angle": 15907 o.setAngle(e, n); 15908 break; 15909 case "velocity": 15910 o.setVelocity(e, n); 15911 break; 15912 case "angularVelocity": 15913 o.setAngularVelocity(e, n); 15914 break; 15915 case "parts": 15916 o.setParts(e, n); 15917 break; 15918 default: 15919 e[i] = n; 15920 } 15921 }), 15922 (o.setStatic = function (e, t) { 15923 for (var n = 0; n < e.parts.length; n++) { 15924 var o = e.parts[n]; 15925 (o.isStatic = t), 15926 t 15927 ? ((o._original = { 15928 restitution: o.restitution, 15929 friction: o.friction, 15930 mass: o.mass, 15931 inertia: o.inertia, 15932 density: o.density, 15933 inverseMass: o.inverseMass, 15934 inverseInertia: o.inverseInertia, 15935 }), 15936 (o.restitution = 0), 15937 (o.friction = 1), 15938 (o.mass = o.inertia = o.density = 1 / 0), 15939 (o.inverseMass = o.inverseInertia = 0), 15940 (o.positionPrev.x = o.position.x), 15941 (o.positionPrev.y = o.position.y), 15942 (o.anglePrev = o.angle), 15943 (o.angularVelocity = 0), 15944 (o.speed = 0), 15945 (o.angularSpeed = 0), 15946 (o.motion = 0)) 15947 : o._original && 15948 ((o.restitution = o._original.restitution), 15949 (o.friction = o._original.friction), 15950 (o.mass = o._original.mass), 15951 (o.inertia = o._original.inertia), 15952 (o.density = o._original.density), 15953 (o.inverseMass = o._original.inverseMass), 15954 (o.inverseInertia = o._original.inverseInertia), 15955 delete o._original); 15956 } 15957 }), 15958 (o.setMass = function (e, t) { 15959 var n = e.inertia / (e.mass / 6); 15960 (e.inertia = n * (t / 6)), 15961 (e.inverseInertia = 1 / e.inertia), 15962 (e.mass = t), 15963 (e.inverseMass = 1 / e.mass), 15964 (e.density = e.mass / e.area); 15965 }), 15966 (o.setDensity = function (e, t) { 15967 o.setMass(e, t * e.area), (e.density = t); 15968 }), 15969 (o.setInertia = function (e, t) { 15970 (e.inertia = t), (e.inverseInertia = 1 / e.inertia); 15971 }), 15972 (o.setVertices = function (e, t) { 15973 t[0].body === e 15974 ? (e.vertices = t) 15975 : (e.vertices = i.create(t, e)), 15976 (e.axes = c.fromVertices(e.vertices)), 15977 (e.area = i.area(e.vertices)), 15978 o.setMass(e, e.density * e.area); 15979 var n = i.centre(e.vertices); 15980 i.translate(e.vertices, n, -1), 15981 o.setInertia( 15982 e, 15983 o._inertiaScale * i.inertia(e.vertices, e.mass), 15984 ), 15985 i.translate(e.vertices, e.position), 15986 l.update(e.bounds, e.vertices, e.velocity); 15987 }), 15988 (o.setParts = function (e, t, n) { 15989 var r; 15990 for ( 15991 t = t.slice(0), 15992 e.parts.length = 0, 15993 e.parts.push(e), 15994 e.parent = e, 15995 r = 0; 15996 r < t.length; 15997 r++ 15998 ) { 15999 var s = t[r]; 16000 s !== e && ((s.parent = e), e.parts.push(s)); 16001 } 16002 if (1 !== e.parts.length) { 16003 if ((n = void 0 === n || n)) { 16004 var a = []; 16005 for (r = 0; r < t.length; r++) a = a.concat(t[r].vertices); 16006 i.clockwiseSort(a); 16007 var l = i.hull(a), 16008 c = i.centre(l); 16009 o.setVertices(e, l), i.translate(e.vertices, c); 16010 } 16011 var d = o._totalProperties(e); 16012 (e.area = d.area), 16013 (e.parent = e), 16014 (e.position.x = d.centre.x), 16015 (e.position.y = d.centre.y), 16016 (e.positionPrev.x = d.centre.x), 16017 (e.positionPrev.y = d.centre.y), 16018 o.setMass(e, d.mass), 16019 o.setInertia(e, d.inertia), 16020 o.setPosition(e, d.centre); 16021 } 16022 }), 16023 (o.setPosition = function (e, t) { 16024 var n = r.sub(t, e.position); 16025 (e.positionPrev.x += n.x), (e.positionPrev.y += n.y); 16026 for (var o = 0; o < e.parts.length; o++) { 16027 var s = e.parts[o]; 16028 (s.position.x += n.x), 16029 (s.position.y += n.y), 16030 i.translate(s.vertices, n), 16031 l.update(s.bounds, s.vertices, e.velocity); 16032 } 16033 }), 16034 (o.setAngle = function (e, t) { 16035 var n = t - e.angle; 16036 e.anglePrev += n; 16037 for (var o = 0; o < e.parts.length; o++) { 16038 var s = e.parts[o]; 16039 (s.angle += n), 16040 i.rotate(s.vertices, n, e.position), 16041 c.rotate(s.axes, n), 16042 l.update(s.bounds, s.vertices, e.velocity), 16043 o > 0 && 16044 r.rotateAbout(s.position, n, e.position, s.position); 16045 } 16046 }), 16047 (o.setVelocity = function (e, t) { 16048 (e.positionPrev.x = e.position.x - t.x), 16049 (e.positionPrev.y = e.position.y - t.y), 16050 (e.velocity.x = t.x), 16051 (e.velocity.y = t.y), 16052 (e.speed = r.magnitude(e.velocity)); 16053 }), 16054 (o.setAngularVelocity = function (e, t) { 16055 (e.anglePrev = e.angle - t), 16056 (e.angularVelocity = t), 16057 (e.angularSpeed = Math.abs(e.angularVelocity)); 16058 }), 16059 (o.translate = function (e, t) { 16060 o.setPosition(e, r.add(e.position, t)); 16061 }), 16062 (o.rotate = function (e, t, n) { 16063 if (n) { 16064 var i = Math.cos(t), 16065 r = Math.sin(t), 16066 s = e.position.x - n.x, 16067 a = e.position.y - n.y; 16068 o.setPosition(e, { 16069 x: n.x + (s * i - a * r), 16070 y: n.y + (s * r + a * i), 16071 }), 16072 o.setAngle(e, e.angle + t); 16073 } else o.setAngle(e, e.angle + t); 16074 }), 16075 (o.scale = function (e, t, n, r) { 16076 var s = 0, 16077 a = 0; 16078 r = r || e.position; 16079 for (var d = 0; d < e.parts.length; d++) { 16080 var u = e.parts[d]; 16081 i.scale(u.vertices, t, n, r), 16082 (u.axes = c.fromVertices(u.vertices)), 16083 (u.area = i.area(u.vertices)), 16084 o.setMass(u, e.density * u.area), 16085 i.translate(u.vertices, { 16086 x: -u.position.x, 16087 y: -u.position.y, 16088 }), 16089 o.setInertia( 16090 u, 16091 o._inertiaScale * i.inertia(u.vertices, u.mass), 16092 ), 16093 i.translate(u.vertices, { 16094 x: u.position.x, 16095 y: u.position.y, 16096 }), 16097 d > 0 && ((s += u.area), (a += u.inertia)), 16098 (u.position.x = r.x + (u.position.x - r.x) * t), 16099 (u.position.y = r.y + (u.position.y - r.y) * n), 16100 l.update(u.bounds, u.vertices, e.velocity); 16101 } 16102 e.parts.length > 1 && 16103 ((e.area = s), 16104 e.isStatic || 16105 (o.setMass(e, e.density * s), o.setInertia(e, a))), 16106 e.circleRadius &&
16107 (t === n ? (e.circleRadius *= t) : (e.circleRadius = null)); 16108 }), 16109 (o.update = function (e, t, n, o) { 16110 var s = Math.pow(t * n * e.timeScale, 2), 16111 a = 1 - e.frictionAir * n * e.timeScale, 16112 d = e.position.x - e.positionPrev.x, 16113 u = e.position.y - e.positionPrev.y; 16114 (e.velocity.x = d * a * o + (e.force.x / e.mass) * s), 16115 (e.velocity.y = u * a * o + (e.force.y / e.mass) * s), 16116 (e.positionPrev.x = e.position.x), 16117 (e.positionPrev.y = e.position.y), 16118 (e.position.x += e.velocity.x), 16119 (e.position.y += e.velocity.y), 16120 (e.angularVelocity = 16121 (e.angle - e.anglePrev) * a * o + 16122 (e.torque / e.inertia) * s), 16123 (e.anglePrev = e.angle), 16124 (e.angle += e.angularVelocity), 16125 (e.speed = r.magnitude(e.velocity)), 16126 (e.angularSpeed = Math.abs(e.angularVelocity)); 16127 for (var p = 0; p < e.parts.length; p++) { 16128 var f = e.parts[p]; 16129 i.translate(f.vertices, e.velocity), 16130 p > 0 && 16131 ((f.position.x += e.velocity.x), 16132 (f.position.y += e.velocity.y)), 16133 0 !== e.angularVelocity && 16134 (i.rotate(f.vertices, e.angularVelocity, e.position), 16135 c.rotate(f.axes, e.angularVelocity), 16136 p > 0 && 16137 r.rotateAbout( 16138 f.position, 16139 e.angularVelocity, 16140 e.position, 16141 f.position, 16142 )), 16143 l.update(f.bounds, f.vertices, e.velocity); 16144 } 16145 }), 16146 (o.applyForce = function (e, t, n) { 16147 (e.force.x += n.x), (e.force.y += n.y); 16148 var o = { x: t.x - e.position.x, y: t.y - e.position.y }; 16149 e.torque += o.x * n.y - o.y * n.x; 16150 }), 16151 (o._totalProperties = function (e) { 16152 for ( 16153 var t = { 16154 mass: 0, 16155 area: 0, 16156 inertia: 0, 16157 centre: { x: 0, y: 0 }, 16158 }, 16159 n = 1 === e.parts.length ? 0 : 1; 16160 n < e.parts.length; 16161 n++ 16162 ) { 16163 var o = e.parts[n], 16164 i = o.mass !== 1 / 0 ? o.mass : 1;
16165 (t.mass += i), 16166 (t.area += o.area), 16167 (t.inertia += o.inertia), 16168 (t.centre = r.add(t.centre, r.mult(o.position, i))); 16169 } 16170 return (t.centre = r.div(t.centre, t.mass)), t; 16171 }); 16172 })(); 16173 }, 16174 { 16175 "../core/Common": 14, 16176 "../core/Sleeping": 22, 16177 "../geometry/Axes": 25, 16178 "../geometry/Bounds": 26, 16179 "../geometry/Vector": 28, 16180 "../geometry/Vertices": 29, 16181 "../render/Render": 31, 16182 }, 16183 ], 16184 2: [ 16185 function (e, t, n) { 16186 var o = {}; 16187 t.exports = o; 16188 var i = e("../core/Events"), 16189 r = e("../core/Common"), 16190 s = e("../geometry/Bounds"), 16191 a = e("./Body"); 16192 !(function () { 16193 (o.create = function (e) { 16194 return r.extend( 16195 { 16196 id: r.nextId(), 16197 type: "composite", 16198 parent: null, 16199 isModified: !1, 16200 bodies: [], 16201 constraints: [], 16202 composites: [], 16203 label: "Composite", 16204 plugin: {}, 16205 }, 16206 e, 16207 ); 16208 }), 16209 (o.setModified = function (e, t, n, i) { 16210 if ( 16211 ((e.isModified = t), 16212 n && e.parent && o.setModified(e.parent, t, n, i), 16213 i) 16214 ) 16215 for (var r = 0; r < e.composites.length; r++) { 16216 var s = e.composites[r]; 16217 o.setModified(s, t, n, i); 16218 } 16219 }), 16220 (o.add = function (e, t) { 16221 var n = [].concat(t); 16222 i.trigger(e, "beforeAdd", { object: t }); 16223 for (var s = 0; s < n.length; s++) { 16224 var a = n[s]; 16225 switch (a.type) { 16226 case "body": 16227 if (a.parent !== a) { 16228 r.warn( 16229 "Composite.add: skipped adding a compound body part (you must add its parent instead)", 16230 ); 16231 break; 16232 } 16233 o.addBody(e, a); 16234 break; 16235 case "constraint": 16236 o.addConstraint(e, a); 16237 break; 16238 case "composite": 16239 o.addComposite(e, a); 16240 break; 16241 case "mouseConstraint": 16242 o.addConstraint(e, a.constraint); 16243 } 16244 } 16245 return i.trigger(e, "afterAdd", { object: t }), e; 16246 }), 16247 (o.remove = function (e, t, n) { 16248 var r = [].concat(t); 16249 i.trigger(e, "beforeRemove", { object: t }); 16250 for (var s = 0; s < r.length; s++) { 16251 var a = r[s]; 16252 switch (a.type) { 16253 case "body": 16254 o.removeBody(e, a, n); 16255 break; 16256 case "constraint": 16257 o.removeConstraint(e, a, n); 16258 break; 16259 case "composite": 16260 o.removeComposite(e, a, n); 16261 break; 16262 case "mouseConstraint": 16263 o.removeConstraint(e, a.constraint); 16264 } 16265 } 16266 return i.trigger(e, "afterRemove", { object: t }), e; 16267 }), 16268 (o.addComposite = function (e, t) { 16269 return ( 16270 e.composites.push(t), 16271 (t.parent = e), 16272 o.setModified(e, !0, !0, !1), 16273 e 16274 ); 16275 }), 16276 (o.removeComposite = function (e, t, n) { 16277 var i = r.indexOf(e.composites, t); 16278 if ( 16279 (-1 !== i && 16280 (o.removeCompositeAt(e, i), o.setModified(e, !0, !0, !1)), 16281 n) 16282 ) 16283 for (var s = 0; s < e.composites.length; s++) 16284 o.removeComposite(e.composites[s], t, !0); 16285 return e; 16286 }), 16287 (o.removeCompositeAt = function (e, t) { 16288 return ( 16289 e.composites.splice(t, 1), o.setModified(e, !0, !0, !1), e 16290 ); 16291 }), 16292 (o.addBody = function (e, t) { 16293 return e.bodies.push(t), o.setModified(e, !0, !0, !1), e; 16294 }), 16295 (o.removeBody = function (e, t, n) { 16296 var i = r.indexOf(e.bodies, t); 16297 if ( 16298 (-1 !== i && 16299 (o.removeBodyAt(e, i), o.setModified(e, !0, !0, !1)), 16300 n) 16301 ) 16302 for (var s = 0; s < e.composites.length; s++) 16303 o.removeBody(e.composites[s], t, !0); 16304 return e; 16305 }), 16306 (o.removeBodyAt = function (e, t) { 16307 return e.bodies.splice(t, 1), o.setModified(e, !0, !0, !1), e; 16308 }), 16309 (o.addConstraint = function (e, t) { 16310 return e.constraints.push(t), o.setModified(e, !0, !0, !1), e; 16311 }), 16312 (o.removeConstraint = function (e, t, n) { 16313 var i = r.indexOf(e.constraints, t); 16314 if ((-1 !== i && o.removeConstraintAt(e, i), n)) 16315 for (var s = 0; s < e.composites.length; s++) 16316 o.removeConstraint(e.composites[s], t, !0); 16317 return e; 16318 }), 16319 (o.removeConstraintAt = function (e, t) { 16320 return ( 16321 e.constraints.splice(t, 1), o.setModified(e, !0, !0, !1), e 16322 ); 16323 }), 16324 (o.clear = function (e, t, n) { 16325 if (n) 16326 for (var i = 0; i < e.composites.length; i++) 16327 o.clear(e.composites[i], t, !0); 16328 return ( 16329 t 16330 ? (e.bodies = e.bodies.filter(function (e) { 16331 return e.isStatic; 16332 })) 16333 : (e.bodies.length = 0), 16334 (e.constraints.length = 0), 16335 (e.composites.length = 0), 16336 o.setModified(e, !0, !0, !1), 16337 e 16338 ); 16339 }), 16340 (o.allBodies = function (e) { 16341 for ( 16342 var t = [].concat(e.bodies), n = 0; 16343 n < e.composites.length; 16344 n++ 16345 )
16346 t = t.concat(o.allBodies(e.composites[n])); 16347 return t; 16348 }), 16349 (o.allConstraints = function (e) { 16350 for ( 16351 var t = [].concat(e.constraints), n = 0; 16352 n < e.composites.length; 16353 n++ 16354 ) 16355 t = t.concat(o.allConstraints(e.composites[n])); 16356 return t; 16357 }), 16358 (o.allComposites = function (e) { 16359 for ( 16360 var t = [].concat(e.composites), n = 0; 16361 n < e.composites.length; 16362 n++ 16363 ) 16364 t = t.concat(o.allComposites(e.composites[n])); 16365 return t; 16366 }), 16367 (o.get = function (e, t, n) { 16368 var i, r; 16369 switch (n) { 16370 case "body": 16371 i = o.allBodies(e); 16372 break; 16373 case "constraint": 16374 i = o.allConstraints(e); 16375 break; 16376 case "composite": 16377 i = o.allComposites(e).concat(e); 16378 } 16379 return i 16380 ? ((r = i.filter(function (e) { 16381 return e.id.toString() === t.toString(); 16382 })), 16383 0 === r.length ? null : r[0]) 16384 : null; 16385 }), 16386 (o.move = function (e, t, n) { 16387 return o.remove(e, t), o.add(n, t), e; 16388 }), 16389 (o.rebase = function (e) { 16390 for ( 16391 var t = o 16392 .allBodies(e) 16393 .concat(o.allConstraints(e)) 16394 .concat(o.allComposites(e)), 16395 n = 0; 16396 n < t.length; 16397 n++ 16398 ) 16399 t[n].id = r.nextId(); 16400 return o.setModified(e, !0, !0, !1), e; 16401 }), 16402 (o.translate = function (e, t, n) { 16403 for ( 16404 var i = n ? o.allBodies(e) : e.bodies, r = 0; 16405 r < i.length; 16406 r++ 16407 ) 16408 a.translate(i[r], t); 16409 return o.setModified(e, !0, !0, !1), e; 16410 }), 16411 (o.rotate = function (e, t, n, i) { 16412 for (
16413 var r = Math.cos(t), 16414 s = Math.sin(t), 16415 l = i ? o.allBodies(e) : e.bodies, 16416 c = 0; 16417 c < l.length; 16418 c++ 16419 ) { 16420 var d = l[c], 16421 u = d.position.x - n.x, 16422 p = d.position.y - n.y; 16423 a.setPosition(d, { 16424 x: n.x + (u * r - p * s), 16425 y: n.y + (u * s + p * r), 16426 }), 16427 a.rotate(d, t); 16428 } 16429 return o.setModified(e, !0, !0, !1), e; 16430 }), 16431 (o.scale = function (e, t, n, i, r) { 16432 for ( 16433 var s = r ? o.allBodies(e) : e.bodies, l = 0; 16434 l < s.length; 16435 l++ 16436 ) { 16437 var c = s[l], 16438 d = c.position.x - i.x, 16439 u = c.position.y - i.y; 16440 a.setPosition(c, { x: i.x + d * t, y: i.y + u * n }), 16441 a.scale(c, t, n); 16442 } 16443 return o.setModified(e, !0, !0, !1), e; 16444 }), 16445 (o.bounds = function (e) { 16446 for ( 16447 var t = o.allBodies(e), n = [], i = 0; 16448 i < t.length; 16449 i += 1 16450 ) { 16451 var r = t[i]; 16452 n.push(r.bounds.min, r.bounds.max); 16453 } 16454 return s.create(n); 16455 }); 16456 })(); 16457 }, 16458 { 16459 "../core/Common": 14, 16460 "../core/Events": 16, 16461 "../geometry/Bounds": 26, 16462 "./Body": 1, 16463 }, 16464 ], 16465 3: [ 16466 function (e, t, n) { 16467 var o = {}; 16468 t.exports = o; 16469 var i = e("./Composite"), 16470 r = (e("../constraint/Constraint"), e("../core/Common")); 16471 !(function () { 16472 o.create = function (e) { 16473 var t = i.create(), 16474 n = { 16475 label: "World", 16476 gravity: { x: 0, y: 1, scale: 0.001 }, 16477 bounds: { 16478 min: { x: -1 / 0, y: -1 / 0 }, 16479 max: { x: 1 / 0, y: 1 / 0 }, 16480 }, 16481 }; 16482 return r.extend(t, n, e); 16483 }; 16484 })(); 16485 }, 16486 { 16487 "../constraint/Constraint": 12, 16488 "../core/Common": 14, 16489 "./Composite": 2, 16490 }, 16491 ], 16492 4: [ 16493 function (e, t, n) { 16494 var o = {}; 16495 (t.exports = o), 16496 (function () { 16497 (o.create = function (e) { 16498 return { 16499 id: o.id(e), 16500 vertex: e, 16501 normalImpulse: 0, 16502 tangentImpulse: 0, 16503 }; 16504 }), 16505 (o.id = function (e) { 16506 return e.body.id + "_" + e.index; 16507 }); 16508 })(); 16509 }, 16510 {}, 16511 ], 16512 5: [ 16513 function (e, t, n) { 16514 var o = {}; 16515 t.exports = o; 16516 var i = e("./SAT"), 16517 r = e("./Pair"), 16518 s = e("../geometry/Bounds"); 16519 !(function () { 16520 (o.collisions = function (e, t) { 16521 for (var n = [], a = t.pairs.table, l = 0; l < e.length; l++) { 16522 var c = e[l][0], 16523 d = e[l][1]; 16524 if ( 16525 ((!c.isStatic && !c.isSleeping) || 16526 (!d.isStatic && !d.isSleeping)) && 16527 o.canCollide(c.collisionFilter, d.collisionFilter) && 16528 s.overlaps(c.bounds, d.bounds) 16529 ) 16530 for ( 16531 var u = c.parts.length > 1 ? 1 : 0; 16532 u < c.parts.length; 16533 u++ 16534 ) 16535 for ( 16536 var p = c.parts[u], f = d.parts.length > 1 ? 1 : 0; 16537 f < d.parts.length; 16538 f++ 16539 ) { 16540 var m = d.parts[f]; 16541 if ( 16542 (p === c && m === d) || 16543 s.overlaps(p.bounds, m.bounds) 16544 ) { 16545 var v, 16546 y = r.id(p, m), 16547 g = a[y]; 16548 v = g && g.isActive ? g.collision : null; 16549 var x = i.collides(p, m, v); 16550 x.collided && n.push(x); 16551 } 16552 } 16553 } 16554 return n; 16555 }), 16556 (o.canCollide = function (e, t) { 16557 return e.group === t.group && 0 !== e.group 16558 ? e.group > 0 16559 : 0 != (e.mask & t.category) && 0 != (t.mask & e.category); 16560 }); 16561 })(); 16562 }, 16563 { "../geometry/Bounds": 26, "./Pair": 7, "./SAT": 11 }, 16564 ], 16565 6: [ 16566 function (e, t, n) { 16567 var o = {}; 16568 t.exports = o; 16569 var i = e("./Pair"), 16570 r = e("./Detector"), 16571 s = e("../core/Common"); 16572 !(function () { 16573 (o.create = function (e) { 16574 var t = { 16575 controller: o, 16576 detector: r.collisions, 16577 buckets: {}, 16578 pairs: {}, 16579 pairsList: [], 16580 bucketWidth: 48, 16581 bucketHeight: 48, 16582 }; 16583 return s.extend(t, e); 16584 }), 16585 (o.update = function (e, t, n, i) { 16586 var r, 16587 s, 16588 a, 16589 l, 16590 c, 16591 d = n.world,
16592 u = e.buckets, 16593 p = !1; 16594 for (r = 0; r < t.length; r++) { 16595 var f = t[r]; 16596 if ( 16597 (!f.isSleeping || i) && 16598 !( 16599 f.bounds.max.x < d.bounds.min.x || 16600 f.bounds.min.x > d.bounds.max.x || 16601 f.bounds.max.y < d.bounds.min.y || 16602 f.bounds.min.y > d.bounds.max.y 16603 ) 16604 ) { 16605 var m = o._getRegion(e, f); 16606 if (!f.region || m.id !== f.region.id || i) { 16607 (f.region && !i) || (f.region = m); 16608 var v = o._regionUnion(m, f.region); 16609 for (s = v.startCol; s <= v.endCol; s++) 16610 for (a = v.startRow; a <= v.endRow; a++) { 16611 (c = o._getBucketId(s, a)), (l = u[c]); 16612 var y = 16613 s >= m.startCol && 16614 s <= m.endCol && 16615 a >= m.startRow && 16616 a <= m.endRow, 16617 g = 16618 s >= f.region.startCol && 16619 s <= f.region.endCol && 16620 a >= f.region.startRow && 16621 a <= f.region.endRow; 16622 !y && g && g && l && o._bucketRemoveBody(e, l, f), 16623 (f.region === m || (y && !g) || i) && 16624 (l || (l = o._createBucket(u, c)), 16625 o._bucketAddBody(e, l, f)); 16626 } 16627 (f.region = m), (p = !0); 16628 } 16629 } 16630 } 16631 p && (e.pairsList = o._createActivePairsList(e)); 16632 }), 16633 (o.clear = function (e) { 16634 (e.buckets = {}), (e.pairs = {}), (e.pairsList = []); 16635 }), 16636 (o._regionUnion = function (e, t) { 16637 var n = Math.min(e.startCol, t.startCol), 16638 i = Math.max(e.endCol, t.endCol), 16639 r = Math.min(e.startRow, t.startRow), 16640 s = Math.max(e.endRow, t.endRow); 16641 return o._createRegion(n, i, r, s); 16642 }), 16643 (o._getRegion = function (e, t) { 16644 var n = t.bounds, 16645 i = Math.floor(n.min.x / e.bucketWidth), 16646 r = Math.floor(n.max.x / e.bucketWidth), 16647 s = Math.floor(n.min.y / e.bucketHeight), 16648 a = Math.floor(n.max.y / e.bucketHeight); 16649 return o._createRegion(i, r, s, a); 16650 }), 16651 (o._createRegion = function (e, t, n, o) { 16652 return { 16653 id: e + "," + t + "," + n + "," + o, 16654 startCol: e, 16655 endCol: t, 16656 startRow: n, 16657 endRow: o, 16658 }; 16659 }), 16660 (o._getBucketId = function (e, t) { 16661 return "C" + e + "R" + t; 16662 }), 16663 (o._createBucket = function (e, t) { 16664 return (e[t] = []); 16665 }), 16666 (o._bucketAddBody = function (e, t, n) { 16667 for (var o = 0; o < t.length; o++) { 16668 var r = t[o]; 16669 if (!(n.id === r.id || (n.isStatic && r.isStatic))) { 16670 var s = i.id(n, r), 16671 a = e.pairs[s]; 16672 a ? (a[2] += 1) : (e.pairs[s] = [n, r, 1]); 16673 } 16674 } 16675 t.push(n); 16676 }), 16677 (o._bucketRemoveBody = function (e, t, n) { 16678 t.splice(s.indexOf(t, n), 1); 16679 for (var o = 0; o < t.length; o++) { 16680 var r = t[o], 16681 a = i.id(n, r), 16682 l = e.pairs[a]; 16683 l && (l[2] -= 1); 16684 } 16685 }), 16686 (o._createActivePairsList = function (e) { 16687 var t, 16688 n, 16689 o = []; 16690 t = s.keys(e.pairs); 16691 for (var i = 0; i < t.length; i++) 16692 (n = e.pairs[t[i]]), 16693 n[2] > 0 ? o.push(n) : delete e.pairs[t[i]]; 16694 return o; 16695 }); 16696 })(); 16697 }, 16698 { "../core/Common": 14, "./Detector": 5, "./Pair": 7 }, 16699 ], 16700 7: [ 16701 function (e, t, n) { 16702 var o = {}; 16703 t.exports = o; 16704 var i = e("./Contact"); 16705 !(function () { 16706 (o.create = function (e, t) { 16707 var n = e.bodyA, 16708 i = e.bodyB, 16709 r = e.parentA, 16710 s = e.parentB, 16711 a = { 16712 id: o.id(n, i), 16713 bodyA: n, 16714 bodyB: i, 16715 contacts: {}, 16716 activeContacts: [], 16717 separation: 0, 16718 isActive: !0, 16719 isSensor: n.isSensor || i.isSensor, 16720 timeCreated: t, 16721 timeUpdated: t, 16722 inverseMass: r.inverseMass + s.inverseMass, 16723 friction: Math.min(r.friction, s.friction), 16724 frictionStatic: Math.max(r.frictionStatic, s.frictionStatic), 16725 restitution: Math.max(r.restitution, s.restitution), 16726 slop: Math.max(r.slop, s.slop), 16727 }; 16728 return o.update(a, e, t), a; 16729 }), 16730 (o.update = function (e, t, n) { 16731 var r = e.contacts, 16732 s = t.supports, 16733 a = e.activeContacts, 16734 l = t.parentA, 16735 c = t.parentB; 16736 if ( 16737 ((e.collision = t), 16738 (e.inverseMass = l.inverseMass + c.inverseMass), 16739 (e.friction = Math.min(l.friction, c.friction)), 16740 (e.frictionStatic = Math.max( 16741 l.frictionStatic, 16742 c.frictionStatic, 16743 )), 16744 (e.restitution = Math.max(l.restitution, c.restitution)), 16745 (e.slop = Math.max(l.slop, c.slop)), 16746 (a.length = 0), 16747 t.collided) 16748 ) { 16749 for (var d = 0; d < s.length; d++) { 16750 var u = s[d], 16751 p = i.id(u), 16752 f = r[p]; 16753 f ? a.push(f) : a.push((r[p] = i.create(u))); 16754 } 16755 (e.separation = t.depth), o.setActive(e, !0, n); 16756 } else !0 === e.isActive && o.setActive(e, !1, n); 16757 }),
16758 (o.setActive = function (e, t, n) { 16759 t 16760 ? ((e.isActive = !0), (e.timeUpdated = n)) 16761 : ((e.isActive = !1), (e.activeContacts.length = 0)); 16762 }), 16763 (o.id = function (e, t) { 16764 return e.id < t.id 16765 ? "A" + e.id + "B" + t.id 16766 : "A" + t.id + "B" + e.id; 16767 }); 16768 })(); 16769 }, 16770 { "./Contact": 4 }, 16771 ], 16772 8: [ 16773 function (e, t, n) { 16774 var o = {}; 16775 t.exports = o; 16776 var i = e("./Pair"), 16777 r = e("../core/Common"); 16778 !(function () { 16779 (o._pairMaxIdleLife = 1e3), 16780 (o.create = function (e) { 16781 return r.extend( 16782 { 16783 table: {}, 16784 list: [], 16785 collisionStart: [], 16786 collisionActive: [], 16787 collisionEnd: [], 16788 }, 16789 e, 16790 ); 16791 }), 16792 (o.update = function (e, t, n) { 16793 var o, 16794 s, 16795 a, 16796 l, 16797 c = e.list, 16798 d = e.table, 16799 u = e.collisionStart, 16800 p = e.collisionEnd, 16801 f = e.collisionActive, 16802 m = []; 16803 for ( 16804 u.length = 0, p.length = 0, f.length = 0, l = 0; 16805 l < t.length; 16806 l++ 16807 ) 16808 (o = t[l]), 16809 o.collided && 16810 ((s = i.id(o.bodyA, o.bodyB)), 16811 m.push(s), 16812 (a = d[s]), 16813 a 16814 ? (a.isActive ? f.push(a) : u.push(a), 16815 i.update(a, o, n)) 16816 : ((a = i.create(o, n)), 16817 (d[s] = a), 16818 u.push(a), 16819 c.push(a))); 16820 for (l = 0; l < c.length; l++) 16821 (a = c[l]), 16822 a.isActive && 16823 -1 === r.indexOf(m, a.id) && 16824 (i.setActive(a, !1, n), p.push(a)); 16825 }), 16826 (o.removeOld = function (e, t) { 16827 var n, 16828 i, 16829 r, 16830 s, 16831 a = e.list, 16832 l = e.table, 16833 c = []; 16834 for (s = 0; s < a.length; s++) 16835 (n = a[s]), 16836 (i = n.collision), 16837 i.bodyA.isSleeping || i.bodyB.isSleeping 16838 ? (n.timeUpdated = t) 16839 : t - n.timeUpdated > o._pairMaxIdleLife && c.push(s); 16840 for (s = 0; s < c.length; s++) 16841 (r = c[s] - s), (n = a[r]), delete l[n.id], a.splice(r, 1); 16842 }), 16843 (o.clear = function (e) { 16844 return ( 16845 (e.table = {}), 16846 (e.list.length = 0), 16847 (e.collisionStart.length = 0), 16848 (e.collisionActive.length = 0), 16849 (e.collisionEnd.length = 0), 16850 e 16851 ); 16852 }); 16853 })(); 16854 }, 16855 { "../core/Common": 14, "./Pair": 7 }, 16856 ], 16857 9: [ 16858 function (e, t, n) { 16859 var o = {}; 16860 t.exports = o; 16861 var i = e("../geometry/Vector"), 16862 r = e("./SAT"), 16863 s = e("../geometry/Bounds"), 16864 a = e("../factory/Bodies"), 16865 l = e("../geometry/Vertices"); 16866 !(function () { 16867 (o.collides = function (e, t) { 16868 for (var n = [], o = 0; o < t.length; o++) { 16869 var i = t[o]; 16870 if (s.overlaps(i.bounds, e.bounds)) 16871 for ( 16872 var a = 1 === i.parts.length ? 0 : 1; 16873 a < i.parts.length; 16874 a++ 16875 ) { 16876 var l = i.parts[a]; 16877 if (s.overlaps(l.bounds, e.bounds)) { 16878 var c = r.collides(l, e); 16879 if (c.collided) { 16880 n.push(c); 16881 break; 16882 } 16883 } 16884 } 16885 } 16886 return n; 16887 }), 16888 (o.ray = function (e, t, n, r) { 16889 r = r || 1e-100; 16890 for ( 16891 var s = i.angle(t, n), 16892 l = i.magnitude(i.sub(t, n)), 16893 c = 0.5 * (n.x + t.x), 16894 d = 0.5 * (n.y + t.y), 16895 u = a.rectangle(c, d, l, r, { angle: s }), 16896 p = o.collides(u, e),
16897 f = 0; 16898 f < p.length; 16899 f += 1 16900 ) { 16901 var m = p[f]; 16902 m.body = m.bodyB = m.bodyA; 16903 } 16904 return p; 16905 }), 16906 (o.region = function (e, t, n) { 16907 for (var o = [], i = 0; i < e.length; i++) { 16908 var r = e[i], 16909 a = s.overlaps(r.bounds, t); 16910 ((a && !n) || (!a && n)) && o.push(r); 16911 } 16912 return o; 16913 }), 16914 (o.point = function (e, t) { 16915 for (var n = [], o = 0; o < e.length; o++) { 16916 var i = e[o]; 16917 if (s.contains(i.bounds, t)) 16918 for ( 16919 var r = 1 === i.parts.length ? 0 : 1; 16920 r < i.parts.length; 16921 r++ 16922 ) { 16923 var a = i.parts[r]; 16924 if ( 16925 s.contains(a.bounds, t) && 16926 l.contains(a.vertices, t) 16927 ) { 16928 n.push(i); 16929 break; 16930 } 16931 } 16932 } 16933 return n; 16934 }); 16935 })(); 16936 }, 16937 { 16938 "../factory/Bodies": 23, 16939 "../geometry/Bounds": 26, 16940 "../geometry/Vector": 28, 16941 "../geometry/Vertices": 29, 16942 "./SAT": 11, 16943 }, 16944 ], 16945 10: [ 16946 function (e, t, n) { 16947 var o = {}; 16948 t.exports = o; 16949 var i = e("../geometry/Vertices"), 16950 r = e("../geometry/Vector"), 16951 s = e("../core/Common"), 16952 a = e("../geometry/Bounds"); 16953 !(function () { 16954 (o._restingThresh = 4), 16955 (o._restingThreshTangent = 6), 16956 (o._positionDampen = 0.9), 16957 (o._positionWarming = 0.8), 16958 (o._frictionNormalMultiplier = 5), 16959 (o.preSolvePosition = function (e) { 16960 var t, n, o; 16961 for (t = 0; t < e.length; t++) 16962 (n = e[t]), 16963 n.isActive && 16964 ((o = n.activeContacts.length), 16965 (n.collision.parentA.totalContacts += o), 16966 (n.collision.parentB.totalContacts += o)); 16967 }), 16968 (o.solvePosition = function (e, t) { 16969 var n, 16970 i, 16971 s, 16972 a, 16973 l, 16974 c, 16975 d, 16976 u, 16977 p, 16978 f = r._temp[0], 16979 m = r._temp[1], 16980 v = r._temp[2], 16981 y = r._temp[3]; 16982 for (n = 0; n < e.length; n++) 16983 (i = e[n]), 16984 i.isActive && 16985 !i.isSensor && 16986 ((s = i.collision), 16987 (a = s.parentA), 16988 (l = s.parentB), 16989 (c = s.normal), 16990 (d = r.sub( 16991 r.add(l.positionImpulse, l.position, f), 16992 r.add( 16993 a.positionImpulse, 16994 r.sub(l.position, s.penetration, m), 16995 v, 16996 ), 16997 y, 16998 )),
16999 (i.separation = r.dot(c, d))); 17000 for (n = 0; n < e.length; n++) 17001 (i = e[n]), 17002 i.isActive && 17003 !i.isSensor && 17004 ((s = i.collision), 17005 (a = s.parentA), 17006 (l = s.parentB), 17007 (c = s.normal), 17008 (p = (i.separation - i.slop) * t), 17009 (a.isStatic || l.isStatic) && (p *= 2), 17010 a.isStatic || 17011 a.isSleeping || 17012 ((u = o._positionDampen / a.totalContacts), 17013 (a.positionImpulse.x += c.x * p * u), 17014 (a.positionImpulse.y += c.y * p * u)), 17015 l.isStatic || 17016 l.isSleeping || 17017 ((u = o._positionDampen / l.totalContacts), 17018 (l.positionImpulse.x -= c.x * p * u), 17019 (l.positionImpulse.y -= c.y * p * u))); 17020 }), 17021 (o.postSolvePosition = function (e) { 17022 for (var t = 0; t < e.length; t++) { 17023 var n = e[t]; 17024 if ( 17025 ((n.totalContacts = 0), 17026 0 !== n.positionImpulse.x || 0 !== n.positionImpulse.y) 17027 ) { 17028 for (var s = 0; s < n.parts.length; s++) { 17029 var l = n.parts[s]; 17030 i.translate(l.vertices, n.positionImpulse), 17031 a.update(l.bounds, l.vertices, n.velocity), 17032 (l.position.x += n.positionImpulse.x), 17033 (l.position.y += n.positionImpulse.y); 17034 } 17035 (n.positionPrev.x += n.positionImpulse.x), 17036 (n.positionPrev.y += n.positionImpulse.y), 17037 r.dot(n.positionImpulse, n.velocity) < 0 17038 ? ((n.positionImpulse.x = 0), (n.positionImpulse.y = 0)) 17039 : ((n.positionImpulse.x *= o._positionWarming), 17040 (n.positionImpulse.y *= o._positionWarming)); 17041 } 17042 } 17043 }), 17044 (o.preSolveVelocity = function (e) { 17045 var t, 17046 n, 17047 o, 17048 i, 17049 s, 17050 a, 17051 l, 17052 c, 17053 d, 17054 u, 17055 p, 17056 f, 17057 m, 17058 v, 17059 y = r._temp[0], 17060 g = r._temp[1]; 17061 for (t = 0; t < e.length; t++) 17062 if (((o = e[t]), o.isActive && !o.isSensor)) 17063 for ( 17064 i = o.activeContacts, 17065 s = o.collision, 17066 a = s.parentA, 17067 l = s.parentB, 17068 c = s.normal, 17069 d = s.tangent, 17070 n = 0; 17071 n < i.length; 17072 n++ 17073 ) 17074 (u = i[n]), 17075 (p = u.vertex), 17076 (f = u.normalImpulse), 17077 (m = u.tangentImpulse), 17078 (0 === f && 0 === m) || 17079 ((y.x = c.x * f + d.x * m), 17080 (y.y = c.y * f + d.y * m), 17081 a.isStatic || 17082 a.isSleeping || 17083 ((v = r.sub(p, a.position, g)), 17084 (a.positionPrev.x += y.x * a.inverseMass), 17085 (a.positionPrev.y += y.y * a.inverseMass), 17086 (a.anglePrev += r.cross(v, y) * a.inverseInertia)), 17087 l.isStatic || 17088 l.isSleeping || 17089 ((v = r.sub(p, l.position, g)), 17090 (l.positionPrev.x -= y.x * l.inverseMass), 17091 (l.positionPrev.y -= y.y * l.inverseMass), 17092 (l.anglePrev -= r.cross(v, y) * l.inverseInertia))); 17093 }), 17094 (o.solveVelocity = function (e, t) { 17095 for ( 17096 var n = t * t, 17097 i = r._temp[0], 17098 a = r._temp[1], 17099 l = r._temp[2], 17100 c = r._temp[3], 17101 d = r._temp[4], 17102 u = r._temp[5], 17103 p = 0; 17104 p < e.length; 17105 p++ 17106 ) { 17107 var f = e[p]; 17108 if (f.isActive && !f.isSensor) { 17109 var m = f.collision, 17110 v = m.parentA, 17111 y = m.parentB, 17112 g = m.normal, 17113 x = m.tangent, 17114 h = f.activeContacts, 17115 b = 1 / h.length; 17116 (v.velocity.x = v.position.x - v.positionPrev.x), 17117 (v.velocity.y = v.position.y - v.positionPrev.y), 17118 (y.velocity.x = y.position.x - y.positionPrev.x), 17119 (y.velocity.y = y.position.y - y.positionPrev.y), 17120 (v.angularVelocity = v.angle - v.anglePrev), 17121 (y.angularVelocity = y.angle - y.anglePrev); 17122 for (var w = 0; w < h.length; w++) { 17123 var S = h[w], 17124 C = S.vertex, 17125 A = r.sub(C, v.position, a), 17126 P = r.sub(C, y.position, l), 17127 B = r.add( 17128 v.velocity, 17129 r.mult(r.perp(A), v.angularVelocity), 17130 c, 17131 ), 17132 M = r.add( 17133 y.velocity, 17134 r.mult(r.perp(P), y.angularVelocity), 17135 d, 17136 ), 17137 k = r.sub(B, M, u),
17138 I = r.dot(g, k), 17139 _ = r.dot(x, k), 17140 T = Math.abs(_), 17141 R = s.sign(_), 17142 V = (1 + f.restitution) * I, 17143 E = 17144 s.clamp(f.separation + I, 0, 1) * 17145 o._frictionNormalMultiplier, 17146 L = _, 17147 F = 1 / 0; 17148 T > f.friction * f.frictionStatic * E * n && 17149 ((F = T), (L = s.clamp(f.friction * R * n, -F, F))); 17150 var O = r.cross(A, g), 17151 q = r.cross(P, g), 17152 W = 17153 b / 17154 (v.inverseMass + 17155 y.inverseMass + 17156 v.inverseInertia * O * O + 17157 y.inverseInertia * q * q); 17158 if ( 17159 ((V *= W), 17160 (L *= W), 17161 I < 0 && I * I > o._restingThresh * n) 17162 ) 17163 S.normalImpulse = 0; 17164 else { 17165 var D = S.normalImpulse; 17166 (S.normalImpulse = Math.min(S.normalImpulse + V, 0)), 17167 (V = S.normalImpulse - D); 17168 } 17169 if (_ * _ > o._restingThreshTangent * n) 17170 S.tangentImpulse = 0; 17171 else { 17172 var N = S.tangentImpulse; 17173 (S.tangentImpulse = s.clamp( 17174 S.tangentImpulse + L, 17175 -F, 17176 F, 17177 )), 17178 (L = S.tangentImpulse - N); 17179 } 17180 (i.x = g.x * V + x.x * L), 17181 (i.y = g.y * V + x.y * L), 17182 v.isStatic || 17183 v.isSleeping || 17184 ((v.positionPrev.x += i.x * v.inverseMass), 17185 (v.positionPrev.y += i.y * v.inverseMass), 17186 (v.anglePrev += r.cross(A, i) * v.inverseInertia)), 17187 y.isStatic || 17188 y.isSleeping || 17189 ((y.positionPrev.x -= i.x * y.inverseMass), 17190 (y.positionPrev.y -= i.y * y.inverseMass), 17191 (y.anglePrev -= r.cross(P, i) * y.inverseInertia)); 17192 } 17193 } 17194 } 17195 }); 17196 })(); 17197 }, 17198 { 17199 "../core/Common": 14, 17200 "../geometry/Bounds": 26, 17201 "../geometry/Vector": 28, 17202 "../geometry/Vertices": 29, 17203 }, 17204 ], 17205 11: [ 17206 function (e, t, n) { 17207 var o = {}; 17208 t.exports = o; 17209 var i = e("../geometry/Vertices"), 17210 r = e("../geometry/Vector"); 17211 !(function () { 17212 (o.collides = function (e, t, n) { 17213 var s, 17214 a, 17215 l, 17216 c, 17217 d = !1; 17218 if (n) { 17219 var u = e.parent, 17220 p = t.parent, 17221 f = 17222 u.speed * u.speed + 17223 u.angularSpeed * u.angularSpeed + 17224 p.speed * p.speed + 17225 p.angularSpeed * p.angularSpeed; 17226 (d = n && n.collided && f < 0.2), (c = n); 17227 } else c = { collided: !1, bodyA: e, bodyB: t }; 17228 if (n && d) { 17229 var m = c.axisBody, 17230 v = m === e ? t : e, 17231 y = [m.axes[n.axisNumber]]; 17232 if ( 17233 ((l = o._overlapAxes(m.vertices, v.vertices, y)), 17234 (c.reused = !0), 17235 l.overlap <= 0) 17236 ) 17237 return (c.collided = !1), c; 17238 } else { 17239 if ( 17240 ((s = o._overlapAxes(e.vertices, t.vertices, e.axes)), 17241 s.overlap <= 0) 17242 ) 17243 return (c.collided = !1), c; 17244 if (
17245 ((a = o._overlapAxes(t.vertices, e.vertices, t.axes)), 17246 a.overlap <= 0) 17247 ) 17248 return (c.collided = !1), c; 17249 s.overlap < a.overlap 17250 ? ((l = s), (c.axisBody = e)) 17251 : ((l = a), (c.axisBody = t)), 17252 (c.axisNumber = l.axisNumber); 17253 } 17254 (c.bodyA = e.id < t.id ? e : t), 17255 (c.bodyB = e.id < t.id ? t : e), 17256 (c.collided = !0), 17257 (c.depth = l.overlap), 17258 (c.parentA = c.bodyA.parent), 17259 (c.parentB = c.bodyB.parent), 17260 (e = c.bodyA), 17261 (t = c.bodyB), 17262 r.dot(l.axis, r.sub(t.position, e.position)) < 0 17263 ? (c.normal = { x: l.axis.x, y: l.axis.y }) 17264 : (c.normal = { x: -l.axis.x, y: -l.axis.y }), 17265 (c.tangent = r.perp(c.normal)), 17266 (c.penetration = c.penetration || {}), 17267 (c.penetration.x = c.normal.x * c.depth), 17268 (c.penetration.y = c.normal.y * c.depth); 17269 var g = o._findSupports(e, t, c.normal), 17270 x = []; 17271 if ( 17272 (i.contains(e.vertices, g[0]) && x.push(g[0]), 17273 i.contains(e.vertices, g[1]) && x.push(g[1]), 17274 x.length < 2) 17275 ) { 17276 var h = o._findSupports(t, e, r.neg(c.normal)); 17277 i.contains(t.vertices, h[0]) && x.push(h[0]), 17278 x.length < 2 && i.contains(t.vertices, h[1]) && x.push(h[1]); 17279 } 17280 return x.length < 1 && (x = [g[0]]), (c.supports = x), c; 17281 }), 17282 (o._overlapAxes = function (e, t, n) { 17283 for ( 17284 var i, 17285 s, 17286 a = r._temp[0], 17287 l = r._temp[1], 17288 c = { overlap: Number.MAX_VALUE }, 17289 d = 0; 17290 d < n.length; 17291 d++ 17292 ) { 17293 if ( 17294 ((s = n[d]), 17295 o._projectToAxis(a, e, s), 17296 o._projectToAxis(l, t, s), 17297 (i = Math.min(a.max - l.min, l.max - a.min)) <= 0) 17298 ) 17299 return (c.overlap = i), c; 17300 i < c.overlap && 17301 ((c.overlap = i), (c.axis = s), (c.axisNumber = d)); 17302 } 17303 return c; 17304 }), 17305 (o._projectToAxis = function (e, t, n) { 17306 for ( 17307 var o = r.dot(t[0], n), i = o, s = 1; 17308 s < t.length; 17309 s += 1 17310 ) { 17311 var a = r.dot(t[s], n); 17312 a > i ? (i = a) : a < o && (o = a); 17313 } 17314 (e.min = o), (e.max = i); 17315 }), 17316 (o._findSupports = function (e, t, n) { 17317 for ( 17318 var o, 17319 i, 17320 s, 17321 a, 17322 l = Number.MAX_VALUE, 17323 c = r._temp[0], 17324 d = t.vertices, 17325 u = e.position, 17326 p = 0; 17327 p < d.length; 17328 p++ 17329 ) 17330 (i = d[p]), 17331 (c.x = i.x - u.x), 17332 (c.y = i.y - u.y), 17333 (o = -r.dot(n, c)) < l && ((l = o), (s = i)); 17334 return ( 17335 (i = d[s.index - 1 >= 0 ? s.index - 1 : d.length - 1]), 17336 (c.x = i.x - u.x), 17337 (c.y = i.y - u.y), 17338 (l = -r.dot(n, c)), 17339 (a = i), 17340 (i = d[(s.index + 1) % d.length]), 17341 (c.x = i.x - u.x), 17342 (c.y = i.y - u.y), 17343 (o = -r.dot(n, c)), 17344 o < l && (a = i), 17345 [s, a] 17346 ); 17347 }); 17348 })(); 17349 }, 17350 { "../geometry/Vector": 28, "../geometry/Vertices": 29 }, 17351 ], 17352 12: [ 17353 function (e, t, n) { 17354 var o = {}; 17355 t.exports = o; 17356 var i = e("../geometry/Vertices"), 17357 r = e("../geometry/Vector"), 17358 s = e("../core/Sleeping"), 17359 a = e("../geometry/Bounds"), 17360 l = e("../geometry/Axes"), 17361 c = e("../core/Common"); 17362 !(function () { 17363 (o._warming = 0.4), 17364 (o._torqueDampen = 1), 17365 (o._minLength = 1e-6), 17366 (o.create = function (e) { 17367 var t = e; 17368 t.bodyA && !t.pointA && (t.pointA = { x: 0, y: 0 }), 17369 t.bodyB && !t.pointB && (t.pointB = { x: 0, y: 0 }); 17370 var n = t.bodyA ? r.add(t.bodyA.position, t.pointA) : t.pointA, 17371 o = t.bodyB ? r.add(t.bodyB.position, t.pointB) : t.pointB, 17372 i = r.magnitude(r.sub(n, o)); 17373 (t.length = void 0 !== t.length ? t.length : i), 17374 (t.id = t.id || c.nextId()), 17375 (t.label = t.label || "Constraint"), 17376 (t.type = "constraint"), 17377 (t.stiffness = t.stiffness || (t.length > 0 ? 1 : 0.7)), 17378 (t.damping = t.damping || 0), 17379 (t.angularStiffness = t.angularStiffness || 0), 17380 (t.angleA = t.bodyA ? t.bodyA.angle : t.angleA), 17381 (t.angleB = t.bodyB ? t.bodyB.angle : t.angleB), 17382 (t.plugin = {}); 17383 var s = { 17384 visible: !0, 17385 lineWidth: 2, 17386 strokeStyle: "#ffffff", 17387 type: "line", 17388 anchors: !0, 17389 }; 17390 return ( 17391 0 === t.length && t.stiffness > 0.1 17392 ? ((s.type = "pin"), (s.anchors = !1)) 17393 : t.stiffness < 0.9 && (s.type = "spring"), 17394 (t.render = c.extend(s, t.render)), 17395 t 17396 ); 17397 }), 17398 (o.preSolveAll = function (e) { 17399 for (var t = 0; t < e.length; t += 1) { 17400 var n = e[t], 17401 o = n.constraintImpulse; 17402 n.isStatic || 17403 (0 === o.x && 0 === o.y && 0 === o.angle) || 17404 ((n.position.x += o.x), 17405 (n.position.y += o.y), 17406 (n.angle += o.angle)); 17407 } 17408 }), 17409 (o.solveAll = function (e, t) { 17410 for (var n = 0; n < e.length; n += 1) { 17411 var i = e[n], 17412 r = !i.bodyA || (i.bodyA && i.bodyA.isStatic), 17413 s = !i.bodyB || (i.bodyB && i.bodyB.isStatic); 17414 (r || s) && o.solve(e[n], t); 17415 } 17416 for (n = 0; n < e.length; n += 1) 17417 (i = e[n]), 17418 (r = !i.bodyA || (i.bodyA && i.bodyA.isStatic)), 17419 (s = !i.bodyB || (i.bodyB && i.bodyB.isStatic)), 17420 r || s || o.solve(e[n], t); 17421 }), 17422 (o.solve = function (e, t) { 17423 var n = e.bodyA, 17424 i = e.bodyB, 17425 s = e.pointA, 17426 a = e.pointB; 17427 if (n || i) { 17428 n && 17429 !n.isStatic && 17430 (r.rotate(s, n.angle - e.angleA, s), (e.angleA = n.angle)), 17431 i && 17432 !i.isStatic && 17433 (r.rotate(a, i.angle - e.angleB, a), 17434 (e.angleB = i.angle)); 17435 var l = s, 17436 c = a; 17437 if ( 17438 (n && (l = r.add(n.position, s)), 17439 i && (c = r.add(i.position, a)), 17440 l && c) 17441 ) { 17442 var d = r.sub(l, c), 17443 u = r.magnitude(d); 17444 u < o._minLength && (u = o._minLength); 17445 var p, 17446 f, 17447 m, 17448 v, 17449 y, 17450 g = (u - e.length) / u, 17451 x = e.stiffness < 1 ? e.stiffness * t : e.stiffness, 17452 h = r.mult(d, g * x), 17453 b = (n ? n.inverseMass : 0) + (i ? i.inverseMass : 0), 17454 w = 17455 (n ? n.inverseInertia : 0) + (i ? i.inverseInertia : 0), 17456 S = b + w; 17457 if (e.damping) { 17458 var C = r.create(); 17459 (m = r.div(d, u)), 17460 (y = r.sub( 17461 (i && r.sub(i.position, i.positionPrev)) || C, 17462 (n && r.sub(n.position, n.positionPrev)) || C, 17463 )), 17464 (v = r.dot(m, y)); 17465 } 17466 n && 17467 !n.isStatic && 17468 ((f = n.inverseMass / b), 17469 (n.constraintImpulse.x -= h.x * f), 17470 (n.constraintImpulse.y -= h.y * f), 17471 (n.position.x -= h.x * f), 17472 (n.position.y -= h.y * f), 17473 e.damping && 17474 ((n.positionPrev.x -= e.damping * m.x * v * f), 17475 (n.positionPrev.y -= e.damping * m.y * v * f)), 17476 (p = 17477 (r.cross(s, h) / S) * 17478 o._torqueDampen * 17479 n.inverseInertia * 17480 (1 - e.angularStiffness)), 17481 (n.constraintImpulse.angle -= p), 17482 (n.angle -= p)), 17483 i && 17484 !i.isStatic && 17485 ((f = i.inverseMass / b), 17486 (i.constraintImpulse.x += h.x * f), 17487 (i.constraintImpulse.y += h.y * f), 17488 (i.position.x += h.x * f), 17489 (i.position.y += h.y * f), 17490 e.damping && 17491 ((i.positionPrev.x += e.damping * m.x * v * f), 17492 (i.positionPrev.y += e.damping * m.y * v * f)), 17493 (p = 17494 (r.cross(a, h) / S) * 17495 o._torqueDampen * 17496 i.inverseInertia * 17497 (1 - e.angularStiffness)), 17498 (i.constraintImpulse.angle += p), 17499 (i.angle += p)); 17500 } 17501 } 17502 }), 17503 (o.postSolveAll = function (e) { 17504 for (var t = 0; t < e.length; t++) { 17505 var n = e[t], 17506 c = n.constraintImpulse; 17507 if ( 17508 !(n.isStatic || (0 === c.x && 0 === c.y && 0 === c.angle)) 17509 ) { 17510 s.set(n, !1); 17511 for (var d = 0; d < n.parts.length; d++) { 17512 var u = n.parts[d]; 17513 i.translate(u.vertices, c), 17514 d > 0 && ((u.position.x += c.x), (u.position.y += c.y)), 17515 0 !== c.angle && 17516 (i.rotate(u.vertices, c.angle, n.position), 17517 l.rotate(u.axes, c.angle), 17518 d > 0 && 17519 r.rotateAbout( 17520 u.position, 17521 c.angle, 17522 n.position, 17523 u.position, 17524 )), 17525 a.update(u.bounds, u.vertices, n.velocity); 17526 } 17527 (c.angle *= o._warming), 17528 (c.x *= o._warming), 17529 (c.y *= o._warming); 17530 } 17531 } 17532 }); 17533 })(); 17534 }, 17535 { 17536 "../core/Common": 14, 17537 "../core/Sleeping": 22, 17538 "../geometry/Axes": 25, 17539 "../geometry/Bounds": 26, 17540 "../geometry/Vector": 28, 17541 "../geometry/Vertices": 29, 17542 }, 17543 ], 17544 13: [ 17545 function (e, t, n) { 17546 var o = {}; 17547 t.exports = o; 17548 var i = e("../geometry/Vertices"), 17549 r = e("../core/Sleeping"), 17550 s = e("../core/Mouse"), 17551 a = e("../core/Events"), 17552 l = e("../collision/Detector"), 17553 c = e("./Constraint"), 17554 d = e("../body/Composite"), 17555 u = e("../core/Common"), 17556 p = e("../geometry/Bounds"); 17557 !(function () { 17558 (o.create = function (e, t) { 17559 var n = (e ? e.mouse : null) || (t ? t.mouse : null); 17560 n || 17561 (e && e.render && e.render.canvas 17562 ? (n = s.create(e.render.canvas)) 17563 : t && t.element 17564 ? (n = s.create(t.element)) 17565 : ((n = s.create()), 17566 u.warn( 17567 "MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected", 17568 ))); 17569 var i = c.create({ 17570 label: "Mouse Constraint", 17571 pointA: n.position, 17572 pointB: { x: 0, y: 0 }, 17573 length: 0.01, 17574 stiffness: 0.1, 17575 angularStiffness: 1, 17576 render: { strokeStyle: "#90EE90", lineWidth: 3 }, 17577 }), 17578 r = { 17579 type: "mouseConstraint", 17580 mouse: n, 17581 element: null, 17582 body: null, 17583 constraint: i, 17584 collisionFilter: { category: 1, mask: 4294967295, group: 0 }, 17585 }, 17586 l = u.extend(r, t); 17587 return ( 17588 a.on(e, "beforeUpdate", function () { 17589 var t = d.allBodies(e.world); 17590 o.update(l, t), o._triggerEvents(l); 17591 }), 17592 l 17593 ); 17594 }), 17595 (o.update = function (e, t) { 17596 var n = e.mouse, 17597 o = e.constraint, 17598 s = e.body; 17599 if (0 === n.button) { 17600 if (o.bodyB) r.set(o.bodyB, !1), (o.pointA = n.position); 17601 else 17602 for (var c = 0; c < t.length; c++) 17603 if ( 17604 ((s = t[c]), 17605 p.contains(s.bounds, n.position) && 17606 l.canCollide(s.collisionFilter, e.collisionFilter)) 17607 ) 17608 for ( 17609 var d = s.parts.length > 1 ? 1 : 0; 17610 d < s.parts.length; 17611 d++ 17612 ) { 17613 var u = s.parts[d]; 17614 if (i.contains(u.vertices, n.position)) { 17615 (o.pointA = n.position), 17616 (o.bodyB = e.body = s), 17617 (o.pointB = { 17618 x: n.position.x - s.position.x, 17619 y: n.position.y - s.position.y, 17620 }), 17621 (o.angleB = s.angle), 17622 r.set(s, !1), 17623 a.trigger(e, "startdrag", { mouse: n, body: s }); 17624 break; 17625 } 17626 } 17627 } else 17628 (o.bodyB = e.body = null),
17629 (o.pointB = null), 17630 s && a.trigger(e, "enddrag", { mouse: n, body: s }); 17631 }), 17632 (o._triggerEvents = function (e) { 17633 var t = e.mouse, 17634 n = t.sourceEvents; 17635 n.mousemove && a.trigger(e, "mousemove", { mouse: t }), 17636 n.mousedown && a.trigger(e, "mousedown", { mouse: t }), 17637 n.mouseup && a.trigger(e, "mouseup", { mouse: t }), 17638 s.clearSourceEvents(t); 17639 }); 17640 })(); 17641 }, 17642 { 17643 "../body/Composite": 2, 17644 "../collision/Detector": 5, 17645 "../core/Common": 14, 17646 "../core/Events": 16, 17647 "../core/Mouse": 19, 17648 "../core/Sleeping": 22, 17649 "../geometry/Bounds": 26, 17650 "../geometry/Vertices": 29, 17651 "./Constraint": 12, 17652 }, 17653 ], 17654 14: [ 17655 function (e, t, n) { 17656 (function (n) { 17657 var o = {}; 17658 (t.exports = o), 17659 (function () { 17660 (o._nextId = 0), 17661 (o._seed = 0), 17662 (o._nowStartTime = +new Date()), 17663 (o.extend = function (e, t) { 17664 var n, i; 17665 "boolean" == typeof t 17666 ? ((n = 2), (i = t)) 17667 : ((n = 1), (i = !0)); 17668 for (var r = n; r < arguments.length; r++) { 17669 var s = arguments[r]; 17670 if (s) 17671 for (var a in s) 17672 i && s[a] && s[a].constructor === Object 17673 ? e[a] && e[a].constructor !== Object 17674 ? (e[a] = s[a]) 17675 : ((e[a] = e[a] || {}), o.extend(e[a], i, s[a])) 17676 : (e[a] = s[a]); 17677 } 17678 return e; 17679 }), 17680 (o.clone = function (e, t) { 17681 return o.extend({}, t, e); 17682 }), 17683 (o.keys = function (e) { 17684 if (Object.keys) return Object.keys(e); 17685 var t = []; 17686 for (var n in e) t.push(n); 17687 return t; 17688 }), 17689 (o.values = function (e) { 17690 var t = []; 17691 if (Object.keys) { 17692 for (var n = Object.keys(e), o = 0; o < n.length; o++) 17693 t.push(e[n[o]]); 17694 return t; 17695 } 17696 for (var i in e) t.push(e[i]); 17697 return t; 17698 }), 17699 (o.get = function (e, t, n, o) { 17700 t = t.split(".").slice(n, o); 17701 for (var i = 0; i < t.length; i += 1) e = e[t[i]]; 17702 return e; 17703 }), 17704 (o.set = function (e, t, n, i, r) { 17705 var s = t.split(".").slice(i, r); 17706 return (o.get(e, t, 0, -1)[s[s.length - 1]] = n), n; 17707 }), 17708 (o.shuffle = function (e) { 17709 for (var t = e.length - 1; t > 0; t--) { 17710 var n = Math.floor(o.random() * (t + 1)), 17711 i = e[t]; 17712 (e[t] = e[n]), (e[n] = i); 17713 } 17714 return e; 17715 }), 17716 (o.choose = function (e) { 17717 return e[Math.floor(o.random() * e.length)]; 17718 }), 17719 (o.isElement = function (e) { 17720 return "undefined" != typeof HTMLElement 17721 ? e instanceof HTMLElement 17722 : !!(e && e.nodeType && e.nodeName); 17723 }), 17724 (o.isArray = function (e) { 17725 return ( 17726 "[object Array]" === Object.prototype.toString.call(e) 17727 ); 17728 }), 17729 (o.isFunction = function (e) { 17730 return "function" == typeof e; 17731 }), 17732 (o.isPlainObject = function (e) { 17733 return "object" == typeof e && e.constructor === Object; 17734 }), 17735 (o.isString = function (e) { 17736 return "[object String]" === toString.call(e); 17737 }), 17738 (o.clamp = function (e, t, n) { 17739 return e < t ? t : e > n ? n : e; 17740 }), 17741 (o.sign = function (e) { 17742 return e < 0 ? -1 : 1; 17743 }), 17744 (o.now = function () { 17745 if (window.performance) { 17746 if (window.performance.now) 17747 return window.performance.now(); 17748 if (window.performance.webkitNow) 17749 return window.performance.webkitNow(); 17750 } 17751 return new Date() - o._nowStartTime; 17752 }), 17753 (o.random = function (e, n) { 17754 return ( 17755 (e = void 0 !== e ? e : 0), 17756 (n = void 0 !== n ? n : 1), 17757 e + t() * (n - e) 17758 ); 17759 }); 17760 var t = function () { 17761 return ( 17762 (o._seed = (9301 * o._seed + 49297) % 233280), 17763 o._seed / 233280 17764 ); 17765 }; 17766 (o.colorToNumber = function (e) { 17767 return ( 17768 (e = e.replace("#", "")), 17769 3 == e.length && 17770 (e = 17771 e.charAt(0) + 17772 e.charAt(0) + 17773 e.charAt(1) + 17774 e.charAt(1) + 17775 e.charAt(2) + 17776 e.charAt(2)), 17777 parseInt(e, 16) 17778 ); 17779 }), 17780 (o.logLevel = 1), 17781 (o.log = function () { 17782 console && 17783 o.logLevel > 0 && 17784 o.logLevel <= 3 && 17785 console.log.apply( 17786 console, 17787 ["matter-js:"].concat( 17788 Array.prototype.slice.call(arguments), 17789 ), 17790 ); 17791 }), 17792 (o.info = function () { 17793 console && 17794 o.logLevel > 0 && 17795 o.logLevel <= 2 && 17796 console.info.apply( 17797 console, 17798 ["matter-js:"].concat( 17799 Array.prototype.slice.call(arguments), 17800 ), 17801 ); 17802 }), 17803 (o.warn = function () { 17804 console && 17805 o.logLevel > 0 && 17806 o.logLevel <= 3 && 17807 console.warn.apply( 17808 console, 17809 ["matter-js:"].concat( 17810 Array.prototype.slice.call(arguments), 17811 ), 17812 ); 17813 }), 17814 (o.nextId = function () { 17815 return o._nextId++; 17816 }), 17817 (o.indexOf = function (e, t) { 17818 if (e.indexOf) return e.indexOf(t); 17819 for (var n = 0; n < e.length; n++) if (e[n] === t) return n; 17820 return -1; 17821 }), 17822 (o.map = function (e, t) { 17823 if (e.map) return e.map(t); 17824 for (var n = [], o = 0; o < e.length; o += 1) 17825 n.push(t(e[o])); 17826 return n; 17827 }), 17828 (o.topologicalSort = function (e) { 17829 var t = [], 17830 n = [], 17831 i = []; 17832 for (var r in e) 17833 n[r] || i[r] || o._topologicalSort(r, n, i, e, t); 17834 return t; 17835 }), 17836 (o._topologicalSort = function (e, t, n, i, r) { 17837 var s = i[e] || []; 17838 n[e] = !0; 17839 for (var a = 0; a < s.length; a += 1) { 17840 var l = s[a]; 17841 n[l] || t[l] || o._topologicalSort(l, t, n, i, r); 17842 } 17843 (n[e] = !1), (t[e] = !0), r.push(e); 17844 }), 17845 (o.chain = function () { 17846 for (var e = [], t = 0; t < arguments.length; t += 1) { 17847 var n = arguments[t]; 17848 n._chained ? e.push.apply(e, n._chained) : e.push(n); 17849 } 17850 var o = function () { 17851 for ( 17852 var t, 17853 n = new Array(arguments.length), 17854 o = 0, 17855 i = arguments.length; 17856 o < i; 17857 o++ 17858 ) 17859 n[o] = arguments[o]; 17860 for (o = 0; o < e.length; o += 1) { 17861 var r = e[o].apply(t, n); 17862 void 0 !== r && (t = r); 17863 } 17864 return t; 17865 }; 17866 return (o._chained = e), o; 17867 }), 17868 (o.chainPathBefore = function (e, t, n) { 17869 return o.set(e, t, o.chain(n, o.get(e, t))); 17870 }), 17871 (o.chainPathAfter = function (e, t, n) { 17872 return o.set(e, t, o.chain(o.get(e, t), n)); 17873 }), 17874 (o._requireGlobal = function (t, o) { 17875 return ( 17876 ("undefined" != typeof window 17877 ? window[t] 17878 : void 0 !== n 17879 ? n[t] 17880 : null) || e(o) 17881 ); 17882 }); 17883 })(); 17884 }).call( 17885 this, 17886 "undefined" != typeof global 17887 ? global 17888 : "undefined" != typeof self 17889 ? self 17890 : "undefined" != typeof window 17891 ? window 17892 : {}, 17893 ); 17894 }, 17895 {}, 17896 ], 17897 15: [ 17898 function (e, t, n) { 17899 var o = {}; 17900 t.exports = o; 17901 var i = e("../body/World"), 17902 r = e("./Sleeping"), 17903 s = e("../collision/Resolver"), 17904 a = e("../render/Render"), 17905 l = e("../collision/Pairs"), 17906 c = (e("./Metrics"), e("../collision/Grid")), 17907 d = e("./Events"), 17908 u = e("../body/Composite"), 17909 p = e("../constraint/Constraint"), 17910 f = e("./Common"), 17911 m = e("../body/Body"); 17912 !(function () { 17913 (o.create = function (e, t) { 17914 (t = f.isElement(e) ? t : e), 17915 (e = f.isElement(e) ? e : null),
17916 (t = t || {}), 17917 (e || t.render) && 17918 f.warn( 17919 "Engine.create: engine.render is deprecated (see docs)", 17920 ); 17921 var n = { 17922 positionIterations: 6, 17923 velocityIterations: 4, 17924 constraintIterations: 2, 17925 enableSleeping: !1, 17926 events: [], 17927 plugin: {}, 17928 timing: { timestamp: 0, timeScale: 1 }, 17929 broadphase: { controller: c }, 17930 }, 17931 o = f.extend(n, t); 17932 if (e || o.render) { 17933 var r = { element: e, controller: a }; 17934 o.render = f.extend(r, o.render); 17935 } 17936 return ( 17937 o.render && 17938 o.render.controller && 17939 (o.render = o.render.controller.create(o.render)), 17940 o.render && (o.render.engine = o), 17941 (o.world = t.world || i.create(o.world)), 17942 (o.pairs = l.create()), 17943 (o.broadphase = o.broadphase.controller.create(o.broadphase)), 17944 (o.metrics = o.metrics || { extended: !1 }), 17945 o 17946 ); 17947 }), 17948 (o.update = function (e, t, n) { 17949 (t = t || 1e3 / 60), (n = n || 1); 17950 var i, 17951 a = e.world, 17952 c = e.timing, 17953 f = e.broadphase, 17954 m = []; 17955 c.timestamp += t * c.timeScale; 17956 var v = { timestamp: c.timestamp }; 17957 d.trigger(e, "beforeUpdate", v); 17958 var y = u.allBodies(a), 17959 g = u.allConstraints(a); 17960 for ( 17961 e.enableSleeping && r.update(y, c.timeScale), 17962 o._bodiesApplyGravity(y, a.gravity), 17963 o._bodiesUpdate(y, t, c.timeScale, n, a.bounds), 17964 p.preSolveAll(y), 17965 i = 0; 17966 i < e.constraintIterations; 17967 i++ 17968 ) 17969 p.solveAll(g, c.timeScale); 17970 p.postSolveAll(y), 17971 f.controller 17972 ? (a.isModified && f.controller.clear(f), 17973 f.controller.update(f, y, e, a.isModified), 17974 (m = f.pairsList)) 17975 : (m = y), 17976 a.isModified && u.setModified(a, !1, !1, !0); 17977 var x = f.detector(m, e), 17978 h = e.pairs, 17979 b = c.timestamp; 17980 for ( 17981 l.update(h, x, b), 17982 l.removeOld(h, b), 17983 e.enableSleeping && r.afterCollisions(h.list, c.timeScale), 17984 h.collisionStart.length > 0 && 17985 d.trigger(e, "collisionStart", { 17986 pairs: h.collisionStart, 17987 }), 17988 s.preSolvePosition(h.list), 17989 i = 0; 17990 i < e.positionIterations; 17991 i++ 17992 ) 17993 s.solvePosition(h.list, c.timeScale); 17994 for ( 17995 s.postSolvePosition(y), p.preSolveAll(y), i = 0; 17996 i < e.constraintIterations; 17997 i++ 17998 ) 17999 p.solveAll(g, c.timeScale); 18000 for ( 18001 p.postSolveAll(y), s.preSolveVelocity(h.list), i = 0; 18002 i < e.velocityIterations; 18003 i++ 18004 ) 18005 s.solveVelocity(h.list, c.timeScale); 18006 return ( 18007 h.collisionActive.length > 0 && 18008 d.trigger(e, "collisionActive", { 18009 pairs: h.collisionActive, 18010 }), 18011 h.collisionEnd.length > 0 && 18012 d.trigger(e, "collisionEnd", { pairs: h.collisionEnd }), 18013 o._bodiesClearForces(y), 18014 d.trigger(e, "afterUpdate", v), 18015 e 18016 ); 18017 }), 18018 (o.merge = function (e, t) { 18019 if ((f.extend(e, t), t.world)) { 18020 (e.world = t.world), o.clear(e); 18021 for (var n = u.allBodies(e.world), i = 0; i < n.length; i++) { 18022 var s = n[i]; 18023 r.set(s, !1), (s.id = f.nextId()); 18024 } 18025 } 18026 }), 18027 (o.clear = function (e) { 18028 var t = e.world; 18029 l.clear(e.pairs); 18030 var n = e.broadphase; 18031 if (n.controller) { 18032 var o = u.allBodies(t); 18033 n.controller.clear(n), n.controller.update(n, o, e, !0); 18034 } 18035 }), 18036 (o._bodiesClearForces = function (e) { 18037 for (var t = 0; t < e.length; t++) { 18038 var n = e[t]; 18039 (n.force.x = 0), (n.force.y = 0), (n.torque = 0); 18040 } 18041 }), 18042 (o._bodiesApplyGravity = function (e, t) { 18043 var n = void 0 !== t.scale ? t.scale : 0.001; 18044 if ((0 !== t.x || 0 !== t.y) && 0 !== n) 18045 for (var o = 0; o < e.length; o++) { 18046 var i = e[o]; 18047 i.isStatic || 18048 i.isSleeping || 18049 ((i.force.y += i.mass * t.y * n),
18050 (i.force.x += i.mass * t.x * n)); 18051 } 18052 }), 18053 (o._bodiesUpdate = function (e, t, n, o, i) { 18054 for (var r = 0; r < e.length; r++) { 18055 var s = e[r]; 18056 s.isStatic || s.isSleeping || m.update(s, t, n, o); 18057 } 18058 }); 18059 })(); 18060 }, 18061 { 18062 "../body/Body": 1, 18063 "../body/Composite": 2, 18064 "../body/World": 3, 18065 "../collision/Grid": 6, 18066 "../collision/Pairs": 8, 18067 "../collision/Resolver": 10, 18068 "../constraint/Constraint": 12, 18069 "../render/Render": 31, 18070 "./Common": 14, 18071 "./Events": 16, 18072 "./Metrics": 18, 18073 "./Sleeping": 22, 18074 }, 18075 ], 18076 16: [ 18077 function (e, t, n) { 18078 var o = {}; 18079 t.exports = o; 18080 var i = e("./Common"); 18081 !(function () { 18082 (o.on = function (e, t, n) { 18083 for (var o, i = t.split(" "), r = 0; r < i.length; r++) 18084 (o = i[r]), 18085 (e.events = e.events || {}), 18086 (e.events[o] = e.events[o] || []), 18087 e.events[o].push(n); 18088 return n; 18089 }), 18090 (o.off = function (e, t, n) { 18091 if (!t) return void (e.events = {}); 18092 "function" == typeof t && 18093 ((n = t), (t = i.keys(e.events).join(" "))); 18094 for (var o = t.split(" "), r = 0; r < o.length; r++) { 18095 var s = e.events[o[r]], 18096 a = []; 18097 if (n && s) 18098 for (var l = 0; l < s.length; l++) 18099 s[l] !== n && a.push(s[l]); 18100 e.events[o[r]] = a; 18101 } 18102 }), 18103 (o.trigger = function (e, t, n) { 18104 var o, r, s, a; 18105 if (e.events) { 18106 n || (n = {}), (o = t.split(" ")); 18107 for (var l = 0; l < o.length; l++) 18108 if (((r = o[l]), (s = e.events[r]))) { 18109 (a = i.clone(n, !1)), (a.name = r), (a.source = e); 18110 for (var c = 0; c < s.length; c++) s[c].apply(e, [a]); 18111 } 18112 } 18113 }); 18114 })(); 18115 }, 18116 { "./Common": 14 }, 18117 ], 18118 17: [ 18119 function (e, t, n) { 18120 var o = {}; 18121 t.exports = o; 18122 var i = e("./Plugin"), 18123 r = e("./Common"); 18124 !(function () { 18125 (o.name = "matter-js"), 18126 (o.version = "0.14.2"), 18127 (o.uses = []), 18128 (o.used = []), 18129 (o.use = function () { 18130 i.use(o, Array.prototype.slice.call(arguments)); 18131 }), 18132 (o.before = function (e, t) { 18133 return ( 18134 (e = e.replace(/^Matter./, "")), r.chainPathBefore(o, e, t) 18135 ); 18136 }), 18137 (o.after = function (e, t) { 18138 return ( 18139 (e = e.replace(/^Matter./, "")), r.chainPathAfter(o, e, t) 18140 ); 18141 }); 18142 })(); 18143 }, 18144 { "./Common": 14, "./Plugin": 20 }, 18145 ], 18146 18: [function (e, t, n) {}, { "../body/Composite": 2, "./Common": 14 }], 18147 19: [ 18148 function (e, t, n) { 18149 var o = {}; 18150 t.exports = o; 18151 var i = e("../core/Common"); 18152 !(function () { 18153 (o.create = function (e) { 18154 var t = {}; 18155 return ( 18156 e || 18157 i.log( 18158 "Mouse.create: element was undefined, defaulting to document.body", 18159 "warn", 18160 ), 18161 (t.element = e || document.body), 18162 (t.absolute = { x: 0, y: 0 }), 18163 (t.position = { x: 0, y: 0 }), 18164 (t.mousedownPosition = { x: 0, y: 0 }), 18165 (t.mouseupPosition = { x: 0, y: 0 }), 18166 (t.offset = { x: 0, y: 0 }), 18167 (t.scale = { x: 1, y: 1 }), 18168 (t.wheelDelta = 0), 18169 (t.button = -1), 18170 (t.pixelRatio = 18171 t.element.getAttribute("data-pixel-ratio") || 1), 18172 (t.sourceEvents = { 18173 mousemove: null, 18174 mousedown: null, 18175 mouseup: null, 18176 mousewheel: null, 18177 }), 18178 (t.mousemove = function (e) { 18179 var n = o._getRelativeMousePosition( 18180 e, 18181 t.element, 18182 t.pixelRatio, 18183 ); 18184 e.changedTouches && ((t.button = 0), e.preventDefault()), 18185 (t.absolute.x = n.x), 18186 (t.absolute.y = n.y), 18187 (t.position.x = t.absolute.x * t.scale.x + t.offset.x), 18188 (t.position.y = t.absolute.y * t.scale.y + t.offset.y), 18189 (t.sourceEvents.mousemove = e); 18190 }), 18191 (t.mousedown = function (e) { 18192 var n = o._getRelativeMousePosition( 18193 e, 18194 t.element, 18195 t.pixelRatio, 18196 ); 18197 e.changedTouches 18198 ? ((t.button = 0), e.preventDefault()) 18199 : (t.button = e.button), 18200 (t.absolute.x = n.x), 18201 (t.absolute.y = n.y), 18202 (t.position.x = t.absolute.x * t.scale.x + t.offset.x), 18203 (t.position.y = t.absolute.y * t.scale.y + t.offset.y), 18204 (t.mousedownPosition.x = t.position.x), 18205 (t.mousedownPosition.y = t.position.y), 18206 (t.sourceEvents.mousedown = e); 18207 }), 18208 (t.mouseup = function (e) { 18209 var n = o._getRelativeMousePosition( 18210 e, 18211 t.element, 18212 t.pixelRatio, 18213 ); 18214 e.changedTouches && e.preventDefault(), 18215 (t.button = -1), 18216 (t.absolute.x = n.x), 18217 (t.absolute.y = n.y), 18218 (t.position.x = t.absolute.x * t.scale.x + t.offset.x), 18219 (t.position.y = t.absolute.y * t.scale.y + t.offset.y), 18220 (t.mouseupPosition.x = t.position.x), 18221 (t.mouseupPosition.y = t.position.y), 18222 (t.sourceEvents.mouseup = e); 18223 }), 18224 (t.mousewheel = function (e) { 18225 (t.wheelDelta = Math.max( 18226 -1, 18227 Math.min(1, e.wheelDelta || -e.detail), 18228 )), 18229 e.preventDefault(); 18230 }), 18231 o.setElement(t, t.element), 18232 t 18233 ); 18234 }), 18235 (o.setElement = function (e, t) { 18236 (e.element = t), 18237 t.addEventListener("mousemove", e.mousemove), 18238 t.addEventListener("mousedown", e.mousedown), 18239 t.addEventListener("mouseup", e.mouseup), 18240 t.addEventListener("mousewheel", e.mousewheel),
18241 t.addEventListener("DOMMouseScroll", e.mousewheel), 18242 t.addEventListener("touchmove", e.mousemove), 18243 t.addEventListener("touchstart", e.mousedown), 18244 t.addEventListener("touchend", e.mouseup); 18245 }), 18246 (o.clearSourceEvents = function (e) { 18247 (e.sourceEvents.mousemove = null), 18248 (e.sourceEvents.mousedown = null), 18249 (e.sourceEvents.mouseup = null), 18250 (e.sourceEvents.mousewheel = null), 18251 (e.wheelDelta = 0); 18252 }), 18253 (o.setOffset = function (e, t) { 18254 (e.offset.x = t.x), 18255 (e.offset.y = t.y), 18256 (e.position.x = e.absolute.x * e.scale.x + e.offset.x), 18257 (e.position.y = e.absolute.y * e.scale.y + e.offset.y); 18258 }), 18259 (o.setScale = function (e, t) { 18260 (e.scale.x = t.x), 18261 (e.scale.y = t.y), 18262 (e.position.x = e.absolute.x * e.scale.x + e.offset.x), 18263 (e.position.y = e.absolute.y * e.scale.y + e.offset.y); 18264 }), 18265 (o._getRelativeMousePosition = function (e, t, n) { 18266 var o, 18267 i, 18268 r = t.getBoundingClientRect(), 18269 s = 18270 document.documentElement || 18271 document.body.parentNode || 18272 document.body, 18273 a = 18274 void 0 !== window.pageXOffset 18275 ? window.pageXOffset 18276 : s.scrollLeft, 18277 l = 18278 void 0 !== window.pageYOffset 18279 ? window.pageYOffset 18280 : s.scrollTop, 18281 c = e.changedTouches; 18282 return ( 18283 c 18284 ? ((o = c[0].pageX - r.left - a), 18285 (i = c[0].pageY - r.top - l)) 18286 : ((o = e.pageX - r.left - a), (i = e.pageY - r.top - l)), 18287 { 18288 x: o / ((t.clientWidth / (t.width || t.clientWidth)) * n), 18289 y: 18290 i / ((t.clientHeight / (t.height || t.clientHeight)) * n), 18291 } 18292 ); 18293 }); 18294 })(); 18295 }, 18296 { "../core/Common": 14 }, 18297 ], 18298 20: [ 18299 function (e, t, n) { 18300 var o = {}; 18301 t.exports = o; 18302 var i = e("./Common"); 18303 !(function () { 18304 (o._registry = {}), 18305 (o.register = function (e) { 18306 if ( 18307 (o.isPlugin(e) || 18308 i.warn( 18309 "Plugin.register:", 18310 o.toString(e), 18311 "does not implement all required fields.", 18312 ), 18313 e.name in o._registry) 18314 ) { 18315 var t = o._registry[e.name], 18316 n = o.versionParse(e.version).number, 18317 r = o.versionParse(t.version).number; 18318 n > r 18319 ? (i.warn( 18320 "Plugin.register:", 18321 o.toString(t), 18322 "was upgraded to", 18323 o.toString(e), 18324 ), 18325 (o._registry[e.name] = e)) 18326 : n < r 18327 ? i.warn( 18328 "Plugin.register:", 18329 o.toString(t), 18330 "can not be downgraded to", 18331 o.toString(e), 18332 ) 18333 : e !== t && 18334 i.warn( 18335 "Plugin.register:", 18336 o.toString(e), 18337 "is already registered to different plugin object", 18338 ); 18339 } else o._registry[e.name] = e; 18340 return e; 18341 }), 18342 (o.resolve = function (e) { 18343 return o._registry[o.dependencyParse(e).name]; 18344 }), 18345 (o.toString = function (e) { 18346 return "string" == typeof e 18347 ? e 18348 : (e.name || "anonymous") + 18349 "@" + 18350 (e.version || e.range || "0.0.0"); 18351 }), 18352 (o.isPlugin = function (e) {
18353 return e && e.name && e.version && e.install; 18354 }), 18355 (o.isUsed = function (e, t) { 18356 return e.used.indexOf(t) > -1; 18357 }), 18358 (o.isFor = function (e, t) { 18359 var n = e.for && o.dependencyParse(e.for); 18360 return ( 18361 !e.for || 18362 (t.name === n.name && o.versionSatisfies(t.version, n.range)) 18363 ); 18364 }), 18365 (o.use = function (e, t) { 18366 if ( 18367 ((e.uses = (e.uses || []).concat(t || [])), 18368 0 === e.uses.length) 18369 ) 18370 return void i.warn( 18371 "Plugin.use:", 18372 o.toString(e), 18373 "does not specify any dependencies to install.", 18374 ); 18375 for ( 18376 var n = o.dependencies(e), 18377 r = i.topologicalSort(n), 18378 s = [], 18379 a = 0; 18380 a < r.length; 18381 a += 1 18382 ) 18383 if (r[a] !== e.name) { 18384 var l = o.resolve(r[a]); 18385 l 18386 ? o.isUsed(e, l.name) || 18387 (o.isFor(l, e) || 18388 (i.warn( 18389 "Plugin.use:", 18390 o.toString(l), 18391 "is for", 18392 l.for, 18393 "but installed on", 18394 o.toString(e) + ".", 18395 ), 18396 (l._warned = !0)), 18397 l.install 18398 ? l.install(e) 18399 : (i.warn( 18400 "Plugin.use:", 18401 o.toString(l), 18402 "does not specify an install function.", 18403 ), 18404 (l._warned = !0)), 18405 l._warned 18406 ? (s.push("ð¶ " + o.toString(l)), delete l._warned) 18407 : s.push("â " + o.toString(l)), 18408 e.used.push(l.name)) 18409 : s.push("â " + r[a]); 18410 } 18411 s.length > 0 && i.info(s.join(" ")); 18412 }), 18413 (o.dependencies = function (e, t) { 18414 var n = o.dependencyParse(e), 18415 r = n.name; 18416 if (((t = t || {}), !(r in t))) { 18417 (e = o.resolve(e) || e), 18418 (t[r] = i.map(e.uses || [], function (t) { 18419 o.isPlugin(t) && o.register(t); 18420 var r = o.dependencyParse(t), 18421 s = o.resolve(t); 18422 return ( 18423 s && !o.versionSatisfies(s.version, r.range) 18424 ? (i.warn( 18425 "Plugin.dependencies:", 18426 o.toString(s), 18427 "does not satisfy", 18428 o.toString(r), 18429 "used by", 18430 o.toString(n) + ".", 18431 ), 18432 (s._warned = !0), 18433 (e._warned = !0)) 18434 : s || 18435 (i.warn( 18436 "Plugin.dependencies:", 18437 o.toString(t), 18438 "used by", 18439 o.toString(n), 18440 "could not be resolved.", 18441 ), 18442 (e._warned = !0)), 18443 r.name 18444 ); 18445 })); 18446 for (var s = 0; s < t[r].length; s += 1) 18447 o.dependencies(t[r][s], t); 18448 return t; 18449 } 18450 }), 18451 (o.dependencyParse = function (e) { 18452 if (i.isString(e)) { 18453 return ( 18454 /^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-]+)?))?$/.test( 18455 e, 18456 ) || 18457 i.warn( 18458 "Plugin.dependencyParse:", 18459 e,
18460 "is not a valid dependency string.", 18461 ), 18462 { name: e.split("@")[0], range: e.split("@")[1] || "*" } 18463 ); 18464 } 18465 return { name: e.name, range: e.range || e.version }; 18466 }), 18467 (o.versionParse = function (e) { 18468 /^\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-]+)?$/.test(e) || 18469 i.warn( 18470 "Plugin.versionParse:", 18471 e, 18472 "is not a valid version or range.", 18473 ); 18474 var t = e.split("-"); 18475 e = t[0]; 18476 var n = isNaN(Number(e[0])), 18477 o = n ? e.substr(1) : e, 18478 r = i.map(o.split("."), function (e) { 18479 return Number(e); 18480 }); 18481 return { 18482 isRange: n, 18483 version: o, 18484 range: e, 18485 operator: n ? e[0] : "", 18486 parts: r, 18487 prerelease: t[1], 18488 number: 1e8 * r[0] + 1e4 * r[1] + r[2], 18489 }; 18490 }), 18491 (o.versionSatisfies = function (e, t) { 18492 t = t || "*"; 18493 var n = o.versionParse(t), 18494 i = n.parts, 18495 r = o.versionParse(e), 18496 s = r.parts; 18497 if (n.isRange) { 18498 if ("*" === n.operator || "*" === e) return !0; 18499 if ("~" === n.operator) 18500 return s[0] === i[0] && s[1] === i[1] && s[2] >= i[2]; 18501 if ("^" === n.operator) 18502 return i[0] > 0 18503 ? s[0] === i[0] && r.number >= n.number 18504 : i[1] > 0 18505 ? s[1] === i[1] && s[2] >= i[2] 18506 : s[2] === i[2]; 18507 } 18508 return e === t || "*" === e; 18509 }); 18510 })(); 18511 }, 18512 { "./Common": 14 }, 18513 ], 18514 21: [ 18515 function (e, t, n) { 18516 var o = {}; 18517 t.exports = o; 18518 var i = e("./Events"), 18519 r = e("./Engine"), 18520 s = e("./Common"); 18521 !(function () { 18522 var e, t; 18523 if ( 18524 ("undefined" != typeof window && 18525 ((e = 18526 window.requestAnimationFrame || 18527 window.webkitRequestAnimationFrame || 18528 window.mozRequestAnimationFrame || 18529 window.msRequestAnimationFrame), 18530 (t = 18531 window.cancelAnimationFrame || 18532 window.mozCancelAnimationFrame || 18533 window.webkitCancelAnimationFrame || 18534 window.msCancelAnimationFrame)), 18535 !e) 18536 ) { 18537 var n; 18538 (e = function (e) { 18539 n = setTimeout(function () { 18540 e(s.now()); 18541 }, 1e3 / 60); 18542 }), 18543 (t = function () { 18544 clearTimeout(n); 18545 }); 18546 } 18547 (o.create = function (e) { 18548 var t = { 18549 fps: 60, 18550 correction: 1, 18551 deltaSampleSize: 60, 18552 counterTimestamp: 0, 18553 frameCounter: 0, 18554 deltaHistory: [], 18555 timePrev: null, 18556 timeScalePrev: 1, 18557 frameRequestId: null, 18558 isFixed: !1, 18559 enabled: !0, 18560 }, 18561 n = s.extend(t, e); 18562 return ( 18563 (n.delta = n.delta || 1e3 / n.fps), 18564 (n.deltaMin = n.deltaMin || 1e3 / n.fps), 18565 (n.deltaMax = n.deltaMax || 1e3 / (0.5 * n.fps)), 18566 (n.fps = 1e3 / n.delta), 18567 n 18568 ); 18569 }), 18570 (o.run = function (t, n) { 18571 return ( 18572 void 0 !== t.positionIterations && 18573 ((n = t), (t = o.create())), 18574 (function i(r) { 18575 (t.frameRequestId = e(i)), 18576 r && t.enabled && o.tick(t, n, r); 18577 })(), 18578 t 18579 ); 18580 }), 18581 (o.tick = function (e, t, n) { 18582 var o, 18583 s = t.timing, 18584 a = 1, 18585 l = { timestamp: s.timestamp }; 18586 i.trigger(e, "beforeTick", l), 18587 i.trigger(t, "beforeTick", l), 18588 e.isFixed 18589 ? (o = e.delta) 18590 : ((o = n - e.timePrev || e.delta), 18591 (e.timePrev = n), 18592 e.deltaHistory.push(o), 18593 (e.deltaHistory = e.deltaHistory.slice( 18594 -e.deltaSampleSize, 18595 )),
18596 (o = Math.min.apply(null, e.deltaHistory)), 18597 (o = o < e.deltaMin ? e.deltaMin : o), 18598 (o = o > e.deltaMax ? e.deltaMax : o), 18599 (a = o / e.delta), 18600 (e.delta = o)), 18601 0 !== e.timeScalePrev && (a *= s.timeScale / e.timeScalePrev), 18602 0 === s.timeScale && (a = 0), 18603 (e.timeScalePrev = s.timeScale), 18604 (e.correction = a), 18605 (e.frameCounter += 1), 18606 n - e.counterTimestamp >= 1e3 && 18607 ((e.fps = 18608 e.frameCounter * ((n - e.counterTimestamp) / 1e3)), 18609 (e.counterTimestamp = n), 18610 (e.frameCounter = 0)), 18611 i.trigger(e, "tick", l), 18612 i.trigger(t, "tick", l), 18613 t.world.isModified && 18614 t.render && 18615 t.render.controller && 18616 t.render.controller.clear && 18617 t.render.controller.clear(t.render), 18618 i.trigger(e, "beforeUpdate", l), 18619 r.update(t, o, a), 18620 i.trigger(e, "afterUpdate", l), 18621 t.render && 18622 t.render.controller && 18623 (i.trigger(e, "beforeRender", l), 18624 i.trigger(t, "beforeRender", l), 18625 t.render.controller.world(t.render),
18626 i.trigger(e, "afterRender", l), 18627 i.trigger(t, "afterRender", l)), 18628 i.trigger(e, "afterTick", l), 18629 i.trigger(t, "afterTick", l); 18630 }), 18631 (o.stop = function (e) { 18632 t(e.frameRequestId); 18633 }), 18634 (o.start = function (e, t) { 18635 o.run(e, t); 18636 }); 18637 })(); 18638 }, 18639 { "./Common": 14, "./Engine": 15, "./Events": 16 }, 18640 ], 18641 22: [ 18642 function (e, t, n) { 18643 var o = {}; 18644 t.exports = o; 18645 var i = e("./Events"); 18646 !(function () { 18647 (o._motionWakeThreshold = 0.18), 18648 (o._motionSleepThreshold = 0.08), 18649 (o._minBias = 0.9), 18650 (o.update = function (e, t) { 18651 for (var n = t * t * t, i = 0; i < e.length; i++) { 18652 var r = e[i], 18653 s = r.speed * r.speed + r.angularSpeed * r.angularSpeed; 18654 if (0 === r.force.x && 0 === r.force.y) { 18655 var a = Math.min(r.motion, s), 18656 l = Math.max(r.motion, s); 18657 (r.motion = o._minBias * a + (1 - o._minBias) * l), 18658 r.sleepThreshold > 0 && 18659 r.motion < o._motionSleepThreshold * n 18660 ? ((r.sleepCounter += 1), 18661 r.sleepCounter >= r.sleepThreshold && o.set(r, !0)) 18662 : r.sleepCounter > 0 && (r.sleepCounter -= 1); 18663 } else o.set(r, !1); 18664 } 18665 }), 18666 (o.afterCollisions = function (e, t) { 18667 for (var n = t * t * t, i = 0; i < e.length; i++) { 18668 var r = e[i]; 18669 if (r.isActive) { 18670 var s = r.collision, 18671 a = s.bodyA.parent, 18672 l = s.bodyB.parent; 18673 if ( 18674 !( 18675 (a.isSleeping && l.isSleeping) || 18676 a.isStatic || 18677 l.isStatic 18678 ) && 18679 (a.isSleeping || l.isSleeping) 18680 ) { 18681 var c = a.isSleeping && !a.isStatic ? a : l, 18682 d = c === a ? l : a; 18683 !c.isStatic && 18684 d.motion > o._motionWakeThreshold * n && 18685 o.set(c, !1); 18686 } 18687 } 18688 } 18689 }), 18690 (o.set = function (e, t) { 18691 var n = e.isSleeping; 18692 t 18693 ? ((e.isSleeping = !0), 18694 (e.sleepCounter = e.sleepThreshold), 18695 (e.positionImpulse.x = 0), 18696 (e.positionImpulse.y = 0), 18697 (e.positionPrev.x = e.position.x), 18698 (e.positionPrev.y = e.position.y), 18699 (e.anglePrev = e.angle), 18700 (e.speed = 0), 18701 (e.angularSpeed = 0), 18702 (e.motion = 0), 18703 n || i.trigger(e, "sleepStart")) 18704 : ((e.isSleeping = !1), 18705 (e.sleepCounter = 0), 18706 n && i.trigger(e, "sleepEnd")); 18707 }); 18708 })(); 18709 }, 18710 { 18711 "./Events": 16, 18712 }, 18713 ], 18714 23: [ 18715 function (e, t, n) { 18716 var o = {}; 18717 t.exports = o; 18718 var i, 18719 r = e("../geometry/Vertices"), 18720 s = e("../core/Common"), 18721 a = e("../body/Body"), 18722 l = e("../geometry/Bounds"), 18723 c = e("../geometry/Vector"); 18724 !(function () { 18725 (o.rectangle = function (e, t, n, o, i) { 18726 i = i || {}; 18727 var l = { 18728 label: "Rectangle Body", 18729 position: { x: e, y: t }, 18730 vertices: r.fromPath( 18731 "L 0 0 L " + n + " 0 L " + n + " " + o + " L 0 " + o, 18732 ), 18733 }; 18734 if (i.chamfer) { 18735 var c = i.chamfer; 18736 (l.vertices = r.chamfer( 18737 l.vertices, 18738 c.radius, 18739 c.quality, 18740 c.qualityMin, 18741 c.qualityMax, 18742 )), 18743 delete i.chamfer; 18744 } 18745 return a.create(s.extend({}, l, i)); 18746 }), 18747 (o.trapezoid = function (e, t, n, o, i, l) { 18748 (l = l || {}), (i *= 0.5); 18749 var c,
18750 d = (1 - 2 * i) * n, 18751 u = n * i, 18752 p = u + d, 18753 f = p + u; 18754 c = 18755 i < 0.5 18756 ? "L 0 0 L " + 18757 u + 18758 " " + 18759 -o + 18760 " L " + 18761 p + 18762 " " + 18763 -o + 18764 " L " + 18765 f + 18766 " 0" 18767 : "L 0 0 L " + p + " " + -o + " L " + f + " 0"; 18768 var m = { 18769 label: "Trapezoid Body", 18770 position: { x: e, y: t }, 18771 vertices: r.fromPath(c), 18772 }; 18773 if (l.chamfer) { 18774 var v = l.chamfer; 18775 (m.vertices = r.chamfer( 18776 m.vertices, 18777 v.radius, 18778 v.quality, 18779 v.qualityMin, 18780 v.qualityMax, 18781 )), 18782 delete l.chamfer; 18783 } 18784 return a.create(s.extend({}, m, l)); 18785 }), 18786 (o.circle = function (e, t, n, i, r) { 18787 i = i || {}; 18788 var a = { label: "Circle Body", circleRadius: n }; 18789 r = r || 25; 18790 var l = Math.ceil(Math.max(10, Math.min(r, n))); 18791 return ( 18792 l % 2 == 1 && (l += 1), 18793 o.polygon(e, t, l, n, s.extend({}, a, i)) 18794 ); 18795 }), 18796 (o.polygon = function (e, t, n, i, l) { 18797 if (((l = l || {}), n < 3)) return o.circle(e, t, i, l); 18798 for ( 18799 var c = (2 * Math.PI) / n, d = "", u = 0.5 * c, p = 0; 18800 p < n; 18801 p += 1 18802 ) { 18803 var f = u + p * c, 18804 m = Math.cos(f) * i, 18805 v = Math.sin(f) * i; 18806 d += "L " + m.toFixed(3) + " " + v.toFixed(3) + " "; 18807 } 18808 var y = { 18809 label: "Polygon Body", 18810 position: { x: e, y: t }, 18811 vertices: r.fromPath(d), 18812 }; 18813 if (l.chamfer) { 18814 var g = l.chamfer; 18815 (y.vertices = r.chamfer( 18816 y.vertices, 18817 g.radius, 18818 g.quality, 18819 g.qualityMin, 18820 g.qualityMax, 18821 )), 18822 delete l.chamfer; 18823 } 18824 return a.create(s.extend({}, y, l)); 18825 }), 18826 (o.fromVertices = function (e, t, n, o, d, u, p) { 18827 i || (i = s._requireGlobal("decomp", "poly-decomp")); 18828 var f, m, v, y, g, x, h, b, w; 18829 for ( 18830 o = o || {}, 18831 m = [], 18832 d = void 0 !== d && d, 18833 u = void 0 !== u ? u : 0.01, 18834 p = void 0 !== p ? p : 10, 18835 i || 18836 s.warn( 18837 "Bodies.fromVertices: poly-decomp.js required. Could not decompose vertices. Fallback to convex hull.", 18838 ), 18839 s.isArray(n[0]) || (n = [n]), 18840 b = 0; 18841 b < n.length; 18842 b += 1 18843 ) 18844 if (((y = n[b]), (v = r.isConvex(y)) || !i)) 18845 (y = v ? r.clockwiseSort(y) : r.hull(y)), 18846 m.push({ position: { x: e, y: t }, vertices: y }); 18847 else { 18848 var S = y.map(function (e) { 18849 return [e.x, e.y]; 18850 }); 18851 i.makeCCW(S), !1 !== u && i.removeCollinearPoints(S, u); 18852 var C = i.quickDecomp(S); 18853 for (g = 0; g < C.length; g++) { 18854 var A = C[g], 18855 P = A.map(function (e) { 18856 return { x: e[0], y: e[1] }; 18857 }); 18858 (p > 0 && r.area(P) < p) || 18859 m.push({ position: r.centre(P), vertices: P }); 18860 } 18861 } 18862 for (g = 0; g < m.length; g++) 18863 m[g] = a.create(s.extend(m[g], o)); 18864 if (d) { 18865 for (g = 0; g < m.length; g++) { 18866 var B = m[g]; 18867 for (x = g + 1; x < m.length; x++) { 18868 var M = m[x]; 18869 if (l.overlaps(B.bounds, M.bounds)) { 18870 var k = B.vertices, 18871 I = M.vertices; 18872 for (h = 0; h < B.vertices.length; h++) 18873 for (w = 0; w < M.vertices.length; w++) { 18874 var _ = c.magnitudeSquared( 18875 c.sub(k[(h + 1) % k.length], I[w]), 18876 ), 18877 T = c.magnitudeSquared( 18878 c.sub(k[h], I[(w + 1) % I.length]), 18879 ); 18880 _ < 5 && 18881 T < 5 && 18882 ((k[h].isInternal = !0), (I[w].isInternal = !0)); 18883 } 18884 } 18885 } 18886 } 18887 } 18888 return m.length > 1 18889 ? ((f = a.create(s.extend({ parts: m.slice(0) }, o))), 18890 a.setPosition(f, { x: e, y: t }), 18891 f) 18892 : m[0]; 18893 }); 18894 })(); 18895 }, 18896 { 18897 "../body/Body": 1, 18898 "../core/Common": 14, 18899 "../geometry/Bounds": 26, 18900 "../geometry/Vector": 28, 18901 "../geometry/Vertices": 29, 18902 }, 18903 ], 18904 24: [ 18905 function (e, t, n) { 18906 var o = {}; 18907 t.exports = o; 18908 var i = e("../body/Composite"), 18909 r = e("../constraint/Constraint"), 18910 s = e("../core/Common"), 18911 a = e("../body/Body"), 18912 l = e("./Bodies"); 18913 !(function () { 18914 (o.stack = function (e, t, n, o, r, s, l) { 18915 for ( 18916 var c, 18917 d = i.create({ label: "Stack" }), 18918 u = e, 18919 p = t, 18920 f = 0, 18921 m = 0; 18922 m < o; 18923 m++ 18924 ) { 18925 for (var v = 0, y = 0; y < n; y++) { 18926 var g = l(u, p, y, m, c, f); 18927 if (g) { 18928 var x = g.bounds.max.y - g.bounds.min.y, 18929 h = g.bounds.max.x - g.bounds.min.x; 18930 x > v && (v = x), 18931 a.translate(g, { x: 0.5 * h, y: 0.5 * x }), 18932 (u = g.bounds.max.x + r), 18933 i.addBody(d, g), 18934 (c = g), 18935 (f += 1); 18936 } else u += r; 18937 } 18938 (p += v + s), (u = e); 18939 } 18940 return d; 18941 }), 18942 (o.chain = function (e, t, n, o, a, l) { 18943 for (var c = e.bodies, d = 1; d < c.length; d++) { 18944 var u = c[d - 1], 18945 p = c[d], 18946 f = u.bounds.max.y - u.bounds.min.y, 18947 m = u.bounds.max.x - u.bounds.min.x, 18948 v = p.bounds.max.y - p.bounds.min.y, 18949 y = p.bounds.max.x - p.bounds.min.x, 18950 g = { 18951 bodyA: u, 18952 pointA: { x: m * t, y: f * n }, 18953 bodyB: p, 18954 pointB: { x: y * o, y: v * a }, 18955 }, 18956 x = s.extend(g, l); 18957 i.addConstraint(e, r.create(x)); 18958 } 18959 return (e.label += " Chain"), e; 18960 }), 18961 (o.mesh = function (e, t, n, o, a) { 18962 var l, 18963 c, 18964 d, 18965 u, 18966 p, 18967 f = e.bodies; 18968 for (l = 0; l < n; l++) { 18969 for (c = 1; c < t; c++) 18970 (d = f[c - 1 + l * t]), 18971 (u = f[c + l * t]), 18972 i.addConstraint( 18973 e, 18974 r.create(s.extend({ bodyA: d, bodyB: u }, a)), 18975 ); 18976 if (l > 0) 18977 for (c = 0; c < t; c++) 18978 (d = f[c + (l - 1) * t]), 18979 (u = f[c + l * t]), 18980 i.addConstraint( 18981 e, 18982 r.create(s.extend({ bodyA: d, bodyB: u }, a)), 18983 ), 18984 o && 18985 c > 0 && 18986 ((p = f[c - 1 + (l - 1) * t]), 18987 i.addConstraint( 18988 e, 18989 r.create(s.extend({ bodyA: p, bodyB: u }, a)), 18990 )), 18991 o && 18992 c < t - 1 && 18993 ((p = f[c + 1 + (l - 1) * t]), 18994 i.addConstraint( 18995 e, 18996 r.create(s.extend({ bodyA: p, bodyB: u }, a)), 18997 )); 18998 } 18999 return (e.label += " Mesh"), e; 19000 }), 19001 (o.pyramid = function (e, t, n, i, r, s, l) { 19002 return o.stack(e, t, n, i, r, s, function (t, o, s, c, d, u) { 19003 var p = Math.min(i, Math.ceil(n / 2)), 19004 f = d ? d.bounds.max.x - d.bounds.min.x : 0; 19005 if (!(c > p)) { 19006 c = p - c; 19007 var m = c, 19008 v = n - 1 - c; 19009 if (!(s < m || s > v)) { 19010 1 === u && 19011 a.translate(d, { 19012 x: (s + (n % 2 == 1 ? 1 : -1)) * f, 19013 y: 0, 19014 }); 19015 return l(e + (d ? s * f : 0) + s * r, o, s, c, d, u); 19016 } 19017 } 19018 }); 19019 }), 19020 (o.newtonsCradle = function (e, t, n, o, s) { 19021 for ( 19022 var a = i.create({ label: "Newtons Cradle" }), c = 0; 19023 c < n; 19024 c++ 19025 ) { 19026 var d = l.circle(e + c * (1.9 * o), t + s, o, { 19027 inertia: 1 / 0, 19028 restitution: 1, 19029 friction: 0, 19030 frictionAir: 1e-4, 19031 slop: 1, 19032 }), 19033 u = r.create({ 19034 pointA: { x: e + c * (1.9 * o), y: t }, 19035 bodyB: d, 19036 }); 19037 i.addBody(a, d), i.addConstraint(a, u); 19038 } 19039 return a; 19040 }), 19041 (o.car = function (e, t, n, o, s) { 19042 var c = a.nextGroup(!0), 19043 d = 0.5 * -n + 20, 19044 u = 0.5 * n - 20, 19045 p = i.create({ label: "Car" }), 19046 f = l.rectangle(e, t, n, o, { 19047 collisionFilter: { group: c }, 19048 chamfer: { radius: 0.5 * o }, 19049 density: 2e-4, 19050 }), 19051 m = l.circle(e + d, t + 0, s, { 19052 collisionFilter: { group: c }, 19053 friction: 0.8, 19054 }), 19055 v = l.circle(e + u, t + 0, s, { 19056 collisionFilter: { group: c }, 19057 friction: 0.8, 19058 }), 19059 y = r.create({ 19060 bodyB: f, 19061 pointB: { x: d, y: 0 }, 19062 bodyA: m, 19063 stiffness: 1, 19064 length: 0, 19065 }), 19066 g = r.create({ 19067 bodyB: f, 19068 pointB: { x: u, y: 0 }, 19069 bodyA: v, 19070 stiffness: 1, 19071 length: 0, 19072 }); 19073 return ( 19074 i.addBody(p, f), 19075 i.addBody(p, m), 19076 i.addBody(p, v), 19077 i.addConstraint(p, y), 19078 i.addConstraint(p, g), 19079 p 19080 ); 19081 }), 19082 (o.softBody = function (e, t, n, i, r, a, c, d, u, p) { 19083 (u = s.extend({ inertia: 1 / 0 }, u)), 19084 (p = s.extend( 19085 { stiffness: 0.2, render: { type: "line", anchors: !1 } }, 19086 p, 19087 )); 19088 var f = o.stack(e, t, n, i, r, a, function (e, t) { 19089 return l.circle(e, t, d, u); 19090 }); 19091 return o.mesh(f, n, i, c, p), (f.label = "Soft Body"), f; 19092 }); 19093 })(); 19094 }, 19095 { 19096 "../body/Body": 1, 19097 "../body/Composite": 2, 19098 "../constraint/Constraint": 12, 19099 "../core/Common": 14, 19100 "./Bodies": 23, 19101 }, 19102 ], 19103 25: [ 19104 function (e, t, n) { 19105 var o = {}; 19106 t.exports = o; 19107 var i = e("../geometry/Vector"), 19108 r = e("../core/Common"); 19109 !(function () { 19110 (o.fromVertices = function (e) { 19111 for (var t = {}, n = 0; n < e.length; n++) { 19112 var o = (n + 1) % e.length, 19113 s = i.normalise({ x: e[o].y - e[n].y, y: e[n].x - e[o].x }), 19114 a = 0 === s.y ? 1 / 0 : s.x / s.y; 19115 (a = a.toFixed(3).toString()), (t[a] = s); 19116 } 19117 return r.values(t); 19118 }), 19119 (o.rotate = function (e, t) { 19120 if (0 !== t) 19121 for ( 19122 var n = Math.cos(t), o = Math.sin(t), i = 0; 19123 i < e.length; 19124 i++ 19125 ) { 19126 var r, 19127 s = e[i]; 19128 (r = s.x * n - s.y * o), 19129 (s.y = s.x * o + s.y * n), 19130 (s.x = r); 19131 } 19132 }); 19133 })(); 19134 }, 19135 { "../core/Common": 14, "../geometry/Vector": 28 }, 19136 ], 19137 26: [ 19138 function (e, t, n) { 19139 var o = {}; 19140 (t.exports = o), 19141 (function () { 19142 (o.create = function (e) { 19143 var t = { min: { x: 0, y: 0 }, max: { x: 0, y: 0 } }; 19144 return e && o.update(t, e), t; 19145 }), 19146 (o.update = function (e, t, n) { 19147 (e.min.x = 1 / 0), 19148 (e.max.x = -1 / 0), 19149 (e.min.y = 1 / 0), 19150 (e.max.y = -1 / 0); 19151 for (var o = 0; o < t.length; o++) { 19152 var i = t[o]; 19153 i.x > e.max.x && (e.max.x = i.x), 19154 i.x < e.min.x && (e.min.x = i.x), 19155 i.y > e.max.y && (e.max.y = i.y), 19156 i.y < e.min.y && (e.min.y = i.y); 19157 } 19158 n && 19159 (n.x > 0 ? (e.max.x += n.x) : (e.min.x += n.x), 19160 n.y > 0 ? (e.max.y += n.y) : (e.min.y += n.y)); 19161 }), 19162 (o.contains = function (e, t) { 19163 return ( 19164 t.x >= e.min.x && 19165 t.x <= e.max.x && 19166 t.y >= e.min.y && 19167 t.y <= e.max.y 19168 ); 19169 }), 19170 (o.overlaps = function (e, t) { 19171 return ( 19172 e.min.x <= t.max.x && 19173 e.max.x >= t.min.x && 19174 e.max.y >= t.min.y && 19175 e.min.y <= t.max.y 19176 ); 19177 }), 19178 (o.translate = function (e, t) { 19179 (e.min.x += t.x), 19180 (e.max.x += t.x), 19181 (e.min.y += t.y), 19182 (e.max.y += t.y); 19183 }), 19184 (o.shift = function (e, t) { 19185 var n = e.max.x - e.min.x, 19186 o = e.max.y - e.min.y; 19187 (e.min.x = t.x), 19188 (e.max.x = t.x + n),
19189 (e.min.y = t.y), 19190 (e.max.y = t.y + o); 19191 }); 19192 })(); 19193 }, 19194 {}, 19195 ], 19196 27: [ 19197 function (e, t, n) { 19198 var o = {}; 19199 t.exports = o; 19200 var i = (e("../geometry/Bounds"), e("../core/Common")); 19201 !(function () { 19202 (o.pathToVertices = function (e, t) { 19203 "undefined" == typeof window || 19204 "SVGPathSeg" in window || 19205 i.warn( 19206 "Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.", 19207 ); 19208 var n, 19209 r, 19210 s, 19211 a, 19212 l, 19213 c, 19214 d, 19215 u, 19216 p, 19217 f, 19218 m, 19219 v, 19220 y = [], 19221 g = 0, 19222 x = 0, 19223 h = 0; 19224 t = t || 15; 19225 var b = function (e, t, n) { 19226 var o = n % 2 == 1 && n > 1; 19227 if (!p || e != p.x || t != p.y) { 19228 p && o ? ((m = p.x), (v = p.y)) : ((m = 0), (v = 0)); 19229 var i = { x: m + e, y: v + t }; 19230 (!o && p) || (p = i), y.push(i), (x = m + e), (h = v + t); 19231 } 19232 }, 19233 w = function (e) { 19234 var t = e.pathSegTypeAsLetter.toUpperCase(); 19235 if ("Z" !== t) { 19236 switch (t) { 19237 case "M": 19238 case "L": 19239 case "T": 19240 case "C": 19241 case "S": 19242 case "Q": 19243 (x = e.x), (h = e.y); 19244 break; 19245 case "H": 19246 x = e.x; 19247 break; 19248 case "V": 19249 h = e.y; 19250 } 19251 b(x, h, e.pathSegType); 19252 } 19253 }; 19254 for ( 19255 o._svgPathToAbsolute(e), s = e.getTotalLength(), c = [], n = 0; 19256 n < e.pathSegList.numberOfItems; 19257 n += 1 19258 ) 19259 c.push(e.pathSegList.getItem(n)); 19260 for (d = c.concat(); g < s; ) { 19261 if (((f = e.getPathSegAtLength(g)), (l = c[f]) != u)) { 19262 for (; d.length && d[0] != l; ) w(d.shift()); 19263 u = l; 19264 } 19265 switch (l.pathSegTypeAsLetter.toUpperCase()) { 19266 case "C": 19267 case "T": 19268 case "S": 19269 case "Q": 19270 case "A": 19271 (a = e.getPointAtLength(g)), b(a.x, a.y, 0); 19272 } 19273 g += t; 19274 } 19275 for (n = 0, r = d.length; n < r; ++n) w(d[n]); 19276 return y; 19277 }), 19278 (o._svgPathToAbsolute = function (e) { 19279 for ( 19280 var t, 19281 n, 19282 o, 19283 i, 19284 r, 19285 s, 19286 a = e.pathSegList, 19287 l = 0, 19288 c = 0, 19289 d = a.numberOfItems, 19290 u = 0; 19291 u < d; 19292 ++u 19293 ) { 19294 var p = a.getItem(u), 19295 f = p.pathSegTypeAsLetter; 19296 if (/[MLHVCSQTA]/.test(f)) 19297 "x" in p && (l = p.x), "y" in p && (c = p.y); 19298 else 19299 switch ( 19300 ("x1" in p && (o = l + p.x1), 19301 "x2" in p && (r = l + p.x2), 19302 "y1" in p && (i = c + p.y1), 19303 "y2" in p && (s = c + p.y2), 19304 "x" in p && (l += p.x), 19305 "y" in p && (c += p.y), 19306 f) 19307 ) { 19308 case "m": 19309 a.replaceItem(e.createSVGPathSegMovetoAbs(l, c), u); 19310 break; 19311 case "l": 19312 a.replaceItem(e.createSVGPathSegLinetoAbs(l, c), u); 19313 break; 19314 case "h": 19315 a.replaceItem( 19316 e.createSVGPathSegLinetoHorizontalAbs(l), 19317 u, 19318 ); 19319 break; 19320 case "v": 19321 a.replaceItem( 19322 e.createSVGPathSegLinetoVerticalAbs(c), 19323 u, 19324 ); 19325 break; 19326 case "c": 19327 a.replaceItem( 19328 e.createSVGPathSegCurvetoCubicAbs(l, c, o, i, r, s), 19329 u, 19330 ); 19331 break; 19332 case "s": 19333 a.replaceItem( 19334 e.createSVGPathSegCurvetoCubicSmoothAbs(l, c, r, s), 19335 u, 19336 ); 19337 break; 19338 case "q": 19339 a.replaceItem( 19340 e.createSVGPathSegCurvetoQuadraticAbs(l, c, o, i), 19341 u, 19342 ); 19343 break; 19344 case "t": 19345 a.replaceItem( 19346 e.createSVGPathSegCurvetoQuadraticSmoothAbs(l, c), 19347 u, 19348 ); 19349 break; 19350 case "a": 19351 a.replaceItem( 19352 e.createSVGPathSegArcAbs( 19353 l, 19354 c, 19355 p.r1, 19356 p.r2, 19357 p.angle, 19358 p.largeArcFlag, 19359 p.sweepFlag, 19360 ), 19361 u, 19362 ); 19363 break; 19364 case "z": 19365 case "Z": 19366 (l = t), (c = n); 19367 } 19368 ("M" != f && "m" != f) || ((t = l), (n = c)); 19369 } 19370 }); 19371 })(); 19372 }, 19373 { "../core/Common": 14, "../geometry/Bounds": 26 }, 19374 ], 19375 28: [ 19376 function (e, t, n) { 19377 var o = {}; 19378 (t.exports = o), 19379 (function () { 19380 (o.create = function (e, t) { 19381 return { x: e || 0, y: t || 0 }; 19382 }), 19383 (o.clone = function (e) { 19384 return { x: e.x, y: e.y }; 19385 }), 19386 (o.magnitude = function (e) { 19387 return Math.sqrt(e.x * e.x + e.y * e.y); 19388 }), 19389 (o.magnitudeSquared = function (e) { 19390 return e.x * e.x + e.y * e.y; 19391 }), 19392 (o.rotate = function (e, t, n) { 19393 var o = Math.cos(t), 19394 i = Math.sin(t); 19395 n || (n = {}); 19396 var r = e.x * o - e.y * i; 19397 return (n.y = e.x * i + e.y * o), (n.x = r), n; 19398 }), 19399 (o.rotateAbout = function (e, t, n, o) { 19400 var i = Math.cos(t), 19401 r = Math.sin(t); 19402 o || (o = {}); 19403 var s = n.x + ((e.x - n.x) * i - (e.y - n.y) * r); 19404 return ( 19405 (o.y = n.y + ((e.x - n.x) * r + (e.y - n.y) * i)), 19406 (o.x = s), 19407 o 19408 ); 19409 }), 19410 (o.normalise = function (e) { 19411 var t = o.magnitude(e); 19412 return 0 === t ? { x: 0, y: 0 } : { x: e.x / t, y: e.y / t }; 19413 }), 19414 (o.dot = function (e, t) { 19415 return e.x * t.x + e.y * t.y; 19416 }), 19417 (o.cross = function (e, t) { 19418 return e.x * t.y - e.y * t.x; 19419 }), 19420 (o.cross3 = function (e, t, n) {
19421 return (t.x - e.x) * (n.y - e.y) - (t.y - e.y) * (n.x - e.x); 19422 }), 19423 (o.add = function (e, t, n) { 19424 return n || (n = {}), (n.x = e.x + t.x), (n.y = e.y + t.y), n; 19425 }), 19426 (o.sub = function (e, t, n) { 19427 return n || (n = {}), (n.x = e.x - t.x), (n.y = e.y - t.y), n; 19428 }), 19429 (o.mult = function (e, t) { 19430 return { x: e.x * t, y: e.y * t }; 19431 }), 19432 (o.div = function (e, t) { 19433 return { x: e.x / t, y: e.y / t }; 19434 }), 19435 (o.perp = function (e, t) { 19436 return (t = !0 === t ? -1 : 1), { x: t * -e.y, y: t * e.x }; 19437 }), 19438 (o.neg = function (e) { 19439 return { x: -e.x, y: -e.y }; 19440 }), 19441 (o.angle = function (e, t) { 19442 return Math.atan2(t.y - e.y, t.x - e.x); 19443 }), 19444 (o._temp = [ 19445 o.create(), 19446 o.create(), 19447 o.create(), 19448 o.create(), 19449 o.create(), 19450 o.create(), 19451 ]); 19452 })(); 19453 }, 19454 {}, 19455 ], 19456 29: [ 19457 function (e, t, n) { 19458 var o = {}; 19459 t.exports = o; 19460 var i = e("../geometry/Vector"), 19461 r = e("../core/Common"); 19462 !(function () { 19463 (o.create = function (e, t) { 19464 for (var n = [], o = 0; o < e.length; o++) { 19465 var i = e[o], 19466 r = { x: i.x, y: i.y, index: o, body: t, isInternal: !1 }; 19467 n.push(r); 19468 } 19469 return n; 19470 }), 19471 (o.fromPath = function (e, t) { 19472 var n = /L?\s*([\-\d\.e]+)[\s,]*([\-\d\.e]+)*/gi, 19473 i = []; 19474 return ( 19475 e.replace(n, function (e, t, n) { 19476 i.push({ x: parseFloat(t), y: parseFloat(n) }); 19477 }), 19478 o.create(i, t) 19479 ); 19480 }), 19481 (o.centre = function (e) { 19482 for ( 19483 var t, n, r, s = o.area(e, !0), a = { x: 0, y: 0 }, l = 0; 19484 l < e.length; 19485 l++ 19486 ) 19487 (r = (l + 1) % e.length), 19488 (t = i.cross(e[l], e[r])), 19489 (n = i.mult(i.add(e[l], e[r]), t)), 19490 (a = i.add(a, n)); 19491 return i.div(a, 6 * s); 19492 }), 19493 (o.mean = function (e) { 19494 for (var t = { x: 0, y: 0 }, n = 0; n < e.length; n++) 19495 (t.x += e[n].x), (t.y += e[n].y); 19496 return i.div(t, e.length); 19497 }), 19498 (o.area = function (e, t) { 19499 for (var n = 0, o = e.length - 1, i = 0; i < e.length; i++) 19500 (n += (e[o].x - e[i].x) * (e[o].y + e[i].y)), (o = i); 19501 return t ? n / 2 : Math.abs(n) / 2; 19502 }), 19503 (o.inertia = function (e, t) { 19504 for (var n, o, r = 0, s = 0, a = e, l = 0; l < a.length; l++) 19505 (o = (l + 1) % a.length), 19506 (n = Math.abs(i.cross(a[o], a[l]))), 19507 (r += 19508 n * 19509 (i.dot(a[o], a[o]) + 19510 i.dot(a[o], a[l]) + 19511 i.dot(a[l], a[l]))), 19512 (s += n); 19513 return (t / 6) * (r / s); 19514 }), 19515 (o.translate = function (e, t, n) { 19516 var o; 19517 if (n) 19518 for (o = 0; o < e.length; o++) 19519 (e[o].x += t.x * n), (e[o].y += t.y * n); 19520 else 19521 for (o = 0; o < e.length; o++) 19522 (e[o].x += t.x), (e[o].y += t.y); 19523 return e; 19524 }), 19525 (o.rotate = function (e, t, n) { 19526 if (0 !== t) { 19527 for ( 19528 var o = Math.cos(t), i = Math.sin(t), r = 0; 19529 r < e.length; 19530 r++ 19531 ) { 19532 var s = e[r], 19533 a = s.x - n.x, 19534 l = s.y - n.y; 19535 (s.x = n.x + (a * o - l * i)), 19536 (s.y = n.y + (a * i + l * o)); 19537 } 19538 return e; 19539 } 19540 }), 19541 (o.contains = function (e, t) { 19542 for (var n = 0; n < e.length; n++) { 19543 var o = e[n], 19544 i = e[(n + 1) % e.length]; 19545 if ((t.x - o.x) * (i.y - o.y) + (t.y - o.y) * (o.x - i.x) > 0) 19546 return !1; 19547 } 19548 return !0; 19549 }), 19550 (o.scale = function (e, t, n, r) { 19551 if (1 === t && 1 === n) return e; 19552 r = r || o.centre(e); 19553 for (var s, a, l = 0; l < e.length; l++) 19554 (s = e[l]), 19555 (a = i.sub(s, r)), 19556 (e[l].x = r.x + a.x * t), 19557 (e[l].y = r.y + a.y * n); 19558 return e; 19559 }), 19560 (o.chamfer = function (e, t, n, o, s) { 19561 (t = "number" == typeof t ? [t] : t || [8]), 19562 (n = void 0 !== n ? n : -1), 19563 (o = o || 2), 19564 (s = s || 14); 19565 for (var a = [], l = 0; l < e.length; l++) { 19566 var c = e[l - 1 >= 0 ? l - 1 : e.length - 1], 19567 d = e[l], 19568 u = e[(l + 1) % e.length], 19569 p = t[l < t.length ? l : t.length - 1]; 19570 if (0 !== p) { 19571 var f = i.normalise({ x: d.y - c.y, y: c.x - d.x }), 19572 m = i.normalise({ x: u.y - d.y, y: d.x - u.x }), 19573 v = Math.sqrt(2 * Math.pow(p, 2)), 19574 y = i.mult(r.clone(f), p), 19575 g = i.normalise(i.mult(i.add(f, m), 0.5)), 19576 x = i.sub(d, i.mult(g, v)), 19577 h = n; 19578 -1 === n && (h = 1.75 * Math.pow(p, 0.32)), 19579 (h = r.clamp(h, o, s)), 19580 h % 2 == 1 && (h += 1); 19581 for ( 19582 var b = Math.acos(i.dot(f, m)), w = b / h, S = 0; 19583 S < h; 19584 S++ 19585 ) 19586 a.push(i.add(i.rotate(y, w * S), x)); 19587 } else a.push(d); 19588 } 19589 return a; 19590 }), 19591 (o.clockwiseSort = function (e) { 19592 var t = o.mean(e); 19593 return ( 19594 e.sort(function (e, n) { 19595 return i.angle(t, e) - i.angle(t, n); 19596 }), 19597 e 19598 ); 19599 }), 19600 (o.isConvex = function (e) { 19601 var t, 19602 n, 19603 o, 19604 i, 19605 r = 0, 19606 s = e.length; 19607 if (s < 3) return null; 19608 for (t = 0; t < s; t++) 19609 if ( 19610 ((n = (t + 1) % s), 19611 (o = (t + 2) % s), 19612 (i = (e[n].x - e[t].x) * (e[o].y - e[n].y)), 19613 (i -= (e[n].y - e[t].y) * (e[o].x - e[n].x)), 19614 i < 0 ? (r |= 1) : i > 0 && (r |= 2), 19615 3 === r) 19616 ) 19617 return !1; 19618 return 0 !== r || null; 19619 }), 19620 (o.hull = function (e) { 19621 var t, 19622 n, 19623 o = [], 19624 r = []; 19625 for ( 19626 e = e.slice(0), 19627 e.sort(function (e, t) { 19628 var n = e.x - t.x;
19629 return 0 !== n ? n : e.y - t.y; 19630 }), 19631 n = 0; 19632 n < e.length; 19633 n += 1 19634 ) { 19635 for ( 19636 t = e[n]; 19637 r.length >= 2 && 19638 i.cross3(r[r.length - 2], r[r.length - 1], t) <= 0; 19639 19640 ) 19641 r.pop(); 19642 r.push(t); 19643 } 19644 for (n = e.length - 1; n >= 0; n -= 1) { 19645 for ( 19646 t = e[n]; 19647 o.length >= 2 && 19648 i.cross3(o[o.length - 2], o[o.length - 1], t) <= 0; 19649 19650 ) 19651 o.pop(); 19652 o.push(t); 19653 } 19654 return o.pop(), r.pop(), o.concat(r); 19655 }); 19656 })(); 19657 }, 19658 { "../core/Common": 14, "../geometry/Vector": 28 }, 19659 ], 19660 30: [ 19661 function (e, t, n) { 19662 var o = (t.exports = e("../core/Matter")); 19663 (o.Body = e("../body/Body")), 19664 (o.Composite = e("../body/Composite")), 19665 (o.World = e("../body/World")), 19666 (o.Contact = e("../collision/Contact")), 19667 (o.Detector = e("../collision/Detector")), 19668 (o.Grid = e("../collision/Grid")), 19669 (o.Pairs = e("../collision/Pairs")), 19670 (o.Pair = e("../collision/Pair")), 19671 (o.Query = e("../collision/Query")), 19672 (o.Resolver = e("../collision/Resolver")), 19673 (o.SAT = e("../collision/SAT")), 19674 (o.Constraint = e("../constraint/Constraint")), 19675 (o.MouseConstraint = e("../constraint/MouseConstraint")), 19676 (o.Common = e("../core/Common")), 19677 (o.Engine = e("../core/Engine")), 19678 (o.Events = e("../core/Events")), 19679 (o.Mouse = e("../core/Mouse")), 19680 (o.Runner = e("../core/Runner")), 19681 (o.Sleeping = e("../core/Sleeping")), 19682 (o.Plugin = e("../core/Plugin")), 19683 (o.Bodies = e("../factory/Bodies")), 19684 (o.Composites = e("../factory/Composites")), 19685 (o.Axes = e("../geometry/Axes")), 19686 (o.Bounds = e("../geometry/Bounds")), 19687 (o.Svg = e("../geometry/Svg")), 19688 (o.Vector = e("../geometry/Vector")), 19689 (o.Vertices = e("../geometry/Vertices")), 19690 (o.Render = e("../render/Render")), 19691 (o.RenderPixi = e("../render/RenderPixi")), 19692 (o.World.add = o.Composite.add), 19693 (o.World.remove = o.Composite.remove), 19694 (o.World.addComposite = o.Composite.addComposite), 19695 (o.World.addBody = o.Composite.addBody), 19696 (o.World.addConstraint = o.Composite.addConstraint), 19697 (o.World.clear = o.Composite.clear), 19698 (o.Engine.run = o.Runner.run); 19699 }, 19700 { 19701 "../body/Body": 1, 19702 "../body/Composite": 2, 19703 "../body/World": 3, 19704 "../collision/Contact": 4, 19705 "../collision/Detector": 5, 19706 "../collision/Grid": 6, 19707 "../collision/Pair": 7, 19708 "../collision/Pairs": 8, 19709 "../collision/Query": 9, 19710 "../collision/Resolver": 10, 19711 "../collision/SAT": 11, 19712 "../constraint/Constraint": 12, 19713 "../constraint/MouseConstraint": 13, 19714 "../core/Common": 14, 19715 "../core/Engine": 15, 19716 "../core/Events": 16, 19717 "../core/Matter": 17, 19718 "../core/Metrics": 18, 19719 "../core/Mouse": 19, 19720 "../core/Plugin": 20, 19721 "../core/Runner": 21, 19722 "../core/Sleeping": 22, 19723 "../factory/Bodies": 23, 19724 "../factory/Composites": 24, 19725 "../geometry/Axes": 25, 19726 "../geometry/Bounds": 26, 19727 "../geometry/Svg": 27, 19728 "../geometry/Vector": 28, 19729 "../geometry/Vertices": 29, 19730 "../render/Render": 31, 19731 "../render/RenderPixi": 32, 19732 }, 19733 ], 19734 31: [ 19735 function (e, t, n) { 19736 var o = {}; 19737 t.exports = o; 19738 var i = e("../core/Common"), 19739 r = e("../body/Composite"), 19740 s = e("../geometry/Bounds"), 19741 a = e("../core/Events"), 19742 l = e("../collision/Grid"), 19743 c = e("../geometry/Vector"), 19744 d = e("../core/Mouse"); 19745 !(function () { 19746 var e, t; 19747 "undefined" != typeof window && 19748 ((e = 19749 window.requestAnimationFrame || 19750 window.webkitRequestAnimationFrame || 19751 window.mozRequestAnimationFrame || 19752 window.msRequestAnimationFrame || 19753 function (e) { 19754 window.setTimeout(function () { 19755 e(i.now()); 19756 }, 1e3 / 60); 19757 }), 19758 (t = 19759 window.cancelAnimationFrame || 19760 window.mozCancelAnimationFrame || 19761 window.webkitCancelAnimationFrame || 19762 window.msCancelAnimationFrame)), 19763 (o.create = function (e) { 19764 var t = { 19765 controller: o, 19766 engine: null, 19767 element: null, 19768 canvas: null, 19769 mouse: null, 19770 frameRequestId: null, 19771 options: { 19772 width: 800, 19773 height: 600, 19774 pixelRatio: 1, 19775 background: "#18181d",
19776 wireframeBackground: "#0f0f13", 19777 hasBounds: !!e.bounds, 19778 enabled: !0, 19779 wireframes: !0, 19780 showSleeping: !0, 19781 showDebug: !1, 19782 showBroadphase: !1, 19783 showBounds: !1, 19784 showVelocity: !1, 19785 showCollisions: !1, 19786 showSeparations: !1, 19787 showAxes: !1, 19788 showPositions: !1, 19789 showAngleIndicator: !1, 19790 showIds: !1, 19791 showShadows: !1, 19792 showVertexNumbers: !1, 19793 showConvexHulls: !1, 19794 showInternalEdges: !1, 19795 showMousePosition: !1, 19796 }, 19797 }, 19798 r = i.extend(t, e); 19799 return ( 19800 r.canvas && 19801 ((r.canvas.width = r.options.width || r.canvas.width), 19802 (r.canvas.height = r.options.height || r.canvas.height)), 19803 (r.mouse = e.mouse), 19804 (r.engine = e.engine), 19805 (r.canvas = r.canvas || n(r.options.width, r.options.height)), 19806 (r.context = r.canvas.getContext("2d")), 19807 (r.textures = {}), 19808 (r.bounds = r.bounds || { 19809 min: { x: 0, y: 0 }, 19810 max: { x: r.canvas.width, y: r.canvas.height }, 19811 }), 19812 1 !== r.options.pixelRatio && 19813 o.setPixelRatio(r, r.options.pixelRatio), 19814 i.isElement(r.element) 19815 ? r.element.appendChild(r.canvas) 19816 : r.canvas.parentNode || 19817 i.log( 19818 "Render.create: options.element was undefined, render.canvas was created but not appended", 19819 "warn", 19820 ), 19821 r 19822 ); 19823 }), 19824 (o.run = function (t) { 19825 !(function n(i) { 19826 (t.frameRequestId = e(n)), o.world(t); 19827 })(); 19828 }), 19829 (o.stop = function (e) { 19830 t(e.frameRequestId); 19831 }), 19832 (o.setPixelRatio = function (e, t) { 19833 var n = e.options, 19834 o = e.canvas; 19835 "auto" === t && (t = u(o)), 19836 (n.pixelRatio = t), 19837 o.setAttribute("data-pixel-ratio", t), 19838 (o.width = n.width * t), 19839 (o.height = n.height * t), 19840 (o.style.width = n.width + "px"), 19841 (o.style.height = n.height + "px"), 19842 e.context.scale(t, t); 19843 }), 19844 (o.lookAt = function (e, t, n, o) { 19845 (o = void 0 === o || o), 19846 (t = i.isArray(t) ? t : [t]), 19847 (n = n || { x: 0, y: 0 }); 19848 for ( 19849 var r = { 19850 min: { x: 1 / 0, y: 1 / 0 }, 19851 max: { x: -1 / 0, y: -1 / 0 }, 19852 }, 19853 s = 0; 19854 s < t.length; 19855 s += 1 19856 ) { 19857 var a = t[s], 19858 l = a.bounds ? a.bounds.min : a.min || a.position || a, 19859 c = a.bounds ? a.bounds.max : a.max || a.position || a; 19860 l && 19861 c && 19862 (l.x < r.min.x && (r.min.x = l.x), 19863 c.x > r.max.x && (r.max.x = c.x), 19864 l.y < r.min.y && (r.min.y = l.y), 19865 c.y > r.max.y && (r.max.y = c.y)); 19866 } 19867 var u = r.max.x - r.min.x + 2 * n.x, 19868 p = r.max.y - r.min.y + 2 * n.y, 19869 f = e.canvas.height, 19870 m = e.canvas.width, 19871 v = m / f, 19872 y = u / p, 19873 g = 1, 19874 x = 1; 19875 y > v ? (x = y / v) : (g = v / y), 19876 (e.options.hasBounds = !0), 19877 (e.bounds.min.x = r.min.x), 19878 (e.bounds.max.x = r.min.x + u * g), 19879 (e.bounds.min.y = r.min.y), 19880 (e.bounds.max.y = r.min.y + p * x), 19881 o && 19882 ((e.bounds.min.x += 0.5 * u - u * g * 0.5), 19883 (e.bounds.max.x += 0.5 * u - u * g * 0.5), 19884 (e.bounds.min.y += 0.5 * p - p * x * 0.5), 19885 (e.bounds.max.y += 0.5 * p - p * x * 0.5)), 19886 (e.bounds.min.x -= n.x), 19887 (e.bounds.max.x -= n.x), 19888 (e.bounds.min.y -= n.y), 19889 (e.bounds.max.y -= n.y), 19890 e.mouse && 19891 (d.setScale(e.mouse, {
19892 x: (e.bounds.max.x - e.bounds.min.x) / e.canvas.width, 19893 y: (e.bounds.max.y - e.bounds.min.y) / e.canvas.height, 19894 }), 19895 d.setOffset(e.mouse, e.bounds.min)); 19896 }), 19897 (o.startViewTransform = function (e) { 19898 var t = e.bounds.max.x - e.bounds.min.x, 19899 n = e.bounds.max.y - e.bounds.min.y, 19900 o = t / e.options.width, 19901 i = n / e.options.height; 19902 e.context.scale(1 / o, 1 / i), 19903 e.context.translate(-e.bounds.min.x, -e.bounds.min.y); 19904 }), 19905 (o.endViewTransform = function (e) { 19906 e.context.setTransform( 19907 e.options.pixelRatio, 19908 0, 19909 0, 19910 e.options.pixelRatio, 19911 0, 19912 0, 19913 ); 19914 }), 19915 (o.world = function (e) { 19916 var t, 19917 n = e.engine, 19918 i = n.world, 19919 u = e.canvas, 19920 p = e.context, 19921 m = e.options, 19922 v = r.allBodies(i), 19923 y = r.allConstraints(i), 19924 g = m.wireframes ? m.wireframeBackground : m.background, 19925 x = [], 19926 h = [], 19927 b = { timestamp: n.timing.timestamp }; 19928 if ( 19929 (a.trigger(e, "beforeRender", b), 19930 e.currentBackground !== g && f(e, g), 19931 (p.globalCompositeOperation = "source-in"), 19932 (p.fillStyle = "transparent"), 19933 p.fillRect(0, 0, u.width, u.height), 19934 (p.globalCompositeOperation = "source-over"), 19935 m.hasBounds) 19936 ) { 19937 for (t = 0; t < v.length; t++) { 19938 var w = v[t]; 19939 s.overlaps(w.bounds, e.bounds) && x.push(w); 19940 } 19941 for (t = 0; t < y.length; t++) { 19942 var S = y[t], 19943 C = S.bodyA, 19944 A = S.bodyB, 19945 P = S.pointA, 19946 B = S.pointB; 19947 C && (P = c.add(C.position, S.pointA)), 19948 A && (B = c.add(A.position, S.pointB)), 19949 P && 19950 B && 19951 (s.contains(e.bounds, P) || s.contains(e.bounds, B)) && 19952 h.push(S); 19953 } 19954 o.startViewTransform(e), 19955 e.mouse && 19956 (d.setScale(e.mouse, { 19957 x: (e.bounds.max.x - e.bounds.min.x) / e.canvas.width, 19958 y: (e.bounds.max.y - e.bounds.min.y) / e.canvas.height, 19959 }), 19960 d.setOffset(e.mouse, e.bounds.min)); 19961 } else (h = y), (x = v); 19962 !m.wireframes || (n.enableSleeping && m.showSleeping) 19963 ? o.bodies(e, x, p) 19964 : (m.showConvexHulls && o.bodyConvexHulls(e, x, p), 19965 o.bodyWireframes(e, x, p)), 19966 m.showBounds && o.bodyBounds(e, x, p), 19967 (m.showAxes || m.showAngleIndicator) && o.bodyAxes(e, x, p), 19968 m.showPositions && o.bodyPositions(e, x, p), 19969 m.showVelocity && o.bodyVelocity(e, x, p), 19970 m.showIds && o.bodyIds(e, x, p), 19971 m.showSeparations && o.separations(e, n.pairs.list, p), 19972 m.showCollisions && o.collisions(e, n.pairs.list, p), 19973 m.showVertexNumbers && o.vertexNumbers(e, x, p), 19974 m.showMousePosition && o.mousePosition(e, e.mouse, p), 19975 o.constraints(h, p), 19976 m.showBroadphase && 19977 n.broadphase.controller === l && 19978 o.grid(e, n.broadphase, p), 19979 m.showDebug && o.debug(e, p), 19980 m.hasBounds && o.endViewTransform(e),
19981 a.trigger(e, "afterRender", b); 19982 }), 19983 (o.debug = function (e, t) { 19984 var n = t, 19985 o = e.engine, 19986 i = o.world, 19987 s = o.metrics, 19988 a = e.options; 19989 r.allBodies(i); 19990 if (o.timing.timestamp - (e.debugTimestamp || 0) >= 500) { 19991 var l = ""; 19992 s.timing && 19993 (l += "fps: " + Math.round(s.timing.fps) + " "), 19994 (e.debugString = l), 19995 (e.debugTimestamp = o.timing.timestamp); 19996 } 19997 if (e.debugString) { 19998 (n.font = "12px Arial"), 19999 a.wireframes 20000 ? (n.fillStyle = "rgba(255,255,255,0.5)") 20001 : (n.fillStyle = "rgba(0,0,0,0.5)"); 20002 for ( 20003 var c = e.debugString.split("\n"), d = 0; 20004 d < c.length; 20005 d++ 20006 ) 20007 n.fillText(c[d], 50, 50 + 18 * d); 20008 } 20009 }), 20010 (o.constraints = function (e, t) { 20011 for (var n = t, o = 0; o < e.length; o++) { 20012 var r = e[o]; 20013 if (r.render.visible && r.pointA && r.pointB) { 20014 var s, 20015 a, 20016 l = r.bodyA, 20017 d = r.bodyB; 20018 if ( 20019 ((s = l ? c.add(l.position, r.pointA) : r.pointA), 20020 "pin" === r.render.type) 20021 ) 20022 n.beginPath(), 20023 n.arc(s.x, s.y, 3, 0, 2 * Math.PI), 20024 n.closePath(); 20025 else { 20026 if ( 20027 ((a = d ? c.add(d.position, r.pointB) : r.pointB), 20028 n.beginPath(), 20029 n.moveTo(s.x, s.y), 20030 "spring" === r.render.type) 20031 ) 20032 for ( 20033 var u, 20034 p = c.sub(a, s), 20035 f = c.perp(c.normalise(p)), 20036 m = Math.ceil(i.clamp(r.length / 5, 12, 20)), 20037 v = 1; 20038 v < m; 20039 v += 1 20040 ) 20041 (u = v % 2 == 0 ? 1 : -1), 20042 n.lineTo( 20043 s.x + p.x * (v / m) + f.x * u * 4, 20044 s.y + p.y * (v / m) + f.y * u * 4, 20045 ); 20046 n.lineTo(a.x, a.y); 20047 } 20048 r.render.lineWidth && 20049 ((n.lineWidth = r.render.lineWidth), 20050 (n.strokeStyle = r.render.strokeStyle), 20051 n.stroke()), 20052 r.render.anchors && 20053 ((n.fillStyle = r.render.strokeStyle), 20054 n.beginPath(), 20055 n.arc(s.x, s.y, 3, 0, 2 * Math.PI), 20056 n.arc(a.x, a.y, 3, 0, 2 * Math.PI), 20057 n.closePath(), 20058 n.fill()); 20059 } 20060 } 20061 }), 20062 (o.bodyShadows = function (e, t, n) { 20063 for (var o = n, i = (e.engine, 0); i < t.length; i++) { 20064 var r = t[i]; 20065 if (r.render.visible) { 20066 if (r.circleRadius) 20067 o.beginPath(), 20068 o.arc( 20069 r.position.x, 20070 r.position.y, 20071 r.circleRadius, 20072 0, 20073 2 * Math.PI, 20074 ), 20075 o.closePath(); 20076 else { 20077 o.beginPath(), o.moveTo(r.vertices[0].x, r.vertices[0].y); 20078 for (var s = 1; s < r.vertices.length; s++) 20079 o.lineTo(r.vertices[s].x, r.vertices[s].y); 20080 o.closePath(); 20081 } 20082 var a = r.position.x - 0.5 * e.options.width, 20083 l = r.position.y - 0.2 * e.options.height, 20084 c = Math.abs(a) + Math.abs(l); 20085 (o.shadowColor = "rgba(0,0,0,0.15)"), 20086 (o.shadowOffsetX = 0.05 * a), 20087 (o.shadowOffsetY = 0.05 * l), 20088 (o.shadowBlur = 1 + 12 * Math.min(1, c / 1e3)), 20089 o.fill(), 20090 (o.shadowColor = null),
20091 (o.shadowOffsetX = null), 20092 (o.shadowOffsetY = null), 20093 (o.shadowBlur = null); 20094 } 20095 } 20096 }), 20097 (o.bodies = function (e, t, n) { 20098 var o, 20099 i, 20100 r, 20101 s, 20102 a = n, 20103 l = (e.engine, e.options), 20104 c = l.showInternalEdges || !l.wireframes; 20105 for (r = 0; r < t.length; r++) 20106 if (((o = t[r]), o.render.visible)) 20107 for ( 20108 s = o.parts.length > 1 ? 1 : 0; 20109 s < o.parts.length; 20110 s++ 20111 ) 20112 if (((i = o.parts[s]), i.render.visible)) { 20113 if ( 20114 (l.showSleeping && o.isSleeping 20115 ? (a.globalAlpha = 0.5 * i.render.opacity) 20116 : 1 !== i.render.opacity && 20117 (a.globalAlpha = i.render.opacity), 20118 i.render.sprite && 20119 i.render.sprite.texture && 20120 !l.wireframes) 20121 ) { 20122 var d = i.render.sprite, 20123 u = p(e, d.texture); 20124 a.translate(i.position.x, i.position.y), 20125 a.rotate(i.angle), 20126 a.drawImage( 20127 u, 20128 u.width * -d.xOffset * d.xScale, 20129 u.height * -d.yOffset * d.yScale, 20130 u.width * d.xScale, 20131 u.height * d.yScale, 20132 ), 20133 a.rotate(-i.angle), 20134 a.translate(-i.position.x, -i.position.y); 20135 } else { 20136 if (i.circleRadius) 20137 a.beginPath(), 20138 a.arc( 20139 i.position.x, 20140 i.position.y, 20141 i.circleRadius, 20142 0, 20143 2 * Math.PI, 20144 ); 20145 else { 20146 a.beginPath(), 20147 a.moveTo(i.vertices[0].x, i.vertices[0].y); 20148 for (var f = 1; f < i.vertices.length; f++) 20149 !i.vertices[f - 1].isInternal || c 20150 ? a.lineTo(i.vertices[f].x, i.vertices[f].y) 20151 : a.moveTo(i.vertices[f].x, i.vertices[f].y), 20152 i.vertices[f].isInternal && 20153 !c && 20154 a.moveTo( 20155 i.vertices[(f + 1) % i.vertices.length].x, 20156 i.vertices[(f + 1) % i.vertices.length].y, 20157 ); 20158 a.lineTo(i.vertices[0].x, i.vertices[0].y), 20159 a.closePath(); 20160 } 20161 l.wireframes 20162 ? ((a.lineWidth = 1), 20163 (a.strokeStyle = "#bbb"), 20164 a.stroke()) 20165 : ((a.fillStyle = i.render.fillStyle), 20166 i.render.lineWidth && 20167 ((a.lineWidth = i.render.lineWidth), 20168 (a.strokeStyle = i.render.strokeStyle), 20169 a.stroke()), 20170 a.fill()); 20171 } 20172 a.globalAlpha = 1; 20173 } 20174 }), 20175 (o.bodyWireframes = function (e, t, n) { 20176 var o, 20177 i, 20178 r, 20179 s, 20180 a, 20181 l = n, 20182 c = e.options.showInternalEdges; 20183 for (l.beginPath(), r = 0; r < t.length; r++) 20184 if (((o = t[r]), o.render.visible)) 20185 for ( 20186 a = o.parts.length > 1 ? 1 : 0; 20187 a < o.parts.length; 20188 a++ 20189 ) { 20190 for ( 20191 i = o.parts[a], 20192 l.moveTo(i.vertices[0].x, i.vertices[0].y), 20193 s = 1; 20194 s < i.vertices.length; 20195 s++ 20196 ) 20197 !i.vertices[s - 1].isInternal || c 20198 ? l.lineTo(i.vertices[s].x, i.vertices[s].y) 20199 : l.moveTo(i.vertices[s].x, i.vertices[s].y), 20200 i.vertices[s].isInternal && 20201 !c && 20202 l.moveTo( 20203 i.vertices[(s + 1) % i.vertices.length].x, 20204 i.vertices[(s + 1) % i.vertices.length].y, 20205 ); 20206 l.lineTo(i.vertices[0].x, i.vertices[0].y); 20207 } 20208 (l.lineWidth = 1), (l.strokeStyle = "#bbb"), l.stroke(); 20209 }), 20210 (o.bodyConvexHulls = function (e, t, n) { 20211 var o, 20212 i, 20213 r, 20214 s = n; 20215 for (s.beginPath(), i = 0; i < t.length; i++) 20216 if (((o = t[i]), o.render.visible && 1 !== o.parts.length)) { 20217 for ( 20218 s.moveTo(o.vertices[0].x, o.vertices[0].y), r = 1; 20219 r < o.vertices.length; 20220 r++ 20221 ) 20222 s.lineTo(o.vertices[r].x, o.vertices[r].y); 20223 s.lineTo(o.vertices[0].x, o.vertices[0].y); 20224 } 20225 (s.lineWidth = 1), 20226 (s.strokeStyle = "rgba(255,255,255,0.2)"), 20227 s.stroke(); 20228 }), 20229 (o.vertexNumbers = function (e, t, n) { 20230 var o, 20231 i, 20232 r, 20233 s = n; 20234 for (o = 0; o < t.length; o++) { 20235 var a = t[o].parts; 20236 for (r = a.length > 1 ? 1 : 0; r < a.length; r++) { 20237 var l = a[r]; 20238 for (i = 0; i < l.vertices.length; i++) 20239 (s.fillStyle = "rgba(255,255,255,0.2)"), 20240 s.fillText( 20241 o + "_" + i, 20242 l.position.x + 0.8 * (l.vertices[i].x - l.position.x), 20243 l.position.y + 0.8 * (l.vertices[i].y - l.position.y), 20244 ); 20245 } 20246 } 20247 }), 20248 (o.mousePosition = function (e, t, n) { 20249 var o = n; 20250 (o.fillStyle = "rgba(255,255,255,0.8)"), 20251 o.fillText( 20252 t.position.x + " " + t.position.y, 20253 t.position.x + 5, 20254 t.position.y - 5, 20255 ); 20256 }), 20257 (o.bodyBounds = function (e, t, n) { 20258 var o = n, 20259 i = (e.engine, e.options); 20260 o.beginPath(); 20261 for (var r = 0; r < t.length; r++) { 20262 if (t[r].render.visible) 20263 for ( 20264 var s = t[r].parts, a = s.length > 1 ? 1 : 0; 20265 a < s.length; 20266 a++ 20267 ) { 20268 var l = s[a]; 20269 o.rect( 20270 l.bounds.min.x, 20271 l.bounds.min.y,
20272 l.bounds.max.x - l.bounds.min.x, 20273 l.bounds.max.y - l.bounds.min.y, 20274 ); 20275 } 20276 } 20277 i.wireframes 20278 ? (o.strokeStyle = "rgba(255,255,255,0.08)") 20279 : (o.strokeStyle = "rgba(0,0,0,0.1)"), 20280 (o.lineWidth = 1), 20281 o.stroke(); 20282 }), 20283 (o.bodyAxes = function (e, t, n) { 20284 var o, 20285 i, 20286 r, 20287 s, 20288 a = n, 20289 l = (e.engine, e.options); 20290 for (a.beginPath(), i = 0; i < t.length; i++) { 20291 var c = t[i], 20292 d = c.parts; 20293 if (c.render.visible) 20294 if (l.showAxes) 20295 for (r = d.length > 1 ? 1 : 0; r < d.length; r++) 20296 for (o = d[r], s = 0; s < o.axes.length; s++) { 20297 var u = o.axes[s]; 20298 a.moveTo(o.position.x, o.position.y), 20299 a.lineTo( 20300 o.position.x + 20 * u.x, 20301 o.position.y + 20 * u.y, 20302 ); 20303 } 20304 else 20305 for (r = d.length > 1 ? 1 : 0; r < d.length; r++) 20306 for (o = d[r], s = 0; s < o.axes.length; s++) 20307 a.moveTo(o.position.x, o.position.y), 20308 a.lineTo( 20309 (o.vertices[0].x + 20310 o.vertices[o.vertices.length - 1].x) / 20311 2, 20312 (o.vertices[0].y + 20313 o.vertices[o.vertices.length - 1].y) / 20314 2, 20315 ); 20316 } 20317 l.wireframes 20318 ? ((a.strokeStyle = "indianred"), (a.lineWidth = 1)) 20319 : ((a.strokeStyle = "rgba(255, 255, 255, 0.4)"), 20320 (a.globalCompositeOperation = "overlay"), 20321 (a.lineWidth = 2)), 20322 a.stroke(), 20323 (a.globalCompositeOperation = "source-over"); 20324 }), 20325 (o.bodyPositions = function (e, t, n) { 20326 var o, 20327 i, 20328 r, 20329 s, 20330 a = n, 20331 l = (e.engine, e.options); 20332 for (a.beginPath(), r = 0; r < t.length; r++) 20333 if (((o = t[r]), o.render.visible)) 20334 for (s = 0; s < o.parts.length; s++) 20335 (i = o.parts[s]), 20336 a.arc( 20337 i.position.x, 20338 i.position.y, 20339 3, 20340 0, 20341 2 * Math.PI, 20342 !1, 20343 ), 20344 a.closePath(); 20345 for ( 20346 l.wireframes 20347 ? (a.fillStyle = "indianred") 20348 : (a.fillStyle = "rgba(0,0,0,0.5)"), 20349 a.fill(), 20350 a.beginPath(), 20351 r = 0; 20352 r < t.length; 20353 r++ 20354 ) 20355 (o = t[r]), 20356 o.render.visible && 20357 (a.arc( 20358 o.positionPrev.x, 20359 o.positionPrev.y, 20360 2, 20361 0, 20362 2 * Math.PI, 20363 !1, 20364 ), 20365 a.closePath()); 20366 (a.fillStyle = "rgba(255,165,0,0.8)"), a.fill(); 20367 }), 20368 (o.bodyVelocity = function (e, t, n) { 20369 var o = n; 20370 o.beginPath(); 20371 for (var i = 0; i < t.length; i++) { 20372 var r = t[i]; 20373 r.render.visible && 20374 (o.moveTo(r.position.x, r.position.y), 20375 o.lineTo( 20376 r.position.x + 2 * (r.position.x - r.positionPrev.x), 20377 r.position.y + 2 * (r.position.y - r.positionPrev.y), 20378 )); 20379 } 20380 (o.lineWidth = 3), 20381 (o.strokeStyle = "cornflowerblue"), 20382 o.stroke(); 20383 }), 20384 (o.bodyIds = function (e, t, n) { 20385 var o, 20386 i, 20387 r = n; 20388 for (o = 0; o < t.length; o++) 20389 if (t[o].render.visible) { 20390 var s = t[o].parts; 20391 for (i = s.length > 1 ? 1 : 0; i < s.length; i++) { 20392 var a = s[i]; 20393 (r.font = "12px Arial"), 20394 (r.fillStyle = "rgba(255,255,255,0.5)"), 20395 r.fillText(a.id, a.position.x + 10, a.position.y - 10); 20396 } 20397 } 20398 }), 20399 (o.collisions = function (e, t, n) { 20400 var o, 20401 i, 20402 r, 20403 s, 20404 a = n, 20405 l = e.options; 20406 for (a.beginPath(), r = 0; r < t.length; r++) 20407 if (((o = t[r]), o.isActive)) 20408 for ( 20409 i = o.collision, s = 0; 20410 s < o.activeContacts.length; 20411 s++ 20412 ) { 20413 var c = o.activeContacts[s], 20414 d = c.vertex; 20415 a.rect(d.x - 1.5, d.y - 1.5, 3.5, 3.5); 20416 } 20417 for ( 20418 l.wireframes 20419 ? (a.fillStyle = "rgba(255,255,255,0.7)") 20420 : (a.fillStyle = "orange"), 20421 a.fill(), 20422 a.beginPath(), 20423 r = 0; 20424 r < t.length; 20425 r++ 20426 ) 20427 if ( 20428 ((o = t[r]), 20429 o.isActive && 20430 ((i = o.collision), o.activeContacts.length > 0)) 20431 ) { 20432 var u = o.activeContacts[0].vertex.x, 20433 p = o.activeContacts[0].vertex.y; 20434 2 === o.activeContacts.length && 20435 ((u = 20436 (o.activeContacts[0].vertex.x + 20437 o.activeContacts[1].vertex.x) / 20438 2), 20439 (p = 20440 (o.activeContacts[0].vertex.y + 20441 o.activeContacts[1].vertex.y) / 20442 2)), 20443 i.bodyB === i.supports[0].body || !0 === i.bodyA.isStatic 20444 ? a.moveTo(u - 8 * i.normal.x, p - 8 * i.normal.y) 20445 : a.moveTo(u + 8 * i.normal.x, p + 8 * i.normal.y), 20446 a.lineTo(u, p); 20447 } 20448 l.wireframes 20449 ? (a.strokeStyle = "rgba(255,165,0,0.7)") 20450 : (a.strokeStyle = "orange"), 20451 (a.lineWidth = 1), 20452 a.stroke(); 20453 }), 20454 (o.separations = function (e, t, n) { 20455 var o, 20456 i, 20457 r, 20458 s, 20459 a, 20460 l = n, 20461 c = e.options; 20462 for (l.beginPath(), a = 0; a < t.length; a++) 20463 if (((o = t[a]), o.isActive)) { 20464 (i = o.collision), (r = i.bodyA), (s = i.bodyB); 20465 var d = 1; 20466 s.isStatic || r.isStatic || (d = 0.5), 20467 s.isStatic && (d = 0), 20468 l.moveTo(s.position.x, s.position.y), 20469 l.lineTo( 20470 s.position.x - i.penetration.x * d, 20471 s.position.y - i.penetration.y * d, 20472 ), 20473 (d = 1), 20474 s.isStatic || r.isStatic || (d = 0.5), 20475 r.isStatic && (d = 0), 20476 l.moveTo(r.position.x, r.position.y), 20477 l.lineTo( 20478 r.position.x + i.penetration.x * d, 20479 r.position.y + i.penetration.y * d, 20480 ); 20481 } 20482 c.wireframes 20483 ? (l.strokeStyle = "rgba(255,165,0,0.5)") 20484 : (l.strokeStyle = "orange"), 20485 l.stroke(); 20486 }), 20487 (o.grid = function (e, t, n) { 20488 var o = n; 20489 e.options.wireframes 20490 ? (o.strokeStyle = "rgba(255,180,0,0.1)") 20491 : (o.strokeStyle = "rgba(255,180,0,0.5)"), 20492 o.beginPath(); 20493 for (var r = i.keys(t.buckets), s = 0; s < r.length; s++) { 20494 var a = r[s]; 20495 if (!(t.buckets[a].length < 2)) { 20496 var l = a.split(/C|R/); 20497 o.rect( 20498 0.5 + parseInt(l[1], 10) * t.bucketWidth, 20499 0.5 + parseInt(l[2], 10) * t.bucketHeight, 20500 t.bucketWidth, 20501 t.bucketHeight, 20502 ); 20503 } 20504 } 20505 (o.lineWidth = 1), o.stroke(); 20506 }), 20507 (o.inspector = function (e, t) { 20508 var n, 20509 o = (e.engine, e.selected), 20510 i = e.render, 20511 r = i.options; 20512 if (r.hasBounds) { 20513 var s = i.bounds.max.x - i.bounds.min.x, 20514 a = i.bounds.max.y - i.bounds.min.y, 20515 l = s / i.options.width, 20516 c = a / i.options.height; 20517 t.scale(1 / l, 1 / c), 20518 t.translate(-i.bounds.min.x, -i.bounds.min.y); 20519 } 20520 for (var d = 0; d < o.length; d++) { 20521 var u = o[d].data; 20522 switch ( 20523 (t.translate(0.5, 0.5), 20524 (t.lineWidth = 1), 20525 (t.strokeStyle = "rgba(255,165,0,0.9)"), 20526 t.setLineDash([1, 2]), 20527 u.type) 20528 ) { 20529 case "body": 20530 (n = u.bounds), 20531 t.beginPath(), 20532 t.rect( 20533 Math.floor(n.min.x - 3), 20534 Math.floor(n.min.y - 3), 20535 Math.floor(n.max.x - n.min.x + 6), 20536 Math.floor(n.max.y - n.min.y + 6), 20537 ), 20538 t.closePath(), 20539 t.stroke(); 20540 break; 20541 case "constraint": 20542 var p = u.pointA; 20543 u.bodyA && (p = u.pointB), 20544 t.beginPath(), 20545 t.arc(p.x, p.y, 10, 0, 2 * Math.PI), 20546 t.closePath(), 20547 t.stroke(); 20548 } 20549 t.setLineDash([]), t.translate(-0.5, -0.5); 20550 } 20551 null !== e.selectStart && 20552 (t.translate(0.5, 0.5), 20553 (t.lineWidth = 1), 20554 (t.strokeStyle = "rgba(255,165,0,0.6)"), 20555 (t.fillStyle = "rgba(255,165,0,0.1)"), 20556 (n = e.selectBounds), 20557 t.beginPath(), 20558 t.rect( 20559 Math.floor(n.min.x), 20560 Math.floor(n.min.y), 20561 Math.floor(n.max.x - n.min.x), 20562 Math.floor(n.max.y - n.min.y), 20563 ), 20564 t.closePath(), 20565 t.stroke(), 20566 t.fill(), 20567 t.translate(-0.5, -0.5)), 20568 r.hasBounds && t.setTransform(1, 0, 0, 1, 0, 0); 20569 }); 20570 var n = function (e, t) { 20571 var n = document.createElement("canvas"); 20572 return ( 20573 (n.width = e), 20574 (n.height = t), 20575 (n.oncontextmenu = function () { 20576 return !1; 20577 }), 20578 (n.onselectstart = function () { 20579 return !1; 20580 }), 20581 n 20582 ); 20583 }, 20584 u = function (e) { 20585 var t = e.getContext("2d"); 20586 return ( 20587 (window.devicePixelRatio || 1) / 20588 (t.webkitBackingStorePixelRatio || 20589 t.mozBackingStorePixelRatio || 20590 t.msBackingStorePixelRatio || 20591 t.oBackingStorePixelRatio || 20592 t.backingStorePixelRatio || 20593 1) 20594 ); 20595 }, 20596 p = function (e, t) { 20597 var n = e.textures[t]; 20598 return n || ((n = e.textures[t] = new Image()), (n.src = t), n); 20599 }, 20600 f = function (e, t) { 20601 var n = t; 20602 /(jpg|gif|png)$/.test(t) && (n = "url(" + t + ")"), 20603 (e.canvas.style.background = n), 20604 (e.canvas.style.backgroundSize = "contain"),
20605 (e.currentBackground = t); 20606 }; 20607 })(); 20608 }, 20609 { 20610 "../body/Composite": 2, 20611 "../collision/Grid": 6, 20612 "../core/Common": 14, 20613 "../core/Events": 16, 20614 "../core/Mouse": 19, 20615 "../geometry/Bounds": 26, 20616 "../geometry/Vector": 28, 20617 }, 20618 ], 20619 32: [ 20620 function (e, t, n) { 20621 var o = {}; 20622 t.exports = o; 20623 var i = e("../geometry/Bounds"), 20624 r = e("../body/Composite"), 20625 s = e("../core/Common"), 20626 a = e("../core/Events"), 20627 l = e("../geometry/Vector"); 20628 !(function () { 20629 var e, t; 20630 "undefined" != typeof window && 20631 ((e = 20632 window.requestAnimationFrame || 20633 window.webkitRequestAnimationFrame || 20634 window.mozRequestAnimationFrame || 20635 window.msRequestAnimationFrame || 20636 function (e) { 20637 window.setTimeout(function () { 20638 e(s.now()); 20639 }, 1e3 / 60); 20640 }), 20641 (t = 20642 window.cancelAnimationFrame || 20643 window.mozCancelAnimationFrame || 20644 window.webkitCancelAnimationFrame || 20645 window.msCancelAnimationFrame)), 20646 (o.create = function (e) { 20647 s.warn( 20648 "RenderPixi.create: Matter.RenderPixi is deprecated (see docs)", 20649 ); 20650 var t = { 20651 controller: o, 20652 engine: null, 20653 element: null, 20654 frameRequestId: null, 20655 canvas: null, 20656 renderer: null, 20657 container: null, 20658 spriteContainer: null, 20659 pixiOptions: null, 20660 options: { 20661 width: 800, 20662 height: 600, 20663 background: "#fafafa", 20664 wireframeBackground: "#222", 20665 hasBounds: !1, 20666 enabled: !0, 20667 wireframes: !0, 20668 showSleeping: !0, 20669 showDebug: !1, 20670 showBroadphase: !1, 20671 showBounds: !1, 20672 showVelocity: !1, 20673 showCollisions: !1, 20674 showAxes: !1, 20675 showPositions: !1, 20676 showAngleIndicator: !1, 20677 showIds: !1, 20678 showShadows: !1, 20679 }, 20680 }, 20681 n = s.extend(t, e), 20682 i = 20683 !n.options.wireframes && 20684 "transparent" === n.options.background; 20685 return ( 20686 (n.pixiOptions = n.pixiOptions || { 20687 view: n.canvas, 20688 transparent: i, 20689 antialias: !0, 20690 backgroundColor: e.background, 20691 }), 20692 (n.mouse = e.mouse), 20693 (n.engine = e.engine), 20694 (n.renderer = 20695 n.renderer || 20696 new PIXI.WebGLRenderer( 20697 n.options.width, 20698 n.options.height, 20699 n.pixiOptions, 20700 )), 20701 (n.container = n.container || new PIXI.Container()), 20702 (n.spriteContainer = 20703 n.spriteContainer || new PIXI.Container()), 20704 (n.canvas = n.canvas || n.renderer.view), 20705 (n.bounds = n.bounds || { 20706 min: { x: 0, y: 0 }, 20707 max: { x: n.options.width, y: n.options.height }, 20708 }), 20709 a.on(n.engine, "beforeUpdate", function () { 20710 o.clear(n); 20711 }), 20712 (n.textures = {}), 20713 (n.sprites = {}), 20714 (n.primitives = {}), 20715 n.container.addChild(n.spriteContainer), 20716 s.isElement(n.element) 20717 ? n.element.appendChild(n.canvas) 20718 : s.warn(
20719 'No "render.element" passed, "render.canvas" was not inserted into document.', 20720 ), 20721 (n.canvas.oncontextmenu = function () { 20722 return !1; 20723 }), 20724 (n.canvas.onselectstart = function () { 20725 return !1; 20726 }), 20727 n 20728 ); 20729 }), 20730 (o.run = function (t) { 20731 !(function n(i) { 20732 (t.frameRequestId = e(n)), o.world(t); 20733 })(); 20734 }), 20735 (o.stop = function (e) { 20736 t(e.frameRequestId); 20737 }), 20738 (o.clear = function (e) { 20739 for ( 20740 var t = e.container, n = e.spriteContainer; 20741 t.children[0]; 20742 20743 ) 20744 t.removeChild(t.children[0]); 20745 for (; n.children[0]; ) n.removeChild(n.children[0]); 20746 var o = e.sprites["bg-0"]; 20747 (e.textures = {}), 20748 (e.sprites = {}), 20749 (e.primitives = {}), 20750 (e.sprites["bg-0"] = o), 20751 o && t.addChildAt(o, 0), 20752 e.container.addChild(e.spriteContainer), 20753 (e.currentBackground = null), 20754 t.scale.set(1, 1), 20755 t.position.set(0, 0); 20756 }), 20757 (o.setBackground = function (e, t) { 20758 if (e.currentBackground !== t) { 20759 var n = t.indexOf && -1 !== t.indexOf("#"), 20760 o = e.sprites["bg-0"]; 20761 if (n) { 20762 var i = s.colorToNumber(t); 20763 (e.renderer.backgroundColor = i), 20764 o && e.container.removeChild(o); 20765 } else if (!o) { 20766 var r = d(e, t); 20767 (o = e.sprites["bg-0"] = new PIXI.Sprite(r)), 20768 (o.position.x = 0), 20769 (o.position.y = 0), 20770 e.container.addChildAt(o, 0); 20771 } 20772 e.currentBackground = t; 20773 } 20774 }), 20775 (o.world = function (e) { 20776 var t, 20777 n = e.engine, 20778 s = n.world, 20779 a = e.renderer, 20780 c = e.container, 20781 d = e.options, 20782 u = r.allBodies(s), 20783 p = r.allConstraints(s), 20784 f = []; 20785 d.wireframes 20786 ? o.setBackground(e, d.wireframeBackground) 20787 : o.setBackground(e, d.background); 20788 var m = e.bounds.max.x - e.bounds.min.x, 20789 v = e.bounds.max.y - e.bounds.min.y, 20790 y = m / e.options.width, 20791 g = v / e.options.height; 20792 if (d.hasBounds) { 20793 for (t = 0; t < u.length; t++) { 20794 var x = u[t]; 20795 x.render.sprite.visible = i.overlaps(x.bounds, e.bounds); 20796 } 20797 for (t = 0; t < p.length; t++) { 20798 var h = p[t], 20799 b = h.bodyA, 20800 w = h.bodyB, 20801 S = h.pointA, 20802 C = h.pointB; 20803 b && (S = l.add(b.position, h.pointA)), 20804 w && (C = l.add(w.position, h.pointB)), 20805 S && 20806 C && 20807 (i.contains(e.bounds, S) || i.contains(e.bounds, C)) && 20808 f.push(h); 20809 } 20810 c.scale.set(1 / y, 1 / g), 20811 c.position.set( 20812 -e.bounds.min.x * (1 / y), 20813 -e.bounds.min.y * (1 / g), 20814 ); 20815 } else f = p; 20816 for (t = 0; t < u.length; t++) o.body(e, u[t]); 20817 for (t = 0; t < f.length; t++) o.constraint(e, f[t]); 20818 a.render(c); 20819 }), 20820 (o.constraint = function (e, t) { 20821 var n = (e.engine, t.bodyA), 20822 o = t.bodyB, 20823 i = t.pointA, 20824 r = t.pointB, 20825 a = e.container, 20826 l = t.render, 20827 c = "c-" + t.id, 20828 d = e.primitives[c]; 20829 if ( 20830 (d || (d = e.primitives[c] = new PIXI.Graphics()), 20831 !l.visible || !t.pointA || !t.pointB) 20832 ) 20833 return void d.clear(); 20834 -1 === s.indexOf(a.children, d) && a.addChild(d), 20835 d.clear(), 20836 d.beginFill(0, 0), 20837 d.lineStyle(l.lineWidth, s.colorToNumber(l.strokeStyle), 1), 20838 n 20839 ? d.moveTo(n.position.x + i.x, n.position.y + i.y) 20840 : d.moveTo(i.x, i.y), 20841 o 20842 ? d.lineTo(o.position.x + r.x, o.position.y + r.y) 20843 : d.lineTo(r.x, r.y), 20844 d.endFill(); 20845 }), 20846 (o.body = function (e, t) { 20847 var o = (e.engine, t.render); 20848 if (o.visible) 20849 if (o.sprite && o.sprite.texture) { 20850 var i = "b-" + t.id, 20851 r = e.sprites[i], 20852 a = e.spriteContainer; 20853 r || (r = e.sprites[i] = n(e, t)), 20854 -1 === s.indexOf(a.children, r) && a.addChild(r), 20855 (r.position.x = t.position.x), 20856 (r.position.y = t.position.y), 20857 (r.rotation = t.angle), 20858 (r.scale.x = o.sprite.xScale || 1), 20859 (r.scale.y = o.sprite.yScale || 1); 20860 } else { 20861 var l = "b-" + t.id, 20862 d = e.primitives[l], 20863 u = e.container; 20864 d || 20865 ((d = e.primitives[l] = c(e, t)), 20866 (d.initialAngle = t.angle)), 20867 -1 === s.indexOf(u.children, d) && u.addChild(d), 20868 (d.position.x = t.position.x), 20869 (d.position.y = t.position.y), 20870 (d.rotation = t.angle - d.initialAngle); 20871 } 20872 }); 20873 var n = function (e, t) { 20874 var n = t.render, 20875 o = n.sprite.texture, 20876 i = d(e, o), 20877 r = new PIXI.Sprite(i); 20878 return ( 20879 (r.anchor.x = t.render.sprite.xOffset), 20880 (r.anchor.y = t.render.sprite.yOffset), 20881 r 20882 ); 20883 }, 20884 c = function (e, t) { 20885 var n, 20886 o = t.render, 20887 i = e.options, 20888 r = new PIXI.Graphics(), 20889 a = s.colorToNumber(o.fillStyle), 20890 l = s.colorToNumber(o.strokeStyle), 20891 c = s.colorToNumber(o.strokeStyle), 20892 d = s.colorToNumber("#bbb"), 20893 u = s.colorToNumber("#CD5C5C"); 20894 r.clear(); 20895 for ( 20896 var p = t.parts.length > 1 ? 1 : 0; 20897 p < t.parts.length; 20898 p++ 20899 ) { 20900 (n = t.parts[p]), 20901 i.wireframes 20902 ? (r.beginFill(0, 0), r.lineStyle(1, d, 1)) 20903 : (r.beginFill(a, 1), r.lineStyle(o.lineWidth, l, 1)), 20904 r.moveTo( 20905 n.vertices[0].x - t.position.x, 20906 n.vertices[0].y - t.position.y, 20907 ); 20908 for (var f = 1; f < n.vertices.length; f++) 20909 r.lineTo( 20910 n.vertices[f].x - t.position.x, 20911 n.vertices[f].y - t.position.y, 20912 ); 20913 r.lineTo( 20914 n.vertices[0].x - t.position.x, 20915 n.vertices[0].y - t.position.y, 20916 ), 20917 r.endFill(), 20918 (i.showAngleIndicator || i.showAxes) && 20919 (r.beginFill(0, 0), 20920 i.wireframes ? r.lineStyle(1, u, 1) : r.lineStyle(1, c), 20921 r.moveTo( 20922 n.position.x - t.position.x, 20923 n.position.y - t.position.y, 20924 ), 20925 r.lineTo( 20926 (n.vertices[0].x + 20927 n.vertices[n.vertices.length - 1].x) / 20928 2 - 20929 t.position.x, 20930 (n.vertices[0].y + 20931 n.vertices[n.vertices.length - 1].y) / 20932 2 - 20933 t.position.y, 20934 ), 20935 r.endFill()); 20936 } 20937 return r; 20938 }, 20939 d = function (e, t) { 20940 var n = e.textures[t]; 20941 return n || (n = e.textures[t] = PIXI.Texture.fromImage(t)), n; 20942 }; 20943 })(); 20944 }, 20945 { 20946 "../body/Composite": 2, 20947 "../core/Common": 14, 20948 "../core/Events": 16, 20949 "../geometry/Bounds": 26, 20950 "../geometry/Vector": 28, 20951 }, 20952 ], 20953 }, 20954 {}, 20955 [30], 20956 )(30); 20957}); 20958 20959/*! Lazy Load 1.9.1 - MIT license - Copyright 2010-2013 Mika Tuupola */ 20960!(function (a, b, c, d) { 20961 var e = a(b); 20962 (a.fn.lazyload = function (f) { 20963 function g() { 20964 var b = 0; 20965 i.each(function () { 20966 var c = a(this); 20967 if (!j.skip_invisible || c.is(":visible")) 20968 if (a.abovethetop(this, j) || a.leftofbegin(this, j)); 20969 else if (a.belowthefold(this, j) || a.rightoffold(this, j)) { 20970 if (++b >
20970 j.failure_limit) return !1; 20971 } else c.trigger("appear"), (b = 0); 20972 }); 20973 } 20974 var h, 20975 i = this, 20976 j = { 20977 threshold: 0, 20978 failure_limit: 0, 20979 event: "scroll", 20980 effect: "show", 20981 container: b, 20982 data_attribute: "original", 20983 skip_invisible: !0, 20984 appear: null, 20985 load: null, 20986 placeholder: 20987 "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAMKmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarVd3UFP5Fv5uSSFAaDECUoJIFwWkI0gvgoB0WAshCRAIIaagYi/LKrp2sWBZ0VURV10LKGtFXRurYO8PdFFZWRdXsSvvDwK6znt/vJn3m7m535x85zvfOffOnTmAgZtQoZCRhkCRXK1MigoVZGRmCVitoEGABhscoUilCElMjAOA3vsXhwBeXQcBAFdchQqFDP/bMRJLVCKASASQI1aJigBiP0CbihRKNcBoBGA7Ua1QA4xOADxlRmYWwKQB8PJ6sCkAXk4PHgyAp0xJCgOYwQBbTyhU5gHcOACCElGeGuDKALjJxVI5wF0HIEiULxQD3LsABhcVFYsBAzYAx5wvdPL+oZnTpykU5vXhnl4AAOxwqUohE07G//sUyTS9NQYC0MtXRicB4AHE9sLi2CQAegBxWJ4TnwDAGCDOSsWAFt/O10SnavkdIlVYFgA+QEIsDI8FYAGQfE1haogWewiVQA+fjJeqY1K0OEdZnKTVJ0vksvg4rc68fElML94gUUUk93JypZExAAwBcn9pfkp6j0/yVIk0LR4AFyCbVIXJsdrc+6X5YfG9HKUmKRXAIIB8mauMTOrhUKZFqt6+qCEiYUQyAFOAClbnp0T35FIZElVGXK8HsSQ8oscDJZbIU7XeKLVCHZqkzS1TyBK1fGqDRBaV1DNnao+qJLk397JamaKdOfWgQDgyUVvrlUKdmNLjjSYRhzCEQwANBMhBMQogvdhR1wGB9p9ICKFEHiRw1UZ6M9IhhBJyCJGMUvwJOSRQ9eWFQgglJCiBHB/7oj2/rsiFEEqUQAIVCvEIShTR5nQQHUDH0UF0MB1Ee9C+tF9vnsCgtyozghnOjGZGMp36fIhQDBmKoYT0P8RiIYMEGighgby3h896jEeMZsYDxjVGC+MW0vA7lJD2ssZLZyu/ci7AKLRAo52KBDlfdkfb0x60Fx1KB9JBtB8ENJ82hyvtSfvSIfQIOoD2ov3+4VDT5+3zLL+uJ4H8H/1o41xnrpfWRU7fkwnrY32tEvbFjMQoRuzXTGoetY86Q52gzlGHqToIqGPUQaqROkLVffEm/A4l8vqqJUECOQohg7SX41bj1u724avaQm19JSRQqSWT1AAQVqyYrJTm5asFIQqFTCKIkYuGDBZ4uLn7ABmZWYKeT8cLPggABP/859icaiDwUHd39y+fYyObgJ+zAc6BzzHHsYDhY+DsYZFGWdITowGAAQ4MwIMZrGALR7jCA94IQDAiMBIJSEEmxkGEfBRBiYmYilkowwIswUqsxUZsxnb8hL2ow2GcwK+4gCZcwx20oA1P0YlXeE8QBIvQJ0wIM8KasCNcCA/ClwgiIog4IonIJLKJPEJOaIipxBxiAbGMWEtsIqqJn4lDxAniHNFM3CJaiXbib+IdSZF6JI+0JO3JoaQvGULGkinkWDKPnECWknPJReRqsorcSdaSJ8gL5DWyhXxKdlGgdCk+ZUO5Ur5UGJVAZVG5lJKaTpVTFVQVtYuqp85QV6gWqoN6SzNpE1pAu9IBdDSdSovoCfR0eiG9lt5O19Kn6Ct0K91Jf2LoMywYLgx/Rgwjg5HHmMgoY1QwtjIOME4zrjHaGK+YTCaf6cD0YUYzM5kFzCnMhcz1zN3M48xm5kNmF4vFMmO5sAJZCSwhS80qY61h7WQdY11mtbHesHXZ1mwPdiQ7iy1nz2ZXsHewj7Ivsx+z3+sY6tjp+Osk6Ih1Juss1tmiU69zSadN5z3HiOPACeSkcAo4szirObs4pzl3OS90dXUH6vrpjtaV6s7UXa27R/esbqvuWz1jPWe9ML0xehq9RXrb9I7r3dJ7oa+vb68frJ+lr9ZfpF+tf1L/vv4brgl3CDeGK+bO4FZya7mXuc8MdAzsDEIMxhmUGlQY7DO4ZNBhqGNobxhmKDScblhpeMjwhmGXkYmRu1GCUZHRQqMdRueMnhizjO2NI4zFxnONNxufNH5oQpnYmoSZiEzmmGwxOW3SxmPyHHgxvALeAt5PvIu8zn7G/Tz7pfWb1K+y35F+LXyKb8+P4cv4i/l7+df57/pb9g/pL+k/v/+u/pf7vzYdYBpsKjEtN91tes30nZnALMKs0GypWZ3ZPXPa3Nl8tPlE8w3mp807BvAGBAwQDSgfsHfAbQvSwtkiyWKKxWaLRosuSyvLKEuF5RrLk5YdVnyrYKsCqxVWR63arU2sg6yl1iusj1n/IegnCBHIBKsFpwSdNhY20TYam002F23eD3QYmDpw9sDdA+/Zcmx9bXNtV9g22HYOsh40atDUQTWDbtvp2Pna5dutsjtj99rewT7d/jv7OvsnDqYOMQ6lDjUOdx31HUc4TnCscrzqxHTydSp0Wu/U5Ew6eznnO1c6X3IhXbxdpC7rXZoHMwb7DZYPrhp8w1XPNcS1xLXGtXUIf0jckNlD6oY8GzpoaNbQpUPPDP3k5uUmc9vidsfd2H2k+2z3eve/PZw9RB6VHleH6Q+LHDZj2MFhzz1dPCWeGzxvepl4jfL6zqvB66O3j7fSe5d3u88gn2yfdT43fHm+ib4Lfc/6MfxC/Wb4HfZ76+/tr/bf6/9XgGtAYcCOgCfDHYZLhm8Z/jBwYKAwcFNgS5AgKDvoh6CWETYjhCOqRjwItg0WB28NfhziFFIQsjPkWahbqDL0QOjrMP+waWHHw6nwqPDy8IsRxhGpEWsj7kcOjMyLrInsjPKKmhJ1PJoRHRu9NPpGjGWMKKY6pnOkz8hpI0/F6sUmx66NfRDnHKeMqx9Fjho5avmou/F28fL4ugQkxCQsT7iX6JA4IfGX0czRiaMrRz9Kck+amnQm2SR5fPKO5FcpoSmLU+6kOqZqUhvSDNLGpFWnvU4PT1+W3pIxNGNaxoVM80xp5sEsVlZa1tasrm8ivln5TdsYrzFlY66PdRg7aey5cebjZOOOjDcYLxy/L5uRnZ69I/uDMEFYJezKiclZl9MpChOtEj0VB4tXiNslgZJlkse5gbnLcp/kBeYtz2vPH5Ffkd8hDZOulT4viC7YWPC6MKFwW2G3LF22u4hdlF10SG4sL5SfKrYqnlTcrHBRlClaJvhPWDmhUxmr3KoiVGNVB9U8tULdqHHUfKtpLQkqqSx5MzFt4r5JRpPkkxonO0+eP/lxaWTpj1PoKaIpDVNtps6a2jotZNqm6cT0nOkNM2xnzJ3RNjNq5vZZnFmFs36b7TZ72eyXc9Ln1M+1nDtz7sNvo76tKeOWKctufBfw3cZ59DzpvIvzh81fM/9Tubj8/AK3BRULPiwULTz/vfv3q7/vXpS76OJi78UbljCXyJdcXzpi6fZlRstKlz1cPmp57QrBivIVL1eOX3muwrNi4yrOKs2qltVxqw+uGbRmyZoPa/PXXqsMrdy9zmLd/HWv14vXX94QvGHXRsuNCza++0H6w81NUZtqq+yrKjYzN5dsfrQlbcuZH31/rN5qvnXB1o/b5NtatidtP1XtU129w2LH4hqyRlPTvnPMzqafwn86uMt116bd/N0L9mCPZs8fP2f/fH1v7N6Gfb77du2327/ugMmB8lqidnJtZ11+XcvBzIPNh0YeaqgPqD/wy5Bfth22OVx5pN+RxUc5R+ce7T5WeqzruOJ4x4m8Ew8bxjfcOZlx8uqp0acuno49ffbXyF9Pngk5c+xs4NnD5/zPHTrve77ugveF2kavxgO/ef124KL3xdpLPpcONvk11TcPbz56ecTlE1fCr/x6NebqhWvx15qvp16/eWPMjZab4ptPbsluPb9dcvv9nZl3GXfL7xneq7hvcb/qX07/2t3i3XKkNby18UHygzsPRQ+f/q76/UPb3Ef6jyoeWz+ufuLx5HB7ZHvTH9/80fZU8fR9R9mfRn+ue+b4bP9fwX81dmZ0tj1XPu/+e+ELsxfbXnq+bOhK7Lr/qujV+9flb8zebH/r+/bMu/R3j99P/MD6sPqj08f6T7Gf7nYXdXcrhEohAIACQObmAn9vA/QzAZMmgMPt2b20OyPxeXv8b7hnPwMAeAO7ACQBCDsO7DkO2M8EDIKBRAApwSCHDeu7tEeVO8yjR0tPCTDedHe/sARY9cBHZXf3+/Xd3R+3ANQt4PiEnp0PAJiGwA+eAHCZL9v09e71b2XqbgXTX2RbAAA6LmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgI
20987HhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNy0wNi0xNVQxNzowMDoyMCswMjowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTctMDYtMTVUMTc6MDA6MjArMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE3LTA2LTE1VDE3OjAwOjIwKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo4Y2E0MWQ5My01MDNiLTQ4OTAtODhhZS1lOWIzYTIzYmJmNmY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjMjYzNjNiYy05MjY5LTExN2EtOWZlYy1mZWQ1ZDMzZGEyNzI8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo0ZTFlMTE5ZC02MmE1LTQ3MzAtYWRlYi02MzUzYzI2MGU2ZWI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NGUxZTExOWQtNjJhNS00NzMwLWFkZWItNjM1M2MyNjBlNmViPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTA2LTE1VDE3OjAwOjIwKzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6OGNhNDFkOTMtNTAzYi00ODkwLTg4YWUtZTliM2EyM2JiZjZmPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTA2LTE1VDE3OjAwOjIwKzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+RGlzcGxheTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4MzQ2NS8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MjgzNDY1LzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4zPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgI
20987CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgZldHoAAAAgY0hSTQAAbXUAAHOgAAEH/gAAfqEAAGSTAAEJ8QAAMYkAABOcLwWf9AAAABJJREFUeNpi+P//PwAAAP//AwAF/gL+XhGkvgAAAABJRU5ErkJggg==", 20988 }; 20989 return ( 20990 f && 20991 (d !== f.failurelimit && 20992 ((f.failure_limit = f.failurelimit), delete f.failurelimit), 20993 d !== f.effectspeed && 20994 ((f.effect_speed = f.effectspeed), delete f.effectspeed), 20995 a.extend(j, f)), 20996 (h = j.container === d || j.container === b ? e : a(j.container)), 20997 0 === j.event.indexOf("scroll") && 20998 h.bind(j.event, function () { 20999 return g(); 21000 }), 21001 this.each(function () { 21002 var b = this, 21003 c = a(b); 21004 (b.loaded = !1), 21005 (c.attr("src") === d || c.attr("src") === !1) && 21006 c.is("img") && 21007 c.attr("src", j.placeholder), 21008 c.one("appear", function () { 21009 if (!this.loaded) { 21010 if (j.appear) { 21011 var d = i.length; 21012 j.appear.call(b, d, j); 21013 } 21014 a("<img />") 21015 .bind("load", function () { 21016 var d = c.attr("data-" + j.data_attribute); 21017 c.hide(), 21018 c.is("img") 21019 ? c.attr("src", d) 21020 : c.css("background-image", "url('" + d + "')"), 21021 c[j.effect](j.effect_speed), 21022 (b.loaded = !0); 21023 var e = a.grep(i, function (a) { 21024 return !a.loaded; 21025 }); 21026 if (((i = a(e)), j.load)) { 21027 var f = i.length; 21028 j.load.call(b, f, j); 21029 } 21030 }) 21031 .attr("src", c.attr("data-" + j.data_attribute)); 21032 } 21033 }), 21034 0 !== j.event.indexOf("scroll") && 21035 c.bind(j.event, function () { 21036 b.loaded || c.trigger("appear"); 21037 }); 21038 }), 21039 e.bind("resize", function () { 21040 g(); 21041 }), 21042 /(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion) && 21043 e.bind("pageshow", function (b) { 21044 b.originalEvent && 21045 b.originalEvent.persisted && 21046 i.each(function () { 21047 a(this).trigger("appear"); 21048 }); 21049 }), 21050 a(c).ready(function () { 21051 g(); 21052 }), 21053 this 21054 ); 21055 }), 21056 (a.belowthefold = function (c, f) { 21057 var g; 21058 return ( 21059 (g = 21060 f.container === d || f.container === b
21061 ? (b.innerHeight ? b.innerHeight : e.height()) + e.scrollTop() 21062 : a(f.container).offset().top + a(f.container).height()), 21063 g <= a(c).offset().top - f.threshold 21064 ); 21065 }), 21066 (a.rightoffold = function (c, f) { 21067 var g; 21068 return ( 21069 (g = 21070 f.container === d || f.container === b 21071 ? e.width() + e.scrollLeft() 21072 : a(f.container).offset().left + a(f.container).width()), 21073 g <= a(c).offset().left - f.threshold 21074 ); 21075 }), 21076 (a.abovethetop = function (c, f) { 21077 var g; 21078 return ( 21079 (g = 21080 f.container === d || f.container === b 21081 ? e.scrollTop() 21082 : a(f.container).offset().top), 21083 g >= a(c).offset().top + f.threshold + a(c).height() 21084 ); 21085 }), 21086 (a.leftofbegin = function (c, f) { 21087 var g; 21088 return ( 21089 (g = 21090 f.container === d || f.container === b 21091 ? e.scrollLeft() 21092 : a(f.container).offset().left), 21093 g >= a(c).offset().left + f.threshold + a(c).width() 21094 ); 21095 }), 21096 (a.inviewport = function (b, c) { 21097 return !( 21098 a.rightoffold(b, c) || 21099 a.leftofbegin(b, c) || 21100 a.belowthefold(b, c) || 21101 a.abovethetop(b, c) 21102 ); 21103 }), 21104 a.extend(a.expr[":"], { 21105 "below-the-fold": function (b) { 21106 return a.belowthefold(b, { threshold: 0 }); 21107 }, 21108 "above-the-top": function (b) { 21109 return !a.belowthefold(b, { threshold: 0 }); 21110 }, 21111 "right-of-screen": function (b) { 21112 return a.rightoffold(b, { threshold: 0 }); 21113 }, 21114 "left-of-screen": function (b) { 21115 return !a.rightoffold(b, { threshold: 0 }); 21116 }, 21117 "in-viewport": function (b) { 21118 return a.inviewport(b, { threshold: 0 }); 21119 }, 21120 "above-the-fold": function (b) { 21121 return !a.belowthefold(b, { threshold: 0 }); 21122 }, 21123 "right-of-fold": function (b) { 21124 return a.rightoffold(b, { threshold: 0 }); 21125 }, 21126 "left-of-fold": function (b) { 21127 return !a.rightoffold(b, { threshold: 0 }); 21128 }, 21129 }); 21130})(jQuery, window, document); 21131 21132/*! 21133Waypoints - 4.0.1 21134Copyright © 2011-2016 Caleb Troughton 21135Licensed under the MIT license. 21136https://github.com/imakewebthings/waypoints/blob/master/licenses.txt 21137*/ 21138!(function () { 21139 "use strict"; 21140 function t(o) { 21141 if (!o) throw new Error("No options passed to Waypoint constructor"); 21142 if (!o.element) 21143 throw new Error("No element option passed to Waypoint constructor"); 21144 if (!o.handler) 21145 throw new Error("No handler option passed to Waypoint constructor"); 21146 (this.key = "waypoint-" + e), 21147 (this.options = t.Adapter.extend({}, t.defaults, o)), 21148 (this.element = this.options.element), 21149 (this.adapter = new t.Adapter(this.element)), 21150 (this.callback = o.handler), 21151 (this.axis = this.options.horizontal ? "horizontal" : "vertical"), 21152 (this.enabled = this.options.enabled), 21153 (this.triggerPoint = null), 21154 (this.group = t.Group.findOrCreate({ 21155 name: this.options.group, 21156 axis: this.axis, 21157 })), 21158 (this.context = t.Context.findOrCreateByElement(this.options.context)), 21159 t.offsetAliases[this.options.offset] && 21160 (this.options.offset = t.offsetAliases[this.options.offset]), 21161 this.group.add(this), 21162 this.context.add(this), 21163 (i[this.key] = this), 21164 (e += 1); 21165 } 21166 var e = 0, 21167 i = {}; 21168 (t.prototype.queueTrigger = function (t) { 21169 this.group.queueTrigger(this, t); 21170 }), 21171 (t.prototype.trigger = function (t) { 21172 this.enabled && this.callback && this.callback.apply(this, t); 21173 }), 21174 (t.prototype.destroy = function () { 21175 this.context.remove(this), this.group.remove(this), delete i[this.key]; 21176 }), 21177 (t.prototype.disable = function () { 21178 return (this.enabled = !1), this; 21179 }), 21180 (t.prototype.enable = function () { 21181 return this.context.refresh(), (this.enabled = !0), this; 21182 }), 21183 (t.prototype.next = function () { 21184 return this.group.next(this); 21185 }), 21186 (t.prototype.previous = function () { 21187 return this.group.previous(this); 21188 }), 21189 (t.invokeAll = function (t) { 21190 var e = []; 21191 for (var o in i) e.push(i[o]); 21192 for (var n = 0, r = e.length; r > n; n++) e[n][t](); 21193 }), 21194 (t.destroyAll = function () { 21195 t.invokeAll("destroy"); 21196 }), 21197 (t.disableAll = function () { 21198 t.invokeAll("disable"); 21199 }), 21200 (t.enableAll = function () { 21201 t.Context.refreshAll(); 21202 for (var e in i) i[e].enabled = !0; 21203 return this; 21204 }), 21205 (t.refreshAll = function () { 21206 t.Context.refreshAll(); 21207 }),
21208 (t.viewportHeight = function () { 21209 return window.innerHeight || document.documentElement.clientHeight; 21210 }), 21211 (t.viewportWidth = function () { 21212 return document.documentElement.clientWidth; 21213 }), 21214 (t.adapters = []), 21215 (t.defaults = { 21216 context: window, 21217 continuous: !0, 21218 enabled: !0, 21219 group: "default", 21220 horizontal: !1, 21221 offset: 0, 21222 }), 21223 (t.offsetAliases = { 21224 "bottom-in-view": function () { 21225 return this.context.innerHeight() - this.adapter.outerHeight(); 21226 }, 21227 "right-in-view": function () { 21228 return this.context.innerWidth() - this.adapter.outerWidth(); 21229 }, 21230 }), 21231 (window.Waypoint = t); 21232})(), 21233 (function () { 21234 "use strict"; 21235 function t(t) { 21236 window.setTimeout(t, 1e3 / 60); 21237 } 21238 function e(t) { 21239 (this.element = t), 21240 (this.Adapter = n.Adapter), 21241 (this.adapter = new this.Adapter(t)), 21242 (this.key = "waypoint-context-" + i), 21243 (this.didScroll = !1), 21244 (this.didResize = !1), 21245 (this.oldScroll = { 21246 x: this.adapter.scrollLeft(), 21247 y: this.adapter.scrollTop(), 21248 }), 21249 (this.waypoints = { vertical: {}, horizontal: {} }), 21250 (t.waypointContextKey = this.key), 21251 (o[t.waypointContextKey] = this), 21252 (i += 1), 21253 n.windowContext || 21254 ((n.windowContext = !0), (n.windowContext = new e(window))), 21255 this.createThrottledScrollHandler(), 21256 this.createThrottledResizeHandler(); 21257 } 21258 var i = 0, 21259 o = {}, 21260 n = window.Waypoint, 21261 r = window.onload; 21262 (e.prototype.add = function (t) { 21263 var e = t.options.horizontal ? "horizontal" : "vertical"; 21264 (this.waypoints[e][t.key] = t), this.refresh(); 21265 }), 21266 (e.prototype.checkEmpty = function () { 21267 var t = this.Adapter.isEmptyObject(this.waypoints.horizontal), 21268 e = this.Adapter.isEmptyObject(this.waypoints.vertical), 21269 i = this.element == this.element.window; 21270 t && e && !i && (this.adapter.off(".waypoints"), delete o[this.key]); 21271 }), 21272 (e.prototype.createThrottledResizeHandler = function () { 21273 function t() { 21274 e.handleResize(), (e.didResize = !1); 21275 } 21276 var e = this; 21277 this.adapter.on("resize.waypoints", function () { 21278 e.didResize || ((e.didResize = !0), n.requestAnimationFrame(t)); 21279 }); 21280 }), 21281 (e.prototype.createThrottledScrollHandler = function () { 21282 function t() { 21283 e.handleScroll(), (e.didScroll = !1); 21284 } 21285 var e = this; 21286 this.adapter.on("scroll.waypoints", function () { 21287 (!e.didScroll || n.isTouch) && 21288 ((e.didScroll = !0), n.requestAnimationFrame(t)); 21289 }); 21290 }), 21291 (e.prototype.handleResize = function () { 21292 n.Context.refreshAll(); 21293 }), 21294 (e.prototype.handleScroll = function () { 21295 var t = {}, 21296 e = { 21297 horizontal: { 21298 newScroll: this.adapter.scrollLeft(), 21299 oldScroll: this.oldScroll.x, 21300 forward: "right", 21301 backward: "left", 21302 }, 21303 vertical: { 21304 newScroll: this.adapter.scrollTop(), 21305 oldScroll: this.oldScroll.y, 21306 forward: "down", 21307 backward: "up", 21308 }, 21309 }; 21310 for (var i in e) { 21311 var o = e[i], 21312 n = o.newScroll > o.oldScroll, 21313 r = n ? o.forward : o.backward; 21314 for (var s in this.waypoints[i]) { 21315 var a = this.waypoints[i][s]; 21316 if (null !== a.triggerPoint) { 21317 var l = o.oldScroll < a.triggerPoint, 21318 h = o.newScroll >= a.triggerPoint, 21319 p = l && h, 21320 u = !l && !h; 21321 (p || u) && (a.queueTrigger(r), (t[a.group.id] = a.group)); 21322 } 21323 } 21324 } 21325 for (var c in t) t[c].flushTriggers(); 21326 this.oldScroll = { x: e.horizontal.newScroll, y: e.vertical.newScroll }; 21327 }), 21328 (e.prototype.innerHeight = function () { 21329 return this.element == this.element.window
21330 ? n.viewportHeight() 21331 : this.adapter.innerHeight(); 21332 }), 21333 (e.prototype.remove = function (t) { 21334 delete this.waypoints[t.axis][t.key], this.checkEmpty(); 21335 }), 21336 (e.prototype.innerWidth = function () { 21337 return this.element == this.element.window 21338 ? n.viewportWidth() 21339 : this.adapter.innerWidth(); 21340 }), 21341 (e.prototype.destroy = function () { 21342 var t = []; 21343 for (var e in this.waypoints) 21344 for (var i in this.waypoints[e]) t.push(this.waypoints[e][i]); 21345 for (var o = 0, n = t.length; n > o; o++) t[o].destroy(); 21346 }), 21347 (e.prototype.refresh = function () { 21348 var t, 21349 e = this.element == this.element.window, 21350 i = e ? void 0 : this.adapter.offset(), 21351 o = {}; 21352 this.handleScroll(), 21353 (t = { 21354 horizontal: { 21355 contextOffset: e ? 0 : i.left, 21356 contextScroll: e ? 0 : this.oldScroll.x, 21357 contextDimension: this.innerWidth(), 21358 oldScroll: this.oldScroll.x, 21359 forward: "right", 21360 backward: "left", 21361 offsetProp: "left", 21362 }, 21363 vertical: { 21364 contextOffset: e ? 0 : i.top, 21365 contextScroll: e ? 0 : this.oldScroll.y, 21366 contextDimension: this.innerHeight(), 21367 oldScroll: this.oldScroll.y, 21368 forward: "down", 21369 backward: "up", 21370 offsetProp: "top", 21371 }, 21372 }); 21373 for (var r in t) { 21374 var s = t[r]; 21375 for (var a in this.waypoints[r]) { 21376 var l, 21377 h, 21378 p, 21379 u, 21380 c, 21381 d = this.waypoints[r][a], 21382 f = d.options.offset, 21383 w = d.triggerPoint, 21384 y = 0, 21385 g = null == w; 21386 d.element !== d.element.window && 21387 (y = d.adapter.offset()[s.offsetProp]), 21388 "function" == typeof f 21389 ? (f = f.apply(d)) 21390 : "string" == typeof f && 21391 ((f = parseFloat(f)), 21392 d.options.offset.indexOf("%") > -1 && 21393 (f = Math.ceil((s.contextDimension * f) / 100))), 21394 (l = s.contextScroll - s.contextOffset), 21395 (d.triggerPoint = Math.floor(y + l - f)), 21396 (h = w < s.oldScroll), 21397 (p = d.triggerPoint >= s.oldScroll), 21398 (u = h && p), 21399 (c = !h && !p), 21400 !g && u 21401 ? (d.queueTrigger(s.backward), (o[d.group.id] = d.group)) 21402 : !g && c 21403 ? (d.queueTrigger(s.forward), (o[d.group.id] = d.group)) 21404 : g && 21405 s.oldScroll >= d.triggerPoint && 21406 (d.queueTrigger(s.forward), (o[d.group.id] = d.group)); 21407 } 21408 } 21409 return ( 21410 n.requestAnimationFrame(function () { 21411 for (var t in o) o[t].flushTriggers(); 21412 }), 21413 this 21414 ); 21415 }), 21416 (e.findOrCreateByElement = function (t) { 21417 return e.findByElement(t) || new e(t); 21418 }), 21419 (e.refreshAll = function () { 21420 for (var t in o) o[t].refresh(); 21421 }), 21422 (e.findByElement = function (t) { 21423 return o[t.waypointContextKey]; 21424 }), 21425 (window.onload = function () { 21426 r && r(), e.refreshAll(); 21427 }), 21428 (n.requestAnimationFrame = function (e) { 21429 var i = 21430 window.requestAnimationFrame || 21431 window.mozRequestAnimationFrame || 21432 window.webkitRequestAnimationFrame || 21433 t; 21434 i.call(window, e); 21435 }), 21436 (n.Context = e); 21437 })(), 21438 (function () { 21439 "use strict"; 21440 function t(t, e) { 21441 return t.triggerPoint - e.triggerPoint; 21442 } 21443 function e(t, e) { 21444 return e.triggerPoint - t.triggerPoint; 21445 } 21446 function i(t) { 21447 (this.name = t.name), 21448 (this.axis = t.axis), 21449 (this.id = this.name + "-" + this.axis), 21450 (this.waypoints = []), 21451 this.clearTriggerQueues(), 21452 (o[this.axis][this.name] = this); 21453 } 21454 var o = { vertical: {}, horizontal: {} }, 21455 n = window.Waypoint; 21456 (i.prototype.add = function (t) { 21457 this.waypoints.push(t); 21458 }), 21459 (i.prototype.clearTriggerQueues = function () {
21460 this.triggerQueues = { up: [], down: [], left: [], right: [] }; 21461 }), 21462 (i.prototype.flushTriggers = function () { 21463 for (var i in this.triggerQueues) { 21464 var o = this.triggerQueues[i], 21465 n = "up" === i || "left" === i; 21466 o.sort(n ? e : t); 21467 for (var r = 0, s = o.length; s > r; r += 1) { 21468 var a = o[r]; 21469 (a.options.continuous || r === o.length - 1) && a.trigger([i]); 21470 } 21471 } 21472 this.clearTriggerQueues(); 21473 }), 21474 (i.prototype.next = function (e) { 21475 this.waypoints.sort(t); 21476 var i = n.Adapter.inArray(e, this.waypoints), 21477 o = i === this.waypoints.length - 1; 21478 return o ? null : this.waypoints[i + 1]; 21479 }), 21480 (i.prototype.previous = function (e) { 21481 this.waypoints.sort(t); 21482 var i = n.Adapter.inArray(e, this.waypoints); 21483 return i ? this.waypoints[i - 1] : null; 21484 }), 21485 (i.prototype.queueTrigger = function (t, e) { 21486 this.triggerQueues[e].push(t); 21487 }), 21488 (i.prototype.remove = function (t) { 21489 var e = n.Adapter.inArray(t, this.waypoints); 21490 e > -1 && this.waypoints.splice(e, 1); 21491 }), 21492 (i.prototype.first = function () { 21493 return this.waypoints[0]; 21494 }), 21495 (i.prototype.last = function () { 21496 return this.waypoints[this.waypoints.length - 1]; 21497 }), 21498 (i.findOrCreate = function (t) { 21499 return o[t.axis][t.name] || new i(t); 21500 }), 21501 (n.Group = i); 21502 })(), 21503 (function () { 21504 "use strict"; 21505 function t(t) { 21506 this.$element = e(t); 21507 } 21508 var e = window.jQuery, 21509 i = window.Waypoint; 21510 e.each( 21511 [ 21512 "innerHeight", 21513 "innerWidth", 21514 "off", 21515 "offset", 21516 "on", 21517 "outerHeight", 21518 "outerWidth", 21519 "scrollLeft", 21520 "scrollTop", 21521 ], 21522 function (e, i) { 21523 t.prototype[i] = function () { 21524 var t = Array.prototype.slice.call(arguments); 21525 return this.$element[i].apply(this.$element, t); 21526 }; 21527 }, 21528 ), 21529 e.each(["extend", "inArray", "isEmptyObject"], function (i, o) { 21530 t[o] = e[o]; 21531 }), 21532 i.adapters.push({ name: "jquery", Adapter: t }), 21533 (i.Adapter = t); 21534 })(), 21535 (function () { 21536 "use strict"; 21537 function t(t) { 21538 return function () { 21539 var i = [], 21540 o = arguments[0]; 21541 return ( 21542 t.isFunction(arguments[0]) && 21543 ((o = t.extend({}, arguments[1])), (o.handler = arguments[0])), 21544 this.each(function () { 21545 var n = t.extend({}, o, { element: this }); 21546 "string" == typeof n.context && 21547 (n.context = t(this).closest(n.context)[0]), 21548 i.push(new e(n)); 21549 }), 21550 i 21551 ); 21552 }; 21553 } 21554 var e = window.Waypoint; 21555 window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), 21556 window.Zepto && (window.Zepto.fn.waypoint = t(window.Zepto)); 21557 })(); 21558 21559/*! 21560Waypoints Inview Shortcut - 4.0.1 21561Copyright © 2011-2016 Caleb Troughton 21562Licensed under the MIT license. 21563https://github.com/imakewebthings/waypoints/blob/master/licenses.txt 21564*/ 21565!(function () { 21566 "use strict"; 21567 function t() {} 21568 function e(t) { 21569 (this.options = i.Adapter.extend({}, e.defaults, t)), 21570 (this.axis = this.options.horizontal ? "horizontal" : "vertical"), 21571 (this.waypoints = []), 21572 (this.element = this.options.element), 21573 this.createWaypoints(); 21574 } 21575 var i = window.Waypoint; 21576 (e.prototype.createWaypoints = function () { 21577 for ( 21578 var t = { 21579 vertical: [ 21580 { down: "enter", up: "exited", offset: "100%" }, 21581 { down: "entered", up: "exit", offset: "bottom-in-view" }, 21582 { down: "exit", up: "entered", offset: 0 }, 21583 { 21584 down: "exited", 21585 up: "enter", 21586 offset: function () { 21587 return -this.adapter.outerHeight(); 21588 }, 21589 }, 21590 ], 21591 horizontal: [ 21592 { right: "enter", left: "exited", offset: "100%" }, 21593 { right: "entered", left: "exit", offset: "right-in-view" }, 21594 { right: "exit", left: "entered", offset: 0 }, 21595 { 21596 right: "exited", 21597 left: "enter", 21598 offset: function () { 21599 return -this.adapter.outerWidth(); 21600 }, 21601 }, 21602 ], 21603 }, 21604 e = 0, 21605 i = t[this.axis].length; 21606 i > e; 21607 e++ 21608 ) { 21609 var n = t[this.axis][e]; 21610 this.createWaypoint(n); 21611 } 21612 }), 21613 (e.prototype.createWaypoint = function (t) { 21614 var e = this; 21615 this.waypoints.push( 21616 new i({ 21617 context: this.options.context, 21618 element: this.options.element, 21619 enabled: this.options.enabled, 21620 handler: (function (t) { 21621 return function (i) { 21622 e.options[t[i]].call(e, i); 21623 }; 21624 })(t), 21625 offset: t.offset, 21626 horizontal: this.options.horizontal, 21627 }), 21628 ); 21629 }), 21630 (e.prototype.destroy = function () { 21631 for (var t = 0, e = this.waypoints.length; e > t; t++) 21632 this.waypoints[t].destroy(); 21633 this.waypoints = []; 21634 }), 21635 (e.prototype.disable = function () { 21636 for (var t = 0, e = this.waypoints.length; e > t; t++) 21637 this.waypoints[t].disable(); 21638 }), 21639 (e.prototype.enable = function () { 21640 for (var t = 0, e = this.waypoints.length; e > t; t++) 21641 this.waypoints[t].enable(); 21642 }), 21643 (e.defaults = { 21644 context: window, 21645 enabled: !0, 21646 enter: t, 21647 entered: t, 21648 exit: t, 21649 exited: t, 21650 }), 21651 (i.Inview = e); 21652})(); 21653 21654// @codekit-prepend quiet "vendor/jquery-ui.min.js" 21655// @codekit-prepend quiet "vendor/flickity.pkgd.min.js" 21656// @codekit-prepend quiet "vendor/modernizr.js" 21657// @codekit-prepend quiet "vendor/matter.min.js" 21658// @codekit-prepend quiet "vendor/jquery.lazyload.min.js" 21659// @codekit-prepend quiet "vendor/jquery.waypoints.min.js" 21660// @codekit-prepend quiet "vendor/inview.min.js" 21661 21662(function (init) { 21663 init(window.jQuery, window, document); 21664})(function ($, window, document) { 21665 $(function () { 21666 // DOM is ready 21667 21668 /** 21669 * 21670 * CACHING DOM 21671 * 21672 */ 21673 21674 var $body = $("body"), 21675 assetsLocation = $(".assets-folder-location").text(), 21676 mobileWidth = 667; 21677 21678 /** 21679 * 21680 * MY SCRIPTS 21681 * 21682 */ 21683 21684 // Adds _blank to external links 21685 $("a").each(function () { 21686 if (this.host !== window.location.host) { 21687 $(this).attr("target", "_blank"); 21688 } 21689 }); 21690 21691 $("img.lazy").lazyload({ 21692 threshold: 400, 21693 load: function (elements_left, settings) { 21694 $(this).addClass("is-loaded"); 21695 }, 21696 }); 21697 21698 function addAnimatedLogo1() { 21699 var canvasWidth = 1500, // 1600 21700 canvasHeight = 1000; 21701 21702 // module aliases 21703 var Engine = Matter.Engine, 21704 Render = Matter.Render, 21705 World = Matter.World, 21706 Bodies = Matter.Bodies; 21707 21708 // create an engine 21709 var engine = Engine.create(); 21710 21711 // create a renderer 21712 var render = Render.create({ 21713 element: document.getElementById("big-logo"),
21714 engine: engine, 21715 options: { 21716 wireframes: false, 21717 background: "transparent", 21718 width: canvasWidth, 21719 height: canvasHeight, 21720 }, 21721 }); 21722 21723 engine.world.gravity.y = 2; 21724 21725 var squareSize = 200, // 80 21726 squareGutter = squareSize / 4, // 20 21727 circleRadius = squareSize * 0.59375, 21728 boundOptions = { 21729 isStatic: true, 21730 render: { 21731 fillStyle: "transparent", 21732 strokeStyle: "transparent", 21733 lineWidth: 0, 21734 }, 21735 }; 21736 21737 var spriteScale = 0.53; 21738 21739 var circleRenderStyleArray = []; 21740 for (var i = 0; i < 8; i++) { 21741 circleRenderStyleArray.push({ 21742 render: { 21743 fillStyle: "black", 21744 strokeStyle: "transparent", 21745 lineWidth: 0, 21746 sprite: { 21747 texture: assetsLocation + "logo/" + i + ".png", 21748 xScale: spriteScale, 21749 yScale: spriteScale, 21750 }, 21751 }, 21752 }); 21753 } 21754 21755 var squareRenderStyleArray = []; 21756 for (var i = 7; i < 15; i++) { 21757 squareRenderStyleArray.push({ 21758 render: { 21759 fillStyle: "black", 21760 strokeStyle: "transparent", 21761 lineWidth: 0, 21762 sprite: { 21763 texture: assetsLocation + "logo/" + i + ".png", 21764 xScale: spriteScale, 21765 yScale: spriteScale, 21766 }, 21767 }, 21768 }); 21769 } 21770 21771 var line1X = canvasWidth / 2 - circleRadius * 2, 21772 line2X = line1X - circleRadius, 21773 line3X = line2X - squareGutter / 2.5, 21774 line4X = line3X + squareSize / 2 + squareGutter / 2; 21775 21776 var line1Y = circleRadius * 1, // circleRadius 3 21777 line2Y = line1Y + circleRadius * 1.7; 21778 line3Y = line1Y + circleRadius * 2 + squareSize * 0.94 + 0; 21779 line4Y = line1Y + circleRadius * 4 + squareSize * 0.73; 21780 21781 // Bodies.rectangle(x, y, width, height, [options]) 21782 World.add(engine.world, [ 21783 Bodies.circle( 21784 line1X + circleRadius * 0, 21785 line1Y, 21786 circleRadius, 21787 circleRenderStyleArray[1], 21788 ), // M 21789 Bodies.circle( 21790 line1X + circleRadius * 2, 21791 line1Y, 21792 circleRadius, 21793 circleRenderStyleArray[2], 21794 ), // U 21795 Bodies.circle( 21796 line1X + circleRadius * 4, 21797 line1Y, 21798 circleRadius, 21799 circleRenderStyleArray[3], 21800 ), // S 21801 21802 Bodies.circle( 21803 line2X + circleRadius * 0, 21804 line2Y, 21805 circleRadius, 21806 circleRenderStyleArray[4], 21807 ), // I 21808 Bodies.circle( 21809 line2X + circleRadius * 2, 21810 line2Y, 21811 circleRadius, 21812 circleRenderStyleArray[5], 21813 ), // Q 21814 Bodies.circle( 21815 line2X + circleRadius * 4, 21816 line2Y, 21817 circleRadius, 21818 circleRenderStyleArray[6], 21819 ), // U 21820 Bodies.circle( 21821 line2X + circleRadius * 6, 21822 line2Y, 21823 circleRadius, 21824 circleRenderStyleArray[7], 21825 ), // E 21826 21827 Bodies.rectangle( 21828 line3X + squareSize * 0 + squareGutter * 0, 21829 line3Y, 21830 squareSize, 21831 squareSize, 21832 squareRenderStyleArray[1], 21833 ), // J 21834 Bodies.rectangle( 21835 line3X + squareSize * 1 + squareGutter * 1, 21836 line3Y, 21837 squareSize, 21838 squareSize, 21839 squareRenderStyleArray[2], 21840 ), // O 21841 Bodies.rectangle( 21842 line3X + squareSize * 2 + squareGutter * 2, 21843 line3Y, 21844 squareSize, 21845 squareSize, 21846 squareRenderStyleArray[3], 21847 ), // U 21848 Bodies.rectangle( 21849 line3X + squareSize * 3 + squareGutter * 3, 21850 line3Y, 21851 squareSize, 21852 squareSize, 21853 squareRenderStyleArray[4], 21854 ), // R 21855 21856 Bodies.rectangle( 21857 line4X + squareSize * 0 + squareGutter * 0, 21858 line4Y, 21859 squareSize, 21860 squareSize, 21861 squareRenderStyleArray[5], 21862 ), // N 21863 Bodies.rectangle( 21864 line4X + squareSize * 1 + squareGutter * 1, 21865 line4Y, 21866 squareSize, 21867 squareSize, 21868 squareRenderStyleArray[6], 21869 ), // A 21870 Bodies.rectangle( 21871 line4X + squareSize * 2 + squareGutter * 2, 21872 line4Y, 21873 squareSize, 21874 squareSize, 21875 squareRenderStyleArray[7], 21876 ), // L 21877 21878 Bodies.rectangle(15, canvasHeight / 2, 1, canvasHeight, boundOptions), // left Bound 21879 Bodies.rectangle( 21880 canvasWidth - 15, 21881 canvasHeight / 2, 21882 1, 21883 canvasHeight, 21884 boundOptions, 21885 ), // right Bound 21886 Bodies.rectangle( 21887 canvasWidth / 2, 21888 canvasHeight + 6, 21889 canvasWidth, 21890 20, 21891 boundOptions, 21892 ), // bottom Bound 21893 ]); 21894 21895 // run the engine 21896 Engine.run(engine); 21897 21898 // run the renderer 21899 Render.run(render); 21900 } 21901 21902 function addAnimatedLogo2() { 21903 var canvasWidth = 1500, // 1600 21904 canvasHeight = 1000; 21905 21906 // module aliases 21907 var Engine = Matter.Engine, 21908 Render = Matter.Render, 21909 World = Matter.World, 21910 Bodies = Matter.Bodies; 21911 21912 // create an engine 21913 var engine = Engine.create(); 21914 21915 // create a renderer 21916 var render = Render.create({ 21917 element: document.getElementById("big-logo"),
21918 engine: engine, 21919 options: { 21920 wireframes: false, 21921 background: "transparent", 21922 width: canvasWidth, 21923 height: canvasHeight, 21924 }, 21925 }); 21926 21927 // engine.world.gravity.y = 0; 21928 21929 var squareSize = 200, // 80 21930 squareGutter = squareSize / 4, // 20 21931 circleRadius = squareSize * 0.59375, 21932 boundOptions = { 21933 isStatic: true, 21934 render: { 21935 fillStyle: "transparent", 21936 strokeStyle: "transparent", 21937 lineWidth: 0, 21938 }, 21939 }; 21940 21941 var spriteScale = 0.53; 21942 21943 var circleRenderStyleArray = []; 21944 for (var i = 0; i < 8; i++) { 21945 circleRenderStyleArray.push({ 21946 render: { 21947 fillStyle: "black", 21948 strokeStyle: "transparent", 21949 lineWidth: 0, 21950 sprite: { 21951 texture: assetsLocation + "logo/" + i + ".png", 21952 xScale: spriteScale, 21953 yScale: spriteScale, 21954 }, 21955 }, 21956 }); 21957 } 21958 21959 var square_J = { 21960 x: 119 + squareSize / 2, 21961 y: canvasHeight - squareSize / 2 - 200, 21962 render: { 21963 render: { 21964 fillStyle: "black", 21965 strokeStyle: "transparent", 21966 lineWidth: 0, 21967 sprite: { 21968 texture: assetsLocation + "logo/8.png", 21969 xScale: spriteScale, 21970 yScale: spriteScale, 21971 }, 21972 }, 21973 angle: -90 * (Math.PI / 180), 21974 }, 21975 }, 21976 square_O = { 21977 x: square_J["x"] + squareSize / 2 - 2, 21978 y: square_J["y"] - squareSize * 1.23, 21979 render: { 21980 render: { 21981 fillStyle: "black", 21982 strokeStyle: "transparent", 21983 lineWidth: 0, 21984 sprite: { 21985 texture: assetsLocation + "logo/9.png", 21986 xScale: spriteScale, 21987 yScale: spriteScale, 21988 }, 21989 }, 21990 angle: -46.12 * (Math.PI / 180), 21991 }, 21992 }, 21993 square_U = { 21994 x: square_O["x"] + squareSize * 0.97, 21995 y: square_O["y"] - squareSize * 0.67, 21996 render: { 21997 render: { 21998 fillStyle: "black", 21999 strokeStyle: "transparent", 22000 lineWidth: 0, 22001 sprite: { 22002 texture: assetsLocation + "logo/10.png", 22003 xScale: spriteScale, 22004 yScale: spriteScale, 22005 }, 22006 }, 22007 angle: -23 * (Math.PI / 180), 22008 }, 22009 }, 22010 square_R = { 22011 x: square_U["x"] + squareSize * 1.15, 22012 y: square_U["y"] - squareSize * 0.235, 22013 render: { 22014 render: { 22015 fillStyle: "black", 22016 strokeStyle: "transparent", 22017 lineWidth: 0, 22018 sprite: { 22019 texture: assetsLocation + "logo/11.png", 22020 xScale: spriteScale, 22021 yScale: spriteScale, 22022 }, 22023 }, 22024 angle: 0 * (Math.PI / 180), 22025 }, 22026 }, 22027 square_N = { 22028 x: square_R["x"] + squareSize * 1.15, 22029 y: square_R["y"] + squareSize * 0.235, 22030 render: { 22031 render: { 22032 fillStyle: "black", 22033 strokeStyle: "transparent", 22034 lineWidth: 0, 22035 sprite: { 22036 texture: assetsLocation + "logo/12.png", 22037 xScale: spriteScale, 22038 yScale: spriteScale, 22039 }, 22040 }, 22041 angle: 23 * (Math.PI / 180), 22042 }, 22043 }, 22044 square_A = { 22045 x: square_N["x"] + squareSize * 0.97, 22046 y: square_N["y"] + squareSize * 0.67, 22047 render: { 22048 render: { 22049 fillStyle: "black", 22050 strokeStyle: "transparent", 22051 lineWidth: 0, 22052 sprite: { 22053 texture: assetsLocation + "logo/13.png", 22054 xScale: spriteScale, 22055 yScale: spriteScale, 22056 }, 22057 }, 22058 angle: 46.12 * (Math.PI / 180), 22059 }, 22060 }, 22061 square_L = { 22062 x: square_A["x"] + squareSize / 2 - 2, 22063 y: square_J["y"], 22064 render: { 22065 render: { 22066 fillStyle: "black", 22067 strokeStyle: "transparent", 22068 lineWidth: 0, 22069 sprite: { 22070 texture: assetsLocation + "logo/14.png", 22071 xScale: spriteScale, 22072 yScale: spriteScale, 22073 }, 22074 }, 22075 angle: 90 * (Math.PI / 180), 22076 }, 22077 }; 22078 var circle_I = { 22079 x: canvasWidth / 2 - circleRadius * 0.08, 22080 y: canvasHeight - squareSize * 4.57 - 200, 22081 }, 22082 circle_S = { 22083 x: circle_I["x"] - circleRadius * 1.33, 22084 y: circle_I["y"] + circleRadius * 1.53, 22085 }, 22086 circle_U_1 = { 22087 x: circle_S["x"] - circleRadius * 1.96, 22088 y: circle_S["y"] - circleRadius * 0.5, 22089 }, 22090 circle_M = { 22091 x: circle_U_1["x"] - circleRadius * 0.97, 22092 y: circle_U_1["y"] + circleRadius * 1.78, 22093 }, 22094 circle_Q = { 22095 x: circle_I["x"] + circleRadius * 1.33, 22096 y: circle_I["y"] + circleRadius * 1.53, 22097 }, 22098 circle_U_2 = { 22099 x: circle_Q["x"] + circleRadius * 1.96, 22100 y: circle_Q["y"] - circleRadius * 0.5, 22101 }, 22102 circle_E = { 22103 x: circle_U_2["x"] + circleRadius * 0.97, 22104 y: circle_U_2["y"] + circleRadius * 1.78, 22105 }; 22106 // Bodies.rectangle(x, y, width, height, [options]) 22107 World.add(engine.world, [ 22108 Bodies.circle( 22109 circle_M["x"], 22110 circle_M["y"], 22111 circleRadius, 22112 circleRenderStyleArray[1], 22113 ), // M 22114 Bodies.circle( 22115 circle_U_1["x"], 22116 circle_U_1["y"], 22117 circleRadius, 22118 circleRenderStyleArray[2],
22119 ), // U 22120 Bodies.circle( 22121 circle_S["x"], 22122 circle_S["y"], 22123 circleRadius, 22124 circleRenderStyleArray[3], 22125 ), // S 22126 Bodies.circle( 22127 circle_I["x"], 22128 circle_I["y"], 22129 circleRadius, 22130 circleRenderStyleArray[4], 22131 ), // I 22132 Bodies.circle( 22133 circle_Q["x"], 22134 circle_Q["y"], 22135 circleRadius, 22136 circleRenderStyleArray[5], 22137 ), // Q 22138 Bodies.circle( 22139 circle_U_2["x"], 22140 circle_U_2["y"], 22141 circleRadius, 22142 circleRenderStyleArray[6], 22143 ), // U 22144 Bodies.circle( 22145 circle_E["x"], 22146 circle_E["y"], 22147 circleRadius, 22148 circleRenderStyleArray[7], 22149 ), // E 22150 22151 Bodies.rectangle( 22152 square_J["x"], 22153 square_J["y"], 22154 squareSize, 22155 squareSize, 22156 square_J["render"], 22157 ), // J 22158 Bodies.rectangle( 22159 square_O["x"], 22160 square_O["y"], 22161 squareSize, 22162 squareSize, 22163 square_O["render"], 22164 ), // O 22165 Bodies.rectangle( 22166 square_U["x"], 22167 square_U["y"], 22168 squareSize, 22169 squareSize, 22170 square_U["render"], 22171 ), // U 22172 Bodies.rectangle( 22173 square_R["x"], 22174 square_R["y"], 22175 squareSize, 22176 squareSize, 22177 square_R["render"], 22178 ), // R 22179 Bodies.rectangle( 22180 square_N["x"], 22181 square_N["y"], 22182 squareSize, 22183 squareSize, 22184 square_N["render"], 22185 ), // N 22186 Bodies.rectangle( 22187 square_A["x"], 22188 square_A["y"], 22189 squareSize, 22190 squareSize, 22191 square_A["render"], 22192 ), // A 22193 Bodies.rectangle( 22194 square_L["x"], 22195 square_L["y"], 22196 squareSize, 22197 squareSize, 22198 square_L["render"], 22199 ), // L 22200 22201 Bodies.rectangle(15, canvasHeight / 2, 1, canvasHeight, boundOptions), // left Bound 22202 Bodies.rectangle( 22203 canvasWidth - 15, 22204 canvasHeight / 2, 22205 1, 22206 canvasHeight, 22207 boundOptions, 22208 ), // right Bound 22209 Bodies.rectangle( 22210 canvasWidth / 2, 22211 canvasHeight + 6, 22212 canvasWidth, 22213 20, 22214 boundOptions, 22215 ), // bottom Bound 22216 ]); 22217 22218 // run the engine 22219 Engine.run(engine); 22220 22221 // run the renderer 22222 Render.run(render); 22223 } 22224 22225 if ($("#big-logo").length) { 22226 var randomLogoNumber = Math.floor(Math.random() * 2) + 1; 22227 22228 if (randomLogoNumber == 1) { 22229 addAnimatedLogo1(); 22230 } else if (randomLogoNumber == 2) { 22231 addAnimatedLogo2(); 22232 } 22233 } 22234 22235 /* Menu */ 22236 $(".menu-button").click(function () { 22237 $body.toggleClass("body-menu-is-open"); 22238 }); 22239 $(".menu-overlay-button").click(function () { 22240 $body.removeClass("body-menu-is-open"); 22241 }); 22242 $(document).keydown(function (e) { 22243 if (e.key == "Escape") { 22244 if ($body.hasClass("body-menu-is-open")) { 22245 $body.removeClass("body-menu-is-open"); 22246 } 22247 } 22248 }); 22249 22250 /* Home */ 22251 // $('.home-grid__item__image').hover( 22252 // function() { 22253 // $(this).parent().addClass('is-hover'); 22254 // }, 22255 // function() { 22256 // $(this).parent().removeClass('is-hover'); 22257 // } 22258 // ); 22259 22260 function setIframeRatio($iframe) { 22261 var iframeWidth = $iframe.attr("width"), 22262 iframeHeight = $iframe.attr("height"), 22263 iframeRatio = (iframeHeight / iframeWidth) * 100, 22264 $videoWrapper = $iframe.parent(); 22265 22266 if (iframeWidth !== undefined && iframeHeight !== undefined) { 22267 $videoWrapper 22268 .addClass("has-calculated-ratio") 22269 .css("padding-bottom", iframeRatio + "%"); 22270 } 22271 } 22272 22273 /* Article */ 22274 if ($(".article").length) { 22275 var $articleHeaderRight = $(".article__header__right"), 22276 $articlePlayers = $(".article__covers__item__player"); 22277 22278 function emptyPlayer() { 22279 $articleHeaderRight.removeClass("has-player-open"); 22280 $articlePlayers.html(""); 22281 } 22282 22283 if (!$body.hasClass("body-paywall-is-on")) { 22284 if ($(".article__records").hasClass("has-multiple-records")) { 22285 $(".article__records__item").click(function () { 22286 var $this = $(this), 22287 $currentActiveRecordCover = $(".article__covers__item.is-active"); 22288 (clickedRecordSlug = $this.attr("data-record")), 22289 ($clickedRecordCover = $( 22290 ".article__covers__item--" + clickedRecordSlug, 22291 )); 22292 22293 // desactive others 22294 $(".article__records__item").removeClass("is-active"); 22295 $(".article__listen-buttons-record") 22296 .removeClass("is-active") 22297 .removeClass("is-open"); 22298 $(".article__listen-buttons__btn").removeClass("is-active"); 22299 $currentActiveRecordCover.appendTo(".article__covers"); // move current cover to back 22300 $(".article__covers__item").removeClass("is-active"); 22301 emptyPlayer(); 22302 22303 // activate clicked record 22304 $this.addClass("is-active"); 22305 $(".article__listen-buttons-record--" + clickedRecordSlug).addClass( 22306 "is-active", 22307 ); 22308 22309 $clickedRecordCover.prependTo(".article__covers"); // move new cover to front 22310 $clickedRecordCover.addClass("is-active"); 22311 22312 // lazyload cover image 22313 var $clickedRecordCoverImg = $clickedRecordCover.find("img"), 22314 clickedRecordDataOriginal = 22315 $clickedRecordCoverImg.attr("data-original"); 22316 if (!$clickedRecordCoverImg.hasClass("is-loaded")) { 22317 $clickedRecordCoverImg.attr("src", clickedRecordDataOriginal); 22318 } 22319 }); 22320 } 22321 } 22322 22323 $(".article__listen-buttons__btn--listen").click(function () { 22324 var $this = $(this); 22325 22326 if (!$this.hasClass("is-active")) { 22327 $this.addClass("is-active").parent().addClass("is-open"); 22328 } else { 22329 $this.removeClass("is-active").parent().removeClass("is-open"); 22330 22331 $(".article__listen-buttons__btn--platform").removeClass("is-active"); 22332 22333 emptyPlayer(); 22334 } 22335 }); 22336 22337 $(".article__listen-buttons__btn--platform").click(function () { 22338 var $this = $(this), 22339 relatedRecordSlug = $this.parent().attr("data-record"), 22340 $relatedPlayer = $( 22341 ".article__covers__item--" + relatedRecordSlug, 22342 ).find(".article__covers__item__player"); 22343 embedCode = $this.attr("data-embed-code"); 22344 22345 if (!$this.hasClass("is-external-link")) { 22346 if ($this.hasClass("is-active")) { 22347 // close 22348 22349 $this.removeClass("is-active"); 22350 $(".article__listen-buttons__btn--platform").removeClass( 22351 "is-active", 22352 ); 22353 22354 emptyPlayer(); 22355 } else { 22356 // open 22357 22358 if ($(window).width() < mobileWidth) { 22359 // is mobile 22360 22361 var urlScheme = $this.attr("data-url-scheme"); 22362 22363 if ( 22364 typeof urlScheme !== typeof undefined && 22365 urlScheme !== false 22366 ) { 22367 // has URL scheme 22368 22369 window.location.replace(urlScheme); 22370 } else { 22371 $(".article__listen-buttons__btn--platform").removeClass( 22372 "is-active", 22373 ); 22374 $this.addClass("is-active"); 22375 22376 if (!$articleHeaderRight.hasClass("has-player-open")) { 22377 $articleHeaderRight.addClass("has-player-open"); 22378 $relatedPlayer.html(embedCode); 22379 } else { 22380 $relatedPlayer.html(embedCode); 22381 } 22382 } 22383 } else { 22384 // is not mobile 22385 22386 $(".article__listen-buttons__btn--platform").removeClass( 22387 "is-active", 22388 ); 22389 $this.addClass("is-active"); 22390 22391 if (!$articleHeaderRight.hasClass("has-player-open")) { 22392 $articleHeaderRight.addClass("has-player-open"); 22393 $relatedPlayer.html(embedCode); 22394 } else { 22395 $relatedPlayer.html(embedCode); 22396 } 22397 } 22398 } 22399 } 22400 }); 22401 22402 $(".article__listen-buttons__btn--read-version").click(function () { 22403 var $this = $(this), 22404 $playerWrapper = $(".article__read-version"),
22405 $player = $playerWrapper.find("audio"), 22406 mp3URL = $player.attr("data-src"); 22407 22408 if ($playerWrapper.hasClass("is-open")) { 22409 $(".article__listen-buttons__btn--read-version").removeClass( 22410 "is-active", 22411 ); 22412 $playerWrapper.removeClass("is-open"); 22413 $player.trigger("pause"); 22414 } else { 22415 var playerSRC = $player.attr("src"); 22416 22417 if (typeof playerSRC !== typeof undefined && playerSRC !== false) { 22418 } else { 22419 $player.attr("src", mp3URL); 22420 } 22421 22422 $this.addClass("is-active"); 22423 $playerWrapper.addClass("is-open"); 22424 $player.trigger("play"); 22425 } 22426 }); 22427 22428 $("iframe").each(function () { 22429 setIframeRatio($(this)); 22430 }); 22431 22432 $(".article-note__button").click(function () { 22433 var $this = $(this), 22434 $note = $this.parent(), 22435 $noteContent = $note.find(".article-note__content"), 22436 dataNoteContent = $note.attr("data-note-content"), 22437 $caption = $note.find(".article-note__caption"), 22438 dataNoteCaption = $note.attr("data-note-caption"); 22439 22440 if ($note.hasClass("is-closed")) { 22441 $noteContent.html(dataNoteContent); 22442 22443 setIframeRatio($noteContent.find("iframe")); 22444 22445 if (dataNoteCaption != "") { 22446 $caption.html(dataNoteCaption); 22447 } 22448 22449 $note 22450 .removeClass("is-closed") 22451 .addClass("is-open") 22452 .addClass("is-init"); 22453 } else { 22454 $note.removeClass("is-open").addClass("is-closed"); 22455 $noteContent.html(""); 22456 $caption.html(""); 22457 } 22458 }); 22459 22460 $(".article-note.is-closed").each(function (index) { 22461 var number = index + 1; 22462 $(this).find(".article-note__button__num").text(number); 22463 }); 22464 22465 if ($(".must-log-in").length) { 22466 var seConnecterURL = $( 22467 ".header-account-menu__item.is-se-connecter a", 22468 ).attr("href"); 22469 22470 $(".must-log-in a").attr("href", seConnecterURL); 22471 } 22472 22473 // pastille 22474 var $pastilleFlottante = $(".article__pastille-flotante"); 22475 22476 $(".article__content").waypoint({ 22477 handler: function (direction) { 22478 if (direction == "down") { 22479 $pastilleFlottante.addClass("is-visible"); 22480 } else { 22481 $pastilleFlottante.removeClass("is-visible"); 22482 } 22483 }, 22484 }); 22485 22486 var inview = new Waypoint.Inview({ 22487 element: $(".article__footer__subscription")[0], 22488 enter: function (direction) { 22489 if (direction == "down") { 22490 $pastilleFlottante.removeClass("is-visible"); 22491 } 22492 }, 22493 exited: function (direction) { 22494 if (direction == "up") { 22495 $pastilleFlottante.addClass("is-visible"); 22496 } 22497 }, 22498 }); 22499 } 22500 22501 /* Archives */ 22502 if ($(".archives-wrapper").length) { 22503 $(".archives__list__item__title a").hover( 22504 function () { 22505 $(this).parent().parent().addClass("is-hovered"); 22506 }, 22507 function () { 22508 $(this).parent().parent().removeClass("is-hovered"); 22509 }, 22510 ); 22511 } 22512 22513 /* Recherche */ 22514 if ($(".page-template-recherche").length) { 22515 $(".taxonomy__header__add-tag-button").click(function () { 22516 $body.toggleClass("body-add-tag-is-open"); 22517 }); 22518 22519 if ($("#searchform").length) { 22520 $('#searchform input[type="text"]').focus(); 22521 } 22522 } 22523 22524 /* Ã propos */ 22525 if ($(".a-propos-wrapper").length) { 22526 $(".a-propos__faq__item__question").click(function () { 22527 $(this).parent().toggleClass("is-open"); 22528 }); 22529 } 22530 22531 /* Compte */ 22532 22533 /* 22534 Newsletter 22535 */ 22536 if ($(".mailjet_widget_front_container".length)) { 22537 $('.mailjet_widget_front_container input[type="email"]').attr( 22538 "placeholder", 22539 "Email", 22540 ); 22541 } 22542 22543 /* 22544 RCP 22545 */ 22546 22547 /* 22548 RCP: View Limit 22549 */ 22550 22551 var $paywallDetector = $(".paywall-is-active-detector"); 22552 22553 if ($paywallDetector.length) { 22554 $body.addClass("body-paywall-is-on"); 22555 } else { 22556 $body.addClass("body-paywall-is-off"); 22557 } 22558 22559 /* Abonnement modulable */ 22560 if ($(".abonnements-select").length) { 22561 var $abonnementTotal = $(".abonnements-total span"), 22562 $abonnementList = $(".abonnements-list"), 22563 $abonnementLink = $(".abonnements-link a"), 22564 abonnementURL = $abonnementLink.attr("data-base-url"); 22565 22566 $(".abonnements-select__checkbox").each(function () { 22567 var $this = $(this); 22568 22569 $this.change(function () { 22570 var selectedTitles = []; 22571 $(".abonnements-select__checkbox:checked").each(function () { 22572 selectedTitles.push($(this).attr("name")); 22573 }); 22574 22575 var matchingAbonnement = null; 22576 if (window._abonnement_data) { 22577 for (var i = 0; i < window._abonnement_data.length; i++) { 22578 var abonnement = window._abonnement_data[i]; 22579 22580 if (abonnement.titles.length === selectedTitles.length) { 22581 var titlesMatch = true; 22582 for (var j = 0; j < selectedTitles.length; j++) { 22583 if (abonnement.titles.indexOf(selectedTitles[j]) === -1) { 22584 titlesMatch = false;
22585 break; 22586 } 22587 } 22588 if (titlesMatch) { 22589 matchingAbonnement = abonnement; 22590 break; 22591 } 22592 } 22593 } 22594 } 22595 22596 if (matchingAbonnement) { 22597 $abonnementTotal.text(matchingAbonnement.price); 22598 $abonnementLink.attr("href", abonnementURL + matchingAbonnement.id); 22599 } 22600 22601 $abonnementList.text( 22602 selectedTitles.join("///") + 22603 (selectedTitles.length > 0 ? "///" : ""), 22604 ); 22605 }); 22606 }); 22607 22608 // Selects Musique Journal on page load 22609 // $('.abonnements-select__item.is-musique-journal input').prop( "checked", true ); 22610 } 22611 }); 22612});
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.