Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 76.05 KB | None | 0 0
  1. ! function() {
  2. "use strict";
  3.  
  4. function e(e, t) {
  5. if (e) {
  6. if (t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)) {
  7. var s = document.createElement("span");
  8. s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER), s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);
  9. var i = document.createElement("span");
  10. i.classList.add(t.CssClasses_.MDL_RIPPLE), s.appendChild(i), e.appendChild(s)
  11. }
  12. e.addEventListener("click", function(s) {
  13. s.preventDefault();
  14. var i = e.href.split("#")[1],
  15. n = t.element_.querySelector("#" + i);
  16. t.resetTabState_(), t.resetPanelState_(), e.classList.add(t.CssClasses_.ACTIVE_CLASS), n.classList.add(t.CssClasses_.ACTIVE_CLASS)
  17. })
  18. }
  19. }
  20.  
  21. function t(e, t, s, i) {
  22. function n() {
  23. var n = e.href.split("#")[1],
  24. a = i.content_.querySelector("#" + n);
  25. i.resetTabState_(t), i.resetPanelState_(s), e.classList.add(i.CssClasses_.IS_ACTIVE), a.classList.add(i.CssClasses_.IS_ACTIVE)
  26. }
  27. if (i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)) {
  28. var a = document.createElement("span");
  29. a.classList.add(i.CssClasses_.RIPPLE_CONTAINER), a.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);
  30. var l = document.createElement("span");
  31. l.classList.add(i.CssClasses_.RIPPLE), a.appendChild(l), e.appendChild(a)
  32. }
  33. e.addEventListener("click", function(t) {
  34. "#" === e.getAttribute("href").charAt(0) && (t.preventDefault(), n())
  35. }), e.show = n
  36. }
  37. var s = {
  38. upgradeDom: function(e, t) {},
  39. upgradeElement: function(e, t) {},
  40. upgradeElements: function(e) {},
  41. upgradeAllRegistered: function() {},
  42. registerUpgradedCallback: function(e, t) {},
  43. register: function(e) {},
  44. downgradeElements: function(e) {}
  45. };
  46. s = function() {
  47. function e(e, t) {
  48. for (var s = 0; s < h.length; s++)
  49. if (h[s].className === e) return "undefined" != typeof t && (h[s] = t), h[s];
  50. return !1
  51. }
  52.  
  53. function t(e) {
  54. var t = e.getAttribute("data-upgraded");
  55. return null === t ? [""] : t.split(",")
  56. }
  57.  
  58. function s(e, s) {
  59. var i = t(e);
  60. return i.indexOf(s) !== -1
  61. }
  62.  
  63. function i(t, s) {
  64. if ("undefined" == typeof t && "undefined" == typeof s)
  65. for (var a = 0; a < h.length; a++) i(h[a].className, h[a].cssClass);
  66. else {
  67. var l = t;
  68. if ("undefined" == typeof s) {
  69. var o = e(l);
  70. o && (s = o.cssClass)
  71. }
  72. for (var r = document.querySelectorAll("." + s), _ = 0; _ < r.length; _++) n(r[_], l)
  73. }
  74. }
  75.  
  76. function n(i, n) {
  77. if (!("object" == typeof i && i instanceof Element)) throw new Error("Invalid argument provided to upgrade MDL element.");
  78. var a = t(i),
  79. l = [];
  80. if (n) s(i, n) || l.push(e(n));
  81. else {
  82. var o = i.classList;
  83. h.forEach(function(e) {
  84. o.contains(e.cssClass) && l.indexOf(e) === -1 && !s(i, e.className) && l.push(e)
  85. })
  86. }
  87. for (var r, _ = 0, d = l.length; _ < d; _++) {
  88. if (r = l[_], !r) throw new Error("Unable to find a registered component for the given class.");
  89. a.push(r.className), i.setAttribute("data-upgraded", a.join(","));
  90. var C = new r.classConstructor(i);
  91. C[p] = r, c.push(C);
  92. for (var u = 0, E = r.callbacks.length; u < E; u++) r.callbacks[u](i);
  93. r.widget && (i[r.className] = C);
  94. var m;
  95. "CustomEvent" in window && "function" == typeof window.CustomEvent ? m = new CustomEvent("mdl-componentupgraded", {
  96. bubbles: !0,
  97. cancelable: !1
  98. }) : (m = document.createEvent("Events"), m.initEvent("mdl-componentupgraded", !0, !0)), i.dispatchEvent(m)
  99. }
  100. }
  101.  
  102. function a(e) {
  103. Array.isArray(e) || (e = e instanceof Element ? [e] : Array.prototype.slice.call(e));
  104. for (var t, s = 0, i = e.length; s < i; s++) t = e[s], t instanceof HTMLElement && (n(t), t.children.length > 0 && a(t.children))
  105. }
  106.  
  107. function l(t) {
  108. var s = "undefined" == typeof t.widget && "undefined" == typeof t.widget,
  109. i = !0;
  110. s || (i = t.widget || t.widget);
  111. var n = {
  112. classConstructor: t.constructor || t.constructor,
  113. className: t.classAsString || t.classAsString,
  114. cssClass: t.cssClass || t.cssClass,
  115. widget: i,
  116. callbacks: []
  117. };
  118. if (h.forEach(function(e) {
  119. if (e.cssClass === n.cssClass) throw new Error("The provided cssClass has already been registered: " + e.cssClass);
  120. if (e.className === n.className) throw new Error("The provided className has already been registered")
  121. }), t.constructor.prototype.hasOwnProperty(p)) throw new Error("MDL component classes must not have " + p + " defined as a property.");
  122. var a = e(t.classAsString, n);
  123. a || h.push(n)
  124. }
  125.  
  126. function o(t, s) {
  127. var i = e(t);
  128. i && i.callbacks.push(s)
  129. }
  130.  
  131. function r() {
  132. for (var e = 0; e < h.length; e++) i(h[e].className)
  133. }
  134.  
  135. function _(e) {
  136. if (e) {
  137. var t = c.indexOf(e);
  138. c.splice(t, 1);
  139. var s = e.element_.getAttribute("data-upgraded").split(","),
  140. i = s.indexOf(e[p].classAsString);
  141. s.splice(i, 1), e.element_.setAttribute("data-upgraded", s.join(","));
  142. var n;
  143. "CustomEvent" in window && "function" == typeof window.CustomEvent ? n = new CustomEvent("mdl-componentdowngraded", {
  144. bubbles: !0,
  145. cancelable: !1
  146. }) : (n = document.createEvent("Events"), n.initEvent("mdl-componentdowngraded", !0, !0)), e.element_.dispatchEvent(n)
  147. }
  148. }
  149.  
  150. function d(e) {
  151. var t = function(e) {
  152. c.filter(function(t) {
  153. return t.element_ === e
  154. }).forEach(_)
  155. };
  156. if (e instanceof Array || e instanceof NodeList)
  157. for (var s = 0; s < e.length; s++) t(e[s]);
  158. else {
  159. if (!(e instanceof Node)) throw new Error("Invalid argument provided to downgrade MDL nodes.");
  160. t(e)
  161. }
  162. }
  163. var h = [],
  164. c = [],
  165. p = "mdlComponentConfigInternal_";
  166. return {
  167. upgradeDom: i,
  168. upgradeElement: n,
  169. upgradeElements: a,
  170. upgradeAllRegistered: r,
  171. registerUpgradedCallback: o,
  172. register: l,
  173. downgradeElements: d
  174. }
  175. }(), s.ComponentConfigPublic, s.ComponentConfig, s.Component, s.upgradeDom = s.upgradeDom, s.upgradeElement = s.upgradeElement, s.upgradeElements = s.upgradeElements, s.upgradeAllRegistered = s.upgradeAllRegistered, s.registerUpgradedCallback = s.registerUpgradedCallback, s.register = s.register, s.downgradeElements = s.downgradeElements, window.componentHandler = s, window.componentHandler = s, window.addEventListener("load", function() {
  176. "classList" in document.createElement("div") && "querySelector" in document && "addEventListener" in window && Array.prototype.forEach ? (document.documentElement.classList.add("mdl-js"), s.upgradeAllRegistered()) : (s.upgradeElement = function() {}, s.register = function() {})
  177. }), Date.now || (Date.now = function() {
  178. return (new Date).getTime()
  179. }, Date.now = Date.now);
  180. for (var i = ["webkit", "moz"], n = 0; n < i.length && !window.requestAnimationFrame; ++n) {
  181. var a = i[n];
  182. window.requestAnimationFrame = window[a + "RequestAnimationFrame"], window.cancelAnimationFrame = window[a + "CancelAnimationFrame"] || window[a + "CancelRequestAnimationFrame"], window.requestAnimationFrame = window.requestAnimationFrame, window.cancelAnimationFrame = window.cancelAnimationFrame
  183. }
  184. if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {
  185. var l = 0;
  186. window.requestAnimationFrame = function(e) {
  187. var t = Date.now(),
  188. s = Math.max(l + 16, t);
  189. return setTimeout(function() {
  190. e(l = s)
  191. }, s - t)
  192. }, window.cancelAnimationFrame = clearTimeout, window.requestAnimationFrame = window.requestAnimationFrame, window.cancelAnimationFrame = window.cancelAnimationFrame
  193. }
  194. var o = function(e) {
  195. this.element_ = e, this.init()
  196. };
  197. window.MaterialButton = o, o.prototype.Constant_ = {}, o.prototype.CssClasses_ = {
  198. RIPPLE_EFFECT: "mdl-js-ripple-effect",
  199. RIPPLE_CONTAINER: "mdl-button__ripple-container",
  200. RIPPLE: "mdl-ripple"
  201. }, o.prototype.blurHandler_ = function(e) {
  202. e && this.element_.blur()
  203. }, o.prototype.disable = function() {
  204. this.element_.disabled = !0
  205. }, o.prototype.disable = o.prototype.disable, o.prototype.enable = function() {
  206. this.element_.disabled = !1
  207. }, o.prototype.enable = o.prototype.enable, o.prototype.init = function() {
  208. if (this.element_) {
  209. if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
  210. var e = document.createElement("span");
  211. e.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleElement_ = document.createElement("span"), this.rippleElement_.classList.add(this.CssClasses_.RIPPLE), e.appendChild(this.rippleElement_), this.boundRippleBlurHandler = this.blurHandler_.bind(this), this.rippleElement_.addEventListener("mouseup", this.boundRippleBlurHandler), this.element_.appendChild(e)
  212. }
  213. this.boundButtonBlurHandler = this.blurHandler_.bind(this), this.element_.addEventListener("mouseup", this.boundButtonBlurHandler), this.element_.addEventListener("mouseleave", this.boundButtonBlurHandler)
  214. }
  215. }, s.register({
  216. constructor: o,
  217. classAsString: "MaterialButton",
  218. cssClass: "mdl-js-button",
  219. widget: !0
  220. });
  221. var r = function(e) {
  222. this.element_ = e, this.init()
  223. };
  224. window.MaterialCheckbox = r, r.prototype.Constant_ = {
  225. TINY_TIMEOUT: .001
  226. }, r.prototype.CssClasses_ = {
  227. INPUT: "mdl-checkbox__input",
  228. BOX_OUTLINE: "mdl-checkbox__box-outline",
  229. FOCUS_HELPER: "mdl-checkbox__focus-helper",
  230. TICK_OUTLINE: "mdl-checkbox__tick-outline",
  231. RIPPLE_EFFECT: "mdl-js-ripple-effect",
  232. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  233. RIPPLE_CONTAINER: "mdl-checkbox__ripple-container",
  234. RIPPLE_CENTER: "mdl-ripple--center",
  235. RIPPLE: "mdl-ripple",
  236. IS_FOCUSED: "is-focused",
  237. IS_DISABLED: "is-disabled",
  238. IS_CHECKED: "is-checked",
  239. IS_UPGRADED: "is-upgraded"
  240. }, r.prototype.onChange_ = function(e) {
  241. this.updateClasses_()
  242. }, r.prototype.onFocus_ = function(e) {
  243. this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
  244. }, r.prototype.onBlur_ = function(e) {
  245. this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  246. }, r.prototype.onMouseUp_ = function(e) {
  247. this.blur_()
  248. }, r.prototype.updateClasses_ = function() {
  249. this.checkDisabled(), this.checkToggleState()
  250. }, r.prototype.blur_ = function() {
  251. window.setTimeout(function() {
  252. this.inputElement_.blur()
  253. }.bind(this), this.Constant_.TINY_TIMEOUT)
  254. }, r.prototype.checkToggleState = function() {
  255. this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
  256. }, r.prototype.checkToggleState = r.prototype.checkToggleState, r.prototype.checkDisabled = function() {
  257. this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
  258. }, r.prototype.checkDisabled = r.prototype.checkDisabled, r.prototype.disable = function() {
  259. this.inputElement_.disabled = !0, this.updateClasses_()
  260. }, r.prototype.disable = r.prototype.disable, r.prototype.enable = function() {
  261. this.inputElement_.disabled = !1, this.updateClasses_()
  262. }, r.prototype.enable = r.prototype.enable, r.prototype.check = function() {
  263. this.inputElement_.checked = !0, this.updateClasses_()
  264. }, r.prototype.check = r.prototype.check, r.prototype.uncheck = function() {
  265. this.inputElement_.checked = !1, this.updateClasses_()
  266. }, r.prototype.uncheck = r.prototype.uncheck, r.prototype.init = function() {
  267. if (this.element_) {
  268. this.inputElement_ = this.element_.querySelector("." + this.CssClasses_.INPUT);
  269. var e = document.createElement("span");
  270. e.classList.add(this.CssClasses_.BOX_OUTLINE);
  271. var t = document.createElement("span");
  272. t.classList.add(this.CssClasses_.FOCUS_HELPER);
  273. var s = document.createElement("span");
  274. if (s.classList.add(this.CssClasses_.TICK_OUTLINE), e.appendChild(s), this.element_.appendChild(t), this.element_.appendChild(e), this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
  275. this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement("span"), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.boundRippleMouseUp = this.onMouseUp_.bind(this), this.rippleContainerElement_.addEventListener("mouseup", this.boundRippleMouseUp);
  276. var i = document.createElement("span");
  277. i.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(i), this.element_.appendChild(this.rippleContainerElement_)
  278. }
  279. this.boundInputOnChange = this.onChange_.bind(this), this.boundInputOnFocus = this.onFocus_.bind(this), this.boundInputOnBlur = this.onBlur_.bind(this), this.boundElementMouseUp = this.onMouseUp_.bind(this), this.inputElement_.addEventListener("change", this.boundInputOnChange), this.inputElement_.addEventListener("focus", this.boundInputOnFocus), this.inputElement_.addEventListener("blur", this.boundInputOnBlur), this.element_.addEventListener("mouseup", this.boundElementMouseUp), this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
  280. }
  281. }, s.register({
  282. constructor: r,
  283. classAsString: "MaterialCheckbox",
  284. cssClass: "mdl-js-checkbox",
  285. widget: !0
  286. });
  287. var _ = function(e) {
  288. this.element_ = e, this.init()
  289. };
  290. window.MaterialIconToggle = _, _.prototype.Constant_ = {
  291. TINY_TIMEOUT: .001
  292. }, _.prototype.CssClasses_ = {
  293. INPUT: "mdl-icon-toggle__input",
  294. JS_RIPPLE_EFFECT: "mdl-js-ripple-effect",
  295. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  296. RIPPLE_CONTAINER: "mdl-icon-toggle__ripple-container",
  297. RIPPLE_CENTER: "mdl-ripple--center",
  298. RIPPLE: "mdl-ripple",
  299. IS_FOCUSED: "is-focused",
  300. IS_DISABLED: "is-disabled",
  301. IS_CHECKED: "is-checked"
  302. }, _.prototype.onChange_ = function(e) {
  303. this.updateClasses_()
  304. }, _.prototype.onFocus_ = function(e) {
  305. this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
  306. }, _.prototype.onBlur_ = function(e) {
  307. this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  308. }, _.prototype.onMouseUp_ = function(e) {
  309. this.blur_()
  310. }, _.prototype.updateClasses_ = function() {
  311. this.checkDisabled(), this.checkToggleState()
  312. }, _.prototype.blur_ = function() {
  313. window.setTimeout(function() {
  314. this.inputElement_.blur()
  315. }.bind(this), this.Constant_.TINY_TIMEOUT)
  316. }, _.prototype.checkToggleState = function() {
  317. this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
  318. }, _.prototype.checkToggleState = _.prototype.checkToggleState, _.prototype.checkDisabled = function() {
  319. this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
  320. }, _.prototype.checkDisabled = _.prototype.checkDisabled, _.prototype.disable = function() {
  321. this.inputElement_.disabled = !0, this.updateClasses_()
  322. }, _.prototype.disable = _.prototype.disable, _.prototype.enable = function() {
  323. this.inputElement_.disabled = !1, this.updateClasses_()
  324. }, _.prototype.enable = _.prototype.enable, _.prototype.check = function() {
  325. this.inputElement_.checked = !0, this.updateClasses_()
  326. }, _.prototype.check = _.prototype.check, _.prototype.uncheck = function() {
  327. this.inputElement_.checked = !1, this.updateClasses_()
  328. }, _.prototype.uncheck = _.prototype.uncheck, _.prototype.init = function() {
  329. if (this.element_) {
  330. if (this.inputElement_ = this.element_.querySelector("." + this.CssClasses_.INPUT), this.element_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)) {
  331. this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement("span"), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.JS_RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.boundRippleMouseUp = this.onMouseUp_.bind(this), this.rippleContainerElement_.addEventListener("mouseup", this.boundRippleMouseUp);
  332. var e = document.createElement("span");
  333. e.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(e), this.element_.appendChild(this.rippleContainerElement_)
  334. }
  335. this.boundInputOnChange = this.onChange_.bind(this), this.boundInputOnFocus = this.onFocus_.bind(this), this.boundInputOnBlur = this.onBlur_.bind(this), this.boundElementOnMouseUp = this.onMouseUp_.bind(this), this.inputElement_.addEventListener("change", this.boundInputOnChange), this.inputElement_.addEventListener("focus", this.boundInputOnFocus), this.inputElement_.addEventListener("blur", this.boundInputOnBlur), this.element_.addEventListener("mouseup", this.boundElementOnMouseUp), this.updateClasses_(), this.element_.classList.add("is-upgraded")
  336. }
  337. }, s.register({
  338. constructor: _,
  339. classAsString: "MaterialIconToggle",
  340. cssClass: "mdl-js-icon-toggle",
  341. widget: !0
  342. });
  343. var d = function(e) {
  344. this.element_ = e, this.init()
  345. };
  346. window.MaterialMenu = d, d.prototype.Constant_ = {
  347. TRANSITION_DURATION_SECONDS: .3,
  348. TRANSITION_DURATION_FRACTION: .8,
  349. CLOSE_TIMEOUT: 150
  350. }, d.prototype.Keycodes_ = {
  351. ENTER: 13,
  352. ESCAPE: 27,
  353. SPACE: 32,
  354. UP_ARROW: 38,
  355. DOWN_ARROW: 40
  356. }, d.prototype.CssClasses_ = {
  357. CONTAINER: "mdl-menu__container",
  358. OUTLINE: "mdl-menu__outline",
  359. ITEM: "mdl-menu__item",
  360. ITEM_RIPPLE_CONTAINER: "mdl-menu__item-ripple-container",
  361. RIPPLE_EFFECT: "mdl-js-ripple-effect",
  362. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  363. RIPPLE: "mdl-ripple",
  364. IS_UPGRADED: "is-upgraded",
  365. IS_VISIBLE: "is-visible",
  366. IS_ANIMATING: "is-animating",
  367. BOTTOM_LEFT: "mdl-menu--bottom-left",
  368. BOTTOM_RIGHT: "mdl-menu--bottom-right",
  369. TOP_LEFT: "mdl-menu--top-left",
  370. TOP_RIGHT: "mdl-menu--top-right",
  371. UNALIGNED: "mdl-menu--unaligned"
  372. }, d.prototype.init = function() {
  373. if (this.element_) {
  374. var e = document.createElement("div");
  375. e.classList.add(this.CssClasses_.CONTAINER), this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_), this.container_ = e;
  376. var t = document.createElement("div");
  377. t.classList.add(this.CssClasses_.OUTLINE), this.outline_ = t, e.insertBefore(t, this.element_);
  378. var s = this.element_.getAttribute("for") || this.element_.getAttribute("data-mdl-for"),
  379. i = null;
  380. s && (i = document.getElementById(s), i && (this.forElement_ = i, i.addEventListener("click", this.handleForClick_.bind(this)), i.addEventListener("keydown", this.handleForKeyboardEvent_.bind(this))));
  381. var n = this.element_.querySelectorAll("." + this.CssClasses_.ITEM);
  382. this.boundItemKeydown_ = this.handleItemKeyboardEvent_.bind(this), this.boundItemClick_ = this.handleItemClick_.bind(this);
  383. for (var a = 0; a < n.length; a++) n[a].addEventListener("click", this.boundItemClick_), n[a].tabIndex = "-1", n[a].addEventListener("keydown", this.boundItemKeydown_);
  384. if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT))
  385. for (this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), a = 0; a < n.length; a++) {
  386. var l = n[a],
  387. o = document.createElement("span");
  388. o.classList.add(this.CssClasses_.ITEM_RIPPLE_CONTAINER);
  389. var r = document.createElement("span");
  390. r.classList.add(this.CssClasses_.RIPPLE), o.appendChild(r), l.appendChild(o), l.classList.add(this.CssClasses_.RIPPLE_EFFECT)
  391. }
  392. this.element_.classList.contains(this.CssClasses_.BOTTOM_LEFT) && this.outline_.classList.add(this.CssClasses_.BOTTOM_LEFT), this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) && this.outline_.classList.add(this.CssClasses_.BOTTOM_RIGHT), this.element_.classList.contains(this.CssClasses_.TOP_LEFT) && this.outline_.classList.add(this.CssClasses_.TOP_LEFT), this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) && this.outline_.classList.add(this.CssClasses_.TOP_RIGHT), this.element_.classList.contains(this.CssClasses_.UNALIGNED) && this.outline_.classList.add(this.CssClasses_.UNALIGNED), e.classList.add(this.CssClasses_.IS_UPGRADED)
  393. }
  394. }, d.prototype.handleForClick_ = function(e) {
  395. if (this.element_ && this.forElement_) {
  396. var t = this.forElement_.getBoundingClientRect(),
  397. s = this.forElement_.parentElement.getBoundingClientRect();
  398. this.element_.classList.contains(this.CssClasses_.UNALIGNED) || (this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) ? (this.container_.style.right = s.right - t.right + "px", this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + "px") : this.element_.classList.contains(this.CssClasses_.TOP_LEFT) ? (this.container_.style.left = this.forElement_.offsetLeft + "px", this.container_.style.bottom = s.bottom - t.top + "px") : this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? (this.container_.style.right = s.right - t.right + "px", this.container_.style.bottom = s.bottom - t.top + "px") : (this.container_.style.left = this.forElement_.offsetLeft + "px", this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + "px"))
  399. }
  400. this.toggle(e)
  401. }, d.prototype.handleForKeyboardEvent_ = function(e) {
  402. if (this.element_ && this.container_ && this.forElement_) {
  403. var t = this.element_.querySelectorAll("." + this.CssClasses_.ITEM + ":not([disabled])");
  404. t && t.length > 0 && this.container_.classList.contains(this.CssClasses_.IS_VISIBLE) && (e.keyCode === this.Keycodes_.UP_ARROW ? (e.preventDefault(), t[t.length - 1].focus()) : e.keyCode === this.Keycodes_.DOWN_ARROW && (e.preventDefault(), t[0].focus()))
  405. }
  406. }, d.prototype.handleItemKeyboardEvent_ = function(e) {
  407. if (this.element_ && this.container_) {
  408. var t = this.element_.querySelectorAll("." + this.CssClasses_.ITEM + ":not([disabled])");
  409. if (t && t.length > 0 && this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)) {
  410. var s = Array.prototype.slice.call(t).indexOf(e.target);
  411. if (e.keyCode === this.Keycodes_.UP_ARROW) e.preventDefault(), s > 0 ? t[s - 1].focus() : t[t.length - 1].focus();
  412. else if (e.keyCode === this.Keycodes_.DOWN_ARROW) e.preventDefault(), t.length > s + 1 ? t[s + 1].focus() : t[0].focus();
  413. else if (e.keyCode === this.Keycodes_.SPACE || e.keyCode === this.Keycodes_.ENTER) {
  414. e.preventDefault();
  415. var i = new MouseEvent("mousedown");
  416. e.target.dispatchEvent(i), i = new MouseEvent("mouseup"), e.target.dispatchEvent(i), e.target.click()
  417. } else e.keyCode === this.Keycodes_.ESCAPE && (e.preventDefault(), this.hide())
  418. }
  419. }
  420. }, d.prototype.handleItemClick_ = function(e) {
  421. e.target.hasAttribute("disabled") ? e.stopPropagation() : (this.closing_ = !0, window.setTimeout(function(e) {
  422. this.hide(), this.closing_ = !1
  423. }.bind(this), this.Constant_.CLOSE_TIMEOUT))
  424. }, d.prototype.applyClip_ = function(e, t) {
  425. this.element_.classList.contains(this.CssClasses_.UNALIGNED) ? this.element_.style.clip = "" : this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT) ? this.element_.style.clip = "rect(0 " + t + "px 0 " + t + "px)" : this.element_.classList.contains(this.CssClasses_.TOP_LEFT) ? this.element_.style.clip = "rect(" + e + "px 0 " + e + "px 0)" : this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? this.element_.style.clip = "rect(" + e + "px " + t + "px " + e + "px " + t + "px)" : this.element_.style.clip = ""
  426. }, d.prototype.removeAnimationEndListener_ = function(e) {
  427. e.target.classList.remove(d.prototype.CssClasses_.IS_ANIMATING)
  428. }, d.prototype.addAnimationEndListener_ = function() {
  429. this.element_.addEventListener("transitionend", this.removeAnimationEndListener_), this.element_.addEventListener("webkitTransitionEnd", this.removeAnimationEndListener_)
  430. }, d.prototype.show = function(e) {
  431. if (this.element_ && this.container_ && this.outline_) {
  432. var t = this.element_.getBoundingClientRect().height,
  433. s = this.element_.getBoundingClientRect().width;
  434. this.container_.style.width = s + "px", this.container_.style.height = t + "px", this.outline_.style.width = s + "px", this.outline_.style.height = t + "px";
  435. for (var i = this.Constant_.TRANSITION_DURATION_SECONDS * this.Constant_.TRANSITION_DURATION_FRACTION, n = this.element_.querySelectorAll("." + this.CssClasses_.ITEM), a = 0; a < n.length; a++) {
  436. var l = null;
  437. l = this.element_.classList.contains(this.CssClasses_.TOP_LEFT) || this.element_.classList.contains(this.CssClasses_.TOP_RIGHT) ? (t - n[a].offsetTop - n[a].offsetHeight) / t * i + "s" : n[a].offsetTop / t * i + "s", n[a].style.transitionDelay = l
  438. }
  439. this.applyClip_(t, s), window.requestAnimationFrame(function() {
  440. this.element_.classList.add(this.CssClasses_.IS_ANIMATING), this.element_.style.clip = "rect(0 " + s + "px " + t + "px 0)", this.container_.classList.add(this.CssClasses_.IS_VISIBLE)
  441. }.bind(this)), this.addAnimationEndListener_();
  442. var o = function(t) {
  443. t === e || this.closing_ || t.target.parentNode === this.element_ || (document.removeEventListener("click", o), this.hide())
  444. }.bind(this);
  445. document.addEventListener("click", o)
  446. }
  447. }, d.prototype.show = d.prototype.show, d.prototype.hide = function() {
  448. if (this.element_ && this.container_ && this.outline_) {
  449. for (var e = this.element_.querySelectorAll("." + this.CssClasses_.ITEM), t = 0; t < e.length; t++) e[t].style.removeProperty("transition-delay");
  450. var s = this.element_.getBoundingClientRect(),
  451. i = s.height,
  452. n = s.width;
  453. this.element_.classList.add(this.CssClasses_.IS_ANIMATING), this.applyClip_(i, n), this.container_.classList.remove(this.CssClasses_.IS_VISIBLE), this.addAnimationEndListener_()
  454. }
  455. }, d.prototype.hide = d.prototype.hide, d.prototype.toggle = function(e) {
  456. this.container_.classList.contains(this.CssClasses_.IS_VISIBLE) ? this.hide() : this.show(e)
  457. }, d.prototype.toggle = d.prototype.toggle, s.register({
  458. constructor: d,
  459. classAsString: "MaterialMenu",
  460. cssClass: "mdl-js-menu",
  461. widget: !0
  462. });
  463. var h = function(e) {
  464. this.element_ = e, this.init()
  465. };
  466. window.MaterialProgress = h, h.prototype.Constant_ = {}, h.prototype.CssClasses_ = {
  467. INDETERMINATE_CLASS: "mdl-progress__indeterminate"
  468. }, h.prototype.setProgress = function(e) {
  469. this.element_.classList.contains(this.CssClasses_.INDETERMINATE_CLASS) || (this.progressbar_.style.width = e + "%")
  470. }, h.prototype.setProgress = h.prototype.setProgress, h.prototype.setBuffer = function(e) {
  471. this.bufferbar_.style.width = e + "%", this.auxbar_.style.width = 100 - e + "%"
  472. }, h.prototype.setBuffer = h.prototype.setBuffer, h.prototype.init = function() {
  473. if (this.element_) {
  474. var e = document.createElement("div");
  475. e.className = "progressbar bar bar1", this.element_.appendChild(e), this.progressbar_ = e, e = document.createElement("div"), e.className = "bufferbar bar bar2", this.element_.appendChild(e), this.bufferbar_ = e, e = document.createElement("div"), e.className = "auxbar bar bar3", this.element_.appendChild(e), this.auxbar_ = e, this.progressbar_.style.width = "0%", this.bufferbar_.style.width = "100%", this.auxbar_.style.width = "0%", this.element_.classList.add("is-upgraded")
  476. }
  477. }, s.register({
  478. constructor: h,
  479. classAsString: "MaterialProgress",
  480. cssClass: "mdl-js-progress",
  481. widget: !0
  482. });
  483. var c = function(e) {
  484. this.element_ = e, this.init()
  485. };
  486. window.MaterialRadio = c, c.prototype.Constant_ = {
  487. TINY_TIMEOUT: .001
  488. }, c.prototype.CssClasses_ = {
  489. IS_FOCUSED: "is-focused",
  490. IS_DISABLED: "is-disabled",
  491. IS_CHECKED: "is-checked",
  492. IS_UPGRADED: "is-upgraded",
  493. JS_RADIO: "mdl-js-radio",
  494. RADIO_BTN: "mdl-radio__button",
  495. RADIO_OUTER_CIRCLE: "mdl-radio__outer-circle",
  496. RADIO_INNER_CIRCLE: "mdl-radio__inner-circle",
  497. RIPPLE_EFFECT: "mdl-js-ripple-effect",
  498. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  499. RIPPLE_CONTAINER: "mdl-radio__ripple-container",
  500. RIPPLE_CENTER: "mdl-ripple--center",
  501. RIPPLE: "mdl-ripple"
  502. }, c.prototype.onChange_ = function(e) {
  503. for (var t = document.getElementsByClassName(this.CssClasses_.JS_RADIO), s = 0; s < t.length; s++) {
  504. var i = t[s].querySelector("." + this.CssClasses_.RADIO_BTN);
  505. i.getAttribute("name") === this.btnElement_.getAttribute("name") && t[s].MaterialRadio.updateClasses_()
  506. }
  507. }, c.prototype.onFocus_ = function(e) {
  508. this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
  509. }, c.prototype.onBlur_ = function(e) {
  510. this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  511. }, c.prototype.onMouseup_ = function(e) {
  512. this.blur_()
  513. }, c.prototype.updateClasses_ = function() {
  514. this.checkDisabled(), this.checkToggleState()
  515. }, c.prototype.blur_ = function() {
  516. window.setTimeout(function() {
  517. this.btnElement_.blur()
  518. }.bind(this), this.Constant_.TINY_TIMEOUT)
  519. }, c.prototype.checkDisabled = function() {
  520. this.btnElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
  521. }, c.prototype.checkDisabled = c.prototype.checkDisabled, c.prototype.checkToggleState = function() {
  522. this.btnElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
  523. }, c.prototype.checkToggleState = c.prototype.checkToggleState, c.prototype.disable = function() {
  524. this.btnElement_.disabled = !0, this.updateClasses_()
  525. }, c.prototype.disable = c.prototype.disable, c.prototype.enable = function() {
  526. this.btnElement_.disabled = !1, this.updateClasses_()
  527. }, c.prototype.enable = c.prototype.enable, c.prototype.check = function() {
  528. this.btnElement_.checked = !0, this.onChange_(null)
  529. }, c.prototype.check = c.prototype.check, c.prototype.uncheck = function() {
  530. this.btnElement_.checked = !1, this.onChange_(null)
  531. }, c.prototype.uncheck = c.prototype.uncheck, c.prototype.init = function() {
  532. if (this.element_) {
  533. this.btnElement_ = this.element_.querySelector("." + this.CssClasses_.RADIO_BTN), this.boundChangeHandler_ = this.onChange_.bind(this), this.boundFocusHandler_ = this.onChange_.bind(this), this.boundBlurHandler_ = this.onBlur_.bind(this), this.boundMouseUpHandler_ = this.onMouseup_.bind(this);
  534. var e = document.createElement("span");
  535. e.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);
  536. var t = document.createElement("span");
  537. t.classList.add(this.CssClasses_.RADIO_INNER_CIRCLE), this.element_.appendChild(e), this.element_.appendChild(t);
  538. var s;
  539. if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
  540. this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), s = document.createElement("span"), s.classList.add(this.CssClasses_.RIPPLE_CONTAINER), s.classList.add(this.CssClasses_.RIPPLE_EFFECT), s.classList.add(this.CssClasses_.RIPPLE_CENTER), s.addEventListener("mouseup", this.boundMouseUpHandler_);
  541. var i = document.createElement("span");
  542. i.classList.add(this.CssClasses_.RIPPLE), s.appendChild(i), this.element_.appendChild(s)
  543. }
  544. this.btnElement_.addEventListener("change", this.boundChangeHandler_), this.btnElement_.addEventListener("focus", this.boundFocusHandler_), this.btnElement_.addEventListener("blur", this.boundBlurHandler_), this.element_.addEventListener("mouseup", this.boundMouseUpHandler_), this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
  545. }
  546. }, s.register({
  547. constructor: c,
  548. classAsString: "MaterialRadio",
  549. cssClass: "mdl-js-radio",
  550. widget: !0
  551. });
  552. var p = function(e) {
  553. this.element_ = e, this.isIE_ = window.navigator.msPointerEnabled, this.init()
  554. };
  555. window.MaterialSlider = p, p.prototype.Constant_ = {}, p.prototype.CssClasses_ = {
  556. IE_CONTAINER: "mdl-slider__ie-container",
  557. SLIDER_CONTAINER: "mdl-slider__container",
  558. BACKGROUND_FLEX: "mdl-slider__background-flex",
  559. BACKGROUND_LOWER: "mdl-slider__background-lower",
  560. BACKGROUND_UPPER: "mdl-slider__background-upper",
  561. IS_LOWEST_VALUE: "is-lowest-value",
  562. IS_UPGRADED: "is-upgraded"
  563. }, p.prototype.onInput_ = function(e) {
  564. this.updateValueStyles_()
  565. }, p.prototype.onChange_ = function(e) {
  566. this.updateValueStyles_()
  567. }, p.prototype.onMouseUp_ = function(e) {
  568. e.target.blur()
  569. }, p.prototype.onContainerMouseDown_ = function(e) {
  570. if (e.target === this.element_.parentElement) {
  571. e.preventDefault();
  572. var t = new MouseEvent("mousedown", {
  573. target: e.target,
  574. buttons: e.buttons,
  575. clientX: e.clientX,
  576. clientY: this.element_.getBoundingClientRect().y
  577. });
  578. this.element_.dispatchEvent(t)
  579. }
  580. }, p.prototype.updateValueStyles_ = function() {
  581. var e = (this.element_.value - this.element_.min) / (this.element_.max - this.element_.min);
  582. 0 === e ? this.element_.classList.add(this.CssClasses_.IS_LOWEST_VALUE) : this.element_.classList.remove(this.CssClasses_.IS_LOWEST_VALUE), this.isIE_ || (this.backgroundLower_.style.flex = e, this.backgroundLower_.style.webkitFlex = e, this.backgroundUpper_.style.flex = 1 - e, this.backgroundUpper_.style.webkitFlex = 1 - e)
  583. }, p.prototype.disable = function() {
  584. this.element_.disabled = !0
  585. }, p.prototype.disable = p.prototype.disable, p.prototype.enable = function() {
  586. this.element_.disabled = !1
  587. }, p.prototype.enable = p.prototype.enable, p.prototype.change = function(e) {
  588. "undefined" != typeof e && (this.element_.value = e), this.updateValueStyles_()
  589. }, p.prototype.change = p.prototype.change, p.prototype.init = function() {
  590. if (this.element_) {
  591. if (this.isIE_) {
  592. var e = document.createElement("div");
  593. e.classList.add(this.CssClasses_.IE_CONTAINER), this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_)
  594. } else {
  595. var t = document.createElement("div");
  596. t.classList.add(this.CssClasses_.SLIDER_CONTAINER), this.element_.parentElement.insertBefore(t, this.element_), this.element_.parentElement.removeChild(this.element_), t.appendChild(this.element_);
  597. var s = document.createElement("div");
  598. s.classList.add(this.CssClasses_.BACKGROUND_FLEX), t.appendChild(s), this.backgroundLower_ = document.createElement("div"), this.backgroundLower_.classList.add(this.CssClasses_.BACKGROUND_LOWER), s.appendChild(this.backgroundLower_), this.backgroundUpper_ = document.createElement("div"), this.backgroundUpper_.classList.add(this.CssClasses_.BACKGROUND_UPPER), s.appendChild(this.backgroundUpper_)
  599. }
  600. this.boundInputHandler = this.onInput_.bind(this), this.boundChangeHandler = this.onChange_.bind(this), this.boundMouseUpHandler = this.onMouseUp_.bind(this), this.boundContainerMouseDownHandler = this.onContainerMouseDown_.bind(this), this.element_.addEventListener("input", this.boundInputHandler), this.element_.addEventListener("change", this.boundChangeHandler), this.element_.addEventListener("mouseup", this.boundMouseUpHandler), this.element_.parentElement.addEventListener("mousedown", this.boundContainerMouseDownHandler), this.updateValueStyles_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
  601. }
  602. }, s.register({
  603. constructor: p,
  604. classAsString: "MaterialSlider",
  605. cssClass: "mdl-js-slider",
  606. widget: !0
  607. });
  608. var C = function(e) {
  609. if (this.element_ = e, this.textElement_ = this.element_.querySelector("." + this.cssClasses_.MESSAGE), this.actionElement_ = this.element_.querySelector("." + this.cssClasses_.ACTION), !this.textElement_) throw new Error("There must be a message element for a snackbar.");
  610. if (!this.actionElement_) throw new Error("There must be an action element for a snackbar.");
  611. this.active = !1, this.actionHandler_ = void 0, this.message_ = void 0, this.actionText_ = void 0, this.queuedNotifications_ = [], this.setActionHidden_(!0)
  612. };
  613. window.MaterialSnackbar = C, C.prototype.Constant_ = {
  614. ANIMATION_LENGTH: 250
  615. }, C.prototype.cssClasses_ = {
  616. SNACKBAR: "mdl-snackbar",
  617. MESSAGE: "mdl-snackbar__text",
  618. ACTION: "mdl-snackbar__action",
  619. ACTIVE: "mdl-snackbar--active"
  620. }, C.prototype.displaySnackbar_ = function() {
  621. this.element_.setAttribute("aria-hidden", "true"), this.actionHandler_ && (this.actionElement_.textContent = this.actionText_,
  622. this.actionElement_.addEventListener("click", this.actionHandler_), this.setActionHidden_(!1)), this.textElement_.textContent = this.message_, this.element_.classList.add(this.cssClasses_.ACTIVE), this.element_.setAttribute("aria-hidden", "false"), setTimeout(this.cleanup_.bind(this), this.timeout_)
  623. }, C.prototype.showSnackbar = function(e) {
  624. if (void 0 === e) throw new Error("Please provide a data object with at least a message to display.");
  625. if (void 0 === e.message) throw new Error("Please provide a message to be displayed.");
  626. if (e.actionHandler && !e.actionText) throw new Error("Please provide action text with the handler.");
  627. this.active ? this.queuedNotifications_.push(e) : (this.active = !0, this.message_ = e.message, e.timeout ? this.timeout_ = e.timeout : this.timeout_ = 2750, e.actionHandler && (this.actionHandler_ = e.actionHandler), e.actionText && (this.actionText_ = e.actionText), this.displaySnackbar_())
  628. }, C.prototype.showSnackbar = C.prototype.showSnackbar, C.prototype.checkQueue_ = function() {
  629. this.queuedNotifications_.length > 0 && this.showSnackbar(this.queuedNotifications_.shift())
  630. }, C.prototype.cleanup_ = function() {
  631. this.element_.classList.remove(this.cssClasses_.ACTIVE), setTimeout(function() {
  632. this.element_.setAttribute("aria-hidden", "true"), this.textElement_.textContent = "", Boolean(this.actionElement_.getAttribute("aria-hidden")) || (this.setActionHidden_(!0), this.actionElement_.textContent = "", this.actionElement_.removeEventListener("click", this.actionHandler_)), this.actionHandler_ = void 0, this.message_ = void 0, this.actionText_ = void 0, this.active = !1, this.checkQueue_()
  633. }.bind(this), this.Constant_.ANIMATION_LENGTH)
  634. }, C.prototype.setActionHidden_ = function(e) {
  635. e ? this.actionElement_.setAttribute("aria-hidden", "true") : this.actionElement_.removeAttribute("aria-hidden")
  636. }, s.register({
  637. constructor: C,
  638. classAsString: "MaterialSnackbar",
  639. cssClass: "mdl-js-snackbar",
  640. widget: !0
  641. });
  642. var u = function(e) {
  643. this.element_ = e, this.init()
  644. };
  645. window.MaterialSpinner = u, u.prototype.Constant_ = {
  646. MDL_SPINNER_LAYER_COUNT: 4
  647. }, u.prototype.CssClasses_ = {
  648. MDL_SPINNER_LAYER: "mdl-spinner__layer",
  649. MDL_SPINNER_CIRCLE_CLIPPER: "mdl-spinner__circle-clipper",
  650. MDL_SPINNER_CIRCLE: "mdl-spinner__circle",
  651. MDL_SPINNER_GAP_PATCH: "mdl-spinner__gap-patch",
  652. MDL_SPINNER_LEFT: "mdl-spinner__left",
  653. MDL_SPINNER_RIGHT: "mdl-spinner__right"
  654. }, u.prototype.createLayer = function(e) {
  655. var t = document.createElement("div");
  656. t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER), t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER + "-" + e);
  657. var s = document.createElement("div");
  658. s.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER), s.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);
  659. var i = document.createElement("div");
  660. i.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);
  661. var n = document.createElement("div");
  662. n.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER), n.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);
  663. for (var a = [s, i, n], l = 0; l < a.length; l++) {
  664. var o = document.createElement("div");
  665. o.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE), a[l].appendChild(o)
  666. }
  667. t.appendChild(s), t.appendChild(i), t.appendChild(n), this.element_.appendChild(t)
  668. }, u.prototype.createLayer = u.prototype.createLayer, u.prototype.stop = function() {
  669. this.element_.classList.remove("is-active")
  670. }, u.prototype.stop = u.prototype.stop, u.prototype.start = function() {
  671. this.element_.classList.add("is-active")
  672. }, u.prototype.start = u.prototype.start, u.prototype.init = function() {
  673. if (this.element_) {
  674. for (var e = 1; e <= this.Constant_.MDL_SPINNER_LAYER_COUNT; e++) this.createLayer(e);
  675. this.element_.classList.add("is-upgraded")
  676. }
  677. }, s.register({
  678. constructor: u,
  679. classAsString: "MaterialSpinner",
  680. cssClass: "mdl-js-spinner",
  681. widget: !0
  682. });
  683. var E = function(e) {
  684. this.element_ = e, this.init()
  685. };
  686. window.MaterialSwitch = E, E.prototype.Constant_ = {
  687. TINY_TIMEOUT: .001
  688. }, E.prototype.CssClasses_ = {
  689. INPUT: "mdl-switch__input",
  690. TRACK: "mdl-switch__track",
  691. THUMB: "mdl-switch__thumb",
  692. FOCUS_HELPER: "mdl-switch__focus-helper",
  693. RIPPLE_EFFECT: "mdl-js-ripple-effect",
  694. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  695. RIPPLE_CONTAINER: "mdl-switch__ripple-container",
  696. RIPPLE_CENTER: "mdl-ripple--center",
  697. RIPPLE: "mdl-ripple",
  698. IS_FOCUSED: "is-focused",
  699. IS_DISABLED: "is-disabled",
  700. IS_CHECKED: "is-checked"
  701. }, E.prototype.onChange_ = function(e) {
  702. this.updateClasses_()
  703. }, E.prototype.onFocus_ = function(e) {
  704. this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
  705. }, E.prototype.onBlur_ = function(e) {
  706. this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  707. }, E.prototype.onMouseUp_ = function(e) {
  708. this.blur_()
  709. }, E.prototype.updateClasses_ = function() {
  710. this.checkDisabled(), this.checkToggleState()
  711. }, E.prototype.blur_ = function() {
  712. window.setTimeout(function() {
  713. this.inputElement_.blur()
  714. }.bind(this), this.Constant_.TINY_TIMEOUT)
  715. }, E.prototype.checkDisabled = function() {
  716. this.inputElement_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
  717. }, E.prototype.checkDisabled = E.prototype.checkDisabled, E.prototype.checkToggleState = function() {
  718. this.inputElement_.checked ? this.element_.classList.add(this.CssClasses_.IS_CHECKED) : this.element_.classList.remove(this.CssClasses_.IS_CHECKED)
  719. }, E.prototype.checkToggleState = E.prototype.checkToggleState, E.prototype.disable = function() {
  720. this.inputElement_.disabled = !0, this.updateClasses_()
  721. }, E.prototype.disable = E.prototype.disable, E.prototype.enable = function() {
  722. this.inputElement_.disabled = !1, this.updateClasses_()
  723. }, E.prototype.enable = E.prototype.enable, E.prototype.on = function() {
  724. this.inputElement_.checked = !0, this.updateClasses_()
  725. }, E.prototype.on = E.prototype.on, E.prototype.off = function() {
  726. this.inputElement_.checked = !1, this.updateClasses_()
  727. }, E.prototype.off = E.prototype.off, E.prototype.init = function() {
  728. if (this.element_) {
  729. this.inputElement_ = this.element_.querySelector("." + this.CssClasses_.INPUT);
  730. var e = document.createElement("div");
  731. e.classList.add(this.CssClasses_.TRACK);
  732. var t = document.createElement("div");
  733. t.classList.add(this.CssClasses_.THUMB);
  734. var s = document.createElement("span");
  735. if (s.classList.add(this.CssClasses_.FOCUS_HELPER), t.appendChild(s), this.element_.appendChild(e), this.element_.appendChild(t), this.boundMouseUpHandler = this.onMouseUp_.bind(this), this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {
  736. this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS), this.rippleContainerElement_ = document.createElement("span"), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT), this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER), this.rippleContainerElement_.addEventListener("mouseup", this.boundMouseUpHandler);
  737. var i = document.createElement("span");
  738. i.classList.add(this.CssClasses_.RIPPLE), this.rippleContainerElement_.appendChild(i), this.element_.appendChild(this.rippleContainerElement_)
  739. }
  740. this.boundChangeHandler = this.onChange_.bind(this), this.boundFocusHandler = this.onFocus_.bind(this), this.boundBlurHandler = this.onBlur_.bind(this), this.inputElement_.addEventListener("change", this.boundChangeHandler), this.inputElement_.addEventListener("focus", this.boundFocusHandler), this.inputElement_.addEventListener("blur", this.boundBlurHandler), this.element_.addEventListener("mouseup", this.boundMouseUpHandler), this.updateClasses_(), this.element_.classList.add("is-upgraded")
  741. }
  742. }, s.register({
  743. constructor: E,
  744. classAsString: "MaterialSwitch",
  745. cssClass: "mdl-js-switch",
  746. widget: !0
  747. });
  748. var m = function(e) {
  749. this.element_ = e, this.init()
  750. };
  751. window.MaterialTabs = m, m.prototype.Constant_ = {}, m.prototype.CssClasses_ = {
  752. TAB_CLASS: "mdl-tabs__tab",
  753. PANEL_CLASS: "mdl-tabs__panel",
  754. ACTIVE_CLASS: "is-active",
  755. UPGRADED_CLASS: "is-upgraded",
  756. MDL_JS_RIPPLE_EFFECT: "mdl-js-ripple-effect",
  757. MDL_RIPPLE_CONTAINER: "mdl-tabs__ripple-container",
  758. MDL_RIPPLE: "mdl-ripple",
  759. MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events"
  760. }, m.prototype.initTabs_ = function() {
  761. this.element_.classList.contains(this.CssClasses_.MDL_JS_RIPPLE_EFFECT) && this.element_.classList.add(this.CssClasses_.MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS), this.tabs_ = this.element_.querySelectorAll("." + this.CssClasses_.TAB_CLASS), this.panels_ = this.element_.querySelectorAll("." + this.CssClasses_.PANEL_CLASS);
  762. for (var t = 0; t < this.tabs_.length; t++) new e(this.tabs_[t], this);
  763. this.element_.classList.add(this.CssClasses_.UPGRADED_CLASS)
  764. }, m.prototype.resetTabState_ = function() {
  765. for (var e = 0; e < this.tabs_.length; e++) this.tabs_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)
  766. }, m.prototype.resetPanelState_ = function() {
  767. for (var e = 0; e < this.panels_.length; e++) this.panels_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)
  768. }, m.prototype.init = function() {
  769. this.element_ && this.initTabs_()
  770. }, s.register({
  771. constructor: m,
  772. classAsString: "MaterialTabs",
  773. cssClass: "mdl-js-tabs"
  774. });
  775. var L = function(e) {
  776. this.element_ = e, this.maxRows = this.Constant_.NO_MAX_ROWS, this.init()
  777. };
  778. window.MaterialTextfield = L, L.prototype.Constant_ = {
  779. NO_MAX_ROWS: -1,
  780. MAX_ROWS_ATTRIBUTE: "maxrows"
  781. }, L.prototype.CssClasses_ = {
  782. LABEL: "mdl-textfield__label",
  783. INPUT: "mdl-textfield__input",
  784. IS_DIRTY: "is-dirty",
  785. IS_FOCUSED: "is-focused",
  786. IS_DISABLED: "is-disabled",
  787. IS_INVALID: "is-invalid",
  788. IS_UPGRADED: "is-upgraded",
  789. HAS_PLACEHOLDER: "has-placeholder"
  790. }, L.prototype.onKeyDown_ = function(e) {
  791. var t = e.target.value.split("\n").length;
  792. 13 === e.keyCode && t >= this.maxRows && e.preventDefault()
  793. }, L.prototype.onFocus_ = function(e) {
  794. this.element_.classList.add(this.CssClasses_.IS_FOCUSED)
  795. }, L.prototype.onBlur_ = function(e) {
  796. this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  797. }, L.prototype.onReset_ = function(e) {
  798. this.updateClasses_()
  799. }, L.prototype.updateClasses_ = function() {
  800. this.checkDisabled(), this.checkValidity(), this.checkDirty(), this.checkFocus()
  801. }, L.prototype.checkDisabled = function() {
  802. this.input_.disabled ? this.element_.classList.add(this.CssClasses_.IS_DISABLED) : this.element_.classList.remove(this.CssClasses_.IS_DISABLED)
  803. }, L.prototype.checkDisabled = L.prototype.checkDisabled, L.prototype.checkFocus = function() {
  804. Boolean(this.element_.querySelector(":focus")) ? this.element_.classList.add(this.CssClasses_.IS_FOCUSED) : this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)
  805. }, L.prototype.checkFocus = L.prototype.checkFocus, L.prototype.checkValidity = function() {
  806. this.input_.validity && (this.input_.validity.valid ? this.element_.classList.remove(this.CssClasses_.IS_INVALID) : this.element_.classList.add(this.CssClasses_.IS_INVALID))
  807. }, L.prototype.checkValidity = L.prototype.checkValidity, L.prototype.checkDirty = function() {
  808. this.input_.value && this.input_.value.length > 0 ? this.element_.classList.add(this.CssClasses_.IS_DIRTY) : this.element_.classList.remove(this.CssClasses_.IS_DIRTY)
  809. }, L.prototype.checkDirty = L.prototype.checkDirty, L.prototype.disable = function() {
  810. this.input_.disabled = !0, this.updateClasses_()
  811. }, L.prototype.disable = L.prototype.disable, L.prototype.enable = function() {
  812. this.input_.disabled = !1, this.updateClasses_()
  813. }, L.prototype.enable = L.prototype.enable, L.prototype.change = function(e) {
  814. this.input_.value = e || "", this.updateClasses_()
  815. }, L.prototype.change = L.prototype.change, L.prototype.init = function() {
  816. if (this.element_ && (this.label_ = this.element_.querySelector("." + this.CssClasses_.LABEL), this.input_ = this.element_.querySelector("." + this.CssClasses_.INPUT), this.input_)) {
  817. this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE) && (this.maxRows = parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE), 10), isNaN(this.maxRows) && (this.maxRows = this.Constant_.NO_MAX_ROWS)), this.input_.hasAttribute("placeholder") && this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER), this.boundUpdateClassesHandler = this.updateClasses_.bind(this), this.boundFocusHandler = this.onFocus_.bind(this), this.boundBlurHandler = this.onBlur_.bind(this), this.boundResetHandler = this.onReset_.bind(this), this.input_.addEventListener("input", this.boundUpdateClassesHandler), this.input_.addEventListener("focus", this.boundFocusHandler), this.input_.addEventListener("blur", this.boundBlurHandler), this.input_.addEventListener("reset", this.boundResetHandler), this.maxRows !== this.Constant_.NO_MAX_ROWS && (this.boundKeyDownHandler = this.onKeyDown_.bind(this), this.input_.addEventListener("keydown", this.boundKeyDownHandler));
  818. var e = this.element_.classList.contains(this.CssClasses_.IS_INVALID);
  819. this.updateClasses_(), this.element_.classList.add(this.CssClasses_.IS_UPGRADED), e && this.element_.classList.add(this.CssClasses_.IS_INVALID), this.input_.hasAttribute("autofocus") && (this.element_.focus(), this.checkFocus())
  820. }
  821. }, s.register({
  822. constructor: L,
  823. classAsString: "MaterialTextfield",
  824. cssClass: "mdl-js-textfield",
  825. widget: !0
  826. });
  827. var I = function(e) {
  828. this.element_ = e, this.init()
  829. };
  830. window.MaterialTooltip = I, I.prototype.Constant_ = {}, I.prototype.CssClasses_ = {
  831. IS_ACTIVE: "is-active",
  832. BOTTOM: "mdl-tooltip--bottom",
  833. LEFT: "mdl-tooltip--left",
  834. RIGHT: "mdl-tooltip--right",
  835. TOP: "mdl-tooltip--top"
  836. }, I.prototype.handleMouseEnter_ = function(e) {
  837. var t = e.target.getBoundingClientRect(),
  838. s = t.left + t.width / 2,
  839. i = t.top + t.height / 2,
  840. n = -1 * (this.element_.offsetWidth / 2),
  841. a = -1 * (this.element_.offsetHeight / 2);
  842. this.element_.classList.contains(this.CssClasses_.LEFT) || this.element_.classList.contains(this.CssClasses_.RIGHT) ? (s = t.width / 2, i + a < 0 ? (this.element_.style.top = "0", this.element_.style.marginTop = "0") : (this.element_.style.top = i + "px", this.element_.style.marginTop = a + "px")) : s + n < 0 ? (this.element_.style.left = "0", this.element_.style.marginLeft = "0") : (this.element_.style.left = s + "px", this.element_.style.marginLeft = n + "px"), this.element_.classList.contains(this.CssClasses_.TOP) ? this.element_.style.top = t.top - this.element_.offsetHeight - 10 + "px" : this.element_.classList.contains(this.CssClasses_.RIGHT) ? this.element_.style.left = t.left + t.width + 10 + "px" : this.element_.classList.contains(this.CssClasses_.LEFT) ? this.element_.style.left = t.left - this.element_.offsetWidth - 10 + "px" : this.element_.style.top = t.top + t.height + 10 + "px", this.element_.classList.add(this.CssClasses_.IS_ACTIVE)
  843. }, I.prototype.hideTooltip_ = function() {
  844. this.element_.classList.remove(this.CssClasses_.IS_ACTIVE)
  845. }, I.prototype.init = function() {
  846. if (this.element_) {
  847. var e = this.element_.getAttribute("for") || this.element_.getAttribute("data-mdl-for");
  848. e && (this.forElement_ = document.getElementById(e)), this.forElement_ && (this.forElement_.hasAttribute("tabindex") || this.forElement_.setAttribute("tabindex", "0"), this.boundMouseEnterHandler = this.handleMouseEnter_.bind(this), this.boundMouseLeaveAndScrollHandler = this.hideTooltip_.bind(this), this.forElement_.addEventListener("mouseenter", this.boundMouseEnterHandler, !1), this.forElement_.addEventListener("touchend", this.boundMouseEnterHandler, !1), this.forElement_.addEventListener("mouseleave", this.boundMouseLeaveAndScrollHandler, !1), window.addEventListener("scroll", this.boundMouseLeaveAndScrollHandler, !0), window.addEventListener("touchstart", this.boundMouseLeaveAndScrollHandler))
  849. }
  850. }, s.register({
  851. constructor: I,
  852. classAsString: "MaterialTooltip",
  853. cssClass: "mdl-tooltip"
  854. });
  855. var f = function(e) {
  856. this.element_ = e, this.init()
  857. };
  858. window.MaterialLayout = f, f.prototype.Constant_ = {
  859. MAX_WIDTH: "(max-width: 1024px)",
  860. TAB_SCROLL_PIXELS: 100,
  861. RESIZE_TIMEOUT: 100,
  862. MENU_ICON: "&#xE5D2;",
  863. CHEVRON_LEFT: "chevron_left",
  864. CHEVRON_RIGHT: "chevron_right"
  865. }, f.prototype.Keycodes_ = {
  866. ENTER: 13,
  867. ESCAPE: 27,
  868. SPACE: 32
  869. }, f.prototype.Mode_ = {
  870. STANDARD: 0,
  871. SEAMED: 1,
  872. WATERFALL: 2,
  873. SCROLL: 3
  874. }, f.prototype.CssClasses_ = {
  875. CONTAINER: "mdl-layout__container",
  876. HEADER: "mdl-layout__header",
  877. DRAWER: "mdl-layout__drawer",
  878. CONTENT: "mdl-layout__content",
  879. DRAWER_BTN: "mdl-layout__drawer-button",
  880. ICON: "material-icons",
  881. JS_RIPPLE_EFFECT: "mdl-js-ripple-effect",
  882. RIPPLE_CONTAINER: "mdl-layout__tab-ripple-container",
  883. RIPPLE: "mdl-ripple",
  884. RIPPLE_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  885. HEADER_SEAMED: "mdl-layout__header--seamed",
  886. HEADER_WATERFALL: "mdl-layout__header--waterfall",
  887. HEADER_SCROLL: "mdl-layout__header--scroll",
  888. FIXED_HEADER: "mdl-layout--fixed-header",
  889. OBFUSCATOR: "mdl-layout__obfuscator",
  890. TAB_BAR: "mdl-layout__tab-bar",
  891. TAB_CONTAINER: "mdl-layout__tab-bar-container",
  892. TAB: "mdl-layout__tab",
  893. TAB_BAR_BUTTON: "mdl-layout__tab-bar-button",
  894. TAB_BAR_LEFT_BUTTON: "mdl-layout__tab-bar-left-button",
  895. TAB_BAR_RIGHT_BUTTON: "mdl-layout__tab-bar-right-button",
  896. PANEL: "mdl-layout__tab-panel",
  897. HAS_DRAWER: "has-drawer",
  898. HAS_TABS: "has-tabs",
  899. HAS_SCROLLING_HEADER: "has-scrolling-header",
  900. CASTING_SHADOW: "is-casting-shadow",
  901. IS_COMPACT: "is-compact",
  902. IS_SMALL_SCREEN: "is-small-screen",
  903. IS_DRAWER_OPEN: "is-visible",
  904. IS_ACTIVE: "is-active",
  905. IS_UPGRADED: "is-upgraded",
  906. IS_ANIMATING: "is-animating",
  907. ON_LARGE_SCREEN: "mdl-layout--large-screen-only",
  908. ON_SMALL_SCREEN: "mdl-layout--small-screen-only"
  909. }, f.prototype.contentScrollHandler_ = function() {
  910. if (!this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)) {
  911. var e = !this.element_.classList.contains(this.CssClasses_.IS_SMALL_SCREEN) || this.element_.classList.contains(this.CssClasses_.FIXED_HEADER);
  912. this.content_.scrollTop > 0 && !this.header_.classList.contains(this.CssClasses_.IS_COMPACT) ? (this.header_.classList.add(this.CssClasses_.CASTING_SHADOW), this.header_.classList.add(this.CssClasses_.IS_COMPACT), e && this.header_.classList.add(this.CssClasses_.IS_ANIMATING)) : this.content_.scrollTop <= 0 && this.header_.classList.contains(this.CssClasses_.IS_COMPACT) && (this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW), this.header_.classList.remove(this.CssClasses_.IS_COMPACT), e && this.header_.classList.add(this.CssClasses_.IS_ANIMATING))
  913. }
  914. }, f.prototype.keyboardEventHandler_ = function(e) {
  915. e.keyCode === this.Keycodes_.ESCAPE && this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN) && this.toggleDrawer()
  916. }, f.prototype.screenSizeHandler_ = function() {
  917. this.screenSizeMediaQuery_.matches ? this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN) : (this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN), this.drawer_ && (this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN), this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))
  918. }, f.prototype.drawerToggleHandler_ = function(e) {
  919. if (e && "keydown" === e.type) {
  920. if (e.keyCode !== this.Keycodes_.SPACE && e.keyCode !== this.Keycodes_.ENTER) return;
  921. e.preventDefault()
  922. }
  923. this.toggleDrawer()
  924. }, f.prototype.headerTransitionEndHandler_ = function() {
  925. this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)
  926. }, f.prototype.headerClickHandler_ = function() {
  927. this.header_.classList.contains(this.CssClasses_.IS_COMPACT) && (this.header_.classList.remove(this.CssClasses_.IS_COMPACT), this.header_.classList.add(this.CssClasses_.IS_ANIMATING))
  928. }, f.prototype.resetTabState_ = function(e) {
  929. for (var t = 0; t < e.length; t++) e[t].classList.remove(this.CssClasses_.IS_ACTIVE)
  930. }, f.prototype.resetPanelState_ = function(e) {
  931. for (var t = 0; t < e.length; t++) e[t].classList.remove(this.CssClasses_.IS_ACTIVE)
  932. }, f.prototype.toggleDrawer = function() {
  933. var e = this.element_.querySelector("." + this.CssClasses_.DRAWER_BTN);
  934. this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN), this.obfuscator_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN), this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN) ? (this.drawer_.setAttribute("aria-hidden", "false"), e.setAttribute("aria-expanded", "true")) : (this.drawer_.setAttribute("aria-hidden", "true"), e.setAttribute("aria-expanded", "false"))
  935. }, f.prototype.toggleDrawer = f.prototype.toggleDrawer, f.prototype.init = function() {
  936. if (this.element_) {
  937. var e = document.createElement("div");
  938. e.classList.add(this.CssClasses_.CONTAINER);
  939. var s = this.element_.querySelector(":focus");
  940. this.element_.parentElement.insertBefore(e, this.element_), this.element_.parentElement.removeChild(this.element_), e.appendChild(this.element_), s && s.focus();
  941. for (var i = this.element_.childNodes, n = i.length, a = 0; a < n; a++) {
  942. var l = i[a];
  943. l.classList && l.classList.contains(this.CssClasses_.HEADER) && (this.header_ = l), l.classList && l.classList.contains(this.CssClasses_.DRAWER) && (this.drawer_ = l), l.classList && l.classList.contains(this.CssClasses_.CONTENT) && (this.content_ = l)
  944. }
  945. window.addEventListener("pageshow", function(e) {
  946. e.persisted && (this.element_.style.overflowY = "hidden", requestAnimationFrame(function() {
  947. this.element_.style.overflowY = ""
  948. }.bind(this)))
  949. }.bind(this), !1), this.header_ && (this.tabBar_ = this.header_.querySelector("." + this.CssClasses_.TAB_BAR));
  950. var o = this.Mode_.STANDARD;
  951. if (this.header_ && (this.header_.classList.contains(this.CssClasses_.HEADER_SEAMED) ? o = this.Mode_.SEAMED : this.header_.classList.contains(this.CssClasses_.HEADER_WATERFALL) ? (o = this.Mode_.WATERFALL, this.header_.addEventListener("transitionend", this.headerTransitionEndHandler_.bind(this)), this.header_.addEventListener("click", this.headerClickHandler_.bind(this))) : this.header_.classList.contains(this.CssClasses_.HEADER_SCROLL) && (o = this.Mode_.SCROLL, e.classList.add(this.CssClasses_.HAS_SCROLLING_HEADER)), o === this.Mode_.STANDARD ? (this.header_.classList.add(this.CssClasses_.CASTING_SHADOW), this.tabBar_ && this.tabBar_.classList.add(this.CssClasses_.CASTING_SHADOW)) : o === this.Mode_.SEAMED || o === this.Mode_.SCROLL ? (this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW), this.tabBar_ && this.tabBar_.classList.remove(this.CssClasses_.CASTING_SHADOW)) : o === this.Mode_.WATERFALL && (this.content_.addEventListener("scroll", this.contentScrollHandler_.bind(this)), this.contentScrollHandler_())), this.drawer_) {
  952. var r = this.element_.querySelector("." + this.CssClasses_.DRAWER_BTN);
  953. if (!r) {
  954. r = document.createElement("div"), r.setAttribute("aria-expanded", "false"), r.setAttribute("role", "button"), r.setAttribute("tabindex", "0"), r.classList.add(this.CssClasses_.DRAWER_BTN);
  955. var _ = document.createElement("i");
  956. _.classList.add(this.CssClasses_.ICON), _.innerHTML = this.Constant_.MENU_ICON, r.appendChild(_)
  957. }
  958. this.drawer_.classList.contains(this.CssClasses_.ON_LARGE_SCREEN) ? r.classList.add(this.CssClasses_.ON_LARGE_SCREEN) : this.drawer_.classList.contains(this.CssClasses_.ON_SMALL_SCREEN) && r.classList.add(this.CssClasses_.ON_SMALL_SCREEN), r.addEventListener("click", this.drawerToggleHandler_.bind(this)), r.addEventListener("keydown", this.drawerToggleHandler_.bind(this)), this.element_.classList.add(this.CssClasses_.HAS_DRAWER), this.element_.classList.contains(this.CssClasses_.FIXED_HEADER) ? this.header_.insertBefore(r, this.header_.firstChild) : this.element_.insertBefore(r, this.content_);
  959. var d = document.createElement("div");
  960. d.classList.add(this.CssClasses_.OBFUSCATOR), this.element_.appendChild(d), d.addEventListener("click", this.drawerToggleHandler_.bind(this)), this.obfuscator_ = d, this.drawer_.addEventListener("keydown", this.keyboardEventHandler_.bind(this)), this.drawer_.setAttribute("aria-hidden", "true")
  961. }
  962. if (this.screenSizeMediaQuery_ = window.matchMedia(this.Constant_.MAX_WIDTH), this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this)), this.screenSizeHandler_(), this.header_ && this.tabBar_) {
  963. this.element_.classList.add(this.CssClasses_.HAS_TABS);
  964. var h = document.createElement("div");
  965. h.classList.add(this.CssClasses_.TAB_CONTAINER), this.header_.insertBefore(h, this.tabBar_), this.header_.removeChild(this.tabBar_);
  966. var c = document.createElement("div");
  967. c.classList.add(this.CssClasses_.TAB_BAR_BUTTON), c.classList.add(this.CssClasses_.TAB_BAR_LEFT_BUTTON);
  968. var p = document.createElement("i");
  969. p.classList.add(this.CssClasses_.ICON), p.textContent = this.Constant_.CHEVRON_LEFT, c.appendChild(p), c.addEventListener("click", function() {
  970. this.tabBar_.scrollLeft -= this.Constant_.TAB_SCROLL_PIXELS
  971. }.bind(this));
  972. var C = document.createElement("div");
  973. C.classList.add(this.CssClasses_.TAB_BAR_BUTTON), C.classList.add(this.CssClasses_.TAB_BAR_RIGHT_BUTTON);
  974. var u = document.createElement("i");
  975. u.classList.add(this.CssClasses_.ICON), u.textContent = this.Constant_.CHEVRON_RIGHT, C.appendChild(u), C.addEventListener("click", function() {
  976. this.tabBar_.scrollLeft += this.Constant_.TAB_SCROLL_PIXELS
  977. }.bind(this)), h.appendChild(c), h.appendChild(this.tabBar_), h.appendChild(C);
  978. var E = function() {
  979. this.tabBar_.scrollLeft > 0 ? c.classList.add(this.CssClasses_.IS_ACTIVE) : c.classList.remove(this.CssClasses_.IS_ACTIVE), this.tabBar_.scrollLeft < this.tabBar_.scrollWidth - this.tabBar_.offsetWidth ? C.classList.add(this.CssClasses_.IS_ACTIVE) : C.classList.remove(this.CssClasses_.IS_ACTIVE)
  980. }.bind(this);
  981. this.tabBar_.addEventListener("scroll", E), E();
  982. var m = function() {
  983. this.resizeTimeoutId_ && clearTimeout(this.resizeTimeoutId_), this.resizeTimeoutId_ = setTimeout(function() {
  984. E(), this.resizeTimeoutId_ = null
  985. }.bind(this), this.Constant_.RESIZE_TIMEOUT)
  986. }.bind(this);
  987. window.addEventListener("resize", m), this.tabBar_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT) && this.tabBar_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);
  988. for (var L = this.tabBar_.querySelectorAll("." + this.CssClasses_.TAB), I = this.content_.querySelectorAll("." + this.CssClasses_.PANEL), f = 0; f < L.length; f++) new t(L[f], L, I, this)
  989. }
  990. this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
  991. }
  992. }, window.MaterialLayoutTab = t, s.register({
  993. constructor: f,
  994. classAsString: "MaterialLayout",
  995. cssClass: "mdl-js-layout"
  996. });
  997. var b = function(e) {
  998. this.element_ = e, this.init()
  999. };
  1000. window.MaterialDataTable = b, b.prototype.Constant_ = {}, b.prototype.CssClasses_ = {
  1001. DATA_TABLE: "mdl-data-table",
  1002. SELECTABLE: "mdl-data-table--selectable",
  1003. SELECT_ELEMENT: "mdl-data-table__select",
  1004. IS_SELECTED: "is-selected",
  1005. IS_UPGRADED: "is-upgraded"
  1006. }, b.prototype.selectRow_ = function(e, t, s) {
  1007. return t ? function() {
  1008. e.checked ? t.classList.add(this.CssClasses_.IS_SELECTED) : t.classList.remove(this.CssClasses_.IS_SELECTED)
  1009. }.bind(this) : s ? function() {
  1010. var t, i;
  1011. if (e.checked)
  1012. for (t = 0; t < s.length; t++) i = s[t].querySelector("td").querySelector(".mdl-checkbox"), i.MaterialCheckbox.check(), s[t].classList.add(this.CssClasses_.IS_SELECTED);
  1013. else
  1014. for (t = 0; t < s.length; t++) i = s[t].querySelector("td").querySelector(".mdl-checkbox"), i.MaterialCheckbox.uncheck(), s[t].classList.remove(this.CssClasses_.IS_SELECTED)
  1015. }.bind(this) : void 0
  1016. }, b.prototype.createCheckbox_ = function(e, t) {
  1017. var i = document.createElement("label"),
  1018. n = ["mdl-checkbox", "mdl-js-checkbox", "mdl-js-ripple-effect", this.CssClasses_.SELECT_ELEMENT];
  1019. i.className = n.join(" ");
  1020. var a = document.createElement("input");
  1021. return a.type = "checkbox", a.classList.add("mdl-checkbox__input"), e ? (a.checked = e.classList.contains(this.CssClasses_.IS_SELECTED), a.addEventListener("change", this.selectRow_(a, e))) : t && a.addEventListener("change", this.selectRow_(a, null, t)), i.appendChild(a), s.upgradeElement(i, "MaterialCheckbox"), i
  1022. }, b.prototype.init = function() {
  1023. if (this.element_) {
  1024. var e = this.element_.querySelector("th"),
  1025. t = Array.prototype.slice.call(this.element_.querySelectorAll("tbody tr")),
  1026. s = Array.prototype.slice.call(this.element_.querySelectorAll("tfoot tr")),
  1027. i = t.concat(s);
  1028. if (this.element_.classList.contains(this.CssClasses_.SELECTABLE)) {
  1029. var n = document.createElement("th"),
  1030. a = this.createCheckbox_(null, i);
  1031. n.appendChild(a), e.parentElement.insertBefore(n, e);
  1032. for (var l = 0; l < i.length; l++) {
  1033. var o = i[l].querySelector("td");
  1034. if (o) {
  1035. var r = document.createElement("td");
  1036. if ("TBODY" === i[l].parentNode.nodeName.toUpperCase()) {
  1037. var _ = this.createCheckbox_(i[l]);
  1038. r.appendChild(_)
  1039. }
  1040. i[l].insertBefore(r, o)
  1041. }
  1042. }
  1043. this.element_.classList.add(this.CssClasses_.IS_UPGRADED)
  1044. }
  1045. }
  1046. }, s.register({
  1047. constructor: b,
  1048. classAsString: "MaterialDataTable",
  1049. cssClass: "mdl-js-data-table"
  1050. });
  1051. var y = function(e) {
  1052. this.element_ = e, this.init()
  1053. };
  1054. window.MaterialRipple = y, y.prototype.Constant_ = {
  1055. INITIAL_SCALE: "scale(0.0001, 0.0001)",
  1056. INITIAL_SIZE: "1px",
  1057. INITIAL_OPACITY: "0.4",
  1058. FINAL_OPACITY: "0",
  1059. FINAL_SCALE: ""
  1060. }, y.prototype.CssClasses_ = {
  1061. RIPPLE_CENTER: "mdl-ripple--center",
  1062. RIPPLE_EFFECT_IGNORE_EVENTS: "mdl-js-ripple-effect--ignore-events",
  1063. RIPPLE: "mdl-ripple",
  1064. IS_ANIMATING: "is-animating",
  1065. IS_VISIBLE: "is-visible"
  1066. }, y.prototype.downHandler_ = function(e) {
  1067. if (!this.rippleElement_.style.width && !this.rippleElement_.style.height) {
  1068. var t = this.element_.getBoundingClientRect();
  1069. this.boundHeight = t.height, this.boundWidth = t.width, this.rippleSize_ = 2 * Math.sqrt(t.width * t.width + t.height * t.height) + 2, this.rippleElement_.style.width = this.rippleSize_ + "px", this.rippleElement_.style.height = this.rippleSize_ + "px"
  1070. }
  1071. if (this.rippleElement_.classList.add(this.CssClasses_.IS_VISIBLE), "mousedown" === e.type && this.ignoringMouseDown_) this.ignoringMouseDown_ = !1;
  1072. else {
  1073. "touchstart" === e.type && (this.ignoringMouseDown_ = !0);
  1074. var s = this.getFrameCount();
  1075. if (s > 0) return;
  1076. this.setFrameCount(1);
  1077. var i, n, a = e.currentTarget.getBoundingClientRect();
  1078. if (0 === e.clientX && 0 === e.clientY) i = Math.round(a.width / 2), n = Math.round(a.height / 2);
  1079. else {
  1080. var l = e.clientX ? e.clientX : e.touches[0].clientX,
  1081. o = e.clientY ? e.clientY : e.touches[0].clientY;
  1082. i = Math.round(l - a.left), n = Math.round(o - a.top)
  1083. }
  1084. this.setRippleXY(i, n), this.setRippleStyles(!0), window.requestAnimationFrame(this.animFrameHandler.bind(this))
  1085. }
  1086. }, y.prototype.upHandler_ = function(e) {
  1087. e && 2 !== e.detail && window.setTimeout(function() {
  1088. this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)
  1089. }.bind(this), 0)
  1090. }, y.prototype.init = function() {
  1091. if (this.element_) {
  1092. var e = this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);
  1093. this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS) || (this.rippleElement_ = this.element_.querySelector("." + this.CssClasses_.RIPPLE), this.frameCount_ = 0, this.rippleSize_ = 0, this.x_ = 0, this.y_ = 0, this.ignoringMouseDown_ = !1, this.boundDownHandler = this.downHandler_.bind(this), this.element_.addEventListener("mousedown", this.boundDownHandler), this.element_.addEventListener("touchstart", this.boundDownHandler), this.boundUpHandler = this.upHandler_.bind(this), this.element_.addEventListener("mouseup", this.boundUpHandler), this.element_.addEventListener("mouseleave", this.boundUpHandler), this.element_.addEventListener("touchend", this.boundUpHandler), this.element_.addEventListener("blur", this.boundUpHandler), this.getFrameCount = function() {
  1094. return this.frameCount_
  1095. }, this.setFrameCount = function(e) {
  1096. this.frameCount_ = e
  1097. }, this.getRippleElement = function() {
  1098. return this.rippleElement_
  1099. }, this.setRippleXY = function(e, t) {
  1100. this.x_ = e, this.y_ = t
  1101. }, this.setRippleStyles = function(t) {
  1102. if (null !== this.rippleElement_) {
  1103. var s, i, n, a = "translate(" + this.x_ + "px, " + this.y_ + "px)";
  1104. t ? (i = this.Constant_.INITIAL_SCALE, n = this.Constant_.INITIAL_SIZE) : (i = this.Constant_.FINAL_SCALE, n = this.rippleSize_ + "px", e && (a = "translate(" + this.boundWidth / 2 + "px, " + this.boundHeight / 2 + "px)")), s = "translate(-50%, -50%) " + a + i, this.rippleElement_.style.webkitTransform = s, this.rippleElement_.style.msTransform = s, this.rippleElement_.style.transform = s, t ? this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING) : this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)
  1105. }
  1106. }, this.animFrameHandler = function() {
  1107. this.frameCount_-- > 0 ? window.requestAnimationFrame(this.animFrameHandler.bind(this)) : this.setRippleStyles(!1)
  1108. })
  1109. }
  1110. }, s.register({
  1111. constructor: y,
  1112. classAsString: "MaterialRipple",
  1113. cssClass: "mdl-js-ripple-effect",
  1114. widget: !1
  1115. })
  1116. }();
  1117. //# sourceMappingURL=material.min.js.map</script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement