/*! Material Components for the Web Copyright (c) 2018 Google Inc. License: Apache-2.0 */ (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["mdc"] = factory(); else root["mdc"] = 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, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // 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 = 48); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @template A */ var MDCFoundation = function () { _createClass(MDCFoundation, null, [{ key: "cssClasses", /** @return enum{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 {}; } /** @return enum{strings} */ }, { key: "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 {}; } /** @return enum{numbers} */ }, { key: "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 {}; } /** @return {!Object} */ }, { key: "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 {}; } /** * @param {A=} adapter */ }]); function MDCFoundation() { var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, MDCFoundation); /** @protected {!A} */ this.adapter_ = adapter; } _createClass(MDCFoundation, [{ key: "init", value: function init() { // Subclasses should override this method to perform initialization routines (registering events, etc.) } }, { key: "destroy", value: function destroy() { // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.) } }]); return MDCFoundation; }(); /* harmony default export */ __webpack_exports__["a"] = (MDCFoundation); /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(0); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @template F */ var MDCComponent = function () { _createClass(MDCComponent, null, [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCComponent} */ value: function attachTo(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 __WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]()); } /** * @param {!Element} root * @param {F=} foundation * @param {...?} args */ }]); function MDCComponent(root) { var foundation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; _classCallCheck(this, MDCComponent); /** @protected {!Element} */ this.root_ = root; for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } this.initialize.apply(this, 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. /** @protected {!F} */ this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation; this.foundation_.init(); this.initialSyncWithDOM(); } _createClass(MDCComponent, [{ key: 'initialize', value: function initialize() /* ...args */{} // 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. /** * @return {!F} foundation */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { // 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'); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { // 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. } }, { key: 'destroy', value: function destroy() { // 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(); } /** * Wrapper method to add an event listener to the component's root element. This is most useful when * listening for custom events. * @param {string} evtType * @param {!Function} handler */ }, { key: 'listen', value: function listen(evtType, handler) { this.root_.addEventListener(evtType, handler); } /** * Wrapper method to remove an event listener to the component's root element. This is most useful when * unlistening for custom events. * @param {string} evtType * @param {!Function} handler */ }, { key: 'unlisten', value: function unlisten(evtType, handler) { this.root_.removeEventListener(evtType, handler); } /** * Fires a cross-browser-compatible custom event from the component root of the given type, * with the given data. * @param {string} evtType * @param {!Object} evtData * @param {boolean=} shouldBubble */ }, { key: 'emit', value: function emit(evtType, evtData) { var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var evt = void 0; if (typeof CustomEvent === 'function') { evt = new CustomEvent(evtType, { detail: evtData, bubbles: shouldBubble }); } else { evt = document.createEvent('CustomEvent'); evt.initCustomEvent(evtType, shouldBubble, false, evtData); } this.root_.dispatchEvent(evt); } }]); return MDCComponent; }(); /* harmony default export */ __webpack_exports__["a"] = (MDCComponent); /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__component__ = __webpack_require__(1); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCComponent", function() { return __WEBPACK_IMPORTED_MODULE_1__component__["a"]; }); /** * @license * Copyright 2016 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRipple", function() { return MDCRipple; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RippleCapableSurface", function() { return RippleCapableSurface; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(23); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(51); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(6); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRippleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends MDCComponent */ var MDCRipple = function (_MDCComponent) { _inherits(MDCRipple, _MDCComponent); /** @param {...?} args */ function MDCRipple() { var _ref; _classCallCheck(this, MDCRipple); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @type {boolean} */ var _this = _possibleConstructorReturn(this, (_ref = MDCRipple.__proto__ || Object.getPrototypeOf(MDCRipple)).call.apply(_ref, [this].concat(args))); _this.disabled = false; /** @private {boolean} */ _this.unbounded_; return _this; } /** * @param {!Element} root * @param {{isUnbounded: (boolean|undefined)}=} options * @return {!MDCRipple} */ _createClass(MDCRipple, [{ key: 'setUnbounded_', /** * 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. * @private */ value: function setUnbounded_() { this.foundation_.setUnbounded(this.unbounded_); } }, { key: 'activate', value: function activate() { this.foundation_.activate(); } }, { key: 'deactivate', value: function deactivate() { this.foundation_.deactivate(); } }, { key: 'layout', value: function layout() { this.foundation_.layout(); } /** * @return {!MDCRippleFoundation} * @override */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](MDCRipple.createAdapter(this)); } /** @override */ }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { this.unbounded = 'mdcRippleIsUnbounded' in this.root_.dataset; } }, { key: 'unbounded', /** @return {boolean} */ get: function get() { return this.unbounded_; } /** @param {boolean} unbounded */ , set: function set(unbounded) { this.unbounded_ = Boolean(unbounded); this.setUnbounded_(); } }], [{ key: 'attachTo', value: function attachTo(root) { var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref2$isUnbounded = _ref2.isUnbounded, isUnbounded = _ref2$isUnbounded === undefined ? undefined : _ref2$isUnbounded; var ripple = new MDCRipple(root); // Only override unbounded behavior if option is explicitly specified if (isUnbounded !== undefined) { ripple.unbounded = /** @type {boolean} */isUnbounded; } return ripple; } /** * @param {!RippleCapableSurface} instance * @return {!MDCRippleAdapter} */ }, { key: 'createAdapter', value: function createAdapter(instance) { var MATCHES = __WEBPACK_IMPORTED_MODULE_3__util__["getMatchesProperty"](HTMLElement.prototype); return { browserSupportsCssVars: function browserSupportsCssVars() { return __WEBPACK_IMPORTED_MODULE_3__util__["supportsCssVariables"](window); }, isUnbounded: function isUnbounded() { return instance.unbounded; }, isSurfaceActive: function isSurfaceActive() { return instance.root_[MATCHES](':active'); }, isSurfaceDisabled: function isSurfaceDisabled() { return instance.disabled; }, addClass: function addClass(className) { return instance.root_.classList.add(className); }, removeClass: function removeClass(className) { return instance.root_.classList.remove(className); }, containsEventTarget: function containsEventTarget(target) { return instance.root_.contains(target); }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return instance.root_.addEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]()); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return instance.root_.removeEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]()); }, registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) { return document.documentElement.addEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]()); }, deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) { return document.documentElement.removeEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]()); }, registerResizeHandler: function registerResizeHandler(handler) { return window.addEventListener('resize', handler); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { return window.removeEventListener('resize', handler); }, updateCssVariable: function updateCssVariable(varName, value) { return instance.root_.style.setProperty(varName, value); }, computeBoundingRect: function computeBoundingRect() { return instance.root_.getBoundingClientRect(); }, getWindowPageOffset: function getWindowPageOffset() { return { x: window.pageXOffset, y: window.pageYOffset }; } }; } }]); return MDCRipple; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /** * See Material Design spec for more details on when to use ripples. * https://material.io/guidelines/motion/choreography.html#choreography-creation * @record */ var RippleCapableSurface = function RippleCapableSurface() { _classCallCheck(this, RippleCapableSurface); }; /** @protected {!Element} */ RippleCapableSurface.prototype.root_; /** * Whether or not the ripple bleeds out of the bounds of the element. * @type {boolean|undefined} */ RippleCapableSurface.prototype.unbounded; /** * Whether or not the ripple is attached to a disabled component. * @type {boolean|undefined} */ RippleCapableSurface.prototype.disabled; /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControlState", function() { return MDCSelectionControlState; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControl", function() { return MDCSelectionControl; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_ripple_index__ = __webpack_require__(3); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @typedef {{ * checked: boolean, * indeterminate: boolean, * disabled: boolean, * value: ?string * }} */ var MDCSelectionControlState = void 0; /** * @record */ var MDCSelectionControl = function () { function MDCSelectionControl() { _classCallCheck(this, MDCSelectionControl); } _createClass(MDCSelectionControl, [{ key: 'ripple', /** @return {?MDCRipple} */ get: function get() {} }]); return MDCSelectionControl; }(); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCTabScrollerAnimation */ /* unused harmony export MDCTabScrollerHorizontalEdges */ /* unused harmony export MDCTabScrollerAdapter */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * MDCTabScrollerAnimation contains the values required for animating from the * current scroll position to the new scroll position. The "finalScrollPosition" * value represents the new scroll position while the "scrollDelta" value is the * corresponding transformation that is applied to the scroll content. Together, * they create the animation by first updating the scroll value then applying * the transformation and animating the transition. Both pieces are necessary * for the scroll animation to work. The values are used as-is by the tab * scroller animation method, ensuring that all logic for determining scroll * position or transformation is abstracted away from the animation method. * @typedef {{finalScrollPosition: number, scrollDelta: number}} */ var MDCTabScrollerAnimation = void 0; /** * MDCTabScrollerHorizontalEdges represents the left and right edges of the * scroll content. These values vary depending on how scrolling in RTL is * implemented by the browser. One value is always 0 and one value is always * the max scrollable value as either a positive or negative integer. * @typedef {{left: number, right: number}} */ var MDCTabScrollerHorizontalEdges = void 0; /** * Adapter for MDC Tab Scroller. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Tab into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTabScrollerAdapter = function () { function MDCTabScrollerAdapter() { _classCallCheck(this, MDCTabScrollerAdapter); } _createClass(MDCTabScrollerAdapter, [{ key: "addClass", /** * Adds the given className to the root element. * @param {string} className The className to add */ value: function addClass(className) {} /** * Removes the given className from the root element. * @param {string} className The className to remove */ }, { key: "removeClass", value: function removeClass(className) {} /** * Adds the given className to the scroll area element. * @param {string} className The className to add */ }, { key: "addScrollAreaClass", value: function addScrollAreaClass(className) {} /** * Returns whether the event target matches given className. * @param {EventTarget} evtTarget The event target * @param {string} selector The selector to check * @return {boolean} */ }, { key: "eventTargetMatchesSelector", value: function eventTargetMatchesSelector(evtTarget, selector) {} /** * Sets a style property of the area element to the passed value. * @param {string} propName The style property name to set * @param {string} value The style property value */ }, { key: "setScrollAreaStyleProperty", value: function setScrollAreaStyleProperty(propName, value) {} /** * Sets a style property of the content element to the passed value. * @param {string} propName The style property name to set * @param {string} value The style property value */ }, { key: "setScrollContentStyleProperty", value: function setScrollContentStyleProperty(propName, value) {} /** * Returns the scroll content element's computed style value of the given css property `propertyName`. * We achieve this via `getComputedStyle(...).getPropertyValue(propertyName)`. * @param {string} propertyName * @return {string} */ }, { key: "getScrollContentStyleValue", value: function getScrollContentStyleValue(propertyName) {} /** * Sets the scrollLeft value of the scroll area element to the passed value. * @param {number} scrollLeft The new scrollLeft value */ }, { key: "setScrollAreaScrollLeft", value: function setScrollAreaScrollLeft(scrollLeft) {} /** * Returns the scrollLeft value of the scroll area element. * @return {number} */ }, { key: "getScrollAreaScrollLeft", value: function getScrollAreaScrollLeft() {} /** * Returns the offsetWidth of the scroll content element. * @return {number} */ }, { key: "getScrollContentOffsetWidth", value: function getScrollContentOffsetWidth() {} /** * Returns the offsetWitdth of the scroll area element. * @return {number} */ }, { key: "getScrollAreaOffsetWidth", value: function getScrollAreaOffsetWidth() {} /** * Returns the bounding client rect of the scroll area element. * @return {!ClientRect} */ }, { key: "computeScrollAreaClientRect", value: function computeScrollAreaClientRect() {} /** * Returns the bounding client rect of the scroll content element. * @return {!ClientRect} */ }, { key: "computeScrollContentClientRect", value: function computeScrollContentClientRect() {} /** * Returns the height of the browser's horizontal scrollbars (in px). * @return {number} */ }, { key: "computeHorizontalScrollbarHeight", value: function computeHorizontalScrollbarHeight() {} }]); return MDCTabScrollerAdapter; }(); /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "supportsCssVariables", function() { return supportsCssVariables; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyPassive", function() { return applyPassive; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatchesProperty", function() { return getMatchesProperty; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNormalizedEventCoords", function() { return getNormalizedEventCoords; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Stores result from supportsCssVariables to avoid redundant processing to detect CSS custom variable support. * @private {boolean|undefined} */ var supportsCssVariables_ = void 0; /** * Stores result from applyPassive to avoid redundant processing to detect passive event listener support. * @private {boolean|undefined} */ var supportsPassive_ = void 0; /** * @param {!Window} windowObj * @return {boolean} */ function detectEdgePseudoVarBug(windowObj) { // Detect versions of Edge with buggy var() support // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/ var document = windowObj.document; var node = document.createElement('div'); node.className = 'mdc-ripple-surface--test-edge-var-bug'; document.body.appendChild(node); // The bug exists if ::before style ends up propagating to the parent element. // Additionally, getComputedStyle returns null in iframes with display: "none" in Firefox, // but Firefox is known to support CSS custom properties correctly. // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397 var computedStyle = windowObj.getComputedStyle(node); var hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid'; node.remove(); return hasPseudoVarBug; } /** * @param {!Window} windowObj * @param {boolean=} forceRefresh * @return {boolean|undefined} */ function supportsCssVariables(windowObj) { var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var supportsCssVariables = supportsCssVariables_; if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) { return supportsCssVariables; } var supportsFunctionPresent = windowObj.CSS && typeof windowObj.CSS.supports === 'function'; if (!supportsFunctionPresent) { return; } var explicitlySupportsCssVars = windowObj.CSS.supports('--css-vars', 'yes'); // See: https://bugs.webkit.org/show_bug.cgi?id=154669 // See: README section on Safari var weAreFeatureDetectingSafari10plus = windowObj.CSS.supports('(--css-vars: yes)') && windowObj.CSS.supports('color', '#00000000'); if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) { supportsCssVariables = !detectEdgePseudoVarBug(windowObj); } else { supportsCssVariables = false; } if (!forceRefresh) { supportsCssVariables_ = supportsCssVariables; } return supportsCssVariables; } // /** * Determine whether the current browser supports passive event listeners, and if so, use them. * @param {!Window=} globalObj * @param {boolean=} forceRefresh * @return {boolean|{passive: boolean}} */ function applyPassive() { var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (supportsPassive_ === undefined || forceRefresh) { var isSupported = false; try { globalObj.document.addEventListener('test', null, { get passive() { isSupported = true; } }); } catch (e) {} supportsPassive_ = isSupported; } return supportsPassive_ ? { passive: true } : false; } /** * @param {!Object} HTMLElementPrototype * @return {!Array} */ function getMatchesProperty(HTMLElementPrototype) { return ['webkitMatchesSelector', 'msMatchesSelector', 'matches'].filter(function (p) { return p in HTMLElementPrototype; }).pop(); } /** * @param {!Event} ev * @param {{x: number, y: number}} pageOffset * @param {!ClientRect} clientRect * @return {{x: number, y: number}} */ function getNormalizedEventCoords(ev, pageOffset, clientRect) { var x = pageOffset.x, y = pageOffset.y; var documentX = x + clientRect.left; var documentY = y + clientRect.top; var normalizedX = void 0; var normalizedY = void 0; // Determine touch point relative to the ripple container. if (ev.type === 'touchstart') { normalizedX = ev.changedTouches[0].pageX - documentX; normalizedY = ev.changedTouches[0].pageY - documentY; } else { normalizedX = ev.pageX - documentX; normalizedY = ev.pageY - documentY; } return { x: normalizedX, y: normalizedY }; } /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Top App Bar * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Top App Bar into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTopAppBarAdapter = function () { function MDCTopAppBarAdapter() { _classCallCheck(this, MDCTopAppBarAdapter); } _createClass(MDCTopAppBarAdapter, [{ key: "addClass", /** * Adds a class to the root Element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the root Element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns true if the root Element contains the given class. * @param {string} className * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** * Sets the specified inline style property on the root Element to the given value. * @param {string} property * @param {string} value */ }, { key: "setStyle", value: function setStyle(property, value) {} /** * Gets the height of the top app bar. * @return {number} */ }, { key: "getTopAppBarHeight", value: function getTopAppBarHeight() {} /** * Registers an event handler on the navigation icon element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "registerNavigationIconInteractionHandler", value: function registerNavigationIconInteractionHandler(type, handler) {} /** * Deregisters an event handler on the navigation icon element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "deregisterNavigationIconInteractionHandler", value: function deregisterNavigationIconInteractionHandler(type, handler) {} /** * Emits an event when the navigation icon is clicked. */ }, { key: "notifyNavigationIconClicked", value: function notifyNavigationIconClicked() {} /** @param {function(!Event)} handler */ }, { key: "registerScrollHandler", value: function registerScrollHandler(handler) {} /** @param {function(!Event)} handler */ }, { key: "deregisterScrollHandler", value: function deregisterScrollHandler(handler) {} /** @param {function(!Event)} handler */ }, { key: "registerResizeHandler", value: function registerResizeHandler(handler) {} /** @param {function(!Event)} handler */ }, { key: "deregisterResizeHandler", value: function deregisterResizeHandler(handler) {} /** @return {number} */ }, { key: "getViewportScrollY", value: function getViewportScrollY() {} /** @return {number} */ }, { key: "getTotalActionItems", value: function getTotalActionItems() {} }]); return MDCTopAppBarAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCTopAppBarAdapter); /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { FIXED_CLASS: 'mdc-top-app-bar--fixed', FIXED_SCROLLED_CLASS: 'mdc-top-app-bar--fixed-scrolled', SHORT_CLASS: 'mdc-top-app-bar--short', SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item', SHORT_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed' }; /** @enum {number} */ var numbers = { DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100, MAX_TOP_APP_BAR_HEIGHT: 128 }; /** @enum {string} */ var strings = { ACTION_ITEM_SELECTOR: '.mdc-top-app-bar__action-item', NAVIGATION_EVENT: 'MDCTopAppBar:nav', NAVIGATION_ICON_SELECTOR: '.mdc-top-app-bar__navigation-icon', ROOT_SELECTOR: '.mdc-top-app-bar', TITLE_SELECTOR: '.mdc-top-app-bar__title' }; /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return transformStyleProperties; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getCorrectEventName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCorrectPropertyName; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @typedef {{ * noPrefix: string, * webkitPrefix: string, * styleProperty: string * }} */ var VendorPropertyMapType = void 0; /** @const {Object} */ var eventTypeMap = { 'animationstart': { noPrefix: 'animationstart', webkitPrefix: 'webkitAnimationStart', styleProperty: 'animation' }, 'animationend': { noPrefix: 'animationend', webkitPrefix: 'webkitAnimationEnd', styleProperty: 'animation' }, 'animationiteration': { noPrefix: 'animationiteration', webkitPrefix: 'webkitAnimationIteration', styleProperty: 'animation' }, 'transitionend': { noPrefix: 'transitionend', webkitPrefix: 'webkitTransitionEnd', styleProperty: 'transition' } }; /** @const {Object} */ var cssPropertyMap = { 'animation': { noPrefix: 'animation', webkitPrefix: '-webkit-animation' }, 'transform': { noPrefix: 'transform', webkitPrefix: '-webkit-transform' }, 'transition': { noPrefix: 'transition', webkitPrefix: '-webkit-transition' } }; /** * @param {!Object} windowObj * @return {boolean} */ function hasProperShape(windowObj) { return windowObj['document'] !== undefined && typeof windowObj['document']['createElement'] === 'function'; } /** * @param {string} eventType * @return {boolean} */ function eventFoundInMaps(eventType) { return eventType in eventTypeMap || eventType in cssPropertyMap; } /** * @param {string} eventType * @param {!Object} map * @param {!Element} el * @return {string} */ function getJavaScriptEventName(eventType, map, el) { return map[eventType].styleProperty in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; } /** * Helper function to determine browser prefix for CSS3 animation events * and property names. * @param {!Object} windowObj * @param {string} eventType * @return {string} */ function getAnimationName(windowObj, eventType) { if (!hasProperShape(windowObj) || !eventFoundInMaps(eventType)) { return eventType; } var map = /** @type {!Object} */eventType in eventTypeMap ? eventTypeMap : cssPropertyMap; var el = windowObj['document']['createElement']('div'); var eventName = ''; if (map === eventTypeMap) { eventName = getJavaScriptEventName(eventType, map, el); } else { eventName = map[eventType].noPrefix in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix; } return eventName; } // Public functions to access getAnimationName() for JavaScript events or CSS // property names. var transformStyleProperties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'MSTransform']; /** * @param {!Object} windowObj * @param {string} eventType * @return {string} */ function getCorrectEventName(windowObj, eventType) { return getAnimationName(windowObj, eventType); } /** * @param {!Object} windowObj * @param {string} eventType * @return {string} */ function getCorrectPropertyName(windowObj, eventType) { return getAnimationName(windowObj, eventType); } /***/ }), /* 10 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(69); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__constants__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(70); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /***/ }), /* 11 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCTabDimensions */ /* unused harmony export MDCTabAdapter */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * MDCTabDimensions provides details about the left and right edges of the Tab * root element and the Tab content element. These values are used to determine * the visual position of the Tab with respect it's parent container. * @typedef {{rootLeft: number, rootRight: number, contentLeft: number, contentRight: number}} */ var MDCTabDimensions = void 0; /** * Adapter for MDC Tab. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Tab into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTabAdapter = function () { function MDCTabAdapter() { _classCallCheck(this, MDCTabAdapter); } _createClass(MDCTabAdapter, [{ key: "registerEventHandler", /** * Registers an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ value: function registerEventHandler(evtType, handler) {} /** * Deregisters an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "deregisterEventHandler", value: function deregisterEventHandler(evtType, handler) {} /** * Adds the given className to the root element. * @param {string} className The className to add */ }, { key: "addClass", value: function addClass(className) {} /** * Removes the given className from the root element. * @param {string} className The className to remove */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns whether the root element has the given className. * @param {string} className The className to remove * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** * Sets the given attrName of the root element to the given value. * @param {string} attr The attribute name to set * @param {string} value The value so give the attribute */ }, { key: "setAttr", value: function setAttr(attr, value) {} /** * Activates the indicator element. * @param {!ClientRect=} previousIndicatorClientRect The client rect of the previously activated indicator */ }, { key: "activateIndicator", value: function activateIndicator(previousIndicatorClientRect) {} /** Deactivates the indicator. */ }, { key: "deactivateIndicator", value: function deactivateIndicator() {} /** * Returns the client rect of the indicator. * @return {!ClientRect} */ }, { key: "computeIndicatorClientRect", value: function computeIndicatorClientRect() {} /** * Emits the MDCTab:interacted event for use by parent components */ }, { key: "notifyInteracted", value: function notifyInteracted() {} /** * Returns the offsetLeft value of the root element. * @return {number} */ }, { key: "getOffsetLeft", value: function getOffsetLeft() {} /** * Returns the offsetWidth value of the root element. * @return {number} */ }, { key: "getOffsetWidth", value: function getOffsetWidth() {} /** * Returns the offsetLeft of the content element. * @return {number} */ }, { key: "getContentOffsetLeft", value: function getContentOffsetLeft() {} /** * Returns the offsetWidth of the content element. * @return {number} */ }, { key: "getContentOffsetWidth", value: function getContentOffsetWidth() {} /** * Applies focus to the root element */ }, { key: "focus", value: function focus() {} }]); return MDCTabAdapter; }(); /***/ }), /* 12 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(5); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @abstract */ var MDCTabScrollerRTL = function () { /** @param {!MDCTabScrollerAdapter} adapter */ function MDCTabScrollerRTL(adapter) { _classCallCheck(this, MDCTabScrollerRTL); /** @private */ this.adapter_ = adapter; } /** * @param {number} translateX The current translateX position * @return {number} * @abstract */ _createClass(MDCTabScrollerRTL, [{ key: 'getScrollPositionRTL', value: function getScrollPositionRTL(translateX) {} /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} * @abstract */ }, { key: 'scrollToRTL', value: function scrollToRTL(scrollX) {} /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} * @abstract */ }, { key: 'incrementScrollRTL', value: function incrementScrollRTL(scrollX) {} /** * @param {number} scrollX The current scrollX position * @param {number} translateX The current translateX position * @return {number} * @abstract */ }, { key: 'getAnimatingScrollPosition', value: function getAnimatingScrollPosition(scrollX, translateX) {} }]); return MDCTabScrollerRTL; }(); /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTL); /***/ }), /* 13 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_foundation__ = __webpack_require__(0); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} */ var MDCTopAppBarBaseFoundation = function (_MDCFoundation) { _inherits(MDCTopAppBarBaseFoundation, _MDCFoundation); _createClass(MDCTopAppBarBaseFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */]; } /** @return enum {number} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */]; } /** * {@see MDCTopAppBarAdapter} for typing information on parameters and return * types. * @return {!MDCTopAppBarAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTopAppBarAdapter} */{ hasClass: function hasClass() /* className: string */{}, addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, setStyle: function setStyle() /* property: string, value: string */{}, getTopAppBarHeight: function getTopAppBarHeight() {}, registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler() /* type: string, handler: EventListener */{}, deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler() /* type: string, handler: EventListener */{}, notifyNavigationIconClicked: function notifyNavigationIconClicked() {}, registerScrollHandler: function registerScrollHandler() /* handler: EventListener */{}, deregisterScrollHandler: function deregisterScrollHandler() /* handler: EventListener */{}, registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{}, deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}, getViewportScrollY: function getViewportScrollY() { return (/* number */0 ); }, getTotalActionItems: function getTotalActionItems() { return (/* number */0 ); } } ); } /** * @param {!MDCTopAppBarAdapter} adapter */ }]); function MDCTopAppBarBaseFoundation( /** @type {!MDCTopAppBarAdapter} */adapter) { _classCallCheck(this, MDCTopAppBarBaseFoundation); var _this = _possibleConstructorReturn(this, (MDCTopAppBarBaseFoundation.__proto__ || Object.getPrototypeOf(MDCTopAppBarBaseFoundation)).call(this, _extends(MDCTopAppBarBaseFoundation.defaultAdapter, adapter))); _this.navClickHandler_ = function () { return _this.adapter_.notifyNavigationIconClicked(); }; return _this; } _createClass(MDCTopAppBarBaseFoundation, [{ key: 'init', value: function init() { this.adapter_.registerNavigationIconInteractionHandler('click', this.navClickHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterNavigationIconInteractionHandler('click', this.navClickHandler_); } }]); return MDCTopAppBarBaseFoundation; }(__WEBPACK_IMPORTED_MODULE_2__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTopAppBarBaseFoundation); /***/ }), /* 14 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipFoundation; }); /* unused harmony export MDCChipInteractionEventType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(25); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(26); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCChipFoundation = function (_MDCFoundation) { _inherits(MDCChipFoundation, _MDCFoundation); _createClass(MDCChipFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** * {@see MDCChipAdapter} for typing information on parameters and return * types. * @return {!MDCChipAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCChipAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() {}, addClassToLeadingIcon: function addClassToLeadingIcon() {}, removeClassFromLeadingIcon: function removeClassFromLeadingIcon() {}, eventTargetHasClass: function eventTargetHasClass() {}, notifyInteraction: function notifyInteraction() {}, notifyTrailingIconInteraction: function notifyTrailingIconInteraction() {}, notifyRemoval: function notifyRemoval() {}, getComputedStyleValue: function getComputedStyleValue() {}, setStyleProperty: function setStyleProperty() {} } ); } /** * @param {!MDCChipAdapter} adapter */ }]); function MDCChipFoundation(adapter) { _classCallCheck(this, MDCChipFoundation); /** * Whether a trailing icon click should immediately trigger exit/removal of the chip. * @private {boolean} * */ var _this = _possibleConstructorReturn(this, (MDCChipFoundation.__proto__ || Object.getPrototypeOf(MDCChipFoundation)).call(this, _extends(MDCChipFoundation.defaultAdapter, adapter))); _this.shouldRemoveOnTrailingIconClick_ = true; return _this; } /** * @return {boolean} */ _createClass(MDCChipFoundation, [{ key: 'isSelected', value: function isSelected() { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); } /** * @param {boolean} selected */ }, { key: 'setSelected', value: function setSelected(selected) { if (selected) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); } } /** * @return {boolean} */ }, { key: 'getShouldRemoveOnTrailingIconClick', value: function getShouldRemoveOnTrailingIconClick() { return this.shouldRemoveOnTrailingIconClick_; } /** * @param {boolean} shouldRemove */ }, { key: 'setShouldRemoveOnTrailingIconClick', value: function setShouldRemoveOnTrailingIconClick(shouldRemove) { this.shouldRemoveOnTrailingIconClick_ = shouldRemove; } /** * Begins the exit animation which leads to removal of the chip. */ }, { key: 'beginExit', value: function beginExit() { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHIP_EXIT); } /** * Handles an interaction event on the root element. * @param {!Event} evt */ }, { key: 'handleInteraction', value: function handleInteraction(evt) { if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) { this.adapter_.notifyInteraction(); } } /** * Handles a transition end event on the root element. * @param {!Event} evt */ }, { key: 'handleTransitionEnd', value: function handleTransitionEnd(evt) { var _this2 = this; // Handle transition end event on the chip when it is about to be removed. if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHIP_EXIT)) { if (evt.propertyName === 'width') { this.adapter_.notifyRemoval(); } else if (evt.propertyName === 'opacity') { // See: https://css-tricks.com/using-css-transitions-auto-dimensions/#article-header-id-5 var chipWidth = this.adapter_.getComputedStyleValue('width'); // On the next frame (once we get the computed width), explicitly set the chip's width // to its current pixel width, so we aren't transitioning out of 'auto'. requestAnimationFrame(function () { _this2.adapter_.setStyleProperty('width', chipWidth); // To mitigate jitter, start transitioning padding and margin before width. _this2.adapter_.setStyleProperty('padding', '0'); _this2.adapter_.setStyleProperty('margin', '0'); // On the next frame (once width is explicitly set), transition width to 0. requestAnimationFrame(function () { _this2.adapter_.setStyleProperty('width', '0'); }); }); } return; } // Handle a transition end event on the leading icon or checkmark, since the transition end event bubbles. if (evt.propertyName !== 'opacity') { return; } if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LEADING_ICON) && this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED)) { this.adapter_.addClassToLeadingIcon(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HIDDEN_LEADING_ICON); } else if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKMARK) && !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED)) { this.adapter_.removeClassFromLeadingIcon(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HIDDEN_LEADING_ICON); } } /** * Handles an interaction event on the trailing icon element. This is used to * prevent the ripple from activating on interaction with the trailing icon. * @param {!Event} evt */ }, { key: 'handleTrailingIconInteraction', value: function handleTrailingIconInteraction(evt) { evt.stopPropagation(); if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) { this.adapter_.notifyTrailingIconInteraction(); if (this.shouldRemoveOnTrailingIconClick_) { this.beginExit(); } } } }]); return MDCChipFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /** * @typedef {{ * detail: { * chip: {foundation: !MDCChipFoundation}, * }, * bubbles: boolean, * }} */ var MDCChipInteractionEventType = void 0; /***/ }), /* 15 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (immutable) */ __webpack_exports__["remapEvent"] = remapEvent; /* harmony export (immutable) */ __webpack_exports__["getTransformPropertyName"] = getTransformPropertyName; /* harmony export (immutable) */ __webpack_exports__["supportsCssCustomProperties"] = supportsCssCustomProperties; /* harmony export (immutable) */ __webpack_exports__["applyPassive"] = applyPassive; /* harmony export (immutable) */ __webpack_exports__["saveElementTabState"] = saveElementTabState; /* harmony export (immutable) */ __webpack_exports__["restoreElementTabState"] = restoreElementTabState; /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var TAB_DATA = 'data-mdc-tabindex'; var TAB_DATA_HANDLED = 'data-mdc-tabindex-handled'; var storedTransformPropertyName_ = void 0; var supportsPassive_ = void 0; // Remap touch events to pointer events, if the browser doesn't support touch events. function remapEvent(eventName) { var globalObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window; if (!('ontouchstart' in globalObj.document)) { switch (eventName) { case 'touchstart': return 'pointerdown'; case 'touchmove': return 'pointermove'; case 'touchend': return 'pointerup'; default: return eventName; } } return eventName; } // Choose the correct transform property to use on the current browser. function getTransformPropertyName() { var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (storedTransformPropertyName_ === undefined || forceRefresh) { var el = globalObj.document.createElement('div'); var transformPropertyName = 'transform' in el.style ? 'transform' : '-webkit-transform'; storedTransformPropertyName_ = transformPropertyName; } return storedTransformPropertyName_; } // Determine whether the current browser supports CSS properties. function supportsCssCustomProperties() { var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; if ('CSS' in globalObj) { return globalObj.CSS.supports('(--color: red)'); } return false; } // Determine whether the current browser supports passive event listeners, and if so, use them. function applyPassive() { var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (supportsPassive_ === undefined || forceRefresh) { var isSupported = false; try { globalObj.document.addEventListener('test', null, { get passive() { isSupported = true; } }); } catch (e) {} supportsPassive_ = isSupported; } return supportsPassive_ ? { passive: true } : false; } // Save the tab state for an element. function saveElementTabState(el) { if (el.hasAttribute('tabindex')) { el.setAttribute(TAB_DATA, el.getAttribute('tabindex')); } el.setAttribute(TAB_DATA_HANDLED, true); } // Restore the tab state for an element, if it was saved. function restoreElementTabState(el) { // Only modify elements we've already handled, in case anything was dynamically added since we saved state. if (el.hasAttribute(TAB_DATA_HANDLED)) { if (el.hasAttribute(TAB_DATA)) { el.setAttribute('tabindex', el.getAttribute(TAB_DATA)); el.removeAttribute(TAB_DATA); } else { el.removeAttribute('tabindex'); } el.removeAttribute(TAB_DATA_HANDLED); } } /***/ }), /* 16 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabel", function() { return MDCFloatingLabel; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(28); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(75); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabelFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCFloatingLabel = function (_MDCComponent) { _inherits(MDCFloatingLabel, _MDCComponent); function MDCFloatingLabel() { _classCallCheck(this, MDCFloatingLabel); return _possibleConstructorReturn(this, (MDCFloatingLabel.__proto__ || Object.getPrototypeOf(MDCFloatingLabel)).apply(this, arguments)); } _createClass(MDCFloatingLabel, [{ key: 'shake', /** * Styles the label to produce the label shake for errors. * @param {boolean} shouldShake styles the label to shake by adding shake class * if true, otherwise will stop shaking by removing shake class. */ value: function shake(shouldShake) { this.foundation_.shake(shouldShake); } /** * Styles label to float/dock. * @param {boolean} shouldFloat styles the label to float by adding float class * if true, otherwise docks the label by removing the float class. */ }, { key: 'float', value: function float(shouldFloat) { this.foundation_.float(shouldFloat); } /** * @return {number} */ }, { key: 'getWidth', value: function getWidth() { return this.foundation_.getWidth(); } /** * @return {!MDCFloatingLabelFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, getWidth: function getWidth() { return _this2.root_.offsetWidth; }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return _this2.root_.addEventListener(evtType, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return _this2.root_.removeEventListener(evtType, handler); } }); } }], [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCFloatingLabel} */ value: function attachTo(root) { return new MDCFloatingLabel(root); } }]); return MDCFloatingLabel; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 17 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLineRipple", function() { return MDCLineRipple; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(29); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(95); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLineRippleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCLineRipple = function (_MDCComponent) { _inherits(MDCLineRipple, _MDCComponent); function MDCLineRipple() { _classCallCheck(this, MDCLineRipple); return _possibleConstructorReturn(this, (MDCLineRipple.__proto__ || Object.getPrototypeOf(MDCLineRipple)).apply(this, arguments)); } _createClass(MDCLineRipple, [{ key: 'activate', /** * Activates the line ripple */ value: function activate() { this.foundation_.activate(); } /** * Deactivates the line ripple */ }, { key: 'deactivate', value: function deactivate() { 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. * @param {number} xCoordinate */ }, { key: 'setRippleCenter', value: function setRippleCenter(xCoordinate) { this.foundation_.setRippleCenter(xCoordinate); } /** * @return {!MDCLineRippleFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCLineRippleAdapter} */_extends({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, setStyle: function setStyle(propertyName, value) { return _this2.root_.style[propertyName] = value; }, registerEventHandler: function registerEventHandler(evtType, handler) { return _this2.root_.addEventListener(evtType, handler); }, deregisterEventHandler: function deregisterEventHandler(evtType, handler) { return _this2.root_.removeEventListener(evtType, handler); } })); } }], [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCLineRipple} */ value: function attachTo(root) { return new MDCLineRipple(root); } }]); return MDCLineRipple; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 18 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutline", function() { return MDCNotchedOutline; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(33); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(103); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(34); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutlineFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCNotchedOutline = function (_MDCComponent) { _inherits(MDCNotchedOutline, _MDCComponent); function MDCNotchedOutline() { _classCallCheck(this, MDCNotchedOutline); return _possibleConstructorReturn(this, (MDCNotchedOutline.__proto__ || Object.getPrototypeOf(MDCNotchedOutline)).apply(this, arguments)); } _createClass(MDCNotchedOutline, [{ key: 'notch', /** * Updates outline selectors and SVG path to open notch. * @param {number} notchWidth The notch width in the outline. * @param {boolean=} isRtl Determines if outline is rtl. If rtl is true, notch * will be right justified in outline path, otherwise left justified. */ value: function notch(notchWidth, isRtl) { this.foundation_.notch(notchWidth, isRtl); } /** * Updates the outline selectors to close notch and return it to idle state. */ }, { key: 'closeNotch', value: function closeNotch() { this.foundation_.closeNotch(); } /** * @return {!MDCNotchedOutlineFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ getWidth: function getWidth() { return _this2.root_.offsetWidth; }, getHeight: function getHeight() { return _this2.root_.offsetHeight; }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, setOutlinePathAttr: function setOutlinePathAttr(value) { var path = _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].PATH_SELECTOR); path.setAttribute('d', value); }, getIdleOutlineStyleValue: function getIdleOutlineStyleValue(propertyName) { var idleOutlineElement = _this2.root_.parentNode.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].IDLE_OUTLINE_SELECTOR); return window.getComputedStyle(idleOutlineElement).getPropertyValue(propertyName); } }); } }], [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCNotchedOutline} */ value: function attachTo(root) { return new MDCNotchedOutline(root); } }]); return MDCNotchedOutline; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 19 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTab", function() { return MDCTab; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_tab_indicator_index__ = __webpack_require__(38); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(40); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCComponent} * @final */ var MDCTab = function (_MDCComponent) { _inherits(MDCTab, _MDCComponent); /** * @param {...?} args */ function MDCTab() { var _ref; _classCallCheck(this, MDCTab); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTab.__proto__ || Object.getPrototypeOf(MDCTab)).call.apply(_ref, [this].concat(args))); _this.ripple_; /** @private {?MDCTabIndicator} */ _this.tabIndicator_; /** @private {?Element} */ _this.content_; return _this; } /** * @param {!Element} root * @return {!MDCTab} */ _createClass(MDCTab, [{ key: 'initialize', value: function initialize() { var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) { return new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](el, foundation); }; var tabIndicatorFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { return new __WEBPACK_IMPORTED_MODULE_2__material_tab_indicator_index__["MDCTabIndicator"](el); }; var rippleSurface = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.RIPPLE_SELECTOR); var rippleAdapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter( /** @type {!RippleCapableSurface} */this), { addClass: function addClass(className) { return rippleSurface.classList.add(className); }, removeClass: function removeClass(className) { return rippleSurface.classList.remove(className); }, updateCssVariable: function updateCssVariable(varName, value) { return rippleSurface.style.setProperty(varName, value); } }); var rippleFoundation = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](rippleAdapter); this.ripple_ = rippleFactory(this.root_, rippleFoundation); var tabIndicatorElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_INDICATOR_SELECTOR); this.tabIndicator_ = tabIndicatorFactory(tabIndicatorElement); this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.CONTENT_SELECTOR); } }, { key: 'destroy', value: function destroy() { this.ripple_.destroy(); _get(MDCTab.prototype.__proto__ || Object.getPrototypeOf(MDCTab.prototype), 'destroy', this).call(this); } /** * @return {!MDCTabFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */]( /** @type {!MDCTabAdapter} */{ setAttr: function setAttr(attr, value) { return _this2.root_.setAttribute(attr, value); }, registerEventHandler: function registerEventHandler(evtType, handler) { return _this2.root_.addEventListener(evtType, handler); }, deregisterEventHandler: function deregisterEventHandler(evtType, handler) { return _this2.root_.removeEventListener(evtType, handler); }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, activateIndicator: function activateIndicator(previousIndicatorClientRect) { return _this2.tabIndicator_.activate(previousIndicatorClientRect); }, deactivateIndicator: function deactivateIndicator() { return _this2.tabIndicator_.deactivate(); }, computeIndicatorClientRect: function computeIndicatorClientRect() { return _this2.tabIndicator_.computeContentClientRect(); }, notifyInteracted: function notifyInteracted() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.INTERACTED_EVENT, { tab: _this2 }, true /* bubble */); }, getOffsetLeft: function getOffsetLeft() { return _this2.root_.offsetLeft; }, getOffsetWidth: function getOffsetWidth() { return _this2.root_.offsetWidth; }, getContentOffsetLeft: function getContentOffsetLeft() { return _this2.content_.offsetLeft; }, getContentOffsetWidth: function getContentOffsetWidth() { return _this2.content_.offsetWidth; }, focus: function focus() { return _this2.root_.focus(); } }); } /** * Getter for the active state of the tab * @return {boolean} */ }, { key: 'activate', /** * Activates the tab * @param {!ClientRect=} computeIndicatorClientRect */ value: function activate(computeIndicatorClientRect) { this.foundation_.activate(computeIndicatorClientRect); } /** * Deactivates the tab */ }, { key: 'deactivate', value: function deactivate() { this.foundation_.deactivate(); } /** * Returns the indicator's client rect * @return {!ClientRect} */ }, { key: 'computeIndicatorClientRect', value: function computeIndicatorClientRect() { return this.foundation_.computeIndicatorClientRect(); } /** * @return {!MDCTabDimensions} */ }, { key: 'computeDimensions', value: function computeDimensions() { return this.foundation_.computeDimensions(); } }, { key: 'active', get: function get() { return this.foundation_.isActive(); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCTab(root); } }]); return MDCTab; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 20 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(39); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(119); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @abstract */ var MDCTabIndicatorFoundation = function (_MDCFoundation) { _inherits(MDCTabIndicatorFoundation, _MDCFoundation); _createClass(MDCTabIndicatorFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** @return enum {string} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** * @see MDCTabIndicatorAdapter for typing information * @return {!MDCTabIndicatorAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTabIndicatorAdapter} */{ registerEventHandler: function registerEventHandler() {}, deregisterEventHandler: function deregisterEventHandler() {}, addClass: function addClass() {}, removeClass: function removeClass() {}, computeContentClientRect: function computeContentClientRect() {}, setContentStyleProperty: function setContentStyleProperty() {} } ); } /** @param {!MDCTabIndicatorAdapter} adapter */ }]); function MDCTabIndicatorFoundation(adapter) { _classCallCheck(this, MDCTabIndicatorFoundation); return _possibleConstructorReturn(this, (MDCTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCTabIndicatorFoundation)).call(this, _extends(MDCTabIndicatorFoundation.defaultAdapter, adapter))); } /** @return {!ClientRect} */ _createClass(MDCTabIndicatorFoundation, [{ key: 'computeContentClientRect', value: function computeContentClientRect() { return this.adapter_.computeContentClientRect(); } /** * Activates the indicator * @param {!ClientRect=} previousIndicatorClientRect * @abstract */ }, { key: 'activate', value: function activate(previousIndicatorClientRect) {} // eslint-disable-line no-unused-vars /** @abstract */ }, { key: 'deactivate', value: function deactivate() {} }]); return MDCTabIndicatorFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabIndicatorFoundation); /***/ }), /* 21 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(46); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(132); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCTextFieldHelperTextFoundation = function (_MDCFoundation) { _inherits(MDCTextFieldHelperTextFoundation, _MDCFoundation); _createClass(MDCTextFieldHelperTextFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** @return enum {string} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** * {@see MDCTextFieldHelperTextAdapter} for typing information on parameters and return * types. * @return {!MDCTextFieldHelperTextAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTextFieldHelperTextAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() {}, setAttr: function setAttr() {}, removeAttr: function removeAttr() {}, setContent: function setContent() {} } ); } /** * @param {!MDCTextFieldHelperTextAdapter} adapter */ }]); function MDCTextFieldHelperTextFoundation(adapter) { _classCallCheck(this, MDCTextFieldHelperTextFoundation); return _possibleConstructorReturn(this, (MDCTextFieldHelperTextFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldHelperTextFoundation)).call(this, _extends(MDCTextFieldHelperTextFoundation.defaultAdapter, adapter))); } /** * Sets the content of the helper text field. * @param {string} content */ _createClass(MDCTextFieldHelperTextFoundation, [{ key: 'setContent', value: function setContent(content) { this.adapter_.setContent(content); } /** @param {boolean} isPersistent Sets the persistency of the helper text. */ }, { key: 'setPersistent', value: function setPersistent(isPersistent) { if (isPersistent) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT); } } /** * @param {boolean} isValidation True to make the helper text act as an * error validation message. */ }, { key: 'setValidation', value: function setValidation(isValidation) { if (isValidation) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG); } } /** Makes the helper text visible to the screen reader. */ }, { key: 'showToScreenReader', value: function showToScreenReader() { this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN); } /** * Sets the validity of the helper text based on the input validity. * @param {boolean} inputIsValid */ }, { key: 'setValidity', value: function setValidity(inputIsValid) { var helperTextIsPersistent = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT); var helperTextIsValidationMsg = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG); var validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid; if (validationMsgNeedsDisplay) { this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE, 'alert'); } else { this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE); } if (!helperTextIsPersistent && !validationMsgNeedsDisplay) { this.hide_(); } } /** * Hides the help text from screen readers. * @private */ }, { key: 'hide_', value: function hide_() { this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN, 'true'); } }]); return MDCTextFieldHelperTextFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldHelperTextFoundation); /***/ }), /* 22 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(47); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(133); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCTextFieldIconFoundation = function (_MDCFoundation) { _inherits(MDCTextFieldIconFoundation, _MDCFoundation); _createClass(MDCTextFieldIconFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */]; } /** * {@see MDCTextFieldIconAdapter} for typing information on parameters and return * types. * @return {!MDCTextFieldIconAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTextFieldIconAdapter} */{ getAttr: function getAttr() {}, setAttr: function setAttr() {}, removeAttr: function removeAttr() {}, setContent: function setContent() {}, registerInteractionHandler: function registerInteractionHandler() {}, deregisterInteractionHandler: function deregisterInteractionHandler() {}, notifyIconAction: function notifyIconAction() {} } ); } /** * @param {!MDCTextFieldIconAdapter} adapter */ }]); function MDCTextFieldIconFoundation(adapter) { _classCallCheck(this, MDCTextFieldIconFoundation); /** @private {string?} */ var _this = _possibleConstructorReturn(this, (MDCTextFieldIconFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldIconFoundation)).call(this, _extends(MDCTextFieldIconFoundation.defaultAdapter, adapter))); _this.savedTabIndex_ = null; /** @private {function(!Event): undefined} */ _this.interactionHandler_ = function (evt) { return _this.handleInteraction(evt); }; return _this; } _createClass(MDCTextFieldIconFoundation, [{ key: 'init', value: function init() { var _this2 = this; this.savedTabIndex_ = this.adapter_.getAttr('tabindex'); ['click', 'keydown'].forEach(function (evtType) { _this2.adapter_.registerInteractionHandler(evtType, _this2.interactionHandler_); }); } }, { key: 'destroy', value: function destroy() { var _this3 = this; ['click', 'keydown'].forEach(function (evtType) { _this3.adapter_.deregisterInteractionHandler(evtType, _this3.interactionHandler_); }); } /** @param {boolean} disabled */ }, { key: 'setDisabled', value: function setDisabled(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', __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */].ICON_ROLE); } } /** @param {string} label */ }, { key: 'setAriaLabel', value: function setAriaLabel(label) { this.adapter_.setAttr('aria-label', label); } /** @param {string} content */ }, { key: 'setContent', value: function setContent(content) { this.adapter_.setContent(content); } /** * Handles an interaction event * @param {!Event} evt */ }, { key: 'handleInteraction', value: function handleInteraction(evt) { if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) { this.adapter_.notifyIconAction(); } } }]); return MDCTextFieldIconFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldIconFoundation); /***/ }), /* 23 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Ripple. Provides an interface for managing * - classes * - dom * - CSS variables * - position * - dimensions * - scroll position * - event handlers * - unbounded, active and disabled states * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCRippleAdapter = function () { function MDCRippleAdapter() { _classCallCheck(this, MDCRippleAdapter); } _createClass(MDCRippleAdapter, [{ key: "browserSupportsCssVars", /** @return {boolean} */ value: function browserSupportsCssVars() {} /** @return {boolean} */ }, { key: "isUnbounded", value: function isUnbounded() {} /** @return {boolean} */ }, { key: "isSurfaceActive", value: function isSurfaceActive() {} /** @return {boolean} */ }, { key: "isSurfaceDisabled", value: function isSurfaceDisabled() {} /** @param {string} className */ }, { key: "addClass", value: function addClass(className) {} /** @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** @param {!EventTarget} target */ }, { key: "containsEventTarget", value: function containsEventTarget(target) {} /** * @param {string} evtType * @param {!Function} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(evtType, handler) {} /** * @param {string} evtType * @param {!Function} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(evtType, handler) {} /** * @param {string} evtType * @param {!Function} handler */ }, { key: "registerDocumentInteractionHandler", value: function registerDocumentInteractionHandler(evtType, handler) {} /** * @param {string} evtType * @param {!Function} handler */ }, { key: "deregisterDocumentInteractionHandler", value: function deregisterDocumentInteractionHandler(evtType, handler) {} /** * @param {!Function} handler */ }, { key: "registerResizeHandler", value: function registerResizeHandler(handler) {} /** * @param {!Function} handler */ }, { key: "deregisterResizeHandler", value: function deregisterResizeHandler(handler) {} /** * @param {string} varName * @param {?number|string} value */ }, { key: "updateCssVariable", value: function updateCssVariable(varName, value) {} /** @return {!ClientRect} */ }, { key: "computeBoundingRect", value: function computeBoundingRect() {} /** @return {{x: number, y: number}} */ }, { key: "getWindowPageOffset", value: function getWindowPageOffset() {} }]); return MDCRippleAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCRippleAdapter); /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChip; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(25); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(26); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var INTERACTION_EVENTS = ['click', 'keydown']; /** * @extends {MDCComponent} * @final */ var MDCChip = function (_MDCComponent) { _inherits(MDCChip, _MDCComponent); /** * @param {...?} args */ function MDCChip() { var _ref; _classCallCheck(this, MDCChip); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCChip.__proto__ || Object.getPrototypeOf(MDCChip)).call.apply(_ref, [this].concat(args))); _this.leadingIcon_; /** @private {?Element} */ _this.trailingIcon_; /** @private {!MDCRipple} */ _this.ripple_; /** @private {?function(?Event): undefined} */ _this.handleInteraction_; /** @private {?function(!Event): undefined} */ _this.handleTransitionEnd_; /** @private {function(!Event): undefined} */ _this.handleTrailingIconInteraction_; return _this; } /** * @param {!Element} root * @return {!MDCChip} */ _createClass(MDCChip, [{ key: 'initialize', value: function initialize() { var _this2 = this; this.leadingIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].LEADING_ICON_SELECTOR); this.trailingIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].TRAILING_ICON_SELECTOR); // Adjust ripple size for chips with animated growing width. This applies when filter chips without // a leading icon are selected, and a leading checkmark will cause the chip width to expand. var checkmarkEl = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKMARK_SELECTOR); if (checkmarkEl && !this.leadingIcon_) { var adapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter(this), { computeBoundingRect: function computeBoundingRect() { var height = _this2.root_.getBoundingClientRect().height; // The checkmark's width is initially set to 0, so use the checkmark's height as a proxy since the // checkmark should always be square. var width = _this2.root_.getBoundingClientRect().width + checkmarkEl.getBoundingClientRect().height; return { height: height, width: width }; } }); this.ripple_ = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](this.root_, new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](adapter)); } else { this.ripple_ = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](this.root_); } } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var _this3 = this; this.handleInteraction_ = function (evt) { return _this3.foundation_.handleInteraction(evt); }; this.handleTransitionEnd_ = function (evt) { return _this3.foundation_.handleTransitionEnd(evt); }; this.handleTrailingIconInteraction_ = function (evt) { return _this3.foundation_.handleTrailingIconInteraction(evt); }; INTERACTION_EVENTS.forEach(function (evtType) { _this3.root_.addEventListener(evtType, _this3.handleInteraction_); }); this.root_.addEventListener('transitionend', this.handleTransitionEnd_); if (this.trailingIcon_) { INTERACTION_EVENTS.forEach(function (evtType) { _this3.trailingIcon_.addEventListener(evtType, _this3.handleTrailingIconInteraction_); }); } } }, { key: 'destroy', value: function destroy() { var _this4 = this; this.ripple_.destroy(); INTERACTION_EVENTS.forEach(function (evtType) { _this4.root_.removeEventListener(evtType, _this4.handleInteraction_); }); this.root_.removeEventListener('transitionend', this.handleTransitionEnd_); if (this.trailingIcon_) { INTERACTION_EVENTS.forEach(function (evtType) { _this4.trailingIcon_.removeEventListener(evtType, _this4.handleTrailingIconInteraction_); }); } _get(MDCChip.prototype.__proto__ || Object.getPrototypeOf(MDCChip.prototype), 'destroy', this).call(this); } /** * Returns true if the chip is selected. * @return {boolean} */ }, { key: 'isSelected', value: function isSelected() { return this.foundation_.isSelected(); } /** * Begins the exit animation which leads to removal of the chip. */ }, { key: 'beginExit', value: function beginExit() { this.foundation_.beginExit(); } /** * @return {!MDCChipFoundation} */ }, { key: 'getDefaultFoundation', /** * @return {!MDCChipFoundation} */ value: function getDefaultFoundation() { var _this5 = this; return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* MDCChipFoundation */]( /** @type {!MDCChipAdapter} */_extends({ addClass: function addClass(className) { return _this5.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this5.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this5.root_.classList.contains(className); }, addClassToLeadingIcon: function addClassToLeadingIcon(className) { if (_this5.leadingIcon_) { _this5.leadingIcon_.classList.add(className); } }, removeClassFromLeadingIcon: function removeClassFromLeadingIcon(className) { if (_this5.leadingIcon_) { _this5.leadingIcon_.classList.remove(className); } }, eventTargetHasClass: function eventTargetHasClass(target, className) { return target.classList.contains(className); }, notifyInteraction: function notifyInteraction() { return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].INTERACTION_EVENT, { chip: _this5 }, true /* shouldBubble */); }, notifyTrailingIconInteraction: function notifyTrailingIconInteraction() { return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].TRAILING_ICON_INTERACTION_EVENT, { chip: _this5 }, true /* shouldBubble */); }, notifyRemoval: function notifyRemoval() { return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].REMOVAL_EVENT, { chip: _this5, root: _this5.root_ }, true /* shouldBubble */); }, getComputedStyleValue: function getComputedStyleValue(propertyName) { return window.getComputedStyle(_this5.root_).getPropertyValue(propertyName); }, setStyleProperty: function setStyleProperty(propertyName, value) { return _this5.root_.style.setProperty(propertyName, value); } })); } /** @return {!MDCRipple} */ }, { key: 'foundation', get: function get() { return this.foundation_; } /** * Returns whether a trailing icon click should trigger exit/removal of the chip. * @return {boolean} */ }, { key: 'shouldRemoveOnTrailingIconClick', get: function get() { return this.foundation_.getShouldRemoveOnTrailingIconClick(); } /** * Sets whether a trailing icon click should trigger exit/removal of the chip. * @param {boolean} shouldRemove */ , set: function set(shouldRemove) { return this.foundation_.setShouldRemoveOnTrailingIconClick(shouldRemove); } }, { key: 'ripple', get: function get() { return this.ripple_; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCChip(root); } }]); return MDCChip; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 25 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Chip. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Chip into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCChipAdapter = function () { function MDCChipAdapter() { _classCallCheck(this, MDCChipAdapter); } _createClass(MDCChipAdapter, [{ key: "addClass", /** * Adds a class to the root element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the root element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns true if the root element contains the given class. * @param {string} className * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** * Adds a class to the leading icon element. * @param {string} className */ }, { key: "addClassToLeadingIcon", value: function addClassToLeadingIcon(className) {} /** * Removes a class from the leading icon element. * @param {string} className */ }, { key: "removeClassFromLeadingIcon", value: function removeClassFromLeadingIcon(className) {} /** * Returns true if target has className, false otherwise. * @param {!EventTarget} target * @param {string} className * @return {boolean} */ }, { key: "eventTargetHasClass", value: function eventTargetHasClass(target, className) {} /** * Emits a custom "MDCChip:interaction" event denoting the chip has been * interacted with (typically on click or keydown). */ }, { key: "notifyInteraction", value: function notifyInteraction() {} /** * Emits a custom "MDCChip:trailingIconInteraction" event denoting the trailing icon has been * interacted with (typically on click or keydown). */ }, { key: "notifyTrailingIconInteraction", value: function notifyTrailingIconInteraction() {} /** * Emits a custom event "MDCChip:removal" denoting the chip will be removed. */ }, { key: "notifyRemoval", value: function notifyRemoval() {} /** * Returns the computed property value of the given style property on the root element. * @param {string} propertyName * @return {string} */ }, { key: "getComputedStyleValue", value: function getComputedStyleValue(propertyName) {} /** * Sets the property value of the given style property on the root element. * @param {string} propertyName * @param {string} value */ }, { key: "setStyleProperty", value: function setStyleProperty(propertyName, value) {} }]); return MDCChipAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipAdapter); /***/ }), /* 26 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { ENTRY_ANIMATION_NAME: 'mdc-chip-entry', INTERACTION_EVENT: 'MDCChip:interaction', TRAILING_ICON_INTERACTION_EVENT: 'MDCChip:trailingIconInteraction', REMOVAL_EVENT: 'MDCChip:removal', CHECKMARK_SELECTOR: '.mdc-chip__checkmark', LEADING_ICON_SELECTOR: '.mdc-chip__icon--leading', TRAILING_ICON_SELECTOR: '.mdc-chip__icon--trailing' }; /** @enum {string} */ var cssClasses = { CHECKMARK: 'mdc-chip__checkmark', CHIP_EXIT: 'mdc-chip--exit', HIDDEN_LEADING_ICON: 'mdc-chip__icon--leading-hidden', LEADING_ICON: 'mdc-chip__icon--leading', TRAILING_ICON: 'mdc-chip__icon--trailing', SELECTED: 'mdc-chip--selected' }; /***/ }), /* 27 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chip_foundation__ = __webpack_require__(14); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // eslint-disable-next-line no-unused-vars /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Chip Set. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Chip Set into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCChipSetAdapter = function () { function MDCChipSetAdapter() { _classCallCheck(this, MDCChipSetAdapter); } _createClass(MDCChipSetAdapter, [{ key: 'hasClass', /** * Returns true if the root element contains the given class name. * @param {string} className * @return {boolean} */ value: function hasClass(className) {} /** * Removes the chip object from the chip set. * @param {!Object} chip */ }, { key: 'removeChip', value: function removeChip(chip) {} }]); return MDCChipSetAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipSetAdapter); /***/ }), /* 28 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Floating Label. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the floating label into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCFloatingLabelAdapter = function () { function MDCFloatingLabelAdapter() { _classCallCheck(this, MDCFloatingLabelAdapter); } _createClass(MDCFloatingLabelAdapter, [{ key: "addClass", /** * Adds a class to the label element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the label element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns the width of the label element. * @return {number} */ }, { key: "getWidth", value: function getWidth() {} /** * Registers an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(evtType, handler) {} /** * Deregisters an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(evtType, handler) {} }]); return MDCFloatingLabelAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCFloatingLabelAdapter); /***/ }), /* 29 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC TextField Line Ripple. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the line ripple into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCLineRippleAdapter = function () { function MDCLineRippleAdapter() { _classCallCheck(this, MDCLineRippleAdapter); } _createClass(MDCLineRippleAdapter, [{ key: "addClass", /** * Adds a class to the line ripple element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the line ripple element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * @param {string} className * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** * Sets the style property with propertyName to value on the root element. * @param {string} propertyName * @param {string} value */ }, { key: "setStyle", value: function setStyle(propertyName, value) {} /** * Registers an event listener on the line ripple element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "registerEventHandler", value: function registerEventHandler(evtType, handler) {} /** * Deregisters an event listener on the line ripple element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "deregisterEventHandler", value: function deregisterEventHandler(evtType, handler) {} }]); return MDCLineRippleAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCLineRippleAdapter); /***/ }), /* 30 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC List. Provides an interface for managing focus. * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCListAdapter = function () { function MDCListAdapter() { _classCallCheck(this, MDCListAdapter); } _createClass(MDCListAdapter, [{ key: "getListItemCount", /** @return {number} */ value: function getListItemCount() {} /** * @return {number} */ }, { key: "getFocusedElementIndex", value: function getFocusedElementIndex() {} /** @param {Element} node */ }, { key: "getListItemIndex", value: function getListItemIndex(node) {} /** * @param {number} index * @param {string} attribute * @param {string} value */ }, { key: "setAttributeForElementIndex", value: function setAttributeForElementIndex(index, attribute, value) {} /** * @param {number} index * @param {string} attribute */ }, { key: "removeAttributeForElementIndex", value: function removeAttributeForElementIndex(index, attribute) {} /** * @param {number} index * @param {string} className */ }, { key: "addClassForElementIndex", value: function addClassForElementIndex(index, className) {} /** * @param {number} index * @param {string} className */ }, { key: "removeClassForElementIndex", value: function removeClassForElementIndex(index, className) {} /** * Focuses list item at the index specified. * @param {number} index */ }, { key: "focusItemAtIndex", value: function focusItemAtIndex(index) {} /** * Checks if the provided element is a focusable sub-element. * @param {Element} ele */ }, { key: "isElementFocusable", value: function isElementFocusable(ele) {} /** * Checks if the provided element is contains the mdc-list-item class. * @param {Element} ele */ }, { key: "isListItem", value: function isListItem(ele) {} /** * Sets the tabindex to the value specified for all button/a element children of * the list item at the index specified. * @param {number} listItemIndex * @param {number} tabIndexValue */ }, { key: "setTabIndexForListItemChildren", value: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) {} }]); return MDCListAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCListAdapter); /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { LIST_ITEM_CLASS: 'mdc-list-item', LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected' }; /** @enum {string} */ var strings = { ARIA_ORIENTATION: 'aria-orientation', ARIA_ORIENTATION_VERTICAL: 'vertical', ARIA_SELECTED: 'aria-selected', FOCUSABLE_CHILD_ELEMENTS: 'button:not(:disabled), a', ENABLED_ITEMS_SELECTOR: '.mdc-list-item:not(.mdc-list-item--disabled)' }; /***/ }), /* 32 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return numbers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CornerBit; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Corner; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ROOT: 'mdc-menu', OPEN: 'mdc-menu--open', ANIMATING_OPEN: 'mdc-menu--animating-open', ANIMATING_CLOSED: 'mdc-menu--animating-closed', SELECTED_LIST_ITEM: 'mdc-list-item--selected' }; /** @enum {string} */ var strings = { ITEMS_SELECTOR: '.mdc-menu__items', SELECTED_EVENT: 'MDCMenu:selected', CANCEL_EVENT: 'MDCMenu:cancel', ARIA_DISABLED_ATTR: 'aria-disabled' }; /** @enum {number} */ var numbers = { // Amount of time to wait before triggering a selected event on the menu. Note that this time // will most likely be bumped up once interactive lists are supported to allow for the ripple to // animate before closing the menu SELECTED_TRIGGER_DELAY: 50, // Total duration of menu open animation. TRANSITION_OPEN_DURATION: 120, // Total duration of menu close animation. TRANSITION_CLOSE_DURATION: 75, // Margin left to the edge of the viewport when menu is at maximum possible height. MARGIN_TO_EDGE: 32, // Ratio of anchor width to menu width for switching from corner positioning to center positioning. ANCHOR_TO_MENU_WIDTH_RATIO: 0.67, // Ratio of vertical offset to menu height for switching from corner to mid-way origin positioning. OFFSET_TO_MENU_HEIGHT_RATIO: 0.1 }; /** * Enum for bits in the {@see Corner) bitmap. * @enum {number} */ var CornerBit = { BOTTOM: 1, CENTER: 2, RIGHT: 4, FLIP_RTL: 8 }; /** * Enum for representing an element corner for positioning the menu. * * The START constants map to LEFT if element directionality is left * to right and RIGHT if the directionality is right to left. * Likewise END maps to RIGHT or LEFT depending on the directionality. * * @enum {number} */ var Corner = { TOP_LEFT: 0, TOP_RIGHT: CornerBit.RIGHT, BOTTOM_LEFT: CornerBit.BOTTOM, BOTTOM_RIGHT: CornerBit.BOTTOM | CornerBit.RIGHT, TOP_START: CornerBit.FLIP_RTL, TOP_END: CornerBit.FLIP_RTL | CornerBit.RIGHT, BOTTOM_START: CornerBit.BOTTOM | CornerBit.FLIP_RTL, BOTTOM_END: CornerBit.BOTTOM | CornerBit.RIGHT | CornerBit.FLIP_RTL }; /***/ }), /* 33 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Notched Outline. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Notched Outline into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCNotchedOutlineAdapter = function () { function MDCNotchedOutlineAdapter() { _classCallCheck(this, MDCNotchedOutlineAdapter); } _createClass(MDCNotchedOutlineAdapter, [{ key: "getWidth", /** * Returns the width of the root element. * @return {number} */ value: function getWidth() {} /** * Returns the height of the root element. * @return {number} */ }, { key: "getHeight", value: function getHeight() {} /** * Adds a class to the root element. * @param {string} className */ }, { key: "addClass", value: function addClass(className) {} /** * Removes a class from the root element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Sets the "d" attribute of the outline element's SVG path. * @param {string} value */ }, { key: "setOutlinePathAttr", value: function setOutlinePathAttr(value) {} /** * Returns the idle outline element's computed style value of the given css property `propertyName`. * We achieve this via `getComputedStyle(...).getPropertyValue(propertyName)`. * @param {string} propertyName * @return {string} */ }, { key: "getIdleOutlineStyleValue", value: function getIdleOutlineStyleValue(propertyName) {} }]); return MDCNotchedOutlineAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCNotchedOutlineAdapter); /***/ }), /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { PATH_SELECTOR: '.mdc-notched-outline__path', IDLE_OUTLINE_SELECTOR: '.mdc-notched-outline__idle' }; /** @enum {string} */ var cssClasses = { OUTLINE_NOTCHED: 'mdc-notched-outline--notched' }; /***/ }), /* 35 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { BOX: 'mdc-select--box', DISABLED: 'mdc-select--disabled', ROOT: 'mdc-select', OUTLINED: 'mdc-select--outlined' }; var strings = { CHANGE_EVENT: 'MDCSelect:change', LINE_RIPPLE_SELECTOR: '.mdc-line-ripple', LABEL_SELECTOR: '.mdc-floating-label', NATIVE_CONTROL_SELECTOR: '.mdc-select__native-control', OUTLINE_SELECTOR: '.mdc-notched-outline' }; /** @enum {number} */ var numbers = { LABEL_SCALE: 0.75 }; /***/ }), /* 36 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ACTIVE: 'mdc-slider--active', DISABLED: 'mdc-slider--disabled', DISCRETE: 'mdc-slider--discrete', FOCUS: 'mdc-slider--focus', IN_TRANSIT: 'mdc-slider--in-transit', IS_DISCRETE: 'mdc-slider--discrete', HAS_TRACK_MARKER: 'mdc-slider--display-markers' }; /** @enum {string} */ var strings = { TRACK_SELECTOR: '.mdc-slider__track', TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container', LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child', THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container', PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker', ARIA_VALUEMIN: 'aria-valuemin', ARIA_VALUEMAX: 'aria-valuemax', ARIA_VALUENOW: 'aria-valuenow', ARIA_DISABLED: 'aria-disabled', STEP_DATA_ATTR: 'data-step', CHANGE_EVENT: 'MDCSlider:change', INPUT_EVENT: 'MDCSlider:input' }; /** @enum {number} */ var numbers = { PAGE_FACTOR: 4 }; /***/ }), /* 37 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /** * Adapter for MDC Slider. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Slider into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCSliderAdapter = function () { function MDCSliderAdapter() { _classCallCheck(this, MDCSliderAdapter); } _createClass(MDCSliderAdapter, [{ key: "hasClass", /** * Returns true if className exists for the slider Element * @param {string} className * @return {boolean} */ value: function hasClass(className) {} /** * Adds a class to the slider Element * @param {string} className */ }, { key: "addClass", value: function addClass(className) {} /** * Removes a class from the slider Element * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns a string if attribute name exists on the slider Element, * otherwise returns null * @param {string} name * @return {?string} */ }, { key: "getAttribute", value: function getAttribute(name) {} /** * Sets attribute name on slider Element to value * @param {string} name * @param {string} value */ }, { key: "setAttribute", value: function setAttribute(name, value) {} /** * Removes attribute name from slider Element * @param {string} name */ }, { key: "removeAttribute", value: function removeAttribute(name) {} /** * Returns the bounding client rect for the slider Element * @return {?ClientRect} */ }, { key: "computeBoundingRect", value: function computeBoundingRect() {} /** * Returns the tab index of the slider Element * @return {number} */ }, { key: "getTabIndex", value: function getTabIndex() {} /** * Registers an event handler on the root element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(type, handler) {} /** * Deregisters an event handler on the root element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(type, handler) {} /** * Registers an event handler on the thumb container element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "registerThumbContainerInteractionHandler", value: function registerThumbContainerInteractionHandler(type, handler) {} /** * Deregisters an event handler on the thumb container element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "deregisterThumbContainerInteractionHandler", value: function deregisterThumbContainerInteractionHandler(type, handler) {} /** * Registers an event handler on the body for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "registerBodyInteractionHandler", value: function registerBodyInteractionHandler(type, handler) {} /** * Deregisters an event handler on the body for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: "deregisterBodyInteractionHandler", value: function deregisterBodyInteractionHandler(type, handler) {} /** * Registers an event handler for the window resize event * @param {function(!Event): undefined} handler */ }, { key: "registerResizeHandler", value: function registerResizeHandler(handler) {} /** * Deregisters an event handler for the window resize event * @param {function(!Event): undefined} handler */ }, { key: "deregisterResizeHandler", value: function deregisterResizeHandler(handler) {} /** * Emits a custom event MDCSlider:input from the root */ }, { key: "notifyInput", value: function notifyInput() {} /** * Emits a custom event MDCSlider:change from the root */ }, { key: "notifyChange", value: function notifyChange() {} /** * Sets a style property of the thumb container element to the passed value * @param {string} propertyName * @param {string} value */ }, { key: "setThumbContainerStyleProperty", value: function setThumbContainerStyleProperty(propertyName, value) {} /** * Sets a style property of the track element to the passed value * @param {string} propertyName * @param {string} value */ }, { key: "setTrackStyleProperty", value: function setTrackStyleProperty(propertyName, value) {} /** * Sets the inner text of the pin marker to the passed value * @param {number} value */ }, { key: "setMarkerValue", value: function setMarkerValue(value) {} /** * Appends the passed number of track markers to the track mark container element * @param {number} numMarkers */ }, { key: "appendTrackMarkers", value: function appendTrackMarkers(numMarkers) {} /** * Removes all track markers fromt he track mark container element */ }, { key: "removeTrackMarkers", value: function removeTrackMarkers() {} /** * Sets a style property of the last track marker to the passed value * @param {string} propertyName * @param {string} value */ }, { key: "setLastTrackMarkersStyleProperty", value: function setLastTrackMarkersStyleProperty(propertyName, value) {} /** * Returns true if the root element is RTL, otherwise false * @return {boolean} */ }, { key: "isRTL", value: function isRTL() {} }]); return MDCSliderAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCSliderAdapter); /***/ }), /* 38 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabIndicator", function() { return MDCTabIndicator; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(39); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(20); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__ = __webpack_require__(120); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__fading_foundation__ = __webpack_require__(121); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSlidingTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFadingTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__fading_foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTabIndicator = function (_MDCComponent) { _inherits(MDCTabIndicator, _MDCComponent); _createClass(MDCTabIndicator, null, [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCTabIndicator} */ value: function attachTo(root) { return new MDCTabIndicator(root); } /** * @param {...?} args */ }]); function MDCTabIndicator() { var _ref; _classCallCheck(this, MDCTabIndicator); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @type {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTabIndicator.__proto__ || Object.getPrototypeOf(MDCTabIndicator)).call.apply(_ref, [this].concat(args))); _this.content_; return _this; } _createClass(MDCTabIndicator, [{ key: 'initialize', value: function initialize() { this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CONTENT_SELECTOR); } /** * @return {!ClientRect} */ }, { key: 'computeContentClientRect', value: function computeContentClientRect() { return this.foundation_.computeContentClientRect(); } /** * @return {!MDCTabIndicatorFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; var adapter = /** @type {!MDCTabIndicatorAdapter} */_extends({ registerEventHandler: function registerEventHandler(evtType, handler) { return _this2.root_.addEventListener(evtType, handler); }, deregisterEventHandler: function deregisterEventHandler(evtType, handler) { return _this2.root_.removeEventListener(evtType, handler); }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, computeContentClientRect: function computeContentClientRect() { return _this2.content_.getBoundingClientRect(); }, setContentStyleProperty: function setContentStyleProperty(prop, value) { return _this2.content_.style.setProperty(prop, value); } }); if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].cssClasses.FADE)) { return new __WEBPACK_IMPORTED_MODULE_4__fading_foundation__["a" /* default */](adapter); } // Default to the sliding indicator return new __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__["a" /* default */](adapter); } /** * @param {!ClientRect=} previousIndicatorClientRect */ }, { key: 'activate', value: function activate(previousIndicatorClientRect) { this.foundation_.activate(previousIndicatorClientRect); } }, { key: 'deactivate', value: function deactivate() { this.foundation_.deactivate(); } }]); return MDCTabIndicator; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Tab Indicator. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Tab Indicator into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTabIndicatorAdapter = function () { function MDCTabIndicatorAdapter() { _classCallCheck(this, MDCTabIndicatorAdapter); } _createClass(MDCTabIndicatorAdapter, [{ key: "registerEventHandler", /** * Registers an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ value: function registerEventHandler(evtType, handler) {} /** * Deregisters an event listener on the root element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "deregisterEventHandler", value: function deregisterEventHandler(evtType, handler) {} /** * Adds the given className to the root element. * @param {string} className The className to add */ }, { key: "addClass", value: function addClass(className) {} /** * Removes the given className from the root element. * @param {string} className The className to remove */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns the client rect of the content element. * @return {!ClientRect} */ }, { key: "computeContentClientRect", value: function computeContentClientRect() {} /** * Sets a style property of the content element to the passed value * @param {string} propName The style property name to set * @param {string} value The style property value */ }, { key: "setContentStyleProperty", value: function setContentStyleProperty(propName, value) {} }]); return MDCTabIndicatorAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabIndicatorAdapter); /***/ }), /* 40 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(122); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} * @final */ var MDCTabFoundation = function (_MDCFoundation) { _inherits(MDCTabFoundation, _MDCFoundation); _createClass(MDCTabFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** @return enum {string} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** * @see MDCTabAdapter for typing information * @return {!MDCTabAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTabAdapter} */{ registerEventHandler: function registerEventHandler() {}, deregisterEventHandler: function deregisterEventHandler() {}, addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() {}, setAttr: function setAttr() {}, activateIndicator: function activateIndicator() {}, deactivateIndicator: function deactivateIndicator() {}, computeIndicatorClientRect: function computeIndicatorClientRect() {}, notifyInteracted: function notifyInteracted() {}, getOffsetLeft: function getOffsetLeft() {}, getOffsetWidth: function getOffsetWidth() {}, getContentOffsetLeft: function getContentOffsetLeft() {}, getContentOffsetWidth: function getContentOffsetWidth() {}, focus: function focus() {} } ); } /** @param {!MDCTabAdapter} adapter */ }]); function MDCTabFoundation(adapter) { _classCallCheck(this, MDCTabFoundation); /** @private {function(!Event): undefined} */ var _this = _possibleConstructorReturn(this, (MDCTabFoundation.__proto__ || Object.getPrototypeOf(MDCTabFoundation)).call(this, _extends(MDCTabFoundation.defaultAdapter, adapter))); _this.handleTransitionEnd_ = function (evt) { return _this.handleTransitionEnd(evt); }; /** @private {function(?Event): undefined} */ _this.handleClick_ = function () { return _this.handleClick(); }; return _this; } _createClass(MDCTabFoundation, [{ key: 'init', value: function init() { this.adapter_.registerEventHandler('click', this.handleClick_); } /** * Handles the "transitionend" event * @param {!Event} evt A browser event */ }, { key: 'handleTransitionEnd', value: function handleTransitionEnd(evt) { // Early exit for ripple if (evt.pseudoElement) { return; } this.adapter_.deregisterEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATING_ACTIVATE); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATING_DEACTIVATE); } /** * Handles the "click" event */ }, { key: 'handleClick', value: function handleClick() { // It's up to the parent component to keep track of the active Tab and // ensure we don't activate a Tab that's already active. this.adapter_.notifyInteracted(); } /** * Returns the Tab's active state * @return {boolean} */ }, { key: 'isActive', value: function isActive() { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE); } /** * Activates the Tab * @param {!ClientRect=} previousIndicatorClientRect */ }, { key: 'activate', value: function activate(previousIndicatorClientRect) { // Early exit if (this.isActive()) { return; } this.adapter_.registerEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATING_ACTIVATE); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'true'); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].TABINDEX, '0'); this.adapter_.activateIndicator(previousIndicatorClientRect); this.adapter_.focus(); } /** * Deactivates the Tab */ }, { key: 'deactivate', value: function deactivate() { // Early exit if (!this.isActive()) { return; } this.adapter_.registerEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATING_DEACTIVATE); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'false'); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].TABINDEX, '-1'); this.adapter_.deactivateIndicator(); } /** * Returns the indicator's client rect * @return {!ClientRect} */ }, { key: 'computeIndicatorClientRect', value: function computeIndicatorClientRect() { return this.adapter_.computeIndicatorClientRect(); } /** * Returns the dimensions of the Tab * @return {!MDCTabDimensions} */ }, { key: 'computeDimensions', value: function computeDimensions() { var rootWidth = this.adapter_.getOffsetWidth(); var rootLeft = this.adapter_.getOffsetLeft(); var contentWidth = this.adapter_.getContentOffsetWidth(); var contentLeft = this.adapter_.getContentOffsetLeft(); return { rootLeft: rootLeft, rootRight: rootLeft + rootWidth, contentLeft: rootLeft + contentLeft, contentRight: rootLeft + contentLeft + contentWidth }; } }]); return MDCTabFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabFoundation); /***/ }), /* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabScroller", function() { return MDCTabScroller; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(124); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(128); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabScrollerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; }); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTabScroller = function (_MDCComponent) { _inherits(MDCTabScroller, _MDCComponent); _createClass(MDCTabScroller, null, [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCTabScroller} */ value: function attachTo(root) { return new MDCTabScroller(root); } }]); function MDCTabScroller() { var _ref; _classCallCheck(this, MDCTabScroller); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTabScroller.__proto__ || Object.getPrototypeOf(MDCTabScroller)).call.apply(_ref, [this].concat(args))); _this.content_; /** @private {?Element} */ _this.area_; /** @private {?function(?Event): undefined} */ _this.handleInteraction_; /** @private {?function(!Event): undefined} */ _this.handleTransitionEnd_; return _this; } _createClass(MDCTabScroller, [{ key: 'initialize', value: function initialize() { this.area_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.AREA_SELECTOR); this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CONTENT_SELECTOR); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var _this2 = this; this.handleInteraction_ = function () { return _this2.foundation_.handleInteraction(); }; this.handleTransitionEnd_ = function (evt) { return _this2.foundation_.handleTransitionEnd(evt); }; this.area_.addEventListener('wheel', this.handleInteraction_); this.area_.addEventListener('touchstart', this.handleInteraction_); this.area_.addEventListener('pointerdown', this.handleInteraction_); this.area_.addEventListener('mousedown', this.handleInteraction_); this.area_.addEventListener('keydown', this.handleInteraction_); this.content_.addEventListener('transitionend', this.handleTransitionEnd_); } }, { key: 'destroy', value: function destroy() { _get(MDCTabScroller.prototype.__proto__ || Object.getPrototypeOf(MDCTabScroller.prototype), 'destroy', this).call(this); this.area_.removeEventListener('wheel', this.handleInteraction_); this.area_.removeEventListener('touchstart', this.handleInteraction_); this.area_.removeEventListener('pointerdown', this.handleInteraction_); this.area_.removeEventListener('mousedown', this.handleInteraction_); this.area_.removeEventListener('keydown', this.handleInteraction_); this.content_.removeEventListener('transitionend', this.handleTransitionEnd_); } /** * @return {!MDCTabScrollerFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; var adapter = /** @type {!MDCTabScrollerAdapter} */{ eventTargetMatchesSelector: function eventTargetMatchesSelector(evtTarget, selector) { var MATCHES = __WEBPACK_IMPORTED_MODULE_3__util__["getMatchesProperty"](HTMLElement.prototype); return evtTarget[MATCHES](selector); }, addClass: function addClass(className) { return _this3.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.root_.classList.remove(className); }, addScrollAreaClass: function addScrollAreaClass(className) { return _this3.area_.classList.add(className); }, setScrollAreaStyleProperty: function setScrollAreaStyleProperty(prop, value) { return _this3.area_.style.setProperty(prop, value); }, setScrollContentStyleProperty: function setScrollContentStyleProperty(prop, value) { return _this3.content_.style.setProperty(prop, value); }, getScrollContentStyleValue: function getScrollContentStyleValue(propName) { return window.getComputedStyle(_this3.content_).getPropertyValue(propName); }, setScrollAreaScrollLeft: function setScrollAreaScrollLeft(scrollX) { return _this3.area_.scrollLeft = scrollX; }, getScrollAreaScrollLeft: function getScrollAreaScrollLeft() { return _this3.area_.scrollLeft; }, getScrollContentOffsetWidth: function getScrollContentOffsetWidth() { return _this3.content_.offsetWidth; }, getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() { return _this3.area_.offsetWidth; }, computeScrollAreaClientRect: function computeScrollAreaClientRect() { return _this3.area_.getBoundingClientRect(); }, computeScrollContentClientRect: function computeScrollContentClientRect() { return _this3.content_.getBoundingClientRect(); }, computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() { return __WEBPACK_IMPORTED_MODULE_3__util__["computeHorizontalScrollbarHeight"](document); } }; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](adapter); } /** * Returns the current visual scroll position * @return {number} */ }, { key: 'getScrollPosition', value: function getScrollPosition() { return this.foundation_.getScrollPosition(); } /** * Returns the width of the scroll content * @return {number} */ }, { key: 'getScrollContentWidth', value: function getScrollContentWidth() { return this.content_.offsetWidth; } /** * Increments the scroll value by the given amount * @param {number} scrollXIncrement The pixel value by which to increment the scroll value */ }, { key: 'incrementScroll', value: function incrementScroll(scrollXIncrement) { this.foundation_.incrementScroll(scrollXIncrement); } /** * Scrolls to the given pixel position * @param {number} scrollX The pixel value to scroll to */ }, { key: 'scrollTo', value: function scrollTo(scrollX) { this.foundation_.scrollTo(scrollX); } }]); return MDCTabScroller; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 42 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ANIMATING: 'mdc-tab-scroller--animating', SCROLL_TEST: 'mdc-tab-scroller__test', SCROLL_AREA_SCROLL: 'mdc-tab-scroller__scroll-area--scroll' }; /** @enum {string} */ var strings = { AREA_SELECTOR: '.mdc-tab-scroller__scroll-area', CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content' }; /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_tab_adapter__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_tab_index__ = __webpack_require__(19); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * Adapter for MDC Tab Bar. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Tab Bar into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTabBarAdapter = function () { function MDCTabBarAdapter() { _classCallCheck(this, MDCTabBarAdapter); } _createClass(MDCTabBarAdapter, [{ key: 'scrollTo', /** * Scrolls to the given position * @param {number} scrollX The position to scroll to */ value: function scrollTo(scrollX) {} /** * Increments the current scroll position by the given amount * @param {number} scrollXIncrement The amount to increment scroll */ }, { key: 'incrementScroll', value: function incrementScroll(scrollXIncrement) {} /** * Returns the current scroll position * @return {number} */ }, { key: 'getScrollPosition', value: function getScrollPosition() {} /** * Returns the width of the scroll content * @return {number} */ }, { key: 'getScrollContentWidth', value: function getScrollContentWidth() {} /** * Returns the root element's offsetWidth * @return {number} */ }, { key: 'getOffsetWidth', value: function getOffsetWidth() {} /** * Returns if the Tab Bar language direction is RTL * @return {boolean} */ }, { key: 'isRTL', value: function isRTL() {} /** * Activates the tab at the given index with the given client rect * @param {number} index The index of the tab to activate * @param {!ClientRect} clientRect The client rect of the previously active Tab Indicator */ }, { key: 'activateTabAtIndex', value: function activateTabAtIndex(index, clientRect) {} /** * Deactivates the tab at the given index * @param {number} index The index of the tab to activate */ }, { key: 'deactivateTabAtIndex', value: function deactivateTabAtIndex(index) {} /** * Returns the client rect of the tab's indicator * @param {number} index The index of the tab * @return {!ClientRect} */ }, { key: 'getTabIndicatorClientRectAtIndex', value: function getTabIndicatorClientRectAtIndex(index) {} /** * Returns the tab dimensions of the tab at the given index * @param {number} index The index of the tab * @return {!MDCTabDimensions} */ }, { key: 'getTabDimensionsAtIndex', value: function getTabDimensionsAtIndex(index) {} /** * Returns the length of the tab list * @return {number} */ }, { key: 'getTabListLength', value: function getTabListLength() {} /** * Returns the index of the active tab * @return {number} */ }, { key: 'getActiveTabIndex', value: function getActiveTabIndex() {} /** * Returns the index of the given tab * @param {!MDCTab} tab The tab whose index to determin * @return {number} */ }, { key: 'getIndexOfTab', value: function getIndexOfTab(tab) {} /** * Emits the MDCTabBar:activated event * @param {number} index The index of the activated tab */ }, { key: 'notifyTabActivated', value: function notifyTabActivated(index) {} }]); return MDCTabBarAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabBarAdapter); /***/ }), /* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return numbers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VALIDATION_ATTR_WHITELIST; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { ARIA_CONTROLS: 'aria-controls', INPUT_SELECTOR: '.mdc-text-field__input', LABEL_SELECTOR: '.mdc-floating-label', ICON_SELECTOR: '.mdc-text-field__icon', OUTLINE_SELECTOR: '.mdc-notched-outline', LINE_RIPPLE_SELECTOR: '.mdc-line-ripple' }; /** @enum {string} */ var cssClasses = { ROOT: 'mdc-text-field', UPGRADED: 'mdc-text-field--upgraded', DISABLED: 'mdc-text-field--disabled', DENSE: 'mdc-text-field--dense', FOCUSED: 'mdc-text-field--focused', INVALID: 'mdc-text-field--invalid', BOX: 'mdc-text-field--box', OUTLINED: 'mdc-text-field--outlined' }; /** @enum {number} */ var numbers = { LABEL_SCALE: 0.75, DENSE_LABEL_SCALE: 0.923 }; // whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation // under section: `Validation-related attributes` var VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength']; /***/ }), /* 45 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCTextFieldAdapter */ /* unused harmony export NativeInputType */ /* unused harmony export FoundationMapType */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helper_text_foundation__ = __webpack_require__(21); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__icon_foundation__ = __webpack_require__(22); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * @typedef {{ * value: string, * disabled: boolean, * badInput: boolean, * validity: { * badInput: boolean, * valid: boolean, * }, * }} */ var NativeInputType = void 0; /** * @typedef {{ * helperText: (!MDCTextFieldHelperTextFoundation|undefined), * icon: (!MDCTextFieldIconFoundation|undefined), * }} */ var FoundationMapType = void 0; /** * Adapter for MDC Text Field. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the Text Field into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTextFieldAdapter = function () { function MDCTextFieldAdapter() { _classCallCheck(this, MDCTextFieldAdapter); } _createClass(MDCTextFieldAdapter, [{ key: 'addClass', /** * Adds a class to the root Element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the root Element. * @param {string} className */ }, { key: 'removeClass', value: function removeClass(className) {} /** * Returns true if the root element contains the given class name. * @param {string} className * @return {boolean} */ }, { key: 'hasClass', value: function hasClass(className) {} /** * Registers an event handler on the root element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: 'registerTextFieldInteractionHandler', value: function registerTextFieldInteractionHandler(type, handler) {} /** * Deregisters an event handler on the root element for a given event. * @param {string} type * @param {function(!Event): undefined} handler */ }, { key: 'deregisterTextFieldInteractionHandler', value: function deregisterTextFieldInteractionHandler(type, handler) {} /** * Registers an event listener on the native input element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: 'registerInputInteractionHandler', value: function registerInputInteractionHandler(evtType, handler) {} /** * Deregisters an event listener on the native input element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: 'deregisterInputInteractionHandler', value: function deregisterInputInteractionHandler(evtType, handler) {} /** * Registers a validation attribute change listener on the input element. * Handler accepts list of attribute names. * @param {function(!Array): undefined} handler * @return {!MutationObserver} */ }, { key: 'registerValidationAttributeChangeHandler', value: function registerValidationAttributeChangeHandler(handler) {} /** * Disconnects a validation attribute observer on the input element. * @param {!MutationObserver} observer */ }, { key: 'deregisterValidationAttributeChangeHandler', value: function deregisterValidationAttributeChangeHandler(observer) {} /** * Returns an object representing the native text input element, with a * similar API shape. The object returned should include the value, disabled * and badInput properties, as well as the checkValidity() function. We never * alter the value within our code, however we do update the disabled * property, so if you choose to duck-type the return value for this method * in your implementation it's important to keep this in mind. Also note that * this method can return null, which the foundation will handle gracefully. * @return {?Element|?NativeInputType} */ }, { key: 'getNativeInput', value: function getNativeInput() {} /** * Returns true if the textfield is focused. * We achieve this via `document.activeElement === this.root_`. * @return {boolean} */ }, { key: 'isFocused', value: function isFocused() {} /** * Returns true if the direction of the root element is set to RTL. * @return {boolean} */ }, { key: 'isRtl', value: function isRtl() {} /** * Activates the line ripple. */ }, { key: 'activateLineRipple', value: function activateLineRipple() {} /** * Deactivates the line ripple. */ }, { key: 'deactivateLineRipple', value: function deactivateLineRipple() {} /** * Sets the transform origin of the line ripple. * @param {number} normalizedX */ }, { key: 'setLineRippleTransformOrigin', value: function setLineRippleTransformOrigin(normalizedX) {} /** * Only implement if label exists. * Shakes label if shouldShake is true. * @param {boolean} shouldShake */ }, { key: 'shakeLabel', value: function shakeLabel(shouldShake) {} /** * Only implement if label exists. * Floats the label above the input element if shouldFloat is true. * @param {boolean} shouldFloat */ }, { key: 'floatLabel', value: function floatLabel(shouldFloat) {} /** * Returns true if label element exists, false if it doesn't. * @return {boolean} */ }, { key: 'hasLabel', value: function hasLabel() {} /** * Only implement if label exists. * Returns width of label in pixels. * @return {number} */ }, { key: 'getLabelWidth', value: function getLabelWidth() {} /** * Returns true if outline element exists, false if it doesn't. * @return {boolean} */ }, { key: 'hasOutline', value: function hasOutline() {} /** * Only implement if outline element exists. * Updates SVG Path and outline element based on the * label element width and RTL context. * @param {number} labelWidth * @param {boolean=} isRtl */ }, { key: 'notchOutline', value: function notchOutline(labelWidth, isRtl) {} /** * Only implement if outline element exists. * Closes notch in outline element. */ }, { key: 'closeOutline', value: function closeOutline() {} }]); return MDCTextFieldAdapter; }(); /***/ }), /* 46 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Text Field Helper Text. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the TextField helper text into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTextFieldHelperTextAdapter = function () { function MDCTextFieldHelperTextAdapter() { _classCallCheck(this, MDCTextFieldHelperTextAdapter); } _createClass(MDCTextFieldHelperTextAdapter, [{ key: "addClass", /** * Adds a class to the helper text element. * @param {string} className */ value: function addClass(className) {} /** * Removes a class from the helper text element. * @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * Returns whether or not the helper text element contains the given class. * @param {string} className * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** * Sets an attribute with a given value on the helper text element. * @param {string} attr * @param {string} value */ }, { key: "setAttr", value: function setAttr(attr, value) {} /** * Removes an attribute from the helper text element. * @param {string} attr */ }, { key: "removeAttr", value: function removeAttr(attr) {} /** * Sets the text content for the helper text element. * @param {string} content */ }, { key: "setContent", value: function setContent(content) {} }]); return MDCTextFieldHelperTextAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldHelperTextAdapter); /***/ }), /* 47 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Text Field Icon. * * Defines the shape of the adapter expected by the foundation. Implement this * adapter to integrate the text field icon into your framework. See * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md * for more information. * * @record */ var MDCTextFieldIconAdapter = function () { function MDCTextFieldIconAdapter() { _classCallCheck(this, MDCTextFieldIconAdapter); } _createClass(MDCTextFieldIconAdapter, [{ key: "getAttr", /** * Gets the value of an attribute on the icon element. * @param {string} attr * @return {string} */ value: function getAttr(attr) {} /** * Sets an attribute on the icon element. * @param {string} attr * @param {string} value */ }, { key: "setAttr", value: function setAttr(attr, value) {} /** * Removes an attribute from the icon element. * @param {string} attr */ }, { key: "removeAttr", value: function removeAttr(attr) {} /** * Sets the text content of the icon element. * @param {string} content */ }, { key: "setContent", value: function setContent(content) {} /** * Registers an event listener on the icon element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(evtType, handler) {} /** * Deregisters an event listener on the icon element for a given event. * @param {string} evtType * @param {function(!Event): undefined} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(evtType, handler) {} /** * Emits a custom event "MDCTextField:icon" denoting a user has clicked the icon. */ }, { key: "notifyIconAction", value: function notifyIconAction() {} }]); return MDCTextFieldIconAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldIconAdapter); /***/ }), /* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__ = __webpack_require__(49); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__ = __webpack_require__(50); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_chips_index__ = __webpack_require__(56); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__ = __webpack_require__(60); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_drawer_index__ = __webpack_require__(66); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_floating_label_index__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__material_form_field_index__ = __webpack_require__(77); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__material_grid_list_index__ = __webpack_require__(81); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__material_icon_button_index__ = __webpack_require__(84); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__material_icon_toggle_index__ = __webpack_require__(88); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__material_linear_progress_index__ = __webpack_require__(92); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__material_line_ripple_index__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__material_list_index__ = __webpack_require__(97); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__material_menu_index__ = __webpack_require__(99); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__material_notched_outline_index__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__material_radio_index__ = __webpack_require__(104); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__material_select_index__ = __webpack_require__(108); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__material_slider_index__ = __webpack_require__(110); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__material_snackbar_index__ = __webpack_require__(112); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__material_switch_index__ = __webpack_require__(115); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__material_tab_index__ = __webpack_require__(19); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__material_tab_bar_index__ = __webpack_require__(123); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__material_tab_indicator_index__ = __webpack_require__(38); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__material_tab_scroller_index__ = __webpack_require__(41); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__material_textfield_index__ = __webpack_require__(131); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__material_toolbar_index__ = __webpack_require__(137); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__material_top_app_bar_index__ = __webpack_require__(140); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "autoInit", function() { return __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a"]; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "base", function() { return __WEBPACK_IMPORTED_MODULE_1__material_base_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "checkbox", function() { return __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "chips", function() { return __WEBPACK_IMPORTED_MODULE_3__material_chips_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "dialog", function() { return __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "drawer", function() { return __WEBPACK_IMPORTED_MODULE_5__material_drawer_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "floatingLabel", function() { return __WEBPACK_IMPORTED_MODULE_6__material_floating_label_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "formField", function() { return __WEBPACK_IMPORTED_MODULE_7__material_form_field_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "gridList", function() { return __WEBPACK_IMPORTED_MODULE_8__material_grid_list_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "iconButton", function() { return __WEBPACK_IMPORTED_MODULE_9__material_icon_button_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "iconToggle", function() { return __WEBPACK_IMPORTED_MODULE_10__material_icon_toggle_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "lineRipple", function() { return __WEBPACK_IMPORTED_MODULE_12__material_line_ripple_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "linearProgress", function() { return __WEBPACK_IMPORTED_MODULE_11__material_linear_progress_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "list", function() { return __WEBPACK_IMPORTED_MODULE_13__material_list_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "menu", function() { return __WEBPACK_IMPORTED_MODULE_14__material_menu_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "notchedOutline", function() { return __WEBPACK_IMPORTED_MODULE_15__material_notched_outline_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "radio", function() { return __WEBPACK_IMPORTED_MODULE_16__material_radio_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "ripple", function() { return __WEBPACK_IMPORTED_MODULE_17__material_ripple_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "select", function() { return __WEBPACK_IMPORTED_MODULE_18__material_select_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "selectionControl", function() { return __WEBPACK_IMPORTED_MODULE_19__material_selection_control_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "slider", function() { return __WEBPACK_IMPORTED_MODULE_20__material_slider_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "switchControl", function() { return __WEBPACK_IMPORTED_MODULE_22__material_switch_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "snackbar", function() { return __WEBPACK_IMPORTED_MODULE_21__material_snackbar_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tab", function() { return __WEBPACK_IMPORTED_MODULE_23__material_tab_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabBar", function() { return __WEBPACK_IMPORTED_MODULE_24__material_tab_bar_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabIndicator", function() { return __WEBPACK_IMPORTED_MODULE_25__material_tab_indicator_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabScroller", function() { return __WEBPACK_IMPORTED_MODULE_26__material_tab_scroller_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "textField", function() { return __WEBPACK_IMPORTED_MODULE_27__material_textfield_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "toolbar", function() { return __WEBPACK_IMPORTED_MODULE_28__material_toolbar_index__; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "topAppBar", function() { return __WEBPACK_IMPORTED_MODULE_29__material_top_app_bar_index__; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Register all components __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCCheckbox', __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__["MDCCheckbox"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCChip', __WEBPACK_IMPORTED_MODULE_3__material_chips_index__["MDCChip"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCChipSet', __WEBPACK_IMPORTED_MODULE_3__material_chips_index__["MDCChipSet"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCDialog', __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__["MDCDialog"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCPersistentDrawer', __WEBPACK_IMPORTED_MODULE_5__material_drawer_index__["MDCPersistentDrawer"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTemporaryDrawer', __WEBPACK_IMPORTED_MODULE_5__material_drawer_index__["MDCTemporaryDrawer"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCFloatingLabel', __WEBPACK_IMPORTED_MODULE_6__material_floating_label_index__["MDCFloatingLabel"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCFormField', __WEBPACK_IMPORTED_MODULE_7__material_form_field_index__["MDCFormField"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCRipple', __WEBPACK_IMPORTED_MODULE_17__material_ripple_index__["MDCRipple"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCGridList', __WEBPACK_IMPORTED_MODULE_8__material_grid_list_index__["MDCGridList"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCIconButtonToggle', __WEBPACK_IMPORTED_MODULE_9__material_icon_button_index__["MDCIconButtonToggle"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCIconToggle', __WEBPACK_IMPORTED_MODULE_10__material_icon_toggle_index__["MDCIconToggle"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCLineRipple', __WEBPACK_IMPORTED_MODULE_12__material_line_ripple_index__["MDCLineRipple"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCLinearProgress', __WEBPACK_IMPORTED_MODULE_11__material_linear_progress_index__["MDCLinearProgress"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCList', __WEBPACK_IMPORTED_MODULE_13__material_list_index__["MDCList"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCNotchedOutline', __WEBPACK_IMPORTED_MODULE_15__material_notched_outline_index__["MDCNotchedOutline"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCRadio', __WEBPACK_IMPORTED_MODULE_16__material_radio_index__["MDCRadio"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSnackbar', __WEBPACK_IMPORTED_MODULE_21__material_snackbar_index__["MDCSnackbar"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTabBar', __WEBPACK_IMPORTED_MODULE_24__material_tab_bar_index__["MDCTabBar"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTextField', __WEBPACK_IMPORTED_MODULE_27__material_textfield_index__["MDCTextField"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCMenu', __WEBPACK_IMPORTED_MODULE_14__material_menu_index__["MDCMenu"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSelect', __WEBPACK_IMPORTED_MODULE_18__material_select_index__["MDCSelect"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSlider', __WEBPACK_IMPORTED_MODULE_20__material_slider_index__["MDCSlider"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSwitch', __WEBPACK_IMPORTED_MODULE_22__material_switch_index__["MDCSwitch"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCToolbar', __WEBPACK_IMPORTED_MODULE_28__material_toolbar_index__["MDCToolbar"]); __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTopAppBar', __WEBPACK_IMPORTED_MODULE_29__material_top_app_bar_index__["MDCTopAppBar"]); // Export all components. /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = mdcAutoInit; /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var registry = Object.create(null); var CONSOLE_WARN = console.warn.bind(console); function _emit(evtType, evtData) { var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var evt = void 0; if (typeof CustomEvent === 'function') { evt = new CustomEvent(evtType, { detail: evtData, bubbles: shouldBubble }); } else { evt = document.createEvent('CustomEvent'); evt.initCustomEvent(evtType, shouldBubble, false, evtData); } document.dispatchEvent(evt); } /** * Auto-initializes all mdc components on a page. */ function mdcAutoInit() { var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document; var warn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CONSOLE_WARN; var components = []; var nodes = root.querySelectorAll('[data-mdc-auto-init]'); for (var i = 0, node; node = nodes[i]; i++) { var ctorName = node.dataset.mdcAutoInit; if (!ctorName) { throw new Error('(mdc-auto-init) Constructor name must be given.'); } var Ctor = registry[ctorName]; if (typeof Ctor !== 'function') { throw new Error('(mdc-auto-init) Could not find constructor in registry for ' + ctorName); } if (node[ctorName]) { warn('(mdc-auto-init) Component already initialized for ' + node + '. Skipping...'); continue; } // TODO: Should we make an eslint rule for an attachTo() static method? var component = Ctor.attachTo(node); Object.defineProperty(node, ctorName, { value: component, writable: false, enumerable: false, configurable: true }); components.push(component); } _emit('MDCAutoInit:End', {}); return components; } mdcAutoInit.register = function (componentName, Ctor) { var warn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CONSOLE_WARN; if (typeof Ctor !== 'function') { throw new Error('(mdc-auto-init) Invalid Ctor value ' + Ctor + '. Expected function'); } if (registry[componentName]) { warn('(mdc-auto-init) Overriding registration for ' + componentName + ' with ' + Ctor + '. ' + ('Was: ' + registry[componentName])); } registry[componentName] = Ctor; }; mdcAutoInit.deregister = function (componentName) { delete registry[componentName]; }; mdcAutoInit.deregisterAll = function () { Object.keys(registry).forEach(this.deregister, this); }; /***/ }), /* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckbox", function() { return MDCCheckbox; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_animation_index__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(53); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_ripple_util__ = __webpack_require__(6); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckboxFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends MDCComponent * @implements {MDCSelectionControl} */ var MDCCheckbox = function (_MDCComponent) { _inherits(MDCCheckbox, _MDCComponent); _createClass(MDCCheckbox, [{ key: 'nativeCb_', /** * Returns the state of the native control element, or null if the native control element is not present. * @return {?MDCSelectionControlState} * @private */ get: function get() { var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR; var cbEl = /** @type {?MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR); return cbEl; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCCheckbox(root); } }]); function MDCCheckbox() { var _ref; _classCallCheck(this, MDCCheckbox); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCCheckbox.__proto__ || Object.getPrototypeOf(MDCCheckbox)).call.apply(_ref, [this].concat(args))); _this.ripple_ = _this.initRipple_(); return _this; } /** * @return {!MDCRipple} * @private */ _createClass(MDCCheckbox, [{ key: 'initRipple_', value: function initRipple_() { var _this2 = this; var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_5__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype); var adapter = _extends(__WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"].createAdapter(this), { isUnbounded: function isUnbounded() { return true; }, isSurfaceActive: function isSurfaceActive() { return _this2.nativeCb_[MATCHES](':active'); }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.nativeCb_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.nativeCb_.removeEventListener(type, handler); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRippleFoundation"](adapter); return new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"](this.root_, foundation); } /** @return {!MDCCheckboxFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this3.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.root_.classList.remove(className); }, setNativeControlAttr: function setNativeControlAttr(attr, value) { return _this3.nativeCb_.setAttribute(attr, value); }, removeNativeControlAttr: function removeNativeControlAttr(attr) { return _this3.nativeCb_.removeAttribute(attr); }, registerAnimationEndHandler: function registerAnimationEndHandler(handler) { return _this3.root_.addEventListener(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation_index__["a" /* getCorrectEventName */])(window, 'animationend'), handler); }, deregisterAnimationEndHandler: function deregisterAnimationEndHandler(handler) { return _this3.root_.removeEventListener(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation_index__["a" /* getCorrectEventName */])(window, 'animationend'), handler); }, registerChangeHandler: function registerChangeHandler(handler) { return _this3.nativeCb_.addEventListener('change', handler); }, deregisterChangeHandler: function deregisterChangeHandler(handler) { return _this3.nativeCb_.removeEventListener('change', handler); }, getNativeControl: function getNativeControl() { return _this3.nativeCb_; }, forceLayout: function forceLayout() { return _this3.root_.offsetWidth; }, isAttachedToDOM: function isAttachedToDOM() { return Boolean(_this3.root_.parentNode); } }); } /** @return {!MDCRipple} */ }, { key: 'destroy', value: function destroy() { this.ripple_.destroy(); _get(MDCCheckbox.prototype.__proto__ || Object.getPrototypeOf(MDCCheckbox.prototype), 'destroy', this).call(this); } }, { key: 'ripple', get: function get() { return this.ripple_; } /** @return {boolean} */ }, { key: 'checked', get: function get() { return this.foundation_.isChecked(); } /** @param {boolean} checked */ , set: function set(checked) { this.foundation_.setChecked(checked); } /** @return {boolean} */ }, { key: 'indeterminate', get: function get() { return this.foundation_.isIndeterminate(); } /** @param {boolean} indeterminate */ , set: function set(indeterminate) { this.foundation_.setIndeterminate(indeterminate); } /** @return {boolean} */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** @param {boolean} disabled */ , set: function set(disabled) { this.foundation_.setDisabled(disabled); } /** @return {?string} */ }, { key: 'value', get: function get() { return this.foundation_.getValue(); } /** @param {?string} value */ , set: function set(value) { this.foundation_.setValue(value); } }]); return MDCCheckbox; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]); /***/ }), /* 51 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(23); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(52); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(6); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @typedef {{ * isActivated: (boolean|undefined), * hasDeactivationUXRun: (boolean|undefined), * wasActivatedByPointer: (boolean|undefined), * wasElementMadeActive: (boolean|undefined), * activationEvent: Event, * isProgrammatic: (boolean|undefined) * }} */ var ActivationStateType = void 0; /** * @typedef {{ * activate: (string|undefined), * deactivate: (string|undefined), * focus: (string|undefined), * blur: (string|undefined) * }} */ var ListenerInfoType = void 0; /** * @typedef {{ * activate: function(!Event), * deactivate: function(!Event), * focus: function(), * blur: function() * }} */ var ListenersType = void 0; /** * @typedef {{ * x: number, * y: number * }} */ var PointType = void 0; // 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']; // Tracks activations that have occurred on the current frame, to avoid simultaneous nested activations /** @type {!Array} */ var activatedTargets = []; /** * @extends {MDCFoundation} */ var MDCRippleFoundation = function (_MDCFoundation) { _inherits(MDCRippleFoundation, _MDCFoundation); _createClass(MDCRippleFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; } }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; } }, { key: 'defaultAdapter', get: function get() { return { browserSupportsCssVars: function browserSupportsCssVars() /* boolean - cached */{}, isUnbounded: function isUnbounded() /* boolean */{}, isSurfaceActive: function isSurfaceActive() /* boolean */{}, isSurfaceDisabled: function isSurfaceDisabled() /* boolean */{}, addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, containsEventTarget: function containsEventTarget() /* target: !EventTarget */{}, registerInteractionHandler: function registerInteractionHandler() /* evtType: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* evtType: string, handler: EventListener */{}, registerDocumentInteractionHandler: function registerDocumentInteractionHandler() /* evtType: string, handler: EventListener */{}, deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() /* evtType: string, handler: EventListener */{}, registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{}, deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}, updateCssVariable: function updateCssVariable() /* varName: string, value: string */{}, computeBoundingRect: function computeBoundingRect() /* ClientRect */{}, getWindowPageOffset: function getWindowPageOffset() /* {x: number, y: number} */{} }; } }]); function MDCRippleFoundation(adapter) { _classCallCheck(this, MDCRippleFoundation); /** @private {number} */ var _this = _possibleConstructorReturn(this, (MDCRippleFoundation.__proto__ || Object.getPrototypeOf(MDCRippleFoundation)).call(this, _extends(MDCRippleFoundation.defaultAdapter, adapter))); _this.layoutFrame_ = 0; /** @private {!ClientRect} */ _this.frame_ = /** @type {!ClientRect} */{ width: 0, height: 0 }; /** @private {!ActivationStateType} */ _this.activationState_ = _this.defaultActivationState_(); /** @private {number} */ _this.initialSize_ = 0; /** @private {number} */ _this.maxRadius_ = 0; /** @private {function(!Event)} */ _this.activateHandler_ = function (e) { return _this.activate_(e); }; /** @private {function(!Event)} */ _this.deactivateHandler_ = function (e) { return _this.deactivate_(e); }; /** @private {function(?Event=)} */ _this.focusHandler_ = function () { return _this.handleFocus(); }; /** @private {function(?Event=)} */ _this.blurHandler_ = function () { return _this.handleBlur(); }; /** @private {!Function} */ _this.resizeHandler_ = function () { return _this.layout(); }; /** @private {{left: number, top:number}} */ _this.unboundedCoords_ = { left: 0, top: 0 }; /** @private {number} */ _this.fgScale_ = 0; /** @private {number} */ _this.activationTimer_ = 0; /** @private {number} */ _this.fgDeactivationRemovalTimer_ = 0; /** @private {boolean} */ _this.activationAnimationHasEnded_ = false; /** @private {!Function} */ _this.activationTimerCallback_ = function () { _this.activationAnimationHasEnded_ = true; _this.runDeactivationUXLogicIfReady_(); }; /** @private {?Event} */ _this.previousActivationEvent_ = null; return _this; } /** * 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. * @return {boolean} * @private */ _createClass(MDCRippleFoundation, [{ key: 'isSupported_', value: function isSupported_() { return this.adapter_.browserSupportsCssVars(); } /** * @return {!ActivationStateType} */ }, { key: 'defaultActivationState_', value: function defaultActivationState_() { return { isActivated: false, hasDeactivationUXRun: false, wasActivatedByPointer: false, wasElementMadeActive: false, activationEvent: null, isProgrammatic: false }; } /** @override */ }, { key: 'init', value: function init() { var _this2 = this; if (!this.isSupported_()) { return; } this.registerRootHandlers_(); var _MDCRippleFoundation$ = MDCRippleFoundation.cssClasses, ROOT = _MDCRippleFoundation$.ROOT, UNBOUNDED = _MDCRippleFoundation$.UNBOUNDED; requestAnimationFrame(function () { _this2.adapter_.addClass(ROOT); if (_this2.adapter_.isUnbounded()) { _this2.adapter_.addClass(UNBOUNDED); // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple _this2.layoutInternal_(); } }); } /** @override */ }, { key: 'destroy', value: function destroy() { var _this3 = this; if (!this.isSupported_()) { return; } if (this.activationTimer_) { clearTimeout(this.activationTimer_); this.activationTimer_ = 0; var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; this.adapter_.removeClass(FG_ACTIVATION); } this.deregisterRootHandlers_(); this.deregisterDeactivationHandlers_(); var _MDCRippleFoundation$2 = MDCRippleFoundation.cssClasses, ROOT = _MDCRippleFoundation$2.ROOT, UNBOUNDED = _MDCRippleFoundation$2.UNBOUNDED; requestAnimationFrame(function () { _this3.adapter_.removeClass(ROOT); _this3.adapter_.removeClass(UNBOUNDED); _this3.removeCssVars_(); }); } /** @private */ }, { key: 'registerRootHandlers_', value: function registerRootHandlers_() { var _this4 = this; ACTIVATION_EVENT_TYPES.forEach(function (type) { _this4.adapter_.registerInteractionHandler(type, _this4.activateHandler_); }); this.adapter_.registerInteractionHandler('focus', this.focusHandler_); this.adapter_.registerInteractionHandler('blur', this.blurHandler_); if (this.adapter_.isUnbounded()) { this.adapter_.registerResizeHandler(this.resizeHandler_); } } /** * @param {!Event} e * @private */ }, { key: 'registerDeactivationHandlers_', value: function registerDeactivationHandlers_(e) { var _this5 = this; if (e.type === 'keydown') { this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_); } else { POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) { _this5.adapter_.registerDocumentInteractionHandler(type, _this5.deactivateHandler_); }); } } /** @private */ }, { key: 'deregisterRootHandlers_', value: function deregisterRootHandlers_() { var _this6 = this; ACTIVATION_EVENT_TYPES.forEach(function (type) { _this6.adapter_.deregisterInteractionHandler(type, _this6.activateHandler_); }); this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); if (this.adapter_.isUnbounded()) { this.adapter_.deregisterResizeHandler(this.resizeHandler_); } } /** @private */ }, { key: 'deregisterDeactivationHandlers_', value: function deregisterDeactivationHandlers_() { var _this7 = this; this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_); POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) { _this7.adapter_.deregisterDocumentInteractionHandler(type, _this7.deactivateHandler_); }); } /** @private */ }, { key: 'removeCssVars_', value: function removeCssVars_() { var _this8 = this; var strings = MDCRippleFoundation.strings; Object.keys(strings).forEach(function (k) { if (k.indexOf('VAR_') === 0) { _this8.adapter_.updateCssVariable(strings[k], null); } }); } /** * @param {?Event} e * @private */ }, { key: 'activate_', value: function activate_(e) { var _this9 = 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 && e && previousActivationEvent.type !== e.type; if (isSameInteraction) { return; } activationState.isActivated = true; activationState.isProgrammatic = e === null; activationState.activationEvent = e; activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'pointerdown'; var hasActivatedChild = e && activatedTargets.length > 0 && activatedTargets.some(function (target) { return _this9.adapter_.containsEventTarget(target); }); if (hasActivatedChild) { // Immediately reset activation state, while preserving logic that prevents touch follow-on events this.resetActivationState_(); return; } if (e) { activatedTargets.push( /** @type {!EventTarget} */e.target); this.registerDeactivationHandlers_(e); } activationState.wasElementMadeActive = this.checkElementMadeActive_(e); 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 && (e.key === ' ' || e.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 = _this9.checkElementMadeActive_(e); if (activationState.wasElementMadeActive) { _this9.animateActivation_(); } } if (!activationState.wasElementMadeActive) { // Reset activation state immediately if element was not made active. _this9.activationState_ = _this9.defaultActivationState_(); } }); } /** * @param {?Event} e * @private */ }, { key: 'checkElementMadeActive_', value: function checkElementMadeActive_(e) { return e && e.type === 'keydown' ? this.adapter_.isSurfaceActive() : true; } /** * @param {?Event=} event Optional event containing position information. */ }, { key: 'activate', value: function activate() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; this.activate_(event); } /** @private */ }, { key: 'animateActivation_', value: function animateActivation_() { var _this10 = this; var _MDCRippleFoundation$3 = MDCRippleFoundation.strings, VAR_FG_TRANSLATE_START = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_START, VAR_FG_TRANSLATE_END = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_END; var _MDCRippleFoundation$4 = MDCRippleFoundation.cssClasses, FG_DEACTIVATION = _MDCRippleFoundation$4.FG_DEACTIVATION, FG_ACTIVATION = _MDCRippleFoundation$4.FG_ACTIVATION; var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS; this.layoutInternal_(); var translateStart = ''; var translateEnd = ''; if (!this.adapter_.isUnbounded()) { var _getFgTranslationCoor = this.getFgTranslationCoordinates_(), startPoint = _getFgTranslationCoor.startPoint, endPoint = _getFgTranslationCoor.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 _this10.activationTimerCallback_(); }, DEACTIVATION_TIMEOUT_MS); } /** * @private * @return {{startPoint: PointType, endPoint: PointType}} */ }, { key: 'getFgTranslationCoordinates_', value: function getFgTranslationCoordinates_() { var _activationState_ = this.activationState_, activationEvent = _activationState_.activationEvent, wasActivatedByPointer = _activationState_.wasActivatedByPointer; var startPoint = void 0; if (wasActivatedByPointer) { startPoint = Object(__WEBPACK_IMPORTED_MODULE_3__util__["getNormalizedEventCoords"])( /** @type {!Event} */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 }; } /** @private */ }, { key: 'runDeactivationUXLogicIfReady_', value: function runDeactivationUXLogicIfReady_() { var _this11 = 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 _activationState_2 = this.activationState_, hasDeactivationUXRun = _activationState_2.hasDeactivationUXRun, isActivated = _activationState_2.isActivated; var activationHasEnded = hasDeactivationUXRun || !isActivated; if (activationHasEnded && this.activationAnimationHasEnded_) { this.rmBoundedActivationClasses_(); this.adapter_.addClass(FG_DEACTIVATION); this.fgDeactivationRemovalTimer_ = setTimeout(function () { _this11.adapter_.removeClass(FG_DEACTIVATION); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].FG_DEACTIVATION_MS); } } /** @private */ }, { key: 'rmBoundedActivationClasses_', value: function rmBoundedActivationClasses_() { var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; this.adapter_.removeClass(FG_ACTIVATION); this.activationAnimationHasEnded_ = false; this.adapter_.computeBoundingRect(); } }, { key: 'resetActivationState_', value: function resetActivationState_() { var _this12 = 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 _this12.previousActivationEvent_ = null; }, MDCRippleFoundation.numbers.TAP_DELAY_MS); } /** * @param {?Event} e * @private */ }, { key: 'deactivate_', value: function deactivate_(e) { var _this13 = 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 = /** @type {!ActivationStateType} */_extends({}, activationState); if (activationState.isProgrammatic) { var evtObject = null; requestAnimationFrame(function () { return _this13.animateDeactivation_(evtObject, state); }); this.resetActivationState_(); } else { this.deregisterDeactivationHandlers_(); requestAnimationFrame(function () { _this13.activationState_.hasDeactivationUXRun = true; _this13.animateDeactivation_(e, state); _this13.resetActivationState_(); }); } } /** * @param {?Event=} event Optional event containing position information. */ }, { key: 'deactivate', value: function deactivate() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; this.deactivate_(event); } /** * @param {Event} e * @param {!ActivationStateType} options * @private */ }, { key: 'animateDeactivation_', value: function animateDeactivation_(e, _ref) { var wasActivatedByPointer = _ref.wasActivatedByPointer, wasElementMadeActive = _ref.wasElementMadeActive; if (wasActivatedByPointer || wasElementMadeActive) { this.runDeactivationUXLogicIfReady_(); } } }, { key: 'layout', value: function layout() { var _this14 = this; if (this.layoutFrame_) { cancelAnimationFrame(this.layoutFrame_); } this.layoutFrame_ = requestAnimationFrame(function () { _this14.layoutInternal_(); _this14.layoutFrame_ = 0; }); } /** @private */ }, { key: 'layoutInternal_', value: function layoutInternal_() { var _this15 = 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(_this15.frame_.width, 2) + Math.pow(_this15.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 this.initialSize_ = maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE; this.fgScale_ = this.maxRadius_ / this.initialSize_; this.updateLayoutCssVars_(); } /** @private */ }, { key: 'updateLayoutCssVars_', value: function updateLayoutCssVars_() { var _MDCRippleFoundation$5 = MDCRippleFoundation.strings, VAR_FG_SIZE = _MDCRippleFoundation$5.VAR_FG_SIZE, VAR_LEFT = _MDCRippleFoundation$5.VAR_LEFT, VAR_TOP = _MDCRippleFoundation$5.VAR_TOP, VAR_FG_SCALE = _MDCRippleFoundation$5.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'); } } /** @param {boolean} unbounded */ }, { key: 'setUnbounded', value: function setUnbounded(unbounded) { var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED; if (unbounded) { this.adapter_.addClass(UNBOUNDED); } else { this.adapter_.removeClass(UNBOUNDED); } } }, { key: 'handleFocus', value: function handleFocus() { var _this16 = this; requestAnimationFrame(function () { return _this16.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); } }, { key: 'handleBlur', value: function handleBlur() { var _this17 = this; requestAnimationFrame(function () { return _this17.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); } }]); return MDCRippleFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCRippleFoundation); /***/ }), /* 52 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var 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. ROOT: 'mdc-ripple-upgraded', UNBOUNDED: 'mdc-ripple-upgraded--unbounded', BG_FOCUSED: 'mdc-ripple-upgraded--background-focused', FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation', FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation' }; var strings = { VAR_LEFT: '--mdc-ripple-left', VAR_TOP: '--mdc-ripple-top', VAR_FG_SIZE: '--mdc-ripple-fg-size', VAR_FG_SCALE: '--mdc-ripple-fg-scale', VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start', VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end' }; var numbers = { PADDING: 10, INITIAL_ORIGIN_SCALE: 0.6, DEACTIVATION_TIMEOUT_MS: 225, // Corresponds to $mdc-ripple-translate-duration (i.e. activation animation duration) FG_DEACTIVATION_MS: 150, // Corresponds to $mdc-ripple-fade-out-duration (i.e. deactivation animation duration) TAP_DELAY_MS: 300 }; /***/ }), /* 53 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(54); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(55); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** @const {!Array} */ var CB_PROTO_PROPS = ['checked', 'indeterminate']; /** * @extends {MDCFoundation} */ var MDCCheckboxFoundation = function (_MDCFoundation) { _inherits(MDCCheckboxFoundation, _MDCFoundation); _createClass(MDCCheckboxFoundation, null, [{ key: 'cssClasses', /** @return enum {cssClasses} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */]; } /** @return enum {strings} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */]; } /** @return enum {numbers} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */]; } /** @return {!MDCCheckboxAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCCheckboxAdapter} */{ addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, setNativeControlAttr: function setNativeControlAttr() /* attr: string, value: string */{}, removeNativeControlAttr: function removeNativeControlAttr() /* attr: string */{}, registerAnimationEndHandler: function registerAnimationEndHandler() /* handler: EventListener */{}, deregisterAnimationEndHandler: function deregisterAnimationEndHandler() /* handler: EventListener */{}, registerChangeHandler: function registerChangeHandler() /* handler: EventListener */{}, deregisterChangeHandler: function deregisterChangeHandler() /* handler: EventListener */{}, getNativeControl: function getNativeControl() /* !MDCSelectionControlState */{}, forceLayout: function forceLayout() {}, isAttachedToDOM: function isAttachedToDOM() /* boolean */{} } ); } }]); function MDCCheckboxFoundation(adapter) { _classCallCheck(this, MDCCheckboxFoundation); /** @private {string} */ var _this = _possibleConstructorReturn(this, (MDCCheckboxFoundation.__proto__ || Object.getPrototypeOf(MDCCheckboxFoundation)).call(this, _extends(MDCCheckboxFoundation.defaultAdapter, adapter))); _this.currentCheckState_ = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT; /** @private {string} */ _this.currentAnimationClass_ = ''; /** @private {number} */ _this.animEndLatchTimer_ = 0; _this.animEndHandler_ = /** @private {!EventListener} */function () { return _this.handleAnimationEnd(); }; _this.changeHandler_ = /** @private {!EventListener} */function () { return _this.handleChange(); }; return _this; } /** @override */ _createClass(MDCCheckboxFoundation, [{ key: 'init', value: function init() { this.currentCheckState_ = this.determineCheckState_(this.getNativeControl_()); this.updateAriaChecked_(); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].UPGRADED); this.adapter_.registerChangeHandler(this.changeHandler_); this.installPropertyChangeHooks_(); } /** @override */ }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterChangeHandler(this.changeHandler_); this.uninstallPropertyChangeHooks_(); } /** @return {boolean} */ }, { key: 'isChecked', value: function isChecked() { return this.getNativeControl_().checked; } /** @param {boolean} checked */ }, { key: 'setChecked', value: function setChecked(checked) { this.getNativeControl_().checked = checked; } /** @return {boolean} */ }, { key: 'isIndeterminate', value: function isIndeterminate() { return this.getNativeControl_().indeterminate; } /** @param {boolean} indeterminate */ }, { key: 'setIndeterminate', value: function setIndeterminate(indeterminate) { this.getNativeControl_().indeterminate = indeterminate; } /** @return {boolean} */ }, { key: 'isDisabled', value: function isDisabled() { return this.getNativeControl_().disabled; } /** @param {boolean} disabled */ }, { key: 'setDisabled', value: function setDisabled(disabled) { this.getNativeControl_().disabled = disabled; if (disabled) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED); } } /** @return {?string} */ }, { key: 'getValue', value: function getValue() { return this.getNativeControl_().value; } /** @param {?string} value */ }, { key: 'setValue', value: function setValue(value) { this.getNativeControl_().value = value; } /** * Handles the animationend event for the checkbox */ }, { key: 'handleAnimationEnd', value: function handleAnimationEnd() { var _this2 = this; clearTimeout(this.animEndLatchTimer_); this.animEndLatchTimer_ = setTimeout(function () { _this2.adapter_.removeClass(_this2.currentAnimationClass_); _this2.adapter_.deregisterAnimationEndHandler(_this2.animEndHandler_); }, __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */].ANIM_END_LATCH_MS); } /** * Handles the change event for the checkbox */ }, { key: 'handleChange', value: function handleChange() { this.transitionCheckState_(); } /** @private */ }, { key: 'installPropertyChangeHooks_', value: function installPropertyChangeHooks_() { var _this3 = this; var nativeCb = this.getNativeControl_(); var cbProto = Object.getPrototypeOf(nativeCb); CB_PROTO_PROPS.forEach(function (controlState) { var desc = Object.getOwnPropertyDescriptor(cbProto, controlState); // We have to check for this descriptor, since some browsers (Safari) don't support its return. // See: https://bugs.webkit.org/show_bug.cgi?id=49739 if (validDescriptor(desc)) { var nativeCbDesc = /** @type {!ObjectPropertyDescriptor} */{ get: desc.get, set: function set(state) { desc.set.call(nativeCb, state); _this3.transitionCheckState_(); }, configurable: desc.configurable, enumerable: desc.enumerable }; Object.defineProperty(nativeCb, controlState, nativeCbDesc); } }); } /** @private */ }, { key: 'uninstallPropertyChangeHooks_', value: function uninstallPropertyChangeHooks_() { var nativeCb = this.getNativeControl_(); var cbProto = Object.getPrototypeOf(nativeCb); CB_PROTO_PROPS.forEach(function (controlState) { var desc = /** @type {!ObjectPropertyDescriptor} */Object.getOwnPropertyDescriptor(cbProto, controlState); if (validDescriptor(desc)) { Object.defineProperty(nativeCb, controlState, desc); } }); } /** @private */ }, { key: 'transitionCheckState_', value: function transitionCheckState_() { var nativeCb = this.adapter_.getNativeControl(); if (!nativeCb) { return; } var oldState = this.currentCheckState_; var newState = this.determineCheckState_(nativeCb); if (oldState === newState) { return; } this.updateAriaChecked_(); // Check to ensure that there isn't a previously existing animation class, in case for example // the user interacted with the checkbox before the animation was finished. if (this.currentAnimationClass_.length > 0) { clearTimeout(this.animEndLatchTimer_); this.adapter_.forceLayout(); this.adapter_.removeClass(this.currentAnimationClass_); } this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState); this.currentCheckState_ = newState; // Check for parentNode so that animations are only run when the element is attached // to the DOM. if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) { this.adapter_.addClass(this.currentAnimationClass_); this.adapter_.registerAnimationEndHandler(this.animEndHandler_); } } /** * @param {!MDCSelectionControlState} nativeCb * @return {string} * @private */ }, { key: 'determineCheckState_', value: function determineCheckState_(nativeCb) { var TRANSITION_STATE_INDETERMINATE = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INDETERMINATE, TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED; if (nativeCb.indeterminate) { return TRANSITION_STATE_INDETERMINATE; } return nativeCb.checked ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED; } /** * @param {string} oldState * @param {string} newState * @return {string} */ }, { key: 'getTransitionAnimationClass_', value: function getTransitionAnimationClass_(oldState, newState) { var TRANSITION_STATE_INIT = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT, TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED; var _MDCCheckboxFoundatio = MDCCheckboxFoundation.cssClasses, ANIM_UNCHECKED_CHECKED = _MDCCheckboxFoundatio.ANIM_UNCHECKED_CHECKED, ANIM_UNCHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_UNCHECKED_INDETERMINATE, ANIM_CHECKED_UNCHECKED = _MDCCheckboxFoundatio.ANIM_CHECKED_UNCHECKED, ANIM_CHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_CHECKED_INDETERMINATE, ANIM_INDETERMINATE_CHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_CHECKED, ANIM_INDETERMINATE_UNCHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_UNCHECKED; switch (oldState) { case TRANSITION_STATE_INIT: if (newState === TRANSITION_STATE_UNCHECKED) { return ''; } // fallthrough case TRANSITION_STATE_UNCHECKED: return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE; case TRANSITION_STATE_CHECKED: return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE; // TRANSITION_STATE_INDETERMINATE default: return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED; } } }, { key: 'updateAriaChecked_', value: function updateAriaChecked_() { // Ensure aria-checked is set to mixed if checkbox is in indeterminate state. if (this.isIndeterminate()) { this.adapter_.setNativeControlAttr(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_ATTR, __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_INDETERMINATE_VALUE); } else { this.adapter_.removeNativeControlAttr(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_ATTR); } } /** * @return {!MDCSelectionControlState} * @private */ }, { key: 'getNativeControl_', value: function getNativeControl_() { return this.adapter_.getNativeControl() || { checked: false, indeterminate: false, disabled: false, value: null }; } }]); return MDCCheckboxFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /** * @param {ObjectPropertyDescriptor|undefined} inputPropDesc * @return {boolean} */ function validDescriptor(inputPropDesc) { return !!inputPropDesc && typeof inputPropDesc.set === 'function'; } /* harmony default export */ __webpack_exports__["a"] = (MDCCheckboxFoundation); /***/ }), /* 54 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_selection_control_index__ = __webpack_require__(4); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Checkbox. Provides an interface for managing * - classes * - dom * - event handlers * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCCheckboxAdapter = function () { function MDCCheckboxAdapter() { _classCallCheck(this, MDCCheckboxAdapter); } _createClass(MDCCheckboxAdapter, [{ key: 'addClass', /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: 'removeClass', value: function removeClass(className) {} /** * Sets an attribute with a given value on the input element. * @param {string} attr * @param {string} value */ }, { key: 'setNativeControlAttr', value: function setNativeControlAttr(attr, value) {} /** * Removes an attribute from the input element. * @param {string} attr */ }, { key: 'removeNativeControlAttr', value: function removeNativeControlAttr(attr) {} /** @param {!EventListener} handler */ }, { key: 'registerAnimationEndHandler', value: function registerAnimationEndHandler(handler) {} /** @param {!EventListener} handler */ }, { key: 'deregisterAnimationEndHandler', value: function deregisterAnimationEndHandler(handler) {} /** @param {!EventListener} handler */ }, { key: 'registerChangeHandler', value: function registerChangeHandler(handler) {} /** @param {!EventListener} handler */ }, { key: 'deregisterChangeHandler', value: function deregisterChangeHandler(handler) {} /** @return {!MDCSelectionControlState} */ }, { key: 'getNativeControl', value: function getNativeControl() {} }, { key: 'forceLayout', value: function forceLayout() {} /** @return {boolean} */ }, { key: 'isAttachedToDOM', value: function isAttachedToDOM() {} }]); return MDCCheckboxAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCCheckboxAdapter); /***/ }), /* 55 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @const {string} */ var ROOT = 'mdc-checkbox'; /** @enum {string} */ var cssClasses = { UPGRADED: 'mdc-checkbox--upgraded', CHECKED: 'mdc-checkbox--checked', INDETERMINATE: 'mdc-checkbox--indeterminate', DISABLED: 'mdc-checkbox--disabled', ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked', ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate', ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked', ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate', ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked', ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked' }; /** @enum {string} */ var strings = { NATIVE_CONTROL_SELECTOR: '.' + ROOT + '__native-control', TRANSITION_STATE_INIT: 'init', TRANSITION_STATE_CHECKED: 'checked', TRANSITION_STATE_UNCHECKED: 'unchecked', TRANSITION_STATE_INDETERMINATE: 'indeterminate', ARIA_CHECKED_ATTR: 'aria-checked', ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed' }; /** @enum {number} */ var numbers = { ANIM_END_LATCH_MS: 250 }; /***/ }), /* 56 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chip_index__ = __webpack_require__(24); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chip_set_index__ = __webpack_require__(57); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__chip_index__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChip", function() { return __WEBPACK_IMPORTED_MODULE_0__chip_index__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipSetFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__chip_set_index__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipSet", function() { return __WEBPACK_IMPORTED_MODULE_1__chip_set_index__["a"]; }); /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /***/ }), /* 57 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipSet; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(27); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(58); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__chip_index__ = __webpack_require__(24); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCChipSet = function (_MDCComponent) { _inherits(MDCChipSet, _MDCComponent); /** * @param {...?} args */ function MDCChipSet() { var _ref; _classCallCheck(this, MDCChipSet); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @type {!Array} */ var _this = _possibleConstructorReturn(this, (_ref = MDCChipSet.__proto__ || Object.getPrototypeOf(MDCChipSet)).call.apply(_ref, [this].concat(args))); _this.chips; /** @type {(function(!Element): !MDCChip)} */ _this.chipFactory_; /** @private {?function(?Event): undefined} */ _this.handleChipInteraction_; /** @private {?function(?Event): undefined} */ _this.handleChipRemoval_; return _this; } /** * @param {!Element} root * @return {!MDCChipSet} */ _createClass(MDCChipSet, [{ key: 'initialize', /** * @param {(function(!Element): !MDCChip)=} chipFactory A function which * creates a new MDCChip. */ value: function initialize() { var chipFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) { return new __WEBPACK_IMPORTED_MODULE_3__chip_index__["a" /* MDCChip */](el); }; this.chipFactory_ = chipFactory; this.chips = this.instantiateChips_(this.chipFactory_); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var _this2 = this; this.chips.forEach(function (chip) { if (chip.isSelected()) { _this2.foundation_.select(chip.foundation); } }); this.handleChipInteraction_ = function (evt) { return _this2.foundation_.handleChipInteraction(evt); }; this.handleChipRemoval_ = function (evt) { return _this2.foundation_.handleChipRemoval(evt); }; this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.INTERACTION_EVENT, this.handleChipInteraction_); this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.REMOVAL_EVENT, this.handleChipRemoval_); } }, { key: 'destroy', value: function destroy() { this.chips.forEach(function (chip) { chip.destroy(); }); this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.INTERACTION_EVENT, this.handleChipInteraction_); this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.REMOVAL_EVENT, this.handleChipRemoval_); _get(MDCChipSet.prototype.__proto__ || Object.getPrototypeOf(MDCChipSet.prototype), 'destroy', this).call(this); } /** * Adds a new chip object to the chip set from the given chip element. * @param {!Element} chipEl */ }, { key: 'addChip', value: function addChip(chipEl) { this.chips.push(this.chipFactory_(chipEl)); } /** * @return {!MDCChipSetFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCChipSetAdapter} */_extends({ hasClass: function hasClass(className) { return _this3.root_.classList.contains(className); }, removeChip: function removeChip(chip) { var index = _this3.chips.indexOf(chip); _this3.chips.splice(index, 1); chip.destroy(); } })); } /** * Instantiates chip components on all of the chip set's child chip elements. * @param {(function(!Element): !MDCChip)} chipFactory * @return {!Array} */ }, { key: 'instantiateChips_', value: function instantiateChips_(chipFactory) { var chipElements = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHIP_SELECTOR)); return chipElements.map(function (el) { return chipFactory(el); }); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCChipSet(root); } }]); return MDCChipSet; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 58 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(27); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chip_foundation__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(59); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // eslint-disable-next-line no-unused-vars /** * @extends {MDCFoundation} * @final */ var MDCChipSetFoundation = function (_MDCFoundation) { _inherits(MDCChipSetFoundation, _MDCFoundation); _createClass(MDCChipSetFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */]; } /** * {@see MDCChipSetAdapter} for typing information on parameters and return * types. * @return {!MDCChipSetAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCChipSetAdapter} */{ hasClass: function hasClass() {}, removeChip: function removeChip() {} } ); } /** * @param {!MDCChipSetAdapter} adapter */ }]); function MDCChipSetFoundation(adapter) { _classCallCheck(this, MDCChipSetFoundation); /** * The selected chips in the set. Only used for choice chip set or filter chip set. * @private {!Array} */ var _this = _possibleConstructorReturn(this, (MDCChipSetFoundation.__proto__ || Object.getPrototypeOf(MDCChipSetFoundation)).call(this, _extends(MDCChipSetFoundation.defaultAdapter, adapter))); _this.selectedChips_ = []; return _this; } /** * Selects the given chip. Deselects all other chips if the chip set is of the choice variant. * @param {!MDCChipFoundation} chipFoundation */ _createClass(MDCChipSetFoundation, [{ key: 'select', value: function select(chipFoundation) { if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CHOICE)) { this.deselectAll_(); } chipFoundation.setSelected(true); this.selectedChips_.push(chipFoundation); } /** * Deselects the given chip. * @param {!MDCChipFoundation} chipFoundation */ }, { key: 'deselect', value: function deselect(chipFoundation) { var index = this.selectedChips_.indexOf(chipFoundation); if (index >= 0) { this.selectedChips_.splice(index, 1); } chipFoundation.setSelected(false); } /** Deselects all selected chips. */ }, { key: 'deselectAll_', value: function deselectAll_() { this.selectedChips_.forEach(function (chipFoundation) { chipFoundation.setSelected(false); }); this.selectedChips_.length = 0; } /** * Handles a chip interaction event * @param {!MDCChipInteractionEventType} evt * @private */ }, { key: 'handleChipInteraction', value: function handleChipInteraction(evt) { var chipFoundation = evt.detail.chip.foundation; if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CHOICE) || this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FILTER)) { if (chipFoundation.isSelected()) { this.deselect(chipFoundation); } else { this.select(chipFoundation); } } } /** * Handles the event when a chip is removed. * @param {!MDCChipInteractionEventType} evt * @private */ }, { key: 'handleChipRemoval', value: function handleChipRemoval(evt) { var chip = evt.detail.chip; this.deselect(chip.foundation); this.adapter_.removeChip(chip); } }]); return MDCChipSetFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCChipSetFoundation); /***/ }), /* 59 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { CHIP_SELECTOR: '.mdc-chip' }; /** @enum {string} */ var cssClasses = { CHOICE: 'mdc-chip-set--choice', FILTER: 'mdc-chip-set--filter' }; /***/ }), /* 60 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialog", function() { return MDCDialog; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(61); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(63); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialogFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCDialog = function (_MDCComponent) { _inherits(MDCDialog, _MDCComponent); function MDCDialog() { _classCallCheck(this, MDCDialog); return _possibleConstructorReturn(this, (MDCDialog.__proto__ || Object.getPrototypeOf(MDCDialog)).apply(this, arguments)); } _createClass(MDCDialog, [{ key: 'initialize', value: function initialize() { this.focusTrap_ = __WEBPACK_IMPORTED_MODULE_3__util__["createFocusTrapInstance"](this.dialogSurface_, this.acceptButton_); this.footerBtnRipples_ = []; var footerBtns = this.root_.querySelectorAll('.mdc-dialog__footer__button'); for (var i = 0, footerBtn; footerBtn = footerBtns[i]; i++) { this.footerBtnRipples_.push(new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](footerBtn)); } } }, { key: 'destroy', value: function destroy() { this.footerBtnRipples_.forEach(function (ripple) { return ripple.destroy(); }); _get(MDCDialog.prototype.__proto__ || Object.getPrototypeOf(MDCDialog.prototype), 'destroy', this).call(this); } }, { key: 'show', value: function show() { this.foundation_.open(); } }, { key: 'close', value: function close() { this.foundation_.close(); } }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, addBodyClass: function addBodyClass(className) { return document.body.classList.add(className); }, removeBodyClass: function removeBodyClass(className) { return document.body.classList.remove(className); }, eventTargetHasClass: function eventTargetHasClass(target, className) { return target.classList.contains(className); }, registerInteractionHandler: function registerInteractionHandler(evt, handler) { return _this2.root_.addEventListener(evt, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) { return _this2.root_.removeEventListener(evt, handler); }, registerSurfaceInteractionHandler: function registerSurfaceInteractionHandler(evt, handler) { return _this2.dialogSurface_.addEventListener(evt, handler); }, deregisterSurfaceInteractionHandler: function deregisterSurfaceInteractionHandler(evt, handler) { return _this2.dialogSurface_.removeEventListener(evt, handler); }, registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) { return document.addEventListener('keydown', handler); }, deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) { return document.removeEventListener('keydown', handler); }, registerTransitionEndHandler: function registerTransitionEndHandler(handler) { return _this2.dialogSurface_.addEventListener('transitionend', handler); }, deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) { return _this2.dialogSurface_.removeEventListener('transitionend', handler); }, notifyAccept: function notifyAccept() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ACCEPT_EVENT); }, notifyCancel: function notifyCancel() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CANCEL_EVENT); }, trapFocusOnSurface: function trapFocusOnSurface() { return _this2.focusTrap_.activate(); }, untrapFocusOnSurface: function untrapFocusOnSurface() { return _this2.focusTrap_.deactivate(); }, isDialog: function isDialog(el) { return el === _this2.dialogSurface_; } }); } }, { key: 'open', get: function get() { return this.foundation_.isOpen(); } }, { key: 'acceptButton_', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ACCEPT_SELECTOR); } }, { key: 'dialogSurface_', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.DIALOG_SURFACE_SELECTOR); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCDialog(root); } }]); return MDCDialog; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 61 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(62); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCDialogFoundation = function (_MDCFoundation) { _inherits(MDCDialogFoundation, _MDCFoundation); _createClass(MDCDialogFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, addBodyClass: function addBodyClass() /* className: string */{}, removeBodyClass: function removeBodyClass() /* className: string */{}, eventTargetHasClass: function eventTargetHasClass() { return (/* target: EventTarget, className: string */ /* boolean */false ); }, registerInteractionHandler: function registerInteractionHandler() /* evt: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* evt: string, handler: EventListener */{}, registerSurfaceInteractionHandler: function registerSurfaceInteractionHandler() /* evt: string, handler: EventListener */{}, deregisterSurfaceInteractionHandler: function deregisterSurfaceInteractionHandler() /* evt: string, handler: EventListener */{}, registerDocumentKeydownHandler: function registerDocumentKeydownHandler() /* handler: EventListener */{}, deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler() /* handler: EventListener */{}, registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{}, deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{}, notifyAccept: function notifyAccept() {}, notifyCancel: function notifyCancel() {}, trapFocusOnSurface: function trapFocusOnSurface() {}, untrapFocusOnSurface: function untrapFocusOnSurface() {}, isDialog: function isDialog() { return (/* el: Element */ /* boolean */false ); } }; } }]); function MDCDialogFoundation(adapter) { _classCallCheck(this, MDCDialogFoundation); var _this = _possibleConstructorReturn(this, (MDCDialogFoundation.__proto__ || Object.getPrototypeOf(MDCDialogFoundation)).call(this, _extends(MDCDialogFoundation.defaultAdapter, adapter))); _this.isOpen_ = false; _this.componentClickHandler_ = function (evt) { if (_this.adapter_.eventTargetHasClass(evt.target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].BACKDROP)) { _this.cancel(true); } }; _this.dialogClickHandler_ = function (evt) { return _this.handleDialogClick_(evt); }; _this.documentKeydownHandler_ = function (evt) { if (evt.key && evt.key === 'Escape' || evt.keyCode === 27) { _this.cancel(true); } }; _this.transitionEndHandler_ = function (evt) { return _this.handleTransitionEnd_(evt); }; return _this; } _createClass(MDCDialogFoundation, [{ key: 'destroy', value: function destroy() { // Ensure that dialog is cleaned up when destroyed if (this.isOpen_) { this.adapter_.deregisterSurfaceInteractionHandler('click', this.dialogClickHandler_); this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_); this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_); this.adapter_.untrapFocusOnSurface(); this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_); this.adapter_.removeClass(MDCDialogFoundation.cssClasses.ANIMATING); this.adapter_.removeClass(MDCDialogFoundation.cssClasses.OPEN); this.enableScroll_(); } } }, { key: 'open', value: function open() { this.isOpen_ = true; this.disableScroll_(); this.adapter_.registerDocumentKeydownHandler(this.documentKeydownHandler_); this.adapter_.registerSurfaceInteractionHandler('click', this.dialogClickHandler_); this.adapter_.registerInteractionHandler('click', this.componentClickHandler_); this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_); this.adapter_.addClass(MDCDialogFoundation.cssClasses.ANIMATING); this.adapter_.addClass(MDCDialogFoundation.cssClasses.OPEN); } }, { key: 'close', value: function close() { this.isOpen_ = false; this.enableScroll_(); this.adapter_.deregisterSurfaceInteractionHandler('click', this.dialogClickHandler_); this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_); this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_); this.adapter_.untrapFocusOnSurface(); this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_); this.adapter_.addClass(MDCDialogFoundation.cssClasses.ANIMATING); this.adapter_.removeClass(MDCDialogFoundation.cssClasses.OPEN); } }, { key: 'isOpen', value: function isOpen() { return this.isOpen_; } }, { key: 'accept', value: function accept(shouldNotify) { if (shouldNotify) { this.adapter_.notifyAccept(); } this.close(); } }, { key: 'cancel', value: function cancel(shouldNotify) { if (shouldNotify) { this.adapter_.notifyCancel(); } this.close(); } }, { key: 'handleDialogClick_', value: function handleDialogClick_(evt) { var target = evt.target; if (this.adapter_.eventTargetHasClass(target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACCEPT_BTN)) { this.accept(true); } else if (this.adapter_.eventTargetHasClass(target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].CANCEL_BTN)) { this.cancel(true); } } }, { key: 'handleTransitionEnd_', value: function handleTransitionEnd_(evt) { if (this.adapter_.isDialog(evt.target)) { this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_); this.adapter_.removeClass(MDCDialogFoundation.cssClasses.ANIMATING); if (this.isOpen_) { this.adapter_.trapFocusOnSurface(); }; }; } }, { key: 'disableScroll_', value: function disableScroll_() { this.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK); } }, { key: 'enableScroll_', value: function enableScroll_() { this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK); } }]); return MDCDialogFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /* harmony default export */ __webpack_exports__["a"] = (MDCDialogFoundation); /***/ }), /* 62 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { ROOT: 'mdc-dialog', OPEN: 'mdc-dialog--open', ANIMATING: 'mdc-dialog--animating', BACKDROP: 'mdc-dialog__backdrop', SCROLL_LOCK: 'mdc-dialog-scroll-lock', ACCEPT_BTN: 'mdc-dialog__footer__button--accept', CANCEL_BTN: 'mdc-dialog__footer__button--cancel' }; var strings = { OPEN_DIALOG_SELECTOR: '.mdc-dialog--open', DIALOG_SURFACE_SELECTOR: '.mdc-dialog__surface', ACCEPT_SELECTOR: '.mdc-dialog__footer__button--accept', ACCEPT_EVENT: 'MDCDialog:accept', CANCEL_EVENT: 'MDCDialog:cancel' }; /***/ }), /* 63 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (immutable) */ __webpack_exports__["createFocusTrapInstance"] = createFocusTrapInstance; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(64); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ function createFocusTrapInstance(surfaceEl, acceptButtonEl) { var focusTrapFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a; return focusTrapFactory(surfaceEl, { initialFocus: acceptButtonEl, clickOutsideDeactivates: true }); } /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { var tabbable = __webpack_require__(65); var listeningFocusTrap = null; function focusTrap(element, userOptions) { var tabbableNodes = []; var firstTabbableNode = null; var lastTabbableNode = null; var nodeFocusedBeforeActivation = null; var active = false; var paused = false; var tabEvent = null; var container = (typeof element === 'string') ? document.querySelector(element) : element; var config = userOptions || {}; config.returnFocusOnDeactivate = (userOptions && userOptions.returnFocusOnDeactivate !== undefined) ? userOptions.returnFocusOnDeactivate : true; config.escapeDeactivates = (userOptions && userOptions.escapeDeactivates !== undefined) ? userOptions.escapeDeactivates : true; var trap = { activate: activate, deactivate: deactivate, pause: pause, unpause: unpause, }; return trap; function activate(activateOptions) { if (active) return; var defaultedActivateOptions = { onActivate: (activateOptions && activateOptions.onActivate !== undefined) ? activateOptions.onActivate : config.onActivate, }; active = true; paused = false; nodeFocusedBeforeActivation = document.activeElement; if (defaultedActivateOptions.onActivate) { defaultedActivateOptions.onActivate(); } addListeners(); return trap; } function deactivate(deactivateOptions) { if (!active) return; var defaultedDeactivateOptions = { returnFocus: (deactivateOptions && deactivateOptions.returnFocus !== undefined) ? deactivateOptions.returnFocus : config.returnFocusOnDeactivate, onDeactivate: (deactivateOptions && deactivateOptions.onDeactivate !== undefined) ? deactivateOptions.onDeactivate : config.onDeactivate, }; removeListeners(); if (defaultedDeactivateOptions.onDeactivate) { defaultedDeactivateOptions.onDeactivate(); } if (defaultedDeactivateOptions.returnFocus) { setTimeout(function () { tryFocus(nodeFocusedBeforeActivation); }, 0); } active = false; paused = false; return this; } function pause() { if (paused || !active) return; paused = true; removeListeners(); } function unpause() { if (!paused || !active) return; paused = false; addListeners(); } function addListeners() { if (!active) return; // There can be only one listening focus trap at a time if (listeningFocusTrap) { listeningFocusTrap.pause(); } listeningFocusTrap = trap; updateTabbableNodes(); tryFocus(firstFocusNode()); document.addEventListener('focus', checkFocus, true); document.addEventListener('click', checkClick, true); document.addEventListener('mousedown', checkPointerDown, true); document.addEventListener('touchstart', checkPointerDown, true); document.addEventListener('keydown', checkKey, true); return trap; } function removeListeners() { if (!active || listeningFocusTrap !== trap) return; document.removeEventListener('focus', checkFocus, true); document.removeEventListener('click', checkClick, true); document.removeEventListener('mousedown', checkPointerDown, true); document.removeEventListener('touchstart', checkPointerDown, true); document.removeEventListener('keydown', checkKey, true); listeningFocusTrap = null; return trap; } function getNodeForOption(optionName) { var optionValue = config[optionName]; var node = optionValue; if (!optionValue) { return null; } if (typeof optionValue === 'string') { node = document.querySelector(optionValue); if (!node) { throw new Error('`' + optionName + '` refers to no known node'); } } if (typeof optionValue === 'function') { node = optionValue(); if (!node) { throw new Error('`' + optionName + '` did not return a node'); } } return node; } function firstFocusNode() { var node; if (getNodeForOption('initialFocus') !== null) { node = getNodeForOption('initialFocus'); } else if (container.contains(document.activeElement)) { node = document.activeElement; } else { node = tabbableNodes[0] || getNodeForOption('fallbackFocus'); } if (!node) { throw new Error('You can\'t have a focus-trap without at least one focusable element'); } return node; } // This needs to be done on mousedown and touchstart instead of click // so that it precedes the focus event function checkPointerDown(e) { if (config.clickOutsideDeactivates && !container.contains(e.target)) { deactivate({ returnFocus: false }); } } function checkClick(e) { if (config.clickOutsideDeactivates) return; if (container.contains(e.target)) return; e.preventDefault(); e.stopImmediatePropagation(); } function checkFocus(e) { if (container.contains(e.target)) return; e.preventDefault(); e.stopImmediatePropagation(); // Checking for a blur method here resolves a Firefox issue (#15) if (typeof e.target.blur === 'function') e.target.blur(); if (tabEvent) { readjustFocus(tabEvent); } } function checkKey(e) { if (e.key === 'Tab' || e.keyCode === 9) { handleTab(e); } if (config.escapeDeactivates !== false && isEscapeEvent(e)) { deactivate(); } } function handleTab(e) { updateTabbableNodes(); if (e.target.hasAttribute('tabindex') && Number(e.target.getAttribute('tabindex')) < 0) { return tabEvent = e; } e.preventDefault(); var currentFocusIndex = tabbableNodes.indexOf(e.target); if (e.shiftKey) { if (e.target === firstTabbableNode || tabbableNodes.indexOf(e.target) === -1) { return tryFocus(lastTabbableNode); } return tryFocus(tabbableNodes[currentFocusIndex - 1]); } if (e.target === lastTabbableNode) return tryFocus(firstTabbableNode); tryFocus(tabbableNodes[currentFocusIndex + 1]); } function updateTabbableNodes() { tabbableNodes = tabbable(container); firstTabbableNode = tabbableNodes[0]; lastTabbableNode = tabbableNodes[tabbableNodes.length - 1]; } function readjustFocus(e) { if (e.shiftKey) return tryFocus(lastTabbableNode); tryFocus(firstTabbableNode); } } function isEscapeEvent(e) { return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27; } function tryFocus(node) { if (!node || !node.focus) return; if (node === document.activeElement) return; node.focus(); if (node.tagName.toLowerCase() === 'input') { node.select(); } } module.exports = focusTrap; /***/ }), /* 65 */ /***/ (function(module, exports) { module.exports = function(el, options) { options = options || {}; var elementDocument = el.ownerDocument || el; var basicTabbables = []; var orderedTabbables = []; // A node is "available" if // - it's computed style var isUnavailable = createIsUnavailable(elementDocument); var candidateSelectors = [ 'input', 'select', 'a[href]', 'textarea', 'button', '[tabindex]', ]; var candidates = el.querySelectorAll(candidateSelectors.join(',')); if (options.includeContainer) { var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; if ( candidateSelectors.some(function(candidateSelector) { return matches.call(el, candidateSelector); }) ) { candidates = Array.prototype.slice.apply(candidates); candidates.unshift(el); } } var candidate, candidateIndex; for (var i = 0, l = candidates.length; i < l; i++) { candidate = candidates[i]; candidateIndex = parseInt(candidate.getAttribute('tabindex'), 10) || candidate.tabIndex; if ( candidateIndex < 0 || (candidate.tagName === 'INPUT' && candidate.type === 'hidden') || candidate.disabled || isUnavailable(candidate, elementDocument) ) { continue; } if (candidateIndex === 0) { basicTabbables.push(candidate); } else { orderedTabbables.push({ index: i, tabIndex: candidateIndex, node: candidate, }); } } var tabbableNodes = orderedTabbables .sort(function(a, b) { return a.tabIndex === b.tabIndex ? a.index - b.index : a.tabIndex - b.tabIndex; }) .map(function(a) { return a.node }); Array.prototype.push.apply(tabbableNodes, basicTabbables); return tabbableNodes; } function createIsUnavailable(elementDocument) { // Node cache must be refreshed on every check, in case // the content of the element has changed var isOffCache = []; // "off" means `display: none;`, as opposed to "hidden", // which means `visibility: hidden;`. getComputedStyle // accurately reflects visiblity in context but not // "off" state, so we need to recursively check parents. function isOff(node, nodeComputedStyle) { if (node === elementDocument.documentElement) return false; // Find the cached node (Array.prototype.find not available in IE9) for (var i = 0, length = isOffCache.length; i < length; i++) { if (isOffCache[i][0] === node) return isOffCache[i][1]; } nodeComputedStyle = nodeComputedStyle || elementDocument.defaultView.getComputedStyle(node); var result = false; if (nodeComputedStyle.display === 'none') { result = true; } else if (node.parentNode) { result = isOff(node.parentNode); } isOffCache.push([node, result]); return result; } return function isUnavailable(node) { if (node === elementDocument.documentElement) return false; var computedStyle = elementDocument.defaultView.getComputedStyle(node); if (isOff(node, computedStyle)) return true; return computedStyle.visibility === 'hidden'; } } /***/ }), /* 66 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__temporary__ = __webpack_require__(67); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTemporaryDrawer", function() { return __WEBPACK_IMPORTED_MODULE_1__temporary__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTemporaryDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__temporary__["b"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__persistent__ = __webpack_require__(72); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCPersistentDrawer", function() { return __WEBPACK_IMPORTED_MODULE_2__persistent__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCPersistentDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__persistent__["b"]; }); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_0__util__; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /***/ }), /* 67 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTemporaryDrawer; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(68); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(15); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); /* unused harmony reexport util */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCTemporaryDrawer = function (_MDCComponent) { _inherits(MDCTemporaryDrawer, _MDCComponent); function MDCTemporaryDrawer() { _classCallCheck(this, MDCTemporaryDrawer); return _possibleConstructorReturn(this, (MDCTemporaryDrawer.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawer)).apply(this, arguments)); } _createClass(MDCTemporaryDrawer, [{ key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; var _MDCTemporaryDrawerFo = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings, FOCUSABLE_ELEMENTS = _MDCTemporaryDrawerFo.FOCUSABLE_ELEMENTS, OPACITY_VAR_NAME = _MDCTemporaryDrawerFo.OPACITY_VAR_NAME; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, addBodyClass: function addBodyClass(className) { return document.body.classList.add(className); }, removeBodyClass: function removeBodyClass(className) { return document.body.classList.remove(className); }, eventTargetHasClass: function eventTargetHasClass(target, className) { return target.classList.contains(className); }, hasNecessaryDom: function hasNecessaryDom() { return Boolean(_this2.drawer); }, registerInteractionHandler: function registerInteractionHandler(evt, handler) { return _this2.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]()); }, deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) { return _this2.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]()); }, registerDrawerInteractionHandler: function registerDrawerInteractionHandler(evt, handler) { return _this2.drawer.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler); }, deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler(evt, handler) { return _this2.drawer.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler); }, registerTransitionEndHandler: function registerTransitionEndHandler(handler) { return _this2.drawer.addEventListener('transitionend', handler); }, deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) { return _this2.drawer.removeEventListener('transitionend', handler); }, registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) { return document.addEventListener('keydown', handler); }, deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) { return document.removeEventListener('keydown', handler); }, getDrawerWidth: function getDrawerWidth() { return _this2.drawer.offsetWidth; }, setTranslateX: function setTranslateX(value) { return _this2.drawer.style.setProperty(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"](), value === null ? null : 'translateX(' + value + 'px)'); }, updateCssVariable: function updateCssVariable(value) { if (__WEBPACK_IMPORTED_MODULE_2__util__["supportsCssCustomProperties"]()) { _this2.root_.style.setProperty(OPACITY_VAR_NAME, value); } }, getFocusableElements: function getFocusableElements() { return _this2.drawer.querySelectorAll(FOCUSABLE_ELEMENTS); }, saveElementTabState: function saveElementTabState(el) { return __WEBPACK_IMPORTED_MODULE_2__util__["saveElementTabState"](el); }, restoreElementTabState: function restoreElementTabState(el) { return __WEBPACK_IMPORTED_MODULE_2__util__["restoreElementTabState"](el); }, makeElementUntabbable: function makeElementUntabbable(el) { return el.setAttribute('tabindex', -1); }, notifyOpen: function notifyOpen() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.OPEN_EVENT); }, notifyClose: function notifyClose() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CLOSE_EVENT); }, isRtl: function isRtl() { return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl'; }, isDrawer: function isDrawer(el) { return el === _this2.drawer; } }); } }, { key: 'open', get: function get() { return this.foundation_.isOpen(); }, set: function set(value) { if (value) { this.foundation_.open(); } else { this.foundation_.close(); } } /* Return the drawer element inside the component. */ }, { key: 'drawer', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.DRAWER_SELECTOR); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCTemporaryDrawer(root); } }]); return MDCTemporaryDrawer; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 68 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable_index__ = __webpack_require__(10); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(71); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCTemporaryDrawerFoundation = function (_MDCSlidableDrawerFou) { _inherits(MDCTemporaryDrawerFoundation, _MDCSlidableDrawerFou); _createClass(MDCTemporaryDrawerFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return _extends(__WEBPACK_IMPORTED_MODULE_0__slidable_index__["b" /* MDCSlidableDrawerFoundation */].defaultAdapter, { addBodyClass: function addBodyClass() /* className: string */{}, removeBodyClass: function removeBodyClass() /* className: string */{}, isDrawer: function isDrawer() { return false; }, updateCssVariable: function updateCssVariable() /* value: string */{}, eventTargetHasClass: function eventTargetHasClass() { return (/* target: EventTarget, className: string */ /* boolean */false ); } }); } }]); function MDCTemporaryDrawerFoundation(adapter) { _classCallCheck(this, MDCTemporaryDrawerFoundation); var _this = _possibleConstructorReturn(this, (MDCTemporaryDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation)).call(this, _extends(MDCTemporaryDrawerFoundation.defaultAdapter, adapter), MDCTemporaryDrawerFoundation.cssClasses.ROOT, MDCTemporaryDrawerFoundation.cssClasses.ANIMATING, MDCTemporaryDrawerFoundation.cssClasses.OPEN)); _this.componentClickHandler_ = function (evt) { if (_this.adapter_.eventTargetHasClass(evt.target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ROOT)) { _this.close(true); } }; return _this; } _createClass(MDCTemporaryDrawerFoundation, [{ key: 'init', value: function init() { _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'init', this).call(this); // Make browser aware of custom property being used in this element. // Workaround for certain types of hard-to-reproduce heisenbugs. this.adapter_.updateCssVariable(0); this.adapter_.registerInteractionHandler('click', this.componentClickHandler_); } }, { key: 'destroy', value: function destroy() { _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'destroy', this).call(this); this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_); this.enableScroll_(); } }, { key: 'open', value: function open() { this.disableScroll_(); // Make sure custom property values are cleared before starting. this.adapter_.updateCssVariable(''); _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'open', this).call(this); } }, { key: 'close', value: function close() { // Make sure custom property values are cleared before making any changes. this.adapter_.updateCssVariable(''); _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'close', this).call(this); } }, { key: 'prepareForTouchEnd_', value: function prepareForTouchEnd_() { _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'prepareForTouchEnd_', this).call(this); this.adapter_.updateCssVariable(''); } }, { key: 'updateDrawer_', value: function updateDrawer_() { _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'updateDrawer_', this).call(this); var newOpacity = Math.max(0, 1 + this.direction_ * (this.newPosition_ / this.drawerWidth_)); this.adapter_.updateCssVariable(newOpacity); } }, { key: 'isRootTransitioningEventTarget_', value: function isRootTransitioningEventTarget_(el) { return this.adapter_.isDrawer(el); } }, { key: 'handleTransitionEnd_', value: function handleTransitionEnd_(evt) { _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'handleTransitionEnd_', this).call(this, evt); if (!this.isOpen_) { this.enableScroll_(); } } }, { key: 'disableScroll_', value: function disableScroll_() { this.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK); } }, { key: 'enableScroll_', value: function enableScroll_() { this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK); } }]); return MDCTemporaryDrawerFoundation; }(__WEBPACK_IMPORTED_MODULE_0__slidable_index__["b" /* MDCSlidableDrawerFoundation */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTemporaryDrawerFoundation); /***/ }), /* 69 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FOCUSABLE_ELEMENTS; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var FOCUSABLE_ELEMENTS = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), ' + 'button:not([disabled]), iframe, object, embed, [tabindex], [contenteditable]'; /***/ }), /* 70 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSlidableDrawerFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCSlidableDrawerFoundation = function (_MDCFoundation) { _inherits(MDCSlidableDrawerFoundation, _MDCFoundation); _createClass(MDCSlidableDrawerFoundation, null, [{ key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, hasClass: function hasClass() /* className: string */{}, hasNecessaryDom: function hasNecessaryDom() { return (/* boolean */false ); }, registerInteractionHandler: function registerInteractionHandler() /* evt: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* evt: string, handler: EventListener */{}, registerDrawerInteractionHandler: function registerDrawerInteractionHandler() /* evt: string, handler: EventListener */{}, deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler() /* evt: string, handler: EventListener */{}, registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{}, deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{}, registerDocumentKeydownHandler: function registerDocumentKeydownHandler() /* handler: EventListener */{}, deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler() /* handler: EventListener */{}, setTranslateX: function setTranslateX() /* value: number | null */{}, getFocusableElements: function getFocusableElements() /* NodeList */{}, saveElementTabState: function saveElementTabState() /* el: Element */{}, restoreElementTabState: function restoreElementTabState() /* el: Element */{}, makeElementUntabbable: function makeElementUntabbable() /* el: Element */{}, notifyOpen: function notifyOpen() {}, notifyClose: function notifyClose() {}, isRtl: function isRtl() { return (/* boolean */false ); }, getDrawerWidth: function getDrawerWidth() { return (/* number */0 ); } }; } }]); function MDCSlidableDrawerFoundation(adapter, rootCssClass, animatingCssClass, openCssClass) { _classCallCheck(this, MDCSlidableDrawerFoundation); var _this = _possibleConstructorReturn(this, (MDCSlidableDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCSlidableDrawerFoundation)).call(this, _extends(MDCSlidableDrawerFoundation.defaultAdapter, adapter))); _this.rootCssClass_ = rootCssClass; _this.animatingCssClass_ = animatingCssClass; _this.openCssClass_ = openCssClass; _this.transitionEndHandler_ = function (evt) { return _this.handleTransitionEnd_(evt); }; _this.inert_ = false; _this.componentTouchStartHandler_ = function (evt) { return _this.handleTouchStart_(evt); }; _this.componentTouchMoveHandler_ = function (evt) { return _this.handleTouchMove_(evt); }; _this.componentTouchEndHandler_ = function (evt) { return _this.handleTouchEnd_(evt); }; _this.documentKeydownHandler_ = function (evt) { if (evt.key && evt.key === 'Escape' || evt.keyCode === 27) { _this.close(); } }; return _this; } _createClass(MDCSlidableDrawerFoundation, [{ key: 'init', value: function init() { var ROOT = this.rootCssClass_; var OPEN = this.openCssClass_; if (!this.adapter_.hasClass(ROOT)) { throw new Error(ROOT + ' class required in root element.'); } if (!this.adapter_.hasNecessaryDom()) { throw new Error('Required DOM nodes missing in ' + ROOT + ' component.'); } if (this.adapter_.hasClass(OPEN)) { this.isOpen_ = true; } else { this.detabinate_(); this.isOpen_ = false; } this.adapter_.registerDrawerInteractionHandler('touchstart', this.componentTouchStartHandler_); this.adapter_.registerInteractionHandler('touchmove', this.componentTouchMoveHandler_); this.adapter_.registerInteractionHandler('touchend', this.componentTouchEndHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterDrawerInteractionHandler('touchstart', this.componentTouchStartHandler_); this.adapter_.deregisterInteractionHandler('touchmove', this.componentTouchMoveHandler_); this.adapter_.deregisterInteractionHandler('touchend', this.componentTouchEndHandler_); // Deregister the document keydown handler just in case the component is destroyed while the menu is open. this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_); } }, { key: 'open', value: function open() { this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_); this.adapter_.registerDocumentKeydownHandler(this.documentKeydownHandler_); this.adapter_.addClass(this.animatingCssClass_); this.adapter_.addClass(this.openCssClass_); this.retabinate_(); // Debounce multiple calls if (!this.isOpen_) { this.adapter_.notifyOpen(); } this.isOpen_ = true; } }, { key: 'close', value: function close() { this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_); this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_); this.adapter_.addClass(this.animatingCssClass_); this.adapter_.removeClass(this.openCssClass_); this.detabinate_(); // Debounce multiple calls if (this.isOpen_) { this.adapter_.notifyClose(); } this.isOpen_ = false; } }, { key: 'isOpen', value: function isOpen() { return this.isOpen_; } /** * Render all children of the drawer inert when it's closed. */ }, { key: 'detabinate_', value: function detabinate_() { if (this.inert_) { return; } var elements = this.adapter_.getFocusableElements(); if (elements) { for (var i = 0; i < elements.length; i++) { this.adapter_.saveElementTabState(elements[i]); this.adapter_.makeElementUntabbable(elements[i]); } } this.inert_ = true; } /** * Make all children of the drawer tabbable again when it's open. */ }, { key: 'retabinate_', value: function retabinate_() { if (!this.inert_) { return; } var elements = this.adapter_.getFocusableElements(); if (elements) { for (var i = 0; i < elements.length; i++) { this.adapter_.restoreElementTabState(elements[i]); } } this.inert_ = false; } }, { key: 'handleTouchStart_', value: function handleTouchStart_(evt) { if (!this.adapter_.hasClass(this.openCssClass_)) { return; } if (evt.pointerType && evt.pointerType !== 'touch') { return; } this.direction_ = this.adapter_.isRtl() ? -1 : 1; this.drawerWidth_ = this.adapter_.getDrawerWidth(); this.startX_ = evt.touches ? evt.touches[0].pageX : evt.pageX; this.currentX_ = this.startX_; this.updateRaf_ = requestAnimationFrame(this.updateDrawer_.bind(this)); } }, { key: 'handleTouchMove_', value: function handleTouchMove_(evt) { if (evt.pointerType && evt.pointerType !== 'touch') { return; } this.currentX_ = evt.touches ? evt.touches[0].pageX : evt.pageX; } }, { key: 'handleTouchEnd_', value: function handleTouchEnd_(evt) { if (evt.pointerType && evt.pointerType !== 'touch') { return; } this.prepareForTouchEnd_(); // Did the user close the drawer by more than 50%? if (Math.abs(this.newPosition_ / this.drawerWidth_) >= 0.5) { this.close(); } else { // Triggering an open here means we'll get a nice animation back to the fully open state. this.open(); } } }, { key: 'prepareForTouchEnd_', value: function prepareForTouchEnd_() { cancelAnimationFrame(this.updateRaf_); this.adapter_.setTranslateX(null); } }, { key: 'updateDrawer_', value: function updateDrawer_() { this.updateRaf_ = requestAnimationFrame(this.updateDrawer_.bind(this)); this.adapter_.setTranslateX(this.newPosition_); } }, { key: 'isRootTransitioningEventTarget_', value: function isRootTransitioningEventTarget_() { // Classes extending MDCSlidableDrawerFoundation should implement this method to return true or false // if the event target is the root event target currently transitioning. return false; } }, { key: 'handleTransitionEnd_', value: function handleTransitionEnd_(evt) { if (this.isRootTransitioningEventTarget_(evt.target)) { this.adapter_.removeClass(this.animatingCssClass_); this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_); } } }, { key: 'newPosition_', get: function get() { var newPos = null; if (this.direction_ === 1) { newPos = Math.min(0, this.currentX_ - this.startX_); } else { newPos = Math.max(0, this.currentX_ - this.startX_); } return newPos; } }]); return MDCSlidableDrawerFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /***/ }), /* 71 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable_index__ = __webpack_require__(10); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { ROOT: 'mdc-drawer--temporary', OPEN: 'mdc-drawer--open', ANIMATING: 'mdc-drawer--animating', SCROLL_LOCK: 'mdc-drawer-scroll-lock' }; var strings = { DRAWER_SELECTOR: '.mdc-drawer--temporary .mdc-drawer__drawer', OPACITY_VAR_NAME: '--mdc-temporary-drawer-opacity', FOCUSABLE_ELEMENTS: __WEBPACK_IMPORTED_MODULE_0__slidable_index__["a" /* FOCUSABLE_ELEMENTS */], OPEN_EVENT: 'MDCTemporaryDrawer:open', CLOSE_EVENT: 'MDCTemporaryDrawer:close' }; /***/ }), /* 72 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCPersistentDrawer; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(73); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(15); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); /* unused harmony reexport util */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCPersistentDrawer = function (_MDCComponent) { _inherits(MDCPersistentDrawer, _MDCComponent); function MDCPersistentDrawer() { _classCallCheck(this, MDCPersistentDrawer); return _possibleConstructorReturn(this, (MDCPersistentDrawer.__proto__ || Object.getPrototypeOf(MDCPersistentDrawer)).apply(this, arguments)); } _createClass(MDCPersistentDrawer, [{ key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; var FOCUSABLE_ELEMENTS = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.FOCUSABLE_ELEMENTS; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, hasNecessaryDom: function hasNecessaryDom() { return Boolean(_this2.drawer); }, registerInteractionHandler: function registerInteractionHandler(evt, handler) { return _this2.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]()); }, deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) { return _this2.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]()); }, registerDrawerInteractionHandler: function registerDrawerInteractionHandler(evt, handler) { return _this2.drawer.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler); }, deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler(evt, handler) { return _this2.drawer.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler); }, registerTransitionEndHandler: function registerTransitionEndHandler(handler) { return _this2.root_.addEventListener('transitionend', handler); }, deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) { return _this2.root_.removeEventListener('transitionend', handler); }, registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) { return document.addEventListener('keydown', handler); }, deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) { return document.removeEventListener('keydown', handler); }, getDrawerWidth: function getDrawerWidth() { return _this2.drawer.offsetWidth; }, setTranslateX: function setTranslateX(value) { return _this2.drawer.style.setProperty(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"](), value === null ? null : 'translateX(' + value + 'px)'); }, getFocusableElements: function getFocusableElements() { return _this2.drawer.querySelectorAll(FOCUSABLE_ELEMENTS); }, saveElementTabState: function saveElementTabState(el) { return __WEBPACK_IMPORTED_MODULE_2__util__["saveElementTabState"](el); }, restoreElementTabState: function restoreElementTabState(el) { return __WEBPACK_IMPORTED_MODULE_2__util__["restoreElementTabState"](el); }, makeElementUntabbable: function makeElementUntabbable(el) { return el.setAttribute('tabindex', -1); }, notifyOpen: function notifyOpen() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.OPEN_EVENT); }, notifyClose: function notifyClose() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CLOSE_EVENT); }, isRtl: function isRtl() { return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl'; }, isDrawer: function isDrawer(el) { return el === _this2.drawer; } }); } }, { key: 'open', get: function get() { return this.foundation_.isOpen(); }, set: function set(value) { if (value) { this.foundation_.open(); } else { this.foundation_.close(); } } // Return the drawer element inside the component. }, { key: 'drawer', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.DRAWER_SELECTOR); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCPersistentDrawer(root); } }]); return MDCPersistentDrawer; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 73 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable_index__ = __webpack_require__(10); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(74); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCPersistentDrawerFoundation = function (_MDCSlidableDrawerFou) { _inherits(MDCPersistentDrawerFoundation, _MDCSlidableDrawerFou); _createClass(MDCPersistentDrawerFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return _extends(__WEBPACK_IMPORTED_MODULE_0__slidable_index__["b" /* MDCSlidableDrawerFoundation */].defaultAdapter, { isDrawer: function isDrawer() { return false; } }); } }]); function MDCPersistentDrawerFoundation(adapter) { _classCallCheck(this, MDCPersistentDrawerFoundation); return _possibleConstructorReturn(this, (MDCPersistentDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCPersistentDrawerFoundation)).call(this, _extends(MDCPersistentDrawerFoundation.defaultAdapter, adapter), MDCPersistentDrawerFoundation.cssClasses.ROOT, MDCPersistentDrawerFoundation.cssClasses.ANIMATING, MDCPersistentDrawerFoundation.cssClasses.OPEN)); } _createClass(MDCPersistentDrawerFoundation, [{ key: 'isRootTransitioningEventTarget_', value: function isRootTransitioningEventTarget_(el) { return this.adapter_.isDrawer(el); } }]); return MDCPersistentDrawerFoundation; }(__WEBPACK_IMPORTED_MODULE_0__slidable_index__["b" /* MDCSlidableDrawerFoundation */]); /* harmony default export */ __webpack_exports__["a"] = (MDCPersistentDrawerFoundation); /***/ }), /* 74 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable_index__ = __webpack_require__(10); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { ROOT: 'mdc-drawer--persistent', OPEN: 'mdc-drawer--open', ANIMATING: 'mdc-drawer--animating' }; var strings = { DRAWER_SELECTOR: '.mdc-drawer--persistent .mdc-drawer__drawer', FOCUSABLE_ELEMENTS: __WEBPACK_IMPORTED_MODULE_0__slidable_index__["a" /* FOCUSABLE_ELEMENTS */], OPEN_EVENT: 'MDCPersistentDrawer:open', CLOSE_EVENT: 'MDCPersistentDrawer:close' }; /***/ }), /* 75 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(28); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(76); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCFloatingLabelFoundation = function (_MDCFoundation) { _inherits(MDCFloatingLabelFoundation, _MDCFoundation); _createClass(MDCFloatingLabelFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** * {@see MDCFloatingLabelAdapter} for typing information on parameters and return * types. * @return {!MDCFloatingLabelAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCFloatingLabelAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, getWidth: function getWidth() {}, registerInteractionHandler: function registerInteractionHandler() {}, deregisterInteractionHandler: function deregisterInteractionHandler() {} } ); } /** * @param {!MDCFloatingLabelAdapter} adapter */ }]); function MDCFloatingLabelFoundation(adapter) { _classCallCheck(this, MDCFloatingLabelFoundation); /** @private {function(!Event): undefined} */ var _this = _possibleConstructorReturn(this, (MDCFloatingLabelFoundation.__proto__ || Object.getPrototypeOf(MDCFloatingLabelFoundation)).call(this, _extends(MDCFloatingLabelFoundation.defaultAdapter, adapter))); _this.shakeAnimationEndHandler_ = function () { return _this.handleShakeAnimationEnd_(); }; return _this; } _createClass(MDCFloatingLabelFoundation, [{ key: 'init', value: function init() { this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_); } /** * Returns the width of the label element. * @return {number} */ }, { key: 'getWidth', value: function getWidth() { return this.adapter_.getWidth(); } /** * Styles the label to produce the label shake for errors. * @param {boolean} shouldShake adds shake class if true, * otherwise removes shake class. */ }, { key: 'shake', value: function shake(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 {boolean} shouldFloat adds float class if true, otherwise remove * float and shake class to dock label. */ }, { key: 'float', value: function float(shouldFloat) { var _MDCFloatingLabelFoun = MDCFloatingLabelFoundation.cssClasses, LABEL_FLOAT_ABOVE = _MDCFloatingLabelFoun.LABEL_FLOAT_ABOVE, LABEL_SHAKE = _MDCFloatingLabelFoun.LABEL_SHAKE; if (shouldFloat) { this.adapter_.addClass(LABEL_FLOAT_ABOVE); } else { this.adapter_.removeClass(LABEL_FLOAT_ABOVE); this.adapter_.removeClass(LABEL_SHAKE); } } /** * Handles an interaction event on the root element. */ }, { key: 'handleShakeAnimationEnd_', value: function handleShakeAnimationEnd_() { var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; this.adapter_.removeClass(LABEL_SHAKE); } }]); return MDCFloatingLabelFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCFloatingLabelFoundation); /***/ }), /* 76 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above', LABEL_SHAKE: 'mdc-floating-label--shake' }; /***/ }), /* 77 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormField", function() { return MDCFormField; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(78); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_selection_control_index__ = __webpack_require__(4); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormFieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends MDCComponent */ var MDCFormField = function (_MDCComponent) { _inherits(MDCFormField, _MDCComponent); _createClass(MDCFormField, [{ key: 'input', /** @param {?MDCSelectionControl} input */ set: function set(input) { this.input_ = input; } /** @return {?MDCSelectionControl} */ , get: function get() { return this.input_; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCFormField(root); } }]); function MDCFormField() { var _ref; _classCallCheck(this, MDCFormField); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?MDCSelectionControl} */ var _this = _possibleConstructorReturn(this, (_ref = MDCFormField.__proto__ || Object.getPrototypeOf(MDCFormField)).call.apply(_ref, [this].concat(args))); _this.input_; return _this; } /** * @return {!Element} * @private */ _createClass(MDCFormField, [{ key: 'getDefaultFoundation', /** @return {!MDCFormFieldFoundation} */ value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.label_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.label_.removeEventListener(type, handler); }, activateInputRipple: function activateInputRipple() { if (_this2.input_ && _this2.input_.ripple) { _this2.input_.ripple.activate(); } }, deactivateInputRipple: function deactivateInputRipple() { if (_this2.input_ && _this2.input_.ripple) { _this2.input_.ripple.deactivate(); } } }); } }, { key: 'label_', get: function get() { var LABEL_SELECTOR = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.LABEL_SELECTOR; return (/** @type {!Element} */this.root_.querySelector(LABEL_SELECTOR) ); } }]); return MDCFormField; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 78 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(79); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(80); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} */ var MDCFormFieldFoundation = function (_MDCFoundation) { _inherits(MDCFormFieldFoundation, _MDCFoundation); _createClass(MDCFormFieldFoundation, null, [{ key: 'cssClasses', /** @return enum {cssClasses} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** @return enum {strings} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** @return {!MDCFormFieldAdapter} */ }, { key: 'defaultAdapter', get: function get() { return { registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{}, activateInputRipple: function activateInputRipple() {}, deactivateInputRipple: function deactivateInputRipple() {} }; } }]); function MDCFormFieldFoundation(adapter) { _classCallCheck(this, MDCFormFieldFoundation); /** @private {!EventListener} */ var _this = _possibleConstructorReturn(this, (MDCFormFieldFoundation.__proto__ || Object.getPrototypeOf(MDCFormFieldFoundation)).call(this, _extends(MDCFormFieldFoundation.defaultAdapter, adapter))); _this.clickHandler_ = /** @type {!EventListener} */function () { return _this.handleClick_(); }; return _this; } _createClass(MDCFormFieldFoundation, [{ key: 'init', value: function init() { this.adapter_.registerInteractionHandler('click', this.clickHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterInteractionHandler('click', this.clickHandler_); } /** @private */ }, { key: 'handleClick_', value: function handleClick_() { var _this2 = this; this.adapter_.activateInputRipple(); requestAnimationFrame(function () { return _this2.adapter_.deactivateInputRipple(); }); } }]); return MDCFormFieldFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCFormFieldFoundation); /***/ }), /* 79 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Form Field. Provides an interface for managing * - event handlers * - ripple activation * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCFormFieldAdapter = function () { function MDCFormFieldAdapter() { _classCallCheck(this, MDCFormFieldAdapter); } _createClass(MDCFormFieldAdapter, [{ key: "registerInteractionHandler", /** * @param {string} type * @param {!EventListener} handler */ value: function registerInteractionHandler(type, handler) {} /** * @param {string} type * @param {!EventListener} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(type, handler) {} }, { key: "activateInputRipple", value: function activateInputRipple() {} }, { key: "deactivateInputRipple", value: function deactivateInputRipple() {} }]); return MDCFormFieldAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCFormFieldAdapter); /***/ }), /* 80 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ROOT: 'mdc-form-field' }; /** @enum {string} */ var strings = { LABEL_SELECTOR: '.mdc-form-field > label' }; /***/ }), /* 81 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridList", function() { return MDCGridList; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(82); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridListFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCGridList = function (_MDCComponent) { _inherits(MDCGridList, _MDCComponent); function MDCGridList() { _classCallCheck(this, MDCGridList); return _possibleConstructorReturn(this, (MDCGridList.__proto__ || Object.getPrototypeOf(MDCGridList)).apply(this, arguments)); } _createClass(MDCGridList, [{ key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ getOffsetWidth: function getOffsetWidth() { return _this2.root_.offsetWidth; }, getNumberOfTiles: function getNumberOfTiles() { return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR).length; }, getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex(index) { return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR)[index].offsetWidth; }, setStyleForTilesElement: function setStyleForTilesElement(property, value) { _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILES_SELECTOR).style[property] = value; }, registerResizeHandler: function registerResizeHandler(handler) { return window.addEventListener('resize', handler); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { return window.removeEventListener('resize', handler); } }); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCGridList(root); } }]); return MDCGridList; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 82 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(83); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCGridListFoundation = function (_MDCFoundation) { _inherits(MDCGridListFoundation, _MDCFoundation); _createClass(MDCGridListFoundation, null, [{ key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { getOffsetWidth: function getOffsetWidth() { return (/* number */0 ); }, getNumberOfTiles: function getNumberOfTiles() { return (/* number */0 ); }, getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex() { return (/* index: number */ /* number */0 ); }, setStyleForTilesElement: function setStyleForTilesElement() /* property: string, value: string */{}, registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{}, deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{} }; } }]); function MDCGridListFoundation(adapter) { _classCallCheck(this, MDCGridListFoundation); var _this = _possibleConstructorReturn(this, (MDCGridListFoundation.__proto__ || Object.getPrototypeOf(MDCGridListFoundation)).call(this, _extends(MDCGridListFoundation.defaultAdapter, adapter))); _this.resizeHandler_ = function () { return _this.alignCenter(); }; _this.resizeFrame_ = 0; return _this; } _createClass(MDCGridListFoundation, [{ key: 'init', value: function init() { this.alignCenter(); this.adapter_.registerResizeHandler(this.resizeHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterResizeHandler(this.resizeHandler_); } }, { key: 'alignCenter', value: function alignCenter() { var _this2 = this; if (this.resizeFrame_ !== 0) { cancelAnimationFrame(this.resizeFrame_); } this.resizeFrame_ = requestAnimationFrame(function () { _this2.alignCenter_(); _this2.resizeFrame_ = 0; }); } }, { key: 'alignCenter_', value: function alignCenter_() { if (this.adapter_.getNumberOfTiles() == 0) { return; } var gridWidth = this.adapter_.getOffsetWidth(); var itemWidth = this.adapter_.getOffsetWidthForTileAtIndex(0); var tilesWidth = itemWidth * Math.floor(gridWidth / itemWidth); this.adapter_.setStyleForTilesElement('width', tilesWidth + 'px'); } }]); return MDCGridListFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /* harmony default export */ __webpack_exports__["a"] = (MDCGridListFoundation); /***/ }), /* 83 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var strings = { TILES_SELECTOR: '.mdc-grid-list__tiles', TILE_SELECTOR: '.mdc-grid-tile' }; /***/ }), /* 84 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconButtonToggle", function() { return MDCIconButtonToggle; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(85); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(3); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconButtonToggleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} */ var MDCIconButtonToggle = function (_MDCComponent) { _inherits(MDCIconButtonToggle, _MDCComponent); _createClass(MDCIconButtonToggle, null, [{ key: 'attachTo', value: function attachTo(root) { return new MDCIconButtonToggle(root); } }]); function MDCIconButtonToggle() { var _ref; _classCallCheck(this, MDCIconButtonToggle); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCIconButtonToggle.__proto__ || Object.getPrototypeOf(MDCIconButtonToggle)).call.apply(_ref, [this].concat(args))); _this.ripple_ = _this.initRipple_(); /** @private {!Function} */ _this.handleClick_; return _this; } /** @return {!Element} */ _createClass(MDCIconButtonToggle, [{ key: 'initRipple_', /** * @return {!MDCRipple} * @private */ value: function initRipple_() { var ripple = new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"](this.root_); ripple.unbounded = true; return ripple; } }, { key: 'destroy', value: function destroy() { this.root_.removeEventListener('click', this.handleClick_); this.ripple_.destroy(); _get(MDCIconButtonToggle.prototype.__proto__ || Object.getPrototypeOf(MDCIconButtonToggle.prototype), 'destroy', this).call(this); } /** @return {!MDCIconButtonToggleFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.iconEl_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.iconEl_.classList.remove(className); }, setText: function setText(text) { return _this2.iconEl_.textContent = text; }, getAttr: function getAttr(name) { return _this2.root_.getAttribute(name); }, setAttr: function setAttr(name, value) { return _this2.root_.setAttribute(name, value); }, notifyChange: function notifyChange(evtData) { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData); } }); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { this.handleClick_ = this.foundation_.handleClick.bind(this.foundation_); this.on = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_PRESSED) === 'true'; this.root_.addEventListener('click', this.handleClick_); } /** @return {!MDCRipple} */ }, { key: 'refreshToggleData', value: function refreshToggleData() { this.foundation_.refreshToggleData(); } }, { key: 'iconEl_', get: function get() { var sel = this.root_.dataset['iconInnerSelector']; return sel ? /** @type {!Element} */this.root_.querySelector(sel) : this.root_; } }, { key: 'ripple', get: function get() { return this.ripple_; } /** @return {boolean} */ }, { key: 'on', get: function get() { return this.foundation_.isOn(); } /** @param {boolean} isOn */ , set: function set(isOn) { this.foundation_.toggle(isOn); } }]); return MDCIconButtonToggle; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 85 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(86); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(87); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /** * @extends {MDCFoundation} */ var MDCIconButtonToggleFoundation = function (_MDCFoundation) { _inherits(MDCIconButtonToggleFoundation, _MDCFoundation); _createClass(MDCIconButtonToggleFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, setText: function setText() /* text: string */{}, getAttr: function getAttr() { return (/* name: string */ /* string */'' ); }, setAttr: function setAttr() /* name: string, value: string */{}, notifyChange: function notifyChange() /* evtData: IconButtonToggleEvent */{} }; } }]); function MDCIconButtonToggleFoundation(adapter) { _classCallCheck(this, MDCIconButtonToggleFoundation); var _this = _possibleConstructorReturn(this, (MDCIconButtonToggleFoundation.__proto__ || Object.getPrototypeOf(MDCIconButtonToggleFoundation)).call(this, _extends(MDCIconButtonToggleFoundation.defaultAdapter, adapter))); var ARIA_PRESSED = MDCIconButtonToggleFoundation.strings.ARIA_PRESSED; /** @private {boolean} */ _this.on_ = _this.adapter_.getAttr(ARIA_PRESSED) === 'true'; /** @private {boolean} */ _this.disabled_ = false; /** @private {?IconButtonToggleState} */ _this.toggleOnData_ = null; /** @private {?IconButtonToggleState} */ _this.toggleOffData_ = null; return _this; } _createClass(MDCIconButtonToggleFoundation, [{ key: 'init', value: function init() { this.refreshToggleData(); } }, { key: 'refreshToggleData', value: function refreshToggleData() { this.toggleOnData_ = { label: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_ON_LABEL), content: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_ON_CONTENT), cssClass: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_ON_CLASS) }; this.toggleOffData_ = { label: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_OFF_LABEL), content: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_OFF_CONTENT), cssClass: this.adapter_.getAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].DATA_TOGGLE_OFF_CLASS) }; } }, { key: 'handleClick', value: function handleClick() { this.toggle(); var isOn = this.on_; this.adapter_.notifyChange( /** @type {!IconButtonToggleEvent} */{ isOn: isOn }); } /** @return {boolean} */ }, { key: 'isOn', value: function isOn() { return this.on_; } /** @param {boolean=} isOn */ }, { key: 'toggle', value: function toggle() { var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.on_; this.on_ = isOn; var _MDCIconButtonToggleF = MDCIconButtonToggleFoundation.strings, ARIA_LABEL = _MDCIconButtonToggleF.ARIA_LABEL, ARIA_PRESSED = _MDCIconButtonToggleF.ARIA_PRESSED; this.adapter_.setAttr(ARIA_PRESSED, this.on_.toString()); var _ref = this.on_ ? this.toggleOffData_ : this.toggleOnData_, classToRemove = _ref.cssClass; if (classToRemove) { this.adapter_.removeClass(classToRemove); } var _ref2 = this.on_ ? this.toggleOnData_ : this.toggleOffData_, content = _ref2.content, label = _ref2.label, cssClass = _ref2.cssClass; if (cssClass) { this.adapter_.addClass(cssClass); } if (content) { this.adapter_.setText(content); } if (label) { this.adapter_.setAttr(ARIA_LABEL, label); } } }]); return MDCIconButtonToggleFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /** @record */ var IconButtonToggleState = function IconButtonToggleState() { _classCallCheck(this, IconButtonToggleState); }; /** * The aria-label value of the icon toggle, or undefined if there is no aria-label. * @export {string|undefined} */ IconButtonToggleState.prototype.label; /** * The text for the icon toggle, or undefined if there is no text. * @export {string|undefined} */ IconButtonToggleState.prototype.content; /** * The CSS class to add to the icon toggle, or undefined if there is no CSS class. * @export {string|undefined} */ IconButtonToggleState.prototype.cssClass; /* harmony default export */ __webpack_exports__["a"] = (MDCIconButtonToggleFoundation); /***/ }), /* 86 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCIconButtonToggleAdapter */ /* unused harmony export IconButtonToggleEvent */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Icon Button Toggle. Provides an interface for managing * - classes * - dom * - inner text * - event handlers * - event dispatch * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCIconButtonToggleAdapter = function () { function MDCIconButtonToggleAdapter() { _classCallCheck(this, MDCIconButtonToggleAdapter); } _createClass(MDCIconButtonToggleAdapter, [{ key: "addClass", /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * @param {string} type * @param {!EventListener} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(type, handler) {} /** * @param {string} type * @param {!EventListener} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(type, handler) {} /** @param {string} text */ }, { key: "setText", value: function setText(text) {} /** * @param {string} name * @return {string} */ }, { key: "getAttr", value: function getAttr(name) {} /** * @param {string} name * @param {string} value */ }, { key: "setAttr", value: function setAttr(name, value) {} /** @param {!IconButtonToggleEvent} evtData */ }, { key: "notifyChange", value: function notifyChange(evtData) {} }]); return MDCIconButtonToggleAdapter; }(); /** * @typedef {{ * isOn: boolean, * }} */ var IconButtonToggleEvent = void 0; /***/ }), /* 87 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ROOT: 'mdc-icon-button' }; /** @enum {string} */ var strings = { DATA_TOGGLE_ON_LABEL: 'data-toggle-on-label', DATA_TOGGLE_ON_CONTENT: 'data-toggle-on-content', DATA_TOGGLE_ON_CLASS: 'data-toggle-on-class', DATA_TOGGLE_OFF_LABEL: 'data-toggle-off-label', DATA_TOGGLE_OFF_CONTENT: 'data-toggle-off-content', DATA_TOGGLE_OFF_CLASS: 'data-toggle-off-class', ARIA_PRESSED: 'aria-pressed', ARIA_LABEL: 'aria-label', CHANGE_EVENT: 'MDCIconButtonToggle:change' }; /***/ }), /* 88 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggle", function() { return MDCIconToggle; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(89); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(3); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} */ var MDCIconToggle = function (_MDCComponent) { _inherits(MDCIconToggle, _MDCComponent); _createClass(MDCIconToggle, null, [{ key: 'attachTo', value: function attachTo(root) { return new MDCIconToggle(root); } }]); function MDCIconToggle() { var _ref; _classCallCheck(this, MDCIconToggle); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCIconToggle.__proto__ || Object.getPrototypeOf(MDCIconToggle)).call.apply(_ref, [this].concat(args))); _this.ripple_ = _this.initRipple_(); return _this; } /** @return {!Element} */ _createClass(MDCIconToggle, [{ key: 'initRipple_', /** * @return {!MDCRipple} * @private */ value: function initRipple_() { var _this2 = this; var adapter = _extends(__WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"].createAdapter(this), { isUnbounded: function isUnbounded() { return true; }, isSurfaceActive: function isSurfaceActive() { return _this2.foundation_.isKeyboardActivated(); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRippleFoundation"](adapter); return new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"](this.root_, foundation); } }, { key: 'destroy', value: function destroy() { this.ripple_.destroy(); _get(MDCIconToggle.prototype.__proto__ || Object.getPrototypeOf(MDCIconToggle.prototype), 'destroy', this).call(this); } /** @return {!MDCIconToggleFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this3.iconEl_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.iconEl_.classList.remove(className); }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this3.root_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this3.root_.removeEventListener(type, handler); }, setText: function setText(text) { return _this3.iconEl_.textContent = text; }, getTabIndex: function getTabIndex() { return (/* number */_this3.root_.tabIndex ); }, setTabIndex: function setTabIndex(tabIndex) { return _this3.root_.tabIndex = tabIndex; }, getAttr: function getAttr(name, value) { return _this3.root_.getAttribute(name, value); }, setAttr: function setAttr(name, value) { return _this3.root_.setAttribute(name, value); }, rmAttr: function rmAttr(name) { return _this3.root_.removeAttribute(name); }, notifyChange: function notifyChange(evtData) { return _this3.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData); } }); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { this.on = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_PRESSED) === 'true'; this.disabled = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_DISABLED) === 'true'; } /** @return {!MDCRipple} */ }, { key: 'refreshToggleData', value: function refreshToggleData() { this.foundation_.refreshToggleData(); } }, { key: 'iconEl_', get: function get() { var sel = this.root_.dataset['iconInnerSelector']; return sel ? /** @type {!Element} */this.root_.querySelector(sel) : this.root_; } }, { key: 'ripple', get: function get() { return this.ripple_; } /** @return {boolean} */ }, { key: 'on', get: function get() { return this.foundation_.isOn(); } /** @param {boolean} isOn */ , set: function set(isOn) { this.foundation_.toggle(isOn); } /** @return {boolean} */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** @param {boolean} isDisabled */ , set: function set(isDisabled) { this.foundation_.setDisabled(isDisabled); } }]); return MDCIconToggle; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 89 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(90); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(91); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /** * @extends {MDCFoundation} */ var MDCIconToggleFoundation = function (_MDCFoundation) { _inherits(MDCIconToggleFoundation, _MDCFoundation); _createClass(MDCIconToggleFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{}, setText: function setText() /* text: string */{}, getTabIndex: function getTabIndex() { return (/* number */0 ); }, setTabIndex: function setTabIndex() /* tabIndex: number */{}, getAttr: function getAttr() { return (/* name: string */ /* string */'' ); }, setAttr: function setAttr() /* name: string, value: string */{}, rmAttr: function rmAttr() /* name: string */{}, notifyChange: function notifyChange() /* evtData: IconToggleEvent */{} }; } }]); function MDCIconToggleFoundation(adapter) { _classCallCheck(this, MDCIconToggleFoundation); /** @private {boolean} */ var _this = _possibleConstructorReturn(this, (MDCIconToggleFoundation.__proto__ || Object.getPrototypeOf(MDCIconToggleFoundation)).call(this, _extends(MDCIconToggleFoundation.defaultAdapter, adapter))); _this.on_ = false; /** @private {boolean} */ _this.disabled_ = false; /** @private {number} */ _this.savedTabIndex_ = -1; /** @private {?IconToggleState} */ _this.toggleOnData_ = null; /** @private {?IconToggleState} */ _this.toggleOffData_ = null; _this.clickHandler_ = /** @private {!EventListener} */function () { return _this.toggleFromEvt_(); }; /** @private {boolean} */ _this.isHandlingKeydown_ = false; _this.keydownHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) { if (isSpace(evt)) { _this.isHandlingKeydown_ = true; return evt.preventDefault(); } }; _this.keyupHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) { if (isSpace(evt)) { _this.isHandlingKeydown_ = false; _this.toggleFromEvt_(); } }; return _this; } _createClass(MDCIconToggleFoundation, [{ key: 'init', value: function init() { this.refreshToggleData(); this.savedTabIndex_ = this.adapter_.getTabIndex(); this.adapter_.registerInteractionHandler('click', this.clickHandler_); this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_); this.adapter_.registerInteractionHandler('keyup', this.keyupHandler_); } }, { key: 'refreshToggleData', value: function refreshToggleData() { var _MDCIconToggleFoundat = MDCIconToggleFoundation.strings, DATA_TOGGLE_ON = _MDCIconToggleFoundat.DATA_TOGGLE_ON, DATA_TOGGLE_OFF = _MDCIconToggleFoundat.DATA_TOGGLE_OFF; this.toggleOnData_ = this.parseJsonDataAttr_(DATA_TOGGLE_ON); this.toggleOffData_ = this.parseJsonDataAttr_(DATA_TOGGLE_OFF); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterInteractionHandler('click', this.clickHandler_); this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_); this.adapter_.deregisterInteractionHandler('keyup', this.keyupHandler_); } /** @private */ }, { key: 'toggleFromEvt_', value: function toggleFromEvt_() { this.toggle(); var isOn = this.on_; this.adapter_.notifyChange( /** @type {!IconToggleEvent} */{ isOn: isOn }); } /** @return {boolean} */ }, { key: 'isOn', value: function isOn() { return this.on_; } /** @param {boolean=} isOn */ }, { key: 'toggle', value: function toggle() { var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.on_; this.on_ = isOn; var _MDCIconToggleFoundat2 = MDCIconToggleFoundation.strings, ARIA_LABEL = _MDCIconToggleFoundat2.ARIA_LABEL, ARIA_PRESSED = _MDCIconToggleFoundat2.ARIA_PRESSED; if (this.on_) { this.adapter_.setAttr(ARIA_PRESSED, 'true'); } else { this.adapter_.setAttr(ARIA_PRESSED, 'false'); } var _ref = this.on_ ? this.toggleOffData_ : this.toggleOnData_, classToRemove = _ref.cssClass; if (classToRemove) { this.adapter_.removeClass(classToRemove); } var _ref2 = this.on_ ? this.toggleOnData_ : this.toggleOffData_, content = _ref2.content, label = _ref2.label, cssClass = _ref2.cssClass; if (cssClass) { this.adapter_.addClass(cssClass); } if (content) { this.adapter_.setText(content); } if (label) { this.adapter_.setAttr(ARIA_LABEL, label); } } /** * @param {string} dataAttr * @return {!IconToggleState} */ }, { key: 'parseJsonDataAttr_', value: function parseJsonDataAttr_(dataAttr) { var val = this.adapter_.getAttr(dataAttr); if (!val) { return {}; } return (/** @type {!IconToggleState} */JSON.parse(val) ); } /** @return {boolean} */ }, { key: 'isDisabled', value: function isDisabled() { return this.disabled_; } /** @param {boolean} isDisabled */ }, { key: 'setDisabled', value: function setDisabled(isDisabled) { this.disabled_ = isDisabled; var DISABLED = MDCIconToggleFoundation.cssClasses.DISABLED; var ARIA_DISABLED = MDCIconToggleFoundation.strings.ARIA_DISABLED; if (this.disabled_) { this.savedTabIndex_ = this.adapter_.getTabIndex(); this.adapter_.setTabIndex(-1); this.adapter_.setAttr(ARIA_DISABLED, 'true'); this.adapter_.addClass(DISABLED); } else { this.adapter_.setTabIndex(this.savedTabIndex_); this.adapter_.rmAttr(ARIA_DISABLED); this.adapter_.removeClass(DISABLED); } } /** @return {boolean} */ }, { key: 'isKeyboardActivated', value: function isKeyboardActivated() { return this.isHandlingKeydown_; } }]); return MDCIconToggleFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /** * @typedef {{ * key: string, * keyCode: number * }} */ var KeyboardKey = void 0; /** * @param {!KeyboardKey} keyboardKey * @return {boolean} */ function isSpace(keyboardKey) { return keyboardKey.key === 'Space' || keyboardKey.keyCode === 32; } /** @record */ var IconToggleState = function IconToggleState() { _classCallCheck(this, IconToggleState); }; /** * The aria-label value of the icon toggle, or undefined if there is no aria-label. * @export {string|undefined} */ IconToggleState.prototype.label; /** * The text for the icon toggle, or undefined if there is no text. * @export {string|undefined} */ IconToggleState.prototype.content; /** * The CSS class to add to the icon toggle, or undefined if there is no CSS class. * @export {string|undefined} */ IconToggleState.prototype.cssClass; /* harmony default export */ __webpack_exports__["a"] = (MDCIconToggleFoundation); /***/ }), /* 90 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCIconToggleAdapter */ /* unused harmony export IconToggleEvent */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Icon Toggle. Provides an interface for managing * - classes * - dom * - inner text * - event handlers * - event dispatch * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCIconToggleAdapter = function () { function MDCIconToggleAdapter() { _classCallCheck(this, MDCIconToggleAdapter); } _createClass(MDCIconToggleAdapter, [{ key: "addClass", /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * @param {string} type * @param {!EventListener} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(type, handler) {} /** * @param {string} type * @param {!EventListener} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(type, handler) {} /** @param {string} text */ }, { key: "setText", value: function setText(text) {} /** @return {number} */ }, { key: "getTabIndex", value: function getTabIndex() {} /** @param {number} tabIndex */ }, { key: "setTabIndex", value: function setTabIndex(tabIndex) {} /** * @param {string} name * @return {string} */ }, { key: "getAttr", value: function getAttr(name) {} /** * @param {string} name * @param {string} value */ }, { key: "setAttr", value: function setAttr(name, value) {} /** @param {string} name */ }, { key: "rmAttr", value: function rmAttr(name) {} /** @param {!IconToggleEvent} evtData */ }, { key: "notifyChange", value: function notifyChange(evtData) {} }]); return MDCIconToggleAdapter; }(); /** * @typedef {{ * isOn: boolean, * }} */ var IconToggleEvent = void 0; /***/ }), /* 91 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ROOT: 'mdc-icon-toggle', DISABLED: 'mdc-icon-toggle--disabled' }; /** @enum {string} */ var strings = { DATA_TOGGLE_ON: 'data-toggle-on', DATA_TOGGLE_OFF: 'data-toggle-off', ARIA_PRESSED: 'aria-pressed', ARIA_DISABLED: 'aria-disabled', ARIA_LABEL: 'aria-label', CHANGE_EVENT: 'MDCIconToggle:change' }; /***/ }), /* 92 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgress", function() { return MDCLinearProgress; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(93); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgressFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCLinearProgress = function (_MDCComponent) { _inherits(MDCLinearProgress, _MDCComponent); function MDCLinearProgress() { _classCallCheck(this, MDCLinearProgress); return _possibleConstructorReturn(this, (MDCLinearProgress.__proto__ || Object.getPrototypeOf(MDCLinearProgress)).apply(this, arguments)); } _createClass(MDCLinearProgress, [{ key: 'open', value: function open() { this.foundation_.open(); } }, { key: 'close', value: function close() { this.foundation_.close(); } }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, getPrimaryBar: function getPrimaryBar() { return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.PRIMARY_BAR_SELECTOR); }, getBuffer: function getBuffer() { return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.BUFFER_SELECTOR); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, setStyle: function setStyle(el, styleProperty, value) { return el.style[styleProperty] = value; } }); } }, { key: 'determinate', set: function set(value) { this.foundation_.setDeterminate(value); } }, { key: 'progress', set: function set(value) { this.foundation_.setProgress(value); } }, { key: 'buffer', set: function set(value) { this.foundation_.setBuffer(value); } }, { key: 'reverse', set: function set(value) { this.foundation_.setReverse(value); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCLinearProgress(root); } }]); return MDCLinearProgress; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 93 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation_index__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(94); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCLinearProgressFoundation = function (_MDCFoundation) { _inherits(MDCLinearProgressFoundation, _MDCFoundation); _createClass(MDCLinearProgressFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, getPrimaryBar: function getPrimaryBar() /* el: Element */{}, getBuffer: function getBuffer() /* el: Element */{}, hasClass: function hasClass() { return (/* className: string */false ); }, removeClass: function removeClass() /* className: string */{}, setStyle: function setStyle() /* el: Element, styleProperty: string, value: string */{} }; } }]); function MDCLinearProgressFoundation(adapter) { _classCallCheck(this, MDCLinearProgressFoundation); return _possibleConstructorReturn(this, (MDCLinearProgressFoundation.__proto__ || Object.getPrototypeOf(MDCLinearProgressFoundation)).call(this, _extends(MDCLinearProgressFoundation.defaultAdapter, adapter))); } _createClass(MDCLinearProgressFoundation, [{ key: 'init', value: function init() { this.determinate_ = !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.reverse_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS); this.progress_ = 0; } }, { key: 'setDeterminate', value: function setDeterminate(isDeterminate) { this.determinate_ = isDeterminate; if (this.determinate_) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.setScale_(this.adapter_.getPrimaryBar(), this.progress_); } else { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.setScale_(this.adapter_.getPrimaryBar(), 1); this.setScale_(this.adapter_.getBuffer(), 1); } } }, { key: 'setProgress', value: function setProgress(value) { this.progress_ = value; if (this.determinate_) { this.setScale_(this.adapter_.getPrimaryBar(), value); } } }, { key: 'setBuffer', value: function setBuffer(value) { if (this.determinate_) { this.setScale_(this.adapter_.getBuffer(), value); } } }, { key: 'setReverse', value: function setReverse(isReversed) { this.reverse_ = isReversed; if (this.reverse_) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS); } } }, { key: 'open', value: function open() { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS); } }, { key: 'close', value: function close() { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS); } }, { key: 'setScale_', value: function setScale_(el, scaleValue) { var _this2 = this; var value = 'scaleX(' + scaleValue + ')'; __WEBPACK_IMPORTED_MODULE_1__material_animation_index__["c" /* transformStyleProperties */].forEach(function (transformStyleProperty) { _this2.adapter_.setStyle(el, transformStyleProperty, value); }); } }]); return MDCLinearProgressFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /* harmony default export */ __webpack_exports__["a"] = (MDCLinearProgressFoundation); /***/ }), /* 94 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { CLOSED_CLASS: 'mdc-linear-progress--closed', INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate', REVERSED_CLASS: 'mdc-linear-progress--reversed' }; var strings = { PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar', BUFFER_SELECTOR: '.mdc-linear-progress__buffer' }; /***/ }), /* 95 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(29); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(96); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCLineRippleFoundation = function (_MDCFoundation) { _inherits(MDCLineRippleFoundation, _MDCFoundation); _createClass(MDCLineRippleFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** * {@see MDCLineRippleAdapter} for typing information on parameters and return * types. * @return {!MDCLineRippleAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCLineRippleAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() {}, setStyle: function setStyle() {}, registerEventHandler: function registerEventHandler() {}, deregisterEventHandler: function deregisterEventHandler() {} } ); } /** * @param {!MDCLineRippleAdapter=} adapter */ }]); function MDCLineRippleFoundation() { var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : /** @type {!MDCLineRippleAdapter} */{}; _classCallCheck(this, MDCLineRippleFoundation); /** @private {function(!Event): undefined} */ var _this = _possibleConstructorReturn(this, (MDCLineRippleFoundation.__proto__ || Object.getPrototypeOf(MDCLineRippleFoundation)).call(this, _extends(MDCLineRippleFoundation.defaultAdapter, adapter))); _this.transitionEndHandler_ = function (evt) { return _this.handleTransitionEnd(evt); }; return _this; } _createClass(MDCLineRippleFoundation, [{ key: 'init', value: function init() { this.adapter_.registerEventHandler('transitionend', this.transitionEndHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterEventHandler('transitionend', this.transitionEndHandler_); } /** * Activates the line ripple */ }, { key: 'activate', value: function activate() { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_ACTIVE); } /** * Sets the center of the ripple animation to the given X coordinate. * @param {number} xCoordinate */ }, { key: 'setRippleCenter', value: function setRippleCenter(xCoordinate) { this.adapter_.setStyle('transform-origin', xCoordinate + 'px center'); } /** * Deactivates the line ripple */ }, { key: 'deactivate', value: function deactivate() { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING); } /** * Handles a transition end event * @param {!Event} evt */ }, { key: 'handleTransitionEnd', value: function handleTransitionEnd(evt) { // Wait for the line ripple to be either transparent or opaque // before emitting the animation end event var isDeactivating = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING); if (evt.propertyName === 'opacity') { if (isDeactivating) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_ACTIVE); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING); } } } }]); return MDCLineRippleFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCLineRippleFoundation); /***/ }), /* 96 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active', LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating' }; /***/ }), /* 97 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCList", function() { return MDCList; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(98); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(30); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(31); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCListFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends MDCComponent */ var MDCList = function (_MDCComponent) { _inherits(MDCList, _MDCComponent); /** @param {...?} args */ function MDCList() { var _ref; _classCallCheck(this, MDCList); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!Function} */ var _this = _possibleConstructorReturn(this, (_ref = MDCList.__proto__ || Object.getPrototypeOf(MDCList)).call.apply(_ref, [this].concat(args))); _this.handleKeydown_; /** @private {!Function} */ _this.handleClick_; /** @private {!Function} */ _this.focusInEventListener_; /** @private {!Function} */ _this.focusOutEventListener_; return _this; } /** * @param {!Element} root * @return {!MDCList} */ _createClass(MDCList, [{ key: 'destroy', value: function destroy() { this.root_.removeEventListener('keydown', this.handleKeydown_); this.root_.removeEventListener('click', this.handleClick_); this.root_.removeEventListener('focusin', this.focusInEventListener_); this.root_.removeEventListener('focusout', this.focusOutEventListener_); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { this.handleKeydown_ = this.foundation_.handleKeydown.bind(this.foundation_); this.handleClick_ = this.foundation_.handleClick.bind(this.foundation_); this.focusInEventListener_ = this.foundation_.handleFocusIn.bind(this.foundation_); this.focusOutEventListener_ = this.foundation_.handleFocusOut.bind(this.foundation_); this.root_.addEventListener('keydown', this.handleKeydown_); this.root_.addEventListener('focusin', this.focusInEventListener_); this.root_.addEventListener('focusout', this.focusOutEventListener_); this.layout(); } }, { key: 'layout', value: function layout() { var direction = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].ARIA_ORIENTATION); this.vertical = direction === __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].ARIA_ORIENTATION_VERTICAL; // List items need to have at least tabindex=-1 to be focusable. [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])')).forEach(function (ele) { ele.setAttribute('tabindex', -1); }); // Child button/a elements are not tabbable until the list item is focused. [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].FOCUSABLE_CHILD_ELEMENTS)).forEach(function (ele) { return ele.setAttribute('tabindex', -1); }); } /** @param {boolean} value */ }, { key: 'getDefaultFoundation', /** @return {!MDCListFoundation} */ value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]( /** @type {!MDCListAdapter} */_extends({ getListItemCount: function getListItemCount() { return _this2.listElements_.length; }, getFocusedElementIndex: function getFocusedElementIndex() { return _this2.listElements_.indexOf(document.activeElement); }, getListItemIndex: function getListItemIndex(node) { return _this2.listElements_.indexOf(node); }, setAttributeForElementIndex: function setAttributeForElementIndex(index, attr, value) { var element = _this2.listElements_[index]; if (element) { element.setAttribute(attr, value); } }, removeAttributeForElementIndex: function removeAttributeForElementIndex(index, attr) { var element = _this2.listElements_[index]; if (element) { element.removeAttribute(attr); } }, addClassForElementIndex: function addClassForElementIndex(index, className) { var element = _this2.listElements_[index]; if (element) { element.classList.add(className); } }, removeClassForElementIndex: function removeClassForElementIndex(index, className) { var element = _this2.listElements_[index]; if (element) { element.classList.remove(className); } }, isListItem: function isListItem(target) { return target.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_CLASS); }, focusItemAtIndex: function focusItemAtIndex(index) { var element = _this2.listElements_[index]; if (element) { element.focus(); } }, isElementFocusable: function isElementFocusable(ele) { if (!ele) return false; var matches = Element.prototype.matches; if (!matches) { // IE uses a different name for the same functionality matches = Element.prototype.msMatchesSelector; } return matches.call(ele, __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].FOCUSABLE_CHILD_ELEMENTS); }, setTabIndexForListItemChildren: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) { var element = _this2.listElements_[listItemIndex]; var listItemChildren = [].slice.call(element.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].FOCUSABLE_CHILD_ELEMENTS)); listItemChildren.forEach(function (ele) { return ele.setAttribute('tabindex', tabIndexValue); }); } })); } }, { key: 'vertical', set: function set(value) { this.foundation_.setVerticalOrientation(value); } /** @return Array*/ }, { key: 'listElements_', get: function get() { return [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */].ENABLED_ITEMS_SELECTOR)); } /** @param {boolean} value */ }, { key: 'wrapFocus', set: function set(value) { this.foundation_.setWrapFocus(value); } /** @param {boolean} isSingleSelectionList */ }, { key: 'singleSelection', set: function set(isSingleSelectionList) { if (isSingleSelectionList) { this.root_.addEventListener('click', this.handleClick_); } else { this.root_.removeEventListener('click', this.handleClick_); } this.foundation_.setSingleSelection(isSingleSelectionList); var selectedElement = this.root_.querySelector('.mdc-list-item--selected'); if (selectedElement) { this.selectedIndex = this.listElements_.indexOf(selectedElement); } } /** @param {number} index */ }, { key: 'selectedIndex', set: function set(index) { this.foundation_.setSelectedIndex(index); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCList(root); } }]); return MDCList; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 98 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(30); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(31); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select']; var MDCListFoundation = function (_MDCFoundation) { _inherits(MDCListFoundation, _MDCFoundation); _createClass(MDCListFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** * {@see MDCListAdapter} for typing information on parameters and return * types. * @return {!MDCListAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCListAdapter} */{ getListItemCount: function getListItemCount() {}, getFocusedElementIndex: function getFocusedElementIndex() {}, getListItemIndex: function getListItemIndex() {}, setAttributeForElementIndex: function setAttributeForElementIndex() {}, removeAttributeForElementIndex: function removeAttributeForElementIndex() {}, addClassForElementIndex: function addClassForElementIndex() {}, removeClassForElementIndex: function removeClassForElementIndex() {}, focusItemAtIndex: function focusItemAtIndex() {}, isElementFocusable: function isElementFocusable() {}, isListItem: function isListItem() {}, setTabIndexForListItemChildren: function setTabIndexForListItemChildren() {} } ); } }]); function MDCListFoundation() { var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : /** @type {!MDCListFoundation} */{}; _classCallCheck(this, MDCListFoundation); /** {boolean} */ var _this = _possibleConstructorReturn(this, (MDCListFoundation.__proto__ || Object.getPrototypeOf(MDCListFoundation)).call(this, _extends(MDCListFoundation.defaultAdapter, adapter))); _this.wrapFocus_ = false; /** {boolean} */ _this.isVertical_ = true; /** {boolean} */ _this.isSingleSelectionList_ = false; /** {number} */ _this.selectedIndex_ = -1; return _this; } /** * Sets the private wrapFocus_ variable. * @param {boolean} value */ _createClass(MDCListFoundation, [{ key: 'setWrapFocus', value: function setWrapFocus(value) { this.wrapFocus_ = value; } /** * Sets the isVertical_ private variable. * @param {boolean} value */ }, { key: 'setVerticalOrientation', value: function setVerticalOrientation(value) { this.isVertical_ = value; } /** * Sets the isSingleSelectionList_ private variable. * @param {boolean} value */ }, { key: 'setSingleSelection', value: function setSingleSelection(value) { this.isSingleSelectionList_ = value; } /** @param {number} index */ }, { key: 'setSelectedIndex', value: function setSelectedIndex(index) { if (index === this.selectedIndex_) { this.adapter_.removeAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED); this.adapter_.removeClassForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS); // Used to reset the first element to tabindex=0 when deselecting a list item. // If already on the first list item, leave tabindex at 0. if (this.selectedIndex_ >= 0) { this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', -1); this.adapter_.setAttributeForElementIndex(0, 'tabindex', 0); } this.selectedIndex_ = -1; return; } if (this.selectedIndex_ >= 0) { this.adapter_.removeAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED); this.adapter_.removeClassForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS); this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', -1); } if (index >= 0 && this.adapter_.getListItemCount() > index) { this.selectedIndex_ = index; this.adapter_.setAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, true); this.adapter_.addClassForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS); this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', 0); if (this.selectedIndex_ !== 0) { this.adapter_.setAttributeForElementIndex(0, 'tabindex', -1); } } } /** * Focus in handler for the list items. * @param evt */ }, { key: 'handleFocusIn', value: function handleFocusIn(evt) { var listItem = this.getListItem_(evt.target); if (!listItem) return; var listItemIndex = this.adapter_.getListItemIndex(listItem); if (listItemIndex >= 0) { this.adapter_.setTabIndexForListItemChildren(listItemIndex, 0); } } /** * Focus out handler for the list items. * @param {Event} evt */ }, { key: 'handleFocusOut', value: function handleFocusOut(evt) { var listItem = this.getListItem_(evt.target); if (!listItem) return; var listItemIndex = this.adapter_.getListItemIndex(listItem); if (listItemIndex >= 0) { this.adapter_.setTabIndexForListItemChildren(listItemIndex, -1); } } /** * Key handler for the list. * @param {Event} evt */ }, { key: 'handleKeydown', value: function handleKeydown(evt) { var arrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37; var arrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38; var arrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39; var arrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40; var isHome = evt.key === 'Home' || evt.keyCode === 36; var isEnd = evt.key === 'End' || evt.keyCode === 35; var isEnter = evt.key === 'Enter' || evt.keyCode === 13; var isSpace = evt.key === 'Space' || evt.keyCode === 32; var currentIndex = this.adapter_.getFocusedElementIndex(); if (currentIndex === -1) { currentIndex = this.adapter_.getListItemIndex(this.getListItem_(evt.target)); if (currentIndex < 0) { // If this event doesn't have a mdc-list-item ancestor from the // current list (not from a sublist), return early. return; } } if (this.isVertical_ && arrowDown || !this.isVertical_ && arrowRight) { this.preventDefaultEvent_(evt); this.focusNextElement(currentIndex); } else if (this.isVertical_ && arrowUp || !this.isVertical_ && arrowLeft) { this.preventDefaultEvent_(evt); this.focusPrevElement(currentIndex); } else if (isHome) { this.preventDefaultEvent_(evt); this.focusFirstElement(); } else if (isEnd) { this.preventDefaultEvent_(evt); this.focusLastElement(); } else if (this.isSingleSelectionList_ && (isEnter || isSpace)) { this.preventDefaultEvent_(evt); // Check if the space key was pressed on the list item or a child element. if (this.adapter_.isListItem(evt.target)) { this.setSelectedIndex(currentIndex); } } } /** * Click handler for the list. */ }, { key: 'handleClick', value: function handleClick() { var currentIndex = this.adapter_.getFocusedElementIndex(); if (currentIndex === -1) return; this.setSelectedIndex(currentIndex); } /** * Ensures that preventDefault is only called if the containing element doesn't * consume the event, and it will cause an unintended scroll. * @param {Event} evt * @private */ }, { key: 'preventDefaultEvent_', value: function preventDefaultEvent_(evt) { var tagName = ('' + evt.target.tagName).toLowerCase(); if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) { evt.preventDefault(); } } /** * Focuses the next element on the list. * @param {number} index */ }, { key: 'focusNextElement', value: function focusNextElement(index) { var count = this.adapter_.getListItemCount(); var nextIndex = index + 1; if (nextIndex >= count) { if (this.wrapFocus_) { nextIndex = 0; } else { // Return early because last item is already focused. return; } } this.adapter_.focusItemAtIndex(nextIndex); } /** * Focuses the previous element on the list. * @param {number} index */ }, { key: 'focusPrevElement', value: function focusPrevElement(index) { var prevIndex = index - 1; if (prevIndex < 0) { if (this.wrapFocus_) { prevIndex = this.adapter_.getListItemCount() - 1; } else { // Return early because first item is already focused. return; } } this.adapter_.focusItemAtIndex(prevIndex); } }, { key: 'focusFirstElement', value: function focusFirstElement() { if (this.adapter_.getListItemCount() > 0) { this.adapter_.focusItemAtIndex(0); } } }, { key: 'focusLastElement', value: function focusLastElement() { var lastIndex = this.adapter_.getListItemCount() - 1; if (lastIndex >= 0) { this.adapter_.focusItemAtIndex(lastIndex); } } /** * Utility method to find the first ancestor with the mdc-list-item class. * @param {EventTarget} target * @return {?Element} * @private */ }, { key: 'getListItem_', value: function getListItem_(target) { while (!this.adapter_.isListItem(target)) { if (!target.parentElement) return null; target = target.parentElement; } return target; } }]); return MDCListFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCListFoundation); /***/ }), /* 99 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenu", function() { return MDCMenu; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(100); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(101); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(32); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenuFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnchorMargin", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Corner", function() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CornerBit", function() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends MDCComponent */ var MDCMenu = function (_MDCComponent) { _inherits(MDCMenu, _MDCComponent); /** @param {...?} args */ function MDCMenu() { var _ref; _classCallCheck(this, MDCMenu); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCMenu.__proto__ || Object.getPrototypeOf(MDCMenu)).call.apply(_ref, [this].concat(args))); _this.previousFocus_; return _this; } /** * @param {!Element} root * @return {!MDCMenu} */ _createClass(MDCMenu, [{ key: 'show', /** @param {{focusIndex: ?number}=} options */ value: function show() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref2$focusIndex = _ref2.focusIndex, focusIndex = _ref2$focusIndex === undefined ? null : _ref2$focusIndex; this.foundation_.open({ focusIndex: focusIndex }); } }, { key: 'hide', value: function hide() { this.foundation_.close(); } /** * @param {Corner} corner Default anchor corner alignment of top-left * menu corner. */ }, { key: 'setAnchorCorner', value: function setAnchorCorner(corner) { this.foundation_.setAnchorCorner(corner); } /** * @param {AnchorMargin} margin */ }, { key: 'setAnchorMargin', value: function setAnchorMargin(margin) { this.foundation_.setAnchorMargin(margin); } /** * Return the item container element inside the component. * @return {?Element} */ }, { key: 'getOptionByIndex', /** * Return the item within the menu that is selected. * @param {number} index * @return {?Element} */ value: function getOptionByIndex(index) { var items = this.items; if (index < items.length) { return this.items[index]; } else { return null; } } /** @param {number} index */ }, { key: 'getDefaultFoundation', /** @return {!MDCMenuFoundation} */ value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuFoundation */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, hasNecessaryDom: function hasNecessaryDom() { return Boolean(_this2.itemsContainer_); }, getAttributeForEventTarget: function getAttributeForEventTarget(target, attributeName) { return target.getAttribute(attributeName); }, getInnerDimensions: function getInnerDimensions() { var itemsContainer = _this2.itemsContainer_; return { width: itemsContainer.offsetWidth, height: itemsContainer.offsetHeight }; }, hasAnchor: function hasAnchor() { return _this2.root_.parentElement && _this2.root_.parentElement.classList.contains('mdc-menu-anchor'); }, getAnchorDimensions: function getAnchorDimensions() { return _this2.root_.parentElement.getBoundingClientRect(); }, getWindowDimensions: function getWindowDimensions() { return { width: window.innerWidth, height: window.innerHeight }; }, getNumberOfItems: function getNumberOfItems() { return _this2.items.length; }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.root_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.root_.removeEventListener(type, handler); }, registerBodyClickHandler: function registerBodyClickHandler(handler) { return document.body.addEventListener('click', handler); }, deregisterBodyClickHandler: function deregisterBodyClickHandler(handler) { return document.body.removeEventListener('click', handler); }, getIndexForEventTarget: function getIndexForEventTarget(target) { return _this2.items.indexOf(target); }, notifySelected: function notifySelected(evtData) { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuFoundation */].strings.SELECTED_EVENT, { index: evtData.index, item: _this2.items[evtData.index] }); }, notifyCancel: function notifyCancel() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuFoundation */].strings.CANCEL_EVENT, {}); }, saveFocus: function saveFocus() { _this2.previousFocus_ = document.activeElement; }, restoreFocus: function restoreFocus() { if (_this2.previousFocus_ && _this2.previousFocus_.focus) { _this2.previousFocus_.focus(); } }, isFocused: function isFocused() { return document.activeElement === _this2.root_; }, focus: function focus() { return _this2.root_.focus(); }, getFocusedItemIndex: function getFocusedItemIndex() { return _this2.items.indexOf(document.activeElement); }, focusItemAtIndex: function focusItemAtIndex(index) { return _this2.items[index].focus(); }, isRtl: function isRtl() { return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl'; }, setTransformOrigin: function setTransformOrigin(origin) { _this2.root_.style[Object(__WEBPACK_IMPORTED_MODULE_1__util__["a" /* getTransformPropertyName */])(window) + '-origin'] = origin; }, setPosition: function setPosition(position) { _this2.root_.style.left = 'left' in position ? position.left : null; _this2.root_.style.right = 'right' in position ? position.right : null; _this2.root_.style.top = 'top' in position ? position.top : null; _this2.root_.style.bottom = 'bottom' in position ? position.bottom : null; }, setMaxHeight: function setMaxHeight(height) { _this2.root_.style.maxHeight = height; }, setAttrForOptionAtIndex: function setAttrForOptionAtIndex(index, attr, value) { return _this2.items[index].setAttribute(attr, value); }, rmAttrForOptionAtIndex: function rmAttrForOptionAtIndex(index, attr) { return _this2.items[index].removeAttribute(attr); }, addClassForOptionAtIndex: function addClassForOptionAtIndex(index, className) { return _this2.items[index].classList.add(className); }, rmClassForOptionAtIndex: function rmClassForOptionAtIndex(index, className) { return _this2.items[index].classList.remove(className); } }); } }, { key: 'open', /** @return {boolean} */ get: function get() { return this.foundation_.isOpen(); } /** @param {boolean} value */ , set: function set(value) { if (value) { this.foundation_.open(); } else { this.foundation_.close(); } } }, { key: 'itemsContainer_', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuFoundation */].strings.ITEMS_SELECTOR); } /** * Return the items within the menu. Note that this only contains the set of elements within * the items container that are proper list items, and not supplemental / presentational DOM * elements. * @return {!Array} */ }, { key: 'items', get: function get() { var itemsContainer = this.itemsContainer_; return [].slice.call(itemsContainer.querySelectorAll('.mdc-list-item[role]')); } }, { key: 'selectedItemIndex', set: function set(index) { this.foundation_.setSelectedIndex(index); } /** @return {number} */ , get: function get() { return this.foundation_.getSelectedIndex(); } /** @param {!boolean} rememberSelection */ }, { key: 'rememberSelection', set: function set(rememberSelection) { this.foundation_.setRememberSelection(rememberSelection); } /** @param {boolean} quickOpen */ }, { key: 'quickOpen', set: function set(quickOpen) { this.foundation_.setQuickOpen(quickOpen); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCMenu(root); } }]); return MDCMenu; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 100 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getTransformPropertyName; }); /* unused harmony export clamp */ /* unused harmony export bezierProgress */ /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @type {string|undefined} */ var storedTransformPropertyName_ = void 0; /** * Returns the name of the correct transform property to use on the current browser. * @param {!Window} globalObj * @param {boolean=} forceRefresh * @return {string} */ function getTransformPropertyName(globalObj) { var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (storedTransformPropertyName_ === undefined || forceRefresh) { var el = globalObj.document.createElement('div'); var transformPropertyName = 'transform' in el.style ? 'transform' : 'webkitTransform'; storedTransformPropertyName_ = transformPropertyName; } return storedTransformPropertyName_; } /** * Clamps a value between the minimum and the maximum, returning the clamped value. * @param {number} value * @param {number} min * @param {number} max * @return {number} */ function clamp(value) { var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; return Math.min(max, Math.max(min, value)); } /** * Returns the easing value to apply at time t, for a given cubic bezier curve. * Control points P0 and P3 are assumed to be (0,0) and (1,1), respectively. * Parameters are as follows: * - time: The current time in the animation, scaled between 0 and 1. * - x1: The x value of control point P1. * - y1: The y value of control point P1. * - x2: The x value of control point P2. * - y2: The y value of control point P2. * @param {number} time * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @return {number} */ function bezierProgress(time, x1, y1, x2, y2) { return getBezierCoordinate_(solvePositionFromXValue_(time, x1, x2), y1, y2); } /** * Compute a single coordinate at a position point between 0 and 1. * c1 and c2 are the matching coordinate on control points P1 and P2, respectively. * Control points P0 and P3 are assumed to be (0,0) and (1,1), respectively. * Adapted from https://github.com/google/closure-library/blob/master/closure/goog/math/bezier.js. * @param {number} t * @param {number} c1 * @param {number} c2 * @return {number} */ function getBezierCoordinate_(t, c1, c2) { // Special case start and end. if (t === 0 || t === 1) { return t; } // Step one - from 4 points to 3 var ic0 = t * c1; var ic1 = c1 + t * (c2 - c1); var ic2 = c2 + t * (1 - c2); // Step two - from 3 points to 2 ic0 += t * (ic1 - ic0); ic1 += t * (ic2 - ic1); // Final step - last point return ic0 + t * (ic1 - ic0); } /** * Project a point onto the Bezier curve, from a given X. Calculates the position t along the curve. * Adapted from https://github.com/google/closure-library/blob/master/closure/goog/math/bezier.js. * @param {number} xVal * @param {number} x1 * @param {number} x2 * @return {number} */ function solvePositionFromXValue_(xVal, x1, x2) { var EPSILON = 1e-6; var MAX_ITERATIONS = 8; if (xVal <= 0) { return 0; } else if (xVal >= 1) { return 1; } // Initial estimate of t using linear interpolation. var t = xVal; // Try gradient descent to solve for t. If it works, it is very fast. var tMin = 0; var tMax = 1; var value = 0; for (var i = 0; i < MAX_ITERATIONS; i++) { value = getBezierCoordinate_(t, x1, x2); var derivative = (getBezierCoordinate_(t + EPSILON, x1, x2) - value) / EPSILON; if (Math.abs(value - xVal) < EPSILON) { return t; } else if (Math.abs(derivative) < EPSILON) { break; } else { if (value < xVal) { tMin = t; } else { tMax = t; } t -= (value - xVal) / derivative; } } // If the gradient descent got stuck in a local minimum, e.g. because // the derivative was close to 0, use a Dichotomy refinement instead. // We limit the number of interations to 8. for (var _i = 0; Math.abs(value - xVal) > EPSILON && _i < MAX_ITERATIONS; _i++) { if (value < xVal) { tMin = t; t = (t + tMax) / 2; } else { tMax = t; t = (t + tMin) / 2; } value = getBezierCoordinate_(t, x1, x2); } return t; } /***/ }), /* 101 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MDCMenuFoundation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnchorMargin; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(102); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(32); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @typedef {{ * top: number, * right: number, * bottom: number, * left: number * }} */ var AnchorMargin = void 0; /* eslint-disable no-unused-vars */ /** * @typedef {{ * viewport: { width: number, height: number }, * viewportDistance: {top: number, right: number, bottom: number, left: number}, * anchorHeight: number, * anchorWidth: number, * menuHeight: number, * menuWidth: number, * }} */ var AutoLayoutMeasurements = void 0; /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} */ var MDCMenuFoundation = function (_MDCFoundation) { _inherits(MDCMenuFoundation, _MDCFoundation); _createClass(MDCMenuFoundation, null, [{ key: 'cssClasses', /** @return enum{cssClasses} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */]; } /** @return enum{strings} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */]; } /** @return enum{numbers} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */]; } /** @return enum{number} */ }, { key: 'Corner', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */]; } /** * {@see MDCMenuAdapter} for typing information on parameters and return * types. * @return {!MDCMenuAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCMenuAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() { return false; }, hasNecessaryDom: function hasNecessaryDom() { return false; }, getAttributeForEventTarget: function getAttributeForEventTarget() {}, getInnerDimensions: function getInnerDimensions() { return {}; }, hasAnchor: function hasAnchor() { return false; }, getAnchorDimensions: function getAnchorDimensions() { return {}; }, getWindowDimensions: function getWindowDimensions() { return {}; }, getNumberOfItems: function getNumberOfItems() { return 0; }, registerInteractionHandler: function registerInteractionHandler() {}, deregisterInteractionHandler: function deregisterInteractionHandler() {}, registerBodyClickHandler: function registerBodyClickHandler() {}, deregisterBodyClickHandler: function deregisterBodyClickHandler() {}, getIndexForEventTarget: function getIndexForEventTarget() { return 0; }, notifySelected: function notifySelected() {}, notifyCancel: function notifyCancel() {}, saveFocus: function saveFocus() {}, restoreFocus: function restoreFocus() {}, isFocused: function isFocused() { return false; }, focus: function focus() {}, getFocusedItemIndex: function getFocusedItemIndex() { return -1; }, focusItemAtIndex: function focusItemAtIndex() {}, isRtl: function isRtl() { return false; }, setTransformOrigin: function setTransformOrigin() {}, setPosition: function setPosition() {}, setMaxHeight: function setMaxHeight() {}, setAttrForOptionAtIndex: function setAttrForOptionAtIndex() {}, rmAttrForOptionAtIndex: function rmAttrForOptionAtIndex() {}, addClassForOptionAtIndex: function addClassForOptionAtIndex() {}, rmClassForOptionAtIndex: function rmClassForOptionAtIndex() {} } ); } /** @param {!MDCMenuAdapter} adapter */ }]); function MDCMenuFoundation(adapter) { _classCallCheck(this, MDCMenuFoundation); /** @private {function(!Event)} */ var _this = _possibleConstructorReturn(this, (MDCMenuFoundation.__proto__ || Object.getPrototypeOf(MDCMenuFoundation)).call(this, _extends(MDCMenuFoundation.defaultAdapter, adapter))); _this.clickHandler_ = function (evt) { return _this.handlePossibleSelected_(evt); }; /** @private {function(!Event)} */ _this.keydownHandler_ = function (evt) { return _this.handleKeyboardDown_(evt); }; /** @private {function(!Event)} */ _this.keyupHandler_ = function (evt) { return _this.handleKeyboardUp_(evt); }; /** @private {function(!Event)} */ _this.documentClickHandler_ = function (evt) { return _this.handleDocumentClick_(evt); }; /** @private {boolean} */ _this.isOpen_ = false; /** @private {number} */ _this.openAnimationEndTimerId_ = 0; /** @private {number} */ _this.closeAnimationEndTimerId_ = 0; /** @private {number} */ _this.selectedTriggerTimerId_ = 0; /** @private {number} */ _this.animationRequestId_ = 0; /** @private {!{ width: number, height: number }} */ _this.dimensions_; /** @private {number} */ _this.itemHeight_; /** @private {Corner} */ _this.anchorCorner_ = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_START; /** @private {AnchorMargin} */ _this.anchorMargin_ = { top: 0, right: 0, bottom: 0, left: 0 }; /** @private {?AutoLayoutMeasurements} */ _this.measures_ = null; /** @private {number} */ _this.selectedIndex_ = -1; /** @private {boolean} */ _this.rememberSelection_ = false; /** @private {boolean} */ _this.quickOpen_ = false; // A keyup event on the menu needs to have a corresponding keydown // event on the menu. If the user opens the menu with a keydown event on a // button, the menu will only get the key up event causing buggy behavior with selected elements. /** @private {boolean} */ _this.keyDownWithinMenu_ = false; return _this; } _createClass(MDCMenuFoundation, [{ key: 'init', value: function init() { var _MDCMenuFoundation$cs = MDCMenuFoundation.cssClasses, ROOT = _MDCMenuFoundation$cs.ROOT, OPEN = _MDCMenuFoundation$cs.OPEN; if (!this.adapter_.hasClass(ROOT)) { throw new Error(ROOT + ' class required in root element.'); } if (!this.adapter_.hasNecessaryDom()) { throw new Error('Required DOM nodes missing in ' + ROOT + ' component.'); } if (this.adapter_.hasClass(OPEN)) { this.isOpen_ = true; } this.adapter_.registerInteractionHandler('click', this.clickHandler_); this.adapter_.registerInteractionHandler('keyup', this.keyupHandler_); this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_); } }, { key: 'destroy', value: function destroy() { clearTimeout(this.selectedTriggerTimerId_); clearTimeout(this.openAnimationEndTimerId_); clearTimeout(this.closeAnimationEndTimerId_); // Cancel any currently running animations. cancelAnimationFrame(this.animationRequestId_); this.adapter_.deregisterInteractionHandler('click', this.clickHandler_); this.adapter_.deregisterInteractionHandler('keyup', this.keyupHandler_); this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_); this.adapter_.deregisterBodyClickHandler(this.documentClickHandler_); } /** * @param {!Corner} corner Default anchor corner alignment of top-left menu corner. */ }, { key: 'setAnchorCorner', value: function setAnchorCorner(corner) { this.anchorCorner_ = corner; } /** * @param {!AnchorMargin} margin 4-plet of margins from anchor. */ }, { key: 'setAnchorMargin', value: function setAnchorMargin(margin) { this.anchorMargin_.top = typeof margin.top === 'number' ? margin.top : 0; this.anchorMargin_.right = typeof margin.right === 'number' ? margin.right : 0; this.anchorMargin_.bottom = typeof margin.bottom === 'number' ? margin.bottom : 0; this.anchorMargin_.left = typeof margin.left === 'number' ? margin.left : 0; } /** @param {boolean} rememberSelection */ }, { key: 'setRememberSelection', value: function setRememberSelection(rememberSelection) { this.rememberSelection_ = rememberSelection; this.setSelectedIndex(-1); } /** @param {boolean} quickOpen */ }, { key: 'setQuickOpen', value: function setQuickOpen(quickOpen) { this.quickOpen_ = quickOpen; } /** * @param {?number} focusIndex * @private */ }, { key: 'focusOnOpen_', value: function focusOnOpen_(focusIndex) { if (focusIndex === null) { // If this instance of MDCMenu remembers selections, and the user has // made a selection, then focus the last selected item if (this.rememberSelection_ && this.selectedIndex_ >= 0) { this.adapter_.focusItemAtIndex(this.selectedIndex_); return; } this.adapter_.focus(); // If that doesn't work, focus first item instead. if (!this.adapter_.isFocused()) { this.adapter_.focusItemAtIndex(0); } } else { this.adapter_.focusItemAtIndex(focusIndex); } } /** * Handle clicks and cancel the menu if not a child list-item * @param {!Event} evt * @private */ }, { key: 'handleDocumentClick_', value: function handleDocumentClick_(evt) { var el = evt.target; while (el && el !== document.documentElement) { if (this.adapter_.getIndexForEventTarget(el) !== -1) { return; } el = el.parentNode; } this.adapter_.notifyCancel(); this.close(evt); } }, { key: 'handleKeyboardDown_', /** * Handle keys that we want to repeat on hold (tab and arrows). * @param {!Event} evt * @return {boolean} * @private */ value: function handleKeyboardDown_(evt) { // Do nothing if Alt, Ctrl or Meta are pressed. if (evt.altKey || evt.ctrlKey || evt.metaKey) { return true; } var keyCode = evt.keyCode, key = evt.key, shiftKey = evt.shiftKey; var isTab = key === 'Tab' || keyCode === 9; var isArrowUp = key === 'ArrowUp' || keyCode === 38; var isArrowDown = key === 'ArrowDown' || keyCode === 40; var isSpace = key === 'Space' || keyCode === 32; var isEnter = key === 'Enter' || keyCode === 13; // The menu needs to know if the keydown event was triggered on the menu this.keyDownWithinMenu_ = isEnter || isSpace; var focusedItemIndex = this.adapter_.getFocusedItemIndex(); var lastItemIndex = this.adapter_.getNumberOfItems() - 1; if (shiftKey && isTab && focusedItemIndex === 0) { this.adapter_.focusItemAtIndex(lastItemIndex); evt.preventDefault(); return false; } if (!shiftKey && isTab && focusedItemIndex === lastItemIndex) { this.adapter_.focusItemAtIndex(0); evt.preventDefault(); return false; } // Ensure Arrow{Up,Down} and space do not cause inadvertent scrolling if (isArrowUp || isArrowDown || isSpace) { evt.preventDefault(); } if (isArrowUp) { if (focusedItemIndex === 0 || this.adapter_.isFocused()) { this.adapter_.focusItemAtIndex(lastItemIndex); } else { this.adapter_.focusItemAtIndex(focusedItemIndex - 1); } } else if (isArrowDown) { if (focusedItemIndex === lastItemIndex || this.adapter_.isFocused()) { this.adapter_.focusItemAtIndex(0); } else { this.adapter_.focusItemAtIndex(focusedItemIndex + 1); } } return true; } /** * Handle keys that we don't want to repeat on hold (Enter, Space, Escape). * @param {!Event} evt * @return {boolean} * @private */ }, { key: 'handleKeyboardUp_', value: function handleKeyboardUp_(evt) { // Do nothing if Alt, Ctrl or Meta are pressed. if (evt.altKey || evt.ctrlKey || evt.metaKey) { return true; } var keyCode = evt.keyCode, key = evt.key; var isEnter = key === 'Enter' || keyCode === 13; var isSpace = key === 'Space' || keyCode === 32; var isEscape = key === 'Escape' || keyCode === 27; if (isEnter || isSpace) { // If the keydown event didn't occur on the menu, then it should // disregard the possible selected event. if (this.keyDownWithinMenu_) { this.handlePossibleSelected_(evt); } this.keyDownWithinMenu_ = false; } if (isEscape) { this.adapter_.notifyCancel(); this.close(); } return true; } /** * @param {!Event} evt * @private */ }, { key: 'handlePossibleSelected_', value: function handlePossibleSelected_(evt) { var _this2 = this; if (this.adapter_.getAttributeForEventTarget(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */].ARIA_DISABLED_ATTR) === 'true') { return; } var targetIndex = this.adapter_.getIndexForEventTarget(evt.target); if (targetIndex < 0) { return; } // Debounce multiple selections if (this.selectedTriggerTimerId_) { return; } this.selectedTriggerTimerId_ = setTimeout(function () { _this2.selectedTriggerTimerId_ = 0; _this2.close(); if (_this2.rememberSelection_) { _this2.setSelectedIndex(targetIndex); } _this2.adapter_.notifySelected({ index: targetIndex }); }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].SELECTED_TRIGGER_DELAY); } /** * @return {AutoLayoutMeasurements} Measurements used to position menu popup. */ }, { key: 'getAutoLayoutMeasurements_', value: function getAutoLayoutMeasurements_() { var anchorRect = this.adapter_.getAnchorDimensions(); var viewport = this.adapter_.getWindowDimensions(); return { viewport: viewport, viewportDistance: { top: anchorRect.top, right: viewport.width - anchorRect.right, left: anchorRect.left, bottom: viewport.height - anchorRect.bottom }, anchorHeight: anchorRect.height, anchorWidth: anchorRect.width, menuHeight: this.dimensions_.height, menuWidth: this.dimensions_.width }; } /** * Computes the corner of the anchor from which to animate and position the menu. * @return {Corner} * @private */ }, { key: 'getOriginCorner_', value: function getOriginCorner_() { // Defaults: open from the top left. var corner = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_LEFT; var _measures_ = this.measures_, viewportDistance = _measures_.viewportDistance, anchorHeight = _measures_.anchorHeight, anchorWidth = _measures_.anchorWidth, menuHeight = _measures_.menuHeight, menuWidth = _measures_.menuWidth; var isBottomAligned = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var availableTop = isBottomAligned ? viewportDistance.top + anchorHeight + this.anchorMargin_.bottom : viewportDistance.top + this.anchorMargin_.top; var availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom : viewportDistance.bottom + anchorHeight - this.anchorMargin_.top; var topOverflow = menuHeight - availableTop; var bottomOverflow = menuHeight - availableBottom; if (bottomOverflow > 0 && topOverflow < bottomOverflow) { corner |= __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM; } var isRtl = this.adapter_.isRtl(); var isFlipRtl = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].FLIP_RTL); var avoidHorizontalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); var isAlignedRight = avoidHorizontalOverlap && !isRtl || !avoidHorizontalOverlap && isFlipRtl && isRtl; var availableLeft = isAlignedRight ? viewportDistance.left + anchorWidth + this.anchorMargin_.right : viewportDistance.left + this.anchorMargin_.left; var availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right : viewportDistance.right + anchorWidth - this.anchorMargin_.left; var leftOverflow = menuWidth - availableLeft; var rightOverflow = menuWidth - availableRight; if (leftOverflow < 0 && isAlignedRight && isRtl || avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0 || rightOverflow > 0 && leftOverflow < rightOverflow) { corner |= __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT; } return corner; } /** * @param {Corner} corner Origin corner of the menu. * @return {number} Horizontal offset of menu origin corner from corresponding anchor corner. * @private */ }, { key: 'getHorizontalOriginOffset_', value: function getHorizontalOriginOffset_(corner) { var anchorWidth = this.measures_.anchorWidth; var isRightAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); var avoidHorizontalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); var x = 0; if (isRightAligned) { var rightOffset = avoidHorizontalOverlap ? anchorWidth - this.anchorMargin_.left : this.anchorMargin_.right; x = rightOffset; } else { var leftOffset = avoidHorizontalOverlap ? anchorWidth - this.anchorMargin_.right : this.anchorMargin_.left; x = leftOffset; } return x; } /** * @param {Corner} corner Origin corner of the menu. * @return {number} Vertical offset of menu origin corner from corresponding anchor corner. * @private */ }, { key: 'getVerticalOriginOffset_', value: function getVerticalOriginOffset_(corner) { var _measures_2 = this.measures_, viewport = _measures_2.viewport, viewportDistance = _measures_2.viewportDistance, anchorHeight = _measures_2.anchorHeight, menuHeight = _measures_2.menuHeight; var isBottomAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var MARGIN_TO_EDGE = MDCMenuFoundation.numbers.MARGIN_TO_EDGE; var avoidVerticalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var canOverlapVertically = !avoidVerticalOverlap; var y = 0; if (isBottomAligned) { y = avoidVerticalOverlap ? anchorHeight - this.anchorMargin_.top : -this.anchorMargin_.bottom; // adjust for when menu can overlap anchor, but too tall to be aligned to bottom // anchor corner. Bottom margin is ignored in such cases. if (canOverlapVertically && menuHeight > viewportDistance.top + anchorHeight) { y = -(Math.min(menuHeight, viewport.height - MARGIN_TO_EDGE) - (viewportDistance.top + anchorHeight)); } } else { y = avoidVerticalOverlap ? anchorHeight + this.anchorMargin_.bottom : this.anchorMargin_.top; // adjust for when menu can overlap anchor, but too tall to be aligned to top // anchor corners. Top margin is ignored in that case. if (canOverlapVertically && menuHeight > viewportDistance.bottom + anchorHeight) { y = -(Math.min(menuHeight, viewport.height - MARGIN_TO_EDGE) - (viewportDistance.bottom + anchorHeight)); } } return y; } /** * @param {Corner} corner Origin corner of the menu. * @return {number} Maximum height of the menu, based on available space. 0 indicates should not be set. * @private */ }, { key: 'getMenuMaxHeight_', value: function getMenuMaxHeight_(corner) { var maxHeight = 0; var viewportDistance = this.measures_.viewportDistance; var isBottomAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); // When maximum height is not specified, it is handled from css. if (this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM) { if (isBottomAligned) { maxHeight = viewportDistance.top + this.anchorMargin_.top; } else { maxHeight = viewportDistance.bottom - this.anchorMargin_.bottom; } } return maxHeight; } /** @private */ }, { key: 'autoPosition_', value: function autoPosition_() { var _position; if (!this.adapter_.hasAnchor()) { return; } // Compute measurements for autoposition methods reuse. this.measures_ = this.getAutoLayoutMeasurements_(); var corner = this.getOriginCorner_(); var maxMenuHeight = this.getMenuMaxHeight_(corner); var verticalAlignment = corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM ? 'bottom' : 'top'; var horizontalAlignment = corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT ? 'right' : 'left'; var horizontalOffset = this.getHorizontalOriginOffset_(corner); var verticalOffset = this.getVerticalOriginOffset_(corner); var position = (_position = {}, _defineProperty(_position, horizontalAlignment, horizontalOffset ? horizontalOffset + 'px' : '0'), _defineProperty(_position, verticalAlignment, verticalOffset ? verticalOffset + 'px' : '0'), _position); var _measures_3 = this.measures_, anchorWidth = _measures_3.anchorWidth, menuHeight = _measures_3.menuHeight, menuWidth = _measures_3.menuWidth; // Center align when anchor width is comparable or greater than menu, otherwise keep corner. if (anchorWidth / menuWidth > __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].ANCHOR_TO_MENU_WIDTH_RATIO) { horizontalAlignment = 'center'; } // Adjust vertical origin when menu is positioned with significant offset from anchor. This is done so that // scale animation is "anchored" on the anchor. if (!(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM) && Math.abs(verticalOffset / menuHeight) > __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].OFFSET_TO_MENU_HEIGHT_RATIO) { var verticalOffsetPercent = Math.abs(verticalOffset / menuHeight) * 100; var originPercent = corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM ? 100 - verticalOffsetPercent : verticalOffsetPercent; verticalAlignment = Math.round(originPercent * 100) / 100 + '%'; } this.adapter_.setTransformOrigin(horizontalAlignment + ' ' + verticalAlignment); this.adapter_.setPosition(position); this.adapter_.setMaxHeight(maxMenuHeight ? maxMenuHeight + 'px' : ''); // Clear measures after positioning is complete. this.measures_ = null; } /** * Open the menu. * @param {{focusIndex: ?number}=} options */ }, { key: 'open', value: function open() { var _this3 = this; var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$focusIndex = _ref.focusIndex, focusIndex = _ref$focusIndex === undefined ? null : _ref$focusIndex; this.adapter_.saveFocus(); if (!this.quickOpen_) { this.adapter_.addClass(MDCMenuFoundation.cssClasses.ANIMATING_OPEN); } this.animationRequestId_ = requestAnimationFrame(function () { _this3.dimensions_ = _this3.adapter_.getInnerDimensions(); _this3.autoPosition_(); _this3.adapter_.addClass(MDCMenuFoundation.cssClasses.OPEN); _this3.focusOnOpen_(focusIndex); _this3.adapter_.registerBodyClickHandler(_this3.documentClickHandler_); if (!_this3.quickOpen_) { _this3.openAnimationEndTimerId_ = setTimeout(function () { _this3.openAnimationEndTimerId_ = 0; _this3.adapter_.removeClass(MDCMenuFoundation.cssClasses.ANIMATING_OPEN); }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_OPEN_DURATION); } }); this.isOpen_ = true; } /** * Closes the menu. * @param {Event=} evt */ }, { key: 'close', value: function close() { var _this4 = this; var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var targetIsDisabled = evt ? this.adapter_.getAttributeForEventTarget(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */].ARIA_DISABLED_ATTR) === 'true' : false; if (targetIsDisabled) { return; } this.adapter_.deregisterBodyClickHandler(this.documentClickHandler_); if (!this.quickOpen_) { this.adapter_.addClass(MDCMenuFoundation.cssClasses.ANIMATING_CLOSED); } requestAnimationFrame(function () { _this4.adapter_.removeClass(MDCMenuFoundation.cssClasses.OPEN); if (!_this4.quickOpen_) { _this4.closeAnimationEndTimerId_ = setTimeout(function () { _this4.closeAnimationEndTimerId_ = 0; _this4.adapter_.removeClass(MDCMenuFoundation.cssClasses.ANIMATING_CLOSED); }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_CLOSE_DURATION); } }); this.isOpen_ = false; this.adapter_.restoreFocus(); } /** @return {boolean} */ }, { key: 'isOpen', value: function isOpen() { return this.isOpen_; } /** @return {number} */ }, { key: 'getSelectedIndex', value: function getSelectedIndex() { return this.selectedIndex_; } /** * @param {number} index Index of the item to set as selected. */ }, { key: 'setSelectedIndex', value: function setSelectedIndex(index) { if (index === this.selectedIndex_) { return; } var prevSelectedIndex = this.selectedIndex_; if (prevSelectedIndex >= 0) { this.adapter_.rmAttrForOptionAtIndex(prevSelectedIndex, 'aria-selected'); this.adapter_.rmClassForOptionAtIndex(prevSelectedIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */].SELECTED_LIST_ITEM); } this.selectedIndex_ = index >= 0 && index < this.adapter_.getNumberOfItems() ? index : -1; if (this.selectedIndex_ >= 0) { this.adapter_.setAttrForOptionAtIndex(this.selectedIndex_, 'aria-selected', 'true'); this.adapter_.addClassForOptionAtIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */].SELECTED_LIST_ITEM); } } }]); return MDCMenuFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /***/ }), /* 102 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export MDCMenuAdapter */ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Menu. Provides an interface for managing * - classes * - dom * - focus * - position * - dimensions * - event handlers * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCMenuAdapter = function () { function MDCMenuAdapter() { _classCallCheck(this, MDCMenuAdapter); } _createClass(MDCMenuAdapter, [{ key: "addClass", /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** * @param {string} className * @return {boolean} */ }, { key: "hasClass", value: function hasClass(className) {} /** @return {boolean} */ }, { key: "hasNecessaryDom", value: function hasNecessaryDom() {} /** * @param {EventTarget} target * @param {string} attributeName * @return {string} */ }, { key: "getAttributeForEventTarget", value: function getAttributeForEventTarget(target, attributeName) {} /** @return {{ width: number, height: number }} */ }, { key: "getInnerDimensions", value: function getInnerDimensions() {} /** @return {boolean} */ }, { key: "hasAnchor", value: function hasAnchor() {} /** @return {{width: number, height: number, top: number, right: number, bottom: number, left: number}} */ }, { key: "getAnchorDimensions", value: function getAnchorDimensions() {} /** @return {{ width: number, height: number }} */ }, { key: "getWindowDimensions", value: function getWindowDimensions() {} /** @return {number} */ }, { key: "getNumberOfItems", value: function getNumberOfItems() {} /** * @param {string} type * @param {function(!Event)} handler */ }, { key: "registerInteractionHandler", value: function registerInteractionHandler(type, handler) {} /** * @param {string} type * @param {function(!Event)} handler */ }, { key: "deregisterInteractionHandler", value: function deregisterInteractionHandler(type, handler) {} /** @param {function(!Event)} handler */ }, { key: "registerBodyClickHandler", value: function registerBodyClickHandler(handler) {} /** @param {function(!Event)} handler */ }, { key: "deregisterBodyClickHandler", value: function deregisterBodyClickHandler(handler) {} /** * @param {EventTarget} target * @return {number} */ }, { key: "getIndexForEventTarget", value: function getIndexForEventTarget(target) {} /** @param {{index: number}} evtData */ }, { key: "notifySelected", value: function notifySelected(evtData) {} }, { key: "notifyCancel", value: function notifyCancel() {} }, { key: "saveFocus", value: function saveFocus() {} }, { key: "restoreFocus", value: function restoreFocus() {} /** @return {boolean} */ }, { key: "isFocused", value: function isFocused() {} }, { key: "focus", value: function focus() {} /** @return {number} */ }, { key: "getFocusedItemIndex", value: function getFocusedItemIndex() /* number */{} /** @param {number} index */ }, { key: "focusItemAtIndex", value: function focusItemAtIndex(index) {} /** @return {boolean} */ }, { key: "isRtl", value: function isRtl() {} /** @param {string} origin */ }, { key: "setTransformOrigin", value: function setTransformOrigin(origin) {} /** @param {{ * top: (string|undefined), * right: (string|undefined), * bottom: (string|undefined), * left: (string|undefined) * }} position */ }, { key: "setPosition", value: function setPosition(position) {} /** @param {string} height */ }, { key: "setMaxHeight", value: function setMaxHeight(height) {} /** * @param {number} index * @param {string} attr * @param {string} value */ }, { key: "setAttrForOptionAtIndex", value: function setAttrForOptionAtIndex(index, attr, value) {} /** * @param {number} index * @param {string} attr */ }, { key: "rmAttrForOptionAtIndex", value: function rmAttrForOptionAtIndex(index, attr) {} /** * @param {number} index * @param {string} className */ }, { key: "addClassForOptionAtIndex", value: function addClassForOptionAtIndex(index, className) {} /** * @param {number} index * @param {string} className */ }, { key: "rmClassForOptionAtIndex", value: function rmClassForOptionAtIndex(index, className) {} }]); return MDCMenuAdapter; }(); /***/ }), /* 103 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(33); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(34); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCFoundation} * @final */ var MDCNotchedOutlineFoundation = function (_MDCFoundation) { _inherits(MDCNotchedOutlineFoundation, _MDCFoundation); _createClass(MDCNotchedOutlineFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** * {@see MDCNotchedOutlineAdapter} for typing information on parameters and return * types. * @return {!MDCNotchedOutlineAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCNotchedOutlineAdapter} */{ getWidth: function getWidth() {}, getHeight: function getHeight() {}, addClass: function addClass() {}, removeClass: function removeClass() {}, setOutlinePathAttr: function setOutlinePathAttr() {}, getIdleOutlineStyleValue: function getIdleOutlineStyleValue() {} } ); } /** * @param {!MDCNotchedOutlineAdapter} adapter */ }]); function MDCNotchedOutlineFoundation(adapter) { _classCallCheck(this, MDCNotchedOutlineFoundation); return _possibleConstructorReturn(this, (MDCNotchedOutlineFoundation.__proto__ || Object.getPrototypeOf(MDCNotchedOutlineFoundation)).call(this, _extends(MDCNotchedOutlineFoundation.defaultAdapter, adapter))); } /** * Adds the outline notched selector and updates the notch width * calculated based off of notchWidth and isRtl. * @param {number} notchWidth * @param {boolean=} isRtl */ _createClass(MDCNotchedOutlineFoundation, [{ key: 'notch', value: function notch(notchWidth) { var isRtl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; this.adapter_.addClass(OUTLINE_NOTCHED); this.updateSvgPath_(notchWidth, isRtl); } /** * Removes notched outline selector to close the notch in the outline. */ }, { key: 'closeNotch', value: function closeNotch() { var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; this.adapter_.removeClass(OUTLINE_NOTCHED); } /** * Updates the SVG path of the focus outline element based on the notchWidth * and the RTL context. * @param {number} notchWidth * @param {boolean=} isRtl * @private */ }, { key: 'updateSvgPath_', value: function updateSvgPath_(notchWidth, isRtl) { // Fall back to reading a specific corner's style because Firefox doesn't report the style on border-radius. var radiusStyleValue = this.adapter_.getIdleOutlineStyleValue('border-radius') || this.adapter_.getIdleOutlineStyleValue('border-top-left-radius'); var radius = parseFloat(radiusStyleValue); var width = this.adapter_.getWidth(); var height = this.adapter_.getHeight(); var cornerWidth = radius + 1.2; var leadingStrokeLength = Math.abs(11 - cornerWidth); var paddedNotchWidth = notchWidth + 8; // The right, bottom, and left sides of the outline follow the same SVG path. var pathMiddle = 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + 'v' + (height - 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + radius + 'h' + (-width + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + -radius + 'v' + (-height + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius; var path = void 0; if (!isRtl) { path = 'M' + (cornerWidth + leadingStrokeLength + paddedNotchWidth) + ',' + 1 + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength) + pathMiddle + 'h' + leadingStrokeLength; } else { path = 'M' + (width - cornerWidth - leadingStrokeLength) + ',' + 1 + 'h' + leadingStrokeLength + pathMiddle + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength); } this.adapter_.setOutlinePathAttr(path); } }]); return MDCNotchedOutlineFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCNotchedOutlineFoundation); /***/ }), /* 104 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadio", function() { return MDCRadio; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(105); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__ = __webpack_require__(3); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadioFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends MDCComponent * @implements {MDCSelectionControl} */ var MDCRadio = function (_MDCComponent) { _inherits(MDCRadio, _MDCComponent); _createClass(MDCRadio, [{ key: 'checked', /** @return {boolean} */ get: function get() { return this.foundation_.isChecked(); } /** @param {boolean} checked */ , set: function set(checked) { this.foundation_.setChecked(checked); } /** @return {boolean} */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** @param {boolean} disabled */ , set: function set(disabled) { this.foundation_.setDisabled(disabled); } /** @return {?string} */ }, { key: 'value', get: function get() { return this.foundation_.getValue(); } /** @param {?string} value */ , set: function set(value) { this.foundation_.setValue(value); } /** @return {!MDCRipple} */ }, { key: 'ripple', get: function get() { return this.ripple_; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCRadio(root); } }]); function MDCRadio() { var _ref; _classCallCheck(this, MDCRadio); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCRadio.__proto__ || Object.getPrototypeOf(MDCRadio)).call.apply(_ref, [this].concat(args))); _this.ripple_ = _this.initRipple_(); return _this; } /** * @return {!MDCRipple} * @private */ _createClass(MDCRadio, [{ key: 'initRipple_', value: function initRipple_() { var _this2 = this; var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"].createAdapter(this), { isUnbounded: function isUnbounded() { return true; }, // Radio buttons technically go "active" whenever there is *any* keyboard interaction. This is not the // UI we desire. isSurfaceActive: function isSurfaceActive() { return false; }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.nativeControl_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.nativeControl_.removeEventListener(type, handler); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRippleFoundation"](adapter); return new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"](this.root_, foundation); } /** * Returns the state of the native control element, or null if the native control element is not present. * @return {?MDCSelectionControlState} * @private */ }, { key: 'destroy', value: function destroy() { this.ripple_.destroy(); _get(MDCRadio.prototype.__proto__ || Object.getPrototypeOf(MDCRadio.prototype), 'destroy', this).call(this); } /** @return {!MDCRadioFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this3.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.root_.classList.remove(className); }, getNativeControl: function getNativeControl() { return _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR); } }); } }, { key: 'nativeControl_', get: function get() { var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR; var el = /** @type {?MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR); return el; } }]); return MDCRadio; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 105 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(106); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(107); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} */ var MDCRadioFoundation = function (_MDCFoundation) { _inherits(MDCRadioFoundation, _MDCFoundation); function MDCRadioFoundation() { _classCallCheck(this, MDCRadioFoundation); return _possibleConstructorReturn(this, (MDCRadioFoundation.__proto__ || Object.getPrototypeOf(MDCRadioFoundation)).apply(this, arguments)); } _createClass(MDCRadioFoundation, [{ key: 'isChecked', /** @return {boolean} */ value: function isChecked() { return this.getNativeControl_().checked; } /** @param {boolean} checked */ }, { key: 'setChecked', value: function setChecked(checked) { this.getNativeControl_().checked = checked; } /** @return {boolean} */ }, { key: 'isDisabled', value: function isDisabled() { return this.getNativeControl_().disabled; } /** @param {boolean} disabled */ }, { key: 'setDisabled', value: function setDisabled(disabled) { var DISABLED = MDCRadioFoundation.cssClasses.DISABLED; this.getNativeControl_().disabled = disabled; if (disabled) { this.adapter_.addClass(DISABLED); } else { this.adapter_.removeClass(DISABLED); } } /** @return {?string} */ }, { key: 'getValue', value: function getValue() { return this.getNativeControl_().value; } /** @param {?string} value */ }, { key: 'setValue', value: function setValue(value) { this.getNativeControl_().value = value; } /** * @return {!MDCSelectionControlState} * @private */ }, { key: 'getNativeControl_', value: function getNativeControl_() { return this.adapter_.getNativeControl() || { checked: false, disabled: false, value: null }; } }], [{ key: 'cssClasses', /** @return enum {cssClasses} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */]; } /** @return enum {strings} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */]; } /** @return {!MDCRadioAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCRadioAdapter} */{ addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, getNativeControl: function getNativeControl() /* !MDCSelectionControlState */{} } ); } }]); return MDCRadioFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCRadioFoundation); /***/ }), /* 106 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_selection_control_index__ = __webpack_require__(4); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Radio. Provides an interface for managing * - classes * - dom * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCRadioAdapter = function () { function MDCRadioAdapter() { _classCallCheck(this, MDCRadioAdapter); } _createClass(MDCRadioAdapter, [{ key: 'addClass', /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: 'removeClass', value: function removeClass(className) {} /** @return {!MDCSelectionControlState} */ }, { key: 'getNativeControl', value: function getNativeControl() {} }]); return MDCRadioAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCRadioAdapter); /***/ }), /* 107 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control' }; /** @enum {string} */ var cssClasses = { ROOT: 'mdc-radio', DISABLED: 'mdc-radio--disabled' }; /***/ }), /* 108 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelect", function() { return MDCSelect; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_floating_label_index__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_line_ripple_index__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_notched_outline_index__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__foundation__ = __webpack_require__(109); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__constants__ = __webpack_require__(35); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectFoundation", function() { return __WEBPACK_IMPORTED_MODULE_5__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCSelect = function (_MDCComponent) { _inherits(MDCSelect, _MDCComponent); function MDCSelect() { _classCallCheck(this, MDCSelect); return _possibleConstructorReturn(this, (MDCSelect.__proto__ || Object.getPrototypeOf(MDCSelect)).apply(this, arguments)); } _createClass(MDCSelect, [{ key: 'layout', /** * Recomputes the outline SVG path for the outline element. */ value: function layout() { var openNotch = this.nativeControl_.value.length > 0; this.foundation_.notchOutline(openNotch); } }, { key: 'initialize', value: function initialize() { var labelFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) { return new __WEBPACK_IMPORTED_MODULE_1__material_floating_label_index__["MDCFloatingLabel"](el); }; var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { return new __WEBPACK_IMPORTED_MODULE_2__material_line_ripple_index__["MDCLineRipple"](el); }; var outlineFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) { return new __WEBPACK_IMPORTED_MODULE_4__material_notched_outline_index__["MDCNotchedOutline"](el); }; this.nativeControl_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_6__constants__["c" /* strings */].NATIVE_CONTROL_SELECTOR); var labelElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_6__constants__["c" /* strings */].LABEL_SELECTOR); if (labelElement) { this.label_ = labelFactory(labelElement); } var lineRippleElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_6__constants__["c" /* strings */].LINE_RIPPLE_SELECTOR); if (lineRippleElement) { this.lineRipple_ = lineRippleFactory(lineRippleElement); } var outlineElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_6__constants__["c" /* strings */].OUTLINE_SELECTOR); if (outlineElement) { this.outline_ = outlineFactory(outlineElement); } if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_6__constants__["a" /* cssClasses */].BOX)) { this.ripple = this.initRipple_(); } } }, { key: 'initRipple_', value: function initRipple_() { var _this2 = this; var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"].createAdapter(this), { registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.nativeControl_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.nativeControl_.removeEventListener(type, handler); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRippleFoundation"](adapter); return new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"](this.root_, foundation); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var _this3 = this; this.handleChange_ = function () { return _this3.foundation_.handleChange(); }; this.handleFocus_ = function () { return _this3.foundation_.handleFocus(); }; this.handleBlur_ = function () { return _this3.foundation_.handleBlur(); }; this.nativeControl_.addEventListener('change', this.handleChange_); this.nativeControl_.addEventListener('focus', this.handleFocus_); this.nativeControl_.addEventListener('blur', this.handleBlur_); // Initially sync floating label this.foundation_.handleChange(); if (this.nativeControl_.disabled) { this.disabled = true; } } }, { key: 'destroy', value: function destroy() { this.nativeControl_.removeEventListener('change', this.handleChange_); this.nativeControl_.removeEventListener('focus', this.handleFocus_); this.nativeControl_.removeEventListener('blur', this.handleBlur_); if (this.ripple) { this.ripple.destroy(); } if (this.outline_) { this.outline_.destroy(); } _get(MDCSelect.prototype.__proto__ || Object.getPrototypeOf(MDCSelect.prototype), 'destroy', this).call(this); } }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this4 = this; return new __WEBPACK_IMPORTED_MODULE_5__foundation__["a" /* default */](_extends({ addClass: function addClass(className) { return _this4.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this4.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this4.root_.classList.contains(className); }, activateBottomLine: function activateBottomLine() { if (_this4.lineRipple_) { _this4.lineRipple_.activate(); } }, deactivateBottomLine: function deactivateBottomLine() { if (_this4.lineRipple_) { _this4.lineRipple_.deactivate(); } }, isRtl: function isRtl() { return window.getComputedStyle(_this4.root_).getPropertyValue('direction') === 'rtl'; }, getValue: function getValue() { return _this4.nativeControl_.value; } }, this.getOutlineAdapterMethods_(), this.getLabelAdapterMethods_())); } /** * @return {!{ * notchOutline: function(number, boolean): undefined, * hasOutline: function(): boolean, * }} */ }, { key: 'getOutlineAdapterMethods_', value: function getOutlineAdapterMethods_() { var _this5 = this; return { notchOutline: function notchOutline(labelWidth, isRtl) { if (_this5.outline_) { _this5.outline_.notch(labelWidth, isRtl); } }, closeOutline: function closeOutline() { if (_this5.outline_) { _this5.outline_.closeNotch(); } }, hasOutline: function hasOutline() { return !!_this5.outline_; } }; } /** * @return {!{ * floatLabel: function(boolean): undefined, * hasLabel: function(): boolean, * getLabelWidth: function(): number, * }} */ }, { key: 'getLabelAdapterMethods_', value: function getLabelAdapterMethods_() { var _this6 = this; return { floatLabel: function floatLabel(shouldFloat) { if (_this6.label_) { _this6.label_.float(shouldFloat); } }, hasLabel: function hasLabel() { return !!_this6.label_; }, getLabelWidth: function getLabelWidth() { if (_this6.label_) { return _this6.label_.getWidth(); } } }; } }, { key: 'value', get: function get() { return this.nativeControl_.value; }, set: function set(value) { this.nativeControl_.value = value; this.foundation_.handleChange(); } }, { key: 'selectedIndex', get: function get() { return this.nativeControl_.selectedIndex; }, set: function set(selectedIndex) { this.nativeControl_.selectedIndex = selectedIndex; this.foundation_.handleChange(); } }, { key: 'disabled', get: function get() { return this.nativeControl_.disabled; }, set: function set(disabled) { this.nativeControl_.disabled = disabled; this.foundation_.updateDisabledStyle(disabled); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCSelect(root); } }]); return MDCSelect; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 109 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(35); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCSelectFoundation = function (_MDCFoundation) { _inherits(MDCSelectFoundation, _MDCFoundation); _createClass(MDCSelectFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, hasClass: function hasClass() { return (/* className: string */false ); }, floatLabel: function floatLabel() /* value: boolean */{}, activateBottomLine: function activateBottomLine() {}, deactivateBottomLine: function deactivateBottomLine() {}, getValue: function getValue() {}, isRtl: function isRtl() { return false; }, hasLabel: function hasLabel() {}, getLabelWidth: function getLabelWidth() {}, hasOutline: function hasOutline() {}, notchOutline: function notchOutline() {}, closeOutline: function closeOutline() {} }; } }]); function MDCSelectFoundation(adapter) { _classCallCheck(this, MDCSelectFoundation); var _this = _possibleConstructorReturn(this, (MDCSelectFoundation.__proto__ || Object.getPrototypeOf(MDCSelectFoundation)).call(this, _extends(MDCSelectFoundation.defaultAdapter, adapter))); _this.focusHandler_ = function (evt) { return _this.handleFocus_(evt); }; _this.blurHandler_ = function (evt) { return _this.handleBlur_(evt); }; return _this; } _createClass(MDCSelectFoundation, [{ key: 'updateDisabledStyle', value: function updateDisabledStyle(disabled) { var DISABLED = MDCSelectFoundation.cssClasses.DISABLED; if (disabled) { this.adapter_.addClass(DISABLED); } else { this.adapter_.removeClass(DISABLED); } } }, { key: 'handleChange', value: function handleChange() { var optionHasValue = this.adapter_.getValue().length > 0; this.adapter_.floatLabel(optionHasValue); this.notchOutline(optionHasValue); } }, { key: 'handleFocus', value: function handleFocus() { this.adapter_.floatLabel(true); this.notchOutline(true); this.adapter_.activateBottomLine(); } }, { key: 'handleBlur', value: function handleBlur() { this.handleChange(); this.adapter_.deactivateBottomLine(); } /** * Opens/closes the notched outline. * @param {boolean} openNotch */ }, { key: 'notchOutline', value: function notchOutline(openNotch) { if (!this.adapter_.hasOutline() || !this.adapter_.hasLabel()) { return; } if (openNotch) { var labelScale = __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].LABEL_SCALE; var labelWidth = this.adapter_.getLabelWidth() * labelScale; var isRtl = this.adapter_.isRtl(); this.adapter_.notchOutline(labelWidth, isRtl); } else { this.adapter_.closeOutline(); } } }]); return MDCSelectFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /* harmony default export */ __webpack_exports__["a"] = (MDCSelectFoundation); /***/ }), /* 110 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSlider", function() { return MDCSlider; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(36); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(37); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(111); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSliderFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends MDCComponent */ var MDCSlider = function (_MDCComponent) { _inherits(MDCSlider, _MDCComponent); _createClass(MDCSlider, null, [{ key: 'attachTo', value: function attachTo(root) { return new MDCSlider(root); } }]); function MDCSlider() { var _ref; _classCallCheck(this, MDCSlider); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @type {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCSlider.__proto__ || Object.getPrototypeOf(MDCSlider)).call.apply(_ref, [this].concat(args))); _this.thumbContainer_; /** @type {?Element} */ _this.track_; /** @type {?Element} */ _this.pinValueMarker_; /** @type {?Element} */ _this.trackMarkerContainer_; return _this; } /** @return {number} */ _createClass(MDCSlider, [{ key: 'initialize', value: function initialize() { this.thumbContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].THUMB_CONTAINER_SELECTOR); this.track_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_SELECTOR); this.pinValueMarker_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].PIN_VALUE_MARKER_SELECTOR); this.trackMarkerContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_MARKER_CONTAINER_SELECTOR); } /** * @return {!MDCSliderFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]( /** @type {!MDCSliderAdapter} */{ hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, getAttribute: function getAttribute(name) { return _this2.root_.getAttribute(name); }, setAttribute: function setAttribute(name, value) { return _this2.root_.setAttribute(name, value); }, removeAttribute: function removeAttribute(name) { return _this2.root_.removeAttribute(name); }, computeBoundingRect: function computeBoundingRect() { return _this2.root_.getBoundingClientRect(); }, getTabIndex: function getTabIndex() { return _this2.root_.tabIndex; }, registerInteractionHandler: function registerInteractionHandler(type, handler) { _this2.root_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { _this2.root_.removeEventListener(type, handler); }, registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler(type, handler) { _this2.thumbContainer_.addEventListener(type, handler); }, deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler(type, handler) { _this2.thumbContainer_.removeEventListener(type, handler); }, registerBodyInteractionHandler: function registerBodyInteractionHandler(type, handler) { document.body.addEventListener(type, handler); }, deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler(type, handler) { document.body.removeEventListener(type, handler); }, registerResizeHandler: function registerResizeHandler(handler) { window.addEventListener('resize', handler); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { window.removeEventListener('resize', handler); }, notifyInput: function notifyInput() { _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].INPUT_EVENT, _this2); }, notifyChange: function notifyChange() { _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].CHANGE_EVENT, _this2); }, setThumbContainerStyleProperty: function setThumbContainerStyleProperty(propertyName, value) { _this2.thumbContainer_.style.setProperty(propertyName, value); }, setTrackStyleProperty: function setTrackStyleProperty(propertyName, value) { _this2.track_.style.setProperty(propertyName, value); }, setMarkerValue: function setMarkerValue(value) { _this2.pinValueMarker_.innerText = value; }, appendTrackMarkers: function appendTrackMarkers(numMarkers) { var frag = document.createDocumentFragment(); for (var i = 0; i < numMarkers; i++) { var marker = document.createElement('div'); marker.classList.add('mdc-slider__track-marker'); frag.appendChild(marker); } _this2.trackMarkerContainer_.appendChild(frag); }, removeTrackMarkers: function removeTrackMarkers() { while (_this2.trackMarkerContainer_.firstChild) { _this2.trackMarkerContainer_.removeChild(_this2.trackMarkerContainer_.firstChild); } }, setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty(propertyName, value) { // We remove and append new nodes, thus, the last track marker must be dynamically found. var lastTrackMarker = _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].LAST_TRACK_MARKER_SELECTOR); lastTrackMarker.style.setProperty(propertyName, value); }, isRTL: function isRTL() { return getComputedStyle(_this2.root_).direction === 'rtl'; } }); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var origValueNow = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUENOW)); this.min = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMIN)) || this.min; this.max = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMAX)) || this.max; this.step = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].STEP_DATA_ATTR)) || this.step; this.value = origValueNow || this.value; this.disabled = this.root_.hasAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_DISABLED) && this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_DISABLED) !== 'false'; this.foundation_.setupTrackMarker(); } }, { key: 'layout', value: function layout() { this.foundation_.layout(); } /** @param {number=} amount */ }, { key: 'stepUp', value: function stepUp() { var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1; this.value += amount; } /** @param {number=} amount */ }, { key: 'stepDown', value: function stepDown() { var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1; this.value -= amount; } }, { key: 'value', get: function get() { return this.foundation_.getValue(); } /** @param {number} value */ , set: function set(value) { this.foundation_.setValue(value); } /** @return {number} */ }, { key: 'min', get: function get() { return this.foundation_.getMin(); } /** @param {number} min */ , set: function set(min) { this.foundation_.setMin(min); } /** @return {number} */ }, { key: 'max', get: function get() { return this.foundation_.getMax(); } /** @param {number} max */ , set: function set(max) { this.foundation_.setMax(max); } /** @return {number} */ }, { key: 'step', get: function get() { return this.foundation_.getStep(); } /** @param {number} step */ , set: function set(step) { this.foundation_.setStep(step); } /** @return {boolean} */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** @param {boolean} disabled */ , set: function set(disabled) { this.foundation_.setDisabled(disabled); } }]); return MDCSlider; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 111 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(36); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(37); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_animation_index__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_base_foundation__ = __webpack_require__(0); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); *you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var KEY_IDS = { ARROW_LEFT: 'ArrowLeft', ARROW_RIGHT: 'ArrowRight', ARROW_UP: 'ArrowUp', ARROW_DOWN: 'ArrowDown', HOME: 'Home', END: 'End', PAGE_UP: 'PageUp', PAGE_DOWN: 'PageDown' }; /** @enum {string} */ var MOVE_EVENT_MAP = { 'mousedown': 'mousemove', 'touchstart': 'touchmove', 'pointerdown': 'pointermove' }; var DOWN_EVENTS = ['mousedown', 'pointerdown', 'touchstart']; var UP_EVENTS = ['mouseup', 'pointerup', 'touchend']; /** * @extends {MDCFoundation} */ var MDCSliderFoundation = function (_MDCFoundation) { _inherits(MDCSliderFoundation, _MDCFoundation); _createClass(MDCSliderFoundation, null, [{ key: 'cssClasses', /** @return enum {cssClasses} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */]; } /** @return enum {strings} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */]; } /** @return enum {numbers} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */]; } /** @return {!MDCSliderAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCSliderAdapter} */{ hasClass: function hasClass() { return (/* className: string */ /* boolean */false ); }, addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, getAttribute: function getAttribute() { return (/* name: string */ /* string|null */null ); }, setAttribute: function setAttribute() /* name: string, value: string */{}, removeAttribute: function removeAttribute() /* name: string */{}, computeBoundingRect: function computeBoundingRect() { return (/* ClientRect */{ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 } ); }, getTabIndex: function getTabIndex() { return (/* number */0 ); }, registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{}, deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{}, registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler() /* type: string, handler: EventListener */{}, deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler() /* type: string, handler: EventListener */{}, registerBodyInteractionHandler: function registerBodyInteractionHandler() /* type: string, handler: EventListener */{}, deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler() /* type: string, handler: EventListener */{}, registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{}, deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}, notifyInput: function notifyInput() {}, notifyChange: function notifyChange() {}, setThumbContainerStyleProperty: function setThumbContainerStyleProperty() /* propertyName: string, value: string */{}, setTrackStyleProperty: function setTrackStyleProperty() /* propertyName: string, value: string */{}, setMarkerValue: function setMarkerValue() /* value: number */{}, appendTrackMarkers: function appendTrackMarkers() /* numMarkers: number */{}, removeTrackMarkers: function removeTrackMarkers() {}, setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty() /* propertyName: string, value: string */{}, isRTL: function isRTL() { return (/* boolean */false ); } } ); } /** * Creates a new instance of MDCSliderFoundation * @param {?MDCSliderAdapter} adapter */ }]); function MDCSliderFoundation(adapter) { _classCallCheck(this, MDCSliderFoundation); /** @private {?ClientRect} */ var _this = _possibleConstructorReturn(this, (MDCSliderFoundation.__proto__ || Object.getPrototypeOf(MDCSliderFoundation)).call(this, _extends(MDCSliderFoundation.defaultAdapter, adapter))); _this.rect_ = null; // We set this to NaN since we want it to be a number, but we can't use '0' or '-1' // because those could be valid tabindices set by the client code. _this.savedTabIndex_ = NaN; _this.active_ = false; _this.inTransit_ = false; _this.isDiscrete_ = false; _this.hasTrackMarker_ = false; _this.handlingThumbTargetEvt_ = false; _this.min_ = 0; _this.max_ = 100; _this.step_ = 0; _this.value_ = 0; _this.disabled_ = false; _this.preventFocusState_ = false; _this.updateUIFrame_ = 0; _this.thumbContainerPointerHandler_ = function () { _this.handlingThumbTargetEvt_ = true; }; _this.interactionStartHandler_ = function (evt) { return _this.handleDown_(evt); }; _this.keydownHandler_ = function (evt) { return _this.handleKeydown_(evt); }; _this.focusHandler_ = function () { return _this.handleFocus_(); }; _this.blurHandler_ = function () { return _this.handleBlur_(); }; _this.resizeHandler_ = function () { return _this.layout(); }; return _this; } _createClass(MDCSliderFoundation, [{ key: 'init', value: function init() { var _this2 = this; this.isDiscrete_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IS_DISCRETE); this.hasTrackMarker_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].HAS_TRACK_MARKER); DOWN_EVENTS.forEach(function (evtName) { return _this2.adapter_.registerInteractionHandler(evtName, _this2.interactionStartHandler_); }); this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_); this.adapter_.registerInteractionHandler('focus', this.focusHandler_); this.adapter_.registerInteractionHandler('blur', this.blurHandler_); DOWN_EVENTS.forEach(function (evtName) { _this2.adapter_.registerThumbContainerInteractionHandler(evtName, _this2.thumbContainerPointerHandler_); }); this.adapter_.registerResizeHandler(this.resizeHandler_); this.layout(); // At last step, provide a reasonable default value to discrete slider if (this.isDiscrete_ && this.getStep() == 0) { this.step_ = 1; } } }, { key: 'destroy', value: function destroy() { var _this3 = this; DOWN_EVENTS.forEach(function (evtName) { _this3.adapter_.deregisterInteractionHandler(evtName, _this3.interactionStartHandler_); }); this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_); this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); DOWN_EVENTS.forEach(function (evtName) { _this3.adapter_.deregisterThumbContainerInteractionHandler(evtName, _this3.thumbContainerPointerHandler_); }); this.adapter_.deregisterResizeHandler(this.resizeHandler_); } }, { key: 'setupTrackMarker', value: function setupTrackMarker() { if (this.isDiscrete_ && this.hasTrackMarker_ && this.getStep() != 0) { var min = this.getMin(); var max = this.getMax(); var step = this.getStep(); var numMarkers = (max - min) / step; // In case distance between max & min is indivisible to step, // we place the secondary to last marker proportionally at where thumb // could reach and place the last marker at max value var indivisible = Math.ceil(numMarkers) !== numMarkers; if (indivisible) { numMarkers = Math.ceil(numMarkers); } this.adapter_.removeTrackMarkers(); this.adapter_.appendTrackMarkers(numMarkers); if (indivisible) { var lastStepRatio = (max - numMarkers * step) / step + 1; var flex = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["b" /* getCorrectPropertyName */])(window, 'flex'); this.adapter_.setLastTrackMarkersStyleProperty(flex, String(lastStepRatio)); } } } }, { key: 'layout', value: function layout() { this.rect_ = this.adapter_.computeBoundingRect(); this.updateUIForCurrentValue_(); } /** @return {number} */ }, { key: 'getValue', value: function getValue() { return this.value_; } /** @param {number} value */ }, { key: 'setValue', value: function setValue(value) { this.setValue_(value, false); } /** @return {number} */ }, { key: 'getMax', value: function getMax() { return this.max_; } /** @param {number} max */ }, { key: 'setMax', value: function setMax(max) { if (max < this.min_) { throw new Error('Cannot set max to be less than the slider\'s minimum value'); } this.max_ = max; this.setValue_(this.value_, false, true); this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMAX, String(this.max_)); this.setupTrackMarker(); } /** @return {number} */ }, { key: 'getMin', value: function getMin() { return this.min_; } /** @param {number} min */ }, { key: 'setMin', value: function setMin(min) { if (min > this.max_) { throw new Error('Cannot set min to be greater than the slider\'s maximum value'); } this.min_ = min; this.setValue_(this.value_, false, true); this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMIN, String(this.min_)); this.setupTrackMarker(); } /** @return {number} */ }, { key: 'getStep', value: function getStep() { return this.step_; } /** @param {number} step */ }, { key: 'setStep', value: function setStep(step) { if (step < 0) { throw new Error('Step cannot be set to a negative number'); } if (this.isDiscrete_ && (typeof step !== 'number' || step < 1)) { step = 1; } this.step_ = step; this.setValue_(this.value_, false, true); this.setupTrackMarker(); } /** @return {boolean} */ }, { key: 'isDisabled', value: function isDisabled() { return this.disabled_; } /** @param {boolean} disabled */ }, { key: 'setDisabled', value: function setDisabled(disabled) { this.disabled_ = disabled; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].DISABLED, this.disabled_); if (this.disabled_) { this.savedTabIndex_ = this.adapter_.getTabIndex(); this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED, 'true'); this.adapter_.removeAttribute('tabindex'); } else { this.adapter_.removeAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED); if (!isNaN(this.savedTabIndex_)) { this.adapter_.setAttribute('tabindex', String(this.savedTabIndex_)); } } } /** * Called when the user starts interacting with the slider * @param {!Event} evt * @private */ }, { key: 'handleDown_', value: function handleDown_(evt) { var _this4 = this; if (this.disabled_) { return; } this.preventFocusState_ = true; this.setInTransit_(!this.handlingThumbTargetEvt_); this.handlingThumbTargetEvt_ = false; this.setActive_(true); var moveHandler = function moveHandler(evt) { _this4.handleMove_(evt); }; // Note: upHandler is [de]registered on ALL potential pointer-related release event types, since some browsers // do not always fire these consistently in pairs. // (See https://github.com/material-components/material-components-web/issues/1192) var upHandler = function upHandler() { _this4.handleUp_(); _this4.adapter_.deregisterBodyInteractionHandler(MOVE_EVENT_MAP[evt.type], moveHandler); UP_EVENTS.forEach(function (evtName) { return _this4.adapter_.deregisterBodyInteractionHandler(evtName, upHandler); }); }; this.adapter_.registerBodyInteractionHandler(MOVE_EVENT_MAP[evt.type], moveHandler); UP_EVENTS.forEach(function (evtName) { return _this4.adapter_.registerBodyInteractionHandler(evtName, upHandler); }); this.setValueFromEvt_(evt); } /** * Called when the user moves the slider * @param {!Event} evt * @private */ }, { key: 'handleMove_', value: function handleMove_(evt) { evt.preventDefault(); this.setValueFromEvt_(evt); } /** * Called when the user's interaction with the slider ends * @private */ }, { key: 'handleUp_', value: function handleUp_() { this.setActive_(false); this.adapter_.notifyChange(); } /** * Returns the pageX of the event * @param {!Event} evt * @return {number} * @private */ }, { key: 'getPageX_', value: function getPageX_(evt) { if (evt.targetTouches && evt.targetTouches.length > 0) { return evt.targetTouches[0].pageX; } return evt.pageX; } /** * Sets the slider value from an event * @param {!Event} evt * @private */ }, { key: 'setValueFromEvt_', value: function setValueFromEvt_(evt) { var pageX = this.getPageX_(evt); var value = this.computeValueFromPageX_(pageX); this.setValue_(value, true); } /** * Computes the new value from the pageX position * @param {number} pageX * @return {number} */ }, { key: 'computeValueFromPageX_', value: function computeValueFromPageX_(pageX) { var max = this.max_, min = this.min_; var xPos = pageX - this.rect_.left; var pctComplete = xPos / this.rect_.width; if (this.adapter_.isRTL()) { pctComplete = 1 - pctComplete; } // Fit the percentage complete between the range [min,max] // by remapping from [0, 1] to [min, min+(max-min)]. return min + pctComplete * (max - min); } /** * Handles keydown events * @param {!Event} evt */ }, { key: 'handleKeydown_', value: function handleKeydown_(evt) { var keyId = this.getKeyId_(evt); var value = this.getValueForKeyId_(keyId); if (isNaN(value)) { return; } // Prevent page from scrolling due to key presses that would normally scroll the page evt.preventDefault(); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS); this.setValue_(value, true); this.adapter_.notifyChange(); } /** * Returns the computed name of the event * @param {!Event} kbdEvt * @return {string} */ }, { key: 'getKeyId_', value: function getKeyId_(kbdEvt) { if (kbdEvt.key === KEY_IDS.ARROW_LEFT || kbdEvt.keyCode === 37) { return KEY_IDS.ARROW_LEFT; } if (kbdEvt.key === KEY_IDS.ARROW_RIGHT || kbdEvt.keyCode === 39) { return KEY_IDS.ARROW_RIGHT; } if (kbdEvt.key === KEY_IDS.ARROW_UP || kbdEvt.keyCode === 38) { return KEY_IDS.ARROW_UP; } if (kbdEvt.key === KEY_IDS.ARROW_DOWN || kbdEvt.keyCode === 40) { return KEY_IDS.ARROW_DOWN; } if (kbdEvt.key === KEY_IDS.HOME || kbdEvt.keyCode === 36) { return KEY_IDS.HOME; } if (kbdEvt.key === KEY_IDS.END || kbdEvt.keyCode === 35) { return KEY_IDS.END; } if (kbdEvt.key === KEY_IDS.PAGE_UP || kbdEvt.keyCode === 33) { return KEY_IDS.PAGE_UP; } if (kbdEvt.key === KEY_IDS.PAGE_DOWN || kbdEvt.keyCode === 34) { return KEY_IDS.PAGE_DOWN; } return ''; } /** * Computes the value given a keyboard key ID * @param {string} keyId * @return {number} */ }, { key: 'getValueForKeyId_', value: function getValueForKeyId_(keyId) { var max = this.max_, min = this.min_, step = this.step_; var delta = step || (max - min) / 100; var valueNeedsToBeFlipped = this.adapter_.isRTL() && (keyId === KEY_IDS.ARROW_LEFT || keyId === KEY_IDS.ARROW_RIGHT); if (valueNeedsToBeFlipped) { delta = -delta; } switch (keyId) { case KEY_IDS.ARROW_LEFT: case KEY_IDS.ARROW_DOWN: return this.value_ - delta; case KEY_IDS.ARROW_RIGHT: case KEY_IDS.ARROW_UP: return this.value_ + delta; case KEY_IDS.HOME: return this.min_; case KEY_IDS.END: return this.max_; case KEY_IDS.PAGE_UP: return this.value_ + delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR; case KEY_IDS.PAGE_DOWN: return this.value_ - delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR; default: return NaN; } } }, { key: 'handleFocus_', value: function handleFocus_() { if (this.preventFocusState_) { return; } this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS); } }, { key: 'handleBlur_', value: function handleBlur_() { this.preventFocusState_ = false; this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS); } /** * Sets the value of the slider * @param {number} value * @param {boolean} shouldFireInput * @param {boolean=} force */ }, { key: 'setValue_', value: function setValue_(value, shouldFireInput) { var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (value === this.value_ && !force) { return; } var min = this.min_, max = this.max_; var valueSetToBoundary = value === min || value === max; if (this.step_ && !valueSetToBoundary) { value = this.quantize_(value); } if (value < min) { value = min; } else if (value > max) { value = max; } this.value_ = value; this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUENOW, String(this.value_)); this.updateUIForCurrentValue_(); if (shouldFireInput) { this.adapter_.notifyInput(); if (this.isDiscrete_) { this.adapter_.setMarkerValue(value); } } } /** * Calculates the quantized value * @param {number} value * @return {number} */ }, { key: 'quantize_', value: function quantize_(value) { var numSteps = Math.round(value / this.step_); var quantizedVal = numSteps * this.step_; return quantizedVal; } }, { key: 'updateUIForCurrentValue_', value: function updateUIForCurrentValue_() { var _this5 = this; var max = this.max_, min = this.min_, value = this.value_; var pctComplete = (value - min) / (max - min); var translatePx = pctComplete * this.rect_.width; if (this.adapter_.isRTL()) { translatePx = this.rect_.width - translatePx; } var transformProp = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["b" /* getCorrectPropertyName */])(window, 'transform'); var transitionendEvtName = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend'); if (this.inTransit_) { var onTransitionEnd = function onTransitionEnd() { _this5.setInTransit_(false); _this5.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd); }; this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd); } this.updateUIFrame_ = requestAnimationFrame(function () { // NOTE(traviskaufman): It would be nice to use calc() here, // but IE cannot handle calcs in transforms correctly. // See: https://goo.gl/NC2itk // Also note that the -50% offset is used to center the slider thumb. _this5.adapter_.setThumbContainerStyleProperty(transformProp, 'translateX(' + translatePx + 'px) translateX(-50%)'); _this5.adapter_.setTrackStyleProperty(transformProp, 'scaleX(' + pctComplete + ')'); }); } /** * Toggles the active state of the slider * @param {boolean} active */ }, { key: 'setActive_', value: function setActive_(active) { this.active_ = active; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].ACTIVE, this.active_); } /** * Toggles the inTransit state of the slider * @param {boolean} inTransit */ }, { key: 'setInTransit_', value: function setInTransit_(inTransit) { this.inTransit_ = inTransit; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IN_TRANSIT, this.inTransit_); } /** * Conditionally adds or removes a class based on shouldBePresent * @param {string} className * @param {boolean} shouldBePresent */ }, { key: 'toggleClass_', value: function toggleClass_(className, shouldBePresent) { if (shouldBePresent) { this.adapter_.addClass(className); } else { this.adapter_.removeClass(className); } } }]); return MDCSliderFoundation; }(__WEBPACK_IMPORTED_MODULE_3__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCSliderFoundation); /***/ }), /* 112 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbar", function() { return MDCSnackbar; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(113); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_animation_index__ = __webpack_require__(9); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCSnackbar = function (_MDCComponent) { _inherits(MDCSnackbar, _MDCComponent); function MDCSnackbar() { _classCallCheck(this, MDCSnackbar); return _possibleConstructorReturn(this, (MDCSnackbar.__proto__ || Object.getPrototypeOf(MDCSnackbar)).apply(this, arguments)); } _createClass(MDCSnackbar, [{ key: 'show', value: function show(data) { this.foundation_.show(data); } }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; var _MDCSnackbarFoundatio = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings, TEXT_SELECTOR = _MDCSnackbarFoundatio.TEXT_SELECTOR, ACTION_BUTTON_SELECTOR = _MDCSnackbarFoundatio.ACTION_BUTTON_SELECTOR; var getText = function getText() { return _this2.root_.querySelector(TEXT_SELECTOR); }; var getActionButton = function getActionButton() { return _this2.root_.querySelector(ACTION_BUTTON_SELECTOR); }; /* eslint brace-style: "off" */ return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, setAriaHidden: function setAriaHidden() { return _this2.root_.setAttribute('aria-hidden', 'true'); }, unsetAriaHidden: function unsetAriaHidden() { return _this2.root_.removeAttribute('aria-hidden'); }, setActionAriaHidden: function setActionAriaHidden() { return getActionButton().setAttribute('aria-hidden', 'true'); }, unsetActionAriaHidden: function unsetActionAriaHidden() { return getActionButton().removeAttribute('aria-hidden'); }, setActionText: function setActionText(text) { getActionButton().textContent = text; }, setMessageText: function setMessageText(text) { getText().textContent = text; }, setFocus: function setFocus() { return getActionButton().focus(); }, visibilityIsHidden: function visibilityIsHidden() { return document.hidden; }, registerCapturedBlurHandler: function registerCapturedBlurHandler(handler) { return getActionButton().addEventListener('blur', handler, true); }, deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler(handler) { return getActionButton().removeEventListener('blur', handler, true); }, registerVisibilityChangeHandler: function registerVisibilityChangeHandler(handler) { return document.addEventListener('visibilitychange', handler); }, deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler(handler) { return document.removeEventListener('visibilitychange', handler); }, registerCapturedInteractionHandler: function registerCapturedInteractionHandler(evt, handler) { return document.body.addEventListener(evt, handler, true); }, deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler(evt, handler) { return document.body.removeEventListener(evt, handler, true); }, registerActionClickHandler: function registerActionClickHandler(handler) { return getActionButton().addEventListener('click', handler); }, deregisterActionClickHandler: function deregisterActionClickHandler(handler) { return getActionButton().removeEventListener('click', handler); }, registerTransitionEndHandler: function registerTransitionEndHandler(handler) { return _this2.root_.addEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend'), handler); }, deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) { return _this2.root_.removeEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend'), handler); }, notifyShow: function notifyShow() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.SHOW_EVENT); }, notifyHide: function notifyHide() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.HIDE_EVENT); } }); } }, { key: 'dismissesOnAction', get: function get() { return this.foundation_.dismissesOnAction(); }, set: function set(dismissesOnAction) { this.foundation_.setDismissOnAction(dismissesOnAction); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCSnackbar(root); } }]); return MDCSnackbar; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 113 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(114); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCSnackbarFoundation = function (_MDCFoundation) { _inherits(MDCSnackbarFoundation, _MDCFoundation); _createClass(MDCSnackbarFoundation, [{ key: 'active', get: function get() { return this.active_; } }], [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */]; } }, { key: 'defaultAdapter', get: function get() { return { addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, setAriaHidden: function setAriaHidden() {}, unsetAriaHidden: function unsetAriaHidden() {}, setActionAriaHidden: function setActionAriaHidden() {}, unsetActionAriaHidden: function unsetActionAriaHidden() {}, setActionText: function setActionText() /* actionText: string */{}, setMessageText: function setMessageText() /* message: string */{}, setFocus: function setFocus() {}, visibilityIsHidden: function visibilityIsHidden() { return (/* boolean */false ); }, registerCapturedBlurHandler: function registerCapturedBlurHandler() /* handler: EventListener */{}, deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler() /* handler: EventListener */{}, registerVisibilityChangeHandler: function registerVisibilityChangeHandler() /* handler: EventListener */{}, deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler() /* handler: EventListener */{}, registerCapturedInteractionHandler: function registerCapturedInteractionHandler() /* evtType: string, handler: EventListener */{}, deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler() /* evtType: string, handler: EventListener */{}, registerActionClickHandler: function registerActionClickHandler() /* handler: EventListener */{}, deregisterActionClickHandler: function deregisterActionClickHandler() /* handler: EventListener */{}, registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{}, deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{}, notifyShow: function notifyShow() {}, notifyHide: function notifyHide() {} }; } }]); function MDCSnackbarFoundation(adapter) { _classCallCheck(this, MDCSnackbarFoundation); var _this = _possibleConstructorReturn(this, (MDCSnackbarFoundation.__proto__ || Object.getPrototypeOf(MDCSnackbarFoundation)).call(this, _extends(MDCSnackbarFoundation.defaultAdapter, adapter))); _this.active_ = false; _this.actionWasClicked_ = false; _this.dismissOnAction_ = true; _this.firstFocus_ = true; _this.pointerDownRecognized_ = false; _this.snackbarHasFocus_ = false; _this.snackbarData_ = null; _this.queue_ = []; _this.actionClickHandler_ = function () { _this.actionWasClicked_ = true; _this.invokeAction_(); }; _this.visibilitychangeHandler_ = function () { clearTimeout(_this.timeoutId_); _this.snackbarHasFocus_ = true; if (!_this.adapter_.visibilityIsHidden()) { setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT); } }; _this.interactionHandler_ = function (evt) { if (evt.type == 'touchstart' || evt.type == 'mousedown') { _this.pointerDownRecognized_ = true; } _this.handlePossibleTabKeyboardFocus_(evt); if (evt.type == 'focus') { _this.pointerDownRecognized_ = false; } }; _this.blurHandler_ = function () { clearTimeout(_this.timeoutId_); _this.snackbarHasFocus_ = false; _this.timeoutId_ = setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT); }; return _this; } _createClass(MDCSnackbarFoundation, [{ key: 'init', value: function init() { this.adapter_.registerActionClickHandler(this.actionClickHandler_); this.adapter_.setAriaHidden(); this.adapter_.setActionAriaHidden(); } }, { key: 'destroy', value: function destroy() { var _this2 = this; this.adapter_.deregisterActionClickHandler(this.actionClickHandler_); this.adapter_.deregisterCapturedBlurHandler(this.blurHandler_); this.adapter_.deregisterVisibilityChangeHandler(this.visibilitychangeHandler_); ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) { _this2.adapter_.deregisterCapturedInteractionHandler(evtType, _this2.interactionHandler_); }); } }, { key: 'dismissesOnAction', value: function dismissesOnAction() { return this.dismissOnAction_; } }, { key: 'setDismissOnAction', value: function setDismissOnAction(dismissOnAction) { this.dismissOnAction_ = !!dismissOnAction; } }, { key: 'show', value: function show(data) { var _this3 = this; if (!data) { throw new Error('Please provide a data object with at least a message to display.'); } if (!data.message) { throw new Error('Please provide a message to be displayed.'); } if (data.actionHandler && !data.actionText) { throw new Error('Please provide action text with the handler.'); } if (this.active) { this.queue_.push(data); return; } clearTimeout(this.timeoutId_); this.snackbarData_ = data; this.firstFocus_ = true; this.adapter_.registerVisibilityChangeHandler(this.visibilitychangeHandler_); this.adapter_.registerCapturedBlurHandler(this.blurHandler_); ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) { _this3.adapter_.registerCapturedInteractionHandler(evtType, _this3.interactionHandler_); }); var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE, MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE, ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM; this.adapter_.setMessageText(this.snackbarData_.message); if (this.snackbarData_.multiline) { this.adapter_.addClass(MULTILINE); if (this.snackbarData_.actionOnBottom) { this.adapter_.addClass(ACTION_ON_BOTTOM); } } if (this.snackbarData_.actionHandler) { this.adapter_.setActionText(this.snackbarData_.actionText); this.actionHandler_ = this.snackbarData_.actionHandler; this.setActionHidden_(false); } else { this.setActionHidden_(true); this.actionHandler_ = null; this.adapter_.setActionText(null); } this.active_ = true; this.adapter_.addClass(ACTIVE); this.adapter_.unsetAriaHidden(); this.adapter_.notifyShow(); this.timeoutId_ = setTimeout(this.cleanup_.bind(this), this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT); } }, { key: 'handlePossibleTabKeyboardFocus_', value: function handlePossibleTabKeyboardFocus_() { var hijackFocus = this.firstFocus_ && !this.pointerDownRecognized_; if (hijackFocus) { this.setFocusOnAction_(); } this.firstFocus_ = false; } }, { key: 'setFocusOnAction_', value: function setFocusOnAction_() { this.adapter_.setFocus(); this.snackbarHasFocus_ = true; this.firstFocus_ = false; } }, { key: 'invokeAction_', value: function invokeAction_() { try { if (!this.actionHandler_) { return; } this.actionHandler_(); } finally { if (this.dismissOnAction_) { this.cleanup_(); } } } }, { key: 'cleanup_', value: function cleanup_() { var _this4 = this; var allowDismissal = !this.snackbarHasFocus_ || this.actionWasClicked_; if (allowDismissal) { var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE, MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE, ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM; this.adapter_.removeClass(ACTIVE); var handler = function handler() { clearTimeout(_this4.timeoutId_); _this4.adapter_.deregisterTransitionEndHandler(handler); _this4.adapter_.removeClass(MULTILINE); _this4.adapter_.removeClass(ACTION_ON_BOTTOM); _this4.setActionHidden_(true); _this4.adapter_.setAriaHidden(); _this4.active_ = false; _this4.snackbarHasFocus_ = false; _this4.adapter_.notifyHide(); _this4.showNext_(); }; this.adapter_.registerTransitionEndHandler(handler); } } }, { key: 'showNext_', value: function showNext_() { if (!this.queue_.length) { return; } this.show(this.queue_.shift()); } }, { key: 'setActionHidden_', value: function setActionHidden_(isHidden) { if (isHidden) { this.adapter_.setActionAriaHidden(); } else { this.adapter_.unsetActionAriaHidden(); } } }]); return MDCSnackbarFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]); /* harmony default export */ __webpack_exports__["a"] = (MDCSnackbarFoundation); /***/ }), /* 114 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { ROOT: 'mdc-snackbar', TEXT: 'mdc-snackbar__text', ACTION_WRAPPER: 'mdc-snackbar__action-wrapper', ACTION_BUTTON: 'mdc-snackbar__action-button', ACTIVE: 'mdc-snackbar--active', MULTILINE: 'mdc-snackbar--multiline', ACTION_ON_BOTTOM: 'mdc-snackbar--action-on-bottom' }; var strings = { TEXT_SELECTOR: '.mdc-snackbar__text', ACTION_WRAPPER_SELECTOR: '.mdc-snackbar__action-wrapper', ACTION_BUTTON_SELECTOR: '.mdc-snackbar__action-button', SHOW_EVENT: 'MDCSnackbar:show', HIDE_EVENT: 'MDCSnackbar:hide' }; var numbers = { MESSAGE_TIMEOUT: 2750 }; /***/ }), /* 115 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSwitch", function() { return MDCSwitch; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(116); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple_util__ = __webpack_require__(6); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSwitchFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends MDCComponent * @implements {MDCSelectionControl} */ var MDCSwitch = function (_MDCComponent) { _inherits(MDCSwitch, _MDCComponent); _createClass(MDCSwitch, null, [{ key: 'attachTo', value: function attachTo(root) { return new MDCSwitch(root); } }]); function MDCSwitch() { var _ref; _classCallCheck(this, MDCSwitch); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!MDCRipple} */ var _this = _possibleConstructorReturn(this, (_ref = MDCSwitch.__proto__ || Object.getPrototypeOf(MDCSwitch)).call.apply(_ref, [this].concat(args))); _this.ripple_ = _this.initRipple_(); /** @private {!Function} */ _this.changeHandler_; return _this; } _createClass(MDCSwitch, [{ key: 'destroy', value: function destroy() { _get(MDCSwitch.prototype.__proto__ || Object.getPrototypeOf(MDCSwitch.prototype), 'destroy', this).call(this); this.ripple_.destroy(); this.nativeControl_.removeEventListener('change', this.changeHandler_); } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { this.changeHandler_ = this.foundation_.handleChange.bind(this.foundation_); this.nativeControl_.addEventListener('change', this.changeHandler_); } /** * Returns the state of the native control element, or null if the native control element is not present. * @return {?MDCSelectionControlState} * @private */ }, { key: 'initRipple_', /** * @return {!MDCRipple} * @private */ value: function initRipple_() { var _this2 = this; var RIPPLE_SURFACE_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.RIPPLE_SURFACE_SELECTOR; var rippleSurface = /** @type {!Element} */this.root_.querySelector(RIPPLE_SURFACE_SELECTOR); var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_4__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype); var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"].createAdapter(this), { isUnbounded: function isUnbounded() { return true; }, isSurfaceActive: function isSurfaceActive() { return _this2.nativeControl_[MATCHES](':active'); }, addClass: function addClass(className) { return rippleSurface.classList.add(className); }, removeClass: function removeClass(className) { return rippleSurface.classList.remove(className); }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.nativeControl_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.nativeControl_.removeEventListener(type, handler); }, updateCssVariable: function updateCssVariable(varName, value) { return rippleSurface.style.setProperty(varName, value); }, computeBoundingRect: function computeBoundingRect() { return rippleSurface.getBoundingClientRect(); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRippleFoundation"](adapter); return new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"](this.root_, foundation); } /** @return {!MDCSwitchFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ addClass: function addClass(className) { return _this3.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.root_.classList.remove(className); }, setNativeControlChecked: function setNativeControlChecked(checked) { return _this3.nativeControl_.checked = checked; }, isNativeControlChecked: function isNativeControlChecked() { return _this3.nativeControl_.checked; }, setNativeControlDisabled: function setNativeControlDisabled(disabled) { return _this3.nativeControl_.disabled = disabled; }, isNativeControlDisabled: function isNativeControlDisabled() { return _this3.nativeControl_.disabled; } }); } /** @return {!MDCRipple} */ }, { key: 'nativeControl_', get: function get() { var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR; var el = /** @type {?MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR); return el; } }, { key: 'ripple', get: function get() { return this.ripple_; } /** @return {boolean} */ }, { key: 'checked', get: function get() { return this.foundation_.isChecked(); } /** @param {boolean} checked */ , set: function set(checked) { this.foundation_.setChecked(checked); } /** @return {boolean} */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** @param {boolean} disabled */ , set: function set(disabled) { this.foundation_.setDisabled(disabled); } }]); return MDCSwitch; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 116 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(117); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(118); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} */ var MDCSwitchFoundation = function (_MDCFoundation) { _inherits(MDCSwitchFoundation, _MDCFoundation); _createClass(MDCSwitchFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; } /** @return enum {string} */ }, { key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; } /** @return {!MDCSwitchAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCSwitchAdapter} */{ addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, setNativeControlChecked: function setNativeControlChecked() /* checked: boolean */{}, isNativeControlChecked: function isNativeControlChecked() /* boolean */{}, setNativeControlDisabled: function setNativeControlDisabled() /* disabled: boolean */{}, isNativeControlDisabled: function isNativeControlDisabled() /* boolean */{} } ); } }]); function MDCSwitchFoundation(adapter) { _classCallCheck(this, MDCSwitchFoundation); return _possibleConstructorReturn(this, (MDCSwitchFoundation.__proto__ || Object.getPrototypeOf(MDCSwitchFoundation)).call(this, _extends(MDCSwitchFoundation.defaultAdapter, adapter))); } /** @override */ _createClass(MDCSwitchFoundation, [{ key: 'init', value: function init() { // Do an initial state update based on the state of the native control. this.handleChange(); } /** @return {boolean} */ }, { key: 'isChecked', value: function isChecked() { return this.adapter_.isNativeControlChecked(); } /** @param {boolean} checked */ }, { key: 'setChecked', value: function setChecked(checked) { this.adapter_.setNativeControlChecked(checked); this.updateCheckedStyling_(checked); } /** @return {boolean} */ }, { key: 'isDisabled', value: function isDisabled() { return this.adapter_.isNativeControlDisabled(); } /** @param {boolean} disabled */ }, { key: 'setDisabled', value: function setDisabled(disabled) { this.adapter_.setNativeControlDisabled(disabled); if (disabled) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED); } } /** * Handles the change event for the switch native control. */ }, { key: 'handleChange', value: function handleChange() { this.updateCheckedStyling_(this.isChecked()); } /** * Updates the styling of the switch based on its checked state. * @param {boolean} checked * @private */ }, { key: 'updateCheckedStyling_', value: function updateCheckedStyling_(checked) { if (checked) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKED); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKED); } } }]); return MDCSwitchFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCSwitchFoundation); /***/ }), /* 117 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint no-unused-vars: [2, {"args": "none"}] */ /** * Adapter for MDC Switch. Provides an interface for managing * - classes * - dom * * Additionally, provides type information for the adapter to the Closure * compiler. * * Implement this adapter for your framework of choice to delegate updates to * the component in your framework of choice. See architecture documentation * for more details. * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md * * @record */ var MDCSwitchAdapter = function () { function MDCSwitchAdapter() { _classCallCheck(this, MDCSwitchAdapter); } _createClass(MDCSwitchAdapter, [{ key: "addClass", /** @param {string} className */ value: function addClass(className) {} /** @param {string} className */ }, { key: "removeClass", value: function removeClass(className) {} /** @param {boolean} checked */ }, { key: "setNativeControlChecked", value: function setNativeControlChecked(checked) {} /** @return {boolean} checked */ }, { key: "isNativeControlChecked", value: function isNativeControlChecked() {} /** @param {boolean} disabled */ }, { key: "setNativeControlDisabled", value: function setNativeControlDisabled(disabled) {} /** @return {boolean} disabled */ }, { key: "isNativeControlDisabled", value: function isNativeControlDisabled() {} }]); return MDCSwitchAdapter; }(); /* unused harmony default export */ var _unused_webpack_default_export = (MDCSwitchAdapter); /***/ }), /* 118 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { CHECKED: 'mdc-switch--checked', DISABLED: 'mdc-switch--disabled' }; /** @enum {string} */ var strings = { NATIVE_CONTROL_SELECTOR: '.mdc-switch__native-control', RIPPLE_SURFACE_SELECTOR: '.mdc-switch__thumb-underlay' }; /***/ }), /* 119 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ACTIVE: 'mdc-tab-indicator--active', FADE: 'mdc-tab-indicator--fade', FADING_ACTIVATE: 'mdc-tab-indicator--fading-activate', FADING_DEACTIVATE: 'mdc-tab-indicator--fading-deactivate', SLIDING_ACTIVATE: 'mdc-tab-indicator--sliding-activate' }; /** @enum {string} */ var strings = { CONTENT_SELECTOR: '.mdc-tab-indicator__content' }; /***/ }), /* 120 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(20); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCTabIndicatorFoundation} * @final */ var MDCSlidingTabIndicatorFoundation = function (_MDCTabIndicatorFound) { _inherits(MDCSlidingTabIndicatorFoundation, _MDCTabIndicatorFound); /** @param {...?} args */ function MDCSlidingTabIndicatorFoundation() { var _ref; _classCallCheck(this, MDCSlidingTabIndicatorFoundation); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {function(?Event): undefined} */ var _this = _possibleConstructorReturn(this, (_ref = MDCSlidingTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCSlidingTabIndicatorFoundation)).call.apply(_ref, [this].concat(args))); _this.handleTransitionEnd_ = function () { return _this.handleTransitionEnd(); }; return _this; } /** Handles the transitionend event */ _createClass(MDCSlidingTabIndicatorFoundation, [{ key: 'handleTransitionEnd', value: function handleTransitionEnd() { this.adapter_.deregisterEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.SLIDING_ACTIVATE); } /** @param {!ClientRect=} previousIndicatorClientRect */ }, { key: 'activate', value: function activate(previousIndicatorClientRect) { var _this2 = this; this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE); // Early exit if no indicator is present to handle cases where an indicator // may be activated without a prior indicator state if (!previousIndicatorClientRect) { return; } // This animation uses the FLIP approach. You can read more about it at the link below: // https://aerotwist.com/blog/flip-your-animations/ // Calculate the dimensions based on the dimensions of the previous indicator var currentClientRect = this.computeContentClientRect(); var widthDelta = previousIndicatorClientRect.width / currentClientRect.width; var xPosition = previousIndicatorClientRect.left - currentClientRect.left; this.adapter_.setContentStyleProperty('transform', 'translateX(' + xPosition + 'px) scaleX(' + widthDelta + ')'); // Force repaint this.computeContentClientRect(); // Add animating class and remove transformation in a new frame requestAnimationFrame(function () { _this2.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.SLIDING_ACTIVATE); _this2.adapter_.setContentStyleProperty('transform', ''); }); this.adapter_.registerEventHandler('transitionend', this.handleTransitionEnd_); } }, { key: 'deactivate', value: function deactivate() { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE); // We remove the animating class in deactivate in case the Tab is deactivated before the animation completes and // the "transitionend" handler isn't called. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.SLIDING_ACTIVATE); this.adapter_.deregisterEventHandler('transitionend', this.handleTransitionEnd_); } }]); return MDCSlidingTabIndicatorFoundation; }(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCSlidingTabIndicatorFoundation); /***/ }), /* 121 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(20); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCTabIndicatorFoundation} * @final */ var MDCFadingTabIndicatorFoundation = function (_MDCTabIndicatorFound) { _inherits(MDCFadingTabIndicatorFoundation, _MDCTabIndicatorFound); /** @param {...?} args */ function MDCFadingTabIndicatorFoundation() { var _ref; _classCallCheck(this, MDCFadingTabIndicatorFoundation); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {function(?Event): undefined} */ var _this = _possibleConstructorReturn(this, (_ref = MDCFadingTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCFadingTabIndicatorFoundation)).call.apply(_ref, [this].concat(args))); _this.handleTransitionEnd_ = function () { return _this.handleTransitionEnd(); }; return _this; } /** Handles the transitionend event */ _createClass(MDCFadingTabIndicatorFoundation, [{ key: 'handleTransitionEnd', value: function handleTransitionEnd() { this.adapter_.deregisterEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.FADING_ACTIVATE); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.FADING_DEACTIVATE); } }, { key: 'activate', value: function activate() { this.adapter_.registerEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.FADING_ACTIVATE); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE); } }, { key: 'deactivate', value: function deactivate() { this.adapter_.registerEventHandler('transitionend', this.handleTransitionEnd_); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.FADING_DEACTIVATE); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE); } }]); return MDCFadingTabIndicatorFoundation; }(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCFadingTabIndicatorFoundation); /***/ }), /* 122 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var cssClasses = { ACTIVE: 'mdc-tab--active', ANIMATING_ACTIVATE: 'mdc-tab--animating-activate', ANIMATING_DEACTIVATE: 'mdc-tab--animating-deactivate' }; /** @enum {string} */ var strings = { ARIA_SELECTED: 'aria-selected', RIPPLE_SELECTOR: '.mdc-tab__ripple', CONTENT_SELECTOR: '.mdc-tab__content', TAB_INDICATOR_SELECTOR: '.mdc-tab-indicator', TABINDEX: 'tabIndex', INTERACTED_EVENT: 'MDCTab:interacted' }; /***/ }), /* 123 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBar", function() { return MDCTabBar; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_tab_index__ = __webpack_require__(19); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_tab_scroller_index__ = __webpack_require__(41); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(43); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(129); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTabBar = function (_MDCComponent) { _inherits(MDCTabBar, _MDCComponent); /** * @param {...?} args */ function MDCTabBar() { var _ref; _classCallCheck(this, MDCTabBar); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {!Array} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTabBar.__proto__ || Object.getPrototypeOf(MDCTabBar)).call.apply(_ref, [this].concat(args))); _this.tabList_; /** @type {(function(!Element): !MDCTab)} */ _this.tabFactory_; /** @private {?MDCTabScroller} */ _this.tabScroller_; /** @type {(function(!Element): !MDCTabScroller)} */ _this.tabScrollerFactory_; /** @private {?function(?Event): undefined} */ _this.handleTabInteraction_; /** @private {?function(?Event): undefined} */ _this.handleKeyDown_; return _this; } /** * @param {!Element} root * @return {!MDCTabBar} */ _createClass(MDCTabBar, [{ key: 'initialize', /** * @param {(function(!Element): !MDCTab)=} tabFactory A function which creates a new MDCTab * @param {(function(!Element): !MDCTabScroller)=} tabScrollerFactory A function which creates a new MDCTabScroller */ value: function initialize() { var _this2 = this; var tabFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) { return new __WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTab"](el); }; var tabScrollerFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { return new __WEBPACK_IMPORTED_MODULE_2__material_tab_scroller_index__["MDCTabScroller"](el); }; this.tabFactory_ = tabFactory; this.tabScrollerFactory_ = tabScrollerFactory; var tabElements = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_SELECTOR)); this.tabList_ = tabElements.map(function (el) { return _this2.tabFactory_(el); }); var tabScrollerElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_SCROLLER_SELECTOR); if (tabScrollerElement) { this.tabScroller_ = this.tabScrollerFactory_(tabScrollerElement); } } }, { key: 'initialSyncWithDOM', value: function initialSyncWithDOM() { var _this3 = this; this.handleTabInteraction_ = function (evt) { return _this3.foundation_.handleTabInteraction(evt); }; this.handleKeyDown_ = function (evt) { return _this3.foundation_.handleKeyDown(evt); }; this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTabFoundation"].strings.INTERACTED_EVENT, this.handleTabInteraction_); this.root_.addEventListener('keydown', this.handleKeyDown_); } }, { key: 'destroy', value: function destroy() { _get(MDCTabBar.prototype.__proto__ || Object.getPrototypeOf(MDCTabBar.prototype), 'destroy', this).call(this); this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTabFoundation"].strings.INTERACTED_EVENT, this.handleTabInteraction_); this.root_.removeEventListener('keydown', this.handleKeyDown_); this.tabList_.forEach(function (tab) { return tab.destroy(); }); this.tabScroller_.destroy(); } /** * @return {!MDCTabBarFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this4 = this; return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */]( /** @type {!MDCTabBarAdapter} */{ scrollTo: function scrollTo(scrollX) { return _this4.tabScroller_.scrollTo(scrollX); }, incrementScroll: function incrementScroll(scrollXIncrement) { return _this4.tabScroller_.incrementScroll(scrollXIncrement); }, getScrollPosition: function getScrollPosition() { return _this4.tabScroller_.getScrollPosition(); }, getScrollContentWidth: function getScrollContentWidth() { return _this4.tabScroller_.getScrollContentWidth(); }, getOffsetWidth: function getOffsetWidth() { return _this4.root_.offsetWidth; }, isRTL: function isRTL() { return window.getComputedStyle(_this4.root_).getPropertyValue('direction') === 'rtl'; }, activateTabAtIndex: function activateTabAtIndex(index, clientRect) { return _this4.tabList_[index].activate(clientRect); }, deactivateTabAtIndex: function deactivateTabAtIndex(index) { return _this4.tabList_[index].deactivate(); }, getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex(index) { return _this4.tabList_[index].computeIndicatorClientRect(); }, getTabDimensionsAtIndex: function getTabDimensionsAtIndex(index) { return _this4.tabList_[index].computeDimensions(); }, getActiveTabIndex: function getActiveTabIndex() { for (var i = 0; i < _this4.tabList_.length; i++) { if (_this4.tabList_[i].active) { return i; } } return -1; }, getIndexOfTab: function getIndexOfTab(tabToFind) { return _this4.tabList_.indexOf(tabToFind); }, getTabListLength: function getTabListLength() { return _this4.tabList_.length; }, notifyTabActivated: function notifyTabActivated(index) { return _this4.emit(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_ACTIVATED_EVENT, { index: index }, true); } }); } /** * Activates the tab at the given index * @param {number} index The index of the tab */ }, { key: 'activateTab', value: function activateTab(index) { this.foundation_.activateTab(index); } /** * Scrolls the tab at the given index into view * @param {number} index THe index of the tab */ }, { key: 'scrollIntoView', value: function scrollIntoView(index) { this.foundation_.scrollIntoView(index); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCTabBar(root); } }]); return MDCTabBar; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 124 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(42); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__rtl_scroller__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rtl_default_scroller__ = __webpack_require__(125); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__rtl_negative_scroller__ = __webpack_require__(126); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__rtl_reverse_scroller__ = __webpack_require__(127); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} * @final */ var MDCTabScrollerFoundation = function (_MDCFoundation) { _inherits(MDCTabScrollerFoundation, _MDCFoundation); _createClass(MDCTabScrollerFoundation, null, [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } /** @return enum {string} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */]; } /** * @see MDCTabScrollerAdapter for typing information * @return {!MDCTabScrollerAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTabScrollerAdapter} */{ eventTargetMatchesSelector: function eventTargetMatchesSelector() {}, addClass: function addClass() {}, removeClass: function removeClass() {}, addScrollAreaClass: function addScrollAreaClass() {}, setScrollAreaStyleProperty: function setScrollAreaStyleProperty() {}, setScrollContentStyleProperty: function setScrollContentStyleProperty() {}, getScrollContentStyleValue: function getScrollContentStyleValue() {}, setScrollAreaScrollLeft: function setScrollAreaScrollLeft() {}, getScrollAreaScrollLeft: function getScrollAreaScrollLeft() {}, getScrollContentOffsetWidth: function getScrollContentOffsetWidth() {}, getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() {}, computeScrollAreaClientRect: function computeScrollAreaClientRect() {}, computeScrollContentClientRect: function computeScrollContentClientRect() {}, computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() {} } ); } /** @param {!MDCTabScrollerAdapter} adapter */ }]); function MDCTabScrollerFoundation(adapter) { _classCallCheck(this, MDCTabScrollerFoundation); /** * This boolean controls whether we should handle the transitionend and interaction events during the animation. * @private {boolean} */ var _this = _possibleConstructorReturn(this, (MDCTabScrollerFoundation.__proto__ || Object.getPrototypeOf(MDCTabScrollerFoundation)).call(this, _extends(MDCTabScrollerFoundation.defaultAdapter, adapter))); _this.isAnimating_ = false; /** * The MDCTabScrollerRTL instance varies per browser and allows us to encapsulate the peculiar browser behavior * of RTL scrolling in it's own class. * @private {?MDCTabScrollerRTL} */ _this.rtlScrollerInstance_; return _this; } _createClass(MDCTabScrollerFoundation, [{ key: 'init', value: function init() { // Compute horizontal scrollbar height on scroller with overflow initially hidden, then update overflow to scroll // and immediately adjust bottom margin to avoid the scrollbar initially appearing before JS runs. var horizontalScrollbarHeight = this.adapter_.computeHorizontalScrollbarHeight(); this.adapter_.setScrollAreaStyleProperty('margin-bottom', -horizontalScrollbarHeight + 'px'); this.adapter_.addScrollAreaClass(MDCTabScrollerFoundation.cssClasses.SCROLL_AREA_SCROLL); } /** * Computes the current visual scroll position * @return {number} */ }, { key: 'getScrollPosition', value: function getScrollPosition() { if (this.isRTL_()) { return this.computeCurrentScrollPositionRTL_(); } var currentTranslateX = this.calculateCurrentTranslateX_(); var scrollLeft = this.adapter_.getScrollAreaScrollLeft(); return scrollLeft - currentTranslateX; } /** * Handles interaction events that occur during transition */ }, { key: 'handleInteraction', value: function handleInteraction() { // Early exit if we aren't animating if (!this.isAnimating_) { return; } // Prevent other event listeners from handling this event this.stopScrollAnimation_(); } /** * Handles the transitionend event * @param {!Event} evt */ }, { key: 'handleTransitionEnd', value: function handleTransitionEnd(evt) { // Early exit if we aren't animating or the event was triggered by a different element. if (!this.isAnimating_ || !this.adapter_.eventTargetMatchesSelector(evt.target, MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)) { return; } this.isAnimating_ = false; this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING); } /** * Increment the scroll value by the scrollXIncrement * @param {number} scrollXIncrement The value by which to increment the scroll position */ }, { key: 'incrementScroll', value: function incrementScroll(scrollXIncrement) { // Early exit for non-operational increment values if (scrollXIncrement === 0) { return; } if (this.isRTL_()) { return this.incrementScrollRTL_(scrollXIncrement); } this.incrementScroll_(scrollXIncrement); } /** * Scrolls to the given scrollX value * @param {number} scrollX */ }, { key: 'scrollTo', value: function scrollTo(scrollX) { if (this.isRTL_()) { return this.scrollToRTL_(scrollX); } this.scrollTo_(scrollX); } /** * Returns the appropriate version of the MDCTabScrollerRTL * @return {!MDCTabScrollerRTL} */ }, { key: 'getRTLScroller', value: function getRTLScroller() { if (!this.rtlScrollerInstance_) { this.rtlScrollerInstance_ = this.rtlScrollerFactory_(); } return this.rtlScrollerInstance_; } /** * Returns the translateX value from a CSS matrix transform function string * @return {number} * @private */ }, { key: 'calculateCurrentTranslateX_', value: function calculateCurrentTranslateX_() { var transformValue = this.adapter_.getScrollContentStyleValue('transform'); // Early exit if no transform is present if (transformValue === 'none') { return 0; } // The transform value comes back as a matrix transformation in the form // of `matrix(a, b, c, d, tx, ty)`. We only care about tx (translateX) so // we're going to grab all the parenthesized values, strip out tx, and // parse it. var results = /\((.+)\)/.exec(transformValue)[1]; var parts = results.split(','); return parseFloat(parts[4]); } /** * Calculates a safe scroll value that is > 0 and < the max scroll value * @param {number} scrollX The distance to scroll * @return {number} * @private */ }, { key: 'clampScrollValue_', value: function clampScrollValue_(scrollX) { var edges = this.calculateScrollEdges_(); return Math.min(Math.max(edges.left, scrollX), edges.right); } /** * @return {number} * @private */ }, { key: 'computeCurrentScrollPositionRTL_', value: function computeCurrentScrollPositionRTL_() { var translateX = this.calculateCurrentTranslateX_(); return this.getRTLScroller().getScrollPositionRTL(translateX); } /** * @return {!MDCTabScrollerHorizontalEdges} * @private */ }, { key: 'calculateScrollEdges_', value: function calculateScrollEdges_() { var contentWidth = this.adapter_.getScrollContentOffsetWidth(); var rootWidth = this.adapter_.getScrollAreaOffsetWidth(); return (/** @type {!MDCTabScrollerHorizontalEdges} */{ left: 0, right: contentWidth - rootWidth } ); } /** * Internal scroll method * @param {number} scrollX The new scroll position * @private */ }, { key: 'scrollTo_', value: function scrollTo_(scrollX) { var currentScrollX = this.getScrollPosition(); var safeScrollX = this.clampScrollValue_(scrollX); var scrollDelta = safeScrollX - currentScrollX; this.animate_( /** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: safeScrollX, scrollDelta: scrollDelta }); } /** * Internal RTL scroll method * @param {number} scrollX The new scroll position * @private */ }, { key: 'scrollToRTL_', value: function scrollToRTL_(scrollX) { var animation = this.getRTLScroller().scrollToRTL(scrollX); this.animate_(animation); } /** * Internal increment scroll method * @param {number} scrollX The new scroll position increment * @private */ }, { key: 'incrementScroll_', value: function incrementScroll_(scrollX) { var currentScrollX = this.getScrollPosition(); var targetScrollX = scrollX + currentScrollX; var safeScrollX = this.clampScrollValue_(targetScrollX); var scrollDelta = safeScrollX - currentScrollX; this.animate_( /** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: safeScrollX, scrollDelta: scrollDelta }); } /** * Internal incremenet scroll RTL method * @param {number} scrollX The new scroll position RTL increment * @private */ }, { key: 'incrementScrollRTL_', value: function incrementScrollRTL_(scrollX) { var animation = this.getRTLScroller().incrementScrollRTL(scrollX); this.animate_(animation); } /** * Animates the tab scrolling * @param {!MDCTabScrollerAnimation} animation The animation to apply * @private */ }, { key: 'animate_', value: function animate_(animation) { var _this2 = this; // Early exit if translateX is 0, which means there's no animation to perform if (animation.scrollDelta === 0) { return; } this.stopScrollAnimation_(); // This animation uses the FLIP approach. // Read more here: https://aerotwist.com/blog/flip-your-animations/ this.adapter_.setScrollAreaScrollLeft(animation.finalScrollPosition); this.adapter_.setScrollContentStyleProperty('transform', 'translateX(' + animation.scrollDelta + 'px)'); // Force repaint this.adapter_.computeScrollAreaClientRect(); requestAnimationFrame(function () { _this2.adapter_.addClass(MDCTabScrollerFoundation.cssClasses.ANIMATING); _this2.adapter_.setScrollContentStyleProperty('transform', 'none'); }); this.isAnimating_ = true; } /** * Stops scroll animation * @private */ }, { key: 'stopScrollAnimation_', value: function stopScrollAnimation_() { this.isAnimating_ = false; var currentScrollPosition = this.getAnimatingScrollPosition_(); this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING); this.adapter_.setScrollContentStyleProperty('transform', 'translateX(0px)'); this.adapter_.setScrollAreaScrollLeft(currentScrollPosition); } /** * Gets the current scroll position during animation * @return {number} * @private */ }, { key: 'getAnimatingScrollPosition_', value: function getAnimatingScrollPosition_() { var currentTranslateX = this.calculateCurrentTranslateX_(); var scrollLeft = this.adapter_.getScrollAreaScrollLeft(); if (this.isRTL_()) { return this.getRTLScroller().getAnimatingScrollPosition(scrollLeft, currentTranslateX); } return scrollLeft - currentTranslateX; } /** * Determines the RTL Scroller to use * @return {!MDCTabScrollerRTL} * @private */ }, { key: 'rtlScrollerFactory_', value: function rtlScrollerFactory_() { // Browsers have three different implementations of scrollLeft in RTL mode, // dependent on the browser. The behavior is based off the max LTR // scrollleft value and 0. // // * Default scrolling in RTL * // - Left-most value: 0 // - Right-most value: Max LTR scrollLeft value // // * Negative scrolling in RTL * // - Left-most value: Negated max LTR scrollLeft value // - Right-most value: 0 // // * Reverse scrolling in RTL * // - Left-most value: Max LTR scrollLeft value // - Right-most value: 0 // // We use those principles below to determine which RTL scrollLeft // behavior is implemented in the current browser. var initialScrollLeft = this.adapter_.getScrollAreaScrollLeft(); this.adapter_.setScrollAreaScrollLeft(initialScrollLeft - 1); var newScrollLeft = this.adapter_.getScrollAreaScrollLeft(); // If the newScrollLeft value is negative,then we know that the browser has // implemented negative RTL scrolling, since all other implementations have // only positive values. if (newScrollLeft < 0) { // Undo the scrollLeft test check this.adapter_.setScrollAreaScrollLeft(initialScrollLeft); return new __WEBPACK_IMPORTED_MODULE_5__rtl_negative_scroller__["a" /* default */](this.adapter_); } var rootClientRect = this.adapter_.computeScrollAreaClientRect(); var contentClientRect = this.adapter_.computeScrollContentClientRect(); var rightEdgeDelta = Math.round(contentClientRect.right - rootClientRect.right); // Undo the scrollLeft test check this.adapter_.setScrollAreaScrollLeft(initialScrollLeft); // By calculating the clientRect of the root element and the clientRect of // the content element, we can determine how much the scroll value changed // when we performed the scrollLeft subtraction above. if (rightEdgeDelta === newScrollLeft) { return new __WEBPACK_IMPORTED_MODULE_6__rtl_reverse_scroller__["a" /* default */](this.adapter_); } return new __WEBPACK_IMPORTED_MODULE_4__rtl_default_scroller__["a" /* default */](this.adapter_); } /** * @return {boolean} * @private */ }, { key: 'isRTL_', value: function isRTL_() { return this.adapter_.getScrollContentStyleValue('direction') === 'rtl'; } }]); return MDCTabScrollerFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerFoundation); /***/ }), /* 125 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCTabScrollerRTL} * @final */ var MDCTabScrollerRTLDefault = function (_MDCTabScrollerRTL) { _inherits(MDCTabScrollerRTLDefault, _MDCTabScrollerRTL); function MDCTabScrollerRTLDefault() { _classCallCheck(this, MDCTabScrollerRTLDefault); return _possibleConstructorReturn(this, (MDCTabScrollerRTLDefault.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLDefault)).apply(this, arguments)); } _createClass(MDCTabScrollerRTLDefault, [{ key: 'getScrollPositionRTL', /** * @return {number} */ value: function getScrollPositionRTL() { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var _calculateScrollEdges = this.calculateScrollEdges_(), right = _calculateScrollEdges.right; // Scroll values on most browsers are ints instead of floats so we round return Math.round(right - currentScrollLeft); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'scrollToRTL', value: function scrollToRTL(scrollX) { var edges = this.calculateScrollEdges_(); var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(edges.right - scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: clampedScrollLeft - currentScrollLeft } ); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'incrementScrollRTL', value: function incrementScrollRTL(scrollX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: clampedScrollLeft - currentScrollLeft } ); } /** * @param {number} scrollX * @return {number} */ }, { key: 'getAnimatingScrollPosition', value: function getAnimatingScrollPosition(scrollX) { return scrollX; } /** * @return {!MDCTabScrollerHorizontalEdges} * @private */ }, { key: 'calculateScrollEdges_', value: function calculateScrollEdges_() { var contentWidth = this.adapter_.getScrollContentOffsetWidth(); var rootWidth = this.adapter_.getScrollAreaOffsetWidth(); return (/** @type {!MDCTabScrollerHorizontalEdges} */{ left: 0, right: contentWidth - rootWidth } ); } /** * @param {number} scrollX * @return {number} * @private */ }, { key: 'clampScrollValue_', value: function clampScrollValue_(scrollX) { var edges = this.calculateScrollEdges_(); return Math.min(Math.max(edges.left, scrollX), edges.right); } }]); return MDCTabScrollerRTLDefault; }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLDefault); /***/ }), /* 126 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCTabScrollerRTL} * @final */ var MDCTabScrollerRTLNegative = function (_MDCTabScrollerRTL) { _inherits(MDCTabScrollerRTLNegative, _MDCTabScrollerRTL); function MDCTabScrollerRTLNegative() { _classCallCheck(this, MDCTabScrollerRTLNegative); return _possibleConstructorReturn(this, (MDCTabScrollerRTLNegative.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLNegative)).apply(this, arguments)); } _createClass(MDCTabScrollerRTLNegative, [{ key: 'getScrollPositionRTL', /** * @param {number} translateX The current translateX position * @return {number} */ value: function getScrollPositionRTL(translateX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); return Math.round(translateX - currentScrollLeft); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'scrollToRTL', value: function scrollToRTL(scrollX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(-scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: clampedScrollLeft - currentScrollLeft } ); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'incrementScrollRTL', value: function incrementScrollRTL(scrollX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: clampedScrollLeft - currentScrollLeft } ); } /** * @param {number} scrollX * @param {number} translateX * @return {number} */ }, { key: 'getAnimatingScrollPosition', value: function getAnimatingScrollPosition(scrollX, translateX) { return scrollX - translateX; } /** * @return {!MDCTabScrollerHorizontalEdges} * @private */ }, { key: 'calculateScrollEdges_', value: function calculateScrollEdges_() { var contentWidth = this.adapter_.getScrollContentOffsetWidth(); var rootWidth = this.adapter_.getScrollAreaOffsetWidth(); return (/** @type {!MDCTabScrollerHorizontalEdges} */{ left: rootWidth - contentWidth, right: 0 } ); } /** * @param {number} scrollX * @return {number} * @private */ }, { key: 'clampScrollValue_', value: function clampScrollValue_(scrollX) { var edges = this.calculateScrollEdges_(); return Math.max(Math.min(edges.right, scrollX), edges.left); } }]); return MDCTabScrollerRTLNegative; }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLNegative); /***/ }), /* 127 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCTabScrollerRTL} * @final */ var MDCTabScrollerRTLReverse = function (_MDCTabScrollerRTL) { _inherits(MDCTabScrollerRTLReverse, _MDCTabScrollerRTL); function MDCTabScrollerRTLReverse() { _classCallCheck(this, MDCTabScrollerRTLReverse); return _possibleConstructorReturn(this, (MDCTabScrollerRTLReverse.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLReverse)).apply(this, arguments)); } _createClass(MDCTabScrollerRTLReverse, [{ key: 'getScrollPositionRTL', /** * @param {number} translateX * @return {number} */ value: function getScrollPositionRTL(translateX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); // Scroll values on most browsers are ints instead of floats so we round return Math.round(currentScrollLeft - translateX); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'scrollToRTL', value: function scrollToRTL(scrollX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: currentScrollLeft - clampedScrollLeft } ); } /** * @param {number} scrollX * @return {!MDCTabScrollerAnimation} */ }, { key: 'incrementScrollRTL', value: function incrementScrollRTL(scrollX) { var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft(); var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft + scrollX); return (/** @type {!MDCTabScrollerAnimation} */{ finalScrollPosition: clampedScrollLeft, scrollDelta: currentScrollLeft - clampedScrollLeft } ); } /** * @param {number} scrollX * @return {number} */ }, { key: 'getAnimatingScrollPosition', value: function getAnimatingScrollPosition(scrollX, translateX) { return scrollX + translateX; } /** * @return {!MDCTabScrollerHorizontalEdges} * @private */ }, { key: 'calculateScrollEdges_', value: function calculateScrollEdges_() { var contentWidth = this.adapter_.getScrollContentOffsetWidth(); var rootWidth = this.adapter_.getScrollAreaOffsetWidth(); return (/** @type {!MDCTabScrollerHorizontalEdges} */{ left: contentWidth - rootWidth, right: 0 } ); } /** * @param {number} scrollX * @return {number} * @private */ }, { key: 'clampScrollValue_', value: function clampScrollValue_(scrollX) { var edges = this.calculateScrollEdges_(); return Math.min(Math.max(edges.right, scrollX), edges.left); } }]); return MDCTabScrollerRTLReverse; }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLReverse); /***/ }), /* 128 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHorizontalScrollbarHeight", function() { return computeHorizontalScrollbarHeight; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatchesProperty", function() { return getMatchesProperty; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(42); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Stores result from computeHorizontalScrollbarHeight to avoid redundant processing. * @private {number|undefined} */ var horizontalScrollbarHeight_ = void 0; /** * Computes the height of browser-rendered horizontal scrollbars using a self-created test element. * May return 0 (e.g. on OS X browsers under default configuration). * @param {!Document} documentObj * @param {boolean=} shouldCacheResult * @return {number} */ function computeHorizontalScrollbarHeight(documentObj) { var shouldCacheResult = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') { return horizontalScrollbarHeight_; } var el = documentObj.createElement('div'); el.classList.add(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].SCROLL_TEST); documentObj.body.appendChild(el); var horizontalScrollbarHeight = el.offsetHeight - el.clientHeight; documentObj.body.removeChild(el); if (shouldCacheResult) { horizontalScrollbarHeight_ = horizontalScrollbarHeight; } return horizontalScrollbarHeight; } /** * @param {!Object} HTMLElementPrototype * @return {!Array} */ function getMatchesProperty(HTMLElementPrototype) { return ['msMatchesSelector', 'matches'].filter(function (p) { return p in HTMLElementPrototype; }).pop(); } /***/ }), /* 129 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(130); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(43); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_tab_foundation__ = __webpack_require__(40); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_tab_adapter__ = __webpack_require__(11); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @type {Set} */ var ACCEPTABLE_KEYS = new Set(); // IE11 has no support for new Set with iterable so we need to initialize this by hand ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].HOME_KEY); /** * @type {Map} */ var KEYCODE_MAP = new Map(); // IE11 has no support for new Map with iterable so we need to initialize this by hand KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].HOME_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].HOME_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].END_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].ARROW_LEFT_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].ARROW_RIGHT_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY); /** * @extends {MDCFoundation} * @final */ var MDCTabBarFoundation = function (_MDCFoundation) { _inherits(MDCTabBarFoundation, _MDCFoundation); _createClass(MDCTabBarFoundation, null, [{ key: 'strings', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */]; } /** @return enum {number} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */]; } /** * @see MDCTabBarAdapter for typing information * @return {!MDCTabBarAdapter} */ }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTabBarAdapter} */{ scrollTo: function scrollTo() {}, incrementScroll: function incrementScroll() {}, getScrollPosition: function getScrollPosition() {}, getScrollContentWidth: function getScrollContentWidth() {}, getOffsetWidth: function getOffsetWidth() {}, isRTL: function isRTL() {}, activateTabAtIndex: function activateTabAtIndex() {}, deactivateTabAtIndex: function deactivateTabAtIndex() {}, getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex() {}, getTabDimensionsAtIndex: function getTabDimensionsAtIndex() {}, getActiveTabIndex: function getActiveTabIndex() {}, getIndexOfTab: function getIndexOfTab() {}, getTabListLength: function getTabListLength() {}, notifyTabActivated: function notifyTabActivated() {} } ); } /** * @param {!MDCTabBarAdapter} adapter * */ }]); function MDCTabBarFoundation(adapter) { _classCallCheck(this, MDCTabBarFoundation); return _possibleConstructorReturn(this, (MDCTabBarFoundation.__proto__ || Object.getPrototypeOf(MDCTabBarFoundation)).call(this, _extends(MDCTabBarFoundation.defaultAdapter, adapter))); } _createClass(MDCTabBarFoundation, [{ key: 'init', value: function init() { var activeIndex = this.adapter_.getActiveTabIndex(); this.scrollIntoView(activeIndex); } /** * Activates the tab at the given index * @param {number} index */ }, { key: 'activateTab', value: function activateTab(index) { var previousActiveIndex = this.adapter_.getActiveTabIndex(); if (!this.indexIsInRange_(index)) { return; } this.adapter_.deactivateTabAtIndex(previousActiveIndex); this.adapter_.activateTabAtIndex(index, this.adapter_.getTabIndicatorClientRectAtIndex(previousActiveIndex)); this.scrollIntoView(index); // Only notify the tab activation if the index is different than the previously active index if (index !== previousActiveIndex) { this.adapter_.notifyTabActivated(index); } } /** * Handles the keydown event * @param {!Event} evt */ }, { key: 'handleKeyDown', value: function handleKeyDown(evt) { // Get the key from the event var key = this.getKeyFromEvent_(evt); // Early exit if the event key isn't one of the keyboard navigation keys if (key === undefined) { return; } evt.preventDefault(); this.activateTabFromKey_(key); } /** * Handles the MDCTab:interacted event * @param {!Event} evt */ }, { key: 'handleTabInteraction', value: function handleTabInteraction(evt) { this.activateTab(this.adapter_.getIndexOfTab(evt.detail.tab)); } /** * Scrolls the tab at the given index into view * @param {number} index The tab index to make visible */ }, { key: 'scrollIntoView', value: function scrollIntoView(index) { // Early exit if the index is out of range if (!this.indexIsInRange_(index)) { return; } // Always scroll to 0 if scrolling to the 0th index if (index === 0) { return this.adapter_.scrollTo(0); } // Always scroll to the max value if scrolling to the Nth index // MDCTabScroller.scrollTo() will never scroll past the max possible value if (index === this.adapter_.getTabListLength() - 1) { return this.adapter_.scrollTo(this.adapter_.getScrollContentWidth()); } if (this.isRTL_()) { return this.scrollIntoViewRTL_(index); } this.scrollIntoView_(index); } /** * Private method for activating a tab from a key * @param {string} key The name of the key * @private */ }, { key: 'activateTabFromKey_', value: function activateTabFromKey_(key) { var isRTL = this.isRTL_(); var maxTabIndex = this.adapter_.getTabListLength() - 1; var shouldGoToEnd = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY; var shouldDecrement = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY && isRTL; var shouldIncrement = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY && isRTL; var tabIndex = this.adapter_.getActiveTabIndex(); if (shouldGoToEnd) { tabIndex = maxTabIndex; } else if (shouldDecrement) { tabIndex -= 1; } else if (shouldIncrement) { tabIndex += 1; } else { tabIndex = 0; } if (tabIndex < 0) { tabIndex = maxTabIndex; } else if (tabIndex > maxTabIndex) { tabIndex = 0; } this.activateTab(tabIndex); } /** * Calculates the scroll increment that will make the tab at the given index visible * @param {number} index The index of the tab * @param {number} nextIndex The index of the next tab * @param {number} scrollPosition The current scroll position * @param {number} barWidth The width of the Tab Bar * @return {number} * @private */ }, { key: 'calculateScrollIncrement_', value: function calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth) { var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex); var relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth; var relativeContentRight = nextTabDimensions.contentRight - scrollPosition; var leftIncrement = relativeContentRight - __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; var rightIncrement = relativeContentLeft + __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; if (nextIndex < index) { return Math.min(leftIncrement, 0); } return Math.max(rightIncrement, 0); } /** * Calculates the scroll increment that will make the tab at the given index visible in RTL * @param {number} index The index of the tab * @param {number} nextIndex The index of the next tab * @param {number} scrollPosition The current scroll position * @param {number} barWidth The width of the Tab Bar * @param {number} scrollContentWidth The width of the scroll content * @return {number} * @private */ }, { key: 'calculateScrollIncrementRTL_', value: function calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollContentWidth) { var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex); var relativeContentLeft = scrollContentWidth - nextTabDimensions.contentLeft - scrollPosition; var relativeContentRight = scrollContentWidth - nextTabDimensions.contentRight - scrollPosition - barWidth; var leftIncrement = relativeContentRight + __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; var rightIncrement = relativeContentLeft - __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; if (nextIndex > index) { return Math.max(leftIncrement, 0); } return Math.min(rightIncrement, 0); } /** * Determines the index of the adjacent tab closest to either edge of the Tab Bar * @param {number} index The index of the tab * @param {!MDCTabDimensions} tabDimensions The dimensions of the tab * @param {number} scrollPosition The current scroll position * @param {number} barWidth The width of the tab bar * @return {number} * @private */ }, { key: 'findAdjacentTabIndexClosestToEdge_', value: function findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth) { /** * Tabs are laid out in the Tab Scroller like this: * * Scroll Position * +---+ * | | Bar Width * | +-----------------------------------+ * | | | * | V V * | +-----------------------------------+ * V | Tab Scroller | * +------------+--------------+-------------------+ * | Tab | Tab | Tab | * +------------+--------------+-------------------+ * | | * +-----------------------------------+ * * To determine the next adjacent index, we look at the Tab root left and * Tab root right, both relative to the scroll position. If the Tab root * left is less than 0, then we know it's out of view to the left. If the * Tab root right minus the bar width is greater than 0, we know the Tab is * out of view to the right. From there, we either increment or decrement * the index. */ var relativeRootLeft = tabDimensions.rootLeft - scrollPosition; var relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth; var relativeRootDelta = relativeRootLeft + relativeRootRight; var leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0; var rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0; if (leftEdgeIsCloser) { return index - 1; } if (rightEdgeIsCloser) { return index + 1; } return -1; } /** * Determines the index of the adjacent tab closest to either edge of the Tab Bar in RTL * @param {number} index The index of the tab * @param {!MDCTabDimensions} tabDimensions The dimensions of the tab * @param {number} scrollPosition The current scroll position * @param {number} barWidth The width of the tab bar * @param {number} scrollContentWidth The width of the scroller content * @return {number} * @private */ }, { key: 'findAdjacentTabIndexClosestToEdgeRTL_', value: function findAdjacentTabIndexClosestToEdgeRTL_(index, tabDimensions, scrollPosition, barWidth, scrollContentWidth) { var rootLeft = scrollContentWidth - tabDimensions.rootLeft - barWidth - scrollPosition; var rootRight = scrollContentWidth - tabDimensions.rootRight - scrollPosition; var rootDelta = rootLeft + rootRight; var leftEdgeIsCloser = rootLeft > 0 || rootDelta > 0; var rightEdgeIsCloser = rootRight < 0 || rootDelta < 0; if (leftEdgeIsCloser) { return index + 1; } if (rightEdgeIsCloser) { return index - 1; } return -1; } /** * Returns the key associated with a keydown event * @param {!Event} evt The keydown event * @return {string} * @private */ }, { key: 'getKeyFromEvent_', value: function getKeyFromEvent_(evt) { if (ACCEPTABLE_KEYS.has(evt.key)) { return evt.key; } return KEYCODE_MAP.get(evt.keyCode); } /** * Returns whether a given index is inclusively between the ends * @param {number} index The index to test * @private */ }, { key: 'indexIsInRange_', value: function indexIsInRange_(index) { return index >= 0 && index < this.adapter_.getTabListLength(); } /** * Returns the view's RTL property * @return {boolean} * @private */ }, { key: 'isRTL_', value: function isRTL_() { return this.adapter_.isRTL(); } /** * Scrolls the tab at the given index into view for left-to-right useragents * @param {number} index The index of the tab to scroll into view * @private */ }, { key: 'scrollIntoView_', value: function scrollIntoView_(index) { var scrollPosition = this.adapter_.getScrollPosition(); var barWidth = this.adapter_.getOffsetWidth(); var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index); var nextIndex = this.findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth); if (!this.indexIsInRange_(nextIndex)) { return; } var scrollIncrement = this.calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth); this.adapter_.incrementScroll(scrollIncrement); } /** * Scrolls the tab at the given index into view in RTL * @param {number} index The tab index to make visible * @private */ }, { key: 'scrollIntoViewRTL_', value: function scrollIntoViewRTL_(index) { var scrollPosition = this.adapter_.getScrollPosition(); var barWidth = this.adapter_.getOffsetWidth(); var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index); var scrollWidth = this.adapter_.getScrollContentWidth(); var nextIndex = this.findAdjacentTabIndexClosestToEdgeRTL_(index, tabDimensions, scrollPosition, barWidth, scrollWidth); if (!this.indexIsInRange_(nextIndex)) { return; } var scrollIncrement = this.calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollWidth); this.adapter_.incrementScroll(scrollIncrement); } }]); return MDCTabBarFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTabBarFoundation); /***/ }), /* 130 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return numbers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { TAB_ACTIVATED_EVENT: 'MDCTabBar:activated', TAB_SCROLLER_SELECTOR: '.mdc-tab-scroller', TAB_SELECTOR: '.mdc-tab', END_KEY: 'End', HOME_KEY: 'Home', ARROW_LEFT_KEY: 'ArrowLeft', ARROW_RIGHT_KEY: 'ArrowRight' }; /** @enum {number} */ var numbers = { EXTRA_SCROLL_AMOUNT: 20, END_KEYCODE: 35, HOME_KEYCODE: 36, ARROW_LEFT_KEYCODE: 37, ARROW_RIGHT_KEYCODE: 39 }; /***/ }), /* 131 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextField", function() { return MDCTextField; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_util__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(44); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__adapter__ = __webpack_require__(45); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__foundation__ = __webpack_require__(134); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_line_ripple_index__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__helper_text_index__ = __webpack_require__(135); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__icon_index__ = __webpack_require__(136); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__material_floating_label_index__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__material_notched_outline_index__ = __webpack_require__(18); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_5__foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperText", function() { return __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperTextFoundation", function() { return __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["b"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIcon", function() { return __WEBPACK_IMPORTED_MODULE_8__icon_index__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIconFoundation", function() { return __WEBPACK_IMPORTED_MODULE_8__icon_index__["b"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCComponent} * @final */ var MDCTextField = function (_MDCComponent) { _inherits(MDCTextField, _MDCComponent); /** * @param {...?} args */ function MDCTextField() { var _ref; _classCallCheck(this, MDCTextField); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTextField.__proto__ || Object.getPrototypeOf(MDCTextField)).call.apply(_ref, [this].concat(args))); _this.input_; /** @type {?MDCRipple} */ _this.ripple; /** @private {?MDCLineRipple} */ _this.lineRipple_; /** @private {?MDCTextFieldHelperText} */ _this.helperText_; /** @private {?MDCTextFieldIcon} */ _this.icon_; /** @private {?MDCFloatingLabel} */ _this.label_; /** @private {?MDCNotchedOutline} */ _this.outline_; return _this; } /** * @param {!Element} root * @return {!MDCTextField} */ _createClass(MDCTextField, [{ key: 'initialize', /** * @param {(function(!Element): !MDCRipple)=} rippleFactory A function which * creates a new MDCRipple. * @param {(function(!Element): !MDCLineRipple)=} lineRippleFactory A function which * creates a new MDCLineRipple. * @param {(function(!Element): !MDCTextFieldHelperText)=} helperTextFactory A function which * creates a new MDCTextFieldHelperText. * @param {(function(!Element): !MDCTextFieldIcon)=} iconFactory A function which * creates a new MDCTextFieldIcon. * @param {(function(!Element): !MDCFloatingLabel)=} labelFactory A function which * creates a new MDCFloatingLabel. * @param {(function(!Element): !MDCNotchedOutline)=} outlineFactory A function which * creates a new MDCNotchedOutline. */ value: function initialize() { var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) { return new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](el, foundation); }; var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) { return new __WEBPACK_IMPORTED_MODULE_6__material_line_ripple_index__["MDCLineRipple"](el); }; var helperTextFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) { return new __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["a" /* MDCTextFieldHelperText */](el); }; var iconFactory = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (el) { return new __WEBPACK_IMPORTED_MODULE_8__icon_index__["a" /* MDCTextFieldIcon */](el); }; var _this2 = this; var labelFactory = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (el) { return new __WEBPACK_IMPORTED_MODULE_9__material_floating_label_index__["MDCFloatingLabel"](el); }; var outlineFactory = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (el) { return new __WEBPACK_IMPORTED_MODULE_10__material_notched_outline_index__["MDCNotchedOutline"](el); }; this.input_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].INPUT_SELECTOR); var labelElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].LABEL_SELECTOR); if (labelElement) { this.label_ = labelFactory(labelElement); } var lineRippleElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].LINE_RIPPLE_SELECTOR); if (lineRippleElement) { this.lineRipple_ = lineRippleFactory(lineRippleElement); } var outlineElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].OUTLINE_SELECTOR); if (outlineElement) { this.outline_ = outlineFactory(outlineElement); } if (this.input_.hasAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].ARIA_CONTROLS)) { var helperTextElement = document.getElementById(this.input_.getAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].ARIA_CONTROLS)); if (helperTextElement) { this.helperText_ = helperTextFactory(helperTextElement); } } var iconElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].ICON_SELECTOR); if (iconElement) { this.icon_ = iconFactory(iconElement); } this.ripple = null; if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["b" /* cssClasses */].BOX)) { var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_2__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype); var adapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter( /** @type {!RippleCapableSurface} */this), { isSurfaceActive: function isSurfaceActive() { return _this2.input_[MATCHES](':active'); }, registerInteractionHandler: function registerInteractionHandler(type, handler) { return _this2.input_.addEventListener(type, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) { return _this2.input_.removeEventListener(type, handler); } }); var foundation = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](adapter); this.ripple = rippleFactory(this.root_, foundation); } } }, { key: 'destroy', value: function destroy() { if (this.ripple) { this.ripple.destroy(); } if (this.lineRipple_) { this.lineRipple_.destroy(); } if (this.helperText_) { this.helperText_.destroy(); } if (this.icon_) { this.icon_.destroy(); } if (this.label_) { this.label_.destroy(); } if (this.outline_) { this.outline_.destroy(); } _get(MDCTextField.prototype.__proto__ || Object.getPrototypeOf(MDCTextField.prototype), 'destroy', this).call(this); } /** * Initiliazes the Text Field's internal state based on the environment's * state. */ }, { key: 'initialSyncWithDom', value: function initialSyncWithDom() { this.disabled = this.input_.disabled; } /** * @return {string} The value of the input. */ }, { key: 'layout', /** * Recomputes the outline SVG path for the outline element. */ value: function layout() { var openNotch = this.foundation_.shouldFloat; this.foundation_.notchOutline(openNotch); } /** * @return {!MDCTextFieldFoundation} */ }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this3 = this; return new __WEBPACK_IMPORTED_MODULE_5__foundation__["a" /* default */]( /** @type {!MDCTextFieldAdapter} */_extends({ addClass: function addClass(className) { return _this3.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this3.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this3.root_.classList.contains(className); }, registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler(evtType, handler) { return _this3.root_.addEventListener(evtType, handler); }, deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler(evtType, handler) { return _this3.root_.removeEventListener(evtType, handler); }, registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler(handler) { var getAttributesList = function getAttributesList(mutationsList) { return mutationsList.map(function (mutation) { return mutation.attributeName; }); }; var observer = new MutationObserver(function (mutationsList) { return handler(getAttributesList(mutationsList)); }); var targetNode = _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].INPUT_SELECTOR); var config = { attributes: true }; observer.observe(targetNode, config); return observer; }, deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler(observer) { return observer.disconnect(); }, isFocused: function isFocused() { return document.activeElement === _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["d" /* strings */].INPUT_SELECTOR); }, isRtl: function isRtl() { return window.getComputedStyle(_this3.root_).getPropertyValue('direction') === 'rtl'; } }, this.getInputAdapterMethods_(), this.getLabelAdapterMethods_(), this.getLineRippleAdapterMethods_(), this.getOutlineAdapterMethods_()), this.getFoundationMap_()); } /** * @return {!{ * shakeLabel: function(boolean): undefined, * floatLabel: function(boolean): undefined, * hasLabel: function(): boolean, * getLabelWidth: function(): number, * }} */ }, { key: 'getLabelAdapterMethods_', value: function getLabelAdapterMethods_() { var _this4 = this; return { shakeLabel: function shakeLabel(shouldShake) { return _this4.label_.shake(shouldShake); }, floatLabel: function floatLabel(shouldFloat) { return _this4.label_.float(shouldFloat); }, hasLabel: function hasLabel() { return !!_this4.label_; }, getLabelWidth: function getLabelWidth() { return _this4.label_.getWidth(); } }; } /** * @return {!{ * activateLineRipple: function(): undefined, * deactivateLineRipple: function(): undefined, * setLineRippleTransformOrigin: function(number): undefined, * }} */ }, { key: 'getLineRippleAdapterMethods_', value: function getLineRippleAdapterMethods_() { var _this5 = this; return { activateLineRipple: function activateLineRipple() { if (_this5.lineRipple_) { _this5.lineRipple_.activate(); } }, deactivateLineRipple: function deactivateLineRipple() { if (_this5.lineRipple_) { _this5.lineRipple_.deactivate(); } }, setLineRippleTransformOrigin: function setLineRippleTransformOrigin(normalizedX) { if (_this5.lineRipple_) { _this5.lineRipple_.setRippleCenter(normalizedX); } } }; } /** * @return {!{ * notchOutline: function(number, boolean): undefined, * hasOutline: function(): boolean, * }} */ }, { key: 'getOutlineAdapterMethods_', value: function getOutlineAdapterMethods_() { var _this6 = this; return { notchOutline: function notchOutline(labelWidth, isRtl) { return _this6.outline_.notch(labelWidth, isRtl); }, closeOutline: function closeOutline() { return _this6.outline_.closeNotch(); }, hasOutline: function hasOutline() { return !!_this6.outline_; } }; } /** * @return {!{ * registerInputInteractionHandler: function(string, function()): undefined, * deregisterInputInteractionHandler: function(string, function()): undefined, * getNativeInput: function(): ?Element, * }} */ }, { key: 'getInputAdapterMethods_', value: function getInputAdapterMethods_() { var _this7 = this; return { registerInputInteractionHandler: function registerInputInteractionHandler(evtType, handler) { return _this7.input_.addEventListener(evtType, handler); }, deregisterInputInteractionHandler: function deregisterInputInteractionHandler(evtType, handler) { return _this7.input_.removeEventListener(evtType, handler); }, getNativeInput: function getNativeInput() { return _this7.input_; } }; } /** * Returns a map of all subcomponents to subfoundations. * @return {!FoundationMapType} */ }, { key: 'getFoundationMap_', value: function getFoundationMap_() { return { helperText: this.helperText_ ? this.helperText_.foundation : undefined, icon: this.icon_ ? this.icon_.foundation : undefined }; } }, { key: 'value', get: function get() { return this.foundation_.getValue(); } /** * @param {string} value The value to set on the input. */ , set: function set(value) { this.foundation_.setValue(value); } /** * @return {boolean} True if the Text Field is disabled. */ }, { key: 'disabled', get: function get() { return this.foundation_.isDisabled(); } /** * @param {boolean} disabled Sets the Text Field disabled or enabled. */ , set: function set(disabled) { this.foundation_.setDisabled(disabled); } /** * @return {boolean} valid True if the Text Field is valid. */ }, { key: 'valid', get: function get() { return this.foundation_.isValid(); } /** * @param {boolean} valid Sets the Text Field valid or invalid. */ , set: function set(valid) { this.foundation_.setValid(valid); } /** * @return {boolean} True if the Text Field is required. */ }, { key: 'required', get: function get() { return this.input_.required; } /** * @param {boolean} required Sets the Text Field to required. */ , set: function set(required) { this.input_.required = required; } /** * @return {string} The input element's validation pattern. */ }, { key: 'pattern', get: function get() { return this.input_.pattern; } /** * @param {string} pattern Sets the input element's validation pattern. */ , set: function set(pattern) { this.input_.pattern = pattern; } /** * @return {number} The input element's minLength. */ }, { key: 'minLength', get: function get() { return this.input_.minLength; } /** * @param {number} minLength Sets the input element's minLength. */ , set: function set(minLength) { this.input_.minLength = minLength; } /** * @return {number} The input element's maxLength. */ }, { key: 'maxLength', get: function get() { return this.input_.maxLength; } /** * @param {number} maxLength Sets the input element's maxLength. */ , set: function set(maxLength) { // Chrome throws exception if maxLength is set < 0 if (maxLength < 0) { this.input_.removeAttribute('maxLength'); } else { this.input_.maxLength = maxLength; } } /** * @return {string} The input element's min. */ }, { key: 'min', get: function get() { return this.input_.min; } /** * @param {string} min Sets the input element's min. */ , set: function set(min) { this.input_.min = min; } /** * @return {string} The input element's max. */ }, { key: 'max', get: function get() { return this.input_.max; } /** * @param {string} max Sets the input element's max. */ , set: function set(max) { this.input_.max = max; } /** * @return {string} The input element's step. */ }, { key: 'step', get: function get() { return this.input_.step; } /** * @param {string} step Sets the input element's step. */ , set: function set(step) { this.input_.step = step; } /** * Sets the helper text element content. * @param {string} content */ }, { key: 'helperTextContent', set: function set(content) { this.foundation_.setHelperTextContent(content); } /** * Sets the aria label of the icon. * @param {string} label */ }, { key: 'iconAriaLabel', set: function set(label) { this.foundation_.setIconAriaLabel(label); } /** * Sets the text content of the icon. * @param {string} content */ }, { key: 'iconContent', set: function set(content) { this.foundation_.setIconContent(content); } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCTextField(root); } }]); return MDCTextField; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 132 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { ARIA_HIDDEN: 'aria-hidden', ROLE: 'role' }; /** @enum {string} */ var cssClasses = { HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent', HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg' }; /***/ }), /* 133 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; }); /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** @enum {string} */ var strings = { ICON_EVENT: 'MDCTextField:icon', ICON_ROLE: 'button' }; /***/ }), /* 134 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helper_text_foundation__ = __webpack_require__(21); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__icon_foundation__ = __webpack_require__(22); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(45); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(44); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* eslint-disable no-unused-vars */ /* eslint-enable no-unused-vars */ /** * @extends {MDCFoundation} * @final */ var MDCTextFieldFoundation = function (_MDCFoundation) { _inherits(MDCTextFieldFoundation, _MDCFoundation); _createClass(MDCTextFieldFoundation, [{ key: 'shouldShake', /** @return {boolean} */ get: function get() { return !this.isValid() && !this.isFocused_; } /** @return {boolean} */ }, { key: 'shouldFloat', get: function get() { return this.isFocused_ || !!this.getValue() || this.isBadInput_(); } /** * {@see MDCTextFieldAdapter} for typing information on parameters and return * types. * @return {!MDCTextFieldAdapter} */ }], [{ key: 'cssClasses', /** @return enum {string} */ get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* cssClasses */]; } /** @return enum {string} */ }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */]; } /** @return enum {string} */ }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* numbers */]; } }, { key: 'defaultAdapter', get: function get() { return (/** @type {!MDCTextFieldAdapter} */{ addClass: function addClass() {}, removeClass: function removeClass() {}, hasClass: function hasClass() {}, registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() {}, deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() {}, registerInputInteractionHandler: function registerInputInteractionHandler() {}, deregisterInputInteractionHandler: function deregisterInputInteractionHandler() {}, registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() {}, deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() {}, getNativeInput: function getNativeInput() {}, isFocused: function isFocused() {}, isRtl: function isRtl() {}, activateLineRipple: function activateLineRipple() {}, deactivateLineRipple: function deactivateLineRipple() {}, setLineRippleTransformOrigin: function setLineRippleTransformOrigin() {}, shakeLabel: function shakeLabel() {}, floatLabel: function floatLabel() {}, hasLabel: function hasLabel() {}, getLabelWidth: function getLabelWidth() {}, hasOutline: function hasOutline() {}, notchOutline: function notchOutline() {}, closeOutline: function closeOutline() {} } ); } /** * @param {!MDCTextFieldAdapter} adapter * @param {!FoundationMapType=} foundationMap Map from subcomponent names to their subfoundations. */ }]); function MDCTextFieldFoundation(adapter) { var foundationMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /** @type {!FoundationMapType} */{}; _classCallCheck(this, MDCTextFieldFoundation); /** @type {!MDCTextFieldHelperTextFoundation|undefined} */ var _this = _possibleConstructorReturn(this, (MDCTextFieldFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldFoundation)).call(this, _extends(MDCTextFieldFoundation.defaultAdapter, adapter))); _this.helperText_ = foundationMap.helperText; /** @type {!MDCTextFieldIconFoundation|undefined} */ _this.icon_ = foundationMap.icon; /** @private {boolean} */ _this.isFocused_ = false; /** @private {boolean} */ _this.receivedUserInput_ = false; /** @private {boolean} */ _this.useCustomValidityChecking_ = false; /** @private {boolean} */ _this.isValid_ = true; /** @private {function(): undefined} */ _this.inputFocusHandler_ = function () { return _this.activateFocus(); }; /** @private {function(): undefined} */ _this.inputBlurHandler_ = function () { return _this.deactivateFocus(); }; /** @private {function(): undefined} */ _this.inputInputHandler_ = function () { return _this.autoCompleteFocus(); }; /** @private {function(!Event): undefined} */ _this.setPointerXOffset_ = function (evt) { return _this.setTransformOrigin(evt); }; /** @private {function(!Event): undefined} */ _this.textFieldInteractionHandler_ = function () { return _this.handleTextFieldInteraction(); }; /** @private {function(!Array): undefined} */ _this.validationAttributeChangeHandler_ = function (attributesList) { return _this.handleValidationAttributeChange(attributesList); }; /** @private {!MutationObserver} */ _this.validationObserver_; return _this; } _createClass(MDCTextFieldFoundation, [{ key: 'init', value: function init() { var _this2 = this; this.adapter_.addClass(MDCTextFieldFoundation.cssClasses.UPGRADED); // Ensure label does not collide with any pre-filled value. if (this.adapter_.hasLabel() && (this.getValue() || this.isBadInput_())) { this.adapter_.floatLabel(this.shouldFloat); this.notchOutline(this.shouldFloat); } if (this.adapter_.isFocused()) { this.inputFocusHandler_(); } this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_); this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_); this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_); ['mousedown', 'touchstart'].forEach(function (evtType) { _this2.adapter_.registerInputInteractionHandler(evtType, _this2.setPointerXOffset_); }); ['click', 'keydown'].forEach(function (evtType) { _this2.adapter_.registerTextFieldInteractionHandler(evtType, _this2.textFieldInteractionHandler_); }); this.validationObserver_ = this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_); } }, { key: 'destroy', value: function destroy() { var _this3 = this; this.adapter_.removeClass(MDCTextFieldFoundation.cssClasses.UPGRADED); this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_); this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_); this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_); ['mousedown', 'touchstart'].forEach(function (evtType) { _this3.adapter_.deregisterInputInteractionHandler(evtType, _this3.setPointerXOffset_); }); ['click', 'keydown'].forEach(function (evtType) { _this3.adapter_.deregisterTextFieldInteractionHandler(evtType, _this3.textFieldInteractionHandler_); }); this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_); } /** * Handles user interactions with the Text Field. */ }, { key: 'handleTextFieldInteraction', value: function handleTextFieldInteraction() { if (this.adapter_.getNativeInput().disabled) { return; } this.receivedUserInput_ = true; } /** * Handles validation attribute changes * @param {!Array} attributesList */ }, { key: 'handleValidationAttributeChange', value: function handleValidationAttributeChange(attributesList) { var _this4 = this; attributesList.some(function (attributeName) { if (__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* VALIDATION_ATTR_WHITELIST */].indexOf(attributeName) > -1) { _this4.styleValidity_(true); return true; } }); } /** * Opens/closes the notched outline. * @param {boolean} openNotch */ }, { key: 'notchOutline', value: function notchOutline(openNotch) { if (!this.adapter_.hasOutline() || !this.adapter_.hasLabel()) { return; } if (openNotch) { var isDense = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* cssClasses */].DENSE); var labelScale = isDense ? __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* numbers */].DENSE_LABEL_SCALE : __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* numbers */].LABEL_SCALE; var labelWidth = this.adapter_.getLabelWidth() * labelScale; var isRtl = this.adapter_.isRtl(); this.adapter_.notchOutline(labelWidth, isRtl); } else { this.adapter_.closeOutline(); } } /** * Activates the text field focus state. */ }, { key: 'activateFocus', value: function activateFocus() { this.isFocused_ = true; this.styleFocused_(this.isFocused_); this.adapter_.activateLineRipple(); this.notchOutline(this.shouldFloat); if (this.adapter_.hasLabel()) { this.adapter_.shakeLabel(this.shouldShake); this.adapter_.floatLabel(this.shouldFloat); } 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. * @param {!Event} evt */ }, { key: 'setTransformOrigin', value: function setTransformOrigin(evt) { var targetClientRect = evt.target.getBoundingClientRect(); var evtCoords = { x: evt.clientX, y: evt.clientY }; var normalizedX = evtCoords.x - targetClientRect.left; this.adapter_.setLineRippleTransformOrigin(normalizedX); } /** * Activates the Text Field's focus state in cases when the input value * changes without user input (e.g. programatically). */ }, { key: 'autoCompleteFocus', value: function autoCompleteFocus() { if (!this.receivedUserInput_) { this.activateFocus(); } } /** * Deactivates the Text Field's focus state. */ }, { key: 'deactivateFocus', value: function deactivateFocus() { this.isFocused_ = false; this.adapter_.deactivateLineRipple(); var input = this.getNativeInput_(); var shouldRemoveLabelFloat = !input.value && !this.isBadInput_(); var isValid = this.isValid(); this.styleValidity_(isValid); this.styleFocused_(this.isFocused_); if (this.adapter_.hasLabel()) { this.adapter_.shakeLabel(this.shouldShake); this.adapter_.floatLabel(this.shouldFloat); this.notchOutline(this.shouldFloat); } if (shouldRemoveLabelFloat) { this.receivedUserInput_ = false; } } /** * @return {string} The value of the input Element. */ }, { key: 'getValue', value: function getValue() { return this.getNativeInput_().value; } /** * @param {string} value The value to set on the input Element. */ }, { key: 'setValue', value: function setValue(value) { this.getNativeInput_().value = value; var isValid = this.isValid(); this.styleValidity_(isValid); if (this.adapter_.hasLabel()) { this.adapter_.shakeLabel(this.shouldShake); this.adapter_.floatLabel(this.shouldFloat); this.notchOutline(this.shouldFloat); } } /** * @return {boolean} If a custom validity is set, returns that value. * Otherwise, returns the result of native validity checks. */ }, { key: 'isValid', value: function isValid() { return this.useCustomValidityChecking_ ? this.isValid_ : this.isNativeInputValid_(); } /** * @param {boolean} isValid Sets the validity state of the Text Field. */ }, { key: 'setValid', value: function setValid(isValid) { this.useCustomValidityChecking_ = true; this.isValid_ = isValid; // Retrieve from the getter to ensure correct logic is applied. isValid = this.isValid(); this.styleValidity_(isValid); if (this.adapter_.hasLabel()) { this.adapter_.shakeLabel(this.shouldShake); } } /** * @return {boolean} True if the Text Field is disabled. */ }, { key: 'isDisabled', value: function isDisabled() { return this.getNativeInput_().disabled; } /** * @param {boolean} disabled Sets the text-field disabled or enabled. */ }, { key: 'setDisabled', value: function setDisabled(disabled) { this.getNativeInput_().disabled = disabled; this.styleDisabled_(disabled); } /** * @param {string} content Sets the content of the helper text. */ }, { key: 'setHelperTextContent', value: function setHelperTextContent(content) { if (this.helperText_) { this.helperText_.setContent(content); } } /** * Sets the aria label of the icon. * @param {string} label */ }, { key: 'setIconAriaLabel', value: function setIconAriaLabel(label) { if (this.icon_) { this.icon_.setAriaLabel(label); } } /** * Sets the text content of the icon. * @param {string} content */ }, { key: 'setIconContent', value: function setIconContent(content) { if (this.icon_) { this.icon_.setContent(content); } } /** * @return {boolean} True if the Text Field input fails in converting the * user-supplied value. * @private */ }, { key: 'isBadInput_', value: function isBadInput_() { return this.getNativeInput_().validity.badInput; } /** * @return {boolean} The result of native validity checking * (ValidityState.valid). */ }, { key: 'isNativeInputValid_', value: function isNativeInputValid_() { return this.getNativeInput_().validity.valid; } /** * Styles the component based on the validity state. * @param {boolean} isValid * @private */ }, { key: 'styleValidity_', value: function styleValidity_(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. * @param {boolean} isFocused * @private */ }, { key: 'styleFocused_', value: function styleFocused_(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. * @param {boolean} isDisabled * @private */ }, { key: 'styleDisabled_', value: function styleDisabled_(isDisabled) { var _MDCTextFieldFoundati = MDCTextFieldFoundation.cssClasses, DISABLED = _MDCTextFieldFoundati.DISABLED, INVALID = _MDCTextFieldFoundati.INVALID; if (isDisabled) { this.adapter_.addClass(DISABLED); this.adapter_.removeClass(INVALID); } else { this.adapter_.removeClass(DISABLED); } if (this.icon_) { this.icon_.setDisabled(isDisabled); } } /** * @return {!Element|!NativeInputType} The native text input from the * host environment, or a dummy if none exists. * @private */ }, { key: 'getNativeInput_', value: function getNativeInput_() { return this.adapter_.getNativeInput() || /** @type {!NativeInputType} */{ value: '', disabled: false, validity: { badInput: false, valid: true } }; } }]); return MDCTextFieldFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldFoundation); /***/ }), /* 135 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldHelperText; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(46); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(21); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTextFieldHelperText = function (_MDCComponent) { _inherits(MDCTextFieldHelperText, _MDCComponent); function MDCTextFieldHelperText() { _classCallCheck(this, MDCTextFieldHelperText); return _possibleConstructorReturn(this, (MDCTextFieldHelperText.__proto__ || Object.getPrototypeOf(MDCTextFieldHelperText)).apply(this, arguments)); } _createClass(MDCTextFieldHelperText, [{ key: 'getDefaultFoundation', /** * @return {!MDCTextFieldHelperTextFoundation} */ value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCTextFieldHelperTextAdapter} */_extends({ addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, setAttr: function setAttr(attr, value) { return _this2.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this2.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this2.root_.textContent = content; } })); } }, { key: 'foundation', /** * @return {!MDCTextFieldHelperTextFoundation} */ get: function get() { return this.foundation_; } }], [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCTextFieldHelperText} */ value: function attachTo(root) { return new MDCTextFieldHelperText(root); } }]); return MDCTextFieldHelperText; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 136 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldIcon; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(47); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(22); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTextFieldIcon = function (_MDCComponent) { _inherits(MDCTextFieldIcon, _MDCComponent); function MDCTextFieldIcon() { _classCallCheck(this, MDCTextFieldIcon); return _possibleConstructorReturn(this, (MDCTextFieldIcon.__proto__ || Object.getPrototypeOf(MDCTextFieldIcon)).apply(this, arguments)); } _createClass(MDCTextFieldIcon, [{ key: 'getDefaultFoundation', /** * @return {!MDCTextFieldIconFoundation} */ value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCTextFieldIconAdapter} */_extends({ getAttr: function getAttr(attr) { return _this2.root_.getAttribute(attr); }, setAttr: function setAttr(attr, value) { return _this2.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this2.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this2.root_.textContent = content; }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return _this2.root_.addEventListener(evtType, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return _this2.root_.removeEventListener(evtType, handler); }, notifyIconAction: function notifyIconAction() { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */); } })); } }, { key: 'foundation', /** * @return {!MDCTextFieldIconFoundation} */ get: function get() { return this.foundation_; } }], [{ key: 'attachTo', /** * @param {!Element} root * @return {!MDCTextFieldIcon} */ value: function attachTo(root) { return new MDCTextFieldIcon(root); } }]); return MDCTextFieldIcon; }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]); /***/ }), /* 137 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbar", function() { return MDCToolbar; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(138); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCToolbar = function (_MDCComponent) { _inherits(MDCToolbar, _MDCComponent); function MDCToolbar() { _classCallCheck(this, MDCToolbar); return _possibleConstructorReturn(this, (MDCToolbar.__proto__ || Object.getPrototypeOf(MDCToolbar)).apply(this, arguments)); } _createClass(MDCToolbar, [{ key: 'initialize', value: function initialize() { this.ripples_ = [].map.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ICON_SELECTOR), function (icon) { var ripple = __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].attachTo(icon); ripple.unbounded = true; return ripple; }); } }, { key: 'destroy', value: function destroy() { this.ripples_.forEach(function (ripple) { ripple.destroy(); }); _get(MDCToolbar.prototype.__proto__ || Object.getPrototypeOf(MDCToolbar.prototype), 'destroy', this).call(this); } }, { key: 'getDefaultFoundation', value: function getDefaultFoundation() { var _this2 = this; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({ hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, registerScrollHandler: function registerScrollHandler(handler) { return window.addEventListener('scroll', handler); }, deregisterScrollHandler: function deregisterScrollHandler(handler) { return window.removeEventListener('scroll', handler); }, registerResizeHandler: function registerResizeHandler(handler) { return window.addEventListener('resize', handler); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { return window.removeEventListener('resize', handler); }, getViewportWidth: function getViewportWidth() { return window.innerWidth; }, getViewportScrollY: function getViewportScrollY() { return window.pageYOffset; }, getOffsetHeight: function getOffsetHeight() { return _this2.root_.offsetHeight; }, getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() { return _this2.firstRowElement_.offsetHeight; }, notifyChange: function notifyChange(evtData) { return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData); }, setStyle: function setStyle(property, value) { return _this2.root_.style.setProperty(property, value); }, setStyleForTitleElement: function setStyleForTitleElement(property, value) { return _this2.titleElement_.style.setProperty(property, value); }, setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement(property, value) { return _this2.firstRowElement_.style.setProperty(property, value); }, setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement(property, value) { if (_this2.fixedAdjustElement) { _this2.fixedAdjustElement.style.setProperty(property, value); } } }); } }, { key: 'firstRowElement_', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.FIRST_ROW_SELECTOR); } }, { key: 'titleElement_', get: function get() { return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.TITLE_SELECTOR); } }, { key: 'fixedAdjustElement', set: function set(fixedAdjustElement) { this.fixedAdjustElement_ = fixedAdjustElement; this.foundation_.updateAdjustElementStyles(); }, get: function get() { return this.fixedAdjustElement_; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCToolbar(root); } }]); return MDCToolbar; }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]); /***/ }), /* 138 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(139); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var MDCToolbarFoundation = function (_MDCFoundation) { _inherits(MDCToolbarFoundation, _MDCFoundation); _createClass(MDCToolbarFoundation, null, [{ key: 'cssClasses', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */]; } }, { key: 'strings', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */]; } }, { key: 'numbers', get: function get() { return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */]; } }, { key: 'defaultAdapter', get: function get() { return { hasClass: function hasClass() { return (/* className: string */ /* boolean */false ); }, addClass: function addClass() /* className: string */{}, removeClass: function removeClass() /* className: string */{}, registerScrollHandler: function registerScrollHandler() /* handler: EventListener */{}, deregisterScrollHandler: function deregisterScrollHandler() /* handler: EventListener */{}, registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{}, deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}, getViewportWidth: function getViewportWidth() { return (/* number */0 ); }, getViewportScrollY: function getViewportScrollY() { return (/* number */0 ); }, getOffsetHeight: function getOffsetHeight() { return (/* number */0 ); }, getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() { return (/* number */0 ); }, notifyChange: function notifyChange() /* evtData: {flexibleExpansionRatio: number} */{}, setStyle: function setStyle() /* property: string, value: string */{}, setStyleForTitleElement: function setStyleForTitleElement() /* property: string, value: string */{}, setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement() /* property: string, value: string */{}, setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement() /* property: string, value: string */{} }; } }]); function MDCToolbarFoundation(adapter) { _classCallCheck(this, MDCToolbarFoundation); var _this = _possibleConstructorReturn(this, (MDCToolbarFoundation.__proto__ || Object.getPrototypeOf(MDCToolbarFoundation)).call(this, _extends(MDCToolbarFoundation.defaultAdapter, adapter))); _this.resizeHandler_ = function () { return _this.checkRowHeight_(); }; _this.scrollHandler_ = function () { return _this.updateToolbarStyles_(); }; _this.checkRowHeightFrame_ = 0; _this.scrollFrame_ = 0; _this.executedLastChange_ = false; _this.calculations_ = { toolbarRowHeight: 0, // Calculated Height ratio. We use ratio to calculate corresponding heights in resize event. toolbarRatio: 0, // The ratio of toolbar height to row height flexibleExpansionRatio: 0, // The ratio of flexible space height to row height maxTranslateYRatio: 0, // The ratio of max toolbar move up distance to row height scrollThresholdRatio: 0, // The ratio of max scrollTop that we should listen to to row height // Derived Heights based on the above key ratios. toolbarHeight: 0, flexibleExpansionHeight: 0, // Flexible row minus toolbar height (derived) maxTranslateYDistance: 0, // When toolbar only fix last row (derived) scrollThreshold: 0 }; // Toolbar fixed behavior // If toolbar is fixed _this.fixed_ = false; // If fixed is targeted only at the last row _this.fixedLastrow_ = false; // Toolbar flexible behavior // If the first row is flexible _this.hasFlexibleRow_ = false; // If use the default behavior _this.useFlexDefaultBehavior_ = false; return _this; } _createClass(MDCToolbarFoundation, [{ key: 'init', value: function init() { this.fixed_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED); this.fixedLastrow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED_LASTROW) & this.fixed_; this.hasFlexibleRow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.TOOLBAR_ROW_FLEXIBLE); if (this.hasFlexibleRow_) { this.useFlexDefaultBehavior_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_DEFAULT_BEHAVIOR); } this.initKeyRatio_(); this.setKeyHeights_(); this.adapter_.registerResizeHandler(this.resizeHandler_); this.adapter_.registerScrollHandler(this.scrollHandler_); } }, { key: 'destroy', value: function destroy() { this.adapter_.deregisterResizeHandler(this.resizeHandler_); this.adapter_.deregisterScrollHandler(this.scrollHandler_); } }, { key: 'updateAdjustElementStyles', value: function updateAdjustElementStyles() { if (this.fixed_) { this.adapter_.setStyleForFixedAdjustElement('margin-top', this.calculations_.toolbarHeight + 'px'); } } }, { key: 'getFlexibleExpansionRatio_', value: function getFlexibleExpansionRatio_(scrollTop) { // To prevent division by zero when there is no flexibleExpansionHeight var delta = 0.0001; return Math.max(0, 1 - scrollTop / (this.calculations_.flexibleExpansionHeight + delta)); } }, { key: 'checkRowHeight_', value: function checkRowHeight_() { var _this2 = this; cancelAnimationFrame(this.checkRowHeightFrame_); this.checkRowHeightFrame_ = requestAnimationFrame(function () { return _this2.setKeyHeights_(); }); } }, { key: 'setKeyHeights_', value: function setKeyHeights_() { var newToolbarRowHeight = this.getRowHeight_(); if (newToolbarRowHeight !== this.calculations_.toolbarRowHeight) { this.calculations_.toolbarRowHeight = newToolbarRowHeight; this.calculations_.toolbarHeight = this.calculations_.toolbarRatio * this.calculations_.toolbarRowHeight; this.calculations_.flexibleExpansionHeight = this.calculations_.flexibleExpansionRatio * this.calculations_.toolbarRowHeight; this.calculations_.maxTranslateYDistance = this.calculations_.maxTranslateYRatio * this.calculations_.toolbarRowHeight; this.calculations_.scrollThreshold = this.calculations_.scrollThresholdRatio * this.calculations_.toolbarRowHeight; this.updateAdjustElementStyles(); this.updateToolbarStyles_(); } } }, { key: 'updateToolbarStyles_', value: function updateToolbarStyles_() { var _this3 = this; cancelAnimationFrame(this.scrollFrame_); this.scrollFrame_ = requestAnimationFrame(function () { var scrollTop = _this3.adapter_.getViewportScrollY(); var hasScrolledOutOfThreshold = _this3.scrolledOutOfThreshold_(scrollTop); if (hasScrolledOutOfThreshold && _this3.executedLastChange_) { return; } var flexibleExpansionRatio = _this3.getFlexibleExpansionRatio_(scrollTop); _this3.updateToolbarFlexibleState_(flexibleExpansionRatio); if (_this3.fixedLastrow_) { _this3.updateToolbarFixedState_(scrollTop); } if (_this3.hasFlexibleRow_) { _this3.updateFlexibleRowElementStyles_(flexibleExpansionRatio); } _this3.executedLastChange_ = hasScrolledOutOfThreshold; _this3.adapter_.notifyChange({ flexibleExpansionRatio: flexibleExpansionRatio }); }); } }, { key: 'scrolledOutOfThreshold_', value: function scrolledOutOfThreshold_(scrollTop) { return scrollTop > this.calculations_.scrollThreshold; } }, { key: 'initKeyRatio_', value: function initKeyRatio_() { var toolbarRowHeight = this.getRowHeight_(); var firstRowMaxRatio = this.adapter_.getFirstRowElementOffsetHeight() / toolbarRowHeight; this.calculations_.toolbarRatio = this.adapter_.getOffsetHeight() / toolbarRowHeight; this.calculations_.flexibleExpansionRatio = firstRowMaxRatio - 1; this.calculations_.maxTranslateYRatio = this.fixedLastrow_ ? this.calculations_.toolbarRatio - firstRowMaxRatio : 0; this.calculations_.scrollThresholdRatio = (this.fixedLastrow_ ? this.calculations_.toolbarRatio : firstRowMaxRatio) - 1; } }, { key: 'getRowHeight_', value: function getRowHeight_() { var breakpoint = MDCToolbarFoundation.numbers.TOOLBAR_MOBILE_BREAKPOINT; return this.adapter_.getViewportWidth() < breakpoint ? MDCToolbarFoundation.numbers.TOOLBAR_ROW_MOBILE_HEIGHT : MDCToolbarFoundation.numbers.TOOLBAR_ROW_HEIGHT; } }, { key: 'updateToolbarFlexibleState_', value: function updateToolbarFlexibleState_(flexibleExpansionRatio) { this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX); this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN); if (flexibleExpansionRatio === 1) { this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX); } else if (flexibleExpansionRatio === 0) { this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN); } } }, { key: 'updateToolbarFixedState_', value: function updateToolbarFixedState_(scrollTop) { var translateDistance = Math.max(0, Math.min(scrollTop - this.calculations_.flexibleExpansionHeight, this.calculations_.maxTranslateYDistance)); this.adapter_.setStyle('transform', 'translateY(' + -translateDistance + 'px)'); if (translateDistance === this.calculations_.maxTranslateYDistance) { this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW); } else { this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW); } } }, { key: 'updateFlexibleRowElementStyles_', value: function updateFlexibleRowElementStyles_(flexibleExpansionRatio) { if (this.fixed_) { var height = this.calculations_.flexibleExpansionHeight * flexibleExpansionRatio; this.adapter_.setStyleForFlexibleRowElement('height', height + this.calculations_.toolbarRowHeight + 'px'); } if (this.useFlexDefaultBehavior_) { this.updateElementStylesDefaultBehavior_(flexibleExpansionRatio); } } }, { key: 'updateElementStylesDefaultBehavior_', value: function updateElementStylesDefaultBehavior_(flexibleExpansionRatio) { var maxTitleSize = MDCToolbarFoundation.numbers.MAX_TITLE_SIZE; var minTitleSize = MDCToolbarFoundation.numbers.MIN_TITLE_SIZE; var currentTitleSize = (maxTitleSize - minTitleSize) * flexibleExpansionRatio + minTitleSize; this.adapter_.setStyleForTitleElement('font-size', currentTitleSize + 'rem'); } }]); return MDCToolbarFoundation; }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCToolbarFoundation); /***/ }), /* 139 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; }); /** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var cssClasses = { FIXED: 'mdc-toolbar--fixed', FIXED_LASTROW: 'mdc-toolbar--fixed-lastrow-only', FIXED_AT_LAST_ROW: 'mdc-toolbar--fixed-at-last-row', TOOLBAR_ROW_FLEXIBLE: 'mdc-toolbar--flexible', FLEXIBLE_DEFAULT_BEHAVIOR: 'mdc-toolbar--flexible-default-behavior', FLEXIBLE_MAX: 'mdc-toolbar--flexible-space-maximized', FLEXIBLE_MIN: 'mdc-toolbar--flexible-space-minimized' }; var strings = { TITLE_SELECTOR: '.mdc-toolbar__title', ICON_SELECTOR: '.mdc-toolbar__icon', FIRST_ROW_SELECTOR: '.mdc-toolbar__row:first-child', CHANGE_EVENT: 'MDCToolbar:change' }; var numbers = { MAX_TITLE_SIZE: 2.125, MIN_TITLE_SIZE: 1.25, TOOLBAR_ROW_HEIGHT: 64, TOOLBAR_ROW_MOBILE_HEIGHT: 56, TOOLBAR_MOBILE_BREAKPOINT: 600 }; /***/ }), /* 140 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBar", function() { return MDCTopAppBar; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__ = __webpack_require__(141); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__short_foundation__ = __webpack_require__(142); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__standard_foundation__ = __webpack_require__(143); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBarBaseFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_7__standard_foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFixedTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__["a"]; }); /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCShortTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_6__short_foundation__["a"]; }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCComponent} * @final */ var MDCTopAppBar = function (_MDCComponent) { _inherits(MDCTopAppBar, _MDCComponent); /** * @param {...?} args */ function MDCTopAppBar() { var _ref; _classCallCheck(this, MDCTopAppBar); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } /** @private {?Element} */ var _this = _possibleConstructorReturn(this, (_ref = MDCTopAppBar.__proto__ || Object.getPrototypeOf(MDCTopAppBar)).call.apply(_ref, [this].concat(args))); _this.navIcon_; /** @type {?Array} */ _this.iconRipples_; return _this; } _createClass(MDCTopAppBar, [{ key: 'initialize', value: function initialize() { var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) { return __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"].attachTo(el); }; this.navIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].NAVIGATION_ICON_SELECTOR); // Get all icons in the toolbar and instantiate the ripples var icons = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ACTION_ITEM_SELECTOR)); if (this.navIcon_) { icons.push(this.navIcon_); } this.iconRipples_ = icons.map(function (icon) { var ripple = rippleFactory(icon); ripple.unbounded = true; return ripple; }); } }, { key: 'destroy', value: function destroy() { this.iconRipples_.forEach(function (iconRipple) { return iconRipple.destroy(); }); _get(MDCTopAppBar.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBar.prototype), 'destroy', this).call(this); } /** * @param {!Element} root * @return {!MDCTopAppBar} */ }, { key: 'getDefaultFoundation', /** * @return {!MDCTopAppBarBaseFoundation} */ value: function getDefaultFoundation() { var _this2 = this; /** @type {!MDCTopAppBarAdapter} */ var adapter = /** @type {!MDCTopAppBarAdapter} */_extends({ hasClass: function hasClass(className) { return _this2.root_.classList.contains(className); }, addClass: function addClass(className) { return _this2.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this2.root_.classList.remove(className); }, setStyle: function setStyle(property, value) { return _this2.root_.style.setProperty(property, value); }, getTopAppBarHeight: function getTopAppBarHeight() { return _this2.root_.clientHeight; }, registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler(evtType, handler) { if (_this2.navIcon_) { _this2.navIcon_.addEventListener(evtType, handler); } }, deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler(evtType, handler) { if (_this2.navIcon_) { _this2.navIcon_.removeEventListener(evtType, handler); } }, notifyNavigationIconClicked: function notifyNavigationIconClicked() { _this2.emit(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].NAVIGATION_EVENT, {}); }, registerScrollHandler: function registerScrollHandler(handler) { return window.addEventListener('scroll', handler); }, deregisterScrollHandler: function deregisterScrollHandler(handler) { return window.removeEventListener('scroll', handler); }, registerResizeHandler: function registerResizeHandler(handler) { return window.addEventListener('resize', handler); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { return window.removeEventListener('resize', handler); }, getViewportScrollY: function getViewportScrollY() { return window.pageYOffset; }, getTotalActionItems: function getTotalActionItems() { return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ACTION_ITEM_SELECTOR).length; } }); /** @type {!MDCTopAppBarBaseFoundation} */ var foundation = void 0; if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].SHORT_CLASS)) { foundation = new __WEBPACK_IMPORTED_MODULE_6__short_foundation__["a" /* default */](adapter); } else if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FIXED_CLASS)) { foundation = new __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__["a" /* default */](adapter); } else { foundation = new __WEBPACK_IMPORTED_MODULE_7__standard_foundation__["a" /* default */](adapter); } return foundation; } }], [{ key: 'attachTo', value: function attachTo(root) { return new MDCTopAppBar(root); } }]); return MDCTopAppBar; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]); /***/ }), /* 141 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(13); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCTopAppBarFoundation} * @final */ var MDCFixedTopAppBarFoundation = function (_MDCTopAppBarFoundati) { _inherits(MDCFixedTopAppBarFoundation, _MDCTopAppBarFoundati); /** * @param {!MDCTopAppBarAdapter} adapter */ function MDCFixedTopAppBarFoundation(adapter) { _classCallCheck(this, MDCFixedTopAppBarFoundation); /** State variable for the previous scroll iteration top app bar state */ var _this = _possibleConstructorReturn(this, (MDCFixedTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation)).call(this, adapter)); _this.wasScrolled_ = false; _this.scrollHandler_ = function () { return _this.fixedScrollHandler_(); }; return _this; } _createClass(MDCFixedTopAppBarFoundation, [{ key: 'init', value: function init() { _get(MDCFixedTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation.prototype), 'init', this).call(this); this.adapter_.registerScrollHandler(this.scrollHandler_); } }, { key: 'destroy', value: function destroy() { _get(MDCFixedTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation.prototype), 'destroy', this).call(this); this.adapter_.deregisterScrollHandler(this.scrollHandler_); } /** * Scroll handler for applying/removing the modifier class * on the fixed top app bar. */ }, { key: 'fixedScrollHandler_', value: function fixedScrollHandler_() { var currentScroll = this.adapter_.getViewportScrollY(); if (currentScroll <= 0) { if (this.wasScrolled_) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS); this.wasScrolled_ = false; } } else { if (!this.wasScrolled_) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS); this.wasScrolled_ = true; } } } }]); return MDCFixedTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCFixedTopAppBarFoundation); /***/ }), /* 142 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(8); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @extends {MDCTopAppBarBaseFoundation} * @final */ var MDCShortTopAppBarFoundation = function (_MDCTopAppBarBaseFoun) { _inherits(MDCShortTopAppBarFoundation, _MDCTopAppBarBaseFoun); /** * @param {!MDCTopAppBarAdapter} adapter */ function MDCShortTopAppBarFoundation(adapter) { _classCallCheck(this, MDCShortTopAppBarFoundation); // State variable for the current top app bar state var _this = _possibleConstructorReturn(this, (MDCShortTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation)).call(this, adapter)); _this.isCollapsed = false; _this.scrollHandler_ = function () { return _this.shortAppBarScrollHandler_(); }; return _this; } _createClass(MDCShortTopAppBarFoundation, [{ key: 'init', value: function init() { _get(MDCShortTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation.prototype), 'init', this).call(this); var isAlwaysCollapsed = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS); if (this.adapter_.getTotalActionItems() > 0) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_HAS_ACTION_ITEM_CLASS); } if (!isAlwaysCollapsed) { this.adapter_.registerScrollHandler(this.scrollHandler_); this.shortAppBarScrollHandler_(); } } }, { key: 'destroy', value: function destroy() { _get(MDCShortTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation.prototype), 'destroy', this).call(this); this.adapter_.deregisterScrollHandler(this.scrollHandler_); } /** * Scroll handler for applying/removing the collapsed modifier class * on the short top app bar. * @private */ }, { key: 'shortAppBarScrollHandler_', value: function shortAppBarScrollHandler_() { var currentScroll = this.adapter_.getViewportScrollY(); if (currentScroll <= 0) { if (this.isCollapsed) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS); this.isCollapsed = false; } } else { if (!this.isCollapsed) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS); this.isCollapsed = true; } } } }]); return MDCShortTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCShortTopAppBarFoundation); /***/ }), /* 143 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(8); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * @license * Copyright 2018 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var INITIAL_VALUE = 0; /** * @extends {MDCTopAppBarBaseFoundation} * @final */ var MDCTopAppBarFoundation = function (_MDCTopAppBarBaseFoun) { _inherits(MDCTopAppBarFoundation, _MDCTopAppBarBaseFoun); /** * @param {!MDCTopAppBarAdapter} adapter */ function MDCTopAppBarFoundation(adapter) { _classCallCheck(this, MDCTopAppBarFoundation); /** * Used for diffs of current scroll position vs previous scroll position * @private {number} */ var _this = _possibleConstructorReturn(this, (MDCTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation)).call(this, adapter)); _this.lastScrollPosition_ = _this.adapter_.getViewportScrollY(); /** * Used to verify when the top app bar is completely showing or completely hidden * @private {number} */ _this.topAppBarHeight_ = _this.adapter_.getTopAppBarHeight(); /** * wasDocked_ is used to indicate if the top app bar was docked in the previous * scroll handler iteration. * @private {boolean} */ _this.wasDocked_ = true; /** * isDockedShowing_ is used to indicate if the top app bar is docked in the fully * shown position. * @private {boolean} */ _this.isDockedShowing_ = true; /** * Variable for current scroll position of the top app bar * @private {number} */ _this.currentAppBarOffsetTop_ = 0; /** * Used to prevent the top app bar from being scrolled out of view during resize events * @private {boolean} */ _this.isCurrentlyBeingResized_ = false; /** * The timeout that's used to throttle the resize events * @private {number} */ _this.resizeThrottleId_ = INITIAL_VALUE; /** * The timeout that's used to debounce toggling the isCurrentlyBeingResized_ variable after a resize * @private {number} */ _this.resizeDebounceId_ = INITIAL_VALUE; _this.scrollHandler_ = function () { return _this.topAppBarScrollHandler_(); }; _this.resizeHandler_ = function () { return _this.topAppBarResizeHandler_(); }; return _this; } _createClass(MDCTopAppBarFoundation, [{ key: 'init', value: function init() { _get(MDCTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation.prototype), 'init', this).call(this); this.adapter_.registerScrollHandler(this.scrollHandler_); this.adapter_.registerResizeHandler(this.resizeHandler_); } }, { key: 'destroy', value: function destroy() { _get(MDCTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation.prototype), 'destroy', this).call(this); this.adapter_.deregisterScrollHandler(this.scrollHandler_); this.adapter_.deregisterResizeHandler(this.resizeHandler_); this.adapter_.setStyle('top', ''); } /** * Function to determine if the DOM needs to update. * @return {boolean} * @private */ }, { key: 'checkForUpdate_', value: function checkForUpdate_() { var offscreenBoundaryTop = -this.topAppBarHeight_; var hasAnyPixelsOffscreen = this.currentAppBarOffsetTop_ < 0; var hasAnyPixelsOnscreen = this.currentAppBarOffsetTop_ > offscreenBoundaryTop; var partiallyShowing = hasAnyPixelsOffscreen && hasAnyPixelsOnscreen; // If it's partially showing, it can't be docked. if (partiallyShowing) { this.wasDocked_ = false; } else { // Not previously docked and not partially showing, it's now docked. if (!this.wasDocked_) { this.wasDocked_ = true; return true; } else if (this.isDockedShowing_ !== hasAnyPixelsOnscreen) { this.isDockedShowing_ = hasAnyPixelsOnscreen; return true; } } return partiallyShowing; } /** * Function to move the top app bar if needed. * @private */ }, { key: 'moveTopAppBar_', value: function moveTopAppBar_() { if (this.checkForUpdate_()) { // Once the top app bar is fully hidden we use the max potential top app bar height as our offset // so the top app bar doesn't show if the window resizes and the new height > the old height. var offset = this.currentAppBarOffsetTop_; if (Math.abs(offset) >= this.topAppBarHeight_) { offset = -__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].MAX_TOP_APP_BAR_HEIGHT; } this.adapter_.setStyle('top', offset + 'px'); } } /** * Scroll handler for the default scroll behavior of the top app bar. * @private */ }, { key: 'topAppBarScrollHandler_', value: function topAppBarScrollHandler_() { var currentScrollPosition = Math.max(this.adapter_.getViewportScrollY(), 0); var diff = currentScrollPosition - this.lastScrollPosition_; this.lastScrollPosition_ = currentScrollPosition; // If the window is being resized the lastScrollPosition_ needs to be updated but the // current scroll of the top app bar should stay in the same position. if (!this.isCurrentlyBeingResized_) { this.currentAppBarOffsetTop_ -= diff; if (this.currentAppBarOffsetTop_ > 0) { this.currentAppBarOffsetTop_ = 0; } else if (Math.abs(this.currentAppBarOffsetTop_) > this.topAppBarHeight_) { this.currentAppBarOffsetTop_ = -this.topAppBarHeight_; } this.moveTopAppBar_(); } } /** * Top app bar resize handler that throttle/debounce functions that execute updates. * @private */ }, { key: 'topAppBarResizeHandler_', value: function topAppBarResizeHandler_() { var _this2 = this; // Throttle resize events 10 p/s if (!this.resizeThrottleId_) { this.resizeThrottleId_ = setTimeout(function () { _this2.resizeThrottleId_ = INITIAL_VALUE; _this2.throttledResizeHandler_(); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS); } this.isCurrentlyBeingResized_ = true; if (this.resizeDebounceId_) { clearTimeout(this.resizeDebounceId_); } this.resizeDebounceId_ = setTimeout(function () { _this2.topAppBarScrollHandler_(); _this2.isCurrentlyBeingResized_ = false; _this2.resizeDebounceId_ = INITIAL_VALUE; }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS); } /** * Throttled function that updates the top app bar scrolled values if the * top app bar height changes. * @private */ }, { key: 'throttledResizeHandler_', value: function throttledResizeHandler_() { var currentHeight = this.adapter_.getTopAppBarHeight(); if (this.topAppBarHeight_ !== currentHeight) { this.wasDocked_ = false; // Since the top app bar has a different height depending on the screen width, this // will ensure that the top app bar remains in the correct location if // completely hidden and a resize makes the top app bar a different height. this.currentAppBarOffsetTop_ -= this.topAppBarHeight_ - currentHeight; this.topAppBarHeight_ = currentHeight; } this.topAppBarScrollHandler_(); } }]); return MDCTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]); /* harmony default export */ __webpack_exports__["a"] = (MDCTopAppBarFoundation); /***/ }) /******/ ]); }); //# sourceMappingURL=material-components-web.js.map