theme.js (376163B)
1 /******/ (function(modules) { // webpackBootstrap 2 /******/ // The module cache 3 /******/ var installedModules = {}; 4 /******/ 5 /******/ // The require function 6 /******/ function __webpack_require__(moduleId) { 7 /******/ 8 /******/ // Check if module is in cache 9 /******/ if(installedModules[moduleId]) { 10 /******/ return installedModules[moduleId].exports; 11 /******/ } 12 /******/ // Create a new module (and put it into the cache) 13 /******/ var module = installedModules[moduleId] = { 14 /******/ i: moduleId, 15 /******/ l: false, 16 /******/ exports: {} 17 /******/ }; 18 /******/ 19 /******/ // Execute the module function 20 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21 /******/ 22 /******/ // Flag the module as loaded 23 /******/ module.l = true; 24 /******/ 25 /******/ // Return the exports of the module 26 /******/ return module.exports; 27 /******/ } 28 /******/ 29 /******/ 30 /******/ // expose the modules object (__webpack_modules__) 31 /******/ __webpack_require__.m = modules; 32 /******/ 33 /******/ // expose the module cache 34 /******/ __webpack_require__.c = installedModules; 35 /******/ 36 /******/ // define getter function for harmony exports 37 /******/ __webpack_require__.d = function(exports, name, getter) { 38 /******/ if(!__webpack_require__.o(exports, name)) { 39 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40 /******/ } 41 /******/ }; 42 /******/ 43 /******/ // define __esModule on exports 44 /******/ __webpack_require__.r = function(exports) { 45 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47 /******/ } 48 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 49 /******/ }; 50 /******/ 51 /******/ // create a fake namespace object 52 /******/ // mode & 1: value is a module id, require it 53 /******/ // mode & 2: merge all properties of value into the ns 54 /******/ // mode & 4: return value when already ns object 55 /******/ // mode & 8|1: behave like require 56 /******/ __webpack_require__.t = function(value, mode) { 57 /******/ if(mode & 1) value = __webpack_require__(value); 58 /******/ if(mode & 8) return value; 59 /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60 /******/ var ns = Object.create(null); 61 /******/ __webpack_require__.r(ns); 62 /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63 /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64 /******/ return ns; 65 /******/ }; 66 /******/ 67 /******/ // getDefaultExport function for compatibility with non-harmony modules 68 /******/ __webpack_require__.n = function(module) { 69 /******/ var getter = module && module.__esModule ? 70 /******/ function getDefault() { return module['default']; } : 71 /******/ function getModuleExports() { return module; }; 72 /******/ __webpack_require__.d(getter, 'a', getter); 73 /******/ return getter; 74 /******/ }; 75 /******/ 76 /******/ // Object.prototype.hasOwnProperty.call 77 /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78 /******/ 79 /******/ // __webpack_public_path__ 80 /******/ __webpack_require__.p = "/"; 81 /******/ 82 /******/ 83 /******/ // Load entry module and return exports 84 /******/ return __webpack_require__(__webpack_require__.s = 0); 85 /******/ }) 86 /************************************************************************/ 87 /******/ ({ 88 89 /***/ "./js/_theme.js": 90 /*!**********************!*\ 91 !*** ./js/_theme.js ***! 92 \**********************/ 93 /*! no static exports found */ 94 /***/ (function(module, exports) { 95 96 if ("ontouchstart" in window) { 97 document.documentElement.className = document.documentElement.className + " touch-enabled"; 98 } 99 100 if (navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/i)) { 101 document.documentElement.className = document.documentElement.className + " no-parallax"; 102 } 103 104 (function ($) { 105 var reqAnimFrame = function () { 106 return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback, element) { 107 window.setTimeout(callback, 1000 / 60); 108 }; 109 }(); 110 111 window.requestInterval = function (fn, delay, cancelFunction) { 112 if (!window.requestAnimationFrame && !window.webkitRequestAnimationFrame && !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support 113 !window.oRequestAnimationFrame && !window.msRequestAnimationFrame) return window.setInterval(fn, delay); 114 var start = new Date().getTime(), 115 handle = {}; 116 117 function loop() { 118 var current = new Date().getTime(), 119 delta = current - start; 120 121 if (delta >= delay) { 122 fn.call(); 123 start = new Date().getTime(); 124 } 125 126 handle.value = reqAnimFrame(loop); 127 128 if (delta >= delay && cancelFunction && cancelFunction.call() === true) { 129 clearRequestInterval(handle); 130 } 131 } 132 133 ; 134 handle.value = reqAnimFrame(loop); 135 return handle; 136 }; 137 138 window.clearRequestInterval = function (handle) { 139 window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) : window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) : window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : 140 /* Support for legacy API */ 141 window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) : window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) : window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) : clearInterval(handle); 142 }; 143 144 if (!$.event.special.tap) { 145 $.event.special.tap = { 146 setup: function setup(data, namespaces) { 147 var $elem = $(this); 148 $elem.bind('touchstart', $.event.special.tap.handler).bind('touchmove', $.event.special.tap.handler).bind('touchend', $.event.special.tap.handler); 149 }, 150 teardown: function teardown(namespaces) { 151 var $elem = $(this); 152 $elem.unbind('touchstart', $.event.special.tap.handler).unbind('touchmove', $.event.special.tap.handler).unbind('touchend', $.event.special.tap.handler); 153 }, 154 handler: function handler(event) { 155 var $elem = $(this); 156 $elem.data(event.type, 1); 157 158 if (event.type === 'touchend' && !$elem.data('touchmove')) { 159 event.type = 'tap'; 160 $.event.handle.apply(this, arguments); 161 } else if ($elem.data('touchend')) { 162 $elem.removeData('touchstart touchmove touchend'); 163 } 164 } 165 }; 166 } 167 168 if (!$.fn.isInView) { 169 $.fn.isInView = function (fullyInView) { 170 var element = this; 171 var pageTop = $(window).scrollTop(); 172 var pageBottom = pageTop + $(window).height(); 173 var elementTop = $(element).offset().top; 174 var elementBottom = elementTop + $(element).height(); 175 176 if (fullyInView === true) { 177 return pageTop < elementTop && pageBottom > elementBottom; 178 } else { 179 return elementTop <= pageBottom && elementBottom >= pageTop; 180 } 181 }; 182 } 183 184 if (!$.throttle) { 185 $.throttle = function (fn, threshhold, scope) { 186 threshhold || (threshhold = 250); 187 var last, deferTimer; 188 return function () { 189 var context = scope || this; 190 var now = +new Date(), 191 args = arguments; 192 193 if (last && now < last + threshhold) { 194 // hold on to it 195 clearTimeout(deferTimer); 196 deferTimer = setTimeout(function () { 197 last = now; 198 fn.apply(context, args); 199 }, threshhold); 200 } else { 201 last = now; 202 fn.apply(context, args); 203 } 204 }; 205 }; 206 } 207 208 if (!$.debounce) { 209 $.debounce = function (func, wait, immediate) { 210 var timeout; 211 return function () { 212 var context = this, 213 args = arguments; 214 215 var later = function later() { 216 timeout = null; 217 if (!immediate) func.apply(context, args); 218 }; 219 220 var callNow = immediate && !timeout; 221 clearTimeout(timeout); 222 timeout = setTimeout(later, wait); 223 if (callNow) func.apply(context, args); 224 }; 225 }; 226 } 227 })(jQuery); 228 229 /***/ }), 230 231 /***/ "./js/backstretch.js": 232 /*!***************************!*\ 233 !*** ./js/backstretch.js ***! 234 \***************************/ 235 /*! no exports provided */ 236 /***/ (function(module, __webpack_exports__, __webpack_require__) { 237 238 "use strict"; 239 __webpack_require__.r(__webpack_exports__); 240 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 241 242 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function ($) { 243 if (window.materialis_backstretch) { 244 window.materialis_backstretch.duration = parseInt(window.materialis_backstretch.duration); 245 window.materialis_backstretch.transitionDuration = parseInt(window.materialis_backstretch.transitionDuration); 246 var images = materialis_backstretch.images; 247 248 if (!images) { 249 return; 250 } 251 252 jQuery('.header-homepage, .header').backstretch(images, materialis_backstretch); 253 } 254 }); 255 256 /***/ }), 257 258 /***/ "./js/blog-comments.js": 259 /*!*****************************!*\ 260 !*** ./js/blog-comments.js ***! 261 \*****************************/ 262 /*! no exports provided */ 263 /***/ (function(module, __webpack_exports__, __webpack_require__) { 264 265 "use strict"; 266 __webpack_require__.r(__webpack_exports__); 267 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 268 269 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function ($) { 270 var $commentsWrapper = jQuery('.comments-form'), 271 $commentsForm = jQuery('#commentform'); 272 273 if (window.location.hash === "#respond") { 274 $commentsWrapper.show(); 275 } 276 277 $('.add-comment-toggler').click(function () { 278 if ($commentsForm.is(':visible')) { 279 jQuery('html, body').animate({ 280 scrollTop: $commentsForm.offset().top - jQuery('.navigation-bar.fixto-fixed').outerHeight() - 30 281 }, 600); 282 return; 283 } 284 285 $commentsWrapper.show(); 286 $('html, body').animate({ 287 scrollTop: $commentsWrapper.offset().top - jQuery('.navigation-bar.fixto-fixed').outerHeight() - 30 288 }, 600); 289 return false; 290 }); 291 }); 292 293 /***/ }), 294 295 /***/ "./js/counters.js": 296 /*!************************!*\ 297 !*** ./js/counters.js ***! 298 \************************/ 299 /*! no exports provided */ 300 /***/ (function(module, __webpack_exports__, __webpack_require__) { 301 302 "use strict"; 303 __webpack_require__.r(__webpack_exports__); 304 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 305 306 307 (function ($) { 308 function updateCounterCircle($el) { 309 var $valueHolder = $el.find('[data-countup]'); 310 var val = $valueHolder.text(); 311 val = jQuery.map(val.match(/[\d.]*[\d]+/g), function (x) { 312 return x; 313 }).join([]); 314 var max = $valueHolder.attr('data-max') !== undefined ? $valueHolder.attr('data-max') : 100; 315 var min = $valueHolder.attr('data-min') !== undefined ? $valueHolder.attr('data-min') : 0; 316 317 if (min > max) { 318 var aux = max; 319 max = min; 320 min = aux; 321 } 322 323 if (!val) { 324 val = min; 325 } 326 327 var percentage = val / max * 100; 328 var $circle = $el.find('.circle-bar'); 329 var r = $circle.attr('r'); 330 var c = Math.PI * (r * 2); 331 332 if (percentage < 0) { 333 percentage = 0; 334 } 335 336 if (percentage > 100) { 337 percentage = 100; 338 } 339 340 var pct = c * (100 - percentage) / 100; 341 $circle.css({ 342 strokeDashoffset: pct 343 }); 344 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function () { 345 if (!wp || !wp.customize) { 346 $circle.parent().height($circle.parent().width()); 347 } 348 }); 349 } 350 351 function initCounterCircle($circle) { 352 updateCounterCircle($circle); 353 $circle.find('[data-countup]').bind('countup.update', function () { 354 updateCounterCircle($circle); 355 }); // $circle.find('[data-countup]').bind('DOMSubtreeModified', updateCircleOnDOMSubtreeModified); 356 357 $circle.data('doCircle', function () { 358 updateCounterCircle($circle); 359 }); 360 } 361 362 function initCountUP($self, force) { 363 var min = $self.attr('data-min') !== undefined ? $self.attr('data-min') : 0, 364 stopAt = $self.attr('data-stop'), 365 max = $self.attr('data-max') !== undefined ? $self.attr('data-max') : 100, 366 prefix = $self.attr('data-prefix') || "", 367 suffix = $self.attr('data-suffix') || "", 368 duration = $self.attr('data-duration') || 2000, 369 decimals = $self.attr('data-decimals') || 0; 370 371 if (stopAt !== undefined) { 372 max = stopAt; 373 } 374 375 var formattedMax = ''; 376 377 try { 378 var counter = new CountUp($self[0], parseInt(min), parseInt(max), parseInt(decimals), parseInt(duration) / 1000, { 379 prefix: prefix, 380 suffix: suffix, 381 onUpdate: function onUpdate(value) { 382 $self.trigger('countup.update', [value]); 383 } 384 }); 385 formattedMax = counter.options.formattingFn(parseInt(max)); 386 } catch (e) { 387 console.error('invalid countup args', { 388 min: min, 389 max: max, 390 decimals: decimals, 391 duration: duration, 392 suffix: suffix, 393 prefix: prefix 394 }); 395 } 396 397 $self.data('countup', counter); 398 $self.attr('data-max-computed', formattedMax); 399 400 if (force) { 401 $self.data('countup').reset(); 402 } 403 404 if ($self.isInView(true) || force) { 405 $self.data('countup').start(); 406 } 407 408 $self.data('restartCountUp', function () { 409 initCountUP($self); 410 }); 411 } 412 413 $('.circle-counter').each(function () { 414 initCounterCircle($(this)); 415 }); 416 var $countUPs = $('[data-countup]'); 417 $countUPs.each(function () { 418 var $self = $(this); 419 initCountUP($self); 420 }); 421 $(window).on('scroll', function () { 422 $countUPs.each(function () { 423 var $self = $(this); 424 425 if ($self.isInView(true) && !$self.data('one')) { 426 $self.data('countup').start(); 427 $self.data('one', true); 428 } else {// $self.data('countup').reset(); 429 } 430 }); 431 }); 432 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function () { 433 if (!wp || !wp.customize) { 434 $(window).on('resize', function () { 435 $('.circle-counter .circle-svg').each(function () { 436 $(this).height($(this).width()); 437 }); 438 }); 439 } 440 }); // customizer binding 441 442 if (parent.CP_Customizer) { 443 parent.CP_Customizer.addModule(function (CP_Customizer) { 444 CP_Customizer.hooks.addAction('after_node_insert', function ($node) { 445 if ($node.is('[data-countup]')) { 446 if ($node.closest('.circle-counter').length) { 447 initCounterCircle($node.closest('.circle-counter')); 448 } 449 450 initCountUP($node, true); 451 } 452 453 $node.find('[data-countup]').each(function () { 454 if ($(this).closest('.circle-counter').length) { 455 initCounterCircle($(this).closest('.circle-counter')); 456 } 457 458 initCountUP($(this), true); 459 }); 460 }); 461 }); 462 } // Bar counters 463 464 465 function initCountBar($self, force) { 466 if ($self.data('one')) return; 467 var min = $self.attr('data-min') !== undefined ? $self.attr('data-min') : 0; 468 var max = $self.attr('data-max'); 469 var stop = $self.attr('data-stop'); 470 var color = $self.attr('data-bgcolor'); 471 var suffix = $self.attr('data-suffix'); 472 var text = $self.attr('data-text'); 473 474 if (stop !== undefined) { 475 max = stop; 476 } 477 478 try { 479 $self.LineProgressbar({ 480 min: min || 0, 481 max: max || 100, 482 stop: stop || 50, 483 color: color || '#654ea3', 484 suffix: suffix || '%', 485 text: text || 'Category' 486 }); 487 } catch (e) { 488 console.error('invalid countup args', { 489 min: min, 490 max: max, 491 stop: stop, 492 color: color, 493 suffix: suffix, 494 text: text 495 }); 496 } 497 498 $self.data('restartCountBar', function ($item) { 499 $self.LineProgressbar({ 500 min: $item.attr('data-min') || 0, 501 max: $item.attr('data-max') || 100, 502 stop: $item.attr('data-stop') || 50, 503 color: $item.attr('data-bgcolor') || '#654ea3', 504 suffix: $item.attr('data-suffix') || '%', 505 text: $item.attr('data-text') || 'Category' 506 }); 507 }); 508 } 509 510 var $countBars = $('.progressline'); 511 /* 512 $countBars.each(function () { 513 var $self = $(this); 514 initCountBar($self); 515 }); 516 */ 517 518 $(window).on('scroll', function () { 519 $countBars.each(function () { 520 var $self = $(this); 521 522 if ($self.isInView(true) && !$self.data('one')) { 523 initCountBar($self); 524 $self.data('one', true); 525 } 526 }); 527 }); 528 529 if (parent.CP_Customizer) { 530 parent.CP_Customizer.addModule(function (CP_Customizer) { 531 CP_Customizer.hooks.addAction('after_node_insert', function ($node) { 532 if ($node.is('[data-countbar]')) { 533 initCountBar($node, true); 534 } 535 536 $node.find('[data-countbar]').each(function () { 537 initCountBar($(this), true); 538 }); 539 }); 540 }); 541 } 542 })(jQuery); 543 544 /***/ }), 545 546 /***/ "./js/footer.js": 547 /*!**********************!*\ 548 !*** ./js/footer.js ***! 549 \**********************/ 550 /*! no static exports found */ 551 /***/ (function(module, exports) { 552 553 (function ($, MaterialisTheme) { 554 function toggleFooter(footer, pageContent) { 555 var footerTop = footer.offset().top + footer.outerHeight(); 556 var pageBottom = pageContent.offset().top + pageContent.height(); 557 558 if (footerTop >= pageBottom) { 559 footer.css('visibility', 'visible'); 560 } else { 561 footer.css('visibility', ''); 562 } 563 } 564 565 function updateFooter(footer, pageContent) { 566 var margin = footer.outerHeight() - 2; 567 568 if (pageContent.is('.boxed-layout')) { 569 margin += 36; 570 } 571 572 pageContent.css("margin-bottom", margin); 573 toggleFooter(footer, pageContent); 574 } 575 576 window.materialisFooterParalax = function () { 577 var footer = $('.footer.paralax'); 578 579 if (footer.length) { 580 if (footer.parents('.no-parallax').length) { 581 footer.css('visibility', 'visible'); 582 return; 583 } 584 585 $('.header-wrapper').css('z-index', 1); 586 var pageContent = footer.prev(); 587 pageContent.addClass('footer-shadow'); 588 pageContent.css({ 589 'position': 'relative', 590 'z-index': 1 591 }); 592 $(window).bind('resize.footerParalax', function () { 593 updateFooter(footer, pageContent); 594 }); 595 jQuery(document).ready(function () { 596 window.setTimeout(function () { 597 updateFooter(footer, pageContent); 598 }, 100); 599 }); 600 updateFooter(footer, pageContent); 601 $(window).bind('scroll.footerParalax', function () { 602 toggleFooter(footer, pageContent); 603 }); 604 } 605 }; 606 607 window.materialisStopFooterParalax = function () { 608 var footer = $('.footer'); 609 var pageContent = footer.prev(); 610 $('.header-wrapper').css('z-index', 0); 611 pageContent.removeClass('footer-shadow'); 612 pageContent.css('margin-bottom', '0px'); 613 $(window).unbind('resize.footerParalax'); 614 $(window).unbind('scroll.footerParalax'); 615 }; 616 617 materialisFooterParalax(); 618 /* 619 if (footer.length && window.wp && window.wp.customize) { 620 // Select the node that will be observed for mutations 621 let debouncedUpdate = jQuery.debounce(updateFooter, 500); 622 new MutationObserver(function (mutationsList) { 623 for (let mutation of mutationsList) { 624 if (mutation.type === 'childList') { 625 debouncedUpdate(); 626 } 627 else if (mutation.type === 'attributes') { 628 debouncedUpdate() 629 } 630 } 631 }).observe(footer[0], { 632 attributes: true, 633 childList: true, 634 subtree: true 635 }); 636 } 637 */ 638 639 MaterialisTheme.updateFooterParallax = function () { 640 var footer = $('.footer.paralax'); 641 var pageContent = footer.prev(); 642 643 if (footer.length) { 644 updateFooter(footer, pageContent); 645 } 646 }; 647 })(jQuery, MaterialisTheme); 648 649 /***/ }), 650 651 /***/ "./js/form-fields/checkbox-in-label.js": 652 /*!*********************************************!*\ 653 !*** ./js/form-fields/checkbox-in-label.js ***! 654 \*********************************************/ 655 /*! exports provided: CheckboxInsideLabelField */ 656 /***/ (function(module, __webpack_exports__, __webpack_require__) { 657 658 "use strict"; 659 __webpack_require__.r(__webpack_exports__); 660 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxInsideLabelField", function() { return CheckboxInsideLabelField; }); 661 /* harmony import */ var _material_animation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/animation */ "./node_modules/@material/animation/index.js"); 662 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 663 /* harmony import */ var _material_selection_control__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/selection-control */ "./node_modules/@material/selection-control/index.js"); 664 /* harmony import */ var _material_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material/checkbox */ "./node_modules/@material/checkbox/index.js"); 665 /* harmony import */ var _material_ripple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material/ripple */ "./node_modules/@material/ripple/index.js"); 666 /* harmony import */ var _material_ripple_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material/ripple/util */ "./node_modules/@material/ripple/util.js"); 667 function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } 668 669 function _typeof(obj) { 670 if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { 671 _typeof = function _typeof(obj) { 672 return _typeof2(obj); 673 }; 674 } else { 675 _typeof = function _typeof(obj) { 676 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 677 }; 678 } 679 680 return _typeof(obj); 681 } 682 683 function _classCallCheck(instance, Constructor) { 684 if (!(instance instanceof Constructor)) { 685 throw new TypeError("Cannot call a class as a function"); 686 } 687 } 688 689 function _possibleConstructorReturn(self, call) { 690 if (call && (_typeof(call) === "object" || typeof call === "function")) { 691 return call; 692 } 693 694 return _assertThisInitialized(self); 695 } 696 697 function _assertThisInitialized(self) { 698 if (self === void 0) { 699 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 700 } 701 702 return self; 703 } 704 705 function _getPrototypeOf(o) { 706 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { 707 return o.__proto__ || Object.getPrototypeOf(o); 708 }; 709 return _getPrototypeOf(o); 710 } 711 712 function _inherits(subClass, superClass) { 713 if (typeof superClass !== "function" && superClass !== null) { 714 throw new TypeError("Super expression must either be null or a function"); 715 } 716 717 subClass.prototype = Object.create(superClass && superClass.prototype, { 718 constructor: { 719 value: subClass, 720 writable: true, 721 configurable: true 722 } 723 }); 724 if (superClass) _setPrototypeOf(subClass, superClass); 725 } 726 727 function _setPrototypeOf(o, p) { 728 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 729 o.__proto__ = p; 730 return o; 731 }; 732 733 return _setPrototypeOf(o, p); 734 } 735 736 737 738 739 740 741 742 743 var CheckboxInsideLabelField = 744 /*#__PURE__*/ 745 function (_MDCCheckbox) { 746 _inherits(CheckboxInsideLabelField, _MDCCheckbox); 747 748 function CheckboxInsideLabelField(input) { 749 _classCallCheck(this, CheckboxInsideLabelField); 750 751 var container = document.createElement('div'); 752 input.classList.add('mdc-checkbox__native-control'); 753 var svgPath = '<path class="mdc-checkbox__checkmark-path" fill="none" stroke="white" d="M1.73,12.91 8.1,19.28 22.79,4.59"/>'; 754 var mixedMark = '<div class="mdc-checkbox__mixedmark"></div>'; 755 var svg = '<svg class="mdc-checkbox__checkmark" viewBox="0 0 24 24">' + svgPath + '</svg>'; 756 var checkboxBackground = '<div class="mdc-checkbox__background">' + svg + mixedMark + '</div>'; 757 var labelContent = jQuery(input).parent().find('span').html(); 758 var labelWrapper = '<label for="' + jQuery(input).attr('id') + '">' + labelContent + '</label>'; 759 var checkboxContent = '<div class="mdc-checkbox">' + input.outerHTML + checkboxBackground + '</div>'; 760 var label = jQuery(input).parent(); 761 jQuery(container).addClass('mdc-form-field'); 762 jQuery(container).html(checkboxContent + labelWrapper); 763 label.before(container); 764 label.remove(); 765 return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxInsideLabelField).call(this, container)); 766 } 767 768 return CheckboxInsideLabelField; 769 }(_material_checkbox__WEBPACK_IMPORTED_MODULE_3__["MDCCheckbox"]); 770 771 772 773 /***/ }), 774 775 /***/ "./js/form-fields/input-in-label.js": 776 /*!******************************************!*\ 777 !*** ./js/form-fields/input-in-label.js ***! 778 \******************************************/ 779 /*! exports provided: InputInsideLabelField */ 780 /***/ (function(module, __webpack_exports__, __webpack_require__) { 781 782 "use strict"; 783 __webpack_require__.r(__webpack_exports__); 784 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputInsideLabelField", function() { return InputInsideLabelField; }); 785 /* harmony import */ var _material_textfield__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/textfield */ "./node_modules/@material/textfield/index.js"); 786 /* harmony import */ var _material_floating_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/floating-label */ "./node_modules/@material/floating-label/index.js"); 787 /* harmony import */ var _material_notched_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/notched-outline */ "./node_modules/@material/notched-outline/index.js"); 788 /* harmony import */ var _material_line_ripple__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material/line-ripple */ "./node_modules/@material/line-ripple/index.js"); 789 /* harmony import */ var _material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material/textfield/constants */ "./node_modules/@material/textfield/constants.js"); 790 function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } 791 792 function _typeof(obj) { 793 if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { 794 _typeof = function _typeof(obj) { 795 return _typeof2(obj); 796 }; 797 } else { 798 _typeof = function _typeof(obj) { 799 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 800 }; 801 } 802 803 return _typeof(obj); 804 } 805 806 function _classCallCheck(instance, Constructor) { 807 if (!(instance instanceof Constructor)) { 808 throw new TypeError("Cannot call a class as a function"); 809 } 810 } 811 812 function _defineProperties(target, props) { 813 for (var i = 0; i < props.length; i++) { 814 var descriptor = props[i]; 815 descriptor.enumerable = descriptor.enumerable || false; 816 descriptor.configurable = true; 817 if ("value" in descriptor) descriptor.writable = true; 818 Object.defineProperty(target, descriptor.key, descriptor); 819 } 820 } 821 822 function _createClass(Constructor, protoProps, staticProps) { 823 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 824 if (staticProps) _defineProperties(Constructor, staticProps); 825 return Constructor; 826 } 827 828 function _possibleConstructorReturn(self, call) { 829 if (call && (_typeof(call) === "object" || typeof call === "function")) { 830 return call; 831 } 832 833 return _assertThisInitialized(self); 834 } 835 836 function _assertThisInitialized(self) { 837 if (self === void 0) { 838 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 839 } 840 841 return self; 842 } 843 844 function _getPrototypeOf(o) { 845 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { 846 return o.__proto__ || Object.getPrototypeOf(o); 847 }; 848 return _getPrototypeOf(o); 849 } 850 851 function _inherits(subClass, superClass) { 852 if (typeof superClass !== "function" && superClass !== null) { 853 throw new TypeError("Super expression must either be null or a function"); 854 } 855 856 subClass.prototype = Object.create(superClass && superClass.prototype, { 857 constructor: { 858 value: subClass, 859 writable: true, 860 configurable: true 861 } 862 }); 863 if (superClass) _setPrototypeOf(subClass, superClass); 864 } 865 866 function _setPrototypeOf(o, p) { 867 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 868 o.__proto__ = p; 869 return o; 870 }; 871 872 return _setPrototypeOf(o, p); 873 } 874 875 876 877 878 879 880 881 var InputInsideLabelField = 882 /*#__PURE__*/ 883 function (_MDCTextField) { 884 _inherits(InputInsideLabelField, _MDCTextField); 885 886 function InputInsideLabelField(input, type) { 887 var _this; 888 889 _classCallCheck(this, InputInsideLabelField); 890 891 var container = document.createElement('div'); 892 893 if (type == 1) { 894 var label = jQuery(input).parent().parent(); 895 jQuery(label).attr('for', input.name); 896 jQuery(label).find('br').remove(); 897 jQuery(label).find('span').remove(); 898 } 899 900 if (type == 2) { 901 var label = jQuery(input).parent().find('label'); 902 903 if (!label.length) { 904 jQuery(input).parent().prepend('<label for="' + input.name + '">' + input.placeholder + '</label>'); 905 var label = jQuery(input).parent().find('label'); 906 } 907 } 908 909 if (type == 3) { 910 var label = jQuery(input).parent().parent().find('label'); 911 912 if (!label.length) { 913 jQuery(input).parent().parent().prepend('<label for="' + input.name + '">' + input.placeholder.replace('(optional)', '') + '</label>'); 914 var label = jQuery(input).parent().parent().find('label'); 915 } 916 917 jQuery(input).parent().parent().find('.woocommerce-input-wrapper').remove(); 918 } 919 920 label.before(container); 921 container.appendChild(input); 922 container.appendChild(label[0]); 923 _this = _possibleConstructorReturn(this, _getPrototypeOf(InputInsideLabelField).call(this, container)); 924 /** @private {?Element} */ 925 926 _this.input_; 927 /** @type {?MDCRipple} */ 928 929 _this.ripple; 930 /** @private {?MDCLineRipple} */ 931 932 _this.lineRipple_; 933 /** @private {?MDCTextFieldHelperText} */ 934 935 _this.helperText_; 936 /** @private {?MDCTextFieldIcon} */ 937 938 _this.icon_; 939 /** @private {?MDCFloatingLabel} */ 940 941 _this.label_; 942 /** @private {?MDCNotchedOutline} */ 943 944 _this.outline_; 945 return _this; 946 } 947 948 _createClass(InputInsideLabelField, [{ 949 key: "initialize", 950 value: function initialize() { 951 var _this2 = this; 952 953 var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) { 954 return new MDCRipple(el, foundation); 955 }; 956 var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { 957 return new _material_line_ripple__WEBPACK_IMPORTED_MODULE_3__["MDCLineRipple"](el); 958 }; 959 var helperTextFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) { 960 return new _material_textfield__WEBPACK_IMPORTED_MODULE_0__["MDCTextFieldHelperText"](el); 961 }; 962 var iconFactory = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (el) { 963 return new _material_textfield__WEBPACK_IMPORTED_MODULE_0__["MDCTextFieldIcon"](el); 964 }; 965 var labelFactory = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (el) { 966 return new _material_floating_label__WEBPACK_IMPORTED_MODULE_1__["MDCFloatingLabel"](el); 967 }; 968 var outlineFactory = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (el) { 969 return new _material_notched_outline__WEBPACK_IMPORTED_MODULE_2__["MDCNotchedOutline"](el); 970 }; 971 this.input_ = this.root_.querySelector('input,textarea'); 972 this.input_.classList.add('mdc-text-field__input'); 973 var labelElement = this.root_.querySelector('label'); 974 this.root_.classList.add('mdc-text-field'); 975 976 if (this.input_.tagName.toLocaleLowerCase() === 'textarea') { 977 this.root_.classList.add('mdc-text-field--textarea'); 978 } 979 980 if (labelElement) { 981 labelElement.classList.add('mdc-floating-label'); 982 this.label_ = labelFactory(labelElement); 983 } 984 985 var lineRippleElement = this.root_.querySelector(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["strings"].BOTTOM_LINE_SELECTOR); 986 987 if (lineRippleElement) { 988 this.lineRipple_ = lineRippleFactory(lineRippleElement); 989 } else { 990 if (this.input_.tagName.toLocaleLowerCase() !== 'textarea') { 991 var newRipple = document.createElement('div'); 992 newRipple.classList.add('mdc-line-ripple'); 993 this.root_.appendChild(newRipple); 994 this.lineRipple_ = lineRippleFactory(newRipple); 995 } 996 } 997 998 var outlineElement = this.root_.querySelector(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["strings"].OUTLINE_SELECTOR); 999 1000 if (outlineElement) { 1001 this.outline_ = outlineFactory(outlineElement); 1002 } 1003 1004 if (this.input_.hasAttribute(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["strings"].ARIA_CONTROLS)) { 1005 var helperTextElement = document.getElementById(this.input_.getAttribute(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["strings"].ARIA_CONTROLS)); 1006 1007 if (helperTextElement) { 1008 this.helperText_ = helperTextFactory(helperTextElement); 1009 } 1010 } 1011 1012 var iconElement = this.root_.querySelector(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["strings"].ICON_SELECTOR); 1013 1014 if (iconElement) { 1015 this.icon_ = iconFactory(iconElement); 1016 } 1017 1018 this.ripple = null; 1019 1020 if (this.root_.classList.contains(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["cssClasses"].BOX) || this.root_.classList.contains(_material_textfield_constants__WEBPACK_IMPORTED_MODULE_4__["cssClasses"].OUTLINED)) { 1021 // For outlined text fields, the ripple is instantiated on the outline element instead of the root element 1022 // to clip the ripple at the outline while still allowing the label to be visible beyond the outline. 1023 var rippleCapableSurface = outlineElement ? this.outline_ : this; 1024 var rippleRoot = outlineElement ? outlineElement : this.root_; 1025 var MATCHES = getMatchesProperty(HTMLElement.prototype); 1026 var adapter = Object.assign(MDCRipple.createAdapter( 1027 /** @type {!RippleCapableSurface} */ 1028 rippleCapableSurface), { 1029 isSurfaceActive: function isSurfaceActive() { 1030 return _this2.input_[MATCHES](':active'); 1031 }, 1032 registerInteractionHandler: function registerInteractionHandler(type, handler) { 1033 return _this2.input_.addEventListener(type, handler); 1034 }, 1035 deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { 1036 return _this2.input_.removeEventListener(type, handler); 1037 } 1038 }); 1039 var foundation = new MDCRippleFoundation(adapter); 1040 this.ripple = rippleFactory(rippleRoot, foundation); 1041 } 1042 } 1043 }]); 1044 1045 return InputInsideLabelField; 1046 }(_material_textfield__WEBPACK_IMPORTED_MODULE_0__["MDCTextField"]); 1047 1048 1049 1050 /***/ }), 1051 1052 /***/ "./js/forms.js": 1053 /*!*********************!*\ 1054 !*** ./js/forms.js ***! 1055 \*********************/ 1056 /*! no exports provided */ 1057 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1058 1059 "use strict"; 1060 __webpack_require__.r(__webpack_exports__); 1061 /* harmony import */ var _material_form_field__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/form-field */ "./node_modules/@material/form-field/index.js"); 1062 /* harmony import */ var _material_textfield__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/textfield */ "./node_modules/@material/textfield/index.js"); 1063 /* harmony import */ var _material_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/checkbox */ "./node_modules/@material/checkbox/index.js"); 1064 /* harmony import */ var _form_fields_input_in_label__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./form-fields/input-in-label */ "./js/form-fields/input-in-label.js"); 1065 /* harmony import */ var _form_fields_checkbox_in_label__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form-fields/checkbox-in-label */ "./js/form-fields/checkbox-in-label.js"); 1066 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1067 //import {MDCFormField, MDCFormFieldFoundation} from '@material/form-field'; 1068 1069 1070 1071 1072 1073 1074 Object(_utils__WEBPACK_IMPORTED_MODULE_5__["onDocReady"])(function ($) { 1075 var textFields = document.querySelectorAll('.mdc-text-field'); 1076 var inputSelector = 'input:not([type=hidden]):not([type=submit]):not([type=reset]):not([type=checkbox])'; 1077 1078 for (var i = 0, textField; textField = textFields[i]; i++) { 1079 new _material_textfield__WEBPACK_IMPORTED_MODULE_1__["MDCTextField"](textField); 1080 } 1081 1082 var inputsInLabels = jQuery("p > label > span > ".concat(inputSelector, " , p > label > span > textarea")); 1083 1084 for (var _i = 0; _i < inputsInLabels.length; _i++) { 1085 var input = inputsInLabels[_i]; 1086 1087 if (Object(_utils__WEBPACK_IMPORTED_MODULE_5__["isVisible"])(input)) { 1088 new _form_fields_input_in_label__WEBPACK_IMPORTED_MODULE_3__["InputInsideLabelField"](input, 1); 1089 } 1090 } 1091 1092 var inputsInParagraphs = jQuery(".woocommerce p > ".concat(inputSelector, ", .woocommerce p > textarea")); 1093 1094 for (var _i2 = 0; _i2 < inputsInParagraphs.length; _i2++) { 1095 var _input = inputsInParagraphs[_i2]; 1096 new _form_fields_input_in_label__WEBPACK_IMPORTED_MODULE_3__["InputInsideLabelField"](_input, 2); 1097 } 1098 1099 var inputsInSpans = jQuery(".woocommerce p > span > ".concat(inputSelector, ", .woocommerce p > span > textarea")); 1100 1101 for (var _i3 = 0; _i3 < inputsInSpans.length; _i3++) { 1102 var _input2 = inputsInSpans[_i3]; 1103 new _form_fields_input_in_label__WEBPACK_IMPORTED_MODULE_3__["InputInsideLabelField"](_input2, 3); 1104 } 1105 1106 var checkboxesInLabels = jQuery(".woocommerce label > input[type=checkbox]"); 1107 1108 for (var _i4 = 0; _i4 < checkboxesInLabels.length; _i4++) { 1109 var checkbox = checkboxesInLabels[_i4]; 1110 new _form_fields_checkbox_in_label__WEBPACK_IMPORTED_MODULE_4__["CheckboxInsideLabelField"](checkbox); 1111 } // custom script for create an account from checkout -> to be moved 1112 1113 1114 $('.woocommerce-checkout .woocommerce-account-fields #createaccount').on('change', function () { 1115 $('div.create-account').hide(); 1116 1117 if ($(this).is(':checked')) { 1118 // Ensure password is not pre-populated. 1119 $('#account_password').val('').change(); 1120 $('div.create-account').slideDown(); 1121 } 1122 }); 1123 /* custom script for create an account password from checkout -> to be moved */ 1124 1125 /* password strength label and password strength hint are added/removed on keyup, thus 1126 making hard for MDCTextFieldHelperText to be implemented on MDCTextField */ 1127 1128 $('.woocommerce #account_password, .woocommerce .edit-account #password_1').on('keyup', function () { 1129 var _this = this; 1130 1131 sleep(100).then(function () { 1132 var hasPasswordLabel = false, 1133 hasPasswordHint = false; 1134 var parent = $(_this).parent(); 1135 var passwordLabel = parent.find('.woocommerce-password-strength'); 1136 var passwordHint = parent.find('.woocommerce-password-hint'); 1137 var parentMarginBottom = 8; 1138 1139 if (passwordLabel.css('display') == 'block') { 1140 hasPasswordLabel = true; 1141 var passwordLabelHeight = 30; 1142 1143 if (passwordLabel.outerHeight() != 6) { 1144 passwordLabelHeight = passwordLabel.outerHeight(); 1145 } 1146 1147 passwordLabel.css('bottom', '-' + passwordLabelHeight + 'px'); 1148 parentMarginBottom += passwordLabelHeight; 1149 } 1150 1151 if (passwordHint.length) { 1152 hasPasswordHint = true; 1153 passwordHint.css('position', 'absolute'); 1154 passwordHint.css('bottom', '-' + (passwordHint.outerHeight() + passwordLabelHeight) + 'px'); 1155 passwordHint.show(); 1156 parentMarginBottom += passwordHint.outerHeight(); 1157 } 1158 1159 parent.css('margin-bottom', parentMarginBottom + 'px'); 1160 }); 1161 }); 1162 }); 1163 1164 function sleep(ms) { 1165 return new Promise(function (resolve) { 1166 return setTimeout(resolve, ms); 1167 }); 1168 } 1169 1170 /***/ }), 1171 1172 /***/ "./js/gallery.js": 1173 /*!***********************!*\ 1174 !*** ./js/gallery.js ***! 1175 \***********************/ 1176 /*! no static exports found */ 1177 /***/ (function(module, exports) { 1178 1179 (function ($) { 1180 window.MaterialisCaptionsGallery = function (gallery) { 1181 var $gallery = $(gallery); 1182 1183 if (!$gallery.is('.captions-enabled') || $gallery.attr('data-ready')) { 1184 return; 1185 } 1186 1187 $gallery.find('dl').each(function () { 1188 var $dl = $(this); 1189 1190 if ($dl.find('dd').length === 0 && $dl.find('img').attr('alt')) { 1191 $dl.append("<dd class='wp-caption-text gallery-caption'>" + $dl.find('img').attr('alt') + "</dd>"); 1192 } 1193 1194 if ($dl.find('dd').length) { 1195 $dl.find('a').attr('data-caption', $dl.find('dd').html()); 1196 } 1197 }); 1198 $gallery.attr('data-ready', 'true'); 1199 }; 1200 1201 $(function ($) { 1202 var $captionsGalleries = $(".materialis-gallery.captions-enabled"); 1203 $captionsGalleries.each(function () { 1204 window.MaterialisCaptionsGallery(this); 1205 }); 1206 }); 1207 })(jQuery); 1208 1209 /***/ }), 1210 1211 /***/ "./js/header-animations.js": 1212 /*!*********************************!*\ 1213 !*** ./js/header-animations.js ***! 1214 \*********************************/ 1215 /*! no exports provided */ 1216 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1217 1218 "use strict"; 1219 __webpack_require__.r(__webpack_exports__); 1220 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1221 1222 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function () { 1223 var morphed = jQuery("[data-text-effect]"); 1224 1225 if (jQuery.fn.typed && morphed.length && JSON.parse(materialis_morph.header_text_morph)) { 1226 morphed.each(function () { 1227 jQuery(this).empty(); 1228 jQuery(this).typed({ 1229 strings: JSON.parse(jQuery(this).attr('data-text-effect')), 1230 typeSpeed: parseInt(materialis_morph.header_text_morph_speed), 1231 loop: true 1232 }); 1233 }); 1234 } 1235 }); 1236 1237 /***/ }), 1238 1239 /***/ "./js/homepage-arrow.js": 1240 /*!******************************!*\ 1241 !*** ./js/homepage-arrow.js ***! 1242 \******************************/ 1243 /*! no exports provided */ 1244 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1245 1246 "use strict"; 1247 __webpack_require__.r(__webpack_exports__); 1248 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1249 1250 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function ($) { 1251 $('.header-homepage-arrow-c').click(function () { 1252 scrollToSection($('body').find('[data-id]').first()); 1253 }); 1254 }); 1255 1256 /***/ }), 1257 1258 /***/ "./js/masonry.js": 1259 /*!***********************!*\ 1260 !*** ./js/masonry.js ***! 1261 \***********************/ 1262 /*! no exports provided */ 1263 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1264 1265 "use strict"; 1266 __webpack_require__.r(__webpack_exports__); 1267 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1268 1269 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function ($) { 1270 if (!MaterialisTheme.blog_posts_as_masonry_grid) { 1271 return; 1272 } 1273 1274 var postsListRow = $(".post-list.row"); 1275 1276 if (!postsListRow.length) { 1277 return true; 1278 } 1279 1280 function imageLoaded() { 1281 loadedImages++; 1282 1283 if (images.length === loadedImages && postsListRow.data().postsListRow) { 1284 postsListRow.data().masonry.layout(); 1285 } 1286 } 1287 1288 var items = postsListRow.find(".post-list-item").not('.highlighted-post'), 1289 images = postsListRow.find('img'), 1290 loadedImages = 0, 1291 debouncepostsListRowRefresh = jQuery.debounce(function () { 1292 postsListRow.data().masonry.layout(); 1293 }, 500); 1294 items.each(function () { 1295 $(this).css({ 1296 width: $(this).css('max-width') 1297 }); 1298 }); 1299 postsListRow.masonry({ 1300 itemSelector: '.post-list-item', 1301 percentPosition: true, 1302 columnWidth: items.eq(0).attr('data-masonry-width') 1303 }); 1304 images.each(function () { 1305 $(this).on('load', imageLoaded); 1306 debouncepostsListRowRefresh(); 1307 }); 1308 }); 1309 1310 /***/ }), 1311 1312 /***/ "./js/offscreen-menu.js": 1313 /*!******************************!*\ 1314 !*** ./js/offscreen-menu.js ***! 1315 \******************************/ 1316 /*! no exports provided */ 1317 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1318 1319 "use strict"; 1320 __webpack_require__.r(__webpack_exports__); 1321 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1322 1323 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["onDocReady"])(function () { 1324 var $menus = jQuery('.offcanvas_menu'); 1325 var $offCanvasWrapper = jQuery('#offcanvas-wrapper'); 1326 1327 if ($offCanvasWrapper.length) { 1328 jQuery('html').addClass('has-offscreen'); 1329 $offCanvasWrapper.appendTo('body'); 1330 $offCanvasWrapper.removeClass('force-hide'); 1331 $offCanvasWrapper.on('kube.offcanvas.open', function () { 1332 jQuery('html').addClass('offcanvas-opened'); 1333 }); 1334 $offCanvasWrapper.on('kube.offcanvas.close', function () { 1335 jQuery('html').removeClass('offcanvas-opened'); 1336 }); 1337 } 1338 1339 $menus.each(function () { 1340 var $menu = jQuery(this); 1341 $menu.on('materialis.open-all', function () { 1342 jQuery(this).find('.menu-item-has-children, .page_item_has_children').each(function () { 1343 jQuery(this).addClass('open'); 1344 jQuery(this).children('ul').slideDown(100); 1345 }); 1346 }); 1347 $menu.find('.menu-item-has-children > a, .page_item_has_children > a').each(function () { 1348 if (jQuery(this).children('i.mdi.mdi-chevron-right').length === 0) { 1349 jQuery(this).append('<i class="mdi mdi-chevron-right"></i>'); 1350 } 1351 }); 1352 $menu.on('click', '.menu-item-has-children a, .page_item_has_children a,.menu-item-has-children .mdi-chevron-right, .page_item_has_children .mdi-chevron-right', function (event) { 1353 var $this = jQuery(this); 1354 var $li = $this.closest('li'); 1355 1356 if ($li.hasClass('open')) { 1357 if ($this.is('a')) { 1358 return true; 1359 } 1360 1361 $li.children('ul').slideUp(100, function () { 1362 $li.find('ul').each(function () { 1363 jQuery(this).parent().removeClass('open'); 1364 jQuery(this).css('display', 'none'); 1365 }); 1366 }); 1367 } else { 1368 if ($li.children('ul').length) { 1369 $li.children('ul').slideDown(100); 1370 } else { 1371 return true; 1372 } 1373 } 1374 1375 $li.toggleClass('open'); 1376 event.preventDefault(); 1377 event.stopPropagation(); 1378 }); 1379 }); 1380 }); 1381 1382 /***/ }), 1383 1384 /***/ "./js/polyfills.js": 1385 /*!*************************!*\ 1386 !*** ./js/polyfills.js ***! 1387 \*************************/ 1388 /*! no static exports found */ 1389 /***/ (function(module, exports) { 1390 1391 (function (ElementProto) { 1392 if (typeof ElementProto.matches !== 'function') { 1393 ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) { 1394 var element = this; 1395 var elements = (element.document || element.ownerDocument).querySelectorAll(selector); 1396 var index = 0; 1397 1398 while (elements[index] && elements[index] !== element) { 1399 ++index; 1400 } 1401 1402 return Boolean(elements[index]); 1403 }; 1404 } 1405 1406 if (typeof ElementProto.closest !== 'function') { 1407 ElementProto.closest = function closest(selector) { 1408 var element = this; 1409 1410 while (element && element.nodeType === 1) { 1411 if (element.matches(selector)) { 1412 return element; 1413 } 1414 1415 element = element.parentNode; 1416 } 1417 1418 return null; 1419 }; 1420 } 1421 })(window.Element.prototype); 1422 1423 (function () { 1424 if (typeof Object.assign != 'function') { 1425 // Must be writable: true, enumerable: false, configurable: true 1426 Object.defineProperty(Object, "assign", { 1427 value: function assign(target, varArgs) { 1428 // .length of function is 2 1429 'use strict'; 1430 1431 if (target == null) { 1432 // TypeError if undefined or null 1433 throw new TypeError('Cannot convert undefined or null to object'); 1434 } 1435 1436 var to = Object(target); 1437 1438 for (var index = 1; index < arguments.length; index++) { 1439 var nextSource = arguments[index]; 1440 1441 if (nextSource != null) { 1442 // Skip over if undefined or null 1443 for (var nextKey in nextSource) { 1444 // Avoid bugs when hasOwnProperty is shadowed 1445 if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { 1446 to[nextKey] = nextSource[nextKey]; 1447 } 1448 } 1449 } 1450 } 1451 1452 return to; 1453 }, 1454 writable: true, 1455 configurable: true 1456 }); 1457 } 1458 })(); 1459 1460 /***/ }), 1461 1462 /***/ "./js/ripple.js": 1463 /*!**********************!*\ 1464 !*** ./js/ripple.js ***! 1465 \**********************/ 1466 /*! no exports provided */ 1467 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1468 1469 "use strict"; 1470 __webpack_require__.r(__webpack_exports__); 1471 /* harmony import */ var _material_ripple__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/ripple */ "./node_modules/@material/ripple/index.js"); 1472 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./js/utils.js"); 1473 1474 1475 Object(_utils__WEBPACK_IMPORTED_MODULE_1__["onDocReady"])(function () { 1476 var btns = document.querySelectorAll('.button'); 1477 1478 for (var i = 0, btn; btn = btns[i]; i++) { 1479 _material_ripple__WEBPACK_IMPORTED_MODULE_0__["MDCRipple"].attachTo(btn); 1480 } 1481 }); 1482 Object(_utils__WEBPACK_IMPORTED_MODULE_1__["onDocReady"])(function ($) { 1483 var menuElements = []; 1484 1485 if (document.querySelectorAll('#main_menu').length !== 0) { 1486 menuElements = document.querySelectorAll('#main_menu li a, #materialis-footer-menu li a'); 1487 } else { 1488 menuElements = document.querySelectorAll('#materialis-footer-menu li a'); 1489 } 1490 1491 for (var i = 0, menuElement; menuElement = menuElements[i]; i++) { 1492 _material_ripple__WEBPACK_IMPORTED_MODULE_0__["MDCRipple"].attachTo(menuElement); 1493 } 1494 }); // woocommerce 1495 1496 function sleep(ms) { 1497 return new Promise(function (resolve) { 1498 return setTimeout(resolve, ms); 1499 }); 1500 } 1501 1502 Object(_utils__WEBPACK_IMPORTED_MODULE_1__["onDocReady"])(function ($) { 1503 var wooCommentSubmit = document.querySelectorAll('.woocommerce .product #respond input#submit'); 1504 1505 if (wooCommentSubmit.length) { 1506 _material_ripple__WEBPACK_IMPORTED_MODULE_0__["MDCRipple"].attachTo(wooCommentSubmit[0]); 1507 } 1508 1509 sleep(1000).then(function () { 1510 var miniCartBtns = document.querySelectorAll('.materialis-woo-header-cart .woocommerce-mini-cart__buttons .button'); 1511 1512 for (var i = 0, cbtn; cbtn = miniCartBtns[i]; i++) { 1513 _material_ripple__WEBPACK_IMPORTED_MODULE_0__["MDCRipple"].attachTo(cbtn); 1514 } 1515 }); 1516 }); 1517 1518 /***/ }), 1519 1520 /***/ "./js/theme.js": 1521 /*!*********************!*\ 1522 !*** ./js/theme.js ***! 1523 \*********************/ 1524 /*! no static exports found */ 1525 /***/ (function(module, exports, __webpack_require__) { 1526 1527 (function (MaterialisTheme) { 1528 __webpack_require__(/*! ./polyfills */ "./js/polyfills.js"); 1529 1530 __webpack_require__(/*! es6-promise */ "./node_modules/es6-promise/dist/es6-promise.js").polyfill(); 1531 1532 __webpack_require__(/*! ./_theme */ "./js/_theme.js"); 1533 1534 __webpack_require__(/*! ./ripple */ "./js/ripple.js"); 1535 1536 __webpack_require__(/*! ./offscreen-menu */ "./js/offscreen-menu.js"); 1537 1538 __webpack_require__(/*! ./masonry */ "./js/masonry.js"); 1539 1540 __webpack_require__(/*! ./blog-comments */ "./js/blog-comments.js"); 1541 1542 __webpack_require__(/*! ./forms */ "./js/forms.js"); 1543 1544 __webpack_require__(/*! ./backstretch */ "./js/backstretch.js"); 1545 1546 __webpack_require__(/*! ./masonry */ "./js/masonry.js"); 1547 1548 __webpack_require__(/*! ./homepage-arrow */ "./js/homepage-arrow.js"); 1549 1550 __webpack_require__(/*! ./counters */ "./js/counters.js"); 1551 1552 __webpack_require__(/*! ./header-animations */ "./js/header-animations.js"); 1553 1554 __webpack_require__(/*! ./footer */ "./js/footer.js"); 1555 1556 __webpack_require__(/*! ./gallery */ "./js/gallery.js"); 1557 })(function () { 1558 window.MaterialisTheme = window.MaterialisTheme || {}; 1559 return window.MaterialisTheme; 1560 }()); // require('./header-video'); 1561 1562 /***/ }), 1563 1564 /***/ "./js/utils.js": 1565 /*!*********************!*\ 1566 !*** ./js/utils.js ***! 1567 \*********************/ 1568 /*! exports provided: onDocReady, isVisible */ 1569 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1570 1571 "use strict"; 1572 __webpack_require__.r(__webpack_exports__); 1573 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onDocReady", function() { return onDocReady; }); 1574 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; }); 1575 // function onDocReady(callback) { 1576 // // in case the document is already rendered 1577 // if (document.readyState === 'complete') { 1578 // callback(jQuery); 1579 // } else { 1580 // if (document.addEventListener) { 1581 // document.addEventListener('DOMContentLoaded', function () { 1582 // callback(jQuery); 1583 // }); 1584 // } else document.attachEvent('onreadystatechange', function () { 1585 // if (document.readyState === 'complete') callback(jQuery); 1586 // }); 1587 // } 1588 // } 1589 var onDocReady = jQuery; 1590 1591 var isVisible = function isVisible(element) { 1592 return jQuery(element).is(':visible'); 1593 }; 1594 1595 1596 1597 /***/ }), 1598 1599 /***/ "./node_modules/@material/animation/index.js": 1600 /*!***************************************************!*\ 1601 !*** ./node_modules/@material/animation/index.js ***! 1602 \***************************************************/ 1603 /*! exports provided: transformStyleProperties, getCorrectEventName, getCorrectPropertyName */ 1604 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1605 1606 "use strict"; 1607 __webpack_require__.r(__webpack_exports__); 1608 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformStyleProperties", function() { return transformStyleProperties; }); 1609 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCorrectEventName", function() { return getCorrectEventName; }); 1610 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCorrectPropertyName", function() { return getCorrectPropertyName; }); 1611 /** 1612 * Copyright 2016 Google Inc. All Rights Reserved. 1613 * 1614 * Licensed under the Apache License, Version 2.0 (the "License"); 1615 * you may not use this file except in compliance with the License. 1616 * You may obtain a copy of the License at 1617 * 1618 * http://www.apache.org/licenses/LICENSE-2.0 1619 * 1620 * Unless required by applicable law or agreed to in writing, software 1621 * distributed under the License is distributed on an "AS IS" BASIS, 1622 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1623 * See the License for the specific language governing permissions and 1624 * limitations under the License. 1625 */ 1626 1627 /** 1628 * @typedef {{ 1629 * noPrefix: string, 1630 * webkitPrefix: string 1631 * }} 1632 */ 1633 var VendorPropertyMapType; 1634 /** @const {Object<string, !VendorPropertyMapType>} */ 1635 1636 var eventTypeMap = { 1637 'animationstart': { 1638 noPrefix: 'animationstart', 1639 webkitPrefix: 'webkitAnimationStart', 1640 styleProperty: 'animation' 1641 }, 1642 'animationend': { 1643 noPrefix: 'animationend', 1644 webkitPrefix: 'webkitAnimationEnd', 1645 styleProperty: 'animation' 1646 }, 1647 'animationiteration': { 1648 noPrefix: 'animationiteration', 1649 webkitPrefix: 'webkitAnimationIteration', 1650 styleProperty: 'animation' 1651 }, 1652 'transitionend': { 1653 noPrefix: 'transitionend', 1654 webkitPrefix: 'webkitTransitionEnd', 1655 styleProperty: 'transition' 1656 } 1657 }; 1658 /** @const {Object<string, !VendorPropertyMapType>} */ 1659 1660 var cssPropertyMap = { 1661 'animation': { 1662 noPrefix: 'animation', 1663 webkitPrefix: '-webkit-animation' 1664 }, 1665 'transform': { 1666 noPrefix: 'transform', 1667 webkitPrefix: '-webkit-transform' 1668 }, 1669 'transition': { 1670 noPrefix: 'transition', 1671 webkitPrefix: '-webkit-transition' 1672 } 1673 }; 1674 /** 1675 * @param {!Object} windowObj 1676 * @return {boolean} 1677 */ 1678 1679 function hasProperShape(windowObj) { 1680 return windowObj['document'] !== undefined && typeof windowObj['document']['createElement'] === 'function'; 1681 } 1682 /** 1683 * @param {string} eventType 1684 * @return {boolean} 1685 */ 1686 1687 1688 function eventFoundInMaps(eventType) { 1689 return eventType in eventTypeMap || eventType in cssPropertyMap; 1690 } 1691 /** 1692 * @param {string} eventType 1693 * @param {!Object<string, !VendorPropertyMapType>} map 1694 * @param {!Element} el 1695 * @return {string} 1696 */ 1697 1698 1699 function getJavaScriptEventName(eventType, map, el) { 1700 return map[eventType].styleProperty in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; 1701 } 1702 /** 1703 * Helper function to determine browser prefix for CSS3 animation events 1704 * and property names. 1705 * @param {!Object} windowObj 1706 * @param {string} eventType 1707 * @return {string} 1708 */ 1709 1710 1711 function getAnimationName(windowObj, eventType) { 1712 if (!hasProperShape(windowObj) || !eventFoundInMaps(eventType)) { 1713 return eventType; 1714 } 1715 1716 var map = 1717 /** @type {!Object<string, !VendorPropertyMapType>} */ 1718 eventType in eventTypeMap ? eventTypeMap : cssPropertyMap; 1719 var el = windowObj['document']['createElement']('div'); 1720 var eventName = ''; 1721 1722 if (map === eventTypeMap) { 1723 eventName = getJavaScriptEventName(eventType, map, el); 1724 } else { 1725 eventName = map[eventType].noPrefix in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; 1726 } 1727 1728 return eventName; 1729 } // Public functions to access getAnimationName() for JavaScript events or CSS 1730 // property names. 1731 1732 1733 var transformStyleProperties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'MSTransform']; 1734 /** 1735 * @param {!Object} windowObj 1736 * @param {string} eventType 1737 * @return {string} 1738 */ 1739 1740 function getCorrectEventName(windowObj, eventType) { 1741 return getAnimationName(windowObj, eventType); 1742 } 1743 /** 1744 * @param {!Object} windowObj 1745 * @param {string} eventType 1746 * @return {string} 1747 */ 1748 1749 function getCorrectPropertyName(windowObj, eventType) { 1750 return getAnimationName(windowObj, eventType); 1751 } 1752 1753 /***/ }), 1754 1755 /***/ "./node_modules/@material/base/component.js": 1756 /*!**************************************************!*\ 1757 !*** ./node_modules/@material/base/component.js ***! 1758 \**************************************************/ 1759 /*! exports provided: default */ 1760 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1761 1762 "use strict"; 1763 __webpack_require__.r(__webpack_exports__); 1764 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/base/foundation.js"); 1765 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1766 1767 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1768 1769 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 1770 1771 /** 1772 * @license 1773 * Copyright 2016 Google Inc. 1774 * 1775 * Licensed under the Apache License, Version 2.0 (the "License"); 1776 * you may not use this file except in compliance with the License. 1777 * You may obtain a copy of the License at 1778 * 1779 * http://www.apache.org/licenses/LICENSE-2.0 1780 * 1781 * Unless required by applicable law or agreed to in writing, software 1782 * distributed under the License is distributed on an "AS IS" BASIS, 1783 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1784 * See the License for the specific language governing permissions and 1785 * limitations under the License. 1786 */ 1787 1788 /** 1789 * @template F 1790 */ 1791 1792 var MDCComponent = 1793 /*#__PURE__*/ 1794 function () { 1795 _createClass(MDCComponent, null, [{ 1796 key: "attachTo", 1797 1798 /** 1799 * @param {!Element} root 1800 * @return {!MDCComponent} 1801 */ 1802 value: function attachTo(root) { 1803 // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and 1804 // returns an instantiated component with its root set to that element. Also note that in the cases of 1805 // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized 1806 // from getDefaultFoundation(). 1807 return new MDCComponent(root, new _foundation__WEBPACK_IMPORTED_MODULE_0__["default"]()); 1808 } 1809 /** 1810 * @param {!Element} root 1811 * @param {F=} foundation 1812 * @param {...?} args 1813 */ 1814 1815 }]); 1816 1817 function MDCComponent(root) { 1818 var foundation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; 1819 1820 _classCallCheck(this, MDCComponent); 1821 1822 /** @protected {!Element} */ 1823 this.root_ = root; 1824 1825 for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { 1826 args[_key - 2] = arguments[_key]; 1827 } 1828 1829 this.initialize.apply(this, args); // Note that we initialize foundation here and not within the constructor's default param so that 1830 // this.root_ is defined and can be used within the foundation class. 1831 1832 /** @protected {!F} */ 1833 1834 this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation; 1835 this.foundation_.init(); 1836 this.initialSyncWithDOM(); 1837 } 1838 1839 _createClass(MDCComponent, [{ 1840 key: "initialize", 1841 value: function initialize() 1842 /* ...args */ 1843 {} // Subclasses can override this to do any additional setup work that would be considered part of a 1844 // "constructor". Essentially, it is a hook into the parent constructor before the foundation is 1845 // initialized. Any additional arguments besides root and foundation will be passed in here. 1846 1847 /** 1848 * @return {!F} foundation 1849 */ 1850 1851 }, { 1852 key: "getDefaultFoundation", 1853 value: function getDefaultFoundation() { 1854 // Subclasses must override this method to return a properly configured foundation class for the 1855 // component. 1856 throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class'); 1857 } 1858 }, { 1859 key: "initialSyncWithDOM", 1860 value: function initialSyncWithDOM() {// Subclasses should override this method if they need to perform work to synchronize with a host DOM 1861 // object. An example of this would be a form control wrapper that needs to synchronize its internal state 1862 // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM 1863 // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor. 1864 } 1865 }, { 1866 key: "destroy", 1867 value: function destroy() { 1868 // Subclasses may implement this method to release any resources / deregister any listeners they have 1869 // attached. An example of this might be deregistering a resize event from the window object. 1870 this.foundation_.destroy(); 1871 } 1872 /** 1873 * Wrapper method to add an event listener to the component's root element. This is most useful when 1874 * listening for custom events. 1875 * @param {string} evtType 1876 * @param {!Function} handler 1877 */ 1878 1879 }, { 1880 key: "listen", 1881 value: function listen(evtType, handler) { 1882 this.root_.addEventListener(evtType, handler); 1883 } 1884 /** 1885 * Wrapper method to remove an event listener to the component's root element. This is most useful when 1886 * unlistening for custom events. 1887 * @param {string} evtType 1888 * @param {!Function} handler 1889 */ 1890 1891 }, { 1892 key: "unlisten", 1893 value: function unlisten(evtType, handler) { 1894 this.root_.removeEventListener(evtType, handler); 1895 } 1896 /** 1897 * Fires a cross-browser-compatible custom event from the component root of the given type, 1898 * with the given data. 1899 * @param {string} evtType 1900 * @param {!Object} evtData 1901 * @param {boolean=} shouldBubble 1902 */ 1903 1904 }, { 1905 key: "emit", 1906 value: function emit(evtType, evtData) { 1907 var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 1908 var evt; 1909 1910 if (typeof CustomEvent === 'function') { 1911 evt = new CustomEvent(evtType, { 1912 detail: evtData, 1913 bubbles: shouldBubble 1914 }); 1915 } else { 1916 evt = document.createEvent('CustomEvent'); 1917 evt.initCustomEvent(evtType, shouldBubble, false, evtData); 1918 } 1919 1920 this.root_.dispatchEvent(evt); 1921 } 1922 }]); 1923 1924 return MDCComponent; 1925 }(); 1926 1927 /* harmony default export */ __webpack_exports__["default"] = (MDCComponent); 1928 1929 /***/ }), 1930 1931 /***/ "./node_modules/@material/base/foundation.js": 1932 /*!***************************************************!*\ 1933 !*** ./node_modules/@material/base/foundation.js ***! 1934 \***************************************************/ 1935 /*! exports provided: default */ 1936 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1937 1938 "use strict"; 1939 __webpack_require__.r(__webpack_exports__); 1940 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 1941 1942 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 1943 1944 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 1945 1946 /** 1947 * @license 1948 * Copyright 2016 Google Inc. 1949 * 1950 * Licensed under the Apache License, Version 2.0 (the "License"); 1951 * you may not use this file except in compliance with the License. 1952 * You may obtain a copy of the License at 1953 * 1954 * http://www.apache.org/licenses/LICENSE-2.0 1955 * 1956 * Unless required by applicable law or agreed to in writing, software 1957 * distributed under the License is distributed on an "AS IS" BASIS, 1958 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1959 * See the License for the specific language governing permissions and 1960 * limitations under the License. 1961 */ 1962 1963 /** 1964 * @template A 1965 */ 1966 var MDCFoundation = 1967 /*#__PURE__*/ 1968 function () { 1969 _createClass(MDCFoundation, null, [{ 1970 key: "cssClasses", 1971 1972 /** @return enum{cssClasses} */ 1973 get: function get() { 1974 // Classes extending MDCFoundation should implement this method to return an object which exports every 1975 // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'} 1976 return {}; 1977 } 1978 /** @return enum{strings} */ 1979 1980 }, { 1981 key: "strings", 1982 get: function get() { 1983 // Classes extending MDCFoundation should implement this method to return an object which exports all 1984 // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'} 1985 return {}; 1986 } 1987 /** @return enum{numbers} */ 1988 1989 }, { 1990 key: "numbers", 1991 get: function get() { 1992 // Classes extending MDCFoundation should implement this method to return an object which exports all 1993 // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350} 1994 return {}; 1995 } 1996 /** @return {!Object} */ 1997 1998 }, { 1999 key: "defaultAdapter", 2000 get: function get() { 2001 // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient 2002 // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter 2003 // validation. 2004 return {}; 2005 } 2006 /** 2007 * @param {A=} adapter 2008 */ 2009 2010 }]); 2011 2012 function MDCFoundation() { 2013 var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 2014 2015 _classCallCheck(this, MDCFoundation); 2016 2017 /** @protected {!A} */ 2018 this.adapter_ = adapter; 2019 } 2020 2021 _createClass(MDCFoundation, [{ 2022 key: "init", 2023 value: function init() {// Subclasses should override this method to perform initialization routines (registering events, etc.) 2024 } 2025 }, { 2026 key: "destroy", 2027 value: function destroy() {// Subclasses should override this method to perform de-initialization routines (de-registering events, etc.) 2028 } 2029 }]); 2030 2031 return MDCFoundation; 2032 }(); 2033 2034 /* harmony default export */ __webpack_exports__["default"] = (MDCFoundation); 2035 2036 /***/ }), 2037 2038 /***/ "./node_modules/@material/checkbox/adapter.js": 2039 /*!****************************************************!*\ 2040 !*** ./node_modules/@material/checkbox/adapter.js ***! 2041 \****************************************************/ 2042 /*! exports provided: default */ 2043 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2044 2045 "use strict"; 2046 __webpack_require__.r(__webpack_exports__); 2047 /* harmony import */ var _material_selection_control_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/selection-control/index */ "./node_modules/@material/selection-control/index.js"); 2048 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 2049 2050 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 2051 2052 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 2053 2054 /** 2055 * @license 2056 * Copyright 2016 Google Inc. All Rights Reserved. 2057 * 2058 * Licensed under the Apache License, Version 2.0 (the "License"); 2059 * you may not use this file except in compliance with the License. 2060 * You may obtain a copy of the License at 2061 * 2062 * http://www.apache.org/licenses/LICENSE-2.0 2063 * 2064 * Unless required by applicable law or agreed to in writing, software 2065 * distributed under the License is distributed on an "AS IS" BASIS, 2066 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2067 * See the License for the specific language governing permissions and 2068 * limitations under the License. 2069 */ 2070 2071 /* eslint-disable no-unused-vars */ 2072 2073 /* eslint no-unused-vars: [2, {"args": "none"}] */ 2074 2075 /** 2076 * Adapter for MDC Checkbox. Provides an interface for managing 2077 * - classes 2078 * - dom 2079 * - event handlers 2080 * 2081 * Additionally, provides type information for the adapter to the Closure 2082 * compiler. 2083 * 2084 * Implement this adapter for your framework of choice to delegate updates to 2085 * the component in your framework of choice. See architecture documentation 2086 * for more details. 2087 * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md 2088 * 2089 * @record 2090 */ 2091 2092 var MDCCheckboxAdapter = 2093 /*#__PURE__*/ 2094 function () { 2095 function MDCCheckboxAdapter() { 2096 _classCallCheck(this, MDCCheckboxAdapter); 2097 } 2098 2099 _createClass(MDCCheckboxAdapter, [{ 2100 key: "addClass", 2101 2102 /** @param {string} className */ 2103 value: function addClass(className) {} 2104 /** @param {string} className */ 2105 2106 }, { 2107 key: "removeClass", 2108 value: function removeClass(className) {} 2109 /** 2110 * Sets an attribute with a given value on the input element. 2111 * @param {string} attr 2112 * @param {string} value 2113 */ 2114 2115 }, { 2116 key: "setNativeControlAttr", 2117 value: function setNativeControlAttr(attr, value) {} 2118 /** 2119 * Removes an attribute from the input element. 2120 * @param {string} attr 2121 */ 2122 2123 }, { 2124 key: "removeNativeControlAttr", 2125 value: function removeNativeControlAttr(attr) {} 2126 /** @param {!EventListener} handler */ 2127 2128 }, { 2129 key: "registerAnimationEndHandler", 2130 value: function registerAnimationEndHandler(handler) {} 2131 /** @param {!EventListener} handler */ 2132 2133 }, { 2134 key: "deregisterAnimationEndHandler", 2135 value: function deregisterAnimationEndHandler(handler) {} 2136 /** @param {!EventListener} handler */ 2137 2138 }, { 2139 key: "registerChangeHandler", 2140 value: function registerChangeHandler(handler) {} 2141 /** @param {!EventListener} handler */ 2142 2143 }, { 2144 key: "deregisterChangeHandler", 2145 value: function deregisterChangeHandler(handler) {} 2146 /** @return {!MDCSelectionControlState} */ 2147 2148 }, { 2149 key: "getNativeControl", 2150 value: function getNativeControl() {} 2151 }, { 2152 key: "forceLayout", 2153 value: function forceLayout() {} 2154 /** @return {boolean} */ 2155 2156 }, { 2157 key: "isAttachedToDOM", 2158 value: function isAttachedToDOM() {} 2159 }]); 2160 2161 return MDCCheckboxAdapter; 2162 }(); 2163 2164 /* harmony default export */ __webpack_exports__["default"] = (MDCCheckboxAdapter); 2165 2166 /***/ }), 2167 2168 /***/ "./node_modules/@material/checkbox/constants.js": 2169 /*!******************************************************!*\ 2170 !*** ./node_modules/@material/checkbox/constants.js ***! 2171 \******************************************************/ 2172 /*! exports provided: cssClasses, strings, numbers */ 2173 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2174 2175 "use strict"; 2176 __webpack_require__.r(__webpack_exports__); 2177 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 2178 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 2179 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numbers", function() { return numbers; }); 2180 /** 2181 * @license 2182 * Copyright 2016 Google Inc. All Rights Reserved. 2183 * 2184 * Licensed under the Apache License, Version 2.0 (the "License"); 2185 * you may not use this file except in compliance with the License. 2186 * You may obtain a copy of the License at 2187 * 2188 * http://www.apache.org/licenses/LICENSE-2.0 2189 * 2190 * Unless required by applicable law or agreed to in writing, software 2191 * distributed under the License is distributed on an "AS IS" BASIS, 2192 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2193 * See the License for the specific language governing permissions and 2194 * limitations under the License. 2195 */ 2196 2197 /** @const {string} */ 2198 var ROOT = 'mdc-checkbox'; 2199 /** @enum {string} */ 2200 2201 var cssClasses = { 2202 UPGRADED: 'mdc-checkbox--upgraded', 2203 CHECKED: 'mdc-checkbox--checked', 2204 INDETERMINATE: 'mdc-checkbox--indeterminate', 2205 DISABLED: 'mdc-checkbox--disabled', 2206 ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked', 2207 ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate', 2208 ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked', 2209 ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate', 2210 ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked', 2211 ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked' 2212 }; 2213 /** @enum {string} */ 2214 2215 var strings = { 2216 NATIVE_CONTROL_SELECTOR: ".".concat(ROOT, "__native-control"), 2217 TRANSITION_STATE_INIT: 'init', 2218 TRANSITION_STATE_CHECKED: 'checked', 2219 TRANSITION_STATE_UNCHECKED: 'unchecked', 2220 TRANSITION_STATE_INDETERMINATE: 'indeterminate', 2221 ARIA_CHECKED_ATTR: 'aria-checked', 2222 ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed' 2223 }; 2224 /** @enum {number} */ 2225 2226 var numbers = { 2227 ANIM_END_LATCH_MS: 250 2228 }; 2229 2230 2231 /***/ }), 2232 2233 /***/ "./node_modules/@material/checkbox/foundation.js": 2234 /*!*******************************************************!*\ 2235 !*** ./node_modules/@material/checkbox/foundation.js ***! 2236 \*******************************************************/ 2237 /*! exports provided: default */ 2238 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2239 2240 "use strict"; 2241 __webpack_require__.r(__webpack_exports__); 2242 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 2243 /* harmony import */ var _material_selection_control_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/selection-control/index */ "./node_modules/@material/selection-control/index.js"); 2244 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/checkbox/adapter.js"); 2245 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/checkbox/constants.js"); 2246 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 2247 2248 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 2249 2250 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 2251 2252 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 2253 2254 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 2255 2256 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 2257 2258 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 2259 2260 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 2261 2262 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 2263 2264 /** 2265 * @license 2266 * Copyright 2016 Google Inc. All Rights Reserved. 2267 * 2268 * Licensed under the Apache License, Version 2.0 (the "License"); 2269 * you may not use this file except in compliance with the License. 2270 * You may obtain a copy of the License at 2271 * 2272 * http://www.apache.org/licenses/LICENSE-2.0 2273 * 2274 * Unless required by applicable law or agreed to in writing, software 2275 * distributed under the License is distributed on an "AS IS" BASIS, 2276 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2277 * See the License for the specific language governing permissions and 2278 * limitations under the License. 2279 */ 2280 2281 /* eslint-disable no-unused-vars */ 2282 2283 2284 2285 /* eslint-enable no-unused-vars */ 2286 2287 2288 /** @const {!Array<string>} */ 2289 2290 var CB_PROTO_PROPS = ['checked', 'indeterminate']; 2291 /** 2292 * @extends {MDCFoundation<!MDCCheckboxAdapter>} 2293 */ 2294 2295 var MDCCheckboxFoundation = 2296 /*#__PURE__*/ 2297 function (_MDCFoundation) { 2298 _inherits(MDCCheckboxFoundation, _MDCFoundation); 2299 2300 _createClass(MDCCheckboxFoundation, null, [{ 2301 key: "cssClasses", 2302 2303 /** @return enum {cssClasses} */ 2304 get: function get() { 2305 return _constants__WEBPACK_IMPORTED_MODULE_3__["cssClasses"]; 2306 } 2307 /** @return enum {strings} */ 2308 2309 }, { 2310 key: "strings", 2311 get: function get() { 2312 return _constants__WEBPACK_IMPORTED_MODULE_3__["strings"]; 2313 } 2314 /** @return enum {numbers} */ 2315 2316 }, { 2317 key: "numbers", 2318 get: function get() { 2319 return _constants__WEBPACK_IMPORTED_MODULE_3__["numbers"]; 2320 } 2321 /** @return {!MDCCheckboxAdapter} */ 2322 2323 }, { 2324 key: "defaultAdapter", 2325 get: function get() { 2326 return ( 2327 /** @type {!MDCCheckboxAdapter} */ 2328 { 2329 addClass: function addClass() 2330 /* className: string */ 2331 {}, 2332 removeClass: function removeClass() 2333 /* className: string */ 2334 {}, 2335 setNativeControlAttr: function setNativeControlAttr() 2336 /* attr: string, value: string */ 2337 {}, 2338 removeNativeControlAttr: function removeNativeControlAttr() 2339 /* attr: string */ 2340 {}, 2341 registerAnimationEndHandler: function registerAnimationEndHandler() 2342 /* handler: EventListener */ 2343 {}, 2344 deregisterAnimationEndHandler: function deregisterAnimationEndHandler() 2345 /* handler: EventListener */ 2346 {}, 2347 registerChangeHandler: function registerChangeHandler() 2348 /* handler: EventListener */ 2349 {}, 2350 deregisterChangeHandler: function deregisterChangeHandler() 2351 /* handler: EventListener */ 2352 {}, 2353 getNativeControl: function getNativeControl() 2354 /* !MDCSelectionControlState */ 2355 {}, 2356 forceLayout: function forceLayout() {}, 2357 isAttachedToDOM: function isAttachedToDOM() 2358 /* boolean */ 2359 {} 2360 } 2361 ); 2362 } 2363 }]); 2364 2365 function MDCCheckboxFoundation(adapter) { 2366 var _this; 2367 2368 _classCallCheck(this, MDCCheckboxFoundation); 2369 2370 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCCheckboxFoundation).call(this, Object.assign(MDCCheckboxFoundation.defaultAdapter, adapter))); 2371 /** @private {string} */ 2372 2373 _this.currentCheckState_ = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_INIT; 2374 /** @private {string} */ 2375 2376 _this.currentAnimationClass_ = ''; 2377 /** @private {number} */ 2378 2379 _this.animEndLatchTimer_ = 0; 2380 2381 _this.animEndHandler_ = 2382 /** @private {!EventListener} */ 2383 function () { 2384 return _this.handleAnimationEnd(); 2385 }; 2386 2387 _this.changeHandler_ = 2388 /** @private {!EventListener} */ 2389 function () { 2390 return _this.handleChange(); 2391 }; 2392 2393 return _this; 2394 } 2395 2396 _createClass(MDCCheckboxFoundation, [{ 2397 key: "init", 2398 value: function init() { 2399 this.currentCheckState_ = this.determineCheckState_(this.getNativeControl_()); 2400 this.updateAriaChecked_(); 2401 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_3__["cssClasses"].UPGRADED); 2402 this.adapter_.registerChangeHandler(this.changeHandler_); 2403 this.installPropertyChangeHooks_(); 2404 } 2405 }, { 2406 key: "destroy", 2407 value: function destroy() { 2408 this.adapter_.deregisterChangeHandler(this.changeHandler_); 2409 this.uninstallPropertyChangeHooks_(); 2410 } 2411 /** @return {boolean} */ 2412 2413 }, { 2414 key: "isChecked", 2415 value: function isChecked() { 2416 return this.getNativeControl_().checked; 2417 } 2418 /** @param {boolean} checked */ 2419 2420 }, { 2421 key: "setChecked", 2422 value: function setChecked(checked) { 2423 this.getNativeControl_().checked = checked; 2424 } 2425 /** @return {boolean} */ 2426 2427 }, { 2428 key: "isIndeterminate", 2429 value: function isIndeterminate() { 2430 return this.getNativeControl_().indeterminate; 2431 } 2432 /** @param {boolean} indeterminate */ 2433 2434 }, { 2435 key: "setIndeterminate", 2436 value: function setIndeterminate(indeterminate) { 2437 this.getNativeControl_().indeterminate = indeterminate; 2438 } 2439 /** @return {boolean} */ 2440 2441 }, { 2442 key: "isDisabled", 2443 value: function isDisabled() { 2444 return this.getNativeControl_().disabled; 2445 } 2446 /** @param {boolean} disabled */ 2447 2448 }, { 2449 key: "setDisabled", 2450 value: function setDisabled(disabled) { 2451 this.getNativeControl_().disabled = disabled; 2452 2453 if (disabled) { 2454 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_3__["cssClasses"].DISABLED); 2455 } else { 2456 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_3__["cssClasses"].DISABLED); 2457 } 2458 } 2459 /** @return {?string} */ 2460 2461 }, { 2462 key: "getValue", 2463 value: function getValue() { 2464 return this.getNativeControl_().value; 2465 } 2466 /** @param {?string} value */ 2467 2468 }, { 2469 key: "setValue", 2470 value: function setValue(value) { 2471 this.getNativeControl_().value = value; 2472 } 2473 /** 2474 * Handles the animationend event for the checkbox 2475 */ 2476 2477 }, { 2478 key: "handleAnimationEnd", 2479 value: function handleAnimationEnd() { 2480 var _this2 = this; 2481 2482 clearTimeout(this.animEndLatchTimer_); 2483 this.animEndLatchTimer_ = setTimeout(function () { 2484 _this2.adapter_.removeClass(_this2.currentAnimationClass_); 2485 2486 _this2.adapter_.deregisterAnimationEndHandler(_this2.animEndHandler_); 2487 }, _constants__WEBPACK_IMPORTED_MODULE_3__["numbers"].ANIM_END_LATCH_MS); 2488 } 2489 /** 2490 * Handles the change event for the checkbox 2491 */ 2492 2493 }, { 2494 key: "handleChange", 2495 value: function handleChange() { 2496 this.transitionCheckState_(); 2497 } 2498 /** @private */ 2499 2500 }, { 2501 key: "installPropertyChangeHooks_", 2502 value: function installPropertyChangeHooks_() { 2503 var _this3 = this; 2504 2505 var nativeCb = this.getNativeControl_(); 2506 var cbProto = Object.getPrototypeOf(nativeCb); 2507 CB_PROTO_PROPS.forEach(function (controlState) { 2508 var desc = Object.getOwnPropertyDescriptor(cbProto, controlState); // We have to check for this descriptor, since some browsers (Safari) don't support its return. 2509 // See: https://bugs.webkit.org/show_bug.cgi?id=49739 2510 2511 if (validDescriptor(desc)) { 2512 var nativeCbDesc = 2513 /** @type {!ObjectPropertyDescriptor} */ 2514 { 2515 get: desc.get, 2516 set: function set(state) { 2517 desc.set.call(nativeCb, state); 2518 2519 _this3.transitionCheckState_(); 2520 }, 2521 configurable: desc.configurable, 2522 enumerable: desc.enumerable 2523 }; 2524 Object.defineProperty(nativeCb, controlState, nativeCbDesc); 2525 } 2526 }); 2527 } 2528 /** @private */ 2529 2530 }, { 2531 key: "uninstallPropertyChangeHooks_", 2532 value: function uninstallPropertyChangeHooks_() { 2533 var nativeCb = this.getNativeControl_(); 2534 var cbProto = Object.getPrototypeOf(nativeCb); 2535 CB_PROTO_PROPS.forEach(function (controlState) { 2536 var desc = 2537 /** @type {!ObjectPropertyDescriptor} */ 2538 Object.getOwnPropertyDescriptor(cbProto, controlState); 2539 2540 if (validDescriptor(desc)) { 2541 Object.defineProperty(nativeCb, controlState, desc); 2542 } 2543 }); 2544 } 2545 /** @private */ 2546 2547 }, { 2548 key: "transitionCheckState_", 2549 value: function transitionCheckState_() { 2550 var nativeCb = this.adapter_.getNativeControl(); 2551 2552 if (!nativeCb) { 2553 return; 2554 } 2555 2556 var oldState = this.currentCheckState_; 2557 var newState = this.determineCheckState_(nativeCb); 2558 2559 if (oldState === newState) { 2560 return; 2561 } 2562 2563 this.updateAriaChecked_(); // Check to ensure that there isn't a previously existing animation class, in case for example 2564 // the user interacted with the checkbox before the animation was finished. 2565 2566 if (this.currentAnimationClass_.length > 0) { 2567 clearTimeout(this.animEndLatchTimer_); 2568 this.adapter_.forceLayout(); 2569 this.adapter_.removeClass(this.currentAnimationClass_); 2570 } 2571 2572 this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState); 2573 this.currentCheckState_ = newState; // Check for parentNode so that animations are only run when the element is attached 2574 // to the DOM. 2575 2576 if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) { 2577 this.adapter_.addClass(this.currentAnimationClass_); 2578 this.adapter_.registerAnimationEndHandler(this.animEndHandler_); 2579 } 2580 } 2581 /** 2582 * @param {!MDCSelectionControlState} nativeCb 2583 * @return {string} 2584 * @private 2585 */ 2586 2587 }, { 2588 key: "determineCheckState_", 2589 value: function determineCheckState_(nativeCb) { 2590 var TRANSITION_STATE_INDETERMINATE = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_INDETERMINATE, 2591 TRANSITION_STATE_CHECKED = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_CHECKED, 2592 TRANSITION_STATE_UNCHECKED = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_UNCHECKED; 2593 2594 if (nativeCb.indeterminate) { 2595 return TRANSITION_STATE_INDETERMINATE; 2596 } 2597 2598 return nativeCb.checked ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED; 2599 } 2600 /** 2601 * @param {string} oldState 2602 * @param {string} newState 2603 * @return {string} 2604 */ 2605 2606 }, { 2607 key: "getTransitionAnimationClass_", 2608 value: function getTransitionAnimationClass_(oldState, newState) { 2609 var TRANSITION_STATE_INIT = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_INIT, 2610 TRANSITION_STATE_CHECKED = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_CHECKED, 2611 TRANSITION_STATE_UNCHECKED = _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].TRANSITION_STATE_UNCHECKED; 2612 var _MDCCheckboxFoundatio = MDCCheckboxFoundation.cssClasses, 2613 ANIM_UNCHECKED_CHECKED = _MDCCheckboxFoundatio.ANIM_UNCHECKED_CHECKED, 2614 ANIM_UNCHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_UNCHECKED_INDETERMINATE, 2615 ANIM_CHECKED_UNCHECKED = _MDCCheckboxFoundatio.ANIM_CHECKED_UNCHECKED, 2616 ANIM_CHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_CHECKED_INDETERMINATE, 2617 ANIM_INDETERMINATE_CHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_CHECKED, 2618 ANIM_INDETERMINATE_UNCHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_UNCHECKED; 2619 2620 switch (oldState) { 2621 case TRANSITION_STATE_INIT: 2622 if (newState === TRANSITION_STATE_UNCHECKED) { 2623 return ''; 2624 } 2625 2626 // fallthrough 2627 2628 case TRANSITION_STATE_UNCHECKED: 2629 return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE; 2630 2631 case TRANSITION_STATE_CHECKED: 2632 return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE; 2633 // TRANSITION_STATE_INDETERMINATE 2634 2635 default: 2636 return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED; 2637 } 2638 } 2639 }, { 2640 key: "updateAriaChecked_", 2641 value: function updateAriaChecked_() { 2642 // Ensure aria-checked is set to mixed if checkbox is in indeterminate state. 2643 if (this.isIndeterminate()) { 2644 this.adapter_.setNativeControlAttr(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ARIA_CHECKED_ATTR, _constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ARIA_CHECKED_INDETERMINATE_VALUE); 2645 } else { 2646 this.adapter_.removeNativeControlAttr(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ARIA_CHECKED_ATTR); 2647 } 2648 } 2649 /** 2650 * @return {!MDCSelectionControlState} 2651 * @private 2652 */ 2653 2654 }, { 2655 key: "getNativeControl_", 2656 value: function getNativeControl_() { 2657 return this.adapter_.getNativeControl() || { 2658 checked: false, 2659 indeterminate: false, 2660 disabled: false, 2661 value: null 2662 }; 2663 } 2664 }]); 2665 2666 return MDCCheckboxFoundation; 2667 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 2668 /** 2669 * @param {ObjectPropertyDescriptor|undefined} inputPropDesc 2670 * @return {boolean} 2671 */ 2672 2673 2674 function validDescriptor(inputPropDesc) { 2675 return !!inputPropDesc && typeof inputPropDesc.set === 'function'; 2676 } 2677 2678 /* harmony default export */ __webpack_exports__["default"] = (MDCCheckboxFoundation); 2679 2680 /***/ }), 2681 2682 /***/ "./node_modules/@material/checkbox/index.js": 2683 /*!**************************************************!*\ 2684 !*** ./node_modules/@material/checkbox/index.js ***! 2685 \**************************************************/ 2686 /*! exports provided: MDCCheckboxFoundation, MDCCheckbox */ 2687 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2688 2689 "use strict"; 2690 __webpack_require__.r(__webpack_exports__); 2691 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckbox", function() { return MDCCheckbox; }); 2692 /* harmony import */ var _material_animation_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/animation/index */ "./node_modules/@material/checkbox/node_modules/@material/animation/index.js"); 2693 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 2694 /* harmony import */ var _material_selection_control_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/selection-control/index */ "./node_modules/@material/selection-control/index.js"); 2695 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/checkbox/foundation.js"); 2696 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCCheckboxFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 2697 2698 /* harmony import */ var _material_ripple_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material/ripple/index */ "./node_modules/@material/ripple/index.js"); 2699 /* harmony import */ var _material_ripple_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material/ripple/util */ "./node_modules/@material/ripple/util.js"); 2700 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 2701 2702 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 2703 2704 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 2705 2706 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 2707 2708 function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } 2709 2710 function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 2711 2712 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 2713 2714 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 2715 2716 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 2717 2718 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 2719 2720 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 2721 2722 /** 2723 * @license 2724 * Copyright 2016 Google Inc. All Rights Reserved. 2725 * 2726 * Licensed under the Apache License, Version 2.0 (the "License"); 2727 * you may not use this file except in compliance with the License. 2728 * You may obtain a copy of the License at 2729 * 2730 * http://www.apache.org/licenses/LICENSE-2.0 2731 * 2732 * Unless required by applicable law or agreed to in writing, software 2733 * distributed under the License is distributed on an "AS IS" BASIS, 2734 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2735 * See the License for the specific language governing permissions and 2736 * limitations under the License. 2737 */ 2738 2739 2740 /* eslint-disable no-unused-vars */ 2741 2742 2743 /* eslint-enable no-unused-vars */ 2744 2745 2746 2747 2748 /** 2749 * @extends MDCComponent<!MDCCheckboxFoundation> 2750 * @implements {MDCSelectionControl} 2751 */ 2752 2753 var MDCCheckbox = 2754 /*#__PURE__*/ 2755 function (_MDCComponent) { 2756 _inherits(MDCCheckbox, _MDCComponent); 2757 2758 _createClass(MDCCheckbox, [{ 2759 key: "nativeCb_", 2760 2761 /** 2762 * Returns the state of the native control element, or null if the native control element is not present. 2763 * @return {?MDCSelectionControlState} 2764 * @private 2765 */ 2766 get: function get() { 2767 var NATIVE_CONTROL_SELECTOR = _foundation__WEBPACK_IMPORTED_MODULE_3__["default"].strings.NATIVE_CONTROL_SELECTOR; 2768 var cbEl = 2769 /** @type {?MDCSelectionControlState} */ 2770 this.root_.querySelector(NATIVE_CONTROL_SELECTOR); 2771 return cbEl; 2772 } 2773 }], [{ 2774 key: "attachTo", 2775 value: function attachTo(root) { 2776 return new MDCCheckbox(root); 2777 } 2778 }]); 2779 2780 function MDCCheckbox() { 2781 var _getPrototypeOf2; 2782 2783 var _this; 2784 2785 _classCallCheck(this, MDCCheckbox); 2786 2787 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 2788 args[_key] = arguments[_key]; 2789 } 2790 2791 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MDCCheckbox)).call.apply(_getPrototypeOf2, [this].concat(args))); 2792 /** @private {!MDCRipple} */ 2793 2794 _this.ripple_ = _this.initRipple_(); 2795 return _this; 2796 } 2797 /** 2798 * @return {!MDCRipple} 2799 * @private 2800 */ 2801 2802 2803 _createClass(MDCCheckbox, [{ 2804 key: "initRipple_", 2805 value: function initRipple_() { 2806 var _this2 = this; 2807 2808 var MATCHES = Object(_material_ripple_util__WEBPACK_IMPORTED_MODULE_5__["getMatchesProperty"])(HTMLElement.prototype); 2809 var adapter = Object.assign(_material_ripple_index__WEBPACK_IMPORTED_MODULE_4__["MDCRipple"].createAdapter(this), { 2810 isUnbounded: function isUnbounded() { 2811 return true; 2812 }, 2813 isSurfaceActive: function isSurfaceActive() { 2814 return _this2.nativeCb_[MATCHES](':active'); 2815 }, 2816 registerInteractionHandler: function registerInteractionHandler(type, handler) { 2817 return _this2.nativeCb_.addEventListener(type, handler); 2818 }, 2819 deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { 2820 return _this2.nativeCb_.removeEventListener(type, handler); 2821 } 2822 }); 2823 var foundation = new _material_ripple_index__WEBPACK_IMPORTED_MODULE_4__["MDCRippleFoundation"](adapter); 2824 return new _material_ripple_index__WEBPACK_IMPORTED_MODULE_4__["MDCRipple"](this.root_, foundation); 2825 } 2826 /** @return {!MDCCheckboxFoundation} */ 2827 2828 }, { 2829 key: "getDefaultFoundation", 2830 value: function getDefaultFoundation() { 2831 var _this3 = this; 2832 2833 return new _foundation__WEBPACK_IMPORTED_MODULE_3__["default"]({ 2834 addClass: function addClass(className) { 2835 return _this3.root_.classList.add(className); 2836 }, 2837 removeClass: function removeClass(className) { 2838 return _this3.root_.classList.remove(className); 2839 }, 2840 setNativeControlAttr: function setNativeControlAttr(attr, value) { 2841 return _this3.nativeCb_.setAttribute(attr, value); 2842 }, 2843 removeNativeControlAttr: function removeNativeControlAttr(attr) { 2844 return _this3.nativeCb_.removeAttribute(attr); 2845 }, 2846 registerAnimationEndHandler: function registerAnimationEndHandler(handler) { 2847 return _this3.root_.addEventListener(Object(_material_animation_index__WEBPACK_IMPORTED_MODULE_0__["getCorrectEventName"])(window, 'animationend'), handler); 2848 }, 2849 deregisterAnimationEndHandler: function deregisterAnimationEndHandler(handler) { 2850 return _this3.root_.removeEventListener(Object(_material_animation_index__WEBPACK_IMPORTED_MODULE_0__["getCorrectEventName"])(window, 'animationend'), handler); 2851 }, 2852 registerChangeHandler: function registerChangeHandler(handler) { 2853 return _this3.nativeCb_.addEventListener('change', handler); 2854 }, 2855 deregisterChangeHandler: function deregisterChangeHandler(handler) { 2856 return _this3.nativeCb_.removeEventListener('change', handler); 2857 }, 2858 getNativeControl: function getNativeControl() { 2859 return _this3.nativeCb_; 2860 }, 2861 forceLayout: function forceLayout() { 2862 return _this3.root_.offsetWidth; 2863 }, 2864 isAttachedToDOM: function isAttachedToDOM() { 2865 return Boolean(_this3.root_.parentNode); 2866 } 2867 }); 2868 } 2869 /** @return {!MDCRipple} */ 2870 2871 }, { 2872 key: "destroy", 2873 value: function destroy() { 2874 this.ripple_.destroy(); 2875 2876 _get(_getPrototypeOf(MDCCheckbox.prototype), "destroy", this).call(this); 2877 } 2878 }, { 2879 key: "ripple", 2880 get: function get() { 2881 return this.ripple_; 2882 } 2883 /** @return {boolean} */ 2884 2885 }, { 2886 key: "checked", 2887 get: function get() { 2888 return this.foundation_.isChecked(); 2889 } 2890 /** @param {boolean} checked */ 2891 , 2892 set: function set(checked) { 2893 this.foundation_.setChecked(checked); 2894 } 2895 /** @return {boolean} */ 2896 2897 }, { 2898 key: "indeterminate", 2899 get: function get() { 2900 return this.foundation_.isIndeterminate(); 2901 } 2902 /** @param {boolean} indeterminate */ 2903 , 2904 set: function set(indeterminate) { 2905 this.foundation_.setIndeterminate(indeterminate); 2906 } 2907 /** @return {boolean} */ 2908 2909 }, { 2910 key: "disabled", 2911 get: function get() { 2912 return this.foundation_.isDisabled(); 2913 } 2914 /** @param {boolean} disabled */ 2915 , 2916 set: function set(disabled) { 2917 this.foundation_.setDisabled(disabled); 2918 } 2919 /** @return {?string} */ 2920 2921 }, { 2922 key: "value", 2923 get: function get() { 2924 return this.foundation_.getValue(); 2925 } 2926 /** @param {?string} value */ 2927 , 2928 set: function set(value) { 2929 this.foundation_.setValue(value); 2930 } 2931 }]); 2932 2933 return MDCCheckbox; 2934 }(_material_base_component__WEBPACK_IMPORTED_MODULE_1__["default"]); 2935 2936 2937 2938 /***/ }), 2939 2940 /***/ "./node_modules/@material/checkbox/node_modules/@material/animation/index.js": 2941 /*!***********************************************************************************!*\ 2942 !*** ./node_modules/@material/checkbox/node_modules/@material/animation/index.js ***! 2943 \***********************************************************************************/ 2944 /*! exports provided: transformStyleProperties, getCorrectEventName, getCorrectPropertyName */ 2945 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2946 2947 "use strict"; 2948 __webpack_require__.r(__webpack_exports__); 2949 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformStyleProperties", function() { return transformStyleProperties; }); 2950 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCorrectEventName", function() { return getCorrectEventName; }); 2951 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCorrectPropertyName", function() { return getCorrectPropertyName; }); 2952 /** 2953 * @license 2954 * Copyright 2016 Google Inc. All Rights Reserved. 2955 * 2956 * Licensed under the Apache License, Version 2.0 (the "License"); 2957 * you may not use this file except in compliance with the License. 2958 * You may obtain a copy of the License at 2959 * 2960 * http://www.apache.org/licenses/LICENSE-2.0 2961 * 2962 * Unless required by applicable law or agreed to in writing, software 2963 * distributed under the License is distributed on an "AS IS" BASIS, 2964 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2965 * See the License for the specific language governing permissions and 2966 * limitations under the License. 2967 */ 2968 2969 /** 2970 * @typedef {{ 2971 * noPrefix: string, 2972 * webkitPrefix: string, 2973 * styleProperty: string 2974 * }} 2975 */ 2976 var VendorPropertyMapType; 2977 /** @const {Object<string, !VendorPropertyMapType>} */ 2978 2979 var eventTypeMap = { 2980 'animationstart': { 2981 noPrefix: 'animationstart', 2982 webkitPrefix: 'webkitAnimationStart', 2983 styleProperty: 'animation' 2984 }, 2985 'animationend': { 2986 noPrefix: 'animationend', 2987 webkitPrefix: 'webkitAnimationEnd', 2988 styleProperty: 'animation' 2989 }, 2990 'animationiteration': { 2991 noPrefix: 'animationiteration', 2992 webkitPrefix: 'webkitAnimationIteration', 2993 styleProperty: 'animation' 2994 }, 2995 'transitionend': { 2996 noPrefix: 'transitionend', 2997 webkitPrefix: 'webkitTransitionEnd', 2998 styleProperty: 'transition' 2999 } 3000 }; 3001 /** @const {Object<string, !VendorPropertyMapType>} */ 3002 3003 var cssPropertyMap = { 3004 'animation': { 3005 noPrefix: 'animation', 3006 webkitPrefix: '-webkit-animation' 3007 }, 3008 'transform': { 3009 noPrefix: 'transform', 3010 webkitPrefix: '-webkit-transform' 3011 }, 3012 'transition': { 3013 noPrefix: 'transition', 3014 webkitPrefix: '-webkit-transition' 3015 } 3016 }; 3017 /** 3018 * @param {!Object} windowObj 3019 * @return {boolean} 3020 */ 3021 3022 function hasProperShape(windowObj) { 3023 return windowObj['document'] !== undefined && typeof windowObj['document']['createElement'] === 'function'; 3024 } 3025 /** 3026 * @param {string} eventType 3027 * @return {boolean} 3028 */ 3029 3030 3031 function eventFoundInMaps(eventType) { 3032 return eventType in eventTypeMap || eventType in cssPropertyMap; 3033 } 3034 /** 3035 * @param {string} eventType 3036 * @param {!Object<string, !VendorPropertyMapType>} map 3037 * @param {!Element} el 3038 * @return {string} 3039 */ 3040 3041 3042 function getJavaScriptEventName(eventType, map, el) { 3043 return map[eventType].styleProperty in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; 3044 } 3045 /** 3046 * Helper function to determine browser prefix for CSS3 animation events 3047 * and property names. 3048 * @param {!Object} windowObj 3049 * @param {string} eventType 3050 * @return {string} 3051 */ 3052 3053 3054 function getAnimationName(windowObj, eventType) { 3055 if (!hasProperShape(windowObj) || !eventFoundInMaps(eventType)) { 3056 return eventType; 3057 } 3058 3059 var map = 3060 /** @type {!Object<string, !VendorPropertyMapType>} */ 3061 eventType in eventTypeMap ? eventTypeMap : cssPropertyMap; 3062 var el = windowObj['document']['createElement']('div'); 3063 var eventName = ''; 3064 3065 if (map === eventTypeMap) { 3066 eventName = getJavaScriptEventName(eventType, map, el); 3067 } else { 3068 eventName = map[eventType].noPrefix in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; 3069 } 3070 3071 return eventName; 3072 } // Public functions to access getAnimationName() for JavaScript events or CSS 3073 // property names. 3074 3075 3076 var transformStyleProperties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'MSTransform']; 3077 /** 3078 * @param {!Object} windowObj 3079 * @param {string} eventType 3080 * @return {string} 3081 */ 3082 3083 function getCorrectEventName(windowObj, eventType) { 3084 return getAnimationName(windowObj, eventType); 3085 } 3086 /** 3087 * @param {!Object} windowObj 3088 * @param {string} eventType 3089 * @return {string} 3090 */ 3091 3092 3093 function getCorrectPropertyName(windowObj, eventType) { 3094 return getAnimationName(windowObj, eventType); 3095 } 3096 3097 3098 3099 /***/ }), 3100 3101 /***/ "./node_modules/@material/floating-label/adapter.js": 3102 /*!**********************************************************!*\ 3103 !*** ./node_modules/@material/floating-label/adapter.js ***! 3104 \**********************************************************/ 3105 /*! exports provided: default */ 3106 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3107 3108 "use strict"; 3109 __webpack_require__.r(__webpack_exports__); 3110 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3111 3112 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3113 3114 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3115 3116 /** 3117 * @license 3118 * Copyright 2017 Google Inc. All Rights Reserved. 3119 * 3120 * Licensed under the Apache License, Version 2.0 (the "License"); 3121 * you may not use this file except in compliance with the License. 3122 * You may obtain a copy of the License at 3123 * 3124 * http://www.apache.org/licenses/LICENSE-2.0 3125 * 3126 * Unless required by applicable law or agreed to in writing, software 3127 * distributed under the License is distributed on an "AS IS" BASIS, 3128 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3129 * See the License for the specific language governing permissions and 3130 * limitations under the License. 3131 */ 3132 3133 /* eslint no-unused-vars: [2, {"args": "none"}] */ 3134 3135 /** 3136 * Adapter for MDC Floating Label. 3137 * 3138 * Defines the shape of the adapter expected by the foundation. Implement this 3139 * adapter to integrate the floating label into your framework. See 3140 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 3141 * for more information. 3142 * 3143 * @record 3144 */ 3145 var MDCFloatingLabelAdapter = 3146 /*#__PURE__*/ 3147 function () { 3148 function MDCFloatingLabelAdapter() { 3149 _classCallCheck(this, MDCFloatingLabelAdapter); 3150 } 3151 3152 _createClass(MDCFloatingLabelAdapter, [{ 3153 key: "addClass", 3154 3155 /** 3156 * Adds a class to the label element. 3157 * @param {string} className 3158 */ 3159 value: function addClass(className) {} 3160 /** 3161 * Removes a class from the label element. 3162 * @param {string} className 3163 */ 3164 3165 }, { 3166 key: "removeClass", 3167 value: function removeClass(className) {} 3168 /** 3169 * Returns the width of the label element. 3170 * @return {number} 3171 */ 3172 3173 }, { 3174 key: "getWidth", 3175 value: function getWidth() {} 3176 /** 3177 * Registers an event listener on the root element for a given event. 3178 * @param {string} evtType 3179 * @param {function(!Event): undefined} handler 3180 */ 3181 3182 }, { 3183 key: "registerInteractionHandler", 3184 value: function registerInteractionHandler(evtType, handler) {} 3185 /** 3186 * Deregisters an event listener on the root element for a given event. 3187 * @param {string} evtType 3188 * @param {function(!Event): undefined} handler 3189 */ 3190 3191 }, { 3192 key: "deregisterInteractionHandler", 3193 value: function deregisterInteractionHandler(evtType, handler) {} 3194 }]); 3195 3196 return MDCFloatingLabelAdapter; 3197 }(); 3198 3199 /* harmony default export */ __webpack_exports__["default"] = (MDCFloatingLabelAdapter); 3200 3201 /***/ }), 3202 3203 /***/ "./node_modules/@material/floating-label/constants.js": 3204 /*!************************************************************!*\ 3205 !*** ./node_modules/@material/floating-label/constants.js ***! 3206 \************************************************************/ 3207 /*! exports provided: cssClasses */ 3208 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3209 3210 "use strict"; 3211 __webpack_require__.r(__webpack_exports__); 3212 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 3213 /** 3214 * @license 3215 * Copyright 2016 Google Inc. All Rights Reserved. 3216 * 3217 * Licensed under the Apache License, Version 2.0 (the "License"); 3218 * you may not use this file except in compliance with the License. 3219 * You may obtain a copy of the License at 3220 * 3221 * http://www.apache.org/licenses/LICENSE-2.0 3222 * 3223 * Unless required by applicable law or agreed to in writing, software 3224 * distributed under the License is distributed on an "AS IS" BASIS, 3225 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3226 * See the License for the specific language governing permissions and 3227 * limitations under the License. 3228 */ 3229 3230 /** @enum {string} */ 3231 var cssClasses = { 3232 LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above', 3233 LABEL_SHAKE: 'mdc-floating-label--shake' 3234 }; 3235 3236 3237 /***/ }), 3238 3239 /***/ "./node_modules/@material/floating-label/foundation.js": 3240 /*!*************************************************************!*\ 3241 !*** ./node_modules/@material/floating-label/foundation.js ***! 3242 \*************************************************************/ 3243 /*! exports provided: default */ 3244 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3245 3246 "use strict"; 3247 __webpack_require__.r(__webpack_exports__); 3248 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 3249 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/floating-label/adapter.js"); 3250 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/floating-label/constants.js"); 3251 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3252 3253 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3254 3255 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 3256 3257 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 3258 3259 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 3260 3261 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3262 3263 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3264 3265 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 3266 3267 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 3268 3269 /** 3270 * @license 3271 * Copyright 2016 Google Inc. All Rights Reserved. 3272 * 3273 * Licensed under the Apache License, Version 2.0 (the "License"); 3274 * you may not use this file except in compliance with the License. 3275 * You may obtain a copy of the License at 3276 * 3277 * http://www.apache.org/licenses/LICENSE-2.0 3278 * 3279 * Unless required by applicable law or agreed to in writing, software 3280 * distributed under the License is distributed on an "AS IS" BASIS, 3281 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3282 * See the License for the specific language governing permissions and 3283 * limitations under the License. 3284 */ 3285 3286 3287 3288 /** 3289 * @extends {MDCFoundation<!MDCFloatingLabelAdapter>} 3290 * @final 3291 */ 3292 3293 var MDCFloatingLabelFoundation = 3294 /*#__PURE__*/ 3295 function (_MDCFoundation) { 3296 _inherits(MDCFloatingLabelFoundation, _MDCFoundation); 3297 3298 _createClass(MDCFloatingLabelFoundation, null, [{ 3299 key: "cssClasses", 3300 3301 /** @return enum {string} */ 3302 get: function get() { 3303 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 3304 } 3305 /** 3306 * {@see MDCFloatingLabelAdapter} for typing information on parameters and return 3307 * types. 3308 * @return {!MDCFloatingLabelAdapter} 3309 */ 3310 3311 }, { 3312 key: "defaultAdapter", 3313 get: function get() { 3314 return ( 3315 /** @type {!MDCFloatingLabelAdapter} */ 3316 { 3317 addClass: function addClass() {}, 3318 removeClass: function removeClass() {}, 3319 getWidth: function getWidth() {}, 3320 registerInteractionHandler: function registerInteractionHandler() {}, 3321 deregisterInteractionHandler: function deregisterInteractionHandler() {} 3322 } 3323 ); 3324 } 3325 /** 3326 * @param {!MDCFloatingLabelAdapter} adapter 3327 */ 3328 3329 }]); 3330 3331 function MDCFloatingLabelFoundation(adapter) { 3332 var _this; 3333 3334 _classCallCheck(this, MDCFloatingLabelFoundation); 3335 3336 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCFloatingLabelFoundation).call(this, Object.assign(MDCFloatingLabelFoundation.defaultAdapter, adapter))); 3337 /** @private {function(!Event): undefined} */ 3338 3339 _this.shakeAnimationEndHandler_ = function () { 3340 return _this.handleShakeAnimationEnd_(); 3341 }; 3342 3343 return _this; 3344 } 3345 3346 _createClass(MDCFloatingLabelFoundation, [{ 3347 key: "init", 3348 value: function init() { 3349 this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_); 3350 } 3351 }, { 3352 key: "destroy", 3353 value: function destroy() { 3354 this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_); 3355 } 3356 /** 3357 * Returns the width of the label element. 3358 * @return {number} 3359 */ 3360 3361 }, { 3362 key: "getWidth", 3363 value: function getWidth() { 3364 return this.adapter_.getWidth(); 3365 } 3366 /** 3367 * Styles the label to produce the label shake for errors. 3368 * @param {boolean} shouldShake adds shake class if true, 3369 * otherwise removes shake class. 3370 */ 3371 3372 }, { 3373 key: "shake", 3374 value: function shake(shouldShake) { 3375 var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; 3376 3377 if (shouldShake) { 3378 this.adapter_.addClass(LABEL_SHAKE); 3379 } else { 3380 this.adapter_.removeClass(LABEL_SHAKE); 3381 } 3382 } 3383 /** 3384 * Styles the label to float or dock. 3385 * @param {boolean} shouldFloat adds float class if true, otherwise remove 3386 * float and shake class to dock label. 3387 */ 3388 3389 }, { 3390 key: "float", 3391 value: function float(shouldFloat) { 3392 var _MDCFloatingLabelFoun = MDCFloatingLabelFoundation.cssClasses, 3393 LABEL_FLOAT_ABOVE = _MDCFloatingLabelFoun.LABEL_FLOAT_ABOVE, 3394 LABEL_SHAKE = _MDCFloatingLabelFoun.LABEL_SHAKE; 3395 3396 if (shouldFloat) { 3397 this.adapter_.addClass(LABEL_FLOAT_ABOVE); 3398 } else { 3399 this.adapter_.removeClass(LABEL_FLOAT_ABOVE); 3400 this.adapter_.removeClass(LABEL_SHAKE); 3401 } 3402 } 3403 /** 3404 * Handles an interaction event on the root element. 3405 */ 3406 3407 }, { 3408 key: "handleShakeAnimationEnd_", 3409 value: function handleShakeAnimationEnd_() { 3410 var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; 3411 this.adapter_.removeClass(LABEL_SHAKE); 3412 } 3413 }]); 3414 3415 return MDCFloatingLabelFoundation; 3416 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 3417 3418 /* harmony default export */ __webpack_exports__["default"] = (MDCFloatingLabelFoundation); 3419 3420 /***/ }), 3421 3422 /***/ "./node_modules/@material/floating-label/index.js": 3423 /*!********************************************************!*\ 3424 !*** ./node_modules/@material/floating-label/index.js ***! 3425 \********************************************************/ 3426 /*! exports provided: MDCFloatingLabel, MDCFloatingLabelFoundation */ 3427 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3428 3429 "use strict"; 3430 __webpack_require__.r(__webpack_exports__); 3431 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabel", function() { return MDCFloatingLabel; }); 3432 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 3433 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/floating-label/adapter.js"); 3434 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/floating-label/foundation.js"); 3435 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabelFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 3436 3437 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3438 3439 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3440 3441 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3442 3443 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3444 3445 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 3446 3447 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 3448 3449 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 3450 3451 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 3452 3453 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 3454 3455 /** 3456 * @license 3457 * Copyright 2016 Google Inc. All Rights Reserved. 3458 * 3459 * Licensed under the Apache License, Version 2.0 (the "License"); 3460 * you may not use this file except in compliance with the License. 3461 * You may obtain a copy of the License at 3462 * 3463 * http://www.apache.org/licenses/LICENSE-2.0 3464 * 3465 * Unless required by applicable law or agreed to in writing, software 3466 * distributed under the License is distributed on an "AS IS" BASIS, 3467 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3468 * See the License for the specific language governing permissions and 3469 * limitations under the License. 3470 */ 3471 3472 3473 3474 /** 3475 * @extends {MDCComponent<!MDCFloatingLabelFoundation>} 3476 * @final 3477 */ 3478 3479 var MDCFloatingLabel = 3480 /*#__PURE__*/ 3481 function (_MDCComponent) { 3482 _inherits(MDCFloatingLabel, _MDCComponent); 3483 3484 function MDCFloatingLabel() { 3485 _classCallCheck(this, MDCFloatingLabel); 3486 3487 return _possibleConstructorReturn(this, _getPrototypeOf(MDCFloatingLabel).apply(this, arguments)); 3488 } 3489 3490 _createClass(MDCFloatingLabel, [{ 3491 key: "shake", 3492 3493 /** 3494 * Styles the label to produce the label shake for errors. 3495 * @param {boolean} shouldShake styles the label to shake by adding shake class 3496 * if true, otherwise will stop shaking by removing shake class. 3497 */ 3498 value: function shake(shouldShake) { 3499 this.foundation_.shake(shouldShake); 3500 } 3501 /** 3502 * Styles label to float/dock. 3503 * @param {boolean} shouldFloat styles the label to float by adding float class 3504 * if true, otherwise docks the label by removing the float class. 3505 */ 3506 3507 }, { 3508 key: "float", 3509 value: function float(shouldFloat) { 3510 this.foundation_.float(shouldFloat); 3511 } 3512 /** 3513 * @return {number} 3514 */ 3515 3516 }, { 3517 key: "getWidth", 3518 value: function getWidth() { 3519 return this.foundation_.getWidth(); 3520 } 3521 /** 3522 * @return {!MDCFloatingLabelFoundation} 3523 */ 3524 3525 }, { 3526 key: "getDefaultFoundation", 3527 value: function getDefaultFoundation() { 3528 var _this = this; 3529 3530 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]({ 3531 addClass: function addClass(className) { 3532 return _this.root_.classList.add(className); 3533 }, 3534 removeClass: function removeClass(className) { 3535 return _this.root_.classList.remove(className); 3536 }, 3537 getWidth: function getWidth() { 3538 return _this.root_.offsetWidth; 3539 }, 3540 registerInteractionHandler: function registerInteractionHandler(evtType, handler) { 3541 return _this.root_.addEventListener(evtType, handler); 3542 }, 3543 deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { 3544 return _this.root_.removeEventListener(evtType, handler); 3545 } 3546 }); 3547 } 3548 }], [{ 3549 key: "attachTo", 3550 3551 /** 3552 * @param {!Element} root 3553 * @return {!MDCFloatingLabel} 3554 */ 3555 value: function attachTo(root) { 3556 return new MDCFloatingLabel(root); 3557 } 3558 }]); 3559 3560 return MDCFloatingLabel; 3561 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 3562 3563 3564 3565 /***/ }), 3566 3567 /***/ "./node_modules/@material/form-field/adapter.js": 3568 /*!******************************************************!*\ 3569 !*** ./node_modules/@material/form-field/adapter.js ***! 3570 \******************************************************/ 3571 /*! exports provided: default */ 3572 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3573 3574 "use strict"; 3575 __webpack_require__.r(__webpack_exports__); 3576 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3577 3578 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3579 3580 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3581 3582 /** 3583 * @license 3584 * Copyright 2016 Google Inc. All Rights Reserved. 3585 * 3586 * Licensed under the Apache License, Version 2.0 (the "License"); 3587 * you may not use this file except in compliance with the License. 3588 * You may obtain a copy of the License at 3589 * 3590 * http://www.apache.org/licenses/LICENSE-2.0 3591 * 3592 * Unless required by applicable law or agreed to in writing, software 3593 * distributed under the License is distributed on an "AS IS" BASIS, 3594 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3595 * See the License for the specific language governing permissions and 3596 * limitations under the License. 3597 */ 3598 3599 /* eslint no-unused-vars: [2, {"args": "none"}] */ 3600 3601 /** 3602 * Adapter for MDC Form Field. Provides an interface for managing 3603 * - event handlers 3604 * - ripple activation 3605 * 3606 * Additionally, provides type information for the adapter to the Closure 3607 * compiler. 3608 * 3609 * Implement this adapter for your framework of choice to delegate updates to 3610 * the component in your framework of choice. See architecture documentation 3611 * for more details. 3612 * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md 3613 * 3614 * @record 3615 */ 3616 var MDCFormFieldAdapter = 3617 /*#__PURE__*/ 3618 function () { 3619 function MDCFormFieldAdapter() { 3620 _classCallCheck(this, MDCFormFieldAdapter); 3621 } 3622 3623 _createClass(MDCFormFieldAdapter, [{ 3624 key: "registerInteractionHandler", 3625 3626 /** 3627 * @param {string} type 3628 * @param {!EventListener} handler 3629 */ 3630 value: function registerInteractionHandler(type, handler) {} 3631 /** 3632 * @param {string} type 3633 * @param {!EventListener} handler 3634 */ 3635 3636 }, { 3637 key: "deregisterInteractionHandler", 3638 value: function deregisterInteractionHandler(type, handler) {} 3639 }, { 3640 key: "activateInputRipple", 3641 value: function activateInputRipple() {} 3642 }, { 3643 key: "deactivateInputRipple", 3644 value: function deactivateInputRipple() {} 3645 }]); 3646 3647 return MDCFormFieldAdapter; 3648 }(); 3649 3650 /* harmony default export */ __webpack_exports__["default"] = (MDCFormFieldAdapter); 3651 3652 /***/ }), 3653 3654 /***/ "./node_modules/@material/form-field/constants.js": 3655 /*!********************************************************!*\ 3656 !*** ./node_modules/@material/form-field/constants.js ***! 3657 \********************************************************/ 3658 /*! exports provided: cssClasses, strings */ 3659 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3660 3661 "use strict"; 3662 __webpack_require__.r(__webpack_exports__); 3663 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 3664 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 3665 /** 3666 * @license 3667 * Copyright 2017 Google Inc. All Rights Reserved. 3668 * 3669 * Licensed under the Apache License, Version 2.0 (the "License"); 3670 * you may not use this file except in compliance with the License. 3671 * You may obtain a copy of the License at 3672 * 3673 * http://www.apache.org/licenses/LICENSE-2.0 3674 * 3675 * Unless required by applicable law or agreed to in writing, software 3676 * distributed under the License is distributed on an "AS IS" BASIS, 3677 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3678 * See the License for the specific language governing permissions and 3679 * limitations under the License. 3680 */ 3681 3682 /** @enum {string} */ 3683 var cssClasses = { 3684 ROOT: 'mdc-form-field' 3685 }; 3686 /** @enum {string} */ 3687 3688 var strings = { 3689 LABEL_SELECTOR: '.mdc-form-field > label' 3690 }; 3691 3692 3693 /***/ }), 3694 3695 /***/ "./node_modules/@material/form-field/foundation.js": 3696 /*!*********************************************************!*\ 3697 !*** ./node_modules/@material/form-field/foundation.js ***! 3698 \*********************************************************/ 3699 /*! exports provided: default */ 3700 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3701 3702 "use strict"; 3703 __webpack_require__.r(__webpack_exports__); 3704 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 3705 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/form-field/adapter.js"); 3706 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/form-field/constants.js"); 3707 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3708 3709 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3710 3711 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 3712 3713 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 3714 3715 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 3716 3717 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3718 3719 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3720 3721 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 3722 3723 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 3724 3725 /** 3726 * @license 3727 * Copyright 2017 Google Inc. All Rights Reserved. 3728 * 3729 * Licensed under the Apache License, Version 2.0 (the "License"); 3730 * you may not use this file except in compliance with the License. 3731 * You may obtain a copy of the License at 3732 * 3733 * http://www.apache.org/licenses/LICENSE-2.0 3734 * 3735 * Unless required by applicable law or agreed to in writing, software 3736 * distributed under the License is distributed on an "AS IS" BASIS, 3737 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3738 * See the License for the specific language governing permissions and 3739 * limitations under the License. 3740 */ 3741 3742 3743 3744 /** 3745 * @extends {MDCFoundation<!MDCFormFieldAdapter>} 3746 */ 3747 3748 var MDCFormFieldFoundation = 3749 /*#__PURE__*/ 3750 function (_MDCFoundation) { 3751 _inherits(MDCFormFieldFoundation, _MDCFoundation); 3752 3753 _createClass(MDCFormFieldFoundation, null, [{ 3754 key: "cssClasses", 3755 3756 /** @return enum {cssClasses} */ 3757 get: function get() { 3758 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 3759 } 3760 /** @return enum {strings} */ 3761 3762 }, { 3763 key: "strings", 3764 get: function get() { 3765 return _constants__WEBPACK_IMPORTED_MODULE_2__["strings"]; 3766 } 3767 /** @return {!MDCFormFieldAdapter} */ 3768 3769 }, { 3770 key: "defaultAdapter", 3771 get: function get() { 3772 return { 3773 registerInteractionHandler: function registerInteractionHandler() 3774 /* type: string, handler: EventListener */ 3775 {}, 3776 deregisterInteractionHandler: function deregisterInteractionHandler() 3777 /* type: string, handler: EventListener */ 3778 {}, 3779 activateInputRipple: function activateInputRipple() {}, 3780 deactivateInputRipple: function deactivateInputRipple() {} 3781 }; 3782 } 3783 }]); 3784 3785 function MDCFormFieldFoundation(adapter) { 3786 var _this; 3787 3788 _classCallCheck(this, MDCFormFieldFoundation); 3789 3790 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCFormFieldFoundation).call(this, Object.assign(MDCFormFieldFoundation.defaultAdapter, adapter))); 3791 /** @private {!EventListener} */ 3792 3793 _this.clickHandler_ = 3794 /** @type {!EventListener} */ 3795 function () { 3796 return _this.handleClick_(); 3797 }; 3798 3799 return _this; 3800 } 3801 3802 _createClass(MDCFormFieldFoundation, [{ 3803 key: "init", 3804 value: function init() { 3805 this.adapter_.registerInteractionHandler('click', this.clickHandler_); 3806 } 3807 }, { 3808 key: "destroy", 3809 value: function destroy() { 3810 this.adapter_.deregisterInteractionHandler('click', this.clickHandler_); 3811 } 3812 /** @private */ 3813 3814 }, { 3815 key: "handleClick_", 3816 value: function handleClick_() { 3817 var _this2 = this; 3818 3819 this.adapter_.activateInputRipple(); 3820 requestAnimationFrame(function () { 3821 return _this2.adapter_.deactivateInputRipple(); 3822 }); 3823 } 3824 }]); 3825 3826 return MDCFormFieldFoundation; 3827 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 3828 3829 /* harmony default export */ __webpack_exports__["default"] = (MDCFormFieldFoundation); 3830 3831 /***/ }), 3832 3833 /***/ "./node_modules/@material/form-field/index.js": 3834 /*!****************************************************!*\ 3835 !*** ./node_modules/@material/form-field/index.js ***! 3836 \****************************************************/ 3837 /*! exports provided: MDCFormField, MDCFormFieldFoundation */ 3838 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3839 3840 "use strict"; 3841 __webpack_require__.r(__webpack_exports__); 3842 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormField", function() { return MDCFormField; }); 3843 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 3844 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/form-field/foundation.js"); 3845 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCFormFieldFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 3846 3847 /* harmony import */ var _material_selection_control_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/selection-control/index */ "./node_modules/@material/selection-control/index.js"); 3848 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3849 3850 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3851 3852 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 3853 3854 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 3855 3856 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 3857 3858 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3859 3860 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3861 3862 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 3863 3864 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 3865 3866 /** 3867 * @license 3868 * Copyright 2017 Google Inc. All Rights Reserved. 3869 * 3870 * Licensed under the Apache License, Version 2.0 (the "License"); 3871 * you may not use this file except in compliance with the License. 3872 * You may obtain a copy of the License at 3873 * 3874 * http://www.apache.org/licenses/LICENSE-2.0 3875 * 3876 * Unless required by applicable law or agreed to in writing, software 3877 * distributed under the License is distributed on an "AS IS" BASIS, 3878 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 3879 * See the License for the specific language governing permissions and 3880 * limitations under the License. 3881 */ 3882 3883 3884 /* eslint-disable no-unused-vars */ 3885 3886 3887 /* eslint-enable no-unused-vars */ 3888 3889 /** 3890 * @extends MDCComponent<!MDCFormFieldFoundation> 3891 */ 3892 3893 var MDCFormField = 3894 /*#__PURE__*/ 3895 function (_MDCComponent) { 3896 _inherits(MDCFormField, _MDCComponent); 3897 3898 _createClass(MDCFormField, [{ 3899 key: "input", 3900 3901 /** @param {?MDCSelectionControl} input */ 3902 set: function set(input) { 3903 this.input_ = input; 3904 } 3905 /** @return {?MDCSelectionControl} */ 3906 , 3907 get: function get() { 3908 return this.input_; 3909 } 3910 }], [{ 3911 key: "attachTo", 3912 value: function attachTo(root) { 3913 return new MDCFormField(root); 3914 } 3915 }]); 3916 3917 function MDCFormField() { 3918 var _getPrototypeOf2; 3919 3920 var _this; 3921 3922 _classCallCheck(this, MDCFormField); 3923 3924 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 3925 args[_key] = arguments[_key]; 3926 } 3927 3928 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MDCFormField)).call.apply(_getPrototypeOf2, [this].concat(args))); 3929 /** @private {?MDCSelectionControl} */ 3930 3931 _this.input_; 3932 return _this; 3933 } 3934 /** 3935 * @return {!Element} 3936 * @private 3937 */ 3938 3939 3940 _createClass(MDCFormField, [{ 3941 key: "getDefaultFoundation", 3942 3943 /** @return {!MDCFormFieldFoundation} */ 3944 value: function getDefaultFoundation() { 3945 var _this2 = this; 3946 3947 return new _foundation__WEBPACK_IMPORTED_MODULE_1__["default"]({ 3948 registerInteractionHandler: function registerInteractionHandler(type, handler) { 3949 return _this2.label_.addEventListener(type, handler); 3950 }, 3951 deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { 3952 return _this2.label_.removeEventListener(type, handler); 3953 }, 3954 activateInputRipple: function activateInputRipple() { 3955 if (_this2.input_ && _this2.input_.ripple) { 3956 _this2.input_.ripple.activate(); 3957 } 3958 }, 3959 deactivateInputRipple: function deactivateInputRipple() { 3960 if (_this2.input_ && _this2.input_.ripple) { 3961 _this2.input_.ripple.deactivate(); 3962 } 3963 } 3964 }); 3965 } 3966 }, { 3967 key: "label_", 3968 get: function get() { 3969 var LABEL_SELECTOR = _foundation__WEBPACK_IMPORTED_MODULE_1__["default"].strings.LABEL_SELECTOR; 3970 return ( 3971 /** @type {!Element} */ 3972 this.root_.querySelector(LABEL_SELECTOR) 3973 ); 3974 } 3975 }]); 3976 3977 return MDCFormField; 3978 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 3979 3980 3981 3982 /***/ }), 3983 3984 /***/ "./node_modules/@material/line-ripple/adapter.js": 3985 /*!*******************************************************!*\ 3986 !*** ./node_modules/@material/line-ripple/adapter.js ***! 3987 \*******************************************************/ 3988 /*! exports provided: default */ 3989 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3990 3991 "use strict"; 3992 __webpack_require__.r(__webpack_exports__); 3993 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 3994 3995 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 3996 3997 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 3998 3999 /** 4000 * @license 4001 * Copyright 2018 Google Inc. All Rights Reserved. 4002 * 4003 * Licensed under the Apache License, Version 2.0 (the "License"); 4004 * you may not use this file except in compliance with the License. 4005 * You may obtain a copy of the License at 4006 * 4007 * http://www.apache.org/licenses/LICENSE-2.0 4008 * 4009 * Unless required by applicable law or agreed to in writing, software 4010 * distributed under the License is distributed on an "AS IS" BASIS, 4011 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4012 * See the License for the specific language governing permissions and 4013 * limitations under the License. 4014 */ 4015 4016 /* eslint no-unused-vars: [2, {"args": "none"}] */ 4017 4018 /** 4019 * Adapter for MDC TextField Line Ripple. 4020 * 4021 * Defines the shape of the adapter expected by the foundation. Implement this 4022 * adapter to integrate the line ripple into your framework. See 4023 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 4024 * for more information. 4025 * 4026 * @record 4027 */ 4028 var MDCLineRippleAdapter = 4029 /*#__PURE__*/ 4030 function () { 4031 function MDCLineRippleAdapter() { 4032 _classCallCheck(this, MDCLineRippleAdapter); 4033 } 4034 4035 _createClass(MDCLineRippleAdapter, [{ 4036 key: "addClass", 4037 4038 /** 4039 * Adds a class to the line ripple element. 4040 * @param {string} className 4041 */ 4042 value: function addClass(className) {} 4043 /** 4044 * Removes a class from the line ripple element. 4045 * @param {string} className 4046 */ 4047 4048 }, { 4049 key: "removeClass", 4050 value: function removeClass(className) {} 4051 /** 4052 * @param {string} className 4053 * @return {boolean} 4054 */ 4055 4056 }, { 4057 key: "hasClass", 4058 value: function hasClass(className) {} 4059 /** 4060 * Sets the style property with propertyName to value on the root element. 4061 * @param {string} propertyName 4062 * @param {string} value 4063 */ 4064 4065 }, { 4066 key: "setStyle", 4067 value: function setStyle(propertyName, value) {} 4068 /** 4069 * Registers an event listener on the line ripple element for a given event. 4070 * @param {string} evtType 4071 * @param {function(!Event): undefined} handler 4072 */ 4073 4074 }, { 4075 key: "registerEventHandler", 4076 value: function registerEventHandler(evtType, handler) {} 4077 /** 4078 * Deregisters an event listener on the line ripple element for a given event. 4079 * @param {string} evtType 4080 * @param {function(!Event): undefined} handler 4081 */ 4082 4083 }, { 4084 key: "deregisterEventHandler", 4085 value: function deregisterEventHandler(evtType, handler) {} 4086 }]); 4087 4088 return MDCLineRippleAdapter; 4089 }(); 4090 4091 /* harmony default export */ __webpack_exports__["default"] = (MDCLineRippleAdapter); 4092 4093 /***/ }), 4094 4095 /***/ "./node_modules/@material/line-ripple/constants.js": 4096 /*!*********************************************************!*\ 4097 !*** ./node_modules/@material/line-ripple/constants.js ***! 4098 \*********************************************************/ 4099 /*! exports provided: cssClasses */ 4100 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4101 4102 "use strict"; 4103 __webpack_require__.r(__webpack_exports__); 4104 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 4105 /** 4106 * @license 4107 * Copyright 2018 Google Inc. All Rights Reserved. 4108 * 4109 * Licensed under the Apache License, Version 2.0 (the "License"); 4110 * you may not use this file except in compliance with the License. 4111 * You may obtain a copy of the License at 4112 * 4113 * http://www.apache.org/licenses/LICENSE-2.0 4114 * 4115 * Unless required by applicable law or agreed to in writing, software 4116 * distributed under the License is distributed on an "AS IS" BASIS, 4117 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4118 * See the License for the specific language governing permissions and 4119 * limitations under the License. 4120 */ 4121 4122 /** @enum {string} */ 4123 var cssClasses = { 4124 LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active', 4125 LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating' 4126 }; 4127 4128 4129 /***/ }), 4130 4131 /***/ "./node_modules/@material/line-ripple/foundation.js": 4132 /*!**********************************************************!*\ 4133 !*** ./node_modules/@material/line-ripple/foundation.js ***! 4134 \**********************************************************/ 4135 /*! exports provided: default */ 4136 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4137 4138 "use strict"; 4139 __webpack_require__.r(__webpack_exports__); 4140 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 4141 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/line-ripple/adapter.js"); 4142 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/line-ripple/constants.js"); 4143 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4144 4145 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4146 4147 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 4148 4149 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 4150 4151 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 4152 4153 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4154 4155 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4156 4157 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 4158 4159 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 4160 4161 /** 4162 * @license 4163 * Copyright 2018 Google Inc. All Rights Reserved. 4164 * 4165 * Licensed under the Apache License, Version 2.0 (the "License"); 4166 * you may not use this file except in compliance with the License. 4167 * You may obtain a copy of the License at 4168 * 4169 * http://www.apache.org/licenses/LICENSE-2.0 4170 * 4171 * Unless required by applicable law or agreed to in writing, software 4172 * distributed under the License is distributed on an "AS IS" BASIS, 4173 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4174 * See the License for the specific language governing permissions and 4175 * limitations under the License. 4176 */ 4177 4178 4179 4180 /** 4181 * @extends {MDCFoundation<!MDCLineRippleAdapter>} 4182 * @final 4183 */ 4184 4185 var MDCLineRippleFoundation = 4186 /*#__PURE__*/ 4187 function (_MDCFoundation) { 4188 _inherits(MDCLineRippleFoundation, _MDCFoundation); 4189 4190 _createClass(MDCLineRippleFoundation, null, [{ 4191 key: "cssClasses", 4192 4193 /** @return enum {string} */ 4194 get: function get() { 4195 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 4196 } 4197 /** 4198 * {@see MDCLineRippleAdapter} for typing information on parameters and return 4199 * types. 4200 * @return {!MDCLineRippleAdapter} 4201 */ 4202 4203 }, { 4204 key: "defaultAdapter", 4205 get: function get() { 4206 return ( 4207 /** @type {!MDCLineRippleAdapter} */ 4208 { 4209 addClass: function addClass() {}, 4210 removeClass: function removeClass() {}, 4211 hasClass: function hasClass() {}, 4212 setStyle: function setStyle() {}, 4213 registerEventHandler: function registerEventHandler() {}, 4214 deregisterEventHandler: function deregisterEventHandler() {} 4215 } 4216 ); 4217 } 4218 /** 4219 * @param {!MDCLineRippleAdapter=} adapter 4220 */ 4221 4222 }]); 4223 4224 function MDCLineRippleFoundation() { 4225 var _this; 4226 4227 var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4228 /** @type {!MDCLineRippleAdapter} */ 4229 {}; 4230 4231 _classCallCheck(this, MDCLineRippleFoundation); 4232 4233 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCLineRippleFoundation).call(this, Object.assign(MDCLineRippleFoundation.defaultAdapter, adapter))); 4234 /** @private {function(!Event): undefined} */ 4235 4236 _this.transitionEndHandler_ = function (evt) { 4237 return _this.handleTransitionEnd(evt); 4238 }; 4239 4240 return _this; 4241 } 4242 4243 _createClass(MDCLineRippleFoundation, [{ 4244 key: "init", 4245 value: function init() { 4246 this.adapter_.registerEventHandler('transitionend', this.transitionEndHandler_); 4247 } 4248 }, { 4249 key: "destroy", 4250 value: function destroy() { 4251 this.adapter_.deregisterEventHandler('transitionend', this.transitionEndHandler_); 4252 } 4253 /** 4254 * Activates the line ripple 4255 */ 4256 4257 }, { 4258 key: "activate", 4259 value: function activate() { 4260 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_DEACTIVATING); 4261 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_ACTIVE); 4262 } 4263 /** 4264 * Sets the center of the ripple animation to the given X coordinate. 4265 * @param {number} xCoordinate 4266 */ 4267 4268 }, { 4269 key: "setRippleCenter", 4270 value: function setRippleCenter(xCoordinate) { 4271 this.adapter_.setStyle('transform-origin', "".concat(xCoordinate, "px center")); 4272 } 4273 /** 4274 * Deactivates the line ripple 4275 */ 4276 4277 }, { 4278 key: "deactivate", 4279 value: function deactivate() { 4280 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_DEACTIVATING); 4281 } 4282 /** 4283 * Handles a transition end event 4284 * @param {!Event} evt 4285 */ 4286 4287 }, { 4288 key: "handleTransitionEnd", 4289 value: function handleTransitionEnd(evt) { 4290 // Wait for the line ripple to be either transparent or opaque 4291 // before emitting the animation end event 4292 var isDeactivating = this.adapter_.hasClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_DEACTIVATING); 4293 4294 if (evt.propertyName === 'opacity') { 4295 if (isDeactivating) { 4296 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_ACTIVE); 4297 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].LINE_RIPPLE_DEACTIVATING); 4298 } 4299 } 4300 } 4301 }]); 4302 4303 return MDCLineRippleFoundation; 4304 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 4305 4306 /* harmony default export */ __webpack_exports__["default"] = (MDCLineRippleFoundation); 4307 4308 /***/ }), 4309 4310 /***/ "./node_modules/@material/line-ripple/index.js": 4311 /*!*****************************************************!*\ 4312 !*** ./node_modules/@material/line-ripple/index.js ***! 4313 \*****************************************************/ 4314 /*! exports provided: MDCLineRipple, MDCLineRippleFoundation */ 4315 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4316 4317 "use strict"; 4318 __webpack_require__.r(__webpack_exports__); 4319 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLineRipple", function() { return MDCLineRipple; }); 4320 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 4321 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/line-ripple/adapter.js"); 4322 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/line-ripple/foundation.js"); 4323 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCLineRippleFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4324 4325 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4326 4327 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4328 4329 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4330 4331 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4332 4333 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 4334 4335 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 4336 4337 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 4338 4339 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 4340 4341 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 4342 4343 /** 4344 * @license 4345 * Copyright 2018 Google Inc. All Rights Reserved. 4346 * 4347 * Licensed under the Apache License, Version 2.0 (the "License"); 4348 * you may not use this file except in compliance with the License. 4349 * You may obtain a copy of the License at 4350 * 4351 * http://www.apache.org/licenses/LICENSE-2.0 4352 * 4353 * Unless required by applicable law or agreed to in writing, software 4354 * distributed under the License is distributed on an "AS IS" BASIS, 4355 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4356 * See the License for the specific language governing permissions and 4357 * limitations under the License. 4358 */ 4359 4360 4361 4362 /** 4363 * @extends {MDCComponent<!MDCLineRippleFoundation>} 4364 * @final 4365 */ 4366 4367 var MDCLineRipple = 4368 /*#__PURE__*/ 4369 function (_MDCComponent) { 4370 _inherits(MDCLineRipple, _MDCComponent); 4371 4372 function MDCLineRipple() { 4373 _classCallCheck(this, MDCLineRipple); 4374 4375 return _possibleConstructorReturn(this, _getPrototypeOf(MDCLineRipple).apply(this, arguments)); 4376 } 4377 4378 _createClass(MDCLineRipple, [{ 4379 key: "activate", 4380 4381 /** 4382 * Activates the line ripple 4383 */ 4384 value: function activate() { 4385 this.foundation_.activate(); 4386 } 4387 /** 4388 * Deactivates the line ripple 4389 */ 4390 4391 }, { 4392 key: "deactivate", 4393 value: function deactivate() { 4394 this.foundation_.deactivate(); 4395 } 4396 /** 4397 * Sets the transform origin given a user's click location. The `rippleCenter` is the 4398 * x-coordinate of the middle of the ripple. 4399 * @param {number} xCoordinate 4400 */ 4401 4402 }, { 4403 key: "setRippleCenter", 4404 value: function setRippleCenter(xCoordinate) { 4405 this.foundation_.setRippleCenter(xCoordinate); 4406 } 4407 /** 4408 * @return {!MDCLineRippleFoundation} 4409 */ 4410 4411 }, { 4412 key: "getDefaultFoundation", 4413 value: function getDefaultFoundation() { 4414 var _this = this; 4415 4416 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]( 4417 /** @type {!MDCLineRippleAdapter} */ 4418 Object.assign({ 4419 addClass: function addClass(className) { 4420 return _this.root_.classList.add(className); 4421 }, 4422 removeClass: function removeClass(className) { 4423 return _this.root_.classList.remove(className); 4424 }, 4425 hasClass: function hasClass(className) { 4426 return _this.root_.classList.contains(className); 4427 }, 4428 setStyle: function setStyle(propertyName, value) { 4429 return _this.root_.style[propertyName] = value; 4430 }, 4431 registerEventHandler: function registerEventHandler(evtType, handler) { 4432 return _this.root_.addEventListener(evtType, handler); 4433 }, 4434 deregisterEventHandler: function deregisterEventHandler(evtType, handler) { 4435 return _this.root_.removeEventListener(evtType, handler); 4436 } 4437 })); 4438 } 4439 }], [{ 4440 key: "attachTo", 4441 4442 /** 4443 * @param {!Element} root 4444 * @return {!MDCLineRipple} 4445 */ 4446 value: function attachTo(root) { 4447 return new MDCLineRipple(root); 4448 } 4449 }]); 4450 4451 return MDCLineRipple; 4452 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 4453 4454 4455 4456 /***/ }), 4457 4458 /***/ "./node_modules/@material/notched-outline/adapter.js": 4459 /*!***********************************************************!*\ 4460 !*** ./node_modules/@material/notched-outline/adapter.js ***! 4461 \***********************************************************/ 4462 /*! exports provided: default */ 4463 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4464 4465 "use strict"; 4466 __webpack_require__.r(__webpack_exports__); 4467 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4468 4469 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4470 4471 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4472 4473 /** 4474 * @license 4475 * Copyright 2017 Google Inc. All Rights Reserved. 4476 * 4477 * Licensed under the Apache License, Version 2.0 (the "License"); 4478 * you may not use this file except in compliance with the License. 4479 * You may obtain a copy of the License at 4480 * 4481 * http://www.apache.org/licenses/LICENSE-2.0 4482 * 4483 * Unless required by applicable law or agreed to in writing, software 4484 * distributed under the License is distributed on an "AS IS" BASIS, 4485 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4486 * See the License for the specific language governing permissions and 4487 * limitations under the License. 4488 */ 4489 4490 /* eslint no-unused-vars: [2, {"args": "none"}] */ 4491 4492 /** 4493 * Adapter for MDC Notched Outline. 4494 * 4495 * Defines the shape of the adapter expected by the foundation. Implement this 4496 * adapter to integrate the Notched Outline into your framework. See 4497 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 4498 * for more information. 4499 * 4500 * @record 4501 */ 4502 var MDCNotchedOutlineAdapter = 4503 /*#__PURE__*/ 4504 function () { 4505 function MDCNotchedOutlineAdapter() { 4506 _classCallCheck(this, MDCNotchedOutlineAdapter); 4507 } 4508 4509 _createClass(MDCNotchedOutlineAdapter, [{ 4510 key: "getWidth", 4511 4512 /** 4513 * Returns the width of the root element. 4514 * @return {number} 4515 */ 4516 value: function getWidth() {} 4517 /** 4518 * Returns the height of the root element. 4519 * @return {number} 4520 */ 4521 4522 }, { 4523 key: "getHeight", 4524 value: function getHeight() {} 4525 /** 4526 * Adds a class to the root element. 4527 * @param {string} className 4528 */ 4529 4530 }, { 4531 key: "addClass", 4532 value: function addClass(className) {} 4533 /** 4534 * Removes a class from the root element. 4535 * @param {string} className 4536 */ 4537 4538 }, { 4539 key: "removeClass", 4540 value: function removeClass(className) {} 4541 /** 4542 * Sets the "d" attribute of the outline element's SVG path. 4543 * @param {string} value 4544 */ 4545 4546 }, { 4547 key: "setOutlinePathAttr", 4548 value: function setOutlinePathAttr(value) {} 4549 /** 4550 * Returns the idle outline element's computed style value of the given css property `propertyName`. 4551 * We achieve this via `getComputedStyle(...).getPropertyValue(propertyName)`. 4552 * @param {string} propertyName 4553 * @return {string} 4554 */ 4555 4556 }, { 4557 key: "getIdleOutlineStyleValue", 4558 value: function getIdleOutlineStyleValue(propertyName) {} 4559 }]); 4560 4561 return MDCNotchedOutlineAdapter; 4562 }(); 4563 4564 /* harmony default export */ __webpack_exports__["default"] = (MDCNotchedOutlineAdapter); 4565 4566 /***/ }), 4567 4568 /***/ "./node_modules/@material/notched-outline/constants.js": 4569 /*!*************************************************************!*\ 4570 !*** ./node_modules/@material/notched-outline/constants.js ***! 4571 \*************************************************************/ 4572 /*! exports provided: cssClasses, strings */ 4573 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4574 4575 "use strict"; 4576 __webpack_require__.r(__webpack_exports__); 4577 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 4578 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 4579 /** 4580 * @license 4581 * Copyright 2018 Google Inc. All Rights Reserved. 4582 * 4583 * Licensed under the Apache License, Version 2.0 (the "License"); 4584 * you may not use this file except in compliance with the License. 4585 * You may obtain a copy of the License at 4586 * 4587 * http://www.apache.org/licenses/LICENSE-2.0 4588 * 4589 * Unless required by applicable law or agreed to in writing, software 4590 * distributed under the License is distributed on an "AS IS" BASIS, 4591 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4592 * See the License for the specific language governing permissions and 4593 * limitations under the License. 4594 */ 4595 4596 /** @enum {string} */ 4597 var strings = { 4598 PATH_SELECTOR: '.mdc-notched-outline__path', 4599 IDLE_OUTLINE_SELECTOR: '.mdc-notched-outline__idle' 4600 }; 4601 /** @enum {string} */ 4602 4603 var cssClasses = { 4604 OUTLINE_NOTCHED: 'mdc-notched-outline--notched' 4605 }; 4606 4607 4608 /***/ }), 4609 4610 /***/ "./node_modules/@material/notched-outline/foundation.js": 4611 /*!**************************************************************!*\ 4612 !*** ./node_modules/@material/notched-outline/foundation.js ***! 4613 \**************************************************************/ 4614 /*! exports provided: default */ 4615 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4616 4617 "use strict"; 4618 __webpack_require__.r(__webpack_exports__); 4619 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 4620 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/notched-outline/adapter.js"); 4621 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/notched-outline/constants.js"); 4622 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4623 4624 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4625 4626 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 4627 4628 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 4629 4630 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 4631 4632 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4633 4634 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4635 4636 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 4637 4638 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 4639 4640 /** 4641 * @license 4642 * Copyright 2017 Google Inc. All Rights Reserved. 4643 * 4644 * Licensed under the Apache License, Version 2.0 (the "License"); 4645 * you may not use this file except in compliance with the License. 4646 * You may obtain a copy of the License at 4647 * 4648 * http://www.apache.org/licenses/LICENSE-2.0 4649 * 4650 * Unless required by applicable law or agreed to in writing, software 4651 * distributed under the License is distributed on an "AS IS" BASIS, 4652 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4653 * See the License for the specific language governing permissions and 4654 * limitations under the License. 4655 */ 4656 4657 4658 4659 /** 4660 * @extends {MDCFoundation<!MDCNotchedOutlineAdapter>} 4661 * @final 4662 */ 4663 4664 var MDCNotchedOutlineFoundation = 4665 /*#__PURE__*/ 4666 function (_MDCFoundation) { 4667 _inherits(MDCNotchedOutlineFoundation, _MDCFoundation); 4668 4669 _createClass(MDCNotchedOutlineFoundation, null, [{ 4670 key: "strings", 4671 4672 /** @return enum {string} */ 4673 get: function get() { 4674 return _constants__WEBPACK_IMPORTED_MODULE_2__["strings"]; 4675 } 4676 /** @return enum {string} */ 4677 4678 }, { 4679 key: "cssClasses", 4680 get: function get() { 4681 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 4682 } 4683 /** 4684 * {@see MDCNotchedOutlineAdapter} for typing information on parameters and return 4685 * types. 4686 * @return {!MDCNotchedOutlineAdapter} 4687 */ 4688 4689 }, { 4690 key: "defaultAdapter", 4691 get: function get() { 4692 return ( 4693 /** @type {!MDCNotchedOutlineAdapter} */ 4694 { 4695 getWidth: function getWidth() {}, 4696 getHeight: function getHeight() {}, 4697 addClass: function addClass() {}, 4698 removeClass: function removeClass() {}, 4699 setOutlinePathAttr: function setOutlinePathAttr() {}, 4700 getIdleOutlineStyleValue: function getIdleOutlineStyleValue() {} 4701 } 4702 ); 4703 } 4704 /** 4705 * @param {!MDCNotchedOutlineAdapter} adapter 4706 */ 4707 4708 }]); 4709 4710 function MDCNotchedOutlineFoundation(adapter) { 4711 _classCallCheck(this, MDCNotchedOutlineFoundation); 4712 4713 return _possibleConstructorReturn(this, _getPrototypeOf(MDCNotchedOutlineFoundation).call(this, Object.assign(MDCNotchedOutlineFoundation.defaultAdapter, adapter))); 4714 } 4715 /** 4716 * Adds the outline notched selector and updates the notch width 4717 * calculated based off of notchWidth and isRtl. 4718 * @param {number} notchWidth 4719 * @param {boolean=} isRtl 4720 */ 4721 4722 4723 _createClass(MDCNotchedOutlineFoundation, [{ 4724 key: "notch", 4725 value: function notch(notchWidth) { 4726 var isRtl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 4727 var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; 4728 this.adapter_.addClass(OUTLINE_NOTCHED); 4729 this.updateSvgPath_(notchWidth, isRtl); 4730 } 4731 /** 4732 * Removes notched outline selector to close the notch in the outline. 4733 */ 4734 4735 }, { 4736 key: "closeNotch", 4737 value: function closeNotch() { 4738 var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; 4739 this.adapter_.removeClass(OUTLINE_NOTCHED); 4740 } 4741 /** 4742 * Updates the SVG path of the focus outline element based on the notchWidth 4743 * and the RTL context. 4744 * @param {number} notchWidth 4745 * @param {boolean=} isRtl 4746 * @private 4747 */ 4748 4749 }, { 4750 key: "updateSvgPath_", 4751 value: function updateSvgPath_(notchWidth, isRtl) { 4752 // Fall back to reading a specific corner's style because Firefox doesn't report the style on border-radius. 4753 var radiusStyleValue = this.adapter_.getIdleOutlineStyleValue('border-radius') || this.adapter_.getIdleOutlineStyleValue('border-top-left-radius'); 4754 var radius = parseFloat(radiusStyleValue); 4755 var width = this.adapter_.getWidth(); 4756 var height = this.adapter_.getHeight(); 4757 var cornerWidth = radius + 1.2; 4758 var leadingStrokeLength = Math.abs(11 - cornerWidth); 4759 var paddedNotchWidth = notchWidth + 8; // The right, bottom, and left sides of the outline follow the same SVG path. 4760 4761 var pathMiddle = 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + 'v' + (height - 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + radius + 'h' + (-width + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + -radius + 'v' + (-height + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius; 4762 var path; 4763 4764 if (!isRtl) { 4765 path = 'M' + (cornerWidth + leadingStrokeLength + paddedNotchWidth) + ',' + 1 + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength) + pathMiddle + 'h' + leadingStrokeLength; 4766 } else { 4767 path = 'M' + (width - cornerWidth - leadingStrokeLength) + ',' + 1 + 'h' + leadingStrokeLength + pathMiddle + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength); 4768 } 4769 4770 this.adapter_.setOutlinePathAttr(path); 4771 } 4772 }]); 4773 4774 return MDCNotchedOutlineFoundation; 4775 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 4776 4777 /* harmony default export */ __webpack_exports__["default"] = (MDCNotchedOutlineFoundation); 4778 4779 /***/ }), 4780 4781 /***/ "./node_modules/@material/notched-outline/index.js": 4782 /*!*********************************************************!*\ 4783 !*** ./node_modules/@material/notched-outline/index.js ***! 4784 \*********************************************************/ 4785 /*! exports provided: MDCNotchedOutline, MDCNotchedOutlineFoundation */ 4786 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4787 4788 "use strict"; 4789 __webpack_require__.r(__webpack_exports__); 4790 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutline", function() { return MDCNotchedOutline; }); 4791 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 4792 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/notched-outline/adapter.js"); 4793 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/notched-outline/foundation.js"); 4794 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutlineFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4795 4796 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/notched-outline/constants.js"); 4797 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4798 4799 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4800 4801 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4802 4803 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4804 4805 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 4806 4807 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 4808 4809 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 4810 4811 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 4812 4813 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 4814 4815 /** 4816 * @license 4817 * Copyright 2017 Google Inc. All Rights Reserved. 4818 * 4819 * Licensed under the Apache License, Version 2.0 (the "License"); 4820 * you may not use this file except in compliance with the License. 4821 * You may obtain a copy of the License at 4822 * 4823 * http://www.apache.org/licenses/LICENSE-2.0 4824 * 4825 * Unless required by applicable law or agreed to in writing, software 4826 * distributed under the License is distributed on an "AS IS" BASIS, 4827 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4828 * See the License for the specific language governing permissions and 4829 * limitations under the License. 4830 */ 4831 4832 4833 4834 4835 /** 4836 * @extends {MDCComponent<!MDCNotchedOutlineFoundation>} 4837 * @final 4838 */ 4839 4840 var MDCNotchedOutline = 4841 /*#__PURE__*/ 4842 function (_MDCComponent) { 4843 _inherits(MDCNotchedOutline, _MDCComponent); 4844 4845 function MDCNotchedOutline() { 4846 _classCallCheck(this, MDCNotchedOutline); 4847 4848 return _possibleConstructorReturn(this, _getPrototypeOf(MDCNotchedOutline).apply(this, arguments)); 4849 } 4850 4851 _createClass(MDCNotchedOutline, [{ 4852 key: "notch", 4853 4854 /** 4855 * Updates outline selectors and SVG path to open notch. 4856 * @param {number} notchWidth The notch width in the outline. 4857 * @param {boolean=} isRtl Determines if outline is rtl. If rtl is true, notch 4858 * will be right justified in outline path, otherwise left justified. 4859 */ 4860 value: function notch(notchWidth, isRtl) { 4861 this.foundation_.notch(notchWidth, isRtl); 4862 } 4863 /** 4864 * Updates the outline selectors to close notch and return it to idle state. 4865 */ 4866 4867 }, { 4868 key: "closeNotch", 4869 value: function closeNotch() { 4870 this.foundation_.closeNotch(); 4871 } 4872 /** 4873 * @return {!MDCNotchedOutlineFoundation} 4874 */ 4875 4876 }, { 4877 key: "getDefaultFoundation", 4878 value: function getDefaultFoundation() { 4879 var _this = this; 4880 4881 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]({ 4882 getWidth: function getWidth() { 4883 return _this.root_.offsetWidth; 4884 }, 4885 getHeight: function getHeight() { 4886 return _this.root_.offsetHeight; 4887 }, 4888 addClass: function addClass(className) { 4889 return _this.root_.classList.add(className); 4890 }, 4891 removeClass: function removeClass(className) { 4892 return _this.root_.classList.remove(className); 4893 }, 4894 setOutlinePathAttr: function setOutlinePathAttr(value) { 4895 var path = _this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].PATH_SELECTOR); 4896 4897 path.setAttribute('d', value); 4898 }, 4899 getIdleOutlineStyleValue: function getIdleOutlineStyleValue(propertyName) { 4900 var idleOutlineElement = _this.root_.parentNode.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].IDLE_OUTLINE_SELECTOR); 4901 4902 return window.getComputedStyle(idleOutlineElement).getPropertyValue(propertyName); 4903 } 4904 }); 4905 } 4906 }], [{ 4907 key: "attachTo", 4908 4909 /** 4910 * @param {!Element} root 4911 * @return {!MDCNotchedOutline} 4912 */ 4913 value: function attachTo(root) { 4914 return new MDCNotchedOutline(root); 4915 } 4916 }]); 4917 4918 return MDCNotchedOutline; 4919 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 4920 4921 4922 4923 /***/ }), 4924 4925 /***/ "./node_modules/@material/ripple/adapter.js": 4926 /*!**************************************************!*\ 4927 !*** ./node_modules/@material/ripple/adapter.js ***! 4928 \**************************************************/ 4929 /*! exports provided: default */ 4930 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4931 4932 "use strict"; 4933 __webpack_require__.r(__webpack_exports__); 4934 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 4935 4936 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 4937 4938 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 4939 4940 /** 4941 * @license 4942 * Copyright 2016 Google Inc. All Rights Reserved. 4943 * 4944 * Licensed under the Apache License, Version 2.0 (the "License"); 4945 * you may not use this file except in compliance with the License. 4946 * You may obtain a copy of the License at 4947 * 4948 * http://www.apache.org/licenses/LICENSE-2.0 4949 * 4950 * Unless required by applicable law or agreed to in writing, software 4951 * distributed under the License is distributed on an "AS IS" BASIS, 4952 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4953 * See the License for the specific language governing permissions and 4954 * limitations under the License. 4955 */ 4956 4957 /* eslint no-unused-vars: [2, {"args": "none"}] */ 4958 4959 /** 4960 * Adapter for MDC Ripple. Provides an interface for managing 4961 * - classes 4962 * - dom 4963 * - CSS variables 4964 * - position 4965 * - dimensions 4966 * - scroll position 4967 * - event handlers 4968 * - unbounded, active and disabled states 4969 * 4970 * Additionally, provides type information for the adapter to the Closure 4971 * compiler. 4972 * 4973 * Implement this adapter for your framework of choice to delegate updates to 4974 * the component in your framework of choice. See architecture documentation 4975 * for more details. 4976 * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md 4977 * 4978 * @record 4979 */ 4980 var MDCRippleAdapter = 4981 /*#__PURE__*/ 4982 function () { 4983 function MDCRippleAdapter() { 4984 _classCallCheck(this, MDCRippleAdapter); 4985 } 4986 4987 _createClass(MDCRippleAdapter, [{ 4988 key: "browserSupportsCssVars", 4989 4990 /** @return {boolean} */ 4991 value: function browserSupportsCssVars() {} 4992 /** @return {boolean} */ 4993 4994 }, { 4995 key: "isUnbounded", 4996 value: function isUnbounded() {} 4997 /** @return {boolean} */ 4998 4999 }, { 5000 key: "isSurfaceActive", 5001 value: function isSurfaceActive() {} 5002 /** @return {boolean} */ 5003 5004 }, { 5005 key: "isSurfaceDisabled", 5006 value: function isSurfaceDisabled() {} 5007 /** @param {string} className */ 5008 5009 }, { 5010 key: "addClass", 5011 value: function addClass(className) {} 5012 /** @param {string} className */ 5013 5014 }, { 5015 key: "removeClass", 5016 value: function removeClass(className) {} 5017 /** @param {!EventTarget} target */ 5018 5019 }, { 5020 key: "containsEventTarget", 5021 value: function containsEventTarget(target) {} 5022 /** 5023 * @param {string} evtType 5024 * @param {!Function} handler 5025 */ 5026 5027 }, { 5028 key: "registerInteractionHandler", 5029 value: function registerInteractionHandler(evtType, handler) {} 5030 /** 5031 * @param {string} evtType 5032 * @param {!Function} handler 5033 */ 5034 5035 }, { 5036 key: "deregisterInteractionHandler", 5037 value: function deregisterInteractionHandler(evtType, handler) {} 5038 /** 5039 * @param {string} evtType 5040 * @param {!Function} handler 5041 */ 5042 5043 }, { 5044 key: "registerDocumentInteractionHandler", 5045 value: function registerDocumentInteractionHandler(evtType, handler) {} 5046 /** 5047 * @param {string} evtType 5048 * @param {!Function} handler 5049 */ 5050 5051 }, { 5052 key: "deregisterDocumentInteractionHandler", 5053 value: function deregisterDocumentInteractionHandler(evtType, handler) {} 5054 /** 5055 * @param {!Function} handler 5056 */ 5057 5058 }, { 5059 key: "registerResizeHandler", 5060 value: function registerResizeHandler(handler) {} 5061 /** 5062 * @param {!Function} handler 5063 */ 5064 5065 }, { 5066 key: "deregisterResizeHandler", 5067 value: function deregisterResizeHandler(handler) {} 5068 /** 5069 * @param {string} varName 5070 * @param {?number|string} value 5071 */ 5072 5073 }, { 5074 key: "updateCssVariable", 5075 value: function updateCssVariable(varName, value) {} 5076 /** @return {!ClientRect} */ 5077 5078 }, { 5079 key: "computeBoundingRect", 5080 value: function computeBoundingRect() {} 5081 /** @return {{x: number, y: number}} */ 5082 5083 }, { 5084 key: "getWindowPageOffset", 5085 value: function getWindowPageOffset() {} 5086 }]); 5087 5088 return MDCRippleAdapter; 5089 }(); 5090 5091 /* harmony default export */ __webpack_exports__["default"] = (MDCRippleAdapter); 5092 5093 /***/ }), 5094 5095 /***/ "./node_modules/@material/ripple/constants.js": 5096 /*!****************************************************!*\ 5097 !*** ./node_modules/@material/ripple/constants.js ***! 5098 \****************************************************/ 5099 /*! exports provided: cssClasses, strings, numbers */ 5100 /***/ (function(module, __webpack_exports__, __webpack_require__) { 5101 5102 "use strict"; 5103 __webpack_require__.r(__webpack_exports__); 5104 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 5105 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 5106 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numbers", function() { return numbers; }); 5107 /** 5108 * @license 5109 * Copyright 2016 Google Inc. All Rights Reserved. 5110 * 5111 * Licensed under the Apache License, Version 2.0 (the "License"); 5112 * you may not use this file except in compliance with the License. 5113 * You may obtain a copy of the License at 5114 * 5115 * http://www.apache.org/licenses/LICENSE-2.0 5116 * 5117 * Unless required by applicable law or agreed to in writing, software 5118 * distributed under the License is distributed on an "AS IS" BASIS, 5119 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5120 * See the License for the specific language governing permissions and 5121 * limitations under the License. 5122 */ 5123 var cssClasses = { 5124 // Ripple is a special case where the "root" component is really a "mixin" of sorts, 5125 // given that it's an 'upgrade' to an existing component. That being said it is the root 5126 // CSS class that all other CSS classes derive from. 5127 ROOT: 'mdc-ripple-upgraded', 5128 UNBOUNDED: 'mdc-ripple-upgraded--unbounded', 5129 BG_FOCUSED: 'mdc-ripple-upgraded--background-focused', 5130 FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation', 5131 FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation' 5132 }; 5133 var strings = { 5134 VAR_LEFT: '--mdc-ripple-left', 5135 VAR_TOP: '--mdc-ripple-top', 5136 VAR_FG_SIZE: '--mdc-ripple-fg-size', 5137 VAR_FG_SCALE: '--mdc-ripple-fg-scale', 5138 VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start', 5139 VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end' 5140 }; 5141 var numbers = { 5142 PADDING: 10, 5143 INITIAL_ORIGIN_SCALE: 0.6, 5144 DEACTIVATION_TIMEOUT_MS: 225, 5145 // Corresponds to $mdc-ripple-translate-duration (i.e. activation animation duration) 5146 FG_DEACTIVATION_MS: 150, 5147 // Corresponds to $mdc-ripple-fade-out-duration (i.e. deactivation animation duration) 5148 TAP_DELAY_MS: 300 // Delay between touch and simulated mouse events on touch devices 5149 5150 }; 5151 5152 5153 /***/ }), 5154 5155 /***/ "./node_modules/@material/ripple/foundation.js": 5156 /*!*****************************************************!*\ 5157 !*** ./node_modules/@material/ripple/foundation.js ***! 5158 \*****************************************************/ 5159 /*! exports provided: default */ 5160 /***/ (function(module, __webpack_exports__, __webpack_require__) { 5161 5162 "use strict"; 5163 __webpack_require__.r(__webpack_exports__); 5164 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 5165 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/ripple/adapter.js"); 5166 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/ripple/constants.js"); 5167 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./node_modules/@material/ripple/util.js"); 5168 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5169 5170 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 5171 5172 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 5173 5174 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 5175 5176 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 5177 5178 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 5179 5180 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 5181 5182 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 5183 5184 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 5185 5186 /** 5187 * @license 5188 * Copyright 2016 Google Inc. All Rights Reserved. 5189 * 5190 * Licensed under the Apache License, Version 2.0 (the "License"); 5191 * you may not use this file except in compliance with the License. 5192 * You may obtain a copy of the License at 5193 * 5194 * http://www.apache.org/licenses/LICENSE-2.0 5195 * 5196 * Unless required by applicable law or agreed to in writing, software 5197 * distributed under the License is distributed on an "AS IS" BASIS, 5198 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 5199 * See the License for the specific language governing permissions and 5200 * limitations under the License. 5201 */ 5202 5203 5204 5205 5206 /** 5207 * @typedef {{ 5208 * isActivated: (boolean|undefined), 5209 * hasDeactivationUXRun: (boolean|undefined), 5210 * wasActivatedByPointer: (boolean|undefined), 5211 * wasElementMadeActive: (boolean|undefined), 5212 * activationEvent: Event, 5213 * isProgrammatic: (boolean|undefined) 5214 * }} 5215 */ 5216 5217 var ActivationStateType; 5218 /** 5219 * @typedef {{ 5220 * activate: (string|undefined), 5221 * deactivate: (string|undefined), 5222 * focus: (string|undefined), 5223 * blur: (string|undefined) 5224 * }} 5225 */ 5226 5227 var ListenerInfoType; 5228 /** 5229 * @typedef {{ 5230 * activate: function(!Event), 5231 * deactivate: function(!Event), 5232 * focus: function(), 5233 * blur: function() 5234 * }} 5235 */ 5236 5237 var ListenersType; 5238 /** 5239 * @typedef {{ 5240 * x: number, 5241 * y: number 5242 * }} 5243 */ 5244 5245 var PointType; // Activation events registered on the root element of each instance for activation 5246 5247 var ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown']; // Deactivation events registered on documentElement when a pointer-related down event occurs 5248 5249 var POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup']; // Tracks activations that have occurred on the current frame, to avoid simultaneous nested activations 5250 5251 /** @type {!Array<!EventTarget>} */ 5252 5253 var activatedTargets = []; 5254 /** 5255 * @extends {MDCFoundation<!MDCRippleAdapter>} 5256 */ 5257 5258 var MDCRippleFoundation = 5259 /*#__PURE__*/ 5260 function (_MDCFoundation) { 5261 _inherits(MDCRippleFoundation, _MDCFoundation); 5262 5263 _createClass(MDCRippleFoundation, null, [{ 5264 key: "cssClasses", 5265 get: function get() { 5266 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 5267 } 5268 }, { 5269 key: "strings", 5270 get: function get() { 5271 return _constants__WEBPACK_IMPORTED_MODULE_2__["strings"]; 5272 } 5273 }, { 5274 key: "numbers", 5275 get: function get() { 5276 return _constants__WEBPACK_IMPORTED_MODULE_2__["numbers"]; 5277 } 5278 }, { 5279 key: "defaultAdapter", 5280 get: function get() { 5281 return { 5282 browserSupportsCssVars: function browserSupportsCssVars() 5283 /* boolean - cached */ 5284 {}, 5285 isUnbounded: function isUnbounded() 5286 /* boolean */ 5287 {}, 5288 isSurfaceActive: function isSurfaceActive() 5289 /* boolean */ 5290 {}, 5291 isSurfaceDisabled: function isSurfaceDisabled() 5292 /* boolean */ 5293 {}, 5294 addClass: function addClass() 5295 /* className: string */ 5296 {}, 5297 removeClass: function removeClass() 5298 /* className: string */ 5299 {}, 5300 containsEventTarget: function containsEventTarget() 5301 /* target: !EventTarget */ 5302 {}, 5303 registerInteractionHandler: function registerInteractionHandler() 5304 /* evtType: string, handler: EventListener */ 5305 {}, 5306 deregisterInteractionHandler: function deregisterInteractionHandler() 5307 /* evtType: string, handler: EventListener */ 5308 {}, 5309 registerDocumentInteractionHandler: function registerDocumentInteractionHandler() 5310 /* evtType: string, handler: EventListener */ 5311 {}, 5312 deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() 5313 /* evtType: string, handler: EventListener */ 5314 {}, 5315 registerResizeHandler: function registerResizeHandler() 5316 /* handler: EventListener */ 5317 {}, 5318 deregisterResizeHandler: function deregisterResizeHandler() 5319 /* handler: EventListener */ 5320 {}, 5321 updateCssVariable: function updateCssVariable() 5322 /* varName: string, value: string */ 5323 {}, 5324 computeBoundingRect: function computeBoundingRect() 5325 /* ClientRect */ 5326 {}, 5327 getWindowPageOffset: function getWindowPageOffset() 5328 /* {x: number, y: number} */ 5329 {} 5330 }; 5331 } 5332 }]); 5333 5334 function MDCRippleFoundation(adapter) { 5335 var _this; 5336 5337 _classCallCheck(this, MDCRippleFoundation); 5338 5339 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCRippleFoundation).call(this, Object.assign(MDCRippleFoundation.defaultAdapter, adapter))); 5340 /** @private {number} */ 5341 5342 _this.layoutFrame_ = 0; 5343 /** @private {!ClientRect} */ 5344 5345 _this.frame_ = 5346 /** @type {!ClientRect} */ 5347 { 5348 width: 0, 5349 height: 0 5350 }; 5351 /** @private {!ActivationStateType} */ 5352 5353 _this.activationState_ = _this.defaultActivationState_(); 5354 /** @private {number} */ 5355 5356 _this.initialSize_ = 0; 5357 /** @private {number} */ 5358 5359 _this.maxRadius_ = 0; 5360 /** @private {function(!Event)} */ 5361 5362 _this.activateHandler_ = function (e) { 5363 return _this.activate_(e); 5364 }; 5365 /** @private {function(!Event)} */ 5366 5367 5368 _this.deactivateHandler_ = function (e) { 5369 return _this.deactivate_(e); 5370 }; 5371 /** @private {function(?Event=)} */ 5372 5373 5374 _this.focusHandler_ = function () { 5375 return requestAnimationFrame(function () { 5376 return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); 5377 }); 5378 }; 5379 /** @private {function(?Event=)} */ 5380 5381 5382 _this.blurHandler_ = function () { 5383 return requestAnimationFrame(function () { 5384 return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); 5385 }); 5386 }; 5387 /** @private {!Function} */ 5388 5389 5390 _this.resizeHandler_ = function () { 5391 return _this.layout(); 5392 }; 5393 /** @private {{left: number, top:number}} */ 5394 5395 5396 _this.unboundedCoords_ = { 5397 left: 0, 5398 top: 0 5399 }; 5400 /** @private {number} */ 5401 5402 _this.fgScale_ = 0; 5403 /** @private {number} */ 5404 5405 _this.activationTimer_ = 0; 5406 /** @private {number} */ 5407 5408 _this.fgDeactivationRemovalTimer_ = 0; 5409 /** @private {boolean} */ 5410 5411 _this.activationAnimationHasEnded_ = false; 5412 /** @private {!Function} */ 5413 5414 _this.activationTimerCallback_ = function () { 5415 _this.activationAnimationHasEnded_ = true; 5416 5417 _this.runDeactivationUXLogicIfReady_(); 5418 }; 5419 /** @private {?Event} */ 5420 5421 5422 _this.previousActivationEvent_ = null; 5423 return _this; 5424 } 5425 /** 5426 * We compute this property so that we are not querying information about the client 5427 * until the point in time where the foundation requests it. This prevents scenarios where 5428 * client-side feature-detection may happen too early, such as when components are rendered on the server 5429 * and then initialized at mount time on the client. 5430 * @return {boolean} 5431 * @private 5432 */ 5433 5434 5435 _createClass(MDCRippleFoundation, [{ 5436 key: "isSupported_", 5437 value: function isSupported_() { 5438 return this.adapter_.browserSupportsCssVars(); 5439 } 5440 /** 5441 * @return {!ActivationStateType} 5442 */ 5443 5444 }, { 5445 key: "defaultActivationState_", 5446 value: function defaultActivationState_() { 5447 return { 5448 isActivated: false, 5449 hasDeactivationUXRun: false, 5450 wasActivatedByPointer: false, 5451 wasElementMadeActive: false, 5452 activationEvent: null, 5453 isProgrammatic: false 5454 }; 5455 } 5456 }, { 5457 key: "init", 5458 value: function init() { 5459 var _this2 = this; 5460 5461 if (!this.isSupported_()) { 5462 return; 5463 } 5464 5465 this.registerRootHandlers_(); 5466 var _MDCRippleFoundation$ = MDCRippleFoundation.cssClasses, 5467 ROOT = _MDCRippleFoundation$.ROOT, 5468 UNBOUNDED = _MDCRippleFoundation$.UNBOUNDED; 5469 requestAnimationFrame(function () { 5470 _this2.adapter_.addClass(ROOT); 5471 5472 if (_this2.adapter_.isUnbounded()) { 5473 _this2.adapter_.addClass(UNBOUNDED); // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple 5474 5475 5476 _this2.layoutInternal_(); 5477 } 5478 }); 5479 } 5480 }, { 5481 key: "destroy", 5482 value: function destroy() { 5483 var _this3 = this; 5484 5485 if (!this.isSupported_()) { 5486 return; 5487 } 5488 5489 if (this.activationTimer_) { 5490 clearTimeout(this.activationTimer_); 5491 this.activationTimer_ = 0; 5492 var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; 5493 this.adapter_.removeClass(FG_ACTIVATION); 5494 } 5495 5496 this.deregisterRootHandlers_(); 5497 this.deregisterDeactivationHandlers_(); 5498 var _MDCRippleFoundation$2 = MDCRippleFoundation.cssClasses, 5499 ROOT = _MDCRippleFoundation$2.ROOT, 5500 UNBOUNDED = _MDCRippleFoundation$2.UNBOUNDED; 5501 requestAnimationFrame(function () { 5502 _this3.adapter_.removeClass(ROOT); 5503 5504 _this3.adapter_.removeClass(UNBOUNDED); 5505 5506 _this3.removeCssVars_(); 5507 }); 5508 } 5509 /** @private */ 5510 5511 }, { 5512 key: "registerRootHandlers_", 5513 value: function registerRootHandlers_() { 5514 var _this4 = this; 5515 5516 ACTIVATION_EVENT_TYPES.forEach(function (type) { 5517 _this4.adapter_.registerInteractionHandler(type, _this4.activateHandler_); 5518 }); 5519 this.adapter_.registerInteractionHandler('focus', this.focusHandler_); 5520 this.adapter_.registerInteractionHandler('blur', this.blurHandler_); 5521 5522 if (this.adapter_.isUnbounded()) { 5523 this.adapter_.registerResizeHandler(this.resizeHandler_); 5524 } 5525 } 5526 /** 5527 * @param {!Event} e 5528 * @private 5529 */ 5530 5531 }, { 5532 key: "registerDeactivationHandlers_", 5533 value: function registerDeactivationHandlers_(e) { 5534 var _this5 = this; 5535 5536 if (e.type === 'keydown') { 5537 this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_); 5538 } else { 5539 POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) { 5540 _this5.adapter_.registerDocumentInteractionHandler(type, _this5.deactivateHandler_); 5541 }); 5542 } 5543 } 5544 /** @private */ 5545 5546 }, { 5547 key: "deregisterRootHandlers_", 5548 value: function deregisterRootHandlers_() { 5549 var _this6 = this; 5550 5551 ACTIVATION_EVENT_TYPES.forEach(function (type) { 5552 _this6.adapter_.deregisterInteractionHandler(type, _this6.activateHandler_); 5553 }); 5554 this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); 5555 this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); 5556 5557 if (this.adapter_.isUnbounded()) { 5558 this.adapter_.deregisterResizeHandler(this.resizeHandler_); 5559 } 5560 } 5561 /** @private */ 5562 5563 }, { 5564 key: "deregisterDeactivationHandlers_", 5565 value: function deregisterDeactivationHandlers_() { 5566 var _this7 = this; 5567 5568 this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_); 5569 POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) { 5570 _this7.adapter_.deregisterDocumentInteractionHandler(type, _this7.deactivateHandler_); 5571 }); 5572 } 5573 /** @private */ 5574 5575 }, { 5576 key: "removeCssVars_", 5577 value: function removeCssVars_() { 5578 var _this8 = this; 5579 5580 var strings = MDCRippleFoundation.strings; 5581 Object.keys(strings).forEach(function (k) { 5582 if (k.indexOf('VAR_') === 0) { 5583 _this8.adapter_.updateCssVariable(strings[k], null); 5584 } 5585 }); 5586 } 5587 /** 5588 * @param {?Event} e 5589 * @private 5590 */ 5591 5592 }, { 5593 key: "activate_", 5594 value: function activate_(e) { 5595 var _this9 = this; 5596 5597 if (this.adapter_.isSurfaceDisabled()) { 5598 return; 5599 } 5600 5601 var activationState = this.activationState_; 5602 5603 if (activationState.isActivated) { 5604 return; 5605 } // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction 5606 5607 5608 var previousActivationEvent = this.previousActivationEvent_; 5609 var isSameInteraction = previousActivationEvent && e && previousActivationEvent.type !== e.type; 5610 5611 if (isSameInteraction) { 5612 return; 5613 } 5614 5615 activationState.isActivated = true; 5616 activationState.isProgrammatic = e === null; 5617 activationState.activationEvent = e; 5618 activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'pointerdown'; 5619 var hasActivatedChild = e && activatedTargets.length > 0 && activatedTargets.some(function (target) { 5620 return _this9.adapter_.containsEventTarget(target); 5621 }); 5622 5623 if (hasActivatedChild) { 5624 // Immediately reset activation state, while preserving logic that prevents touch follow-on events 5625 this.resetActivationState_(); 5626 return; 5627 } 5628 5629 if (e) { 5630 activatedTargets.push( 5631 /** @type {!EventTarget} */ 5632 e.target); 5633 this.registerDeactivationHandlers_(e); 5634 } 5635 5636 activationState.wasElementMadeActive = this.checkElementMadeActive_(e); 5637 5638 if (activationState.wasElementMadeActive) { 5639 this.animateActivation_(); 5640 } 5641 5642 requestAnimationFrame(function () { 5643 // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples 5644 activatedTargets = []; 5645 5646 if (!activationState.wasElementMadeActive && (e.key === ' ' || e.keyCode === 32)) { 5647 // If space was pressed, try again within an rAF call to detect :active, because different UAs report 5648 // active states inconsistently when they're called within event handling code: 5649 // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971 5650 // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741 5651 // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS 5652 // variable is set within a rAF callback for a submit button interaction (#2241). 5653 activationState.wasElementMadeActive = _this9.checkElementMadeActive_(e); 5654 5655 if (activationState.wasElementMadeActive) { 5656 _this9.animateActivation_(); 5657 } 5658 } 5659 5660 if (!activationState.wasElementMadeActive) { 5661 // Reset activation state immediately if element was not made active. 5662 _this9.activationState_ = _this9.defaultActivationState_(); 5663 } 5664 }); 5665 } 5666 /** 5667 * @param {?Event} e 5668 * @private 5669 */ 5670 5671 }, { 5672 key: "checkElementMadeActive_", 5673 value: function checkElementMadeActive_(e) { 5674 return e && e.type === 'keydown' ? this.adapter_.isSurfaceActive() : true; 5675 } 5676 /** 5677 * @param {?Event=} event Optional event containing position information. 5678 */ 5679 5680 }, { 5681 key: "activate", 5682 value: function activate() { 5683 var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; 5684 this.activate_(event); 5685 } 5686 /** @private */ 5687 5688 }, { 5689 key: "animateActivation_", 5690 value: function animateActivation_() { 5691 var _this10 = this; 5692 5693 var _MDCRippleFoundation$3 = MDCRippleFoundation.strings, 5694 VAR_FG_TRANSLATE_START = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_START, 5695 VAR_FG_TRANSLATE_END = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_END; 5696 var _MDCRippleFoundation$4 = MDCRippleFoundation.cssClasses, 5697 FG_DEACTIVATION = _MDCRippleFoundation$4.FG_DEACTIVATION, 5698 FG_ACTIVATION = _MDCRippleFoundation$4.FG_ACTIVATION; 5699 var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS; 5700 this.layoutInternal_(); 5701 var translateStart = ''; 5702 var translateEnd = ''; 5703 5704 if (!this.adapter_.isUnbounded()) { 5705 var _this$getFgTranslatio = this.getFgTranslationCoordinates_(), 5706 startPoint = _this$getFgTranslatio.startPoint, 5707 endPoint = _this$getFgTranslatio.endPoint; 5708 5709 translateStart = "".concat(startPoint.x, "px, ").concat(startPoint.y, "px"); 5710 translateEnd = "".concat(endPoint.x, "px, ").concat(endPoint.y, "px"); 5711 } 5712 5713 this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart); 5714 this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd); // Cancel any ongoing activation/deactivation animations 5715 5716 clearTimeout(this.activationTimer_); 5717 clearTimeout(this.fgDeactivationRemovalTimer_); 5718 this.rmBoundedActivationClasses_(); 5719 this.adapter_.removeClass(FG_DEACTIVATION); // Force layout in order to re-trigger the animation. 5720 5721 this.adapter_.computeBoundingRect(); 5722 this.adapter_.addClass(FG_ACTIVATION); 5723 this.activationTimer_ = setTimeout(function () { 5724 return _this10.activationTimerCallback_(); 5725 }, DEACTIVATION_TIMEOUT_MS); 5726 } 5727 /** 5728 * @private 5729 * @return {{startPoint: PointType, endPoint: PointType}} 5730 */ 5731 5732 }, { 5733 key: "getFgTranslationCoordinates_", 5734 value: function getFgTranslationCoordinates_() { 5735 var _this$activationState = this.activationState_, 5736 activationEvent = _this$activationState.activationEvent, 5737 wasActivatedByPointer = _this$activationState.wasActivatedByPointer; 5738 var startPoint; 5739 5740 if (wasActivatedByPointer) { 5741 startPoint = Object(_util__WEBPACK_IMPORTED_MODULE_3__["getNormalizedEventCoords"])( 5742 /** @type {!Event} */ 5743 activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect()); 5744 } else { 5745 startPoint = { 5746 x: this.frame_.width / 2, 5747 y: this.frame_.height / 2 5748 }; 5749 } // Center the element around the start point. 5750 5751 5752 startPoint = { 5753 x: startPoint.x - this.initialSize_ / 2, 5754 y: startPoint.y - this.initialSize_ / 2 5755 }; 5756 var endPoint = { 5757 x: this.frame_.width / 2 - this.initialSize_ / 2, 5758 y: this.frame_.height / 2 - this.initialSize_ / 2 5759 }; 5760 return { 5761 startPoint: startPoint, 5762 endPoint: endPoint 5763 }; 5764 } 5765 /** @private */ 5766 5767 }, { 5768 key: "runDeactivationUXLogicIfReady_", 5769 value: function runDeactivationUXLogicIfReady_() { 5770 var _this11 = this; 5771 5772 // This method is called both when a pointing device is released, and when the activation animation ends. 5773 // The deactivation animation should only run after both of those occur. 5774 var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION; 5775 var _this$activationState2 = this.activationState_, 5776 hasDeactivationUXRun = _this$activationState2.hasDeactivationUXRun, 5777 isActivated = _this$activationState2.isActivated; 5778 var activationHasEnded = hasDeactivationUXRun || !isActivated; 5779 5780 if (activationHasEnded && this.activationAnimationHasEnded_) { 5781 this.rmBoundedActivationClasses_(); 5782 this.adapter_.addClass(FG_DEACTIVATION); 5783 this.fgDeactivationRemovalTimer_ = setTimeout(function () { 5784 _this11.adapter_.removeClass(FG_DEACTIVATION); 5785 }, _constants__WEBPACK_IMPORTED_MODULE_2__["numbers"].FG_DEACTIVATION_MS); 5786 } 5787 } 5788 /** @private */ 5789 5790 }, { 5791 key: "rmBoundedActivationClasses_", 5792 value: function rmBoundedActivationClasses_() { 5793 var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; 5794 this.adapter_.removeClass(FG_ACTIVATION); 5795 this.activationAnimationHasEnded_ = false; 5796 this.adapter_.computeBoundingRect(); 5797 } 5798 }, { 5799 key: "resetActivationState_", 5800 value: function resetActivationState_() { 5801 var _this12 = this; 5802 5803 this.previousActivationEvent_ = this.activationState_.activationEvent; 5804 this.activationState_ = this.defaultActivationState_(); // Touch devices may fire additional events for the same interaction within a short time. 5805 // Store the previous event until it's safe to assume that subsequent events are for new interactions. 5806 5807 setTimeout(function () { 5808 return _this12.previousActivationEvent_ = null; 5809 }, MDCRippleFoundation.numbers.TAP_DELAY_MS); 5810 } 5811 /** 5812 * @param {?Event} e 5813 * @private 5814 */ 5815 5816 }, { 5817 key: "deactivate_", 5818 value: function deactivate_(e) { 5819 var _this13 = this; 5820 5821 var activationState = this.activationState_; // This can happen in scenarios such as when you have a keyup event that blurs the element. 5822 5823 if (!activationState.isActivated) { 5824 return; 5825 } 5826 5827 var state = 5828 /** @type {!ActivationStateType} */ 5829 Object.assign({}, activationState); 5830 5831 if (activationState.isProgrammatic) { 5832 var evtObject = null; 5833 requestAnimationFrame(function () { 5834 return _this13.animateDeactivation_(evtObject, state); 5835 }); 5836 this.resetActivationState_(); 5837 } else { 5838 this.deregisterDeactivationHandlers_(); 5839 requestAnimationFrame(function () { 5840 _this13.activationState_.hasDeactivationUXRun = true; 5841 5842 _this13.animateDeactivation_(e, state); 5843 5844 _this13.resetActivationState_(); 5845 }); 5846 } 5847 } 5848 /** 5849 * @param {?Event=} event Optional event containing position information. 5850 */ 5851 5852 }, { 5853 key: "deactivate", 5854 value: function deactivate() { 5855 var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; 5856 this.deactivate_(event); 5857 } 5858 /** 5859 * @param {Event} e 5860 * @param {!ActivationStateType} options 5861 * @private 5862 */ 5863 5864 }, { 5865 key: "animateDeactivation_", 5866 value: function animateDeactivation_(e, _ref) { 5867 var wasActivatedByPointer = _ref.wasActivatedByPointer, 5868 wasElementMadeActive = _ref.wasElementMadeActive; 5869 5870 if (wasActivatedByPointer || wasElementMadeActive) { 5871 this.runDeactivationUXLogicIfReady_(); 5872 } 5873 } 5874 }, { 5875 key: "layout", 5876 value: function layout() { 5877 var _this14 = this; 5878 5879 if (this.layoutFrame_) { 5880 cancelAnimationFrame(this.layoutFrame_); 5881 } 5882 5883 this.layoutFrame_ = requestAnimationFrame(function () { 5884 _this14.layoutInternal_(); 5885 5886 _this14.layoutFrame_ = 0; 5887 }); 5888 } 5889 /** @private */ 5890 5891 }, { 5892 key: "layoutInternal_", 5893 value: function layoutInternal_() { 5894 var _this15 = this; 5895 5896 this.frame_ = this.adapter_.computeBoundingRect(); 5897 var maxDim = Math.max(this.frame_.height, this.frame_.width); // Surface diameter is treated differently for unbounded vs. bounded ripples. 5898 // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately 5899 // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically 5900 // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter 5901 // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via 5902 // `overflow: hidden`. 5903 5904 var getBoundedRadius = function getBoundedRadius() { 5905 var hypotenuse = Math.sqrt(Math.pow(_this15.frame_.width, 2) + Math.pow(_this15.frame_.height, 2)); 5906 return hypotenuse + MDCRippleFoundation.numbers.PADDING; 5907 }; 5908 5909 this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius(); // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform 5910 5911 this.initialSize_ = maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE; 5912 this.fgScale_ = this.maxRadius_ / this.initialSize_; 5913 this.updateLayoutCssVars_(); 5914 } 5915 /** @private */ 5916 5917 }, { 5918 key: "updateLayoutCssVars_", 5919 value: function updateLayoutCssVars_() { 5920 var _MDCRippleFoundation$5 = MDCRippleFoundation.strings, 5921 VAR_FG_SIZE = _MDCRippleFoundation$5.VAR_FG_SIZE, 5922 VAR_LEFT = _MDCRippleFoundation$5.VAR_LEFT, 5923 VAR_TOP = _MDCRippleFoundation$5.VAR_TOP, 5924 VAR_FG_SCALE = _MDCRippleFoundation$5.VAR_FG_SCALE; 5925 this.adapter_.updateCssVariable(VAR_FG_SIZE, "".concat(this.initialSize_, "px")); 5926 this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_); 5927 5928 if (this.adapter_.isUnbounded()) { 5929 this.unboundedCoords_ = { 5930 left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2), 5931 top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2) 5932 }; 5933 this.adapter_.updateCssVariable(VAR_LEFT, "".concat(this.unboundedCoords_.left, "px")); 5934 this.adapter_.updateCssVariable(VAR_TOP, "".concat(this.unboundedCoords_.top, "px")); 5935 } 5936 } 5937 /** @param {boolean} unbounded */ 5938 5939 }, { 5940 key: "setUnbounded", 5941 value: function setUnbounded(unbounded) { 5942 var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED; 5943 5944 if (unbounded) { 5945 this.adapter_.addClass(UNBOUNDED); 5946 } else { 5947 this.adapter_.removeClass(UNBOUNDED); 5948 } 5949 } 5950 }]); 5951 5952 return MDCRippleFoundation; 5953 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 5954 5955 /* harmony default export */ __webpack_exports__["default"] = (MDCRippleFoundation); 5956 5957 /***/ }), 5958 5959 /***/ "./node_modules/@material/ripple/index.js": 5960 /*!************************************************!*\ 5961 !*** ./node_modules/@material/ripple/index.js ***! 5962 \************************************************/ 5963 /*! exports provided: MDCRipple, MDCRippleFoundation, RippleCapableSurface, util */ 5964 /***/ (function(module, __webpack_exports__, __webpack_require__) { 5965 5966 "use strict"; 5967 __webpack_require__.r(__webpack_exports__); 5968 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRipple", function() { return MDCRipple; }); 5969 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RippleCapableSurface", function() { return RippleCapableSurface; }); 5970 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 5971 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/ripple/adapter.js"); 5972 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/ripple/foundation.js"); 5973 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCRippleFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 5974 5975 /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./node_modules/@material/ripple/util.js"); 5976 /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return _util__WEBPACK_IMPORTED_MODULE_3__; }); 5977 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5978 5979 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 5980 5981 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 5982 5983 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 5984 5985 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 5986 5987 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 5988 5989 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 5990 5991 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 5992 5993 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 5994 5995 /** 5996 * @license 5997 * Copyright 2016 Google Inc. All Rights Reserved. 5998 * 5999 * Licensed under the Apache License, Version 2.0 (the "License"); 6000 * you may not use this file except in compliance with the License. 6001 * You may obtain a copy of the License at 6002 * 6003 * http://www.apache.org/licenses/LICENSE-2.0 6004 * 6005 * Unless required by applicable law or agreed to in writing, software 6006 * distributed under the License is distributed on an "AS IS" BASIS, 6007 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6008 * See the License for the specific language governing permissions and 6009 * limitations under the License. 6010 */ 6011 6012 6013 6014 6015 /** 6016 * @extends MDCComponent<!MDCRippleFoundation> 6017 */ 6018 6019 var MDCRipple = 6020 /*#__PURE__*/ 6021 function (_MDCComponent) { 6022 _inherits(MDCRipple, _MDCComponent); 6023 6024 /** @param {...?} args */ 6025 function MDCRipple() { 6026 var _getPrototypeOf2; 6027 6028 var _this; 6029 6030 _classCallCheck(this, MDCRipple); 6031 6032 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 6033 args[_key] = arguments[_key]; 6034 } 6035 6036 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MDCRipple)).call.apply(_getPrototypeOf2, [this].concat(args))); 6037 /** @type {boolean} */ 6038 6039 _this.disabled = false; 6040 /** @private {boolean} */ 6041 6042 _this.unbounded_; 6043 return _this; 6044 } 6045 /** 6046 * @param {!Element} root 6047 * @param {{isUnbounded: (boolean|undefined)}=} options 6048 * @return {!MDCRipple} 6049 */ 6050 6051 6052 _createClass(MDCRipple, [{ 6053 key: "setUnbounded_", 6054 6055 /** 6056 * Closure Compiler throws an access control error when directly accessing a 6057 * protected or private property inside a getter/setter, like unbounded above. 6058 * By accessing the protected property inside a method, we solve that problem. 6059 * That's why this function exists. 6060 * @private 6061 */ 6062 value: function setUnbounded_() { 6063 this.foundation_.setUnbounded(this.unbounded_); 6064 } 6065 }, { 6066 key: "activate", 6067 value: function activate() { 6068 this.foundation_.activate(); 6069 } 6070 }, { 6071 key: "deactivate", 6072 value: function deactivate() { 6073 this.foundation_.deactivate(); 6074 } 6075 }, { 6076 key: "layout", 6077 value: function layout() { 6078 this.foundation_.layout(); 6079 } 6080 /** @return {!MDCRippleFoundation} */ 6081 6082 }, { 6083 key: "getDefaultFoundation", 6084 value: function getDefaultFoundation() { 6085 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"](MDCRipple.createAdapter(this)); 6086 } 6087 }, { 6088 key: "initialSyncWithDOM", 6089 value: function initialSyncWithDOM() { 6090 this.unbounded = 'mdcRippleIsUnbounded' in this.root_.dataset; 6091 } 6092 }, { 6093 key: "unbounded", 6094 6095 /** @return {boolean} */ 6096 get: function get() { 6097 return this.unbounded_; 6098 } 6099 /** @param {boolean} unbounded */ 6100 , 6101 set: function set(unbounded) { 6102 this.unbounded_ = Boolean(unbounded); 6103 this.setUnbounded_(); 6104 } 6105 }], [{ 6106 key: "attachTo", 6107 value: function attachTo(root) { 6108 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 6109 _ref$isUnbounded = _ref.isUnbounded, 6110 isUnbounded = _ref$isUnbounded === void 0 ? undefined : _ref$isUnbounded; 6111 6112 var ripple = new MDCRipple(root); // Only override unbounded behavior if option is explicitly specified 6113 6114 if (isUnbounded !== undefined) { 6115 ripple.unbounded = 6116 /** @type {boolean} */ 6117 isUnbounded; 6118 } 6119 6120 return ripple; 6121 } 6122 /** 6123 * @param {!RippleCapableSurface} instance 6124 * @return {!MDCRippleAdapter} 6125 */ 6126 6127 }, { 6128 key: "createAdapter", 6129 value: function createAdapter(instance) { 6130 var MATCHES = _util__WEBPACK_IMPORTED_MODULE_3__["getMatchesProperty"](HTMLElement.prototype); 6131 return { 6132 browserSupportsCssVars: function browserSupportsCssVars() { 6133 return _util__WEBPACK_IMPORTED_MODULE_3__["supportsCssVariables"](window); 6134 }, 6135 isUnbounded: function isUnbounded() { 6136 return instance.unbounded; 6137 }, 6138 isSurfaceActive: function isSurfaceActive() { 6139 return instance.root_[MATCHES](':active'); 6140 }, 6141 isSurfaceDisabled: function isSurfaceDisabled() { 6142 return instance.disabled; 6143 }, 6144 addClass: function addClass(className) { 6145 return instance.root_.classList.add(className); 6146 }, 6147 removeClass: function removeClass(className) { 6148 return instance.root_.classList.remove(className); 6149 }, 6150 containsEventTarget: function containsEventTarget(target) { 6151 return instance.root_.contains(target); 6152 }, 6153 registerInteractionHandler: function registerInteractionHandler(evtType, handler) { 6154 return instance.root_.addEventListener(evtType, handler, _util__WEBPACK_IMPORTED_MODULE_3__["applyPassive"]()); 6155 }, 6156 deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { 6157 return instance.root_.removeEventListener(evtType, handler, _util__WEBPACK_IMPORTED_MODULE_3__["applyPassive"]()); 6158 }, 6159 registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) { 6160 return document.documentElement.addEventListener(evtType, handler, _util__WEBPACK_IMPORTED_MODULE_3__["applyPassive"]()); 6161 }, 6162 deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) { 6163 return document.documentElement.removeEventListener(evtType, handler, _util__WEBPACK_IMPORTED_MODULE_3__["applyPassive"]()); 6164 }, 6165 registerResizeHandler: function registerResizeHandler(handler) { 6166 return window.addEventListener('resize', handler); 6167 }, 6168 deregisterResizeHandler: function deregisterResizeHandler(handler) { 6169 return window.removeEventListener('resize', handler); 6170 }, 6171 updateCssVariable: function updateCssVariable(varName, value) { 6172 return instance.root_.style.setProperty(varName, value); 6173 }, 6174 computeBoundingRect: function computeBoundingRect() { 6175 return instance.root_.getBoundingClientRect(); 6176 }, 6177 getWindowPageOffset: function getWindowPageOffset() { 6178 return { 6179 x: window.pageXOffset, 6180 y: window.pageYOffset 6181 }; 6182 } 6183 }; 6184 } 6185 }]); 6186 6187 return MDCRipple; 6188 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 6189 /** 6190 * See Material Design spec for more details on when to use ripples. 6191 * https://material.io/guidelines/motion/choreography.html#choreography-creation 6192 * @record 6193 */ 6194 6195 6196 var RippleCapableSurface = function RippleCapableSurface() { 6197 _classCallCheck(this, RippleCapableSurface); 6198 }; 6199 /** @protected {!Element} */ 6200 6201 6202 RippleCapableSurface.prototype.root_; 6203 /** 6204 * Whether or not the ripple bleeds out of the bounds of the element. 6205 * @type {boolean|undefined} 6206 */ 6207 6208 RippleCapableSurface.prototype.unbounded; 6209 /** 6210 * Whether or not the ripple is attached to a disabled component. 6211 * @type {boolean|undefined} 6212 */ 6213 6214 RippleCapableSurface.prototype.disabled; 6215 6216 6217 /***/ }), 6218 6219 /***/ "./node_modules/@material/ripple/util.js": 6220 /*!***********************************************!*\ 6221 !*** ./node_modules/@material/ripple/util.js ***! 6222 \***********************************************/ 6223 /*! exports provided: supportsCssVariables, applyPassive, getMatchesProperty, getNormalizedEventCoords */ 6224 /***/ (function(module, __webpack_exports__, __webpack_require__) { 6225 6226 "use strict"; 6227 __webpack_require__.r(__webpack_exports__); 6228 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "supportsCssVariables", function() { return supportsCssVariables; }); 6229 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyPassive", function() { return applyPassive; }); 6230 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatchesProperty", function() { return getMatchesProperty; }); 6231 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNormalizedEventCoords", function() { return getNormalizedEventCoords; }); 6232 /** 6233 * @license 6234 * Copyright 2016 Google Inc. All Rights Reserved. 6235 * 6236 * Licensed under the Apache License, Version 2.0 (the "License"); 6237 * you may not use this file except in compliance with the License. 6238 * You may obtain a copy of the License at 6239 * 6240 * http://www.apache.org/licenses/LICENSE-2.0 6241 * 6242 * Unless required by applicable law or agreed to in writing, software 6243 * distributed under the License is distributed on an "AS IS" BASIS, 6244 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6245 * See the License for the specific language governing permissions and 6246 * limitations under the License. 6247 */ 6248 6249 /** 6250 * Stores result from supportsCssVariables to avoid redundant processing to detect CSS custom variable support. 6251 * @private {boolean|undefined} 6252 */ 6253 var supportsCssVariables_; 6254 /** 6255 * Stores result from applyPassive to avoid redundant processing to detect passive event listener support. 6256 * @private {boolean|undefined} 6257 */ 6258 6259 var supportsPassive_; 6260 /** 6261 * @param {!Window} windowObj 6262 * @return {boolean} 6263 */ 6264 6265 function detectEdgePseudoVarBug(windowObj) { 6266 // Detect versions of Edge with buggy var() support 6267 // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/ 6268 var document = windowObj.document; 6269 var node = document.createElement('div'); 6270 node.className = 'mdc-ripple-surface--test-edge-var-bug'; 6271 document.body.appendChild(node); // The bug exists if ::before style ends up propagating to the parent element. 6272 // Additionally, getComputedStyle returns null in iframes with display: "none" in Firefox, 6273 // but Firefox is known to support CSS custom properties correctly. 6274 // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397 6275 6276 var computedStyle = windowObj.getComputedStyle(node); 6277 var hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid'; 6278 node.remove(); 6279 return hasPseudoVarBug; 6280 } 6281 /** 6282 * @param {!Window} windowObj 6283 * @param {boolean=} forceRefresh 6284 * @return {boolean|undefined} 6285 */ 6286 6287 6288 function supportsCssVariables(windowObj) { 6289 var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 6290 var supportsCssVariables = supportsCssVariables_; 6291 6292 if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) { 6293 return supportsCssVariables; 6294 } 6295 6296 var supportsFunctionPresent = windowObj.CSS && typeof windowObj.CSS.supports === 'function'; 6297 6298 if (!supportsFunctionPresent) { 6299 return; 6300 } 6301 6302 var explicitlySupportsCssVars = windowObj.CSS.supports('--css-vars', 'yes'); // See: https://bugs.webkit.org/show_bug.cgi?id=154669 6303 // See: README section on Safari 6304 6305 var weAreFeatureDetectingSafari10plus = windowObj.CSS.supports('(--css-vars: yes)') && windowObj.CSS.supports('color', '#00000000'); 6306 6307 if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) { 6308 supportsCssVariables = !detectEdgePseudoVarBug(windowObj); 6309 } else { 6310 supportsCssVariables = false; 6311 } 6312 6313 if (!forceRefresh) { 6314 supportsCssVariables_ = supportsCssVariables; 6315 } 6316 6317 return supportsCssVariables; 6318 } // 6319 6320 /** 6321 * Determine whether the current browser supports passive event listeners, and if so, use them. 6322 * @param {!Window=} globalObj 6323 * @param {boolean=} forceRefresh 6324 * @return {boolean|{passive: boolean}} 6325 */ 6326 6327 6328 function applyPassive() { 6329 var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; 6330 var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 6331 6332 if (supportsPassive_ === undefined || forceRefresh) { 6333 var isSupported = false; 6334 6335 try { 6336 globalObj.document.addEventListener('test', null, { 6337 get passive() { 6338 isSupported = true; 6339 } 6340 6341 }); 6342 } catch (e) {} 6343 6344 supportsPassive_ = isSupported; 6345 } 6346 6347 return supportsPassive_ ? { 6348 passive: true 6349 } : false; 6350 } 6351 /** 6352 * @param {!Object} HTMLElementPrototype 6353 * @return {!Array<string>} 6354 */ 6355 6356 6357 function getMatchesProperty(HTMLElementPrototype) { 6358 return ['webkitMatchesSelector', 'msMatchesSelector', 'matches'].filter(function (p) { 6359 return p in HTMLElementPrototype; 6360 }).pop(); 6361 } 6362 /** 6363 * @param {!Event} ev 6364 * @param {{x: number, y: number}} pageOffset 6365 * @param {!ClientRect} clientRect 6366 * @return {{x: number, y: number}} 6367 */ 6368 6369 6370 function getNormalizedEventCoords(ev, pageOffset, clientRect) { 6371 var x = pageOffset.x, 6372 y = pageOffset.y; 6373 var documentX = x + clientRect.left; 6374 var documentY = y + clientRect.top; 6375 var normalizedX; 6376 var normalizedY; // Determine touch point relative to the ripple container. 6377 6378 if (ev.type === 'touchstart') { 6379 normalizedX = ev.changedTouches[0].pageX - documentX; 6380 normalizedY = ev.changedTouches[0].pageY - documentY; 6381 } else { 6382 normalizedX = ev.pageX - documentX; 6383 normalizedY = ev.pageY - documentY; 6384 } 6385 6386 return { 6387 x: normalizedX, 6388 y: normalizedY 6389 }; 6390 } 6391 6392 6393 6394 /***/ }), 6395 6396 /***/ "./node_modules/@material/selection-control/index.js": 6397 /*!***********************************************************!*\ 6398 !*** ./node_modules/@material/selection-control/index.js ***! 6399 \***********************************************************/ 6400 /*! exports provided: MDCSelectionControlState, MDCSelectionControl */ 6401 /***/ (function(module, __webpack_exports__, __webpack_require__) { 6402 6403 "use strict"; 6404 __webpack_require__.r(__webpack_exports__); 6405 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControlState", function() { return MDCSelectionControlState; }); 6406 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControl", function() { return MDCSelectionControl; }); 6407 /* harmony import */ var _material_ripple_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/ripple/index */ "./node_modules/@material/ripple/index.js"); 6408 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 6409 6410 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 6411 6412 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 6413 6414 /** 6415 * @license 6416 * Copyright 2017 Google Inc. All Rights Reserved. 6417 * 6418 * Licensed under the Apache License, Version 2.0 (the "License"); 6419 * you may not use this file except in compliance with the License. 6420 * You may obtain a copy of the License at 6421 * 6422 * http://www.apache.org/licenses/LICENSE-2.0 6423 * 6424 * Unless required by applicable law or agreed to in writing, software 6425 * distributed under the License is distributed on an "AS IS" BASIS, 6426 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6427 * See the License for the specific language governing permissions and 6428 * limitations under the License. 6429 */ 6430 6431 /* eslint-disable no-unused-vars */ 6432 6433 /* eslint-enable no-unused-vars */ 6434 6435 /** 6436 * @typedef {{ 6437 * checked: boolean, 6438 * indeterminate: boolean, 6439 * disabled: boolean, 6440 * value: ?string 6441 * }} 6442 */ 6443 6444 var MDCSelectionControlState; 6445 /** 6446 * @record 6447 */ 6448 6449 var MDCSelectionControl = 6450 /*#__PURE__*/ 6451 function () { 6452 function MDCSelectionControl() { 6453 _classCallCheck(this, MDCSelectionControl); 6454 } 6455 6456 _createClass(MDCSelectionControl, [{ 6457 key: "ripple", 6458 6459 /** @return {?MDCRipple} */ 6460 get: function get() {} 6461 }]); 6462 6463 return MDCSelectionControl; 6464 }(); 6465 6466 6467 6468 /***/ }), 6469 6470 /***/ "./node_modules/@material/textfield/adapter.js": 6471 /*!*****************************************************!*\ 6472 !*** ./node_modules/@material/textfield/adapter.js ***! 6473 \*****************************************************/ 6474 /*! exports provided: MDCTextFieldAdapter, NativeInputType, FoundationMapType */ 6475 /***/ (function(module, __webpack_exports__, __webpack_require__) { 6476 6477 "use strict"; 6478 __webpack_require__.r(__webpack_exports__); 6479 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldAdapter", function() { return MDCTextFieldAdapter; }); 6480 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NativeInputType", function() { return NativeInputType; }); 6481 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FoundationMapType", function() { return FoundationMapType; }); 6482 /* harmony import */ var _helper_text_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper-text/foundation */ "./node_modules/@material/textfield/helper-text/foundation.js"); 6483 /* harmony import */ var _icon_foundation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icon/foundation */ "./node_modules/@material/textfield/icon/foundation.js"); 6484 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 6485 6486 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 6487 6488 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 6489 6490 /** 6491 * @license 6492 * Copyright 2017 Google Inc. All Rights Reserved. 6493 * 6494 * Licensed under the Apache License, Version 2.0 (the "License"); 6495 * you may not use this file except in compliance with the License. 6496 * You may obtain a copy of the License at 6497 * 6498 * http://www.apache.org/licenses/LICENSE-2.0 6499 * 6500 * Unless required by applicable law or agreed to in writing, software 6501 * distributed under the License is distributed on an "AS IS" BASIS, 6502 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6503 * See the License for the specific language governing permissions and 6504 * limitations under the License. 6505 */ 6506 6507 /* eslint-disable no-unused-vars */ 6508 6509 6510 /* eslint no-unused-vars: [2, {"args": "none"}] */ 6511 6512 /** 6513 * @typedef {{ 6514 * value: string, 6515 * disabled: boolean, 6516 * badInput: boolean, 6517 * validity: { 6518 * badInput: boolean, 6519 * valid: boolean, 6520 * }, 6521 * }} 6522 */ 6523 6524 var NativeInputType; 6525 /** 6526 * @typedef {{ 6527 * helperText: (!MDCTextFieldHelperTextFoundation|undefined), 6528 * icon: (!MDCTextFieldIconFoundation|undefined), 6529 * }} 6530 */ 6531 6532 var FoundationMapType; 6533 /** 6534 * Adapter for MDC Text Field. 6535 * 6536 * Defines the shape of the adapter expected by the foundation. Implement this 6537 * adapter to integrate the Text Field into your framework. See 6538 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 6539 * for more information. 6540 * 6541 * @record 6542 */ 6543 6544 var MDCTextFieldAdapter = 6545 /*#__PURE__*/ 6546 function () { 6547 function MDCTextFieldAdapter() { 6548 _classCallCheck(this, MDCTextFieldAdapter); 6549 } 6550 6551 _createClass(MDCTextFieldAdapter, [{ 6552 key: "addClass", 6553 6554 /** 6555 * Adds a class to the root Element. 6556 * @param {string} className 6557 */ 6558 value: function addClass(className) {} 6559 /** 6560 * Removes a class from the root Element. 6561 * @param {string} className 6562 */ 6563 6564 }, { 6565 key: "removeClass", 6566 value: function removeClass(className) {} 6567 /** 6568 * Returns true if the root element contains the given class name. 6569 * @param {string} className 6570 * @return {boolean} 6571 */ 6572 6573 }, { 6574 key: "hasClass", 6575 value: function hasClass(className) {} 6576 /** 6577 * Registers an event handler on the root element for a given event. 6578 * @param {string} type 6579 * @param {function(!Event): undefined} handler 6580 */ 6581 6582 }, { 6583 key: "registerTextFieldInteractionHandler", 6584 value: function registerTextFieldInteractionHandler(type, handler) {} 6585 /** 6586 * Deregisters an event handler on the root element for a given event. 6587 * @param {string} type 6588 * @param {function(!Event): undefined} handler 6589 */ 6590 6591 }, { 6592 key: "deregisterTextFieldInteractionHandler", 6593 value: function deregisterTextFieldInteractionHandler(type, handler) {} 6594 /** 6595 * Registers an event listener on the native input element for a given event. 6596 * @param {string} evtType 6597 * @param {function(!Event): undefined} handler 6598 */ 6599 6600 }, { 6601 key: "registerInputInteractionHandler", 6602 value: function registerInputInteractionHandler(evtType, handler) {} 6603 /** 6604 * Deregisters an event listener on the native input element for a given event. 6605 * @param {string} evtType 6606 * @param {function(!Event): undefined} handler 6607 */ 6608 6609 }, { 6610 key: "deregisterInputInteractionHandler", 6611 value: function deregisterInputInteractionHandler(evtType, handler) {} 6612 /** 6613 * Registers a validation attribute change listener on the input element. 6614 * Handler accepts list of attribute names. 6615 * @param {function(!Array<string>): undefined} handler 6616 * @return {!MutationObserver} 6617 */ 6618 6619 }, { 6620 key: "registerValidationAttributeChangeHandler", 6621 value: function registerValidationAttributeChangeHandler(handler) {} 6622 /** 6623 * Disconnects a validation attribute observer on the input element. 6624 * @param {!MutationObserver} observer 6625 */ 6626 6627 }, { 6628 key: "deregisterValidationAttributeChangeHandler", 6629 value: function deregisterValidationAttributeChangeHandler(observer) {} 6630 /** 6631 * Returns an object representing the native text input element, with a 6632 * similar API shape. The object returned should include the value, disabled 6633 * and badInput properties, as well as the checkValidity() function. We never 6634 * alter the value within our code, however we do update the disabled 6635 * property, so if you choose to duck-type the return value for this method 6636 * in your implementation it's important to keep this in mind. Also note that 6637 * this method can return null, which the foundation will handle gracefully. 6638 * @return {?Element|?NativeInputType} 6639 */ 6640 6641 }, { 6642 key: "getNativeInput", 6643 value: function getNativeInput() {} 6644 /** 6645 * Returns true if the textfield is focused. 6646 * We achieve this via `document.activeElement === this.root_`. 6647 * @return {boolean} 6648 */ 6649 6650 }, { 6651 key: "isFocused", 6652 value: function isFocused() {} 6653 /** 6654 * Returns true if the direction of the root element is set to RTL. 6655 * @return {boolean} 6656 */ 6657 6658 }, { 6659 key: "isRtl", 6660 value: function isRtl() {} 6661 /** 6662 * Activates the line ripple. 6663 */ 6664 6665 }, { 6666 key: "activateLineRipple", 6667 value: function activateLineRipple() {} 6668 /** 6669 * Deactivates the line ripple. 6670 */ 6671 6672 }, { 6673 key: "deactivateLineRipple", 6674 value: function deactivateLineRipple() {} 6675 /** 6676 * Sets the transform origin of the line ripple. 6677 * @param {number} normalizedX 6678 */ 6679 6680 }, { 6681 key: "setLineRippleTransformOrigin", 6682 value: function setLineRippleTransformOrigin(normalizedX) {} 6683 /** 6684 * Only implement if label exists. 6685 * Shakes label if shouldShake is true. 6686 * @param {boolean} shouldShake 6687 */ 6688 6689 }, { 6690 key: "shakeLabel", 6691 value: function shakeLabel(shouldShake) {} 6692 /** 6693 * Only implement if label exists. 6694 * Floats the label above the input element if shouldFloat is true. 6695 * @param {boolean} shouldFloat 6696 */ 6697 6698 }, { 6699 key: "floatLabel", 6700 value: function floatLabel(shouldFloat) {} 6701 /** 6702 * Returns true if label element exists, false if it doesn't. 6703 * @return {boolean} 6704 */ 6705 6706 }, { 6707 key: "hasLabel", 6708 value: function hasLabel() {} 6709 /** 6710 * Only implement if label exists. 6711 * Returns width of label in pixels. 6712 * @return {number} 6713 */ 6714 6715 }, { 6716 key: "getLabelWidth", 6717 value: function getLabelWidth() {} 6718 /** 6719 * Returns true if outline element exists, false if it doesn't. 6720 * @return {boolean} 6721 */ 6722 6723 }, { 6724 key: "hasOutline", 6725 value: function hasOutline() {} 6726 /** 6727 * Only implement if outline element exists. 6728 * Updates SVG Path and outline element based on the 6729 * label element width and RTL context. 6730 * @param {number} labelWidth 6731 * @param {boolean=} isRtl 6732 */ 6733 6734 }, { 6735 key: "notchOutline", 6736 value: function notchOutline(labelWidth, isRtl) {} 6737 /** 6738 * Only implement if outline element exists. 6739 * Closes notch in outline element. 6740 */ 6741 6742 }, { 6743 key: "closeOutline", 6744 value: function closeOutline() {} 6745 }]); 6746 6747 return MDCTextFieldAdapter; 6748 }(); 6749 6750 6751 6752 /***/ }), 6753 6754 /***/ "./node_modules/@material/textfield/constants.js": 6755 /*!*******************************************************!*\ 6756 !*** ./node_modules/@material/textfield/constants.js ***! 6757 \*******************************************************/ 6758 /*! exports provided: cssClasses, strings, numbers, VALIDATION_ATTR_WHITELIST */ 6759 /***/ (function(module, __webpack_exports__, __webpack_require__) { 6760 6761 "use strict"; 6762 __webpack_require__.r(__webpack_exports__); 6763 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 6764 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 6765 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numbers", function() { return numbers; }); 6766 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VALIDATION_ATTR_WHITELIST", function() { return VALIDATION_ATTR_WHITELIST; }); 6767 /** 6768 * @license 6769 * Copyright 2016 Google Inc. All Rights Reserved. 6770 * 6771 * Licensed under the Apache License, Version 2.0 (the "License"); 6772 * you may not use this file except in compliance with the License. 6773 * You may obtain a copy of the License at 6774 * 6775 * http://www.apache.org/licenses/LICENSE-2.0 6776 * 6777 * Unless required by applicable law or agreed to in writing, software 6778 * distributed under the License is distributed on an "AS IS" BASIS, 6779 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6780 * See the License for the specific language governing permissions and 6781 * limitations under the License. 6782 */ 6783 6784 /** @enum {string} */ 6785 var strings = { 6786 ARIA_CONTROLS: 'aria-controls', 6787 INPUT_SELECTOR: '.mdc-text-field__input', 6788 LABEL_SELECTOR: '.mdc-floating-label', 6789 ICON_SELECTOR: '.mdc-text-field__icon', 6790 OUTLINE_SELECTOR: '.mdc-notched-outline', 6791 LINE_RIPPLE_SELECTOR: '.mdc-line-ripple' 6792 }; 6793 /** @enum {string} */ 6794 6795 var cssClasses = { 6796 ROOT: 'mdc-text-field', 6797 UPGRADED: 'mdc-text-field--upgraded', 6798 DISABLED: 'mdc-text-field--disabled', 6799 DENSE: 'mdc-text-field--dense', 6800 FOCUSED: 'mdc-text-field--focused', 6801 INVALID: 'mdc-text-field--invalid', 6802 BOX: 'mdc-text-field--box', 6803 OUTLINED: 'mdc-text-field--outlined' 6804 }; 6805 /** @enum {number} */ 6806 6807 var numbers = { 6808 LABEL_SCALE: 0.75, 6809 DENSE_LABEL_SCALE: 0.923 6810 }; // whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation 6811 // under section: `Validation-related attributes` 6812 6813 var VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength']; 6814 6815 6816 /***/ }), 6817 6818 /***/ "./node_modules/@material/textfield/foundation.js": 6819 /*!********************************************************!*\ 6820 !*** ./node_modules/@material/textfield/foundation.js ***! 6821 \********************************************************/ 6822 /*! exports provided: default */ 6823 /***/ (function(module, __webpack_exports__, __webpack_require__) { 6824 6825 "use strict"; 6826 __webpack_require__.r(__webpack_exports__); 6827 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 6828 /* harmony import */ var _helper_text_foundation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper-text/foundation */ "./node_modules/@material/textfield/helper-text/foundation.js"); 6829 /* harmony import */ var _icon_foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icon/foundation */ "./node_modules/@material/textfield/icon/foundation.js"); 6830 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/adapter.js"); 6831 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/textfield/constants.js"); 6832 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6833 6834 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 6835 6836 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 6837 6838 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 6839 6840 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 6841 6842 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 6843 6844 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 6845 6846 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 6847 6848 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 6849 6850 /** 6851 * @license 6852 * Copyright 2016 Google Inc. All Rights Reserved. 6853 * 6854 * Licensed under the Apache License, Version 2.0 (the "License"); 6855 * you may not use this file except in compliance with the License. 6856 * You may obtain a copy of the License at 6857 * 6858 * http://www.apache.org/licenses/LICENSE-2.0 6859 * 6860 * Unless required by applicable law or agreed to in writing, software 6861 * distributed under the License is distributed on an "AS IS" BASIS, 6862 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 6863 * See the License for the specific language governing permissions and 6864 * limitations under the License. 6865 */ 6866 6867 /* eslint-disable no-unused-vars */ 6868 6869 6870 6871 /* eslint-enable no-unused-vars */ 6872 6873 6874 6875 /** 6876 * @extends {MDCFoundation<!MDCTextFieldAdapter>} 6877 * @final 6878 */ 6879 6880 var MDCTextFieldFoundation = 6881 /*#__PURE__*/ 6882 function (_MDCFoundation) { 6883 _inherits(MDCTextFieldFoundation, _MDCFoundation); 6884 6885 _createClass(MDCTextFieldFoundation, [{ 6886 key: "shouldShake", 6887 6888 /** @return {boolean} */ 6889 get: function get() { 6890 return !this.isValid() && !this.isFocused_; 6891 } 6892 /** @return {boolean} */ 6893 6894 }, { 6895 key: "shouldFloat", 6896 get: function get() { 6897 return this.isFocused_ || !!this.getValue() || this.isBadInput_(); 6898 } 6899 /** 6900 * {@see MDCTextFieldAdapter} for typing information on parameters and return 6901 * types. 6902 * @return {!MDCTextFieldAdapter} 6903 */ 6904 6905 }], [{ 6906 key: "cssClasses", 6907 6908 /** @return enum {string} */ 6909 get: function get() { 6910 return _constants__WEBPACK_IMPORTED_MODULE_4__["cssClasses"]; 6911 } 6912 /** @return enum {string} */ 6913 6914 }, { 6915 key: "strings", 6916 get: function get() { 6917 return _constants__WEBPACK_IMPORTED_MODULE_4__["strings"]; 6918 } 6919 /** @return enum {string} */ 6920 6921 }, { 6922 key: "numbers", 6923 get: function get() { 6924 return _constants__WEBPACK_IMPORTED_MODULE_4__["numbers"]; 6925 } 6926 }, { 6927 key: "defaultAdapter", 6928 get: function get() { 6929 return ( 6930 /** @type {!MDCTextFieldAdapter} */ 6931 { 6932 addClass: function addClass() {}, 6933 removeClass: function removeClass() {}, 6934 hasClass: function hasClass() {}, 6935 registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() {}, 6936 deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() {}, 6937 registerInputInteractionHandler: function registerInputInteractionHandler() {}, 6938 deregisterInputInteractionHandler: function deregisterInputInteractionHandler() {}, 6939 registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() {}, 6940 deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() {}, 6941 getNativeInput: function getNativeInput() {}, 6942 isFocused: function isFocused() {}, 6943 isRtl: function isRtl() {}, 6944 activateLineRipple: function activateLineRipple() {}, 6945 deactivateLineRipple: function deactivateLineRipple() {}, 6946 setLineRippleTransformOrigin: function setLineRippleTransformOrigin() {}, 6947 shakeLabel: function shakeLabel() {}, 6948 floatLabel: function floatLabel() {}, 6949 hasLabel: function hasLabel() {}, 6950 getLabelWidth: function getLabelWidth() {}, 6951 hasOutline: function hasOutline() {}, 6952 notchOutline: function notchOutline() {}, 6953 closeOutline: function closeOutline() {} 6954 } 6955 ); 6956 } 6957 /** 6958 * @param {!MDCTextFieldAdapter} adapter 6959 * @param {!FoundationMapType=} foundationMap Map from subcomponent names to their subfoundations. 6960 */ 6961 6962 }]); 6963 6964 function MDCTextFieldFoundation(adapter) { 6965 var _this; 6966 6967 var foundationMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6968 /** @type {!FoundationMapType} */ 6969 {}; 6970 6971 _classCallCheck(this, MDCTextFieldFoundation); 6972 6973 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCTextFieldFoundation).call(this, Object.assign(MDCTextFieldFoundation.defaultAdapter, adapter))); 6974 /** @type {!MDCTextFieldHelperTextFoundation|undefined} */ 6975 6976 _this.helperText_ = foundationMap.helperText; 6977 /** @type {!MDCTextFieldIconFoundation|undefined} */ 6978 6979 _this.icon_ = foundationMap.icon; 6980 /** @private {boolean} */ 6981 6982 _this.isFocused_ = false; 6983 /** @private {boolean} */ 6984 6985 _this.receivedUserInput_ = false; 6986 /** @private {boolean} */ 6987 6988 _this.useCustomValidityChecking_ = false; 6989 /** @private {boolean} */ 6990 6991 _this.isValid_ = true; 6992 /** @private {function(): undefined} */ 6993 6994 _this.inputFocusHandler_ = function () { 6995 return _this.activateFocus(); 6996 }; 6997 /** @private {function(): undefined} */ 6998 6999 7000 _this.inputBlurHandler_ = function () { 7001 return _this.deactivateFocus(); 7002 }; 7003 /** @private {function(): undefined} */ 7004 7005 7006 _this.inputInputHandler_ = function () { 7007 return _this.autoCompleteFocus(); 7008 }; 7009 /** @private {function(!Event): undefined} */ 7010 7011 7012 _this.setPointerXOffset_ = function (evt) { 7013 return _this.setTransformOrigin(evt); 7014 }; 7015 /** @private {function(!Event): undefined} */ 7016 7017 7018 _this.textFieldInteractionHandler_ = function () { 7019 return _this.handleTextFieldInteraction(); 7020 }; 7021 /** @private {function(!Array): undefined} */ 7022 7023 7024 _this.validationAttributeChangeHandler_ = function (attributesList) { 7025 return _this.handleValidationAttributeChange(attributesList); 7026 }; 7027 /** @private {!MutationObserver} */ 7028 7029 7030 _this.validationObserver_; 7031 return _this; 7032 } 7033 7034 _createClass(MDCTextFieldFoundation, [{ 7035 key: "init", 7036 value: function init() { 7037 var _this2 = this; 7038 7039 this.adapter_.addClass(MDCTextFieldFoundation.cssClasses.UPGRADED); // Ensure label does not collide with any pre-filled value. 7040 7041 if (this.adapter_.hasLabel() && (this.getValue() || this.isBadInput_())) { 7042 this.adapter_.floatLabel(this.shouldFloat); 7043 this.notchOutline(this.shouldFloat); 7044 } 7045 7046 if (this.adapter_.isFocused()) { 7047 this.inputFocusHandler_(); 7048 } 7049 7050 this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_); 7051 this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_); 7052 this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_); 7053 ['mousedown', 'touchstart'].forEach(function (evtType) { 7054 _this2.adapter_.registerInputInteractionHandler(evtType, _this2.setPointerXOffset_); 7055 }); 7056 ['click', 'keydown'].forEach(function (evtType) { 7057 _this2.adapter_.registerTextFieldInteractionHandler(evtType, _this2.textFieldInteractionHandler_); 7058 }); 7059 this.validationObserver_ = this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_); 7060 } 7061 }, { 7062 key: "destroy", 7063 value: function destroy() { 7064 var _this3 = this; 7065 7066 this.adapter_.removeClass(MDCTextFieldFoundation.cssClasses.UPGRADED); 7067 this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_); 7068 this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_); 7069 this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_); 7070 ['mousedown', 'touchstart'].forEach(function (evtType) { 7071 _this3.adapter_.deregisterInputInteractionHandler(evtType, _this3.setPointerXOffset_); 7072 }); 7073 ['click', 'keydown'].forEach(function (evtType) { 7074 _this3.adapter_.deregisterTextFieldInteractionHandler(evtType, _this3.textFieldInteractionHandler_); 7075 }); 7076 this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_); 7077 } 7078 /** 7079 * Handles user interactions with the Text Field. 7080 */ 7081 7082 }, { 7083 key: "handleTextFieldInteraction", 7084 value: function handleTextFieldInteraction() { 7085 if (this.adapter_.getNativeInput().disabled) { 7086 return; 7087 } 7088 7089 this.receivedUserInput_ = true; 7090 } 7091 /** 7092 * Handles validation attribute changes 7093 * @param {!Array<string>} attributesList 7094 */ 7095 7096 }, { 7097 key: "handleValidationAttributeChange", 7098 value: function handleValidationAttributeChange(attributesList) { 7099 var _this4 = this; 7100 7101 attributesList.some(function (attributeName) { 7102 if (_constants__WEBPACK_IMPORTED_MODULE_4__["VALIDATION_ATTR_WHITELIST"].indexOf(attributeName) > -1) { 7103 _this4.styleValidity_(true); 7104 7105 return true; 7106 } 7107 }); 7108 } 7109 /** 7110 * Opens/closes the notched outline. 7111 * @param {boolean} openNotch 7112 */ 7113 7114 }, { 7115 key: "notchOutline", 7116 value: function notchOutline(openNotch) { 7117 if (!this.adapter_.hasOutline() || !this.adapter_.hasLabel()) { 7118 return; 7119 } 7120 7121 if (openNotch) { 7122 var isDense = this.adapter_.hasClass(_constants__WEBPACK_IMPORTED_MODULE_4__["cssClasses"].DENSE); 7123 var labelScale = isDense ? _constants__WEBPACK_IMPORTED_MODULE_4__["numbers"].DENSE_LABEL_SCALE : _constants__WEBPACK_IMPORTED_MODULE_4__["numbers"].LABEL_SCALE; 7124 var labelWidth = this.adapter_.getLabelWidth() * labelScale; 7125 var isRtl = this.adapter_.isRtl(); 7126 this.adapter_.notchOutline(labelWidth, isRtl); 7127 } else { 7128 this.adapter_.closeOutline(); 7129 } 7130 } 7131 /** 7132 * Activates the text field focus state. 7133 */ 7134 7135 }, { 7136 key: "activateFocus", 7137 value: function activateFocus() { 7138 this.isFocused_ = true; 7139 this.styleFocused_(this.isFocused_); 7140 this.adapter_.activateLineRipple(); 7141 this.notchOutline(this.shouldFloat); 7142 7143 if (this.adapter_.hasLabel()) { 7144 this.adapter_.shakeLabel(this.shouldShake); 7145 this.adapter_.floatLabel(this.shouldFloat); 7146 } 7147 7148 if (this.helperText_) { 7149 this.helperText_.showToScreenReader(); 7150 } 7151 } 7152 /** 7153 * Sets the line ripple's transform origin, so that the line ripple activate 7154 * animation will animate out from the user's click location. 7155 * @param {!Event} evt 7156 */ 7157 7158 }, { 7159 key: "setTransformOrigin", 7160 value: function setTransformOrigin(evt) { 7161 var targetClientRect = evt.target.getBoundingClientRect(); 7162 var evtCoords = { 7163 x: evt.clientX, 7164 y: evt.clientY 7165 }; 7166 var normalizedX = evtCoords.x - targetClientRect.left; 7167 this.adapter_.setLineRippleTransformOrigin(normalizedX); 7168 } 7169 /** 7170 * Activates the Text Field's focus state in cases when the input value 7171 * changes without user input (e.g. programatically). 7172 */ 7173 7174 }, { 7175 key: "autoCompleteFocus", 7176 value: function autoCompleteFocus() { 7177 if (!this.receivedUserInput_) { 7178 this.activateFocus(); 7179 } 7180 } 7181 /** 7182 * Deactivates the Text Field's focus state. 7183 */ 7184 7185 }, { 7186 key: "deactivateFocus", 7187 value: function deactivateFocus() { 7188 this.isFocused_ = false; 7189 this.adapter_.deactivateLineRipple(); 7190 var input = this.getNativeInput_(); 7191 var shouldRemoveLabelFloat = !input.value && !this.isBadInput_(); 7192 var isValid = this.isValid(); 7193 this.styleValidity_(isValid); 7194 this.styleFocused_(this.isFocused_); 7195 7196 if (this.adapter_.hasLabel()) { 7197 this.adapter_.shakeLabel(this.shouldShake); 7198 this.adapter_.floatLabel(this.shouldFloat); 7199 this.notchOutline(this.shouldFloat); 7200 } 7201 7202 if (shouldRemoveLabelFloat) { 7203 this.receivedUserInput_ = false; 7204 } 7205 } 7206 /** 7207 * @return {string} The value of the input Element. 7208 */ 7209 7210 }, { 7211 key: "getValue", 7212 value: function getValue() { 7213 return this.getNativeInput_().value; 7214 } 7215 /** 7216 * @param {string} value The value to set on the input Element. 7217 */ 7218 7219 }, { 7220 key: "setValue", 7221 value: function setValue(value) { 7222 this.getNativeInput_().value = value; 7223 var isValid = this.isValid(); 7224 this.styleValidity_(isValid); 7225 7226 if (this.adapter_.hasLabel()) { 7227 this.adapter_.shakeLabel(this.shouldShake); 7228 this.adapter_.floatLabel(this.shouldFloat); 7229 this.notchOutline(this.shouldFloat); 7230 } 7231 } 7232 /** 7233 * @return {boolean} If a custom validity is set, returns that value. 7234 * Otherwise, returns the result of native validity checks. 7235 */ 7236 7237 }, { 7238 key: "isValid", 7239 value: function isValid() { 7240 return this.useCustomValidityChecking_ ? this.isValid_ : this.isNativeInputValid_(); 7241 } 7242 /** 7243 * @param {boolean} isValid Sets the validity state of the Text Field. 7244 */ 7245 7246 }, { 7247 key: "setValid", 7248 value: function setValid(isValid) { 7249 this.useCustomValidityChecking_ = true; 7250 this.isValid_ = isValid; // Retrieve from the getter to ensure correct logic is applied. 7251 7252 isValid = this.isValid(); 7253 this.styleValidity_(isValid); 7254 7255 if (this.adapter_.hasLabel()) { 7256 this.adapter_.shakeLabel(this.shouldShake); 7257 } 7258 } 7259 /** 7260 * @return {boolean} True if the Text Field is disabled. 7261 */ 7262 7263 }, { 7264 key: "isDisabled", 7265 value: function isDisabled() { 7266 return this.getNativeInput_().disabled; 7267 } 7268 /** 7269 * @param {boolean} disabled Sets the text-field disabled or enabled. 7270 */ 7271 7272 }, { 7273 key: "setDisabled", 7274 value: function setDisabled(disabled) { 7275 this.getNativeInput_().disabled = disabled; 7276 this.styleDisabled_(disabled); 7277 } 7278 /** 7279 * @param {string} content Sets the content of the helper text. 7280 */ 7281 7282 }, { 7283 key: "setHelperTextContent", 7284 value: function setHelperTextContent(content) { 7285 if (this.helperText_) { 7286 this.helperText_.setContent(content); 7287 } 7288 } 7289 /** 7290 * Sets the aria label of the icon. 7291 * @param {string} label 7292 */ 7293 7294 }, { 7295 key: "setIconAriaLabel", 7296 value: function setIconAriaLabel(label) { 7297 if (this.icon_) { 7298 this.icon_.setAriaLabel(label); 7299 } 7300 } 7301 /** 7302 * Sets the text content of the icon. 7303 * @param {string} content 7304 */ 7305 7306 }, { 7307 key: "setIconContent", 7308 value: function setIconContent(content) { 7309 if (this.icon_) { 7310 this.icon_.setContent(content); 7311 } 7312 } 7313 /** 7314 * @return {boolean} True if the Text Field input fails in converting the 7315 * user-supplied value. 7316 * @private 7317 */ 7318 7319 }, { 7320 key: "isBadInput_", 7321 value: function isBadInput_() { 7322 return this.getNativeInput_().validity.badInput; 7323 } 7324 /** 7325 * @return {boolean} The result of native validity checking 7326 * (ValidityState.valid). 7327 */ 7328 7329 }, { 7330 key: "isNativeInputValid_", 7331 value: function isNativeInputValid_() { 7332 return this.getNativeInput_().validity.valid; 7333 } 7334 /** 7335 * Styles the component based on the validity state. 7336 * @param {boolean} isValid 7337 * @private 7338 */ 7339 7340 }, { 7341 key: "styleValidity_", 7342 value: function styleValidity_(isValid) { 7343 var INVALID = MDCTextFieldFoundation.cssClasses.INVALID; 7344 7345 if (isValid) { 7346 this.adapter_.removeClass(INVALID); 7347 } else { 7348 this.adapter_.addClass(INVALID); 7349 } 7350 7351 if (this.helperText_) { 7352 this.helperText_.setValidity(isValid); 7353 } 7354 } 7355 /** 7356 * Styles the component based on the focused state. 7357 * @param {boolean} isFocused 7358 * @private 7359 */ 7360 7361 }, { 7362 key: "styleFocused_", 7363 value: function styleFocused_(isFocused) { 7364 var FOCUSED = MDCTextFieldFoundation.cssClasses.FOCUSED; 7365 7366 if (isFocused) { 7367 this.adapter_.addClass(FOCUSED); 7368 } else { 7369 this.adapter_.removeClass(FOCUSED); 7370 } 7371 } 7372 /** 7373 * Styles the component based on the disabled state. 7374 * @param {boolean} isDisabled 7375 * @private 7376 */ 7377 7378 }, { 7379 key: "styleDisabled_", 7380 value: function styleDisabled_(isDisabled) { 7381 var _MDCTextFieldFoundati = MDCTextFieldFoundation.cssClasses, 7382 DISABLED = _MDCTextFieldFoundati.DISABLED, 7383 INVALID = _MDCTextFieldFoundati.INVALID; 7384 7385 if (isDisabled) { 7386 this.adapter_.addClass(DISABLED); 7387 this.adapter_.removeClass(INVALID); 7388 } else { 7389 this.adapter_.removeClass(DISABLED); 7390 } 7391 7392 if (this.icon_) { 7393 this.icon_.setDisabled(isDisabled); 7394 } 7395 } 7396 /** 7397 * @return {!Element|!NativeInputType} The native text input from the 7398 * host environment, or a dummy if none exists. 7399 * @private 7400 */ 7401 7402 }, { 7403 key: "getNativeInput_", 7404 value: function getNativeInput_() { 7405 return this.adapter_.getNativeInput() || 7406 /** @type {!NativeInputType} */ 7407 { 7408 value: '', 7409 disabled: false, 7410 validity: { 7411 badInput: false, 7412 valid: true 7413 } 7414 }; 7415 } 7416 }]); 7417 7418 return MDCTextFieldFoundation; 7419 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 7420 7421 /* harmony default export */ __webpack_exports__["default"] = (MDCTextFieldFoundation); 7422 7423 /***/ }), 7424 7425 /***/ "./node_modules/@material/textfield/helper-text/adapter.js": 7426 /*!*****************************************************************!*\ 7427 !*** ./node_modules/@material/textfield/helper-text/adapter.js ***! 7428 \*****************************************************************/ 7429 /*! exports provided: default */ 7430 /***/ (function(module, __webpack_exports__, __webpack_require__) { 7431 7432 "use strict"; 7433 __webpack_require__.r(__webpack_exports__); 7434 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7435 7436 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 7437 7438 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 7439 7440 /** 7441 * @license 7442 * Copyright 2017 Google Inc. All Rights Reserved. 7443 * 7444 * Licensed under the Apache License, Version 2.0 (the "License"); 7445 * you may not use this file except in compliance with the License. 7446 * You may obtain a copy of the License at 7447 * 7448 * http://www.apache.org/licenses/LICENSE-2.0 7449 * 7450 * Unless required by applicable law or agreed to in writing, software 7451 * distributed under the License is distributed on an "AS IS" BASIS, 7452 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7453 * See the License for the specific language governing permissions and 7454 * limitations under the License. 7455 */ 7456 7457 /* eslint no-unused-vars: [2, {"args": "none"}] */ 7458 7459 /** 7460 * Adapter for MDC Text Field Helper Text. 7461 * 7462 * Defines the shape of the adapter expected by the foundation. Implement this 7463 * adapter to integrate the TextField helper text into your framework. See 7464 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 7465 * for more information. 7466 * 7467 * @record 7468 */ 7469 var MDCTextFieldHelperTextAdapter = 7470 /*#__PURE__*/ 7471 function () { 7472 function MDCTextFieldHelperTextAdapter() { 7473 _classCallCheck(this, MDCTextFieldHelperTextAdapter); 7474 } 7475 7476 _createClass(MDCTextFieldHelperTextAdapter, [{ 7477 key: "addClass", 7478 7479 /** 7480 * Adds a class to the helper text element. 7481 * @param {string} className 7482 */ 7483 value: function addClass(className) {} 7484 /** 7485 * Removes a class from the helper text element. 7486 * @param {string} className 7487 */ 7488 7489 }, { 7490 key: "removeClass", 7491 value: function removeClass(className) {} 7492 /** 7493 * Returns whether or not the helper text element contains the given class. 7494 * @param {string} className 7495 * @return {boolean} 7496 */ 7497 7498 }, { 7499 key: "hasClass", 7500 value: function hasClass(className) {} 7501 /** 7502 * Sets an attribute with a given value on the helper text element. 7503 * @param {string} attr 7504 * @param {string} value 7505 */ 7506 7507 }, { 7508 key: "setAttr", 7509 value: function setAttr(attr, value) {} 7510 /** 7511 * Removes an attribute from the helper text element. 7512 * @param {string} attr 7513 */ 7514 7515 }, { 7516 key: "removeAttr", 7517 value: function removeAttr(attr) {} 7518 /** 7519 * Sets the text content for the helper text element. 7520 * @param {string} content 7521 */ 7522 7523 }, { 7524 key: "setContent", 7525 value: function setContent(content) {} 7526 }]); 7527 7528 return MDCTextFieldHelperTextAdapter; 7529 }(); 7530 7531 /* harmony default export */ __webpack_exports__["default"] = (MDCTextFieldHelperTextAdapter); 7532 7533 /***/ }), 7534 7535 /***/ "./node_modules/@material/textfield/helper-text/constants.js": 7536 /*!*******************************************************************!*\ 7537 !*** ./node_modules/@material/textfield/helper-text/constants.js ***! 7538 \*******************************************************************/ 7539 /*! exports provided: strings, cssClasses */ 7540 /***/ (function(module, __webpack_exports__, __webpack_require__) { 7541 7542 "use strict"; 7543 __webpack_require__.r(__webpack_exports__); 7544 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 7545 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClasses", function() { return cssClasses; }); 7546 /** 7547 * @license 7548 * Copyright 2016 Google Inc. All Rights Reserved. 7549 * 7550 * Licensed under the Apache License, Version 2.0 (the "License"); 7551 * you may not use this file except in compliance with the License. 7552 * You may obtain a copy of the License at 7553 * 7554 * http://www.apache.org/licenses/LICENSE-2.0 7555 * 7556 * Unless required by applicable law or agreed to in writing, software 7557 * distributed under the License is distributed on an "AS IS" BASIS, 7558 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7559 * See the License for the specific language governing permissions and 7560 * limitations under the License. 7561 */ 7562 7563 /** @enum {string} */ 7564 var strings = { 7565 ARIA_HIDDEN: 'aria-hidden', 7566 ROLE: 'role' 7567 }; 7568 /** @enum {string} */ 7569 7570 var cssClasses = { 7571 HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent', 7572 HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg' 7573 }; 7574 7575 7576 /***/ }), 7577 7578 /***/ "./node_modules/@material/textfield/helper-text/foundation.js": 7579 /*!********************************************************************!*\ 7580 !*** ./node_modules/@material/textfield/helper-text/foundation.js ***! 7581 \********************************************************************/ 7582 /*! exports provided: default */ 7583 /***/ (function(module, __webpack_exports__, __webpack_require__) { 7584 7585 "use strict"; 7586 __webpack_require__.r(__webpack_exports__); 7587 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 7588 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/helper-text/adapter.js"); 7589 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/textfield/helper-text/constants.js"); 7590 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7591 7592 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7593 7594 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 7595 7596 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 7597 7598 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 7599 7600 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 7601 7602 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 7603 7604 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 7605 7606 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 7607 7608 /** 7609 * @license 7610 * Copyright 2017 Google Inc. All Rights Reserved. 7611 * 7612 * Licensed under the Apache License, Version 2.0 (the "License"); 7613 * you may not use this file except in compliance with the License. 7614 * You may obtain a copy of the License at 7615 * 7616 * http://www.apache.org/licenses/LICENSE-2.0 7617 * 7618 * Unless required by applicable law or agreed to in writing, software 7619 * distributed under the License is distributed on an "AS IS" BASIS, 7620 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7621 * See the License for the specific language governing permissions and 7622 * limitations under the License. 7623 */ 7624 7625 7626 7627 /** 7628 * @extends {MDCFoundation<!MDCTextFieldHelperTextAdapter>} 7629 * @final 7630 */ 7631 7632 var MDCTextFieldHelperTextFoundation = 7633 /*#__PURE__*/ 7634 function (_MDCFoundation) { 7635 _inherits(MDCTextFieldHelperTextFoundation, _MDCFoundation); 7636 7637 _createClass(MDCTextFieldHelperTextFoundation, null, [{ 7638 key: "cssClasses", 7639 7640 /** @return enum {string} */ 7641 get: function get() { 7642 return _constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"]; 7643 } 7644 /** @return enum {string} */ 7645 7646 }, { 7647 key: "strings", 7648 get: function get() { 7649 return _constants__WEBPACK_IMPORTED_MODULE_2__["strings"]; 7650 } 7651 /** 7652 * {@see MDCTextFieldHelperTextAdapter} for typing information on parameters and return 7653 * types. 7654 * @return {!MDCTextFieldHelperTextAdapter} 7655 */ 7656 7657 }, { 7658 key: "defaultAdapter", 7659 get: function get() { 7660 return ( 7661 /** @type {!MDCTextFieldHelperTextAdapter} */ 7662 { 7663 addClass: function addClass() {}, 7664 removeClass: function removeClass() {}, 7665 hasClass: function hasClass() {}, 7666 setAttr: function setAttr() {}, 7667 removeAttr: function removeAttr() {}, 7668 setContent: function setContent() {} 7669 } 7670 ); 7671 } 7672 /** 7673 * @param {!MDCTextFieldHelperTextAdapter} adapter 7674 */ 7675 7676 }]); 7677 7678 function MDCTextFieldHelperTextFoundation(adapter) { 7679 _classCallCheck(this, MDCTextFieldHelperTextFoundation); 7680 7681 return _possibleConstructorReturn(this, _getPrototypeOf(MDCTextFieldHelperTextFoundation).call(this, Object.assign(MDCTextFieldHelperTextFoundation.defaultAdapter, adapter))); 7682 } 7683 /** 7684 * Sets the content of the helper text field. 7685 * @param {string} content 7686 */ 7687 7688 7689 _createClass(MDCTextFieldHelperTextFoundation, [{ 7690 key: "setContent", 7691 value: function setContent(content) { 7692 this.adapter_.setContent(content); 7693 } 7694 /** @param {boolean} isPersistent Sets the persistency of the helper text. */ 7695 7696 }, { 7697 key: "setPersistent", 7698 value: function setPersistent(isPersistent) { 7699 if (isPersistent) { 7700 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_PERSISTENT); 7701 } else { 7702 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_PERSISTENT); 7703 } 7704 } 7705 /** 7706 * @param {boolean} isValidation True to make the helper text act as an 7707 * error validation message. 7708 */ 7709 7710 }, { 7711 key: "setValidation", 7712 value: function setValidation(isValidation) { 7713 if (isValidation) { 7714 this.adapter_.addClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_VALIDATION_MSG); 7715 } else { 7716 this.adapter_.removeClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_VALIDATION_MSG); 7717 } 7718 } 7719 /** Makes the helper text visible to the screen reader. */ 7720 7721 }, { 7722 key: "showToScreenReader", 7723 value: function showToScreenReader() { 7724 this.adapter_.removeAttr(_constants__WEBPACK_IMPORTED_MODULE_2__["strings"].ARIA_HIDDEN); 7725 } 7726 /** 7727 * Sets the validity of the helper text based on the input validity. 7728 * @param {boolean} inputIsValid 7729 */ 7730 7731 }, { 7732 key: "setValidity", 7733 value: function setValidity(inputIsValid) { 7734 var helperTextIsPersistent = this.adapter_.hasClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_PERSISTENT); 7735 var helperTextIsValidationMsg = this.adapter_.hasClass(_constants__WEBPACK_IMPORTED_MODULE_2__["cssClasses"].HELPER_TEXT_VALIDATION_MSG); 7736 var validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid; 7737 7738 if (validationMsgNeedsDisplay) { 7739 this.adapter_.setAttr(_constants__WEBPACK_IMPORTED_MODULE_2__["strings"].ROLE, 'alert'); 7740 } else { 7741 this.adapter_.removeAttr(_constants__WEBPACK_IMPORTED_MODULE_2__["strings"].ROLE); 7742 } 7743 7744 if (!helperTextIsPersistent && !validationMsgNeedsDisplay) { 7745 this.hide_(); 7746 } 7747 } 7748 /** 7749 * Hides the help text from screen readers. 7750 * @private 7751 */ 7752 7753 }, { 7754 key: "hide_", 7755 value: function hide_() { 7756 this.adapter_.setAttr(_constants__WEBPACK_IMPORTED_MODULE_2__["strings"].ARIA_HIDDEN, 'true'); 7757 } 7758 }]); 7759 7760 return MDCTextFieldHelperTextFoundation; 7761 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 7762 7763 /* harmony default export */ __webpack_exports__["default"] = (MDCTextFieldHelperTextFoundation); 7764 7765 /***/ }), 7766 7767 /***/ "./node_modules/@material/textfield/helper-text/index.js": 7768 /*!***************************************************************!*\ 7769 !*** ./node_modules/@material/textfield/helper-text/index.js ***! 7770 \***************************************************************/ 7771 /*! exports provided: MDCTextFieldHelperText, MDCTextFieldHelperTextFoundation */ 7772 /***/ (function(module, __webpack_exports__, __webpack_require__) { 7773 7774 "use strict"; 7775 __webpack_require__.r(__webpack_exports__); 7776 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperText", function() { return MDCTextFieldHelperText; }); 7777 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 7778 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/helper-text/adapter.js"); 7779 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/textfield/helper-text/foundation.js"); 7780 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperTextFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 7781 7782 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7783 7784 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7785 7786 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 7787 7788 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 7789 7790 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 7791 7792 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 7793 7794 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 7795 7796 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 7797 7798 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 7799 7800 /** 7801 * @license 7802 * Copyright 2017 Google Inc. All Rights Reserved. 7803 * 7804 * Licensed under the Apache License, Version 2.0 (the "License"); 7805 * you may not use this file except in compliance with the License. 7806 * You may obtain a copy of the License at 7807 * 7808 * http://www.apache.org/licenses/LICENSE-2.0 7809 * 7810 * Unless required by applicable law or agreed to in writing, software 7811 * distributed under the License is distributed on an "AS IS" BASIS, 7812 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7813 * See the License for the specific language governing permissions and 7814 * limitations under the License. 7815 */ 7816 7817 7818 7819 /** 7820 * @extends {MDCComponent<!MDCTextFieldHelperTextFoundation>} 7821 * @final 7822 */ 7823 7824 var MDCTextFieldHelperText = 7825 /*#__PURE__*/ 7826 function (_MDCComponent) { 7827 _inherits(MDCTextFieldHelperText, _MDCComponent); 7828 7829 function MDCTextFieldHelperText() { 7830 _classCallCheck(this, MDCTextFieldHelperText); 7831 7832 return _possibleConstructorReturn(this, _getPrototypeOf(MDCTextFieldHelperText).apply(this, arguments)); 7833 } 7834 7835 _createClass(MDCTextFieldHelperText, [{ 7836 key: "getDefaultFoundation", 7837 7838 /** 7839 * @return {!MDCTextFieldHelperTextFoundation} 7840 */ 7841 value: function getDefaultFoundation() { 7842 var _this = this; 7843 7844 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]( 7845 /** @type {!MDCTextFieldHelperTextAdapter} */ 7846 Object.assign({ 7847 addClass: function addClass(className) { 7848 return _this.root_.classList.add(className); 7849 }, 7850 removeClass: function removeClass(className) { 7851 return _this.root_.classList.remove(className); 7852 }, 7853 hasClass: function hasClass(className) { 7854 return _this.root_.classList.contains(className); 7855 }, 7856 setAttr: function setAttr(attr, value) { 7857 return _this.root_.setAttribute(attr, value); 7858 }, 7859 removeAttr: function removeAttr(attr) { 7860 return _this.root_.removeAttribute(attr); 7861 }, 7862 setContent: function setContent(content) { 7863 _this.root_.textContent = content; 7864 } 7865 })); 7866 } 7867 }, { 7868 key: "foundation", 7869 7870 /** 7871 * @return {!MDCTextFieldHelperTextFoundation} 7872 */ 7873 get: function get() { 7874 return this.foundation_; 7875 } 7876 }], [{ 7877 key: "attachTo", 7878 7879 /** 7880 * @param {!Element} root 7881 * @return {!MDCTextFieldHelperText} 7882 */ 7883 value: function attachTo(root) { 7884 return new MDCTextFieldHelperText(root); 7885 } 7886 }]); 7887 7888 return MDCTextFieldHelperText; 7889 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 7890 7891 7892 7893 /***/ }), 7894 7895 /***/ "./node_modules/@material/textfield/icon/adapter.js": 7896 /*!**********************************************************!*\ 7897 !*** ./node_modules/@material/textfield/icon/adapter.js ***! 7898 \**********************************************************/ 7899 /*! exports provided: default */ 7900 /***/ (function(module, __webpack_exports__, __webpack_require__) { 7901 7902 "use strict"; 7903 __webpack_require__.r(__webpack_exports__); 7904 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7905 7906 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 7907 7908 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 7909 7910 /** 7911 * @license 7912 * Copyright 2017 Google Inc. All Rights Reserved. 7913 * 7914 * Licensed under the Apache License, Version 2.0 (the "License"); 7915 * you may not use this file except in compliance with the License. 7916 * You may obtain a copy of the License at 7917 * 7918 * http://www.apache.org/licenses/LICENSE-2.0 7919 * 7920 * Unless required by applicable law or agreed to in writing, software 7921 * distributed under the License is distributed on an "AS IS" BASIS, 7922 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 7923 * See the License for the specific language governing permissions and 7924 * limitations under the License. 7925 */ 7926 7927 /* eslint no-unused-vars: [2, {"args": "none"}] */ 7928 7929 /** 7930 * Adapter for MDC Text Field Icon. 7931 * 7932 * Defines the shape of the adapter expected by the foundation. Implement this 7933 * adapter to integrate the text field icon into your framework. See 7934 * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md 7935 * for more information. 7936 * 7937 * @record 7938 */ 7939 var MDCTextFieldIconAdapter = 7940 /*#__PURE__*/ 7941 function () { 7942 function MDCTextFieldIconAdapter() { 7943 _classCallCheck(this, MDCTextFieldIconAdapter); 7944 } 7945 7946 _createClass(MDCTextFieldIconAdapter, [{ 7947 key: "getAttr", 7948 7949 /** 7950 * Gets the value of an attribute on the icon element. 7951 * @param {string} attr 7952 * @return {string} 7953 */ 7954 value: function getAttr(attr) {} 7955 /** 7956 * Sets an attribute on the icon element. 7957 * @param {string} attr 7958 * @param {string} value 7959 */ 7960 7961 }, { 7962 key: "setAttr", 7963 value: function setAttr(attr, value) {} 7964 /** 7965 * Removes an attribute from the icon element. 7966 * @param {string} attr 7967 */ 7968 7969 }, { 7970 key: "removeAttr", 7971 value: function removeAttr(attr) {} 7972 /** 7973 * Sets the text content of the icon element. 7974 * @param {string} content 7975 */ 7976 7977 }, { 7978 key: "setContent", 7979 value: function setContent(content) {} 7980 /** 7981 * Registers an event listener on the icon element for a given event. 7982 * @param {string} evtType 7983 * @param {function(!Event): undefined} handler 7984 */ 7985 7986 }, { 7987 key: "registerInteractionHandler", 7988 value: function registerInteractionHandler(evtType, handler) {} 7989 /** 7990 * Deregisters an event listener on the icon element for a given event. 7991 * @param {string} evtType 7992 * @param {function(!Event): undefined} handler 7993 */ 7994 7995 }, { 7996 key: "deregisterInteractionHandler", 7997 value: function deregisterInteractionHandler(evtType, handler) {} 7998 /** 7999 * Emits a custom event "MDCTextField:icon" denoting a user has clicked the icon. 8000 */ 8001 8002 }, { 8003 key: "notifyIconAction", 8004 value: function notifyIconAction() {} 8005 }]); 8006 8007 return MDCTextFieldIconAdapter; 8008 }(); 8009 8010 /* harmony default export */ __webpack_exports__["default"] = (MDCTextFieldIconAdapter); 8011 8012 /***/ }), 8013 8014 /***/ "./node_modules/@material/textfield/icon/constants.js": 8015 /*!************************************************************!*\ 8016 !*** ./node_modules/@material/textfield/icon/constants.js ***! 8017 \************************************************************/ 8018 /*! exports provided: strings */ 8019 /***/ (function(module, __webpack_exports__, __webpack_require__) { 8020 8021 "use strict"; 8022 __webpack_require__.r(__webpack_exports__); 8023 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strings", function() { return strings; }); 8024 /** 8025 * @license 8026 * Copyright 2016 Google Inc. All Rights Reserved. 8027 * 8028 * Licensed under the Apache License, Version 2.0 (the "License"); 8029 * you may not use this file except in compliance with the License. 8030 * You may obtain a copy of the License at 8031 * 8032 * http://www.apache.org/licenses/LICENSE-2.0 8033 * 8034 * Unless required by applicable law or agreed to in writing, software 8035 * distributed under the License is distributed on an "AS IS" BASIS, 8036 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8037 * See the License for the specific language governing permissions and 8038 * limitations under the License. 8039 */ 8040 8041 /** @enum {string} */ 8042 var strings = { 8043 ICON_EVENT: 'MDCTextField:icon', 8044 ICON_ROLE: 'button' 8045 }; 8046 8047 8048 /***/ }), 8049 8050 /***/ "./node_modules/@material/textfield/icon/foundation.js": 8051 /*!*************************************************************!*\ 8052 !*** ./node_modules/@material/textfield/icon/foundation.js ***! 8053 \*************************************************************/ 8054 /*! exports provided: default */ 8055 /***/ (function(module, __webpack_exports__, __webpack_require__) { 8056 8057 "use strict"; 8058 __webpack_require__.r(__webpack_exports__); 8059 /* harmony import */ var _material_base_foundation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/foundation */ "./node_modules/@material/base/foundation.js"); 8060 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/icon/adapter.js"); 8061 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/textfield/icon/constants.js"); 8062 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8063 8064 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 8065 8066 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 8067 8068 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 8069 8070 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 8071 8072 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 8073 8074 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 8075 8076 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 8077 8078 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 8079 8080 /** 8081 * @license 8082 * Copyright 2017 Google Inc. All Rights Reserved. 8083 * 8084 * Licensed under the Apache License, Version 2.0 (the "License"); 8085 * you may not use this file except in compliance with the License. 8086 * You may obtain a copy of the License at 8087 * 8088 * http://www.apache.org/licenses/LICENSE-2.0 8089 * 8090 * Unless required by applicable law or agreed to in writing, software 8091 * distributed under the License is distributed on an "AS IS" BASIS, 8092 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8093 * See the License for the specific language governing permissions and 8094 * limitations under the License. 8095 */ 8096 8097 8098 8099 /** 8100 * @extends {MDCFoundation<!MDCTextFieldIconAdapter>} 8101 * @final 8102 */ 8103 8104 var MDCTextFieldIconFoundation = 8105 /*#__PURE__*/ 8106 function (_MDCFoundation) { 8107 _inherits(MDCTextFieldIconFoundation, _MDCFoundation); 8108 8109 _createClass(MDCTextFieldIconFoundation, null, [{ 8110 key: "strings", 8111 8112 /** @return enum {string} */ 8113 get: function get() { 8114 return _constants__WEBPACK_IMPORTED_MODULE_2__["strings"]; 8115 } 8116 /** 8117 * {@see MDCTextFieldIconAdapter} for typing information on parameters and return 8118 * types. 8119 * @return {!MDCTextFieldIconAdapter} 8120 */ 8121 8122 }, { 8123 key: "defaultAdapter", 8124 get: function get() { 8125 return ( 8126 /** @type {!MDCTextFieldIconAdapter} */ 8127 { 8128 getAttr: function getAttr() {}, 8129 setAttr: function setAttr() {}, 8130 removeAttr: function removeAttr() {}, 8131 setContent: function setContent() {}, 8132 registerInteractionHandler: function registerInteractionHandler() {}, 8133 deregisterInteractionHandler: function deregisterInteractionHandler() {}, 8134 notifyIconAction: function notifyIconAction() {} 8135 } 8136 ); 8137 } 8138 /** 8139 * @param {!MDCTextFieldIconAdapter} adapter 8140 */ 8141 8142 }]); 8143 8144 function MDCTextFieldIconFoundation(adapter) { 8145 var _this; 8146 8147 _classCallCheck(this, MDCTextFieldIconFoundation); 8148 8149 _this = _possibleConstructorReturn(this, _getPrototypeOf(MDCTextFieldIconFoundation).call(this, Object.assign(MDCTextFieldIconFoundation.defaultAdapter, adapter))); 8150 /** @private {string?} */ 8151 8152 _this.savedTabIndex_ = null; 8153 /** @private {function(!Event): undefined} */ 8154 8155 _this.interactionHandler_ = function (evt) { 8156 return _this.handleInteraction(evt); 8157 }; 8158 8159 return _this; 8160 } 8161 8162 _createClass(MDCTextFieldIconFoundation, [{ 8163 key: "init", 8164 value: function init() { 8165 var _this2 = this; 8166 8167 this.savedTabIndex_ = this.adapter_.getAttr('tabindex'); 8168 ['click', 'keydown'].forEach(function (evtType) { 8169 _this2.adapter_.registerInteractionHandler(evtType, _this2.interactionHandler_); 8170 }); 8171 } 8172 }, { 8173 key: "destroy", 8174 value: function destroy() { 8175 var _this3 = this; 8176 8177 ['click', 'keydown'].forEach(function (evtType) { 8178 _this3.adapter_.deregisterInteractionHandler(evtType, _this3.interactionHandler_); 8179 }); 8180 } 8181 /** @param {boolean} disabled */ 8182 8183 }, { 8184 key: "setDisabled", 8185 value: function setDisabled(disabled) { 8186 if (!this.savedTabIndex_) { 8187 return; 8188 } 8189 8190 if (disabled) { 8191 this.adapter_.setAttr('tabindex', '-1'); 8192 this.adapter_.removeAttr('role'); 8193 } else { 8194 this.adapter_.setAttr('tabindex', this.savedTabIndex_); 8195 this.adapter_.setAttr('role', _constants__WEBPACK_IMPORTED_MODULE_2__["strings"].ICON_ROLE); 8196 } 8197 } 8198 /** @param {string} label */ 8199 8200 }, { 8201 key: "setAriaLabel", 8202 value: function setAriaLabel(label) { 8203 this.adapter_.setAttr('aria-label', label); 8204 } 8205 /** @param {string} content */ 8206 8207 }, { 8208 key: "setContent", 8209 value: function setContent(content) { 8210 this.adapter_.setContent(content); 8211 } 8212 /** 8213 * Handles an interaction event 8214 * @param {!Event} evt 8215 */ 8216 8217 }, { 8218 key: "handleInteraction", 8219 value: function handleInteraction(evt) { 8220 if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) { 8221 this.adapter_.notifyIconAction(); 8222 } 8223 } 8224 }]); 8225 8226 return MDCTextFieldIconFoundation; 8227 }(_material_base_foundation__WEBPACK_IMPORTED_MODULE_0__["default"]); 8228 8229 /* harmony default export */ __webpack_exports__["default"] = (MDCTextFieldIconFoundation); 8230 8231 /***/ }), 8232 8233 /***/ "./node_modules/@material/textfield/icon/index.js": 8234 /*!********************************************************!*\ 8235 !*** ./node_modules/@material/textfield/icon/index.js ***! 8236 \********************************************************/ 8237 /*! exports provided: MDCTextFieldIcon, MDCTextFieldIconFoundation */ 8238 /***/ (function(module, __webpack_exports__, __webpack_require__) { 8239 8240 "use strict"; 8241 __webpack_require__.r(__webpack_exports__); 8242 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIcon", function() { return MDCTextFieldIcon; }); 8243 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 8244 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/icon/adapter.js"); 8245 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/textfield/icon/foundation.js"); 8246 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIconFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 8247 8248 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8249 8250 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 8251 8252 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 8253 8254 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 8255 8256 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 8257 8258 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 8259 8260 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 8261 8262 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 8263 8264 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 8265 8266 /** 8267 * @license 8268 * Copyright 2017 Google Inc. All Rights Reserved. 8269 * 8270 * Licensed under the Apache License, Version 2.0 (the "License"); 8271 * you may not use this file except in compliance with the License. 8272 * You may obtain a copy of the License at 8273 * 8274 * http://www.apache.org/licenses/LICENSE-2.0 8275 * 8276 * Unless required by applicable law or agreed to in writing, software 8277 * distributed under the License is distributed on an "AS IS" BASIS, 8278 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8279 * See the License for the specific language governing permissions and 8280 * limitations under the License. 8281 */ 8282 8283 8284 8285 /** 8286 * @extends {MDCComponent<!MDCTextFieldIconFoundation>} 8287 * @final 8288 */ 8289 8290 var MDCTextFieldIcon = 8291 /*#__PURE__*/ 8292 function (_MDCComponent) { 8293 _inherits(MDCTextFieldIcon, _MDCComponent); 8294 8295 function MDCTextFieldIcon() { 8296 _classCallCheck(this, MDCTextFieldIcon); 8297 8298 return _possibleConstructorReturn(this, _getPrototypeOf(MDCTextFieldIcon).apply(this, arguments)); 8299 } 8300 8301 _createClass(MDCTextFieldIcon, [{ 8302 key: "getDefaultFoundation", 8303 8304 /** 8305 * @return {!MDCTextFieldIconFoundation} 8306 */ 8307 value: function getDefaultFoundation() { 8308 var _this = this; 8309 8310 return new _foundation__WEBPACK_IMPORTED_MODULE_2__["default"]( 8311 /** @type {!MDCTextFieldIconAdapter} */ 8312 Object.assign({ 8313 getAttr: function getAttr(attr) { 8314 return _this.root_.getAttribute(attr); 8315 }, 8316 setAttr: function setAttr(attr, value) { 8317 return _this.root_.setAttribute(attr, value); 8318 }, 8319 removeAttr: function removeAttr(attr) { 8320 return _this.root_.removeAttribute(attr); 8321 }, 8322 setContent: function setContent(content) { 8323 _this.root_.textContent = content; 8324 }, 8325 registerInteractionHandler: function registerInteractionHandler(evtType, handler) { 8326 return _this.root_.addEventListener(evtType, handler); 8327 }, 8328 deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { 8329 return _this.root_.removeEventListener(evtType, handler); 8330 }, 8331 notifyIconAction: function notifyIconAction() { 8332 return _this.emit(_foundation__WEBPACK_IMPORTED_MODULE_2__["default"].strings.ICON_EVENT, {} 8333 /* evtData */ 8334 , true 8335 /* shouldBubble */ 8336 ); 8337 } 8338 })); 8339 } 8340 }, { 8341 key: "foundation", 8342 8343 /** 8344 * @return {!MDCTextFieldIconFoundation} 8345 */ 8346 get: function get() { 8347 return this.foundation_; 8348 } 8349 }], [{ 8350 key: "attachTo", 8351 8352 /** 8353 * @param {!Element} root 8354 * @return {!MDCTextFieldIcon} 8355 */ 8356 value: function attachTo(root) { 8357 return new MDCTextFieldIcon(root); 8358 } 8359 }]); 8360 8361 return MDCTextFieldIcon; 8362 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 8363 8364 8365 8366 /***/ }), 8367 8368 /***/ "./node_modules/@material/textfield/index.js": 8369 /*!***************************************************!*\ 8370 !*** ./node_modules/@material/textfield/index.js ***! 8371 \***************************************************/ 8372 /*! exports provided: MDCTextField, MDCTextFieldFoundation, MDCTextFieldHelperText, MDCTextFieldHelperTextFoundation, MDCTextFieldIcon, MDCTextFieldIconFoundation */ 8373 /***/ (function(module, __webpack_exports__, __webpack_require__) { 8374 8375 "use strict"; 8376 __webpack_require__.r(__webpack_exports__); 8377 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextField", function() { return MDCTextField; }); 8378 /* harmony import */ var _material_base_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/base/component */ "./node_modules/@material/base/component.js"); 8379 /* harmony import */ var _material_ripple_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material/ripple/index */ "./node_modules/@material/ripple/index.js"); 8380 /* harmony import */ var _material_ripple_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/ripple/util */ "./node_modules/@material/ripple/util.js"); 8381 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./node_modules/@material/textfield/constants.js"); 8382 /* harmony import */ var _adapter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./adapter */ "./node_modules/@material/textfield/adapter.js"); 8383 /* harmony import */ var _foundation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation */ "./node_modules/@material/textfield/foundation.js"); 8384 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldFoundation", function() { return _foundation__WEBPACK_IMPORTED_MODULE_5__["default"]; }); 8385 8386 /* harmony import */ var _material_line_ripple_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material/line-ripple/index */ "./node_modules/@material/line-ripple/index.js"); 8387 /* harmony import */ var _helper_text_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helper-text/index */ "./node_modules/@material/textfield/helper-text/index.js"); 8388 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperText", function() { return _helper_text_index__WEBPACK_IMPORTED_MODULE_7__["MDCTextFieldHelperText"]; }); 8389 8390 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperTextFoundation", function() { return _helper_text_index__WEBPACK_IMPORTED_MODULE_7__["MDCTextFieldHelperTextFoundation"]; }); 8391 8392 /* harmony import */ var _icon_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./icon/index */ "./node_modules/@material/textfield/icon/index.js"); 8393 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIcon", function() { return _icon_index__WEBPACK_IMPORTED_MODULE_8__["MDCTextFieldIcon"]; }); 8394 8395 /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIconFoundation", function() { return _icon_index__WEBPACK_IMPORTED_MODULE_8__["MDCTextFieldIconFoundation"]; }); 8396 8397 /* harmony import */ var _material_floating_label_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @material/floating-label/index */ "./node_modules/@material/floating-label/index.js"); 8398 /* harmony import */ var _material_notched_outline_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @material/notched-outline/index */ "./node_modules/@material/notched-outline/index.js"); 8399 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8400 8401 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 8402 8403 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 8404 8405 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 8406 8407 function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 8408 8409 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 8410 8411 function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } 8412 8413 function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 8414 8415 function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 8416 8417 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 8418 8419 function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 8420 8421 /** 8422 * @license 8423 * Copyright 2016 Google Inc. All Rights Reserved. 8424 * 8425 * Licensed under the Apache License, Version 2.0 (the "License"); 8426 * you may not use this file except in compliance with the License. 8427 * You may obtain a copy of the License at 8428 * 8429 * http://www.apache.org/licenses/LICENSE-2.0 8430 * 8431 * Unless required by applicable law or agreed to in writing, software 8432 * distributed under the License is distributed on an "AS IS" BASIS, 8433 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 8434 * See the License for the specific language governing permissions and 8435 * limitations under the License. 8436 */ 8437 8438 /* eslint-disable no-unused-vars */ 8439 8440 8441 /* eslint-enable no-unused-vars */ 8442 8443 8444 8445 8446 8447 /* eslint-disable no-unused-vars */ 8448 8449 8450 8451 8452 8453 8454 /* eslint-enable no-unused-vars */ 8455 8456 /** 8457 * @extends {MDCComponent<!MDCTextFieldFoundation>} 8458 * @final 8459 */ 8460 8461 var MDCTextField = 8462 /*#__PURE__*/ 8463 function (_MDCComponent) { 8464 _inherits(MDCTextField, _MDCComponent); 8465 8466 /** 8467 * @param {...?} args 8468 */ 8469 function MDCTextField() { 8470 var _getPrototypeOf2; 8471 8472 var _this; 8473 8474 _classCallCheck(this, MDCTextField); 8475 8476 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 8477 args[_key] = arguments[_key]; 8478 } 8479 8480 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MDCTextField)).call.apply(_getPrototypeOf2, [this].concat(args))); 8481 /** @private {?Element} */ 8482 8483 _this.input_; 8484 /** @type {?MDCRipple} */ 8485 8486 _this.ripple; 8487 /** @private {?MDCLineRipple} */ 8488 8489 _this.lineRipple_; 8490 /** @private {?MDCTextFieldHelperText} */ 8491 8492 _this.helperText_; 8493 /** @private {?MDCTextFieldIcon} */ 8494 8495 _this.icon_; 8496 /** @private {?MDCFloatingLabel} */ 8497 8498 _this.label_; 8499 /** @private {?MDCNotchedOutline} */ 8500 8501 _this.outline_; 8502 return _this; 8503 } 8504 /** 8505 * @param {!Element} root 8506 * @return {!MDCTextField} 8507 */ 8508 8509 8510 _createClass(MDCTextField, [{ 8511 key: "initialize", 8512 8513 /** 8514 * @param {(function(!Element): !MDCRipple)=} rippleFactory A function which 8515 * creates a new MDCRipple. 8516 * @param {(function(!Element): !MDCLineRipple)=} lineRippleFactory A function which 8517 * creates a new MDCLineRipple. 8518 * @param {(function(!Element): !MDCTextFieldHelperText)=} helperTextFactory A function which 8519 * creates a new MDCTextFieldHelperText. 8520 * @param {(function(!Element): !MDCTextFieldIcon)=} iconFactory A function which 8521 * creates a new MDCTextFieldIcon. 8522 * @param {(function(!Element): !MDCFloatingLabel)=} labelFactory A function which 8523 * creates a new MDCFloatingLabel. 8524 * @param {(function(!Element): !MDCNotchedOutline)=} outlineFactory A function which 8525 * creates a new MDCNotchedOutline. 8526 */ 8527 value: function initialize() { 8528 var _this2 = this; 8529 8530 var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) { 8531 return new _material_ripple_index__WEBPACK_IMPORTED_MODULE_1__["MDCRipple"](el, foundation); 8532 }; 8533 var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { 8534 return new _material_line_ripple_index__WEBPACK_IMPORTED_MODULE_6__["MDCLineRipple"](el); 8535 }; 8536 var helperTextFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) { 8537 return new _helper_text_index__WEBPACK_IMPORTED_MODULE_7__["MDCTextFieldHelperText"](el); 8538 }; 8539 var iconFactory = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (el) { 8540 return new _icon_index__WEBPACK_IMPORTED_MODULE_8__["MDCTextFieldIcon"](el); 8541 }; 8542 var labelFactory = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (el) { 8543 return new _material_floating_label_index__WEBPACK_IMPORTED_MODULE_9__["MDCFloatingLabel"](el); 8544 }; 8545 var outlineFactory = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (el) { 8546 return new _material_notched_outline_index__WEBPACK_IMPORTED_MODULE_10__["MDCNotchedOutline"](el); 8547 }; 8548 this.input_ = this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].INPUT_SELECTOR); 8549 var labelElement = this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].LABEL_SELECTOR); 8550 8551 if (labelElement) { 8552 this.label_ = labelFactory(labelElement); 8553 } 8554 8555 var lineRippleElement = this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].LINE_RIPPLE_SELECTOR); 8556 8557 if (lineRippleElement) { 8558 this.lineRipple_ = lineRippleFactory(lineRippleElement); 8559 } 8560 8561 var outlineElement = this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].OUTLINE_SELECTOR); 8562 8563 if (outlineElement) { 8564 this.outline_ = outlineFactory(outlineElement); 8565 } 8566 8567 if (this.input_.hasAttribute(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ARIA_CONTROLS)) { 8568 var helperTextElement = document.getElementById(this.input_.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ARIA_CONTROLS)); 8569 8570 if (helperTextElement) { 8571 this.helperText_ = helperTextFactory(helperTextElement); 8572 } 8573 } 8574 8575 var iconElement = this.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].ICON_SELECTOR); 8576 8577 if (iconElement) { 8578 this.icon_ = iconFactory(iconElement); 8579 } 8580 8581 this.ripple = null; 8582 8583 if (this.root_.classList.contains(_constants__WEBPACK_IMPORTED_MODULE_3__["cssClasses"].BOX)) { 8584 var MATCHES = Object(_material_ripple_util__WEBPACK_IMPORTED_MODULE_2__["getMatchesProperty"])(HTMLElement.prototype); 8585 var adapter = Object.assign(_material_ripple_index__WEBPACK_IMPORTED_MODULE_1__["MDCRipple"].createAdapter( 8586 /** @type {!RippleCapableSurface} */ 8587 this), { 8588 isSurfaceActive: function isSurfaceActive() { 8589 return _this2.input_[MATCHES](':active'); 8590 }, 8591 registerInteractionHandler: function registerInteractionHandler(type, handler) { 8592 return _this2.input_.addEventListener(type, handler); 8593 }, 8594 deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { 8595 return _this2.input_.removeEventListener(type, handler); 8596 } 8597 }); 8598 var foundation = new _material_ripple_index__WEBPACK_IMPORTED_MODULE_1__["MDCRippleFoundation"](adapter); 8599 this.ripple = rippleFactory(this.root_, foundation); 8600 } 8601 } 8602 }, { 8603 key: "destroy", 8604 value: function destroy() { 8605 if (this.ripple) { 8606 this.ripple.destroy(); 8607 } 8608 8609 if (this.lineRipple_) { 8610 this.lineRipple_.destroy(); 8611 } 8612 8613 if (this.helperText_) { 8614 this.helperText_.destroy(); 8615 } 8616 8617 if (this.icon_) { 8618 this.icon_.destroy(); 8619 } 8620 8621 if (this.label_) { 8622 this.label_.destroy(); 8623 } 8624 8625 if (this.outline_) { 8626 this.outline_.destroy(); 8627 } 8628 8629 _get(_getPrototypeOf(MDCTextField.prototype), "destroy", this).call(this); 8630 } 8631 /** 8632 * Initiliazes the Text Field's internal state based on the environment's 8633 * state. 8634 */ 8635 8636 }, { 8637 key: "initialSyncWithDom", 8638 value: function initialSyncWithDom() { 8639 this.disabled = this.input_.disabled; 8640 } 8641 /** 8642 * @return {string} The value of the input. 8643 */ 8644 8645 }, { 8646 key: "layout", 8647 8648 /** 8649 * Recomputes the outline SVG path for the outline element. 8650 */ 8651 value: function layout() { 8652 var openNotch = this.foundation_.shouldFloat; 8653 this.foundation_.notchOutline(openNotch); 8654 } 8655 /** 8656 * @return {!MDCTextFieldFoundation} 8657 */ 8658 8659 }, { 8660 key: "getDefaultFoundation", 8661 value: function getDefaultFoundation() { 8662 var _this3 = this; 8663 8664 return new _foundation__WEBPACK_IMPORTED_MODULE_5__["default"]( 8665 /** @type {!MDCTextFieldAdapter} */ 8666 Object.assign({ 8667 addClass: function addClass(className) { 8668 return _this3.root_.classList.add(className); 8669 }, 8670 removeClass: function removeClass(className) { 8671 return _this3.root_.classList.remove(className); 8672 }, 8673 hasClass: function hasClass(className) { 8674 return _this3.root_.classList.contains(className); 8675 }, 8676 registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler(evtType, handler) { 8677 return _this3.root_.addEventListener(evtType, handler); 8678 }, 8679 deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler(evtType, handler) { 8680 return _this3.root_.removeEventListener(evtType, handler); 8681 }, 8682 registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler(handler) { 8683 var getAttributesList = function getAttributesList(mutationsList) { 8684 return mutationsList.map(function (mutation) { 8685 return mutation.attributeName; 8686 }); 8687 }; 8688 8689 var observer = new MutationObserver(function (mutationsList) { 8690 return handler(getAttributesList(mutationsList)); 8691 }); 8692 8693 var targetNode = _this3.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].INPUT_SELECTOR); 8694 8695 var config = { 8696 attributes: true 8697 }; 8698 observer.observe(targetNode, config); 8699 return observer; 8700 }, 8701 deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler(observer) { 8702 return observer.disconnect(); 8703 }, 8704 isFocused: function isFocused() { 8705 return document.activeElement === _this3.root_.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__["strings"].INPUT_SELECTOR); 8706 }, 8707 isRtl: function isRtl() { 8708 return window.getComputedStyle(_this3.root_).getPropertyValue('direction') === 'rtl'; 8709 } 8710 }, this.getInputAdapterMethods_(), this.getLabelAdapterMethods_(), this.getLineRippleAdapterMethods_(), this.getOutlineAdapterMethods_()), this.getFoundationMap_()); 8711 } 8712 /** 8713 * @return {!{ 8714 * shakeLabel: function(boolean): undefined, 8715 * floatLabel: function(boolean): undefined, 8716 * hasLabel: function(): boolean, 8717 * getLabelWidth: function(): number, 8718 * }} 8719 */ 8720 8721 }, { 8722 key: "getLabelAdapterMethods_", 8723 value: function getLabelAdapterMethods_() { 8724 var _this4 = this; 8725 8726 return { 8727 shakeLabel: function shakeLabel(shouldShake) { 8728 return _this4.label_.shake(shouldShake); 8729 }, 8730 floatLabel: function floatLabel(shouldFloat) { 8731 return _this4.label_.float(shouldFloat); 8732 }, 8733 hasLabel: function hasLabel() { 8734 return !!_this4.label_; 8735 }, 8736 getLabelWidth: function getLabelWidth() { 8737 return _this4.label_.getWidth(); 8738 } 8739 }; 8740 } 8741 /** 8742 * @return {!{ 8743 * activateLineRipple: function(): undefined, 8744 * deactivateLineRipple: function(): undefined, 8745 * setLineRippleTransformOrigin: function(number): undefined, 8746 * }} 8747 */ 8748 8749 }, { 8750 key: "getLineRippleAdapterMethods_", 8751 value: function getLineRippleAdapterMethods_() { 8752 var _this5 = this; 8753 8754 return { 8755 activateLineRipple: function activateLineRipple() { 8756 if (_this5.lineRipple_) { 8757 _this5.lineRipple_.activate(); 8758 } 8759 }, 8760 deactivateLineRipple: function deactivateLineRipple() { 8761 if (_this5.lineRipple_) { 8762 _this5.lineRipple_.deactivate(); 8763 } 8764 }, 8765 setLineRippleTransformOrigin: function setLineRippleTransformOrigin(normalizedX) { 8766 if (_this5.lineRipple_) { 8767 _this5.lineRipple_.setRippleCenter(normalizedX); 8768 } 8769 } 8770 }; 8771 } 8772 /** 8773 * @return {!{ 8774 * notchOutline: function(number, boolean): undefined, 8775 * hasOutline: function(): boolean, 8776 * }} 8777 */ 8778 8779 }, { 8780 key: "getOutlineAdapterMethods_", 8781 value: function getOutlineAdapterMethods_() { 8782 var _this6 = this; 8783 8784 return { 8785 notchOutline: function notchOutline(labelWidth, isRtl) { 8786 return _this6.outline_.notch(labelWidth, isRtl); 8787 }, 8788 closeOutline: function closeOutline() { 8789 return _this6.outline_.closeNotch(); 8790 }, 8791 hasOutline: function hasOutline() { 8792 return !!_this6.outline_; 8793 } 8794 }; 8795 } 8796 /** 8797 * @return {!{ 8798 * registerInputInteractionHandler: function(string, function()): undefined, 8799 * deregisterInputInteractionHandler: function(string, function()): undefined, 8800 * getNativeInput: function(): ?Element, 8801 * }} 8802 */ 8803 8804 }, { 8805 key: "getInputAdapterMethods_", 8806 value: function getInputAdapterMethods_() { 8807 var _this7 = this; 8808 8809 return { 8810 registerInputInteractionHandler: function registerInputInteractionHandler(evtType, handler) { 8811 return _this7.input_.addEventListener(evtType, handler); 8812 }, 8813 deregisterInputInteractionHandler: function deregisterInputInteractionHandler(evtType, handler) { 8814 return _this7.input_.removeEventListener(evtType, handler); 8815 }, 8816 getNativeInput: function getNativeInput() { 8817 return _this7.input_; 8818 } 8819 }; 8820 } 8821 /** 8822 * Returns a map of all subcomponents to subfoundations. 8823 * @return {!FoundationMapType} 8824 */ 8825 8826 }, { 8827 key: "getFoundationMap_", 8828 value: function getFoundationMap_() { 8829 return { 8830 helperText: this.helperText_ ? this.helperText_.foundation : undefined, 8831 icon: this.icon_ ? this.icon_.foundation : undefined 8832 }; 8833 } 8834 }, { 8835 key: "value", 8836 get: function get() { 8837 return this.foundation_.getValue(); 8838 } 8839 /** 8840 * @param {string} value The value to set on the input. 8841 */ 8842 , 8843 set: function set(value) { 8844 this.foundation_.setValue(value); 8845 } 8846 /** 8847 * @return {boolean} True if the Text Field is disabled. 8848 */ 8849 8850 }, { 8851 key: "disabled", 8852 get: function get() { 8853 return this.foundation_.isDisabled(); 8854 } 8855 /** 8856 * @param {boolean} disabled Sets the Text Field disabled or enabled. 8857 */ 8858 , 8859 set: function set(disabled) { 8860 this.foundation_.setDisabled(disabled); 8861 } 8862 /** 8863 * @return {boolean} valid True if the Text Field is valid. 8864 */ 8865 8866 }, { 8867 key: "valid", 8868 get: function get() { 8869 return this.foundation_.isValid(); 8870 } 8871 /** 8872 * @param {boolean} valid Sets the Text Field valid or invalid. 8873 */ 8874 , 8875 set: function set(valid) { 8876 this.foundation_.setValid(valid); 8877 } 8878 /** 8879 * @return {boolean} True if the Text Field is required. 8880 */ 8881 8882 }, { 8883 key: "required", 8884 get: function get() { 8885 return this.input_.required; 8886 } 8887 /** 8888 * @param {boolean} required Sets the Text Field to required. 8889 */ 8890 , 8891 set: function set(required) { 8892 this.input_.required = required; 8893 } 8894 /** 8895 * @return {string} The input element's validation pattern. 8896 */ 8897 8898 }, { 8899 key: "pattern", 8900 get: function get() { 8901 return this.input_.pattern; 8902 } 8903 /** 8904 * @param {string} pattern Sets the input element's validation pattern. 8905 */ 8906 , 8907 set: function set(pattern) { 8908 this.input_.pattern = pattern; 8909 } 8910 /** 8911 * @return {number} The input element's minLength. 8912 */ 8913 8914 }, { 8915 key: "minLength", 8916 get: function get() { 8917 return this.input_.minLength; 8918 } 8919 /** 8920 * @param {number} minLength Sets the input element's minLength. 8921 */ 8922 , 8923 set: function set(minLength) { 8924 this.input_.minLength = minLength; 8925 } 8926 /** 8927 * @return {number} The input element's maxLength. 8928 */ 8929 8930 }, { 8931 key: "maxLength", 8932 get: function get() { 8933 return this.input_.maxLength; 8934 } 8935 /** 8936 * @param {number} maxLength Sets the input element's maxLength. 8937 */ 8938 , 8939 set: function set(maxLength) { 8940 // Chrome throws exception if maxLength is set < 0 8941 if (maxLength < 0) { 8942 this.input_.removeAttribute('maxLength'); 8943 } else { 8944 this.input_.maxLength = maxLength; 8945 } 8946 } 8947 /** 8948 * @return {string} The input element's min. 8949 */ 8950 8951 }, { 8952 key: "min", 8953 get: function get() { 8954 return this.input_.min; 8955 } 8956 /** 8957 * @param {string} min Sets the input element's min. 8958 */ 8959 , 8960 set: function set(min) { 8961 this.input_.min = min; 8962 } 8963 /** 8964 * @return {string} The input element's max. 8965 */ 8966 8967 }, { 8968 key: "max", 8969 get: function get() { 8970 return this.input_.max; 8971 } 8972 /** 8973 * @param {string} max Sets the input element's max. 8974 */ 8975 , 8976 set: function set(max) { 8977 this.input_.max = max; 8978 } 8979 /** 8980 * @return {string} The input element's step. 8981 */ 8982 8983 }, { 8984 key: "step", 8985 get: function get() { 8986 return this.input_.step; 8987 } 8988 /** 8989 * @param {string} step Sets the input element's step. 8990 */ 8991 , 8992 set: function set(step) { 8993 this.input_.step = step; 8994 } 8995 /** 8996 * Sets the helper text element content. 8997 * @param {string} content 8998 */ 8999 9000 }, { 9001 key: "helperTextContent", 9002 set: function set(content) { 9003 this.foundation_.setHelperTextContent(content); 9004 } 9005 /** 9006 * Sets the aria label of the icon. 9007 * @param {string} label 9008 */ 9009 9010 }, { 9011 key: "iconAriaLabel", 9012 set: function set(label) { 9013 this.foundation_.setIconAriaLabel(label); 9014 } 9015 /** 9016 * Sets the text content of the icon. 9017 * @param {string} content 9018 */ 9019 9020 }, { 9021 key: "iconContent", 9022 set: function set(content) { 9023 this.foundation_.setIconContent(content); 9024 } 9025 }], [{ 9026 key: "attachTo", 9027 value: function attachTo(root) { 9028 return new MDCTextField(root); 9029 } 9030 }]); 9031 9032 return MDCTextField; 9033 }(_material_base_component__WEBPACK_IMPORTED_MODULE_0__["default"]); 9034 9035 9036 9037 /***/ }), 9038 9039 /***/ "./node_modules/es6-promise/dist/es6-promise.js": 9040 /*!******************************************************!*\ 9041 !*** ./node_modules/es6-promise/dist/es6-promise.js ***! 9042 \******************************************************/ 9043 /*! no static exports found */ 9044 /***/ (function(module, exports, __webpack_require__) { 9045 9046 /* WEBPACK VAR INJECTION */(function(process, global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9047 9048 /*! 9049 * @overview es6-promise - a tiny implementation of Promises/A+. 9050 * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) 9051 * @license Licensed under MIT license 9052 * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE 9053 * @version v4.2.6+9869a4bc 9054 */ 9055 (function (global, factory) { 9056 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9057 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9058 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 9059 __WEBPACK_AMD_DEFINE_FACTORY__), 9060 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9061 })(this, function () { 9062 'use strict'; 9063 9064 function objectOrFunction(x) { 9065 var type = _typeof(x); 9066 9067 return x !== null && (type === 'object' || type === 'function'); 9068 } 9069 9070 function isFunction(x) { 9071 return typeof x === 'function'; 9072 } 9073 9074 var _isArray = void 0; 9075 9076 if (Array.isArray) { 9077 _isArray = Array.isArray; 9078 } else { 9079 _isArray = function _isArray(x) { 9080 return Object.prototype.toString.call(x) === '[object Array]'; 9081 }; 9082 } 9083 9084 var isArray = _isArray; 9085 var len = 0; 9086 var vertxNext = void 0; 9087 var customSchedulerFn = void 0; 9088 9089 var asap = function asap(callback, arg) { 9090 queue[len] = callback; 9091 queue[len + 1] = arg; 9092 len += 2; 9093 9094 if (len === 2) { 9095 // If len is 2, that means that we need to schedule an async flush. 9096 // If additional callbacks are queued before the queue is flushed, they 9097 // will be processed by this flush that we are scheduling. 9098 if (customSchedulerFn) { 9099 customSchedulerFn(flush); 9100 } else { 9101 scheduleFlush(); 9102 } 9103 } 9104 }; 9105 9106 function setScheduler(scheduleFn) { 9107 customSchedulerFn = scheduleFn; 9108 } 9109 9110 function setAsap(asapFn) { 9111 asap = asapFn; 9112 } 9113 9114 var browserWindow = typeof window !== 'undefined' ? window : undefined; 9115 var browserGlobal = browserWindow || {}; 9116 var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; 9117 var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]'; // test for web worker but not in IE10 9118 9119 var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; // node 9120 9121 function useNextTick() { 9122 // node version 0.10.x displays a deprecation warning when nextTick is used recursively 9123 // see https://github.com/cujojs/when/issues/410 for details 9124 return function () { 9125 return process.nextTick(flush); 9126 }; 9127 } // vertx 9128 9129 9130 function useVertxTimer() { 9131 if (typeof vertxNext !== 'undefined') { 9132 return function () { 9133 vertxNext(flush); 9134 }; 9135 } 9136 9137 return useSetTimeout(); 9138 } 9139 9140 function useMutationObserver() { 9141 var iterations = 0; 9142 var observer = new BrowserMutationObserver(flush); 9143 var node = document.createTextNode(''); 9144 observer.observe(node, { 9145 characterData: true 9146 }); 9147 return function () { 9148 node.data = iterations = ++iterations % 2; 9149 }; 9150 } // web worker 9151 9152 9153 function useMessageChannel() { 9154 var channel = new MessageChannel(); 9155 channel.port1.onmessage = flush; 9156 return function () { 9157 return channel.port2.postMessage(0); 9158 }; 9159 } 9160 9161 function useSetTimeout() { 9162 // Store setTimeout reference so es6-promise will be unaffected by 9163 // other code modifying setTimeout (like sinon.useFakeTimers()) 9164 var globalSetTimeout = setTimeout; 9165 return function () { 9166 return globalSetTimeout(flush, 1); 9167 }; 9168 } 9169 9170 var queue = new Array(1000); 9171 9172 function flush() { 9173 for (var i = 0; i < len; i += 2) { 9174 var callback = queue[i]; 9175 var arg = queue[i + 1]; 9176 callback(arg); 9177 queue[i] = undefined; 9178 queue[i + 1] = undefined; 9179 } 9180 9181 len = 0; 9182 } 9183 9184 function attemptVertx() { 9185 try { 9186 var vertx = Function('return this')().require('vertx'); 9187 9188 vertxNext = vertx.runOnLoop || vertx.runOnContext; 9189 return useVertxTimer(); 9190 } catch (e) { 9191 return useSetTimeout(); 9192 } 9193 } 9194 9195 var scheduleFlush = void 0; // Decide what async method to use to triggering processing of queued callbacks: 9196 9197 if (isNode) { 9198 scheduleFlush = useNextTick(); 9199 } else if (BrowserMutationObserver) { 9200 scheduleFlush = useMutationObserver(); 9201 } else if (isWorker) { 9202 scheduleFlush = useMessageChannel(); 9203 } else if (browserWindow === undefined && "function" === 'function') { 9204 scheduleFlush = attemptVertx(); 9205 } else { 9206 scheduleFlush = useSetTimeout(); 9207 } 9208 9209 function then(onFulfillment, onRejection) { 9210 var parent = this; 9211 var child = new this.constructor(noop); 9212 9213 if (child[PROMISE_ID] === undefined) { 9214 makePromise(child); 9215 } 9216 9217 var _state = parent._state; 9218 9219 if (_state) { 9220 var callback = arguments[_state - 1]; 9221 asap(function () { 9222 return invokeCallback(_state, child, callback, parent._result); 9223 }); 9224 } else { 9225 subscribe(parent, child, onFulfillment, onRejection); 9226 } 9227 9228 return child; 9229 } 9230 /** 9231 `Promise.resolve` returns a promise that will become resolved with the 9232 passed `value`. It is shorthand for the following: 9233 9234 ```javascript 9235 let promise = new Promise(function(resolve, reject){ 9236 resolve(1); 9237 }); 9238 9239 promise.then(function(value){ 9240 // value === 1 9241 }); 9242 ``` 9243 9244 Instead of writing the above, your code now simply becomes the following: 9245 9246 ```javascript 9247 let promise = Promise.resolve(1); 9248 9249 promise.then(function(value){ 9250 // value === 1 9251 }); 9252 ``` 9253 9254 @method resolve 9255 @static 9256 @param {Any} value value that the returned promise will be resolved with 9257 Useful for tooling. 9258 @return {Promise} a promise that will become fulfilled with the given 9259 `value` 9260 */ 9261 9262 9263 function resolve$1(object) { 9264 /*jshint validthis:true */ 9265 var Constructor = this; 9266 9267 if (object && _typeof(object) === 'object' && object.constructor === Constructor) { 9268 return object; 9269 } 9270 9271 var promise = new Constructor(noop); 9272 resolve(promise, object); 9273 return promise; 9274 } 9275 9276 var PROMISE_ID = Math.random().toString(36).substring(2); 9277 9278 function noop() {} 9279 9280 var PENDING = void 0; 9281 var FULFILLED = 1; 9282 var REJECTED = 2; 9283 var TRY_CATCH_ERROR = { 9284 error: null 9285 }; 9286 9287 function selfFulfillment() { 9288 return new TypeError("You cannot resolve a promise with itself"); 9289 } 9290 9291 function cannotReturnOwn() { 9292 return new TypeError('A promises callback cannot return that same promise.'); 9293 } 9294 9295 function getThen(promise) { 9296 try { 9297 return promise.then; 9298 } catch (error) { 9299 TRY_CATCH_ERROR.error = error; 9300 return TRY_CATCH_ERROR; 9301 } 9302 } 9303 9304 function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) { 9305 try { 9306 then$$1.call(value, fulfillmentHandler, rejectionHandler); 9307 } catch (e) { 9308 return e; 9309 } 9310 } 9311 9312 function handleForeignThenable(promise, thenable, then$$1) { 9313 asap(function (promise) { 9314 var sealed = false; 9315 var error = tryThen(then$$1, thenable, function (value) { 9316 if (sealed) { 9317 return; 9318 } 9319 9320 sealed = true; 9321 9322 if (thenable !== value) { 9323 resolve(promise, value); 9324 } else { 9325 fulfill(promise, value); 9326 } 9327 }, function (reason) { 9328 if (sealed) { 9329 return; 9330 } 9331 9332 sealed = true; 9333 reject(promise, reason); 9334 }, 'Settle: ' + (promise._label || ' unknown promise')); 9335 9336 if (!sealed && error) { 9337 sealed = true; 9338 reject(promise, error); 9339 } 9340 }, promise); 9341 } 9342 9343 function handleOwnThenable(promise, thenable) { 9344 if (thenable._state === FULFILLED) { 9345 fulfill(promise, thenable._result); 9346 } else if (thenable._state === REJECTED) { 9347 reject(promise, thenable._result); 9348 } else { 9349 subscribe(thenable, undefined, function (value) { 9350 return resolve(promise, value); 9351 }, function (reason) { 9352 return reject(promise, reason); 9353 }); 9354 } 9355 } 9356 9357 function handleMaybeThenable(promise, maybeThenable, then$$1) { 9358 if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) { 9359 handleOwnThenable(promise, maybeThenable); 9360 } else { 9361 if (then$$1 === TRY_CATCH_ERROR) { 9362 reject(promise, TRY_CATCH_ERROR.error); 9363 TRY_CATCH_ERROR.error = null; 9364 } else if (then$$1 === undefined) { 9365 fulfill(promise, maybeThenable); 9366 } else if (isFunction(then$$1)) { 9367 handleForeignThenable(promise, maybeThenable, then$$1); 9368 } else { 9369 fulfill(promise, maybeThenable); 9370 } 9371 } 9372 } 9373 9374 function resolve(promise, value) { 9375 if (promise === value) { 9376 reject(promise, selfFulfillment()); 9377 } else if (objectOrFunction(value)) { 9378 handleMaybeThenable(promise, value, getThen(value)); 9379 } else { 9380 fulfill(promise, value); 9381 } 9382 } 9383 9384 function publishRejection(promise) { 9385 if (promise._onerror) { 9386 promise._onerror(promise._result); 9387 } 9388 9389 publish(promise); 9390 } 9391 9392 function fulfill(promise, value) { 9393 if (promise._state !== PENDING) { 9394 return; 9395 } 9396 9397 promise._result = value; 9398 promise._state = FULFILLED; 9399 9400 if (promise._subscribers.length !== 0) { 9401 asap(publish, promise); 9402 } 9403 } 9404 9405 function reject(promise, reason) { 9406 if (promise._state !== PENDING) { 9407 return; 9408 } 9409 9410 promise._state = REJECTED; 9411 promise._result = reason; 9412 asap(publishRejection, promise); 9413 } 9414 9415 function subscribe(parent, child, onFulfillment, onRejection) { 9416 var _subscribers = parent._subscribers; 9417 var length = _subscribers.length; 9418 parent._onerror = null; 9419 _subscribers[length] = child; 9420 _subscribers[length + FULFILLED] = onFulfillment; 9421 _subscribers[length + REJECTED] = onRejection; 9422 9423 if (length === 0 && parent._state) { 9424 asap(publish, parent); 9425 } 9426 } 9427 9428 function publish(promise) { 9429 var subscribers = promise._subscribers; 9430 var settled = promise._state; 9431 9432 if (subscribers.length === 0) { 9433 return; 9434 } 9435 9436 var child = void 0, 9437 callback = void 0, 9438 detail = promise._result; 9439 9440 for (var i = 0; i < subscribers.length; i += 3) { 9441 child = subscribers[i]; 9442 callback = subscribers[i + settled]; 9443 9444 if (child) { 9445 invokeCallback(settled, child, callback, detail); 9446 } else { 9447 callback(detail); 9448 } 9449 } 9450 9451 promise._subscribers.length = 0; 9452 } 9453 9454 function tryCatch(callback, detail) { 9455 try { 9456 return callback(detail); 9457 } catch (e) { 9458 TRY_CATCH_ERROR.error = e; 9459 return TRY_CATCH_ERROR; 9460 } 9461 } 9462 9463 function invokeCallback(settled, promise, callback, detail) { 9464 var hasCallback = isFunction(callback), 9465 value = void 0, 9466 error = void 0, 9467 succeeded = void 0, 9468 failed = void 0; 9469 9470 if (hasCallback) { 9471 value = tryCatch(callback, detail); 9472 9473 if (value === TRY_CATCH_ERROR) { 9474 failed = true; 9475 error = value.error; 9476 value.error = null; 9477 } else { 9478 succeeded = true; 9479 } 9480 9481 if (promise === value) { 9482 reject(promise, cannotReturnOwn()); 9483 return; 9484 } 9485 } else { 9486 value = detail; 9487 succeeded = true; 9488 } 9489 9490 if (promise._state !== PENDING) {// noop 9491 } else if (hasCallback && succeeded) { 9492 resolve(promise, value); 9493 } else if (failed) { 9494 reject(promise, error); 9495 } else if (settled === FULFILLED) { 9496 fulfill(promise, value); 9497 } else if (settled === REJECTED) { 9498 reject(promise, value); 9499 } 9500 } 9501 9502 function initializePromise(promise, resolver) { 9503 try { 9504 resolver(function resolvePromise(value) { 9505 resolve(promise, value); 9506 }, function rejectPromise(reason) { 9507 reject(promise, reason); 9508 }); 9509 } catch (e) { 9510 reject(promise, e); 9511 } 9512 } 9513 9514 var id = 0; 9515 9516 function nextId() { 9517 return id++; 9518 } 9519 9520 function makePromise(promise) { 9521 promise[PROMISE_ID] = id++; 9522 promise._state = undefined; 9523 promise._result = undefined; 9524 promise._subscribers = []; 9525 } 9526 9527 function validationError() { 9528 return new Error('Array Methods must be provided an Array'); 9529 } 9530 9531 var Enumerator = function () { 9532 function Enumerator(Constructor, input) { 9533 this._instanceConstructor = Constructor; 9534 this.promise = new Constructor(noop); 9535 9536 if (!this.promise[PROMISE_ID]) { 9537 makePromise(this.promise); 9538 } 9539 9540 if (isArray(input)) { 9541 this.length = input.length; 9542 this._remaining = input.length; 9543 this._result = new Array(this.length); 9544 9545 if (this.length === 0) { 9546 fulfill(this.promise, this._result); 9547 } else { 9548 this.length = this.length || 0; 9549 9550 this._enumerate(input); 9551 9552 if (this._remaining === 0) { 9553 fulfill(this.promise, this._result); 9554 } 9555 } 9556 } else { 9557 reject(this.promise, validationError()); 9558 } 9559 } 9560 9561 Enumerator.prototype._enumerate = function _enumerate(input) { 9562 for (var i = 0; this._state === PENDING && i < input.length; i++) { 9563 this._eachEntry(input[i], i); 9564 } 9565 }; 9566 9567 Enumerator.prototype._eachEntry = function _eachEntry(entry, i) { 9568 var c = this._instanceConstructor; 9569 var resolve$$1 = c.resolve; 9570 9571 if (resolve$$1 === resolve$1) { 9572 var _then = getThen(entry); 9573 9574 if (_then === then && entry._state !== PENDING) { 9575 this._settledAt(entry._state, i, entry._result); 9576 } else if (typeof _then !== 'function') { 9577 this._remaining--; 9578 this._result[i] = entry; 9579 } else if (c === Promise$1) { 9580 var promise = new c(noop); 9581 handleMaybeThenable(promise, entry, _then); 9582 9583 this._willSettleAt(promise, i); 9584 } else { 9585 this._willSettleAt(new c(function (resolve$$1) { 9586 return resolve$$1(entry); 9587 }), i); 9588 } 9589 } else { 9590 this._willSettleAt(resolve$$1(entry), i); 9591 } 9592 }; 9593 9594 Enumerator.prototype._settledAt = function _settledAt(state, i, value) { 9595 var promise = this.promise; 9596 9597 if (promise._state === PENDING) { 9598 this._remaining--; 9599 9600 if (state === REJECTED) { 9601 reject(promise, value); 9602 } else { 9603 this._result[i] = value; 9604 } 9605 } 9606 9607 if (this._remaining === 0) { 9608 fulfill(promise, this._result); 9609 } 9610 }; 9611 9612 Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) { 9613 var enumerator = this; 9614 subscribe(promise, undefined, function (value) { 9615 return enumerator._settledAt(FULFILLED, i, value); 9616 }, function (reason) { 9617 return enumerator._settledAt(REJECTED, i, reason); 9618 }); 9619 }; 9620 9621 return Enumerator; 9622 }(); 9623 /** 9624 `Promise.all` accepts an array of promises, and returns a new promise which 9625 is fulfilled with an array of fulfillment values for the passed promises, or 9626 rejected with the reason of the first passed promise to be rejected. It casts all 9627 elements of the passed iterable to promises as it runs this algorithm. 9628 9629 Example: 9630 9631 ```javascript 9632 let promise1 = resolve(1); 9633 let promise2 = resolve(2); 9634 let promise3 = resolve(3); 9635 let promises = [ promise1, promise2, promise3 ]; 9636 9637 Promise.all(promises).then(function(array){ 9638 // The array here would be [ 1, 2, 3 ]; 9639 }); 9640 ``` 9641 9642 If any of the `promises` given to `all` are rejected, the first promise 9643 that is rejected will be given as an argument to the returned promises's 9644 rejection handler. For example: 9645 9646 Example: 9647 9648 ```javascript 9649 let promise1 = resolve(1); 9650 let promise2 = reject(new Error("2")); 9651 let promise3 = reject(new Error("3")); 9652 let promises = [ promise1, promise2, promise3 ]; 9653 9654 Promise.all(promises).then(function(array){ 9655 // Code here never runs because there are rejected promises! 9656 }, function(error) { 9657 // error.message === "2" 9658 }); 9659 ``` 9660 9661 @method all 9662 @static 9663 @param {Array} entries array of promises 9664 @param {String} label optional string for labeling the promise. 9665 Useful for tooling. 9666 @return {Promise} promise that is fulfilled when all `promises` have been 9667 fulfilled, or rejected if any of them become rejected. 9668 @static 9669 */ 9670 9671 9672 function all(entries) { 9673 return new Enumerator(this, entries).promise; 9674 } 9675 /** 9676 `Promise.race` returns a new promise which is settled in the same way as the 9677 first passed promise to settle. 9678 9679 Example: 9680 9681 ```javascript 9682 let promise1 = new Promise(function(resolve, reject){ 9683 setTimeout(function(){ 9684 resolve('promise 1'); 9685 }, 200); 9686 }); 9687 9688 let promise2 = new Promise(function(resolve, reject){ 9689 setTimeout(function(){ 9690 resolve('promise 2'); 9691 }, 100); 9692 }); 9693 9694 Promise.race([promise1, promise2]).then(function(result){ 9695 // result === 'promise 2' because it was resolved before promise1 9696 // was resolved. 9697 }); 9698 ``` 9699 9700 `Promise.race` is deterministic in that only the state of the first 9701 settled promise matters. For example, even if other promises given to the 9702 `promises` array argument are resolved, but the first settled promise has 9703 become rejected before the other promises became fulfilled, the returned 9704 promise will become rejected: 9705 9706 ```javascript 9707 let promise1 = new Promise(function(resolve, reject){ 9708 setTimeout(function(){ 9709 resolve('promise 1'); 9710 }, 200); 9711 }); 9712 9713 let promise2 = new Promise(function(resolve, reject){ 9714 setTimeout(function(){ 9715 reject(new Error('promise 2')); 9716 }, 100); 9717 }); 9718 9719 Promise.race([promise1, promise2]).then(function(result){ 9720 // Code here never runs 9721 }, function(reason){ 9722 // reason.message === 'promise 2' because promise 2 became rejected before 9723 // promise 1 became fulfilled 9724 }); 9725 ``` 9726 9727 An example real-world use case is implementing timeouts: 9728 9729 ```javascript 9730 Promise.race([ajax('foo.json'), timeout(5000)]) 9731 ``` 9732 9733 @method race 9734 @static 9735 @param {Array} promises array of promises to observe 9736 Useful for tooling. 9737 @return {Promise} a promise which settles in the same way as the first passed 9738 promise to settle. 9739 */ 9740 9741 9742 function race(entries) { 9743 /*jshint validthis:true */ 9744 var Constructor = this; 9745 9746 if (!isArray(entries)) { 9747 return new Constructor(function (_, reject) { 9748 return reject(new TypeError('You must pass an array to race.')); 9749 }); 9750 } else { 9751 return new Constructor(function (resolve, reject) { 9752 var length = entries.length; 9753 9754 for (var i = 0; i < length; i++) { 9755 Constructor.resolve(entries[i]).then(resolve, reject); 9756 } 9757 }); 9758 } 9759 } 9760 /** 9761 `Promise.reject` returns a promise rejected with the passed `reason`. 9762 It is shorthand for the following: 9763 9764 ```javascript 9765 let promise = new Promise(function(resolve, reject){ 9766 reject(new Error('WHOOPS')); 9767 }); 9768 9769 promise.then(function(value){ 9770 // Code here doesn't run because the promise is rejected! 9771 }, function(reason){ 9772 // reason.message === 'WHOOPS' 9773 }); 9774 ``` 9775 9776 Instead of writing the above, your code now simply becomes the following: 9777 9778 ```javascript 9779 let promise = Promise.reject(new Error('WHOOPS')); 9780 9781 promise.then(function(value){ 9782 // Code here doesn't run because the promise is rejected! 9783 }, function(reason){ 9784 // reason.message === 'WHOOPS' 9785 }); 9786 ``` 9787 9788 @method reject 9789 @static 9790 @param {Any} reason value that the returned promise will be rejected with. 9791 Useful for tooling. 9792 @return {Promise} a promise rejected with the given `reason`. 9793 */ 9794 9795 9796 function reject$1(reason) { 9797 /*jshint validthis:true */ 9798 var Constructor = this; 9799 var promise = new Constructor(noop); 9800 reject(promise, reason); 9801 return promise; 9802 } 9803 9804 function needsResolver() { 9805 throw new TypeError('You must pass a resolver function as the first argument to the promise constructor'); 9806 } 9807 9808 function needsNew() { 9809 throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); 9810 } 9811 /** 9812 Promise objects represent the eventual result of an asynchronous operation. The 9813 primary way of interacting with a promise is through its `then` method, which 9814 registers callbacks to receive either a promise's eventual value or the reason 9815 why the promise cannot be fulfilled. 9816 9817 Terminology 9818 ----------- 9819 9820 - `promise` is an object or function with a `then` method whose behavior conforms to this specification. 9821 - `thenable` is an object or function that defines a `then` method. 9822 - `value` is any legal JavaScript value (including undefined, a thenable, or a promise). 9823 - `exception` is a value that is thrown using the throw statement. 9824 - `reason` is a value that indicates why a promise was rejected. 9825 - `settled` the final resting state of a promise, fulfilled or rejected. 9826 9827 A promise can be in one of three states: pending, fulfilled, or rejected. 9828 9829 Promises that are fulfilled have a fulfillment value and are in the fulfilled 9830 state. Promises that are rejected have a rejection reason and are in the 9831 rejected state. A fulfillment value is never a thenable. 9832 9833 Promises can also be said to *resolve* a value. If this value is also a 9834 promise, then the original promise's settled state will match the value's 9835 settled state. So a promise that *resolves* a promise that rejects will 9836 itself reject, and a promise that *resolves* a promise that fulfills will 9837 itself fulfill. 9838 9839 9840 Basic Usage: 9841 ------------ 9842 9843 ```js 9844 let promise = new Promise(function(resolve, reject) { 9845 // on success 9846 resolve(value); 9847 9848 // on failure 9849 reject(reason); 9850 }); 9851 9852 promise.then(function(value) { 9853 // on fulfillment 9854 }, function(reason) { 9855 // on rejection 9856 }); 9857 ``` 9858 9859 Advanced Usage: 9860 --------------- 9861 9862 Promises shine when abstracting away asynchronous interactions such as 9863 `XMLHttpRequest`s. 9864 9865 ```js 9866 function getJSON(url) { 9867 return new Promise(function(resolve, reject){ 9868 let xhr = new XMLHttpRequest(); 9869 9870 xhr.open('GET', url); 9871 xhr.onreadystatechange = handler; 9872 xhr.responseType = 'json'; 9873 xhr.setRequestHeader('Accept', 'application/json'); 9874 xhr.send(); 9875 9876 function handler() { 9877 if (this.readyState === this.DONE) { 9878 if (this.status === 200) { 9879 resolve(this.response); 9880 } else { 9881 reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']')); 9882 } 9883 } 9884 }; 9885 }); 9886 } 9887 9888 getJSON('/posts.json').then(function(json) { 9889 // on fulfillment 9890 }, function(reason) { 9891 // on rejection 9892 }); 9893 ``` 9894 9895 Unlike callbacks, promises are great composable primitives. 9896 9897 ```js 9898 Promise.all([ 9899 getJSON('/posts'), 9900 getJSON('/comments') 9901 ]).then(function(values){ 9902 values[0] // => postsJSON 9903 values[1] // => commentsJSON 9904 9905 return values; 9906 }); 9907 ``` 9908 9909 @class Promise 9910 @param {Function} resolver 9911 Useful for tooling. 9912 @constructor 9913 */ 9914 9915 9916 var Promise$1 = function () { 9917 function Promise(resolver) { 9918 this[PROMISE_ID] = nextId(); 9919 this._result = this._state = undefined; 9920 this._subscribers = []; 9921 9922 if (noop !== resolver) { 9923 typeof resolver !== 'function' && needsResolver(); 9924 this instanceof Promise ? initializePromise(this, resolver) : needsNew(); 9925 } 9926 } 9927 /** 9928 The primary way of interacting with a promise is through its `then` method, 9929 which registers callbacks to receive either a promise's eventual value or the 9930 reason why the promise cannot be fulfilled. 9931 ```js 9932 findUser().then(function(user){ 9933 // user is available 9934 }, function(reason){ 9935 // user is unavailable, and you are given the reason why 9936 }); 9937 ``` 9938 Chaining 9939 -------- 9940 The return value of `then` is itself a promise. This second, 'downstream' 9941 promise is resolved with the return value of the first promise's fulfillment 9942 or rejection handler, or rejected if the handler throws an exception. 9943 ```js 9944 findUser().then(function (user) { 9945 return user.name; 9946 }, function (reason) { 9947 return 'default name'; 9948 }).then(function (userName) { 9949 // If `findUser` fulfilled, `userName` will be the user's name, otherwise it 9950 // will be `'default name'` 9951 }); 9952 findUser().then(function (user) { 9953 throw new Error('Found user, but still unhappy'); 9954 }, function (reason) { 9955 throw new Error('`findUser` rejected and we're unhappy'); 9956 }).then(function (value) { 9957 // never reached 9958 }, function (reason) { 9959 // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'. 9960 // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'. 9961 }); 9962 ``` 9963 If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream. 9964 ```js 9965 findUser().then(function (user) { 9966 throw new PedagogicalException('Upstream error'); 9967 }).then(function (value) { 9968 // never reached 9969 }).then(function (value) { 9970 // never reached 9971 }, function (reason) { 9972 // The `PedgagocialException` is propagated all the way down to here 9973 }); 9974 ``` 9975 Assimilation 9976 ------------ 9977 Sometimes the value you want to propagate to a downstream promise can only be 9978 retrieved asynchronously. This can be achieved by returning a promise in the 9979 fulfillment or rejection handler. The downstream promise will then be pending 9980 until the returned promise is settled. This is called *assimilation*. 9981 ```js 9982 findUser().then(function (user) { 9983 return findCommentsByAuthor(user); 9984 }).then(function (comments) { 9985 // The user's comments are now available 9986 }); 9987 ``` 9988 If the assimliated promise rejects, then the downstream promise will also reject. 9989 ```js 9990 findUser().then(function (user) { 9991 return findCommentsByAuthor(user); 9992 }).then(function (comments) { 9993 // If `findCommentsByAuthor` fulfills, we'll have the value here 9994 }, function (reason) { 9995 // If `findCommentsByAuthor` rejects, we'll have the reason here 9996 }); 9997 ``` 9998 Simple Example 9999 -------------- 10000 Synchronous Example 10001 ```javascript 10002 let result; 10003 try { 10004 result = findResult(); 10005 // success 10006 } catch(reason) { 10007 // failure 10008 } 10009 ``` 10010 Errback Example 10011 ```js 10012 findResult(function(result, err){ 10013 if (err) { 10014 // failure 10015 } else { 10016 // success 10017 } 10018 }); 10019 ``` 10020 Promise Example; 10021 ```javascript 10022 findResult().then(function(result){ 10023 // success 10024 }, function(reason){ 10025 // failure 10026 }); 10027 ``` 10028 Advanced Example 10029 -------------- 10030 Synchronous Example 10031 ```javascript 10032 let author, books; 10033 try { 10034 author = findAuthor(); 10035 books = findBooksByAuthor(author); 10036 // success 10037 } catch(reason) { 10038 // failure 10039 } 10040 ``` 10041 Errback Example 10042 ```js 10043 function foundBooks(books) { 10044 } 10045 function failure(reason) { 10046 } 10047 findAuthor(function(author, err){ 10048 if (err) { 10049 failure(err); 10050 // failure 10051 } else { 10052 try { 10053 findBoooksByAuthor(author, function(books, err) { 10054 if (err) { 10055 failure(err); 10056 } else { 10057 try { 10058 foundBooks(books); 10059 } catch(reason) { 10060 failure(reason); 10061 } 10062 } 10063 }); 10064 } catch(error) { 10065 failure(err); 10066 } 10067 // success 10068 } 10069 }); 10070 ``` 10071 Promise Example; 10072 ```javascript 10073 findAuthor(). 10074 then(findBooksByAuthor). 10075 then(function(books){ 10076 // found books 10077 }).catch(function(reason){ 10078 // something went wrong 10079 }); 10080 ``` 10081 @method then 10082 @param {Function} onFulfilled 10083 @param {Function} onRejected 10084 Useful for tooling. 10085 @return {Promise} 10086 */ 10087 10088 /** 10089 `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same 10090 as the catch block of a try/catch statement. 10091 ```js 10092 function findAuthor(){ 10093 throw new Error('couldn't find that author'); 10094 } 10095 // synchronous 10096 try { 10097 findAuthor(); 10098 } catch(reason) { 10099 // something went wrong 10100 } 10101 // async with promises 10102 findAuthor().catch(function(reason){ 10103 // something went wrong 10104 }); 10105 ``` 10106 @method catch 10107 @param {Function} onRejection 10108 Useful for tooling. 10109 @return {Promise} 10110 */ 10111 10112 10113 Promise.prototype.catch = function _catch(onRejection) { 10114 return this.then(null, onRejection); 10115 }; 10116 /** 10117 `finally` will be invoked regardless of the promise's fate just as native 10118 try/catch/finally behaves 10119 10120 Synchronous example: 10121 10122 ```js 10123 findAuthor() { 10124 if (Math.random() > 0.5) { 10125 throw new Error(); 10126 } 10127 return new Author(); 10128 } 10129 10130 try { 10131 return findAuthor(); // succeed or fail 10132 } catch(error) { 10133 return findOtherAuther(); 10134 } finally { 10135 // always runs 10136 // doesn't affect the return value 10137 } 10138 ``` 10139 10140 Asynchronous example: 10141 10142 ```js 10143 findAuthor().catch(function(reason){ 10144 return findOtherAuther(); 10145 }).finally(function(){ 10146 // author was either found, or not 10147 }); 10148 ``` 10149 10150 @method finally 10151 @param {Function} callback 10152 @return {Promise} 10153 */ 10154 10155 10156 Promise.prototype.finally = function _finally(callback) { 10157 var promise = this; 10158 var constructor = promise.constructor; 10159 10160 if (isFunction(callback)) { 10161 return promise.then(function (value) { 10162 return constructor.resolve(callback()).then(function () { 10163 return value; 10164 }); 10165 }, function (reason) { 10166 return constructor.resolve(callback()).then(function () { 10167 throw reason; 10168 }); 10169 }); 10170 } 10171 10172 return promise.then(callback, callback); 10173 }; 10174 10175 return Promise; 10176 }(); 10177 10178 Promise$1.prototype.then = then; 10179 Promise$1.all = all; 10180 Promise$1.race = race; 10181 Promise$1.resolve = resolve$1; 10182 Promise$1.reject = reject$1; 10183 Promise$1._setScheduler = setScheduler; 10184 Promise$1._setAsap = setAsap; 10185 Promise$1._asap = asap; 10186 /*global self*/ 10187 10188 function polyfill() { 10189 var local = void 0; 10190 10191 if (typeof global !== 'undefined') { 10192 local = global; 10193 } else if (typeof self !== 'undefined') { 10194 local = self; 10195 } else { 10196 try { 10197 local = Function('return this')(); 10198 } catch (e) { 10199 throw new Error('polyfill failed because global object is unavailable in this environment'); 10200 } 10201 } 10202 10203 var P = local.Promise; 10204 10205 if (P) { 10206 var promiseToString = null; 10207 10208 try { 10209 promiseToString = Object.prototype.toString.call(P.resolve()); 10210 } catch (e) {// silently ignored 10211 } 10212 10213 if (promiseToString === '[object Promise]' && !P.cast) { 10214 return; 10215 } 10216 } 10217 10218 local.Promise = Promise$1; 10219 } // Strange compat.. 10220 10221 10222 Promise$1.polyfill = polyfill; 10223 Promise$1.Promise = Promise$1; 10224 return Promise$1; 10225 }); 10226 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 10227 10228 /***/ }), 10229 10230 /***/ "./node_modules/process/browser.js": 10231 /*!*****************************************!*\ 10232 !*** ./node_modules/process/browser.js ***! 10233 \*****************************************/ 10234 /*! no static exports found */ 10235 /***/ (function(module, exports) { 10236 10237 // shim for using process in browser 10238 var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it 10239 // don't break things. But we need to wrap it in a try catch in case it is 10240 // wrapped in strict mode code which doesn't define any globals. It's inside a 10241 // function because try/catches deoptimize in certain engines. 10242 10243 var cachedSetTimeout; 10244 var cachedClearTimeout; 10245 10246 function defaultSetTimout() { 10247 throw new Error('setTimeout has not been defined'); 10248 } 10249 10250 function defaultClearTimeout() { 10251 throw new Error('clearTimeout has not been defined'); 10252 } 10253 10254 (function () { 10255 try { 10256 if (typeof setTimeout === 'function') { 10257 cachedSetTimeout = setTimeout; 10258 } else { 10259 cachedSetTimeout = defaultSetTimout; 10260 } 10261 } catch (e) { 10262 cachedSetTimeout = defaultSetTimout; 10263 } 10264 10265 try { 10266 if (typeof clearTimeout === 'function') { 10267 cachedClearTimeout = clearTimeout; 10268 } else { 10269 cachedClearTimeout = defaultClearTimeout; 10270 } 10271 } catch (e) { 10272 cachedClearTimeout = defaultClearTimeout; 10273 } 10274 })(); 10275 10276 function runTimeout(fun) { 10277 if (cachedSetTimeout === setTimeout) { 10278 //normal enviroments in sane situations 10279 return setTimeout(fun, 0); 10280 } // if setTimeout wasn't available but was latter defined 10281 10282 10283 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { 10284 cachedSetTimeout = setTimeout; 10285 return setTimeout(fun, 0); 10286 } 10287 10288 try { 10289 // when when somebody has screwed with setTimeout but no I.E. maddness 10290 return cachedSetTimeout(fun, 0); 10291 } catch (e) { 10292 try { 10293 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 10294 return cachedSetTimeout.call(null, fun, 0); 10295 } catch (e) { 10296 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error 10297 return cachedSetTimeout.call(this, fun, 0); 10298 } 10299 } 10300 } 10301 10302 function runClearTimeout(marker) { 10303 if (cachedClearTimeout === clearTimeout) { 10304 //normal enviroments in sane situations 10305 return clearTimeout(marker); 10306 } // if clearTimeout wasn't available but was latter defined 10307 10308 10309 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { 10310 cachedClearTimeout = clearTimeout; 10311 return clearTimeout(marker); 10312 } 10313 10314 try { 10315 // when when somebody has screwed with setTimeout but no I.E. maddness 10316 return cachedClearTimeout(marker); 10317 } catch (e) { 10318 try { 10319 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 10320 return cachedClearTimeout.call(null, marker); 10321 } catch (e) { 10322 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. 10323 // Some versions of I.E. have different rules for clearTimeout vs setTimeout 10324 return cachedClearTimeout.call(this, marker); 10325 } 10326 } 10327 } 10328 10329 var queue = []; 10330 var draining = false; 10331 var currentQueue; 10332 var queueIndex = -1; 10333 10334 function cleanUpNextTick() { 10335 if (!draining || !currentQueue) { 10336 return; 10337 } 10338 10339 draining = false; 10340 10341 if (currentQueue.length) { 10342 queue = currentQueue.concat(queue); 10343 } else { 10344 queueIndex = -1; 10345 } 10346 10347 if (queue.length) { 10348 drainQueue(); 10349 } 10350 } 10351 10352 function drainQueue() { 10353 if (draining) { 10354 return; 10355 } 10356 10357 var timeout = runTimeout(cleanUpNextTick); 10358 draining = true; 10359 var len = queue.length; 10360 10361 while (len) { 10362 currentQueue = queue; 10363 queue = []; 10364 10365 while (++queueIndex < len) { 10366 if (currentQueue) { 10367 currentQueue[queueIndex].run(); 10368 } 10369 } 10370 10371 queueIndex = -1; 10372 len = queue.length; 10373 } 10374 10375 currentQueue = null; 10376 draining = false; 10377 runClearTimeout(timeout); 10378 } 10379 10380 process.nextTick = function (fun) { 10381 var args = new Array(arguments.length - 1); 10382 10383 if (arguments.length > 1) { 10384 for (var i = 1; i < arguments.length; i++) { 10385 args[i - 1] = arguments[i]; 10386 } 10387 } 10388 10389 queue.push(new Item(fun, args)); 10390 10391 if (queue.length === 1 && !draining) { 10392 runTimeout(drainQueue); 10393 } 10394 }; // v8 likes predictible objects 10395 10396 10397 function Item(fun, array) { 10398 this.fun = fun; 10399 this.array = array; 10400 } 10401 10402 Item.prototype.run = function () { 10403 this.fun.apply(null, this.array); 10404 }; 10405 10406 process.title = 'browser'; 10407 process.browser = true; 10408 process.env = {}; 10409 process.argv = []; 10410 process.version = ''; // empty string to avoid regexp issues 10411 10412 process.versions = {}; 10413 10414 function noop() {} 10415 10416 process.on = noop; 10417 process.addListener = noop; 10418 process.once = noop; 10419 process.off = noop; 10420 process.removeListener = noop; 10421 process.removeAllListeners = noop; 10422 process.emit = noop; 10423 process.prependListener = noop; 10424 process.prependOnceListener = noop; 10425 10426 process.listeners = function (name) { 10427 return []; 10428 }; 10429 10430 process.binding = function (name) { 10431 throw new Error('process.binding is not supported'); 10432 }; 10433 10434 process.cwd = function () { 10435 return '/'; 10436 }; 10437 10438 process.chdir = function (dir) { 10439 throw new Error('process.chdir is not supported'); 10440 }; 10441 10442 process.umask = function () { 10443 return 0; 10444 }; 10445 10446 /***/ }), 10447 10448 /***/ "./node_modules/webpack/buildin/global.js": 10449 /*!***********************************!*\ 10450 !*** (webpack)/buildin/global.js ***! 10451 \***********************************/ 10452 /*! no static exports found */ 10453 /***/ (function(module, exports) { 10454 10455 function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10456 10457 var g; // This works in non-strict mode 10458 10459 g = function () { 10460 return this; 10461 }(); 10462 10463 try { 10464 // This works if eval is allowed (see CSP) 10465 g = g || new Function("return this")(); 10466 } catch (e) { 10467 // This works if the window reference is available 10468 if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "object") g = window; 10469 } // g can still be undefined, but nothing to do about it... 10470 // We return undefined, instead of nothing here, so it's 10471 // easier to handle this case. if(!global) { ...} 10472 10473 10474 module.exports = g; 10475 10476 /***/ }), 10477 10478 /***/ "./scss/gutenberg-style.scss": 10479 /*!***********************************!*\ 10480 !*** ./scss/gutenberg-style.scss ***! 10481 \***********************************/ 10482 /*! no static exports found */ 10483 /***/ (function(module, exports) { 10484 10485 // removed by extract-text-webpack-plugin 10486 10487 /***/ }), 10488 10489 /***/ "./scss/material-icons.scss": 10490 /*!**********************************!*\ 10491 !*** ./scss/material-icons.scss ***! 10492 \**********************************/ 10493 /*! no static exports found */ 10494 /***/ (function(module, exports) { 10495 10496 // removed by extract-text-webpack-plugin 10497 10498 /***/ }), 10499 10500 /***/ "./scss/style.scss": 10501 /*!*************************!*\ 10502 !*** ./scss/style.scss ***! 10503 \*************************/ 10504 /*! no static exports found */ 10505 /***/ (function(module, exports) { 10506 10507 // removed by extract-text-webpack-plugin 10508 10509 /***/ }), 10510 10511 /***/ "./scss/woocommerce.scss": 10512 /*!*******************************!*\ 10513 !*** ./scss/woocommerce.scss ***! 10514 \*******************************/ 10515 /*! no static exports found */ 10516 /***/ (function(module, exports) { 10517 10518 // removed by extract-text-webpack-plugin 10519 10520 /***/ }), 10521 10522 /***/ 0: 10523 /*!****************************************************************************************************************************!*\ 10524 !*** multi ./js/theme.js ./scss/style.scss ./scss/gutenberg-style.scss ./scss/woocommerce.scss ./scss/material-icons.scss ***! 10525 \****************************************************************************************************************************/ 10526 /*! no static exports found */ 10527 /***/ (function(module, exports, __webpack_require__) { 10528 10529 __webpack_require__(/*! /var/lib/jenkins/workspace/Materialis FREE Release/build-materialis/materialis/dev/js/theme.js */"./js/theme.js"); 10530 __webpack_require__(/*! /var/lib/jenkins/workspace/Materialis FREE Release/build-materialis/materialis/dev/scss/style.scss */"./scss/style.scss"); 10531 __webpack_require__(/*! /var/lib/jenkins/workspace/Materialis FREE Release/build-materialis/materialis/dev/scss/gutenberg-style.scss */"./scss/gutenberg-style.scss"); 10532 __webpack_require__(/*! /var/lib/jenkins/workspace/Materialis FREE Release/build-materialis/materialis/dev/scss/woocommerce.scss */"./scss/woocommerce.scss"); 10533 module.exports = __webpack_require__(/*! /var/lib/jenkins/workspace/Materialis FREE Release/build-materialis/materialis/dev/scss/material-icons.scss */"./scss/material-icons.scss"); 10534 10535 10536 /***/ }) 10537 10538 /******/ }); 10539 //# sourceMappingURL=theme.js.map