text: /**
   * @license
   * Copyright Google LLC All Rights Reserved.
   *
   * Use of this source code is governed by an MIT-style license that can be
   * found in the LICENSE file at https://github.com/material-components/material-components-web/blob/master/LICENSE
   */
  (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define([], factory);
  	else if(typeof exports === 'object')
  		exports["textfield"] = factory();
  	else
  		root["mdc"] = root["mdc"] || {}, root["mdc"]["textfield"] = factory();
  })(this, function() {
  return /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId]) {
  /******/ 			return installedModules[moduleId].exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// define __esModule on exports
  /******/ 	__webpack_require__.r = function(exports) {
  /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 		}
  /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 	};
  /******/
  /******/ 	// create a fake namespace object
  /******/ 	// mode & 1: value is a module id, require it
  /******/ 	// mode & 2: merge all properties of value into the ns
  /******/ 	// mode & 4: return value when already ns object
  /******/ 	// mode & 8|1: behave like require
  /******/ 	__webpack_require__.t = function(value, mode) {
  /******/ 		if(mode & 1) value = __webpack_require__(value);
  /******/ 		if(mode & 8) return value;
  /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  /******/ 		var ns = Object.create(null);
  /******/ 		__webpack_require__.r(ns);
  /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  /******/ 		return ns;
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = "./packages/mdc-textfield/index.ts");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "./packages/mdc-base/component.ts":
  /*!****************************************!*\
    !*** ./packages/mdc-base/component.ts ***!
    \****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __read = this && this.__read || function (o, n) {
      var m = typeof Symbol === "function" && o[Symbol.iterator];
      if (!m) return o;
      var i = m.call(o),
          r,
          ar = [],
          e;
      try {
          while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
              ar.push(r.value);
          }
      } catch (error) {
          e = { error: error };
      } finally {
          try {
              if (r && !r.done && (m = i["return"])) m.call(i);
          } finally {
              if (e) throw e.error;
          }
      }
      return ar;
  };
  var __spread = this && this.__spread || function () {
      for (var ar = [], i = 0; i < arguments.length; i++) {
          ar = ar.concat(__read(arguments[i]));
      }return ar;
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-base/foundation.ts");
  var MDCComponent = /** @class */function () {
      function MDCComponent(root, foundation) {
          var args = [];
          for (var _i = 2; _i < arguments.length; _i++) {
              args[_i - 2] = arguments[_i];
          }
          this.root = root;
          this.initialize.apply(this, __spread(args));
          // Note that we initialize foundation here and not within the constructor's default param so that
          // this.root_ is defined and can be used within the foundation class.
          this.foundation = foundation === undefined ? this.getDefaultFoundation() : foundation;
          this.foundation.init();
          this.initialSyncWithDOM();
      }
      MDCComponent.attachTo = function (root) {
          // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and
          // returns an instantiated component with its root set to that element. Also note that in the cases of
          // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized
          // from getDefaultFoundation().
          return new MDCComponent(root, new foundation_1.MDCFoundation({}));
      };
      /* istanbul ignore next: method param only exists for typing purposes; it does not need to be unit tested */
      MDCComponent.prototype.initialize = function () {
          var _args = [];
          for (var _i = 0; _i < arguments.length; _i++) {
              _args[_i] = arguments[_i];
          }
          // Subclasses can override this to do any additional setup work that would be considered part of a
          // "constructor". Essentially, it is a hook into the parent constructor before the foundation is
          // initialized. Any additional arguments besides root and foundation will be passed in here.
      };
      MDCComponent.prototype.getDefaultFoundation = function () {
          // Subclasses must override this method to return a properly configured foundation class for the
          // component.
          throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class');
      };
      MDCComponent.prototype.initialSyncWithDOM = function () {
          // Subclasses should override this method if they need to perform work to synchronize with a host DOM
          // object. An example of this would be a form control wrapper that needs to synchronize its internal state
          // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM
          // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.
      };
      MDCComponent.prototype.destroy = function () {
          // Subclasses may implement this method to release any resources / deregister any listeners they have
          // attached. An example of this might be deregistering a resize event from the window object.
          this.foundation.destroy();
      };
      MDCComponent.prototype.listen = function (evtType, handler, options) {
          this.root.addEventListener(evtType, handler, options);
      };
      MDCComponent.prototype.unlisten = function (evtType, handler, options) {
          this.root.removeEventListener(evtType, handler, options);
      };
      /**
       * Fires a cross-browser-compatible custom event from the component root of the given type, with the given data.
       */
      MDCComponent.prototype.emit = function (evtType, evtData, shouldBubble) {
          if (shouldBubble === void 0) {
              shouldBubble = false;
          }
          var evt;
          if (typeof CustomEvent === 'function') {
              evt = new CustomEvent(evtType, {
                  bubbles: shouldBubble,
                  detail: evtData
              });
          } else {
              evt = document.createEvent('CustomEvent');
              evt.initCustomEvent(evtType, shouldBubble, false, evtData);
          }
          this.root.dispatchEvent(evt);
      };
      return MDCComponent;
  }();
  exports.MDCComponent = MDCComponent;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCComponent;
  
  /***/ }),
  
  /***/ "./packages/mdc-base/foundation.ts":
  /*!*****************************************!*\
    !*** ./packages/mdc-base/foundation.ts ***!
    \*****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var MDCFoundation = /** @class */function () {
      function MDCFoundation(adapter) {
          if (adapter === void 0) {
              adapter = {};
          }
          this.adapter = adapter;
      }
      Object.defineProperty(MDCFoundation, "cssClasses", {
          get: function get() {
              // Classes extending MDCFoundation should implement this method to return an object which exports every
              // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}
              return {};
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCFoundation, "strings", {
          get: function get() {
              // Classes extending MDCFoundation should implement this method to return an object which exports all
              // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}
              return {};
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCFoundation, "numbers", {
          get: function get() {
              // Classes extending MDCFoundation should implement this method to return an object which exports all
              // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}
              return {};
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCFoundation, "defaultAdapter", {
          get: function get() {
              // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient
              // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter
              // validation.
              return {};
          },
          enumerable: true,
          configurable: true
      });
      MDCFoundation.prototype.init = function () {
          // Subclasses should override this method to perform initialization routines (registering events, etc.)
      };
      MDCFoundation.prototype.destroy = function () {
          // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)
      };
      return MDCFoundation;
  }();
  exports.MDCFoundation = MDCFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-dom/events.ts":
  /*!************************************!*\
    !*** ./packages/mdc-dom/events.ts ***!
    \************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  /**
   * Determine whether the current browser supports passive event listeners, and
   * if so, use them.
   */
  function applyPassive(globalObj) {
      if (globalObj === void 0) {
          globalObj = window;
      }
      return supportsPassiveOption(globalObj) ? { passive: true } : false;
  }
  exports.applyPassive = applyPassive;
  function supportsPassiveOption(globalObj) {
      if (globalObj === void 0) {
          globalObj = window;
      }
      // See
      // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
      var passiveSupported = false;
      try {
          var options = {
              // This function will be called when the browser
              // attempts to access the passive property.
              get passive() {
                  passiveSupported = true;
                  return false;
              }
          };
          var handler = function handler() {};
          globalObj.document.addEventListener('test', handler, options);
          globalObj.document.removeEventListener('test', handler, options);
      } catch (err) {
          passiveSupported = false;
      }
      return passiveSupported;
  }
  
  /***/ }),
  
  /***/ "./packages/mdc-dom/ponyfill.ts":
  /*!**************************************!*\
    !*** ./packages/mdc-dom/ponyfill.ts ***!
    \**************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2018 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  /**
   * @fileoverview A "ponyfill" is a polyfill that doesn't modify the global prototype chain.
   * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.
   */
  function closest(element, selector) {
      if (element.closest) {
          return element.closest(selector);
      }
      var el = element;
      while (el) {
          if (matches(el, selector)) {
              return el;
          }
          el = el.parentElement;
      }
      return null;
  }
  exports.closest = closest;
  function matches(element, selector) {
      var nativeMatches = element.matches || element.webkitMatchesSelector || element.msMatchesSelector;
      return nativeMatches.call(element, selector);
  }
  exports.matches = matches;
  /**
   * Used to compute the estimated scroll width of elements. When an element is
   * hidden due to display: none; being applied to a parent element, the width is
   * returned as 0. However, the element will have a true width once no longer
   * inside a display: none context. This method computes an estimated width when
   * the element is hidden or returns the true width when the element is visble.
   * @param {Element} element the element whose width to estimate
   */
  function estimateScrollWidth(element) {
      // Check the offsetParent. If the element inherits display: none from any
      // parent, the offsetParent property will be null (see
      // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).
      // This check ensures we only clone the node when necessary.
      var htmlEl = element;
      if (htmlEl.offsetParent !== null) {
          return htmlEl.scrollWidth;
      }
      var clone = htmlEl.cloneNode(true);
      clone.style.setProperty('position', 'absolute');
      clone.style.setProperty('transform', 'translate(-9999px, -9999px)');
      document.documentElement.appendChild(clone);
      var scrollWidth = clone.scrollWidth;
      document.documentElement.removeChild(clone);
      return scrollWidth;
  }
  exports.estimateScrollWidth = estimateScrollWidth;
  
  /***/ }),
  
  /***/ "./packages/mdc-floating-label/component.ts":
  /*!**************************************************!*\
    !*** ./packages/mdc-floating-label/component.ts ***!
    \**************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var ponyfill_1 = __webpack_require__(/*! @material/dom/ponyfill */ "./packages/mdc-dom/ponyfill.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-floating-label/foundation.ts");
  var MDCFloatingLabel = /** @class */function (_super) {
      __extends(MDCFloatingLabel, _super);
      function MDCFloatingLabel() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCFloatingLabel.attachTo = function (root) {
          return new MDCFloatingLabel(root);
      };
      /**
       * Styles the label to produce the label shake for errors.
       * @param shouldShake If true, shakes the label by adding a CSS class; otherwise, stops shaking by removing the class.
       */
      MDCFloatingLabel.prototype.shake = function (shouldShake) {
          this.foundation.shake(shouldShake);
      };
      /**
       * Styles the label to float/dock.
       * @param shouldFloat If true, floats the label by adding a CSS class; otherwise, docks it by removing the class.
       */
      MDCFloatingLabel.prototype.float = function (shouldFloat) {
          this.foundation.float(shouldFloat);
      };
      /**
       * Styles the label as required.
       * @param isRequired If true, adds an asterisk to the label, indicating that it is required.
       */
      MDCFloatingLabel.prototype.setRequired = function (isRequired) {
          this.foundation.setRequired(isRequired);
      };
      MDCFloatingLabel.prototype.getWidth = function () {
          return this.foundation.getWidth();
      };
      MDCFloatingLabel.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = {
              addClass: function addClass(className) {
                  return _this.root.classList.add(className);
              },
              removeClass: function removeClass(className) {
                  return _this.root.classList.remove(className);
              },
              getWidth: function getWidth() {
                  return ponyfill_1.estimateScrollWidth(_this.root);
              },
              registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
                  return _this.listen(evtType, handler);
              },
              deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
                  return _this.unlisten(evtType, handler);
              }
          };
          // tslint:enable:object-literal-sort-keys
          return new foundation_1.MDCFloatingLabelFoundation(adapter);
      };
      return MDCFloatingLabel;
  }(component_1.MDCComponent);
  exports.MDCFloatingLabel = MDCFloatingLabel;
  
  /***/ }),
  
  /***/ "./packages/mdc-floating-label/constants.ts":
  /*!**************************************************!*\
    !*** ./packages/mdc-floating-label/constants.ts ***!
    \**************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.cssClasses = {
    LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above',
    LABEL_REQUIRED: 'mdc-floating-label--required',
    LABEL_SHAKE: 'mdc-floating-label--shake',
    ROOT: 'mdc-floating-label'
  };
  
  /***/ }),
  
  /***/ "./packages/mdc-floating-label/foundation.ts":
  /*!***************************************************!*\
    !*** ./packages/mdc-floating-label/foundation.ts ***!
    \***************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-floating-label/constants.ts");
  var MDCFloatingLabelFoundation = /** @class */function (_super) {
      __extends(MDCFloatingLabelFoundation, _super);
      function MDCFloatingLabelFoundation(adapter) {
          var _this = _super.call(this, __assign(__assign({}, MDCFloatingLabelFoundation.defaultAdapter), adapter)) || this;
          _this.shakeAnimationEndHandler_ = function () {
              return _this.handleShakeAnimationEnd_();
          };
          return _this;
      }
      Object.defineProperty(MDCFloatingLabelFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCFloatingLabelFoundation, "defaultAdapter", {
          /**
           * See {@link MDCFloatingLabelAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  getWidth: function getWidth() {
                      return 0;
                  },
                  registerInteractionHandler: function registerInteractionHandler() {
                      return undefined;
                  },
                  deregisterInteractionHandler: function deregisterInteractionHandler() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      MDCFloatingLabelFoundation.prototype.init = function () {
          this.adapter.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_);
      };
      MDCFloatingLabelFoundation.prototype.destroy = function () {
          this.adapter.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_);
      };
      /**
       * Returns the width of the label element.
       */
      MDCFloatingLabelFoundation.prototype.getWidth = function () {
          return this.adapter.getWidth();
      };
      /**
       * Styles the label to produce a shake animation to indicate an error.
       * @param shouldShake If true, adds the shake CSS class; otherwise, removes shake class.
       */
      MDCFloatingLabelFoundation.prototype.shake = function (shouldShake) {
          var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;
          if (shouldShake) {
              this.adapter.addClass(LABEL_SHAKE);
          } else {
              this.adapter.removeClass(LABEL_SHAKE);
          }
      };
      /**
       * Styles the label to float or dock.
       * @param shouldFloat If true, adds the float CSS class; otherwise, removes float and shake classes to dock the label.
       */
      MDCFloatingLabelFoundation.prototype.float = function (shouldFloat) {
          var _a = MDCFloatingLabelFoundation.cssClasses,
              LABEL_FLOAT_ABOVE = _a.LABEL_FLOAT_ABOVE,
              LABEL_SHAKE = _a.LABEL_SHAKE;
          if (shouldFloat) {
              this.adapter.addClass(LABEL_FLOAT_ABOVE);
          } else {
              this.adapter.removeClass(LABEL_FLOAT_ABOVE);
              this.adapter.removeClass(LABEL_SHAKE);
          }
      };
      /**
       * Styles the label as required.
       * @param isRequired If true, adds an asterisk to the label, indicating that it is required.
       */
      MDCFloatingLabelFoundation.prototype.setRequired = function (isRequired) {
          var LABEL_REQUIRED = MDCFloatingLabelFoundation.cssClasses.LABEL_REQUIRED;
          if (isRequired) {
              this.adapter.addClass(LABEL_REQUIRED);
          } else {
              this.adapter.removeClass(LABEL_REQUIRED);
          }
      };
      MDCFloatingLabelFoundation.prototype.handleShakeAnimationEnd_ = function () {
          var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;
          this.adapter.removeClass(LABEL_SHAKE);
      };
      return MDCFloatingLabelFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCFloatingLabelFoundation = MDCFloatingLabelFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCFloatingLabelFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-line-ripple/component.ts":
  /*!***********************************************!*\
    !*** ./packages/mdc-line-ripple/component.ts ***!
    \***********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2018 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-line-ripple/foundation.ts");
  var MDCLineRipple = /** @class */function (_super) {
      __extends(MDCLineRipple, _super);
      function MDCLineRipple() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCLineRipple.attachTo = function (root) {
          return new MDCLineRipple(root);
      };
      /**
       * Activates the line ripple
       */
      MDCLineRipple.prototype.activate = function () {
          this.foundation.activate();
      };
      /**
       * Deactivates the line ripple
       */
      MDCLineRipple.prototype.deactivate = function () {
          this.foundation.deactivate();
      };
      /**
       * Sets the transform origin given a user's click location.
       * The `rippleCenter` is the x-coordinate of the middle of the ripple.
       */
      MDCLineRipple.prototype.setRippleCenter = function (xCoordinate) {
          this.foundation.setRippleCenter(xCoordinate);
      };
      MDCLineRipple.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = {
              addClass: function addClass(className) {
                  return _this.root.classList.add(className);
              },
              removeClass: function removeClass(className) {
                  return _this.root.classList.remove(className);
              },
              hasClass: function hasClass(className) {
                  return _this.root.classList.contains(className);
              },
              setStyle: function setStyle(propertyName, value) {
                  return _this.root.style.setProperty(propertyName, value);
              },
              registerEventHandler: function registerEventHandler(evtType, handler) {
                  return _this.listen(evtType, handler);
              },
              deregisterEventHandler: function deregisterEventHandler(evtType, handler) {
                  return _this.unlisten(evtType, handler);
              }
          };
          // tslint:enable:object-literal-sort-keys
          return new foundation_1.MDCLineRippleFoundation(adapter);
      };
      return MDCLineRipple;
  }(component_1.MDCComponent);
  exports.MDCLineRipple = MDCLineRipple;
  
  /***/ }),
  
  /***/ "./packages/mdc-line-ripple/constants.ts":
  /*!***********************************************!*\
    !*** ./packages/mdc-line-ripple/constants.ts ***!
    \***********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2018 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var cssClasses = {
    LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active',
    LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating'
  };
  exports.cssClasses = cssClasses;
  
  /***/ }),
  
  /***/ "./packages/mdc-line-ripple/foundation.ts":
  /*!************************************************!*\
    !*** ./packages/mdc-line-ripple/foundation.ts ***!
    \************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2018 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-line-ripple/constants.ts");
  var MDCLineRippleFoundation = /** @class */function (_super) {
      __extends(MDCLineRippleFoundation, _super);
      function MDCLineRippleFoundation(adapter) {
          var _this = _super.call(this, __assign(__assign({}, MDCLineRippleFoundation.defaultAdapter), adapter)) || this;
          _this.transitionEndHandler_ = function (evt) {
              return _this.handleTransitionEnd(evt);
          };
          return _this;
      }
      Object.defineProperty(MDCLineRippleFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCLineRippleFoundation, "defaultAdapter", {
          /**
           * See {@link MDCLineRippleAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  hasClass: function hasClass() {
                      return false;
                  },
                  setStyle: function setStyle() {
                      return undefined;
                  },
                  registerEventHandler: function registerEventHandler() {
                      return undefined;
                  },
                  deregisterEventHandler: function deregisterEventHandler() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      MDCLineRippleFoundation.prototype.init = function () {
          this.adapter.registerEventHandler('transitionend', this.transitionEndHandler_);
      };
      MDCLineRippleFoundation.prototype.destroy = function () {
          this.adapter.deregisterEventHandler('transitionend', this.transitionEndHandler_);
      };
      MDCLineRippleFoundation.prototype.activate = function () {
          this.adapter.removeClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);
          this.adapter.addClass(constants_1.cssClasses.LINE_RIPPLE_ACTIVE);
      };
      MDCLineRippleFoundation.prototype.setRippleCenter = function (xCoordinate) {
          this.adapter.setStyle('transform-origin', xCoordinate + "px center");
      };
      MDCLineRippleFoundation.prototype.deactivate = function () {
          this.adapter.addClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);
      };
      MDCLineRippleFoundation.prototype.handleTransitionEnd = function (evt) {
          // Wait for the line ripple to be either transparent or opaque
          // before emitting the animation end event
          var isDeactivating = this.adapter.hasClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);
          if (evt.propertyName === 'opacity') {
              if (isDeactivating) {
                  this.adapter.removeClass(constants_1.cssClasses.LINE_RIPPLE_ACTIVE);
                  this.adapter.removeClass(constants_1.cssClasses.LINE_RIPPLE_DEACTIVATING);
              }
          }
      };
      return MDCLineRippleFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCLineRippleFoundation = MDCLineRippleFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCLineRippleFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-notched-outline/component.ts":
  /*!***************************************************!*\
    !*** ./packages/mdc-notched-outline/component.ts ***!
    \***************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var foundation_1 = __webpack_require__(/*! @material/floating-label/foundation */ "./packages/mdc-floating-label/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-notched-outline/constants.ts");
  var foundation_2 = __webpack_require__(/*! ./foundation */ "./packages/mdc-notched-outline/foundation.ts");
  var MDCNotchedOutline = /** @class */function (_super) {
      __extends(MDCNotchedOutline, _super);
      function MDCNotchedOutline() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCNotchedOutline.attachTo = function (root) {
          return new MDCNotchedOutline(root);
      };
      MDCNotchedOutline.prototype.initialSyncWithDOM = function () {
          this.notchElement_ = this.root.querySelector(constants_1.strings.NOTCH_ELEMENT_SELECTOR);
          var label = this.root.querySelector('.' + foundation_1.MDCFloatingLabelFoundation.cssClasses.ROOT);
          if (label) {
              label.style.transitionDuration = '0s';
              this.root.classList.add(constants_1.cssClasses.OUTLINE_UPGRADED);
              requestAnimationFrame(function () {
                  label.style.transitionDuration = '';
              });
          } else {
              this.root.classList.add(constants_1.cssClasses.NO_LABEL);
          }
      };
      /**
       * Updates classes and styles to open the notch to the specified width.
       * @param notchWidth The notch width in the outline.
       */
      MDCNotchedOutline.prototype.notch = function (notchWidth) {
          this.foundation.notch(notchWidth);
      };
      /**
       * Updates classes and styles to close the notch.
       */
      MDCNotchedOutline.prototype.closeNotch = function () {
          this.foundation.closeNotch();
      };
      MDCNotchedOutline.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = {
              addClass: function addClass(className) {
                  return _this.root.classList.add(className);
              },
              removeClass: function removeClass(className) {
                  return _this.root.classList.remove(className);
              },
              setNotchWidthProperty: function setNotchWidthProperty(width) {
                  return _this.notchElement_.style.setProperty('width', width + 'px');
              },
              removeNotchWidthProperty: function removeNotchWidthProperty() {
                  return _this.notchElement_.style.removeProperty('width');
              }
          };
          // tslint:enable:object-literal-sort-keys
          return new foundation_2.MDCNotchedOutlineFoundation(adapter);
      };
      return MDCNotchedOutline;
  }(component_1.MDCComponent);
  exports.MDCNotchedOutline = MDCNotchedOutline;
  
  /***/ }),
  
  /***/ "./packages/mdc-notched-outline/constants.ts":
  /*!***************************************************!*\
    !*** ./packages/mdc-notched-outline/constants.ts ***!
    \***************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2018 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var strings = {
      NOTCH_ELEMENT_SELECTOR: '.mdc-notched-outline__notch'
  };
  exports.strings = strings;
  var numbers = {
      // This should stay in sync with $mdc-notched-outline-padding * 2.
      NOTCH_ELEMENT_PADDING: 8
  };
  exports.numbers = numbers;
  var cssClasses = {
      NO_LABEL: 'mdc-notched-outline--no-label',
      OUTLINE_NOTCHED: 'mdc-notched-outline--notched',
      OUTLINE_UPGRADED: 'mdc-notched-outline--upgraded'
  };
  exports.cssClasses = cssClasses;
  
  /***/ }),
  
  /***/ "./packages/mdc-notched-outline/foundation.ts":
  /*!****************************************************!*\
    !*** ./packages/mdc-notched-outline/foundation.ts ***!
    \****************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-notched-outline/constants.ts");
  var MDCNotchedOutlineFoundation = /** @class */function (_super) {
      __extends(MDCNotchedOutlineFoundation, _super);
      function MDCNotchedOutlineFoundation(adapter) {
          return _super.call(this, __assign(__assign({}, MDCNotchedOutlineFoundation.defaultAdapter), adapter)) || this;
      }
      Object.defineProperty(MDCNotchedOutlineFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCNotchedOutlineFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCNotchedOutlineFoundation, "numbers", {
          get: function get() {
              return constants_1.numbers;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCNotchedOutlineFoundation, "defaultAdapter", {
          /**
           * See {@link MDCNotchedOutlineAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  setNotchWidthProperty: function setNotchWidthProperty() {
                      return undefined;
                  },
                  removeNotchWidthProperty: function removeNotchWidthProperty() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      /**
       * Adds the outline notched selector and updates the notch width calculated based off of notchWidth.
       */
      MDCNotchedOutlineFoundation.prototype.notch = function (notchWidth) {
          var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;
          if (notchWidth > 0) {
              notchWidth += constants_1.numbers.NOTCH_ELEMENT_PADDING; // Add padding from left/right.
          }
          this.adapter.setNotchWidthProperty(notchWidth);
          this.adapter.addClass(OUTLINE_NOTCHED);
      };
      /**
       * Removes notched outline selector to close the notch in the outline.
       */
      MDCNotchedOutlineFoundation.prototype.closeNotch = function () {
          var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;
          this.adapter.removeClass(OUTLINE_NOTCHED);
          this.adapter.removeNotchWidthProperty();
      };
      return MDCNotchedOutlineFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCNotchedOutlineFoundation = MDCNotchedOutlineFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCNotchedOutlineFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-ripple/component.ts":
  /*!******************************************!*\
    !*** ./packages/mdc-ripple/component.ts ***!
    \******************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __importStar = this && this.__importStar || function (mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (mod != null) for (var k in mod) {
          if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
      }result["default"] = mod;
      return result;
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var events_1 = __webpack_require__(/*! @material/dom/events */ "./packages/mdc-dom/events.ts");
  var ponyfill_1 = __webpack_require__(/*! @material/dom/ponyfill */ "./packages/mdc-dom/ponyfill.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-ripple/foundation.ts");
  var util = __importStar(__webpack_require__(/*! ./util */ "./packages/mdc-ripple/util.ts"));
  var MDCRipple = /** @class */function (_super) {
      __extends(MDCRipple, _super);
      function MDCRipple() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.disabled = false;
          return _this;
      }
      MDCRipple.attachTo = function (root, opts) {
          if (opts === void 0) {
              opts = { isUnbounded: undefined };
          }
          var ripple = new MDCRipple(root);
          // Only override unbounded behavior if option is explicitly specified
          if (opts.isUnbounded !== undefined) {
              ripple.unbounded = opts.isUnbounded;
          }
          return ripple;
      };
      MDCRipple.createAdapter = function (instance) {
          return {
              addClass: function addClass(className) {
                  return instance.root.classList.add(className);
              },
              browserSupportsCssVars: function browserSupportsCssVars() {
                  return util.supportsCssVariables(window);
              },
              computeBoundingRect: function computeBoundingRect() {
                  return instance.root.getBoundingClientRect();
              },
              containsEventTarget: function containsEventTarget(target) {
                  return instance.root.contains(target);
              },
              deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) {
                  return document.documentElement.removeEventListener(evtType, handler, events_1.applyPassive());
              },
              deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
                  return instance.root.removeEventListener(evtType, handler, events_1.applyPassive());
              },
              deregisterResizeHandler: function deregisterResizeHandler(handler) {
                  return window.removeEventListener('resize', handler);
              },
              getWindowPageOffset: function getWindowPageOffset() {
                  return { x: window.pageXOffset, y: window.pageYOffset };
              },
              isSurfaceActive: function isSurfaceActive() {
                  return ponyfill_1.matches(instance.root, ':active');
              },
              isSurfaceDisabled: function isSurfaceDisabled() {
                  return Boolean(instance.disabled);
              },
              isUnbounded: function isUnbounded() {
                  return Boolean(instance.unbounded);
              },
              registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) {
                  return document.documentElement.addEventListener(evtType, handler, events_1.applyPassive());
              },
              registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
                  return instance.root.addEventListener(evtType, handler, events_1.applyPassive());
              },
              registerResizeHandler: function registerResizeHandler(handler) {
                  return window.addEventListener('resize', handler);
              },
              removeClass: function removeClass(className) {
                  return instance.root.classList.remove(className);
              },
              updateCssVariable: function updateCssVariable(varName, value) {
                  return instance.root.style.setProperty(varName, value);
              }
          };
      };
      Object.defineProperty(MDCRipple.prototype, "unbounded", {
          get: function get() {
              return Boolean(this.unbounded_);
          },
          set: function set(unbounded) {
              this.unbounded_ = Boolean(unbounded);
              this.setUnbounded_();
          },
          enumerable: true,
          configurable: true
      });
      MDCRipple.prototype.activate = function () {
          this.foundation.activate();
      };
      MDCRipple.prototype.deactivate = function () {
          this.foundation.deactivate();
      };
      MDCRipple.prototype.layout = function () {
          this.foundation.layout();
      };
      MDCRipple.prototype.getDefaultFoundation = function () {
          return new foundation_1.MDCRippleFoundation(MDCRipple.createAdapter(this));
      };
      MDCRipple.prototype.initialSyncWithDOM = function () {
          var root = this.root;
          this.unbounded = 'mdcRippleIsUnbounded' in root.dataset;
      };
      /**
       * Closure Compiler throws an access control error when directly accessing a
       * protected or private property inside a getter/setter, like unbounded above.
       * By accessing the protected property inside a method, we solve that problem.
       * That's why this function exists.
       */
      MDCRipple.prototype.setUnbounded_ = function () {
          this.foundation.setUnbounded(Boolean(this.unbounded_));
      };
      return MDCRipple;
  }(component_1.MDCComponent);
  exports.MDCRipple = MDCRipple;
  
  /***/ }),
  
  /***/ "./packages/mdc-ripple/constants.ts":
  /*!******************************************!*\
    !*** ./packages/mdc-ripple/constants.ts ***!
    \******************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.cssClasses = {
      // Ripple is a special case where the "root" component is really a "mixin" of sorts,
      // given that it's an 'upgrade' to an existing component. That being said it is the root
      // CSS class that all other CSS classes derive from.
      BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',
      FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',
      FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation',
      ROOT: 'mdc-ripple-upgraded',
      UNBOUNDED: 'mdc-ripple-upgraded--unbounded'
  };
  exports.strings = {
      VAR_FG_SCALE: '--mdc-ripple-fg-scale',
      VAR_FG_SIZE: '--mdc-ripple-fg-size',
      VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end',
      VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',
      VAR_LEFT: '--mdc-ripple-left',
      VAR_TOP: '--mdc-ripple-top'
  };
  exports.numbers = {
      DEACTIVATION_TIMEOUT_MS: 225,
      FG_DEACTIVATION_MS: 150,
      INITIAL_ORIGIN_SCALE: 0.6,
      PADDING: 10,
      TAP_DELAY_MS: 300
  };
  
  /***/ }),
  
  /***/ "./packages/mdc-ripple/foundation.ts":
  /*!*******************************************!*\
    !*** ./packages/mdc-ripple/foundation.ts ***!
    \*******************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-ripple/constants.ts");
  var util_1 = __webpack_require__(/*! ./util */ "./packages/mdc-ripple/util.ts");
  // Activation events registered on the root element of each instance for activation
  var ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown'];
  // Deactivation events registered on documentElement when a pointer-related down event occurs
  var POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu'];
  // simultaneous nested activations
  var activatedTargets = [];
  var MDCRippleFoundation = /** @class */function (_super) {
      __extends(MDCRippleFoundation, _super);
      function MDCRippleFoundation(adapter) {
          var _this = _super.call(this, __assign(__assign({}, MDCRippleFoundation.defaultAdapter), adapter)) || this;
          _this.activationAnimationHasEnded_ = false;
          _this.activationTimer_ = 0;
          _this.fgDeactivationRemovalTimer_ = 0;
          _this.fgScale_ = '0';
          _this.frame_ = { width: 0, height: 0 };
          _this.initialSize_ = 0;
          _this.layoutFrame_ = 0;
          _this.maxRadius_ = 0;
          _this.unboundedCoords_ = { left: 0, top: 0 };
          _this.activationState_ = _this.defaultActivationState_();
          _this.activationTimerCallback_ = function () {
              _this.activationAnimationHasEnded_ = true;
              _this.runDeactivationUXLogicIfReady_();
          };
          _this.activateHandler_ = function (e) {
              return _this.activate_(e);
          };
          _this.deactivateHandler_ = function () {
              return _this.deactivate_();
          };
          _this.focusHandler_ = function () {
              return _this.handleFocus();
          };
          _this.blurHandler_ = function () {
              return _this.handleBlur();
          };
          _this.resizeHandler_ = function () {
              return _this.layout();
          };
          return _this;
      }
      Object.defineProperty(MDCRippleFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCRippleFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCRippleFoundation, "numbers", {
          get: function get() {
              return constants_1.numbers;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCRippleFoundation, "defaultAdapter", {
          get: function get() {
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  browserSupportsCssVars: function browserSupportsCssVars() {
                      return true;
                  },
                  computeBoundingRect: function computeBoundingRect() {
                      return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };
                  },
                  containsEventTarget: function containsEventTarget() {
                      return true;
                  },
                  deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() {
                      return undefined;
                  },
                  deregisterInteractionHandler: function deregisterInteractionHandler() {
                      return undefined;
                  },
                  deregisterResizeHandler: function deregisterResizeHandler() {
                      return undefined;
                  },
                  getWindowPageOffset: function getWindowPageOffset() {
                      return { x: 0, y: 0 };
                  },
                  isSurfaceActive: function isSurfaceActive() {
                      return true;
                  },
                  isSurfaceDisabled: function isSurfaceDisabled() {
                      return true;
                  },
                  isUnbounded: function isUnbounded() {
                      return true;
                  },
                  registerDocumentInteractionHandler: function registerDocumentInteractionHandler() {
                      return undefined;
                  },
                  registerInteractionHandler: function registerInteractionHandler() {
                      return undefined;
                  },
                  registerResizeHandler: function registerResizeHandler() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  updateCssVariable: function updateCssVariable() {
                      return undefined;
                  }
              };
          },
          enumerable: true,
          configurable: true
      });
      MDCRippleFoundation.prototype.init = function () {
          var _this = this;
          var supportsPressRipple = this.supportsPressRipple_();
          this.registerRootHandlers_(supportsPressRipple);
          if (supportsPressRipple) {
              var _a = MDCRippleFoundation.cssClasses,
                  ROOT_1 = _a.ROOT,
                  UNBOUNDED_1 = _a.UNBOUNDED;
              requestAnimationFrame(function () {
                  _this.adapter.addClass(ROOT_1);
                  if (_this.adapter.isUnbounded()) {
                      _this.adapter.addClass(UNBOUNDED_1);
                      // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple
                      _this.layoutInternal_();
                  }
              });
          }
      };
      MDCRippleFoundation.prototype.destroy = function () {
          var _this = this;
          if (this.supportsPressRipple_()) {
              if (this.activationTimer_) {
                  clearTimeout(this.activationTimer_);
                  this.activationTimer_ = 0;
                  this.adapter.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);
              }
              if (this.fgDeactivationRemovalTimer_) {
                  clearTimeout(this.fgDeactivationRemovalTimer_);
                  this.fgDeactivationRemovalTimer_ = 0;
                  this.adapter.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);
              }
              var _a = MDCRippleFoundation.cssClasses,
                  ROOT_2 = _a.ROOT,
                  UNBOUNDED_2 = _a.UNBOUNDED;
              requestAnimationFrame(function () {
                  _this.adapter.removeClass(ROOT_2);
                  _this.adapter.removeClass(UNBOUNDED_2);
                  _this.removeCssVars_();
              });
          }
          this.deregisterRootHandlers_();
          this.deregisterDeactivationHandlers_();
      };
      /**
       * @param evt Optional event containing position information.
       */
      MDCRippleFoundation.prototype.activate = function (evt) {
          this.activate_(evt);
      };
      MDCRippleFoundation.prototype.deactivate = function () {
          this.deactivate_();
      };
      MDCRippleFoundation.prototype.layout = function () {
          var _this = this;
          if (this.layoutFrame_) {
              cancelAnimationFrame(this.layoutFrame_);
          }
          this.layoutFrame_ = requestAnimationFrame(function () {
              _this.layoutInternal_();
              _this.layoutFrame_ = 0;
          });
      };
      MDCRippleFoundation.prototype.setUnbounded = function (unbounded) {
          var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED;
          if (unbounded) {
              this.adapter.addClass(UNBOUNDED);
          } else {
              this.adapter.removeClass(UNBOUNDED);
          }
      };
      MDCRippleFoundation.prototype.handleFocus = function () {
          var _this = this;
          requestAnimationFrame(function () {
              return _this.adapter.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
          });
      };
      MDCRippleFoundation.prototype.handleBlur = function () {
          var _this = this;
          requestAnimationFrame(function () {
              return _this.adapter.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
          });
      };
      /**
       * We compute this property so that we are not querying information about the client
       * until the point in time where the foundation requests it. This prevents scenarios where
       * client-side feature-detection may happen too early, such as when components are rendered on the server
       * and then initialized at mount time on the client.
       */
      MDCRippleFoundation.prototype.supportsPressRipple_ = function () {
          return this.adapter.browserSupportsCssVars();
      };
      MDCRippleFoundation.prototype.defaultActivationState_ = function () {
          return {
              activationEvent: undefined,
              hasDeactivationUXRun: false,
              isActivated: false,
              isProgrammatic: false,
              wasActivatedByPointer: false,
              wasElementMadeActive: false
          };
      };
      /**
       * supportsPressRipple Passed from init to save a redundant function call
       */
      MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) {
          var _this = this;
          if (supportsPressRipple) {
              ACTIVATION_EVENT_TYPES.forEach(function (evtType) {
                  _this.adapter.registerInteractionHandler(evtType, _this.activateHandler_);
              });
              if (this.adapter.isUnbounded()) {
                  this.adapter.registerResizeHandler(this.resizeHandler_);
              }
          }
          this.adapter.registerInteractionHandler('focus', this.focusHandler_);
          this.adapter.registerInteractionHandler('blur', this.blurHandler_);
      };
      MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) {
          var _this = this;
          if (evt.type === 'keydown') {
              this.adapter.registerInteractionHandler('keyup', this.deactivateHandler_);
          } else {
              POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {
                  _this.adapter.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_);
              });
          }
      };
      MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () {
          var _this = this;
          ACTIVATION_EVENT_TYPES.forEach(function (evtType) {
              _this.adapter.deregisterInteractionHandler(evtType, _this.activateHandler_);
          });
          this.adapter.deregisterInteractionHandler('focus', this.focusHandler_);
          this.adapter.deregisterInteractionHandler('blur', this.blurHandler_);
          if (this.adapter.isUnbounded()) {
              this.adapter.deregisterResizeHandler(this.resizeHandler_);
          }
      };
      MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () {
          var _this = this;
          this.adapter.deregisterInteractionHandler('keyup', this.deactivateHandler_);
          POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {
              _this.adapter.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_);
          });
      };
      MDCRippleFoundation.prototype.removeCssVars_ = function () {
          var _this = this;
          var rippleStrings = MDCRippleFoundation.strings;
          var keys = Object.keys(rippleStrings);
          keys.forEach(function (key) {
              if (key.indexOf('VAR_') === 0) {
                  _this.adapter.updateCssVariable(rippleStrings[key], null);
              }
          });
      };
      MDCRippleFoundation.prototype.activate_ = function (evt) {
          var _this = this;
          if (this.adapter.isSurfaceDisabled()) {
              return;
          }
          var activationState = this.activationState_;
          if (activationState.isActivated) {
              return;
          }
          // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction
          var previousActivationEvent = this.previousActivationEvent_;
          var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type;
          if (isSameInteraction) {
              return;
          }
          activationState.isActivated = true;
          activationState.isProgrammatic = evt === undefined;
          activationState.activationEvent = evt;
          activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown');
          var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) {
              return _this.adapter.containsEventTarget(target);
          });
          if (hasActivatedChild) {
              // Immediately reset activation state, while preserving logic that prevents touch follow-on events
              this.resetActivationState_();
              return;
          }
          if (evt !== undefined) {
              activatedTargets.push(evt.target);
              this.registerDeactivationHandlers_(evt);
          }
          activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);
          if (activationState.wasElementMadeActive) {
              this.animateActivation_();
          }
          requestAnimationFrame(function () {
              // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples
              activatedTargets = [];
              if (!activationState.wasElementMadeActive && evt !== undefined && (evt.key === ' ' || evt.keyCode === 32)) {
                  // If space was pressed, try again within an rAF call to detect :active, because different UAs report
                  // active states inconsistently when they're called within event handling code:
                  // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971
                  // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741
                  // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS
                  // variable is set within a rAF callback for a submit button interaction (#2241).
                  activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt);
                  if (activationState.wasElementMadeActive) {
                      _this.animateActivation_();
                  }
              }
              if (!activationState.wasElementMadeActive) {
                  // Reset activation state immediately if element was not made active.
                  _this.activationState_ = _this.defaultActivationState_();
              }
          });
      };
      MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) {
          return evt !== undefined && evt.type === 'keydown' ? this.adapter.isSurfaceActive() : true;
      };
      MDCRippleFoundation.prototype.animateActivation_ = function () {
          var _this = this;
          var _a = MDCRippleFoundation.strings,
              VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START,
              VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END;
          var _b = MDCRippleFoundation.cssClasses,
              FG_DEACTIVATION = _b.FG_DEACTIVATION,
              FG_ACTIVATION = _b.FG_ACTIVATION;
          var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;
          this.layoutInternal_();
          var translateStart = '';
          var translateEnd = '';
          if (!this.adapter.isUnbounded()) {
              var _c = this.getFgTranslationCoordinates_(),
                  startPoint = _c.startPoint,
                  endPoint = _c.endPoint;
              translateStart = startPoint.x + "px, " + startPoint.y + "px";
              translateEnd = endPoint.x + "px, " + endPoint.y + "px";
          }
          this.adapter.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);
          this.adapter.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);
          // Cancel any ongoing activation/deactivation animations
          clearTimeout(this.activationTimer_);
          clearTimeout(this.fgDeactivationRemovalTimer_);
          this.rmBoundedActivationClasses_();
          this.adapter.removeClass(FG_DEACTIVATION);
          // Force layout in order to re-trigger the animation.
          this.adapter.computeBoundingRect();
          this.adapter.addClass(FG_ACTIVATION);
          this.activationTimer_ = setTimeout(function () {
              return _this.activationTimerCallback_();
          }, DEACTIVATION_TIMEOUT_MS);
      };
      MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () {
          var _a = this.activationState_,
              activationEvent = _a.activationEvent,
              wasActivatedByPointer = _a.wasActivatedByPointer;
          var startPoint;
          if (wasActivatedByPointer) {
              startPoint = util_1.getNormalizedEventCoords(activationEvent, this.adapter.getWindowPageOffset(), this.adapter.computeBoundingRect());
          } else {
              startPoint = {
                  x: this.frame_.width / 2,
                  y: this.frame_.height / 2
              };
          }
          // Center the element around the start point.
          startPoint = {
              x: startPoint.x - this.initialSize_ / 2,
              y: startPoint.y - this.initialSize_ / 2
          };
          var endPoint = {
              x: this.frame_.width / 2 - this.initialSize_ / 2,
              y: this.frame_.height / 2 - this.initialSize_ / 2
          };
          return { startPoint: startPoint, endPoint: endPoint };
      };
      MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () {
          var _this = this;
          // This method is called both when a pointing device is released, and when the activation animation ends.
          // The deactivation animation should only run after both of those occur.
          var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;
          var _a = this.activationState_,
              hasDeactivationUXRun = _a.hasDeactivationUXRun,
              isActivated = _a.isActivated;
          var activationHasEnded = hasDeactivationUXRun || !isActivated;
          if (activationHasEnded && this.activationAnimationHasEnded_) {
              this.rmBoundedActivationClasses_();
              this.adapter.addClass(FG_DEACTIVATION);
              this.fgDeactivationRemovalTimer_ = setTimeout(function () {
                  _this.adapter.removeClass(FG_DEACTIVATION);
              }, constants_1.numbers.FG_DEACTIVATION_MS);
          }
      };
      MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () {
          var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION;
          this.adapter.removeClass(FG_ACTIVATION);
          this.activationAnimationHasEnded_ = false;
          this.adapter.computeBoundingRect();
      };
      MDCRippleFoundation.prototype.resetActivationState_ = function () {
          var _this = this;
          this.previousActivationEvent_ = this.activationState_.activationEvent;
          this.activationState_ = this.defaultActivationState_();
          // Touch devices may fire additional events for the same interaction within a short time.
          // Store the previous event until it's safe to assume that subsequent events are for new interactions.
          setTimeout(function () {
              return _this.previousActivationEvent_ = undefined;
          }, MDCRippleFoundation.numbers.TAP_DELAY_MS);
      };
      MDCRippleFoundation.prototype.deactivate_ = function () {
          var _this = this;
          var activationState = this.activationState_;
          // This can happen in scenarios such as when you have a keyup event that blurs the element.
          if (!activationState.isActivated) {
              return;
          }
          var state = __assign({}, activationState);
          if (activationState.isProgrammatic) {
              requestAnimationFrame(function () {
                  return _this.animateDeactivation_(state);
              });
              this.resetActivationState_();
          } else {
              this.deregisterDeactivationHandlers_();
              requestAnimationFrame(function () {
                  _this.activationState_.hasDeactivationUXRun = true;
                  _this.animateDeactivation_(state);
                  _this.resetActivationState_();
              });
          }
      };
      MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) {
          var wasActivatedByPointer = _a.wasActivatedByPointer,
              wasElementMadeActive = _a.wasElementMadeActive;
          if (wasActivatedByPointer || wasElementMadeActive) {
              this.runDeactivationUXLogicIfReady_();
          }
      };
      MDCRippleFoundation.prototype.layoutInternal_ = function () {
          var _this = this;
          this.frame_ = this.adapter.computeBoundingRect();
          var maxDim = Math.max(this.frame_.height, this.frame_.width);
          // Surface diameter is treated differently for unbounded vs. bounded ripples.
          // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately
          // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically
          // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter
          // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via
          // `overflow: hidden`.
          var getBoundedRadius = function getBoundedRadius() {
              var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2));
              return hypotenuse + MDCRippleFoundation.numbers.PADDING;
          };
          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
          var initialSize = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE);
          // Unbounded ripple size should always be even number to equally center align.
          if (this.adapter.isUnbounded() && initialSize % 2 !== 0) {
              this.initialSize_ = initialSize - 1;
          } else {
              this.initialSize_ = initialSize;
          }
          this.fgScale_ = "" + this.maxRadius_ / this.initialSize_;
          this.updateLayoutCssVars_();
      };
      MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () {
          var _a = MDCRippleFoundation.strings,
              VAR_FG_SIZE = _a.VAR_FG_SIZE,
              VAR_LEFT = _a.VAR_LEFT,
              VAR_TOP = _a.VAR_TOP,
              VAR_FG_SCALE = _a.VAR_FG_SCALE;
          this.adapter.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + "px");
          this.adapter.updateCssVariable(VAR_FG_SCALE, this.fgScale_);
          if (this.adapter.isUnbounded()) {
              this.unboundedCoords_ = {
                  left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),
                  top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)
              };
              this.adapter.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + "px");
              this.adapter.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + "px");
          }
      };
      return MDCRippleFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCRippleFoundation = MDCRippleFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCRippleFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-ripple/util.ts":
  /*!*************************************!*\
    !*** ./packages/mdc-ripple/util.ts ***!
    \*************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", { value: true });
  /**
   * Stores result from supportsCssVariables to avoid redundant processing to
   * detect CSS custom variable support.
   */
  var supportsCssVariables_;
  function supportsCssVariables(windowObj, forceRefresh) {
      if (forceRefresh === void 0) {
          forceRefresh = false;
      }
      var CSS = windowObj.CSS;
      var supportsCssVars = supportsCssVariables_;
      if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {
          return supportsCssVariables_;
      }
      var supportsFunctionPresent = CSS && typeof CSS.supports === 'function';
      if (!supportsFunctionPresent) {
          return false;
      }
      var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes');
      // See: https://bugs.webkit.org/show_bug.cgi?id=154669
      // See: README section on Safari
      var weAreFeatureDetectingSafari10plus = CSS.supports('(--css-vars: yes)') && CSS.supports('color', '#00000000');
      supportsCssVars = explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus;
      if (!forceRefresh) {
          supportsCssVariables_ = supportsCssVars;
      }
      return supportsCssVars;
  }
  exports.supportsCssVariables = supportsCssVariables;
  function getNormalizedEventCoords(evt, pageOffset, clientRect) {
      if (!evt) {
          return { x: 0, y: 0 };
      }
      var x = pageOffset.x,
          y = pageOffset.y;
      var documentX = x + clientRect.left;
      var documentY = y + clientRect.top;
      var normalizedX;
      var normalizedY;
      // Determine touch point relative to the ripple container.
      if (evt.type === 'touchstart') {
          var touchEvent = evt;
          normalizedX = touchEvent.changedTouches[0].pageX - documentX;
          normalizedY = touchEvent.changedTouches[0].pageY - documentY;
      } else {
          var mouseEvent = evt;
          normalizedX = mouseEvent.pageX - documentX;
          normalizedY = mouseEvent.pageY - documentY;
      }
      return { x: normalizedX, y: normalizedY };
  }
  exports.getNormalizedEventCoords = getNormalizedEventCoords;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/character-counter/component.ts":
  /*!***************************************************************!*\
    !*** ./packages/mdc-textfield/character-counter/component.ts ***!
    \***************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/character-counter/foundation.ts");
  var MDCTextFieldCharacterCounter = /** @class */function (_super) {
      __extends(MDCTextFieldCharacterCounter, _super);
      function MDCTextFieldCharacterCounter() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCTextFieldCharacterCounter.attachTo = function (root) {
          return new MDCTextFieldCharacterCounter(root);
      };
      Object.defineProperty(MDCTextFieldCharacterCounter.prototype, "foundationForTextField", {
          // Provided for access by MDCTextField component
          get: function get() {
              return this.foundation;
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldCharacterCounter.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          var adapter = {
              setContent: function setContent(content) {
                  _this.root.textContent = content;
              }
          };
          return new foundation_1.MDCTextFieldCharacterCounterFoundation(adapter);
      };
      return MDCTextFieldCharacterCounter;
  }(component_1.MDCComponent);
  exports.MDCTextFieldCharacterCounter = MDCTextFieldCharacterCounter;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/character-counter/constants.ts":
  /*!***************************************************************!*\
    !*** ./packages/mdc-textfield/character-counter/constants.ts ***!
    \***************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var cssClasses = {
      ROOT: 'mdc-text-field-character-counter'
  };
  exports.cssClasses = cssClasses;
  var strings = {
      ROOT_SELECTOR: "." + cssClasses.ROOT
  };
  exports.strings = strings;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/character-counter/foundation.ts":
  /*!****************************************************************!*\
    !*** ./packages/mdc-textfield/character-counter/foundation.ts ***!
    \****************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/character-counter/constants.ts");
  var MDCTextFieldCharacterCounterFoundation = /** @class */function (_super) {
      __extends(MDCTextFieldCharacterCounterFoundation, _super);
      function MDCTextFieldCharacterCounterFoundation(adapter) {
          return _super.call(this, __assign(__assign({}, MDCTextFieldCharacterCounterFoundation.defaultAdapter), adapter)) || this;
      }
      Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "defaultAdapter", {
          /**
           * See {@link MDCTextFieldCharacterCounterAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              return {
                  setContent: function setContent() {
                      return undefined;
                  }
              };
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldCharacterCounterFoundation.prototype.setCounterValue = function (currentLength, maxLength) {
          currentLength = Math.min(currentLength, maxLength);
          this.adapter.setContent(currentLength + " / " + maxLength);
      };
      return MDCTextFieldCharacterCounterFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCTextFieldCharacterCounterFoundation = MDCTextFieldCharacterCounterFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCTextFieldCharacterCounterFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/character-counter/index.ts":
  /*!***********************************************************!*\
    !*** ./packages/mdc-textfield/character-counter/index.ts ***!
    \***********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  function __export(m) {
    for (var p in m) {
      if (!exports.hasOwnProperty(p)) exports[p] = m[p];
    }
  }
  Object.defineProperty(exports, "__esModule", { value: true });
  __export(__webpack_require__(/*! ./component */ "./packages/mdc-textfield/character-counter/component.ts"));
  __export(__webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/character-counter/foundation.ts"));
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/character-counter/constants.ts");
  exports.characterCountCssClasses = constants_1.cssClasses;
  exports.characterCountStrings = constants_1.strings;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/component.ts":
  /*!*********************************************!*\
    !*** ./packages/mdc-textfield/component.ts ***!
    \*********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  var __importStar = this && this.__importStar || function (mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (mod != null) for (var k in mod) {
          if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
      }result["default"] = mod;
      return result;
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var events_1 = __webpack_require__(/*! @material/dom/events */ "./packages/mdc-dom/events.ts");
  var ponyfill = __importStar(__webpack_require__(/*! @material/dom/ponyfill */ "./packages/mdc-dom/ponyfill.ts"));
  var component_2 = __webpack_require__(/*! @material/floating-label/component */ "./packages/mdc-floating-label/component.ts");
  var component_3 = __webpack_require__(/*! @material/line-ripple/component */ "./packages/mdc-line-ripple/component.ts");
  var component_4 = __webpack_require__(/*! @material/notched-outline/component */ "./packages/mdc-notched-outline/component.ts");
  var component_5 = __webpack_require__(/*! @material/ripple/component */ "./packages/mdc-ripple/component.ts");
  var foundation_1 = __webpack_require__(/*! @material/ripple/foundation */ "./packages/mdc-ripple/foundation.ts");
  var component_6 = __webpack_require__(/*! ./character-counter/component */ "./packages/mdc-textfield/character-counter/component.ts");
  var foundation_2 = __webpack_require__(/*! ./character-counter/foundation */ "./packages/mdc-textfield/character-counter/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/constants.ts");
  var foundation_3 = __webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/foundation.ts");
  var component_7 = __webpack_require__(/*! ./helper-text/component */ "./packages/mdc-textfield/helper-text/component.ts");
  var foundation_4 = __webpack_require__(/*! ./helper-text/foundation */ "./packages/mdc-textfield/helper-text/foundation.ts");
  var component_8 = __webpack_require__(/*! ./icon/component */ "./packages/mdc-textfield/icon/component.ts");
  var MDCTextField = /** @class */function (_super) {
      __extends(MDCTextField, _super);
      function MDCTextField() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCTextField.attachTo = function (root) {
          return new MDCTextField(root);
      };
      MDCTextField.prototype.initialize = function (rippleFactory, lineRippleFactory, helperTextFactory, characterCounterFactory, iconFactory, labelFactory, outlineFactory) {
          if (rippleFactory === void 0) {
              rippleFactory = function rippleFactory(el, foundation) {
                  return new component_5.MDCRipple(el, foundation);
              };
          }
          if (lineRippleFactory === void 0) {
              lineRippleFactory = function lineRippleFactory(el) {
                  return new component_3.MDCLineRipple(el);
              };
          }
          if (helperTextFactory === void 0) {
              helperTextFactory = function helperTextFactory(el) {
                  return new component_7.MDCTextFieldHelperText(el);
              };
          }
          if (characterCounterFactory === void 0) {
              characterCounterFactory = function characterCounterFactory(el) {
                  return new component_6.MDCTextFieldCharacterCounter(el);
              };
          }
          if (iconFactory === void 0) {
              iconFactory = function iconFactory(el) {
                  return new component_8.MDCTextFieldIcon(el);
              };
          }
          if (labelFactory === void 0) {
              labelFactory = function labelFactory(el) {
                  return new component_2.MDCFloatingLabel(el);
              };
          }
          if (outlineFactory === void 0) {
              outlineFactory = function outlineFactory(el) {
                  return new component_4.MDCNotchedOutline(el);
              };
          }
          this.input_ = this.root.querySelector(constants_1.strings.INPUT_SELECTOR);
          var labelElement = this.root.querySelector(constants_1.strings.LABEL_SELECTOR);
          this.label_ = labelElement ? labelFactory(labelElement) : null;
          var lineRippleElement = this.root.querySelector(constants_1.strings.LINE_RIPPLE_SELECTOR);
          this.lineRipple_ = lineRippleElement ? lineRippleFactory(lineRippleElement) : null;
          var outlineElement = this.root.querySelector(constants_1.strings.OUTLINE_SELECTOR);
          this.outline_ = outlineElement ? outlineFactory(outlineElement) : null;
          // Helper text
          var helperTextStrings = foundation_4.MDCTextFieldHelperTextFoundation.strings;
          var nextElementSibling = this.root.nextElementSibling;
          var hasHelperLine = nextElementSibling && nextElementSibling.classList.contains(constants_1.cssClasses.HELPER_LINE);
          var helperTextEl = hasHelperLine && nextElementSibling && nextElementSibling.querySelector(helperTextStrings.ROOT_SELECTOR);
          this.helperText_ = helperTextEl ? helperTextFactory(helperTextEl) : null;
          // Character counter
          var characterCounterStrings = foundation_2.MDCTextFieldCharacterCounterFoundation.strings;
          var characterCounterEl = this.root.querySelector(characterCounterStrings.ROOT_SELECTOR);
          // If character counter is not found in root element search in sibling element.
          if (!characterCounterEl && hasHelperLine && nextElementSibling) {
              characterCounterEl = nextElementSibling.querySelector(characterCounterStrings.ROOT_SELECTOR);
          }
          this.characterCounter_ = characterCounterEl ? characterCounterFactory(characterCounterEl) : null;
          // Leading icon
          var leadingIconEl = this.root.querySelector(constants_1.strings.LEADING_ICON_SELECTOR);
          this.leadingIcon_ = leadingIconEl ? iconFactory(leadingIconEl) : null;
          // Trailing icon
          var trailingIconEl = this.root.querySelector(constants_1.strings.TRAILING_ICON_SELECTOR);
          this.trailingIcon_ = trailingIconEl ? iconFactory(trailingIconEl) : null;
          // Prefix and Suffix
          this.prefix_ = this.root.querySelector(constants_1.strings.PREFIX_SELECTOR);
          this.suffix_ = this.root.querySelector(constants_1.strings.SUFFIX_SELECTOR);
          this.ripple = this.createRipple_(rippleFactory);
      };
      MDCTextField.prototype.destroy = function () {
          if (this.ripple) {
              this.ripple.destroy();
          }
          if (this.lineRipple_) {
              this.lineRipple_.destroy();
          }
          if (this.helperText_) {
              this.helperText_.destroy();
          }
          if (this.characterCounter_) {
              this.characterCounter_.destroy();
          }
          if (this.leadingIcon_) {
              this.leadingIcon_.destroy();
          }
          if (this.trailingIcon_) {
              this.trailingIcon_.destroy();
          }
          if (this.label_) {
              this.label_.destroy();
          }
          if (this.outline_) {
              this.outline_.destroy();
          }
          _super.prototype.destroy.call(this);
      };
      /**
       * Initializes the Text Field's internal state based on the environment's
       * state.
       */
      MDCTextField.prototype.initialSyncWithDOM = function () {
          this.disabled = this.input_.disabled;
      };
      Object.defineProperty(MDCTextField.prototype, "value", {
          get: function get() {
              return this.foundation.getValue();
          },
          /**
           * @param value The value to set on the input.
           */
          set: function set(value) {
              this.foundation.setValue(value);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "disabled", {
          get: function get() {
              return this.foundation.isDisabled();
          },
          /**
           * @param disabled Sets the Text Field disabled or enabled.
           */
          set: function set(disabled) {
              this.foundation.setDisabled(disabled);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "valid", {
          get: function get() {
              return this.foundation.isValid();
          },
          /**
           * @param valid Sets the Text Field valid or invalid.
           */
          set: function set(valid) {
              this.foundation.setValid(valid);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "required", {
          get: function get() {
              return this.input_.required;
          },
          /**
           * @param required Sets the Text Field to required.
           */
          set: function set(required) {
              this.input_.required = required;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "pattern", {
          get: function get() {
              return this.input_.pattern;
          },
          /**
           * @param pattern Sets the input element's validation pattern.
           */
          set: function set(pattern) {
              this.input_.pattern = pattern;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "minLength", {
          get: function get() {
              return this.input_.minLength;
          },
          /**
           * @param minLength Sets the input element's minLength.
           */
          set: function set(minLength) {
              this.input_.minLength = minLength;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "maxLength", {
          get: function get() {
              return this.input_.maxLength;
          },
          /**
           * @param maxLength Sets the input element's maxLength.
           */
          set: function set(maxLength) {
              // Chrome throws exception if maxLength is set to a value less than zero
              if (maxLength < 0) {
                  this.input_.removeAttribute('maxLength');
              } else {
                  this.input_.maxLength = maxLength;
              }
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "min", {
          get: function get() {
              return this.input_.min;
          },
          /**
           * @param min Sets the input element's min.
           */
          set: function set(min) {
              this.input_.min = min;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "max", {
          get: function get() {
              return this.input_.max;
          },
          /**
           * @param max Sets the input element's max.
           */
          set: function set(max) {
              this.input_.max = max;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "step", {
          get: function get() {
              return this.input_.step;
          },
          /**
           * @param step Sets the input element's step.
           */
          set: function set(step) {
              this.input_.step = step;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "helperTextContent", {
          /**
           * Sets the helper text element content.
           */
          set: function set(content) {
              this.foundation.setHelperTextContent(content);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "leadingIconAriaLabel", {
          /**
           * Sets the aria label of the leading icon.
           */
          set: function set(label) {
              this.foundation.setLeadingIconAriaLabel(label);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "leadingIconContent", {
          /**
           * Sets the text content of the leading icon.
           */
          set: function set(content) {
              this.foundation.setLeadingIconContent(content);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "trailingIconAriaLabel", {
          /**
           * Sets the aria label of the trailing icon.
           */
          set: function set(label) {
              this.foundation.setTrailingIconAriaLabel(label);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "trailingIconContent", {
          /**
           * Sets the text content of the trailing icon.
           */
          set: function set(content) {
              this.foundation.setTrailingIconContent(content);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "useNativeValidation", {
          /**
           * Enables or disables the use of native validation. Use this for custom validation.
           * @param useNativeValidation Set this to false to ignore native input validation.
           */
          set: function set(useNativeValidation) {
              this.foundation.setUseNativeValidation(useNativeValidation);
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "prefixText", {
          /**
           * Gets the text content of the prefix, or null if it does not exist.
           */
          get: function get() {
              return this.prefix_ ? this.prefix_.textContent : null;
          },
          /**
           * Sets the text content of the prefix, if it exists.
           */
          set: function set(prefixText) {
              if (this.prefix_) {
                  this.prefix_.textContent = prefixText;
              }
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextField.prototype, "suffixText", {
          /**
           * Gets the text content of the suffix, or null if it does not exist.
           */
          get: function get() {
              return this.suffix_ ? this.suffix_.textContent : null;
          },
          /**
           * Sets the text content of the suffix, if it exists.
           */
          set: function set(suffixText) {
              if (this.suffix_) {
                  this.suffix_.textContent = suffixText;
              }
          },
          enumerable: true,
          configurable: true
      });
      /**
       * Focuses the input element.
       */
      MDCTextField.prototype.focus = function () {
          this.input_.focus();
      };
      /**
       * Recomputes the outline SVG path for the outline element.
       */
      MDCTextField.prototype.layout = function () {
          var openNotch = this.foundation.shouldFloat;
          this.foundation.notchOutline(openNotch);
      };
      MDCTextField.prototype.getDefaultFoundation = function () {
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = __assign(__assign(__assign(__assign(__assign({}, this.getRootAdapterMethods_()), this.getInputAdapterMethods_()), this.getLabelAdapterMethods_()), this.getLineRippleAdapterMethods_()), this.getOutlineAdapterMethods_());
          // tslint:enable:object-literal-sort-keys
          return new foundation_3.MDCTextFieldFoundation(adapter, this.getFoundationMap_());
      };
      MDCTextField.prototype.getRootAdapterMethods_ = function () {
          var _this = this;
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          return {
              addClass: function addClass(className) {
                  return _this.root.classList.add(className);
              },
              removeClass: function removeClass(className) {
                  return _this.root.classList.remove(className);
              },
              hasClass: function hasClass(className) {
                  return _this.root.classList.contains(className);
              },
              registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler(evtType, handler) {
                  return _this.listen(evtType, handler);
              },
              deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler(evtType, handler) {
                  return _this.unlisten(evtType, handler);
              },
              registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler(handler) {
                  var getAttributesList = function getAttributesList(mutationsList) {
                      return mutationsList.map(function (mutation) {
                          return mutation.attributeName;
                      }).filter(function (attributeName) {
                          return attributeName;
                      });
                  };
                  var observer = new MutationObserver(function (mutationsList) {
                      return handler(getAttributesList(mutationsList));
                  });
                  var config = { attributes: true };
                  observer.observe(_this.input_, config);
                  return observer;
              },
              deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler(observer) {
                  return observer.disconnect();
              }
          };
          // tslint:enable:object-literal-sort-keys
      };
      MDCTextField.prototype.getInputAdapterMethods_ = function () {
          var _this = this;
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          return {
              getNativeInput: function getNativeInput() {
                  return _this.input_;
              },
              isFocused: function isFocused() {
                  return document.activeElement === _this.input_;
              },
              registerInputInteractionHandler: function registerInputInteractionHandler(evtType, handler) {
                  return _this.input_.addEventListener(evtType, handler, events_1.applyPassive());
              },
              deregisterInputInteractionHandler: function deregisterInputInteractionHandler(evtType, handler) {
                  return _this.input_.removeEventListener(evtType, handler, events_1.applyPassive());
              }
          };
          // tslint:enable:object-literal-sort-keys
      };
      MDCTextField.prototype.getLabelAdapterMethods_ = function () {
          var _this = this;
          return {
              floatLabel: function floatLabel(shouldFloat) {
                  return _this.label_ && _this.label_.float(shouldFloat);
              },
              getLabelWidth: function getLabelWidth() {
                  return _this.label_ ? _this.label_.getWidth() : 0;
              },
              hasLabel: function hasLabel() {
                  return Boolean(_this.label_);
              },
              shakeLabel: function shakeLabel(shouldShake) {
                  return _this.label_ && _this.label_.shake(shouldShake);
              },
              setLabelRequired: function setLabelRequired(isRequired) {
                  return _this.label_ && _this.label_.setRequired(isRequired);
              }
          };
      };
      MDCTextField.prototype.getLineRippleAdapterMethods_ = function () {
          var _this = this;
          return {
              activateLineRipple: function activateLineRipple() {
                  if (_this.lineRipple_) {
                      _this.lineRipple_.activate();
                  }
              },
              deactivateLineRipple: function deactivateLineRipple() {
                  if (_this.lineRipple_) {
                      _this.lineRipple_.deactivate();
                  }
              },
              setLineRippleTransformOrigin: function setLineRippleTransformOrigin(normalizedX) {
                  if (_this.lineRipple_) {
                      _this.lineRipple_.setRippleCenter(normalizedX);
                  }
              }
          };
      };
      MDCTextField.prototype.getOutlineAdapterMethods_ = function () {
          var _this = this;
          return {
              closeOutline: function closeOutline() {
                  return _this.outline_ && _this.outline_.closeNotch();
              },
              hasOutline: function hasOutline() {
                  return Boolean(_this.outline_);
              },
              notchOutline: function notchOutline(labelWidth) {
                  return _this.outline_ && _this.outline_.notch(labelWidth);
              }
          };
      };
      /**
       * @return A map of all subcomponents to subfoundations.
       */
      MDCTextField.prototype.getFoundationMap_ = function () {
          return {
              characterCounter: this.characterCounter_ ? this.characterCounter_.foundationForTextField : undefined,
              helperText: this.helperText_ ? this.helperText_.foundationForTextField : undefined,
              leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundationForTextField : undefined,
              trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundationForTextField : undefined
          };
      };
      MDCTextField.prototype.createRipple_ = function (rippleFactory) {
          var _this = this;
          var isTextArea = this.root.classList.contains(constants_1.cssClasses.TEXTAREA);
          var isOutlined = this.root.classList.contains(constants_1.cssClasses.OUTLINED);
          if (isTextArea || isOutlined) {
              return null;
          }
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = __assign(__assign({}, component_5.MDCRipple.createAdapter(this)), { isSurfaceActive: function isSurfaceActive() {
                  return ponyfill.matches(_this.input_, ':active');
              }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
                  return _this.input_.addEventListener(evtType, handler, events_1.applyPassive());
              }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
                  return _this.input_.removeEventListener(evtType, handler, events_1.applyPassive());
              } });
          // tslint:enable:object-literal-sort-keys
          return rippleFactory(this.root, new foundation_1.MDCRippleFoundation(adapter));
      };
      return MDCTextField;
  }(component_1.MDCComponent);
  exports.MDCTextField = MDCTextField;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/constants.ts":
  /*!*********************************************!*\
    !*** ./packages/mdc-textfield/constants.ts ***!
    \*********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var strings = {
      ARIA_CONTROLS: 'aria-controls',
      INPUT_SELECTOR: '.mdc-text-field__input',
      LABEL_SELECTOR: '.mdc-floating-label',
      LEADING_ICON_SELECTOR: '.mdc-text-field__icon--leading',
      LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',
      OUTLINE_SELECTOR: '.mdc-notched-outline',
      PREFIX_SELECTOR: '.mdc-text-field__affix--prefix',
      SUFFIX_SELECTOR: '.mdc-text-field__affix--suffix',
      TRAILING_ICON_SELECTOR: '.mdc-text-field__icon--trailing'
  };
  exports.strings = strings;
  var cssClasses = {
      DISABLED: 'mdc-text-field--disabled',
      FOCUSED: 'mdc-text-field--focused',
      FULLWIDTH: 'mdc-text-field--fullwidth',
      HELPER_LINE: 'mdc-text-field-helper-line',
      INVALID: 'mdc-text-field--invalid',
      LABEL_FLOATING: 'mdc-text-field--label-floating',
      NO_LABEL: 'mdc-text-field--no-label',
      OUTLINED: 'mdc-text-field--outlined',
      ROOT: 'mdc-text-field',
      TEXTAREA: 'mdc-text-field--textarea',
      WITH_LEADING_ICON: 'mdc-text-field--with-leading-icon',
      WITH_TRAILING_ICON: 'mdc-text-field--with-trailing-icon'
  };
  exports.cssClasses = cssClasses;
  var numbers = {
      LABEL_SCALE: 0.75
  };
  exports.numbers = numbers;
  /**
   * Whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation
   * under the "Validation-related attributes" section.
   */
  var VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength'];
  exports.VALIDATION_ATTR_WHITELIST = VALIDATION_ATTR_WHITELIST;
  /**
   * Label should always float for these types as they show some UI even if value is empty.
   */
  var ALWAYS_FLOAT_TYPES = ['color', 'date', 'datetime-local', 'month', 'range', 'time', 'week'];
  exports.ALWAYS_FLOAT_TYPES = ALWAYS_FLOAT_TYPES;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/foundation.ts":
  /*!**********************************************!*\
    !*** ./packages/mdc-textfield/foundation.ts ***!
    \**********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/constants.ts");
  var POINTERDOWN_EVENTS = ['mousedown', 'touchstart'];
  var INTERACTION_EVENTS = ['click', 'keydown'];
  var MDCTextFieldFoundation = /** @class */function (_super) {
      __extends(MDCTextFieldFoundation, _super);
      /**
       * @param adapter
       * @param foundationMap Map from subcomponent names to their subfoundations.
       */
      function MDCTextFieldFoundation(adapter, foundationMap) {
          if (foundationMap === void 0) {
              foundationMap = {};
          }
          var _this = _super.call(this, __assign(__assign({}, MDCTextFieldFoundation.defaultAdapter), adapter)) || this;
          _this.isFocused_ = false;
          _this.receivedUserInput_ = false;
          _this.isValid_ = true;
          _this.useNativeValidation_ = true;
          _this.helperText_ = foundationMap.helperText;
          _this.characterCounter_ = foundationMap.characterCounter;
          _this.leadingIcon_ = foundationMap.leadingIcon;
          _this.trailingIcon_ = foundationMap.trailingIcon;
          _this.inputFocusHandler_ = function () {
              return _this.activateFocus();
          };
          _this.inputBlurHandler_ = function () {
              return _this.deactivateFocus();
          };
          _this.inputInputHandler_ = function () {
              return _this.handleInput();
          };
          _this.setPointerXOffset_ = function (evt) {
              return _this.setTransformOrigin(evt);
          };
          _this.textFieldInteractionHandler_ = function () {
              return _this.handleTextFieldInteraction();
          };
          _this.validationAttributeChangeHandler_ = function (attributesList) {
              return _this.handleValidationAttributeChange(attributesList);
          };
          return _this;
      }
      Object.defineProperty(MDCTextFieldFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation, "numbers", {
          get: function get() {
              return constants_1.numbers;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldAlwaysFloat_", {
          get: function get() {
              var type = this.getNativeInput_().type;
              return constants_1.ALWAYS_FLOAT_TYPES.indexOf(type) >= 0;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldFloat", {
          get: function get() {
              return this.shouldAlwaysFloat_ || this.isFocused_ || !!this.getValue() || this.isBadInput_();
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldShake", {
          get: function get() {
              return !this.isFocused_ && !this.isValid() && !!this.getValue();
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldFoundation, "defaultAdapter", {
          /**
           * See {@link MDCTextFieldAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  hasClass: function hasClass() {
                      return true;
                  },
                  registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() {
                      return undefined;
                  },
                  deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() {
                      return undefined;
                  },
                  registerInputInteractionHandler: function registerInputInteractionHandler() {
                      return undefined;
                  },
                  deregisterInputInteractionHandler: function deregisterInputInteractionHandler() {
                      return undefined;
                  },
                  registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() {
                      return new MutationObserver(function () {
                          return undefined;
                      });
                  },
                  deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() {
                      return undefined;
                  },
                  getNativeInput: function getNativeInput() {
                      return null;
                  },
                  isFocused: function isFocused() {
                      return false;
                  },
                  activateLineRipple: function activateLineRipple() {
                      return undefined;
                  },
                  deactivateLineRipple: function deactivateLineRipple() {
                      return undefined;
                  },
                  setLineRippleTransformOrigin: function setLineRippleTransformOrigin() {
                      return undefined;
                  },
                  shakeLabel: function shakeLabel() {
                      return undefined;
                  },
                  floatLabel: function floatLabel() {
                      return undefined;
                  },
                  setLabelRequired: function setLabelRequired() {
                      return undefined;
                  },
                  hasLabel: function hasLabel() {
                      return false;
                  },
                  getLabelWidth: function getLabelWidth() {
                      return 0;
                  },
                  hasOutline: function hasOutline() {
                      return false;
                  },
                  notchOutline: function notchOutline() {
                      return undefined;
                  },
                  closeOutline: function closeOutline() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldFoundation.prototype.init = function () {
          var _this = this;
          if (this.adapter.hasLabel() && this.getNativeInput_().required) {
              this.adapter.setLabelRequired(true);
          }
          if (this.adapter.isFocused()) {
              this.inputFocusHandler_();
          } else if (this.adapter.hasLabel() && this.shouldFloat) {
              this.notchOutline(true);
              this.adapter.floatLabel(true);
              this.styleFloating_(true);
          }
          this.adapter.registerInputInteractionHandler('focus', this.inputFocusHandler_);
          this.adapter.registerInputInteractionHandler('blur', this.inputBlurHandler_);
          this.adapter.registerInputInteractionHandler('input', this.inputInputHandler_);
          POINTERDOWN_EVENTS.forEach(function (evtType) {
              _this.adapter.registerInputInteractionHandler(evtType, _this.setPointerXOffset_);
          });
          INTERACTION_EVENTS.forEach(function (evtType) {
              _this.adapter.registerTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_);
          });
          this.validationObserver_ = this.adapter.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_);
          this.setCharacterCounter_(this.getValue().length);
      };
      MDCTextFieldFoundation.prototype.destroy = function () {
          var _this = this;
          this.adapter.deregisterInputInteractionHandler('focus', this.inputFocusHandler_);
          this.adapter.deregisterInputInteractionHandler('blur', this.inputBlurHandler_);
          this.adapter.deregisterInputInteractionHandler('input', this.inputInputHandler_);
          POINTERDOWN_EVENTS.forEach(function (evtType) {
              _this.adapter.deregisterInputInteractionHandler(evtType, _this.setPointerXOffset_);
          });
          INTERACTION_EVENTS.forEach(function (evtType) {
              _this.adapter.deregisterTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_);
          });
          this.adapter.deregisterValidationAttributeChangeHandler(this.validationObserver_);
      };
      /**
       * Handles user interactions with the Text Field.
       */
      MDCTextFieldFoundation.prototype.handleTextFieldInteraction = function () {
          var nativeInput = this.adapter.getNativeInput();
          if (nativeInput && nativeInput.disabled) {
              return;
          }
          this.receivedUserInput_ = true;
      };
      /**
       * Handles validation attribute changes
       */
      MDCTextFieldFoundation.prototype.handleValidationAttributeChange = function (attributesList) {
          var _this = this;
          attributesList.some(function (attributeName) {
              if (constants_1.VALIDATION_ATTR_WHITELIST.indexOf(attributeName) > -1) {
                  _this.styleValidity_(true);
                  _this.adapter.setLabelRequired(_this.getNativeInput_().required);
                  return true;
              }
              return false;
          });
          if (attributesList.indexOf('maxlength') > -1) {
              this.setCharacterCounter_(this.getValue().length);
          }
      };
      /**
       * Opens/closes the notched outline.
       */
      MDCTextFieldFoundation.prototype.notchOutline = function (openNotch) {
          if (!this.adapter.hasOutline()) {
              return;
          }
          if (openNotch) {
              var labelWidth = this.adapter.getLabelWidth() * constants_1.numbers.LABEL_SCALE;
              this.adapter.notchOutline(labelWidth);
          } else {
              this.adapter.closeOutline();
          }
      };
      /**
       * Activates the text field focus state.
       */
      MDCTextFieldFoundation.prototype.activateFocus = function () {
          this.isFocused_ = true;
          this.styleFocused_(this.isFocused_);
          this.adapter.activateLineRipple();
          if (this.adapter.hasLabel()) {
              this.notchOutline(this.shouldFloat);
              this.adapter.floatLabel(this.shouldFloat);
              this.styleFloating_(this.shouldFloat);
              this.adapter.shakeLabel(this.shouldShake);
          }
          if (this.helperText_) {
              this.helperText_.showToScreenReader();
          }
      };
      /**
       * Sets the line ripple's transform origin, so that the line ripple activate
       * animation will animate out from the user's click location.
       */
      MDCTextFieldFoundation.prototype.setTransformOrigin = function (evt) {
          if (this.isDisabled() || this.adapter.hasOutline()) {
              return;
          }
          var touches = evt.touches;
          var targetEvent = touches ? touches[0] : evt;
          var targetClientRect = targetEvent.target.getBoundingClientRect();
          var normalizedX = targetEvent.clientX - targetClientRect.left;
          this.adapter.setLineRippleTransformOrigin(normalizedX);
      };
      /**
       * Handles input change of text input and text area.
       */
      MDCTextFieldFoundation.prototype.handleInput = function () {
          this.autoCompleteFocus();
          this.setCharacterCounter_(this.getValue().length);
      };
      /**
       * Activates the Text Field's focus state in cases when the input value
       * changes without user input (e.g. programmatically).
       */
      MDCTextFieldFoundation.prototype.autoCompleteFocus = function () {
          if (!this.receivedUserInput_) {
              this.activateFocus();
          }
      };
      /**
       * Deactivates the Text Field's focus state.
       */
      MDCTextFieldFoundation.prototype.deactivateFocus = function () {
          this.isFocused_ = false;
          this.adapter.deactivateLineRipple();
          var isValid = this.isValid();
          this.styleValidity_(isValid);
          this.styleFocused_(this.isFocused_);
          if (this.adapter.hasLabel()) {
              this.notchOutline(this.shouldFloat);
              this.adapter.floatLabel(this.shouldFloat);
              this.styleFloating_(this.shouldFloat);
              this.adapter.shakeLabel(this.shouldShake);
          }
          if (!this.shouldFloat) {
              this.receivedUserInput_ = false;
          }
      };
      MDCTextFieldFoundation.prototype.getValue = function () {
          return this.getNativeInput_().value;
      };
      /**
       * @param value The value to set on the input Element.
       */
      MDCTextFieldFoundation.prototype.setValue = function (value) {
          // Prevent Safari from moving the caret to the end of the input when the value has not changed.
          if (this.getValue() !== value) {
              this.getNativeInput_().value = value;
          }
          this.setCharacterCounter_(value.length);
          var isValid = this.isValid();
          this.styleValidity_(isValid);
          if (this.adapter.hasLabel()) {
              this.notchOutline(this.shouldFloat);
              this.adapter.floatLabel(this.shouldFloat);
              this.styleFloating_(this.shouldFloat);
              this.adapter.shakeLabel(this.shouldShake);
          }
      };
      /**
       * @return The custom validity state, if set; otherwise, the result of a native validity check.
       */
      MDCTextFieldFoundation.prototype.isValid = function () {
          return this.useNativeValidation_ ? this.isNativeInputValid_() : this.isValid_;
      };
      /**
       * @param isValid Sets the custom validity state of the Text Field.
       */
      MDCTextFieldFoundation.prototype.setValid = function (isValid) {
          this.isValid_ = isValid;
          this.styleValidity_(isValid);
          var shouldShake = !isValid && !this.isFocused_ && !!this.getValue();
          if (this.adapter.hasLabel()) {
              this.adapter.shakeLabel(shouldShake);
          }
      };
      /**
       * Enables or disables the use of native validation. Use this for custom validation.
       * @param useNativeValidation Set this to false to ignore native input validation.
       */
      MDCTextFieldFoundation.prototype.setUseNativeValidation = function (useNativeValidation) {
          this.useNativeValidation_ = useNativeValidation;
      };
      MDCTextFieldFoundation.prototype.isDisabled = function () {
          return this.getNativeInput_().disabled;
      };
      /**
       * @param disabled Sets the text-field disabled or enabled.
       */
      MDCTextFieldFoundation.prototype.setDisabled = function (disabled) {
          this.getNativeInput_().disabled = disabled;
          this.styleDisabled_(disabled);
      };
      /**
       * @param content Sets the content of the helper text.
       */
      MDCTextFieldFoundation.prototype.setHelperTextContent = function (content) {
          if (this.helperText_) {
              this.helperText_.setContent(content);
          }
      };
      /**
       * Sets the aria label of the leading icon.
       */
      MDCTextFieldFoundation.prototype.setLeadingIconAriaLabel = function (label) {
          if (this.leadingIcon_) {
              this.leadingIcon_.setAriaLabel(label);
          }
      };
      /**
       * Sets the text content of the leading icon.
       */
      MDCTextFieldFoundation.prototype.setLeadingIconContent = function (content) {
          if (this.leadingIcon_) {
              this.leadingIcon_.setContent(content);
          }
      };
      /**
       * Sets the aria label of the trailing icon.
       */
      MDCTextFieldFoundation.prototype.setTrailingIconAriaLabel = function (label) {
          if (this.trailingIcon_) {
              this.trailingIcon_.setAriaLabel(label);
          }
      };
      /**
       * Sets the text content of the trailing icon.
       */
      MDCTextFieldFoundation.prototype.setTrailingIconContent = function (content) {
          if (this.trailingIcon_) {
              this.trailingIcon_.setContent(content);
          }
      };
      /**
       * Sets character counter values that shows characters used and the total character limit.
       */
      MDCTextFieldFoundation.prototype.setCharacterCounter_ = function (currentLength) {
          if (!this.characterCounter_) {
              return;
          }
          var maxLength = this.getNativeInput_().maxLength;
          if (maxLength === -1) {
              throw new Error('MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.');
          }
          this.characterCounter_.setCounterValue(currentLength, maxLength);
      };
      /**
       * @return True if the Text Field input fails in converting the user-supplied value.
       */
      MDCTextFieldFoundation.prototype.isBadInput_ = function () {
          // The badInput property is not supported in IE 11 💩.
          return this.getNativeInput_().validity.badInput || false;
      };
      /**
       * @return The result of native validity checking (ValidityState.valid).
       */
      MDCTextFieldFoundation.prototype.isNativeInputValid_ = function () {
          return this.getNativeInput_().validity.valid;
      };
      /**
       * Styles the component based on the validity state.
       */
      MDCTextFieldFoundation.prototype.styleValidity_ = function (isValid) {
          var INVALID = MDCTextFieldFoundation.cssClasses.INVALID;
          if (isValid) {
              this.adapter.removeClass(INVALID);
          } else {
              this.adapter.addClass(INVALID);
          }
          if (this.helperText_) {
              this.helperText_.setValidity(isValid);
          }
      };
      /**
       * Styles the component based on the focused state.
       */
      MDCTextFieldFoundation.prototype.styleFocused_ = function (isFocused) {
          var FOCUSED = MDCTextFieldFoundation.cssClasses.FOCUSED;
          if (isFocused) {
              this.adapter.addClass(FOCUSED);
          } else {
              this.adapter.removeClass(FOCUSED);
          }
      };
      /**
       * Styles the component based on the disabled state.
       */
      MDCTextFieldFoundation.prototype.styleDisabled_ = function (isDisabled) {
          var _a = MDCTextFieldFoundation.cssClasses,
              DISABLED = _a.DISABLED,
              INVALID = _a.INVALID;
          if (isDisabled) {
              this.adapter.addClass(DISABLED);
              this.adapter.removeClass(INVALID);
          } else {
              this.adapter.removeClass(DISABLED);
          }
          if (this.leadingIcon_) {
              this.leadingIcon_.setDisabled(isDisabled);
          }
          if (this.trailingIcon_) {
              this.trailingIcon_.setDisabled(isDisabled);
          }
      };
      /**
       * Styles the component based on the label floating state.
       */
      MDCTextFieldFoundation.prototype.styleFloating_ = function (isFloating) {
          var LABEL_FLOATING = MDCTextFieldFoundation.cssClasses.LABEL_FLOATING;
          if (isFloating) {
              this.adapter.addClass(LABEL_FLOATING);
          } else {
              this.adapter.removeClass(LABEL_FLOATING);
          }
      };
      /**
       * @return The native text input element from the host environment, or an object with the same shape for unit tests.
       */
      MDCTextFieldFoundation.prototype.getNativeInput_ = function () {
          // this.adapter may be undefined in foundation unit tests. This happens when testdouble is creating a mock object
          // and invokes the shouldShake/shouldFloat getters (which in turn call getValue(), which calls this method) before
          // init() has been called from the MDCTextField constructor. To work around that issue, we return a dummy object.
          var nativeInput = this.adapter ? this.adapter.getNativeInput() : null;
          return nativeInput || {
              disabled: false,
              maxLength: -1,
              required: false,
              type: 'input',
              validity: {
                  badInput: false,
                  valid: true
              },
              value: ''
          };
      };
      return MDCTextFieldFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCTextFieldFoundation = MDCTextFieldFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCTextFieldFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/helper-text/component.ts":
  /*!*********************************************************!*\
    !*** ./packages/mdc-textfield/helper-text/component.ts ***!
    \*********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/helper-text/foundation.ts");
  var MDCTextFieldHelperText = /** @class */function (_super) {
      __extends(MDCTextFieldHelperText, _super);
      function MDCTextFieldHelperText() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCTextFieldHelperText.attachTo = function (root) {
          return new MDCTextFieldHelperText(root);
      };
      Object.defineProperty(MDCTextFieldHelperText.prototype, "foundationForTextField", {
          // Provided for access by MDCTextField component
          get: function get() {
              return this.foundation;
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldHelperText.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = {
              addClass: function addClass(className) {
                  return _this.root.classList.add(className);
              },
              removeClass: function removeClass(className) {
                  return _this.root.classList.remove(className);
              },
              hasClass: function hasClass(className) {
                  return _this.root.classList.contains(className);
              },
              setAttr: function setAttr(attr, value) {
                  return _this.root.setAttribute(attr, value);
              },
              removeAttr: function removeAttr(attr) {
                  return _this.root.removeAttribute(attr);
              },
              setContent: function setContent(content) {
                  _this.root.textContent = content;
              }
          };
          // tslint:enable:object-literal-sort-keys
          return new foundation_1.MDCTextFieldHelperTextFoundation(adapter);
      };
      return MDCTextFieldHelperText;
  }(component_1.MDCComponent);
  exports.MDCTextFieldHelperText = MDCTextFieldHelperText;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/helper-text/constants.ts":
  /*!*********************************************************!*\
    !*** ./packages/mdc-textfield/helper-text/constants.ts ***!
    \*********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var cssClasses = {
      HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent',
      HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg',
      ROOT: 'mdc-text-field-helper-text'
  };
  exports.cssClasses = cssClasses;
  var strings = {
      ARIA_HIDDEN: 'aria-hidden',
      ROLE: 'role',
      ROOT_SELECTOR: "." + cssClasses.ROOT
  };
  exports.strings = strings;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/helper-text/foundation.ts":
  /*!**********************************************************!*\
    !*** ./packages/mdc-textfield/helper-text/foundation.ts ***!
    \**********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/helper-text/constants.ts");
  var MDCTextFieldHelperTextFoundation = /** @class */function (_super) {
      __extends(MDCTextFieldHelperTextFoundation, _super);
      function MDCTextFieldHelperTextFoundation(adapter) {
          return _super.call(this, __assign(__assign({}, MDCTextFieldHelperTextFoundation.defaultAdapter), adapter)) || this;
      }
      Object.defineProperty(MDCTextFieldHelperTextFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldHelperTextFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldHelperTextFoundation, "defaultAdapter", {
          /**
           * See {@link MDCTextFieldHelperTextAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  addClass: function addClass() {
                      return undefined;
                  },
                  removeClass: function removeClass() {
                      return undefined;
                  },
                  hasClass: function hasClass() {
                      return false;
                  },
                  setAttr: function setAttr() {
                      return undefined;
                  },
                  removeAttr: function removeAttr() {
                      return undefined;
                  },
                  setContent: function setContent() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      /**
       * Sets the content of the helper text field.
       */
      MDCTextFieldHelperTextFoundation.prototype.setContent = function (content) {
          this.adapter.setContent(content);
      };
      /**
       * @param isPersistent Sets the persistency of the helper text.
       */
      MDCTextFieldHelperTextFoundation.prototype.setPersistent = function (isPersistent) {
          if (isPersistent) {
              this.adapter.addClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);
          } else {
              this.adapter.removeClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);
          }
      };
      /**
       * @param isValidation True to make the helper text act as an error validation message.
       */
      MDCTextFieldHelperTextFoundation.prototype.setValidation = function (isValidation) {
          if (isValidation) {
              this.adapter.addClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);
          } else {
              this.adapter.removeClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);
          }
      };
      /**
       * Makes the helper text visible to the screen reader.
       */
      MDCTextFieldHelperTextFoundation.prototype.showToScreenReader = function () {
          this.adapter.removeAttr(constants_1.strings.ARIA_HIDDEN);
      };
      /**
       * Sets the validity of the helper text based on the input validity.
       */
      MDCTextFieldHelperTextFoundation.prototype.setValidity = function (inputIsValid) {
          var helperTextIsPersistent = this.adapter.hasClass(constants_1.cssClasses.HELPER_TEXT_PERSISTENT);
          var helperTextIsValidationMsg = this.adapter.hasClass(constants_1.cssClasses.HELPER_TEXT_VALIDATION_MSG);
          var validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid;
          if (validationMsgNeedsDisplay) {
              this.adapter.setAttr(constants_1.strings.ROLE, 'alert');
          } else {
              this.adapter.removeAttr(constants_1.strings.ROLE);
          }
          if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {
              this.hide_();
          }
      };
      /**
       * Hides the help text from screen readers.
       */
      MDCTextFieldHelperTextFoundation.prototype.hide_ = function () {
          this.adapter.setAttr(constants_1.strings.ARIA_HIDDEN, 'true');
      };
      return MDCTextFieldHelperTextFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCTextFieldHelperTextFoundation = MDCTextFieldHelperTextFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCTextFieldHelperTextFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/helper-text/index.ts":
  /*!*****************************************************!*\
    !*** ./packages/mdc-textfield/helper-text/index.ts ***!
    \*****************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  function __export(m) {
    for (var p in m) {
      if (!exports.hasOwnProperty(p)) exports[p] = m[p];
    }
  }
  Object.defineProperty(exports, "__esModule", { value: true });
  __export(__webpack_require__(/*! ./component */ "./packages/mdc-textfield/helper-text/component.ts"));
  __export(__webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/helper-text/foundation.ts"));
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/helper-text/constants.ts");
  exports.helperTextCssClasses = constants_1.cssClasses;
  exports.helperTextStrings = constants_1.strings;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/icon/component.ts":
  /*!**************************************************!*\
    !*** ./packages/mdc-textfield/icon/component.ts ***!
    \**************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  Object.defineProperty(exports, "__esModule", { value: true });
  var component_1 = __webpack_require__(/*! @material/base/component */ "./packages/mdc-base/component.ts");
  var foundation_1 = __webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/icon/foundation.ts");
  var MDCTextFieldIcon = /** @class */function (_super) {
      __extends(MDCTextFieldIcon, _super);
      function MDCTextFieldIcon() {
          return _super !== null && _super.apply(this, arguments) || this;
      }
      MDCTextFieldIcon.attachTo = function (root) {
          return new MDCTextFieldIcon(root);
      };
      Object.defineProperty(MDCTextFieldIcon.prototype, "foundationForTextField", {
          // Provided for access by MDCTextField component
          get: function get() {
              return this.foundation;
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldIcon.prototype.getDefaultFoundation = function () {
          var _this = this;
          // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
          // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.
          // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
          var adapter = {
              getAttr: function getAttr(attr) {
                  return _this.root.getAttribute(attr);
              },
              setAttr: function setAttr(attr, value) {
                  return _this.root.setAttribute(attr, value);
              },
              removeAttr: function removeAttr(attr) {
                  return _this.root.removeAttribute(attr);
              },
              setContent: function setContent(content) {
                  _this.root.textContent = content;
              },
              registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
                  return _this.listen(evtType, handler);
              },
              deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
                  return _this.unlisten(evtType, handler);
              },
              notifyIconAction: function notifyIconAction() {
                  return _this.emit(foundation_1.MDCTextFieldIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */);
              }
          };
          // tslint:enable:object-literal-sort-keys
          return new foundation_1.MDCTextFieldIconFoundation(adapter);
      };
      return MDCTextFieldIcon;
  }(component_1.MDCComponent);
  exports.MDCTextFieldIcon = MDCTextFieldIcon;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/icon/constants.ts":
  /*!**************************************************!*\
    !*** ./packages/mdc-textfield/icon/constants.ts ***!
    \**************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2016 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  Object.defineProperty(exports, "__esModule", { value: true });
  var strings = {
      ICON_EVENT: 'MDCTextField:icon',
      ICON_ROLE: 'button'
  };
  exports.strings = strings;
  var cssClasses = {
      ROOT: 'mdc-text-field__icon'
  };
  exports.cssClasses = cssClasses;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/icon/foundation.ts":
  /*!***************************************************!*\
    !*** ./packages/mdc-textfield/icon/foundation.ts ***!
    \***************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2017 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  var __extends = this && this.__extends || function () {
      var _extendStatics = function extendStatics(d, b) {
          _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
              d.__proto__ = b;
          } || function (d, b) {
              for (var p in b) {
                  if (b.hasOwnProperty(p)) d[p] = b[p];
              }
          };
          return _extendStatics(d, b);
      };
      return function (d, b) {
          _extendStatics(d, b);
          function __() {
              this.constructor = d;
          }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  }();
  var __assign = this && this.__assign || function () {
      __assign = Object.assign || function (t) {
          for (var s, i = 1, n = arguments.length; i < n; i++) {
              s = arguments[i];
              for (var p in s) {
                  if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
              }
          }
          return t;
      };
      return __assign.apply(this, arguments);
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var foundation_1 = __webpack_require__(/*! @material/base/foundation */ "./packages/mdc-base/foundation.ts");
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/icon/constants.ts");
  var INTERACTION_EVENTS = ['click', 'keydown'];
  var MDCTextFieldIconFoundation = /** @class */function (_super) {
      __extends(MDCTextFieldIconFoundation, _super);
      function MDCTextFieldIconFoundation(adapter) {
          var _this = _super.call(this, __assign(__assign({}, MDCTextFieldIconFoundation.defaultAdapter), adapter)) || this;
          _this.savedTabIndex_ = null;
          _this.interactionHandler_ = function (evt) {
              return _this.handleInteraction(evt);
          };
          return _this;
      }
      Object.defineProperty(MDCTextFieldIconFoundation, "strings", {
          get: function get() {
              return constants_1.strings;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldIconFoundation, "cssClasses", {
          get: function get() {
              return constants_1.cssClasses;
          },
          enumerable: true,
          configurable: true
      });
      Object.defineProperty(MDCTextFieldIconFoundation, "defaultAdapter", {
          /**
           * See {@link MDCTextFieldIconAdapter} for typing information on parameters and return types.
           */
          get: function get() {
              // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.
              return {
                  getAttr: function getAttr() {
                      return null;
                  },
                  setAttr: function setAttr() {
                      return undefined;
                  },
                  removeAttr: function removeAttr() {
                      return undefined;
                  },
                  setContent: function setContent() {
                      return undefined;
                  },
                  registerInteractionHandler: function registerInteractionHandler() {
                      return undefined;
                  },
                  deregisterInteractionHandler: function deregisterInteractionHandler() {
                      return undefined;
                  },
                  notifyIconAction: function notifyIconAction() {
                      return undefined;
                  }
              };
              // tslint:enable:object-literal-sort-keys
          },
          enumerable: true,
          configurable: true
      });
      MDCTextFieldIconFoundation.prototype.init = function () {
          var _this = this;
          this.savedTabIndex_ = this.adapter.getAttr('tabindex');
          INTERACTION_EVENTS.forEach(function (evtType) {
              _this.adapter.registerInteractionHandler(evtType, _this.interactionHandler_);
          });
      };
      MDCTextFieldIconFoundation.prototype.destroy = function () {
          var _this = this;
          INTERACTION_EVENTS.forEach(function (evtType) {
              _this.adapter.deregisterInteractionHandler(evtType, _this.interactionHandler_);
          });
      };
      MDCTextFieldIconFoundation.prototype.setDisabled = function (disabled) {
          if (!this.savedTabIndex_) {
              return;
          }
          if (disabled) {
              this.adapter.setAttr('tabindex', '-1');
              this.adapter.removeAttr('role');
          } else {
              this.adapter.setAttr('tabindex', this.savedTabIndex_);
              this.adapter.setAttr('role', constants_1.strings.ICON_ROLE);
          }
      };
      MDCTextFieldIconFoundation.prototype.setAriaLabel = function (label) {
          this.adapter.setAttr('aria-label', label);
      };
      MDCTextFieldIconFoundation.prototype.setContent = function (content) {
          this.adapter.setContent(content);
      };
      MDCTextFieldIconFoundation.prototype.handleInteraction = function (evt) {
          var isEnterKey = evt.key === 'Enter' || evt.keyCode === 13;
          if (evt.type === 'click' || isEnterKey) {
              evt.preventDefault(); // stop click from causing host label to focus
              // input
              this.adapter.notifyIconAction();
          }
      };
      return MDCTextFieldIconFoundation;
  }(foundation_1.MDCFoundation);
  exports.MDCTextFieldIconFoundation = MDCTextFieldIconFoundation;
  // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.
  exports.default = MDCTextFieldIconFoundation;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/icon/index.ts":
  /*!**********************************************!*\
    !*** ./packages/mdc-textfield/icon/index.ts ***!
    \**********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  function __export(m) {
    for (var p in m) {
      if (!exports.hasOwnProperty(p)) exports[p] = m[p];
    }
  }
  Object.defineProperty(exports, "__esModule", { value: true });
  __export(__webpack_require__(/*! ./component */ "./packages/mdc-textfield/icon/component.ts"));
  __export(__webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/icon/foundation.ts"));
  var constants_1 = __webpack_require__(/*! ./constants */ "./packages/mdc-textfield/icon/constants.ts");
  exports.iconCssClasses = constants_1.cssClasses;
  exports.iconStrings = constants_1.strings;
  
  /***/ }),
  
  /***/ "./packages/mdc-textfield/index.ts":
  /*!*****************************************!*\
    !*** ./packages/mdc-textfield/index.ts ***!
    \*****************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /**
   * @license
   * Copyright 2019 Google Inc.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   * copies of the Software, and to permit persons to whom the Software is
   * furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice shall be included in
   * all copies or substantial portions of the Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   * THE SOFTWARE.
   */
  
  function __export(m) {
    for (var p in m) {
      if (!exports.hasOwnProperty(p)) exports[p] = m[p];
    }
  }
  Object.defineProperty(exports, "__esModule", { value: true });
  __export(__webpack_require__(/*! ./component */ "./packages/mdc-textfield/component.ts"));
  __export(__webpack_require__(/*! ./constants */ "./packages/mdc-textfield/constants.ts"));
  __export(__webpack_require__(/*! ./foundation */ "./packages/mdc-textfield/foundation.ts"));
  __export(__webpack_require__(/*! ./character-counter/index */ "./packages/mdc-textfield/character-counter/index.ts"));
  __export(__webpack_require__(/*! ./helper-text/index */ "./packages/mdc-textfield/helper-text/index.ts"));
  __export(__webpack_require__(/*! ./icon/index */ "./packages/mdc-textfield/icon/index.ts"));
  
  /***/ })
  
  /******/ });
  });
  //# sourceMappingURL=mdc.textfield.js.map