/******/ (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 = 148); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = __extends; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assign; }); /* unused harmony export __rest */ /* unused harmony export __decorate */ /* unused harmony export __param */ /* unused harmony export __metadata */ /* unused harmony export __awaiter */ /* unused harmony export __generator */ /* unused harmony export __exportStar */ /* harmony export (immutable) */ __webpack_exports__["e"] = __values; /* harmony export (immutable) */ __webpack_exports__["c"] = __read; /* harmony export (immutable) */ __webpack_exports__["d"] = __spread; /* unused harmony export __await */ /* unused harmony export __asyncGenerator */ /* unused harmony export __asyncDelegator */ /* unused harmony export __asyncValues */ /* unused harmony export __makeTemplateObject */ /* unused harmony export __importStar */ /* unused harmony export __importDefault */ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. 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 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var _extendStatics = function extendStatics(d, b) { _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return _extendStatics(d, b); }; function __extends(d, b) { _extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var _assign = function __assign() { _assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return _assign.apply(this, arguments); }; function __rest(s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; }if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; }return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; }return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); }; } function __metadata(metadataKey, metadataValue) { if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function sent() { if (t[0] & 1) throw t[1];return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) { try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0:case 1: t = op;break; case 4: _.label++;return { value: op[1], done: false }; case 5: _.label++;y = op[1];op = [0];continue; case 7: op = _.ops.pop();_.trys.pop();continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0;continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1];break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1];t = op;break; } if (t && _.label < t[2]) { _.label = t[2];_.ops.push(op);break; } if (t[2]) _.ops.pop(); _.trys.pop();continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e];y = 0; } finally { f = t = 0; } }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) { if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function next() { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); } } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read(arguments[i])); }return ar; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) { if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; }result.default = mod; return result; } function __importDefault(mod) { return mod && mod.__esModule ? mod : { default: mod }; } /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VBaseComponent; }); /* harmony export (immutable) */ __webpack_exports__["d"] = hookupComponentsManually; /* harmony export (immutable) */ __webpack_exports__["c"] = hookupComponents; /* harmony export (immutable) */ __webpack_exports__["e"] = unhookupComponents; /* harmony export (immutable) */ __webpack_exports__["b"] = getRootNode; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events_errors__ = __webpack_require__(31); 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"); } } var VBaseComponent = function () { function VBaseComponent(element, mdcComponent) { _classCallCheck(this, VBaseComponent); this.root = getRootNode(element); this.element = element; this.element.vComponent = this; this.mdcComponent = mdcComponent; this.element.classList.add('v-component'); } _createClass(VBaseComponent, [{ key: 'destroy', value: function destroy() { // Work in progress - this will ultimately be cleaning up other items like events, etc. (more to come) if (this.mdcComponent && this.mdcComponent.destroy) { this.mdcComponent.destroy(); } } }, { key: 'validate', value: function validate(formData) { return true; } }, { key: 'onShow', value: function onShow() {} }, { key: 'onHide', value: function onHide() {} // Invoked after event handlers have been initialized. }, { key: 'afterInit', value: function afterInit() {} }, { key: 'parentComponent', value: function parentComponent(selector) { if (!this.element.parentElement) { return null; } var element = this.element.parentElement.closest(selector); if (!(element && element.vComponent)) { return null; } return element.vComponent; } // Event actions results bubble up to their containers }, { key: 'actionsStarted', value: function actionsStarted(vEvent) { var ev = new Event('V:actionsStarted', { bubbles: true, cancelable: false, detail: vEvent, composed: true }); this.element.dispatchEvent(ev); } // Event actions results bubble up to their containers }, { key: 'actionsHalted', value: function actionsHalted(vEvent) { var ev = new Event('V:actionsHalted', { bubbles: true, cancelable: false, detail: vEvent, composed: true }); this.element.dispatchEvent(ev); } }, { key: 'actionsSucceeded', value: function actionsSucceeded(vEvent) { var ev = new CustomEvent('V:actionsSucceeded', { bubbles: true, cancelable: false, detail: vEvent, composed: true }); this.element.dispatchEvent(ev); } }, { key: 'actionsFinished', value: function actionsFinished(vEvent) { var ev = new CustomEvent('V:actionsFinished', { bubbles: true, cancelable: false, detail: vEvent, composed: true }); this.element.dispatchEvent(ev); } }, { key: 'hasHandlers', value: function hasHandlers() { return this.eventsHandler && Object.keys(this.eventsHandler).length > 0; } }, { key: 'clearErrors', value: function clearErrors() { new __WEBPACK_IMPORTED_MODULE_0__events_errors__["a" /* VErrors */](this.root).clearErrors(); } }, { key: 'respondTo', value: function respondTo(method) { return typeof this[method] === 'function'; } }, { key: 'is', value: function is(name) { return this.constructor.name === name; } }]); return VBaseComponent; }(); function getCandidateElements(root, selector) { var elements = Array.from(root.querySelectorAll(selector)); if (root && typeof root.matches === 'function' && root.matches(selector)) { elements.unshift(root); } return elements; } // `fn` is a unary function accepting a HTMLElement and returning an instance of // VBaseComponent. function hookupComponentsManually(root, selector, fn) { var elements = getCandidateElements(root, selector); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = elements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var element = _step.value; if (element.mdcComponent || element.vComponent) { continue; } fn(element); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } function hookupComponents(root, selector, VoomClass, MDCClass) { var ctor = componentFactory(VoomClass, MDCClass); hookupComponentsManually(root, selector, ctor); } // Returns a function capable of constructing a Voom component. function componentFactory(VoomClass, MDCClass) { return function (element) { return new VoomClass(element, typeof MDCClass === 'function' ? new MDCClass(element) : null); }; } function unhookupComponents(root, selector) { var elements = getCandidateElements(root, selector); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = elements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var element = _step2.value; if (element.vComponent) { element.vComponent.destroy(); } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } // Retrieve the element's owning document or shadow root. function getRootNode(node) { if (!node.parentNode || isShadowRoot(node)) { return node; } return getRootNode(node.parentNode); } function isShadowRoot(node) { return node.constructor.name === 'ShadowRoot'; } /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCFoundation; }); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCFoundation = /** @class */function () { function MDCFoundation(adapter) { if (adapter === void 0) { adapter = {}; } this.adapter_ = adapter; } Object.defineProperty(MDCFoundation, "cssClasses", { get: function get() { // Classes extending MDCFoundation should implement this method to return an object which exports every // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'} return {}; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFoundation, "strings", { get: function get() { // Classes extending MDCFoundation should implement this method to return an object which exports all // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'} return {}; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFoundation, "numbers", { get: function get() { // Classes extending MDCFoundation should implement this method to return an object which exports all // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350} return {}; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFoundation, "defaultAdapter", { get: function get() { // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter // validation. return {}; }, enumerable: true, configurable: true }); MDCFoundation.prototype.init = function () { // Subclasses should override this method to perform initialization routines (registering events, etc.) }; MDCFoundation.prototype.destroy = function () { // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.) }; return MDCFoundation; }(); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCComponent; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(2); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCComponent = /** @class */function () { function MDCComponent(root, foundation) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } this.root_ = root; this.initialize.apply(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __spread */](args)); // Note that we initialize foundation here and not within the constructor's default param so that // this.root_ is defined and can be used within the foundation class. this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation; this.foundation_.init(); this.initialSyncWithDOM(); } MDCComponent.attachTo = function (root) { // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and // returns an instantiated component with its root set to that element. Also note that in the cases of // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized // from getDefaultFoundation(). return new MDCComponent(root, new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* MDCFoundation */]({})); }; /* istanbul ignore next: method param only exists for typing purposes; it does not need to be unit tested */ MDCComponent.prototype.initialize = function () { var _args = []; for (var _i = 0; _i < arguments.length; _i++) { _args[_i] = arguments[_i]; } // Subclasses can override this to do any additional setup work that would be considered part of a // "constructor". Essentially, it is a hook into the parent constructor before the foundation is // initialized. Any additional arguments besides root and foundation will be passed in here. }; MDCComponent.prototype.getDefaultFoundation = function () { // Subclasses must override this method to return a properly configured foundation class for the // component. throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class'); }; MDCComponent.prototype.initialSyncWithDOM = function () { // Subclasses should override this method if they need to perform work to synchronize with a host DOM // object. An example of this would be a form control wrapper that needs to synchronize its internal state // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor. }; MDCComponent.prototype.destroy = function () { // Subclasses may implement this method to release any resources / deregister any listeners they have // attached. An example of this might be deregistering a resize event from the window object. this.foundation_.destroy(); }; MDCComponent.prototype.listen = function (evtType, handler, options) { this.root_.addEventListener(evtType, handler, options); }; MDCComponent.prototype.unlisten = function (evtType, handler, options) { this.root_.removeEventListener(evtType, handler, options); }; /** * Fires a cross-browser-compatible custom event from the component root of the given type, with the given data. */ MDCComponent.prototype.emit = function (evtType, evtData, shouldBubble) { if (shouldBubble === void 0) { shouldBubble = false; } var evt; if (typeof CustomEvent === 'function') { evt = new CustomEvent(evtType, { bubbles: shouldBubble, detail: evtData }); } else { evt = document.createEvent('CustomEvent'); evt.initCustomEvent(evtType, shouldBubble, false, evtData); } this.root_.dispatchEvent(evt); }; return MDCComponent; }(); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCComponent); //# sourceMappingURL=component.js.map /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return eventHandlerMixin; }); 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; } var eventHandlerMixin = function eventHandlerMixin(Base) { return function (_Base) { _inherits(_class, _Base); function _class() { _classCallCheck(this, _class); return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments)); } _createClass(_class, [{ key: 'initEventListener', // idempotent event handling initialization value: function initEventListener(eventName, eventHandler, eventOptions) { if (typeof this.element.eventsHandler === 'undefined') { this.element.eventsHandler = {}; } if (typeof this.element.eventsHandler[eventName] === 'undefined') { this.element.eventsHandler[eventName] = []; } this.element.eventsHandler[eventName].push(eventHandler); this.element.addEventListener(eventName, eventHandler, eventOptions); } }]); return _class; }(Base); }; /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = closest; /* harmony export (immutable) */ __webpack_exports__["b"] = matches; /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** * @fileoverview A "ponyfill" is a polyfill that doesn't modify the global prototype chain. * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC. */ function closest(element, selector) { if (element.closest) { return element.closest(selector); } var el = element; while (el) { if (matches(el, selector)) { return el; } el = el.parentElement; } return null; } function matches(element, selector) { var nativeMatches = element.matches || element.webkitMatchesSelector || element.msMatchesSelector; return nativeMatches.call(element, selector); } //# sourceMappingURL=ponyfill.js.map /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCRipple; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_dom_events__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_dom_ponyfill__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util__ = __webpack_require__(30); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCRipple = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCRipple, _super); function MDCRipple() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.disabled = false; return _this; } MDCRipple.attachTo = function (root, opts) { if (opts === void 0) { opts = { isUnbounded: undefined }; } var ripple = new MDCRipple(root); // Only override unbounded behavior if option is explicitly specified if (opts.isUnbounded !== undefined) { ripple.unbounded = opts.isUnbounded; } return ripple; }; MDCRipple.createAdapter = function (instance) { return { addClass: function addClass(className) { return instance.root_.classList.add(className); }, browserSupportsCssVars: function browserSupportsCssVars() { return __WEBPACK_IMPORTED_MODULE_5__util__["b" /* supportsCssVariables */](window); }, computeBoundingRect: function computeBoundingRect() { return instance.root_.getBoundingClientRect(); }, containsEventTarget: function containsEventTarget(target) { return instance.root_.contains(target); }, deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) { return document.documentElement.removeEventListener(evtType, handler, Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_events__["a" /* applyPassive */])()); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return instance.root_.removeEventListener(evtType, handler, Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_events__["a" /* applyPassive */])()); }, deregisterResizeHandler: function deregisterResizeHandler(handler) { return window.removeEventListener('resize', handler); }, getWindowPageOffset: function getWindowPageOffset() { return { x: window.pageXOffset, y: window.pageYOffset }; }, isSurfaceActive: function isSurfaceActive() { return Object(__WEBPACK_IMPORTED_MODULE_3__material_dom_ponyfill__["b" /* matches */])(instance.root_, ':active'); }, isSurfaceDisabled: function isSurfaceDisabled() { return Boolean(instance.disabled); }, isUnbounded: function isUnbounded() { return Boolean(instance.unbounded); }, registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) { return document.documentElement.addEventListener(evtType, handler, Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_events__["a" /* applyPassive */])()); }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return instance.root_.addEventListener(evtType, handler, Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_events__["a" /* applyPassive */])()); }, registerResizeHandler: function registerResizeHandler(handler) { return window.addEventListener('resize', handler); }, removeClass: function removeClass(className) { return instance.root_.classList.remove(className); }, updateCssVariable: function updateCssVariable(varName, value) { return instance.root_.style.setProperty(varName, value); } }; }; Object.defineProperty(MDCRipple.prototype, "unbounded", { get: function get() { return Boolean(this.unbounded_); }, set: function set(unbounded) { this.unbounded_ = Boolean(unbounded); this.setUnbounded_(); }, enumerable: true, configurable: true }); MDCRipple.prototype.activate = function () { this.foundation_.activate(); }; MDCRipple.prototype.deactivate = function () { this.foundation_.deactivate(); }; MDCRipple.prototype.layout = function () { this.foundation_.layout(); }; MDCRipple.prototype.getDefaultFoundation = function () { return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* MDCRippleFoundation */](MDCRipple.createAdapter(this)); }; MDCRipple.prototype.initialSyncWithDOM = function () { var root = this.root_; this.unbounded = 'mdcRippleIsUnbounded' in root.dataset; }; /** * Closure Compiler throws an access control error when directly accessing a * protected or private property inside a getter/setter, like unbounded above. * By accessing the protected property inside a method, we solve that problem. * That's why this function exists. */ MDCRipple.prototype.setUnbounded_ = function () { this.foundation_.setUnbounded(Boolean(this.unbounded_)); }; return MDCRipple; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var check = function check(it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line no-undef check((typeof globalThis === 'undefined' ? 'undefined' : _typeof(globalThis)) == 'object' && globalThis) || check((typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window) || check((typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self) || check((typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global) || // eslint-disable-next-line no-new-func Function('return this')(); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(15))) /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = applyPassive; /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** * Stores result from applyPassive to avoid redundant processing to detect * passive event listener support. */ var supportsPassive_; /** * Determine whether the current browser supports passive event listeners, and * if so, use them. */ function applyPassive(globalObj, forceRefresh) { if (globalObj === void 0) { globalObj = window; } if (forceRefresh === void 0) { forceRefresh = false; } if (supportsPassive_ === undefined || forceRefresh) { var isSupported_1 = false; try { globalObj.document.addEventListener('test', function () { return undefined; }, { get passive() { isSupported_1 = true; return isSupported_1; } }); } catch (e) {} // tslint:disable-line:no-empty cannot throw error due to tests. tslint also disables console.log. supportsPassive_ = isSupported_1; } return supportsPassive_ ? { passive: true } : false; } //# sourceMappingURL=events.js.map /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCRippleFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(60); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(30); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ // Activation events registered on the root element of each instance for activation var ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown']; // Deactivation events registered on documentElement when a pointer-related down event occurs var POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu']; // simultaneous nested activations var activatedTargets = []; var MDCRippleFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCRippleFoundation, _super); function MDCRippleFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCRippleFoundation.defaultAdapter, adapter)) || this; _this.activationAnimationHasEnded_ = false; _this.activationTimer_ = 0; _this.fgDeactivationRemovalTimer_ = 0; _this.fgScale_ = '0'; _this.frame_ = { width: 0, height: 0 }; _this.initialSize_ = 0; _this.layoutFrame_ = 0; _this.maxRadius_ = 0; _this.unboundedCoords_ = { left: 0, top: 0 }; _this.activationState_ = _this.defaultActivationState_(); _this.activationTimerCallback_ = function () { _this.activationAnimationHasEnded_ = true; _this.runDeactivationUXLogicIfReady_(); }; _this.activateHandler_ = function (e) { return _this.activate_(e); }; _this.deactivateHandler_ = function () { return _this.deactivate_(); }; _this.focusHandler_ = function () { return _this.handleFocus(); }; _this.blurHandler_ = function () { return _this.handleBlur(); }; _this.resizeHandler_ = function () { return _this.layout(); }; return _this; } Object.defineProperty(MDCRippleFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, browserSupportsCssVars: function browserSupportsCssVars() { return true; }, computeBoundingRect: function computeBoundingRect() { return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }; }, containsEventTarget: function containsEventTarget() { return true; }, deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, deregisterResizeHandler: function deregisterResizeHandler() { return undefined; }, getWindowPageOffset: function getWindowPageOffset() { return { x: 0, y: 0 }; }, isSurfaceActive: function isSurfaceActive() { return true; }, isSurfaceDisabled: function isSurfaceDisabled() { return true; }, isUnbounded: function isUnbounded() { return true; }, registerDocumentInteractionHandler: function registerDocumentInteractionHandler() { return undefined; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, registerResizeHandler: function registerResizeHandler() { return undefined; }, removeClass: function removeClass() { return undefined; }, updateCssVariable: function updateCssVariable() { return undefined; } }; }, enumerable: true, configurable: true }); MDCRippleFoundation.prototype.init = function () { var _this = this; var supportsPressRipple = this.supportsPressRipple_(); this.registerRootHandlers_(supportsPressRipple); if (supportsPressRipple) { var _a = MDCRippleFoundation.cssClasses, ROOT_1 = _a.ROOT, UNBOUNDED_1 = _a.UNBOUNDED; requestAnimationFrame(function () { _this.adapter_.addClass(ROOT_1); if (_this.adapter_.isUnbounded()) { _this.adapter_.addClass(UNBOUNDED_1); // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple _this.layoutInternal_(); } }); } }; MDCRippleFoundation.prototype.destroy = function () { var _this = this; if (this.supportsPressRipple_()) { if (this.activationTimer_) { clearTimeout(this.activationTimer_); this.activationTimer_ = 0; this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION); } if (this.fgDeactivationRemovalTimer_) { clearTimeout(this.fgDeactivationRemovalTimer_); this.fgDeactivationRemovalTimer_ = 0; this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION); } var _a = MDCRippleFoundation.cssClasses, ROOT_2 = _a.ROOT, UNBOUNDED_2 = _a.UNBOUNDED; requestAnimationFrame(function () { _this.adapter_.removeClass(ROOT_2); _this.adapter_.removeClass(UNBOUNDED_2); _this.removeCssVars_(); }); } this.deregisterRootHandlers_(); this.deregisterDeactivationHandlers_(); }; /** * @param evt Optional event containing position information. */ MDCRippleFoundation.prototype.activate = function (evt) { this.activate_(evt); }; MDCRippleFoundation.prototype.deactivate = function () { this.deactivate_(); }; MDCRippleFoundation.prototype.layout = function () { var _this = this; if (this.layoutFrame_) { cancelAnimationFrame(this.layoutFrame_); } this.layoutFrame_ = requestAnimationFrame(function () { _this.layoutInternal_(); _this.layoutFrame_ = 0; }); }; MDCRippleFoundation.prototype.setUnbounded = function (unbounded) { var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED; if (unbounded) { this.adapter_.addClass(UNBOUNDED); } else { this.adapter_.removeClass(UNBOUNDED); } }; MDCRippleFoundation.prototype.handleFocus = function () { var _this = this; requestAnimationFrame(function () { return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); }; MDCRippleFoundation.prototype.handleBlur = function () { var _this = this; requestAnimationFrame(function () { return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); }; /** * We compute this property so that we are not querying information about the client * until the point in time where the foundation requests it. This prevents scenarios where * client-side feature-detection may happen too early, such as when components are rendered on the server * and then initialized at mount time on the client. */ MDCRippleFoundation.prototype.supportsPressRipple_ = function () { return this.adapter_.browserSupportsCssVars(); }; MDCRippleFoundation.prototype.defaultActivationState_ = function () { return { activationEvent: undefined, hasDeactivationUXRun: false, isActivated: false, isProgrammatic: false, wasActivatedByPointer: false, wasElementMadeActive: false }; }; /** * supportsPressRipple Passed from init to save a redundant function call */ MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) { var _this = this; if (supportsPressRipple) { ACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.registerInteractionHandler(evtType, _this.activateHandler_); }); if (this.adapter_.isUnbounded()) { this.adapter_.registerResizeHandler(this.resizeHandler_); } } this.adapter_.registerInteractionHandler('focus', this.focusHandler_); this.adapter_.registerInteractionHandler('blur', this.blurHandler_); }; MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) { var _this = this; if (evt.type === 'keydown') { this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_); } else { POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_); }); } }; MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () { var _this = this; ACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.deregisterInteractionHandler(evtType, _this.activateHandler_); }); this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); if (this.adapter_.isUnbounded()) { this.adapter_.deregisterResizeHandler(this.resizeHandler_); } }; MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () { var _this = this; this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_); POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_); }); }; MDCRippleFoundation.prototype.removeCssVars_ = function () { var _this = this; var rippleStrings = MDCRippleFoundation.strings; var keys = Object.keys(rippleStrings); keys.forEach(function (key) { if (key.indexOf('VAR_') === 0) { _this.adapter_.updateCssVariable(rippleStrings[key], null); } }); }; MDCRippleFoundation.prototype.activate_ = function (evt) { var _this = this; if (this.adapter_.isSurfaceDisabled()) { return; } var activationState = this.activationState_; if (activationState.isActivated) { return; } // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction var previousActivationEvent = this.previousActivationEvent_; var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type; if (isSameInteraction) { return; } activationState.isActivated = true; activationState.isProgrammatic = evt === undefined; activationState.activationEvent = evt; activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown'); var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) { return _this.adapter_.containsEventTarget(target); }); if (hasActivatedChild) { // Immediately reset activation state, while preserving logic that prevents touch follow-on events this.resetActivationState_(); return; } if (evt !== undefined) { activatedTargets.push(evt.target); this.registerDeactivationHandlers_(evt); } activationState.wasElementMadeActive = this.checkElementMadeActive_(evt); if (activationState.wasElementMadeActive) { this.animateActivation_(); } requestAnimationFrame(function () { // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples activatedTargets = []; if (!activationState.wasElementMadeActive && evt !== undefined && (evt.key === ' ' || evt.keyCode === 32)) { // If space was pressed, try again within an rAF call to detect :active, because different UAs report // active states inconsistently when they're called within event handling code: // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971 // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741 // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS // variable is set within a rAF callback for a submit button interaction (#2241). activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt); if (activationState.wasElementMadeActive) { _this.animateActivation_(); } } if (!activationState.wasElementMadeActive) { // Reset activation state immediately if element was not made active. _this.activationState_ = _this.defaultActivationState_(); } }); }; MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) { return evt !== undefined && evt.type === 'keydown' ? this.adapter_.isSurfaceActive() : true; }; MDCRippleFoundation.prototype.animateActivation_ = function () { var _this = this; var _a = MDCRippleFoundation.strings, VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START, VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END; var _b = MDCRippleFoundation.cssClasses, FG_DEACTIVATION = _b.FG_DEACTIVATION, FG_ACTIVATION = _b.FG_ACTIVATION; var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS; this.layoutInternal_(); var translateStart = ''; var translateEnd = ''; if (!this.adapter_.isUnbounded()) { var _c = this.getFgTranslationCoordinates_(), startPoint = _c.startPoint, endPoint = _c.endPoint; translateStart = startPoint.x + "px, " + startPoint.y + "px"; translateEnd = endPoint.x + "px, " + endPoint.y + "px"; } this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart); this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd); // Cancel any ongoing activation/deactivation animations clearTimeout(this.activationTimer_); clearTimeout(this.fgDeactivationRemovalTimer_); this.rmBoundedActivationClasses_(); this.adapter_.removeClass(FG_DEACTIVATION); // Force layout in order to re-trigger the animation. this.adapter_.computeBoundingRect(); this.adapter_.addClass(FG_ACTIVATION); this.activationTimer_ = setTimeout(function () { return _this.activationTimerCallback_(); }, DEACTIVATION_TIMEOUT_MS); }; MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () { var _a = this.activationState_, activationEvent = _a.activationEvent, wasActivatedByPointer = _a.wasActivatedByPointer; var startPoint; if (wasActivatedByPointer) { startPoint = Object(__WEBPACK_IMPORTED_MODULE_3__util__["a" /* getNormalizedEventCoords */])(activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect()); } else { startPoint = { x: this.frame_.width / 2, y: this.frame_.height / 2 }; } // Center the element around the start point. startPoint = { x: startPoint.x - this.initialSize_ / 2, y: startPoint.y - this.initialSize_ / 2 }; var endPoint = { x: this.frame_.width / 2 - this.initialSize_ / 2, y: this.frame_.height / 2 - this.initialSize_ / 2 }; return { startPoint: startPoint, endPoint: endPoint }; }; MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () { var _this = this; // This method is called both when a pointing device is released, and when the activation animation ends. // The deactivation animation should only run after both of those occur. var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION; var _a = this.activationState_, hasDeactivationUXRun = _a.hasDeactivationUXRun, isActivated = _a.isActivated; var activationHasEnded = hasDeactivationUXRun || !isActivated; if (activationHasEnded && this.activationAnimationHasEnded_) { this.rmBoundedActivationClasses_(); this.adapter_.addClass(FG_DEACTIVATION); this.fgDeactivationRemovalTimer_ = setTimeout(function () { _this.adapter_.removeClass(FG_DEACTIVATION); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].FG_DEACTIVATION_MS); } }; MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () { var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; this.adapter_.removeClass(FG_ACTIVATION); this.activationAnimationHasEnded_ = false; this.adapter_.computeBoundingRect(); }; MDCRippleFoundation.prototype.resetActivationState_ = function () { var _this = this; this.previousActivationEvent_ = this.activationState_.activationEvent; this.activationState_ = this.defaultActivationState_(); // Touch devices may fire additional events for the same interaction within a short time. // Store the previous event until it's safe to assume that subsequent events are for new interactions. setTimeout(function () { return _this.previousActivationEvent_ = undefined; }, MDCRippleFoundation.numbers.TAP_DELAY_MS); }; MDCRippleFoundation.prototype.deactivate_ = function () { var _this = this; var activationState = this.activationState_; // This can happen in scenarios such as when you have a keyup event that blurs the element. if (!activationState.isActivated) { return; } var state = __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, activationState); if (activationState.isProgrammatic) { requestAnimationFrame(function () { return _this.animateDeactivation_(state); }); this.resetActivationState_(); } else { this.deregisterDeactivationHandlers_(); requestAnimationFrame(function () { _this.activationState_.hasDeactivationUXRun = true; _this.animateDeactivation_(state); _this.resetActivationState_(); }); } }; MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) { var wasActivatedByPointer = _a.wasActivatedByPointer, wasElementMadeActive = _a.wasElementMadeActive; if (wasActivatedByPointer || wasElementMadeActive) { this.runDeactivationUXLogicIfReady_(); } }; MDCRippleFoundation.prototype.layoutInternal_ = function () { var _this = this; this.frame_ = this.adapter_.computeBoundingRect(); var maxDim = Math.max(this.frame_.height, this.frame_.width); // Surface diameter is treated differently for unbounded vs. bounded ripples. // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via // `overflow: hidden`. var getBoundedRadius = function getBoundedRadius() { var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2)); return hypotenuse + MDCRippleFoundation.numbers.PADDING; }; this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius(); // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE); this.fgScale_ = "" + this.maxRadius_ / this.initialSize_; this.updateLayoutCssVars_(); }; MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () { var _a = MDCRippleFoundation.strings, VAR_FG_SIZE = _a.VAR_FG_SIZE, VAR_LEFT = _a.VAR_LEFT, VAR_TOP = _a.VAR_TOP, VAR_FG_SCALE = _a.VAR_FG_SCALE; this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + "px"); this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_); if (this.adapter_.isUnbounded()) { this.unboundedCoords_ = { left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2), top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2) }; this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + "px"); this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + "px"); } }; return MDCRippleFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCRippleFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 10 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VBaseContainer; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_component__ = __webpack_require__(1); 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; } var VBaseContainer = function (_VBaseComponent) { _inherits(VBaseContainer, _VBaseComponent); function VBaseContainer(element, mdcComponent) { _classCallCheck(this, VBaseContainer); var _this = _possibleConstructorReturn(this, (VBaseContainer.__proto__ || Object.getPrototypeOf(VBaseContainer)).call(this, element, mdcComponent)); _this.element.classList.add('v-container'); return _this; } _createClass(VBaseContainer, [{ key: 'components', value: function components() { return Array.from(this.element.querySelectorAll('.v-component')).filter(function (element) { return element.vComponent; }).map(function (element) { return element.vComponent; }); } }, { key: 'inputs', value: function inputs() { return this.element.querySelectorAll('.v-input'); } }, { key: 'inputComponents', value: function inputComponents() { return Array.from(this.inputs()).filter(function (element) { return element.vComponent; }).map(function (element) { return element.vComponent; }); } // Called to collect data for submission }, { key: 'prepareSubmit', value: function prepareSubmit(params) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = this.inputComponents()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var comp = _step.value; if (comp.respondTo('prepareSubmit')) { comp.prepareSubmit(params); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: 'clear', value: function clear() { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = this.inputComponents()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var comp = _step2.value; if (comp.respondTo('clear')) { comp.clear(); } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } }, { key: 'reset', value: function reset() { var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = this.inputComponents()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var comp = _step3.value; if (comp.respondTo('reset')) { comp.reset(); } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } }, { key: 'onShow', value: function onShow() { var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = this.inputComponents()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var comp = _step4.value; if (comp.respondTo('onShow')) { comp.onShow(); } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } } // Called whenever a container is about to be submitted. // returns true on success // returns on failure return an error object that can be processed by VErrors: // { email: ["email must be filled", "email must be from your domain"] } // { :page: ["must be filled"] } }, { key: 'validate', value: function validate(form, params) { console.debug('Form validate', form, params); var errors = []; var _iteratorNormalCompletion5 = true; var _didIteratorError5 = false; var _iteratorError5 = undefined; try { for (var _iterator5 = this.inputComponents()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { var comp = _step5.value; if (comp.respondTo('validate')) { var result = comp.validate(form, params); if (result !== true) { errors.push(result); } } } } catch (err) { _didIteratorError5 = true; _iteratorError5 = err; } finally { try { if (!_iteratorNormalCompletion5 && _iterator5.return) { _iterator5.return(); } } finally { if (_didIteratorError5) { throw _iteratorError5; } } } return errors; } }, { key: 'isDirty', value: function isDirty() { // A container is dirty if any of its dirtyable inputs is dirty: return this.inputComponents().filter(function (component) { return component.respondTo('isDirty'); }).map(function (component) { return component.isDirty(); }).some(Boolean); } }]); return VBaseContainer; }(__WEBPACK_IMPORTED_MODULE_0__base_component__["a" /* VBaseComponent */]); /***/ }), /* 11 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return dirtyableMixin; }); 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; } var dirtyableMixin = function dirtyableMixin(Base) { return function (_Base) { _inherits(_class, _Base); function _class() { _classCallCheck(this, _class); return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments)); } _createClass(_class, [{ key: 'isDirty', value: function isDirty() { // Implement in extending classes. throw new Error('Implement isDirty()'); } }, { key: 'originalValue', get: function get() { return this._originalValue; }, set: function set(value) { this._originalValue = value; } }, { key: 'dirtyable', get: function get() { if (!this.element) { return false; } return this.element.hasAttribute('data-dirtyable'); } }]); return _class; }(Base); }; /***/ }), /* 12 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VBase; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat__ = __webpack_require__(61); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_features_array_flat_map__ = __webpack_require__(191); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_features_array_flat_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_features_array_flat_map__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__errors__ = __webpack_require__(31); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_urls__ = __webpack_require__(195); 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; } var VBase = function (_VUrls) { _inherits(VBase, _VUrls); function VBase(options, root) { _classCallCheck(this, VBase); var _this = _possibleConstructorReturn(this, (VBase.__proto__ || Object.getPrototypeOf(VBase)).call(this)); _this.options = options; _this.root = root; return _this; } _createClass(VBase, [{ key: 'clearErrors', value: function clearErrors() { new __WEBPACK_IMPORTED_MODULE_2__errors__["a" /* VErrors */](this.root).clearErrors(); } }, { key: 'parentElement', value: function parentElement() { return this.root.getElementById(this.options.__parent_id__); } /** * taggedInputs retrieves all components matching this event's input_tag * value. * @return {NodeList} */ }, { key: 'taggedInputs', value: function taggedInputs() { var inputTag = this.options.input_tag; if (!inputTag) { return []; } var selector = '[data-input-tag="' + inputTag + '"]'; var inputs = this.root.querySelectorAll(selector); if (inputs.length < 1) { console.warn('input_tag ' + inputTag + ' matched 0 elements. Are you sure' + 'you\'ve specified the correct value?'); } return inputs; } /** * inputs retrieves relevant input elements for this event. * * - If an `input_tag` has been provided, all matching tagged elements are * included. * - If this component is a input element, it is included. * - If this component has input elements, its input elements are included. * If not, the input elements of the nearest container (dialog or content) * are included. * @return {Array} */ }, { key: 'inputs', value: function inputs() { var components = []; // Collect tagged components, if applicable: if (this.options.input_tag) { var taggedComponents = Array.from(this.taggedInputs()).filter(function (element) { return element.vComponent; }).map(function (element) { return element.vComponent; }); components.push(taggedComponents); } var comp = this.component(); if (comp) { // Include ourselves if we're a form field component, but not a // container: if (comp.respondTo('prepareSubmit') && !comp.respondTo('inputs')) { components.push(comp); } else if (!comp.respondTo('inputs')) { // Defer to the component's closest container (card, content, // dialog, or form) if the component itself does not respond to // `inputs`: comp = this.closestContainer(); } } // If the caller requested tagged_inputs assume they only want those inputs posted and // DO NOT include additional input from the component // I reverted this temporarily as it caused some unintended behavior in. I am going to discuss with the dev // team and revisit in a later release. if (comp && comp.respondTo('inputs')) { //} && !this.options.input_tag) { components.push(comp); } // Map components to elements. // Containers are mapped to their child elements. // Form field components are mapped to their own element. var elements = components.flat().flatMap(function (comp) { if (comp.respondTo('inputs')) { return Array.from(comp.inputs()); } else if (comp.respondTo('prepareSubmit')) { return comp.element; } }); // Deduplicate: return Array.from(new Set(elements)); } /** * inputComponents retrieves the Component for each of this event's * relevant input elements. * @return {Array} */ }, { key: 'inputComponents', value: function inputComponents() { return this.inputs().filter(function (element) { return element.vComponent; }).map(function (element) { return element.vComponent; }); } /** * inputValues retrieves submit values for each of this event's relevant * input elements. * @return {Array} */ }, { key: 'inputValues', value: function inputValues() { var params = []; this.inputComponents().filter(function (comp) { return comp.respondTo('prepareSubmit'); }).map(function (comp) { return comp.prepareSubmit(params); }); return params; } }, { key: 'component', value: function component() { var parent = this.parentElement(); return parent ? parent.vComponent : null; } }, { key: 'validate', value: function validate(formData) { return this.inputComponents().filter(function (comp) { return comp.respondTo('validate'); }).map(function (comp) { return comp.validate(formData); }).filter(function (errors) { return errors !== true && errors !== undefined; }); } }, { key: 'closestContainer', value: function closestContainer() { var element = this.closestContainerElement(); if (!element) { return null; } return element.vComponent; } }, { key: 'closestContainerElement', value: function closestContainerElement() { var comp = this.component(); if (!(comp && comp.element)) { return null; } return comp.element.closest('[data-is-container]'); } }]); return VBase; }(__WEBPACK_IMPORTED_MODULE_3__utils_urls__["a" /* VUrls */]); /***/ }), /* 13 */ /***/ (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 numbers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var 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_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed', SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item' }; var numbers = { DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100, MAX_TOP_APP_BAR_HEIGHT: 128 }; 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' }; //# sourceMappingURL=constants.js.map /***/ }), /* 14 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["c"] = __extends; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assign; }); /* unused harmony export __rest */ /* unused harmony export __decorate */ /* unused harmony export __param */ /* unused harmony export __metadata */ /* harmony export (immutable) */ __webpack_exports__["b"] = __awaiter; /* harmony export (immutable) */ __webpack_exports__["d"] = __generator; /* unused harmony export __exportStar */ /* unused harmony export __values */ /* unused harmony export __read */ /* unused harmony export __spread */ /* unused harmony export __spreadArrays */ /* unused harmony export __await */ /* unused harmony export __asyncGenerator */ /* unused harmony export __asyncDelegator */ /* unused harmony export __asyncValues */ /* unused harmony export __makeTemplateObject */ /* unused harmony export __importStar */ /* unused harmony export __importDefault */ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. 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 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var _extendStatics = function extendStatics(d, b) { _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return _extendStatics(d, b); }; function __extends(d, b) { _extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var _assign = function __assign() { _assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return _assign.apply(this, arguments); }; function __rest(s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; }if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; }return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); }; } function __metadata(metadataKey, metadataValue) { if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function sent() { if (t[0] & 1) throw t[1];return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) { try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0:case 1: t = op;break; case 4: _.label++;return { value: op[1], done: false }; case 5: _.label++;y = op[1];op = [0];continue; case 7: op = _.ops.pop();_.trys.pop();continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0;continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1];break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1];t = op;break; } if (t && _.label < t[2]) { _.label = t[2];_.ops.push(op);break; } if (t[2]) _.ops.pop(); _.trys.pop();continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e];y = 0; } finally { f = t = 0; } }if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) { if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function next() { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); } } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read(arguments[i])); }return ar; } function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) { s += arguments[i].length; }for (var r = Array(s), k = 0, i = 0; i < il; i++) { for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { r[k] = a[j]; } }return r; }; function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) { if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; }result.default = mod; return result; } function __importDefault(mod) { return mod && mod.__esModule ? mod : { default: mod }; } /***/ }), /* 15 */ /***/ (function(module, exports) { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var g; // This works in non-strict mode g = function () { return this; }(); try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1, eval)("this"); } catch (e) { // This works if the window reference is available if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(17); // Thank's IE8 for his funny defineProperty module.exports = !fails(function () { return Object.defineProperty({}, 'a', { get: function get() { return 7; } }).a != 7; }); /***/ }), /* 17 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /* 18 */ /***/ (function(module, exports) { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; module.exports = function (it) { return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 19 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var definePropertyModule = __webpack_require__(33); var createPropertyDescriptor = __webpack_require__(64); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18); module.exports = function (it) { if (!isObject(it)) { throw TypeError(String(it) + ' is not an object'); }return it; }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { var IS_PURE = __webpack_require__(157); var store = __webpack_require__(158); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.3.2', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2019 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(36); var min = Math.min; // `ToLength` abstract operation // https://tc39.github.io/ecma262/#sec-tolength module.exports = function (argument) { return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = expandParam; /* harmony export (immutable) */ __webpack_exports__["b"] = expandParams; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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"); } } var VActionParameter = function () { function VActionParameter(options) { _classCallCheck(this, VActionParameter); this.value = options.value; this.response_index = options.response_index; } _createClass(VActionParameter, [{ key: 'fetchValue', value: function fetchValue(results) { var result = results[results.length - this.response_index - 1]; return this.resolve(this.value, JSON.parse(result.content)); } }, { key: 'resolve', value: function resolve(path, obj) { return this.value.reduce(function (prev, curr) { return prev ? prev[curr] : null; }, obj || self); } }]); return VActionParameter; }(); function isObject(thing) { return thing && (typeof thing === 'undefined' ? 'undefined' : _typeof(thing)) === 'object'; } /** * expandParam resolves an parameter `value` to a primitive value * according to the given path for the parameter in `results`. * If the `value` is not an action_parameter, it is returned unaltered. * @param {Object} results An action's results * @param {*} value The value of the parameter * @return {*} A resolved primitive value */ function expandParam(results, value) { if (isObject(value) && value.type === 'action_parameter') { return new VActionParameter(value).fetchValue(results); } return value; } /** * expandParams resolves all values in `params` to primitive values. * * Primitive values are passed through unaltered. * Values of action_parameter parameters are resolved to primitive values * via `results`. * @param {Object} results An action's results * @param {Object} params An action's parameters * @return {Object} */ function expandParams(results, params) { var expandedParams = {}; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = Object.entries(params)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref = _step.value; var _ref2 = _slicedToArray(_ref, 2); var key = _ref2[0]; var value = _ref2[1]; if (!isObject(value) || value.type === 'action_parameter') { expandedParams[key] = expandParam(results, value); } else { expandedParams[key] = expandParams(results, value); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return expandedParams; } /***/ }), /* 25 */ /***/ (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 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ANCHOR: 'mdc-menu-surface--anchor', ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed', ANIMATING_OPEN: 'mdc-menu-surface--animating-open', FIXED: 'mdc-menu-surface--fixed', OPEN: 'mdc-menu-surface--open', ROOT: 'mdc-menu-surface' }; // tslint:disable:object-literal-sort-keys var strings = { CLOSED_EVENT: 'MDCMenuSurface:closed', OPENED_EVENT: 'MDCMenuSurface:opened', FOCUSABLE_ELEMENTS: ['button:not(:disabled)', '[href]:not([aria-disabled="true"])', 'input:not(:disabled)', 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]:not([tabindex="-1"]):not([aria-disabled="true"])'].join(', ') }; // tslint:enable:object-literal-sort-keys var numbers = { /** Total duration of menu-surface open animation. */ TRANSITION_OPEN_DURATION: 120, /** Total duration of menu-surface close animation. */ TRANSITION_CLOSE_DURATION: 75, /** Margin left to the edge of the viewport when menu-surface is at maximum possible height. */ MARGIN_TO_EDGE: 32, /** Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning. */ ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67 }; /** * Enum for bits in the {@see Corner) bitmap. */ var CornerBit; (function (CornerBit) { CornerBit[CornerBit["BOTTOM"] = 1] = "BOTTOM"; CornerBit[CornerBit["CENTER"] = 2] = "CENTER"; CornerBit[CornerBit["RIGHT"] = 4] = "RIGHT"; CornerBit[CornerBit["FLIP_RTL"] = 8] = "FLIP_RTL"; })(CornerBit || (CornerBit = {})); /** * Enum for representing an element corner for positioning the menu-surface. * * 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. */ var Corner; (function (Corner) { Corner[Corner["TOP_LEFT"] = 0] = "TOP_LEFT"; Corner[Corner["TOP_RIGHT"] = 4] = "TOP_RIGHT"; Corner[Corner["BOTTOM_LEFT"] = 1] = "BOTTOM_LEFT"; Corner[Corner["BOTTOM_RIGHT"] = 5] = "BOTTOM_RIGHT"; Corner[Corner["TOP_START"] = 8] = "TOP_START"; Corner[Corner["TOP_END"] = 12] = "TOP_END"; Corner[Corner["BOTTOM_START"] = 9] = "BOTTOM_START"; Corner[Corner["BOTTOM_END"] = 13] = "BOTTOM_END"; })(Corner || (Corner = {})); //# sourceMappingURL=constants.js.map /***/ }), /* 26 */ /***/ (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 DefaultFocusState; }); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { MENU_SELECTED_LIST_ITEM: 'mdc-menu-item--selected', MENU_SELECTION_GROUP: 'mdc-menu__selection-group', ROOT: 'mdc-menu' }; var strings = { ARIA_CHECKED_ATTR: 'aria-checked', ARIA_DISABLED_ATTR: 'aria-disabled', CHECKBOX_SELECTOR: 'input[type="checkbox"]', LIST_SELECTOR: '.mdc-list', SELECTED_EVENT: 'MDCMenu:selected' }; var numbers = { FOCUS_ROOT_INDEX: -1 }; var DefaultFocusState; (function (DefaultFocusState) { DefaultFocusState[DefaultFocusState["NONE"] = 0] = "NONE"; DefaultFocusState[DefaultFocusState["LIST_ROOT"] = 1] = "LIST_ROOT"; DefaultFocusState[DefaultFocusState["FIRST_ITEM"] = 2] = "FIRST_ITEM"; DefaultFocusState[DefaultFocusState["LAST_ITEM"] = 3] = "LAST_ITEM"; })(DefaultFocusState || (DefaultFocusState = {})); //# sourceMappingURL=constants.js.map /***/ }), /* 27 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VBaseToggle; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_event_handler__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_dirtyable__ = __webpack_require__(11); 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; } var VBaseToggle = function (_dirtyableMixin) { _inherits(VBaseToggle, _dirtyableMixin); function VBaseToggle(element, mdcComponent) { _classCallCheck(this, VBaseToggle); var _this = _possibleConstructorReturn(this, (VBaseToggle.__proto__ || Object.getPrototypeOf(VBaseToggle)).call(this, element, mdcComponent)); _this.input = element.querySelector('input') || element; element.addEventListener('V:postFailed', function (event) { // Revert to previous checked state on failed post. _this.mdcComponent.checked = !_this.mdcComponent.checked; }); _this.originalValue = _this.input.checked; return _this; } _createClass(VBaseToggle, [{ key: 'prepareSubmit', value: function prepareSubmit(params) { if (this.submittedValue()) { params.push([this.name(), this.submittedValue()]); } } }, { key: 'submittedValue', value: function submittedValue() { return this.input.checked ? this.value() : this.offValue(); } }, { key: 'name', value: function name() { return this.input.name; } }, { key: 'value', value: function value() { return this.input.value; } }, { key: 'offValue', value: function offValue() { return this.input.dataset.off; } }, { key: 'clear', value: function clear() { this.input.checked = false; } }, { key: 'reset', value: function reset() { this.input.checked = this.originalValue; } }, { key: 'setValue', value: function setValue(value) { this.input.value = value; } }, { key: 'isDirty', value: function isDirty() { return this.dirtyable && this.input.checked !== this.originalValue; } }]); return VBaseToggle; }(Object(__WEBPACK_IMPORTED_MODULE_2__mixins_dirtyable__["a" /* dirtyableMixin */])(Object(__WEBPACK_IMPORTED_MODULE_1__mixins_event_handler__["a" /* eventHandlerMixin */])(__WEBPACK_IMPORTED_MODULE_0__base_component__["a" /* VBaseComponent */]))); /***/ }), /* 28 */ /***/ (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 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { CLOSING: 'mdc-snackbar--closing', OPEN: 'mdc-snackbar--open', OPENING: 'mdc-snackbar--opening' }; var strings = { ACTION_SELECTOR: '.mdc-snackbar__action', ARIA_LIVE_LABEL_TEXT_ATTR: 'data-mdc-snackbar-label-text', CLOSED_EVENT: 'MDCSnackbar:closed', CLOSING_EVENT: 'MDCSnackbar:closing', DISMISS_SELECTOR: '.mdc-snackbar__dismiss', LABEL_SELECTOR: '.mdc-snackbar__label', OPENED_EVENT: 'MDCSnackbar:opened', OPENING_EVENT: 'MDCSnackbar:opening', REASON_ACTION: 'action', REASON_DISMISS: 'dismiss', SURFACE_SELECTOR: '.mdc-snackbar__surface' }; var numbers = { DEFAULT_AUTO_DISMISS_TIMEOUT_MS: 5000, MAX_AUTO_DISMISS_TIMEOUT_MS: 10000, MIN_AUTO_DISMISS_TIMEOUT_MS: 4000, // These variables need to be kept in sync with the values in _variables.scss. SNACKBAR_ANIMATION_CLOSE_TIME_MS: 75, SNACKBAR_ANIMATION_OPEN_TIME_MS: 150, /** * Number of milliseconds to wait between temporarily clearing the label text * in the DOM and subsequently restoring it. This is necessary to force IE 11 * to pick up the `aria-live` content change and announce it to the user. */ ARIA_LIVE_DELAY_MS: 1000 }; //# sourceMappingURL=constants.js.map /***/ }), /* 29 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = getCorrectPropertyName; /* harmony export (immutable) */ __webpack_exports__["a"] = getCorrectEventName; /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssPropertyNameMap = { animation: { prefixed: '-webkit-animation', standard: 'animation' }, transform: { prefixed: '-webkit-transform', standard: 'transform' }, transition: { prefixed: '-webkit-transition', standard: 'transition' } }; var jsEventTypeMap = { animationend: { cssProperty: 'animation', prefixed: 'webkitAnimationEnd', standard: 'animationend' }, animationiteration: { cssProperty: 'animation', prefixed: 'webkitAnimationIteration', standard: 'animationiteration' }, animationstart: { cssProperty: 'animation', prefixed: 'webkitAnimationStart', standard: 'animationstart' }, transitionend: { cssProperty: 'transition', prefixed: 'webkitTransitionEnd', standard: 'transitionend' } }; function isWindow(windowObj) { return Boolean(windowObj.document) && typeof windowObj.document.createElement === 'function'; } function getCorrectPropertyName(windowObj, cssProperty) { if (isWindow(windowObj) && cssProperty in cssPropertyNameMap) { var el = windowObj.document.createElement('div'); var _a = cssPropertyNameMap[cssProperty], standard = _a.standard, prefixed = _a.prefixed; var isStandard = standard in el.style; return isStandard ? standard : prefixed; } return cssProperty; } function getCorrectEventName(windowObj, eventType) { if (isWindow(windowObj) && eventType in jsEventTypeMap) { var el = windowObj.document.createElement('div'); var _a = jsEventTypeMap[eventType], standard = _a.standard, prefixed = _a.prefixed, cssProperty = _a.cssProperty; var isStandard = cssProperty in el.style; return isStandard ? standard : prefixed; } return eventType; } //# sourceMappingURL=util.js.map /***/ }), /* 30 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = supportsCssVariables; /* harmony export (immutable) */ __webpack_exports__["a"] = getNormalizedEventCoords; /** * Stores result from supportsCssVariables to avoid redundant processing to * detect CSS custom variable support. */ var supportsCssVariables_; 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'; // Append to head instead of body because this script might be invoked in the // head, in which case the body doesn't exist yet. The probe works either way. document.head.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'; if (node.parentNode) { node.parentNode.removeChild(node); } return hasPseudoVarBug; } function supportsCssVariables(windowObj, forceRefresh) { if (forceRefresh === void 0) { forceRefresh = false; } var CSS = windowObj.CSS; var supportsCssVars = supportsCssVariables_; if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) { return supportsCssVariables_; } var supportsFunctionPresent = CSS && typeof CSS.supports === 'function'; if (!supportsFunctionPresent) { return false; } var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes'); // See: https://bugs.webkit.org/show_bug.cgi?id=154669 // See: README section on Safari var weAreFeatureDetectingSafari10plus = CSS.supports('(--css-vars: yes)') && CSS.supports('color', '#00000000'); if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) { supportsCssVars = !detectEdgePseudoVarBug(windowObj); } else { supportsCssVars = false; } if (!forceRefresh) { supportsCssVariables_ = supportsCssVars; } return supportsCssVars; } function getNormalizedEventCoords(evt, pageOffset, clientRect) { if (!evt) { return { x: 0, y: 0 }; } var x = pageOffset.x, y = pageOffset.y; var documentX = x + clientRect.left; var documentY = y + clientRect.top; var normalizedX; var normalizedY; // Determine touch point relative to the ripple container. if (evt.type === 'touchstart') { var touchEvent = evt; normalizedX = touchEvent.changedTouches[0].pageX - documentX; normalizedY = touchEvent.changedTouches[0].pageY - documentY; } else { var mouseEvent = evt; normalizedX = mouseEvent.pageX - documentX; normalizedY = mouseEvent.pageY - documentY; } return { x: normalizedX, y: normalizedY }; } //# sourceMappingURL=util.js.map /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VErrors; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat__ = __webpack_require__(61); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_features_array_flat__); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 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; } /** * mapObject transforms an object's key-value pairs via the provided function. * @param {Object} object * @param {Function} fn A mapping function suitable for use with Array.map * @return {Object} */ function mapObject(object, fn) { return Object.entries(object).map(fn).reduce(function (obj, _ref) { var _ref2 = _slicedToArray(_ref, 2), k = _ref2[0], v = _ref2[1]; return Object.assign(obj, _defineProperty({}, [k], v)); }, {}); } /* Attempt to interpret and serialize the following cases for display: A: Rails errors: 1. { "name": ["Requires name"] } B: Validation errors: 1. { :email => ["must be filled"] } 2. { :fees => 0 => { :fee => ["must be filled", "must be greater than zero"] } } C: Custom errors and client-side exceptions: 1. { :email => "must be filled" } 2. { exception: 'Something bad happened' } D: Logical errors: 1. "undefined method `map' for nil:NilClass" */ var VErrors = function () { function VErrors(root, target) { _classCallCheck(this, VErrors); this.root = root; this.target = target; } _createClass(VErrors, [{ key: 'clearErrors', value: function clearErrors() { var errorMessages = this.root.querySelectorAll('.v-error-message'); for (var i = 0; i < errorMessages.length; i++) { errorMessages[i].remove(); } } /** * normalize attempts to convert the various error structures described * above into a single consistent structure by replacing error arrays * with joined strings. * @param {Object} errors * @return {Object} */ }, { key: 'normalize', value: function normalize(errors) { var _this = this; if (!errors) { return {}; } // Normalize case D into case C-1: if (typeof errors === 'string') { errors = { error: errors }; } return mapObject(errors, function (_ref3) { var _ref4 = _slicedToArray(_ref3, 2), k = _ref4[0], v = _ref4[1]; var result = null; // Case C, a single key-value pair: if (typeof v === 'string') { // Normalize case C into case A/B-1: v = [v]; } if (Array.isArray(v)) { // Case A and B-1: an array of error messages: result = v.join(', '); } else if (v.constructor === Object) { // Case B-2: a nested structure: result = _this.normalize(v); } else { throw new Error('Cannot normalize value of type ' + (typeof v === 'undefined' ? 'undefined' : _typeof(v))); } return [k, result]; }); } /** * flatten attempts to extract all human-readable error messages from an * arbitrary error structure, yielding a flat array of strings. * @param {Object} errors * @return {Array} */ }, { key: 'flatten', value: function flatten(errors) { var _this2 = this; if (!errors) { return []; } // Normalize case D into case C-1: if (typeof errors === 'string') { errors = { error: errors }; } var object = mapObject(errors, function (_ref5) { var _ref6 = _slicedToArray(_ref5, 2), k = _ref6[0], v = _ref6[1]; var result = null; if (typeof v === 'string') { result = v; } else if (v.constructor === Object) { result = _this2.flatten(v); } else { throw new Error('Cannot flatten value of type ' + (typeof v === 'undefined' ? 'undefined' : _typeof(v))); } return [k, result]; }); return Object.values(object).flat(); } }, { key: 'displayErrors', value: function displayErrors(result) { var statusCode = result.statusCode, contentType = result.contentType, content = result.content; var responseErrors = null; if (contentType && contentType.includes('application/json')) { responseErrors = JSON.parse(content); } else if (contentType && contentType.includes('v/errors')) { responseErrors = content; } if (responseErrors) { if (!Array.isArray(responseErrors)) { responseErrors = [responseErrors]; } var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = responseErrors[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var response = _step.value; var normalizedResponse = this.normalize(response); var errors = normalizedResponse.errors ? normalizedResponse.errors : normalizedResponse; if (errors.constructor === String) { this.prependErrors([errors]); } else { for (var key in errors) { if (!this.displayInputError(key, errors[key])) { // If not handled at the field level, display at the page level if (errors[key].length > 0) { this.prependErrors([errors[key]]); } } } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } else if (statusCode === 0) { this.prependErrors(['Unable to contact server. Please check that you are online and retry.']); } else { this.prependErrors(['The server returned an unexpected response! Status: ' + statusCode]); } } // Sets the helper text on the field // Returns true if it was able to set the error on the control }, { key: 'displayInputError', value: function displayInputError(id, message) { var currentEl = this.root.getElementById(id) || this.root.getElementsByName(id)[0]; if (!currentEl) { return false; } var helperText = this.root.getElementById(currentEl.id + '-helper-text'); if (!helperText) { return false; } helperText.innerHTML = message; currentEl.classList.add('mdc-text-field--invalid'); helperText.classList.add('mdc-text-field-helper-text--validation-msg'); helperText.classList.remove('v-hidden'); return true; } // Creates a div before the element with the same id as the error // Used to display an error message without their being an input field to // attach the error to }, { key: 'prependErrors', value: function prependErrors(messages) { var errorsDiv = this.findNearestErrorDiv(); if (!errorsDiv) { console.error('Unable to display Errors! ', messages); return false; } var newDiv = document.createElement('div'); newDiv.classList.add('v-error-message'); newDiv.insertAdjacentHTML('beforeend', messages.join('
')); // add the newly created element and its content into the DOM if (errorsDiv.clientTop < 10) { errorsDiv.scrollIntoView(); } errorsDiv.insertAdjacentElement('beforebegin', newDiv); return true; } }, { key: 'findNearestErrorDiv', value: function findNearestErrorDiv() { if (this.target) { return this.target.closest('.v-errors'); } return this.root.querySelector('.v-errors'); } }]); return VErrors; }(); /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(155); var requireObjectCoercible = __webpack_require__(66); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var IE8_DOM_DEFINE = __webpack_require__(68); var anObject = __webpack_require__(21); var toPrimitive = __webpack_require__(67); var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return nativeDefineProperty(O, P, Attributes); } catch (error) {/* empty */} if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var createNonEnumerableProperty = __webpack_require__(20); module.exports = function (key, value) { try { createNonEnumerableProperty(global, key, value); } catch (error) { global[key] = value; }return value; }; /***/ }), /* 35 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 36 */ /***/ (function(module, exports) { var ceil = Math.ceil; var floor = Math.floor; // `ToInteger` abstract operation // https://tc39.github.io/ecma262/#sec-tointeger module.exports = function (argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; /***/ }), /* 37 */ /***/ (function(module, exports) { // IE8- don't enum bug keys module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { var tabbable = __webpack_require__(177); var xtend = __webpack_require__(178); var activeFocusDelay; var activeFocusTraps = function () { var trapQueue = []; return { activateTrap: function activateTrap(trap) { if (trapQueue.length > 0) { var activeTrap = trapQueue[trapQueue.length - 1]; if (activeTrap !== trap) { activeTrap.pause(); } } var trapIndex = trapQueue.indexOf(trap); if (trapIndex === -1) { trapQueue.push(trap); } else { // move this existing trap to the front of the queue trapQueue.splice(trapIndex, 1); trapQueue.push(trap); } }, deactivateTrap: function deactivateTrap(trap) { var trapIndex = trapQueue.indexOf(trap); if (trapIndex !== -1) { trapQueue.splice(trapIndex, 1); } if (trapQueue.length > 0) { trapQueue[trapQueue.length - 1].unpause(); } } }; }(); function focusTrap(element, userOptions) { var doc = document; var container = typeof element === 'string' ? doc.querySelector(element) : element; var config = xtend({ returnFocusOnDeactivate: true, escapeDeactivates: true }, userOptions); var state = { firstTabbableNode: null, lastTabbableNode: null, nodeFocusedBeforeActivation: null, mostRecentlyFocusedNode: null, active: false, paused: false }; var trap = { activate: activate, deactivate: deactivate, pause: pause, unpause: unpause }; return trap; function activate(activateOptions) { if (state.active) return; updateTabbableNodes(); state.active = true; state.paused = false; state.nodeFocusedBeforeActivation = doc.activeElement; var onActivate = activateOptions && activateOptions.onActivate ? activateOptions.onActivate : config.onActivate; if (onActivate) { onActivate(); } addListeners(); return trap; } function deactivate(deactivateOptions) { if (!state.active) return; clearTimeout(activeFocusDelay); removeListeners(); state.active = false; state.paused = false; activeFocusTraps.deactivateTrap(trap); var onDeactivate = deactivateOptions && deactivateOptions.onDeactivate !== undefined ? deactivateOptions.onDeactivate : config.onDeactivate; if (onDeactivate) { onDeactivate(); } var returnFocus = deactivateOptions && deactivateOptions.returnFocus !== undefined ? deactivateOptions.returnFocus : config.returnFocusOnDeactivate; if (returnFocus) { delay(function () { tryFocus(state.nodeFocusedBeforeActivation); }); } return trap; } function pause() { if (state.paused || !state.active) return; state.paused = true; removeListeners(); } function unpause() { if (!state.paused || !state.active) return; state.paused = false; updateTabbableNodes(); addListeners(); } function addListeners() { if (!state.active) return; // There can be only one listening focus trap at a time activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event // that caused the focus trap activation. activeFocusDelay = delay(function () { tryFocus(getInitialFocusNode()); }); doc.addEventListener('focusin', checkFocusIn, true); doc.addEventListener('mousedown', checkPointerDown, { capture: true, passive: false }); doc.addEventListener('touchstart', checkPointerDown, { capture: true, passive: false }); doc.addEventListener('click', checkClick, { capture: true, passive: false }); doc.addEventListener('keydown', checkKey, { capture: true, passive: false }); return trap; } function removeListeners() { if (!state.active) return; doc.removeEventListener('focusin', checkFocusIn, true); doc.removeEventListener('mousedown', checkPointerDown, true); doc.removeEventListener('touchstart', checkPointerDown, true); doc.removeEventListener('click', checkClick, true); doc.removeEventListener('keydown', checkKey, true); return trap; } function getNodeForOption(optionName) { var optionValue = config[optionName]; var node = optionValue; if (!optionValue) { return null; } if (typeof optionValue === 'string') { node = doc.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 getInitialFocusNode() { var node; if (getNodeForOption('initialFocus') !== null) { node = getNodeForOption('initialFocus'); } else if (container.contains(doc.activeElement)) { node = doc.activeElement; } else { node = state.firstTabbableNode || 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 (container.contains(e.target)) return; if (config.clickOutsideDeactivates) { deactivate({ returnFocus: !tabbable.isFocusable(e.target) }); return; } // This is needed for mobile devices. // (If we'll only let `click` events through, // then on mobile they will be blocked anyways if `touchstart` is blocked.) if (config.allowOutsideClick && config.allowOutsideClick(e)) { return; } e.preventDefault(); } // In case focus escapes the trap for some strange reason, pull it back in. function checkFocusIn(e) { // In Firefox when you Tab out of an iframe the Document is briefly focused. if (container.contains(e.target) || e.target instanceof Document) { return; } e.stopImmediatePropagation(); tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); } function checkKey(e) { if (config.escapeDeactivates !== false && isEscapeEvent(e)) { e.preventDefault(); deactivate(); return; } if (isTabEvent(e)) { checkTab(e); return; } } // Hijack Tab events on the first and last focusable nodes of the trap, // in order to prevent focus from escaping. If it escapes for even a // moment it can end up scrolling the page and causing confusion so we // kind of need to capture the action at the keydown phase. function checkTab(e) { updateTabbableNodes(); if (e.shiftKey && e.target === state.firstTabbableNode) { e.preventDefault(); tryFocus(state.lastTabbableNode); return; } if (!e.shiftKey && e.target === state.lastTabbableNode) { e.preventDefault(); tryFocus(state.firstTabbableNode); return; } } function checkClick(e) { if (config.clickOutsideDeactivates) return; if (container.contains(e.target)) return; if (config.allowOutsideClick && config.allowOutsideClick(e)) { return; } e.preventDefault(); e.stopImmediatePropagation(); } function updateTabbableNodes() { var tabbableNodes = tabbable(container); state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode(); state.lastTabbableNode = tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode(); } function tryFocus(node) { if (node === doc.activeElement) return; if (!node || !node.focus) { tryFocus(getInitialFocusNode()); return; } node.focus(); state.mostRecentlyFocusedNode = node; if (isSelectableInput(node)) { node.select(); } } } function isSelectableInput(node) { return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function'; } function isEscapeEvent(e) { return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27; } function isTabEvent(e) { return e.key === 'Tab' || e.keyCode === 9; } function delay(fn) { return setTimeout(fn, 0); } module.exports = focusTrap; /***/ }), /* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCNotchedOutline; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_floating_label_foundation__ = __webpack_require__(89); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(40); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(91); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCNotchedOutline = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCNotchedOutline, _super); function MDCNotchedOutline() { return _super !== null && _super.apply(this, arguments) || this; } MDCNotchedOutline.attachTo = function (root) { return new MDCNotchedOutline(root); }; MDCNotchedOutline.prototype.initialSyncWithDOM = function () { this.notchElement_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].NOTCH_ELEMENT_SELECTOR); var label = this.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_2__material_floating_label_foundation__["a" /* MDCFloatingLabelFoundation */].cssClasses.ROOT); if (label) { label.style.transitionDuration = '0s'; this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].OUTLINE_UPGRADED); requestAnimationFrame(function () { label.style.transitionDuration = ''; }); } else { this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].NO_LABEL); } }; /** * Updates classes and styles to open the notch to the specified width. * @param notchWidth The notch width in the outline. */ MDCNotchedOutline.prototype.notch = function (notchWidth) { this.foundation_.notch(notchWidth); }; /** * Updates classes and styles to close the notch. */ MDCNotchedOutline.prototype.closeNotch = function () { this.foundation_.closeNotch(); }; MDCNotchedOutline.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, setNotchWidthProperty: function setNotchWidthProperty(width) { return _this.notchElement_.style.setProperty('width', width + 'px'); }, removeNotchWidthProperty: function removeNotchWidthProperty() { return _this.notchElement_.style.removeProperty('width'); } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* MDCNotchedOutlineFoundation */](adapter); }; return MDCNotchedOutline; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 40 */ /***/ (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 numbers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { NOTCH_ELEMENT_SELECTOR: '.mdc-notched-outline__notch' }; var numbers = { // This should stay in sync with $mdc-notched-outline-padding * 2. NOTCH_ELEMENT_PADDING: 8 }; var cssClasses = { NO_LABEL: 'mdc-notched-outline--no-label', OUTLINE_NOTCHED: 'mdc-notched-outline--notched', OUTLINE_UPGRADED: 'mdc-notched-outline--upgraded' }; //# sourceMappingURL=constants.js.map /***/ }), /* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldCharacterCounterFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(93); /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTextFieldCharacterCounterFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldCharacterCounterFoundation, _super); function MDCTextFieldCharacterCounterFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTextFieldCharacterCounterFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldCharacterCounterFoundation, "defaultAdapter", { /** * See {@link MDCTextFieldCharacterCounterAdapter} for typing information on parameters and return types. */ get: function get() { return { setContent: function setContent() { return undefined; } }; }, enumerable: true, configurable: true }); MDCTextFieldCharacterCounterFoundation.prototype.setCounterValue = function (currentLength, maxLength) { currentLength = Math.min(currentLength, maxLength); this.adapter_.setContent(currentLength + " / " + maxLength); }; return MDCTextFieldCharacterCounterFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldCharacterCounterFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 42 */ /***/ (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 VALIDATION_ATTR_WHITELIST; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ALWAYS_FLOAT_TYPES; }); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ARIA_CONTROLS: 'aria-controls', ICON_SELECTOR: '.mdc-text-field__icon', INPUT_SELECTOR: '.mdc-text-field__input', LABEL_SELECTOR: '.mdc-floating-label', LINE_RIPPLE_SELECTOR: '.mdc-line-ripple', OUTLINE_SELECTOR: '.mdc-notched-outline' }; var cssClasses = { DENSE: 'mdc-text-field--dense', DISABLED: 'mdc-text-field--disabled', FOCUSED: 'mdc-text-field--focused', FULLWIDTH: 'mdc-text-field--fullwidth', HELPER_LINE: 'mdc-text-field-helper-line', INVALID: 'mdc-text-field--invalid', NO_LABEL: 'mdc-text-field--no-label', OUTLINED: 'mdc-text-field--outlined', ROOT: 'mdc-text-field', TEXTAREA: 'mdc-text-field--textarea', WITH_LEADING_ICON: 'mdc-text-field--with-leading-icon', WITH_TRAILING_ICON: 'mdc-text-field--with-trailing-icon' }; var numbers = { DENSE_LABEL_SCALE: 0.923, LABEL_SCALE: 0.75 }; /** * Whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation * under the "Validation-related attributes" section. */ var VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength']; /** * Label should always float for these types as they show some UI even if value is empty. */ var ALWAYS_FLOAT_TYPES = ['color', 'date', 'datetime-local', 'month', 'range', 'time', 'week']; //# sourceMappingURL=constants.js.map /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldHelperTextFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(96); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTextFieldHelperTextFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldHelperTextFoundation, _super); function MDCTextFieldHelperTextFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTextFieldHelperTextFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCTextFieldHelperTextFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldHelperTextFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldHelperTextFoundation, "defaultAdapter", { /** * See {@link MDCTextFieldHelperTextAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, setAttr: function setAttr() { return undefined; }, removeAttr: function removeAttr() { return undefined; }, setContent: function setContent() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); /** * Sets the content of the helper text field. */ MDCTextFieldHelperTextFoundation.prototype.setContent = function (content) { this.adapter_.setContent(content); }; /** * @param isPersistent Sets the persistency of the helper text. */ MDCTextFieldHelperTextFoundation.prototype.setPersistent = function (isPersistent) { if (isPersistent) { this.adapter_.addClass(__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 isValidation True to make the helper text act as an error validation message. */ MDCTextFieldHelperTextFoundation.prototype.setValidation = function (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. */ MDCTextFieldHelperTextFoundation.prototype.showToScreenReader = function () { this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN); }; /** * Sets the validity of the helper text based on the input validity. */ MDCTextFieldHelperTextFoundation.prototype.setValidity = function (inputIsValid) { var helperTextIsPersistent = this.adapter_.hasClass(__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. */ MDCTextFieldHelperTextFoundation.prototype.hide_ = function () { this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN, 'true'); }; return MDCTextFieldHelperTextFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldHelperTextFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return visibilityObserverMixin; }); 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; } var visibilityObserverMixin = function visibilityObserverMixin(Base) { return function (_Base) { _inherits(_class, _Base); function _class() { _classCallCheck(this, _class); return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments)); } _createClass(_class, [{ key: 'recalcWhenVisible', value: function recalcWhenVisible(vComponent) { vComponent.hidden_on_create = vComponent.element.offsetParent === null; if (vComponent.hidden_on_create) { // If the component is hidden in DOM for any number of reasons (parent is hidden) then the // Text Field may no render correctly. In this case we observe the DOM watching for a point at which the // element become visible in the DOM and at that point using the MDCComponent to properly re-render that // element vComponent.mutationObserver = new MutationObserver(function (mutations) { if (this.vComponent.hidden_on_create) { if (this.vComponent.element.offsetParent !== null) { // Parent is now visible. Re-run the MDC layout and disconnect from the observer this.vComponent.hidden_on_create = false; this.vComponent.mdcComponent.layout(); // I changed this to addtionally force a resize event on the element after mdcComponent.layout(); // method. In some scenarios with the MDCSlider going from hidden to visible calling layout // didn't work. Firing the 'resize' event did. var event = document.createEvent('HTMLEvents'); event.initEvent('resize', true, false); this.vComponent.element.dispatchEvent(event); this.disconnect(); } } }); vComponent.mutationObserver.vComponent = vComponent; vComponent.mutationObserver.observe(vComponent.root.documentElement || vComponent.root.host, { attributes: true, subtree: true }); } } }]); return _class; }(Base); }; /***/ }), /* 45 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VEvents; }); /* harmony export (immutable) */ __webpack_exports__["b"] = initEvents; /* harmony export (immutable) */ __webpack_exports__["c"] = removeEvents; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events_loads__ = __webpack_require__(190); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events_posts__ = __webpack_require__(196); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__events_replaces__ = __webpack_require__(199); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__events_dialog__ = __webpack_require__(107); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__events_errors__ = __webpack_require__(31); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__events_toggle_visibility__ = __webpack_require__(204); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__events_toggle_disabled__ = __webpack_require__(205); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__events_autocomplete__ = __webpack_require__(206); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__events_prompt_if_dirty__ = __webpack_require__(207); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__events_snackbar__ = __webpack_require__(208); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__events_clears__ = __webpack_require__(209); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__events_close_dialog__ = __webpack_require__(210); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__events_post_message__ = __webpack_require__(211); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__events_removes__ = __webpack_require__(212); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__events_stepper__ = __webpack_require__(213); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__events_navigates__ = __webpack_require__(214); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__events_plugin__ = __webpack_require__(215); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__root_document__ = __webpack_require__(216); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__drag_n_drop__ = __webpack_require__(108); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__get_event_target__ = __webpack_require__(102); 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"); } } var EVENTS_SELECTOR = '[data-events]'; var VEvents = function () { // [[type, url, target, params]] function VEvents(actions, event, root, vComponent) { var _this = this; _classCallCheck(this, VEvents); this.event = event; this.root = root; this.actions = actions.map(function (action) { return _this.constructor.action_class(action, event, root); }); this.vComponent = vComponent; } _createClass(VEvents, [{ key: 'call', value: function call() { var _this2 = this; var event = this.event; var target = Object(__WEBPACK_IMPORTED_MODULE_19__get_event_target__["a" /* getEventTarget */])(event); var eventParams = {}; if (Object(__WEBPACK_IMPORTED_MODULE_18__drag_n_drop__["b" /* hasDragDropData */])(event)) { eventParams = Object.assign(eventParams, Object(__WEBPACK_IMPORTED_MODULE_18__drag_n_drop__["a" /* extractDragDropData */])(event)); } else if (event.detail && event.detail.constructor === Object) { eventParams = Object.assign(eventParams, event.detail); } // Adapted from http://www.datchley.name/promise-patterns-anti-patterns/#executingpromisesinseries var fnlist = this.actions.map(function (action) { return function (results) { return Promise.resolve(action.call(results, eventParams)); }; }); // Execute a list of Promise return functions in series function pseries(list) { var p = Promise.resolve([]); return list.reduce(function (pacc, fn) { return pacc = pacc.then(fn); }, p); } var ev = new CustomEvent('V:eventsStarted', { bubbles: true, cancelable: false, detail: this }); target.dispatchEvent(ev); if (this.vComponent) { this.vComponent.actionsStarted(this); } new __WEBPACK_IMPORTED_MODULE_4__events_errors__["a" /* VErrors */](this.root).clearErrors(); pseries(fnlist).then(function (results) { var result = results.pop(); var contentType = result.contentType; var responseURL = result.responseURL; if (contentType && contentType.indexOf('text/html') !== -1 && typeof responseURL !== 'undefined') { window.location = responseURL; } var ev = new CustomEvent('V:eventsSucceeded', { bubbles: true, cancelable: false, detail: _this2 }); target.dispatchEvent(ev); if (_this2.vComponent) { _this2.vComponent.actionsSucceeded(_this2); } }).catch(function (results) { console.log('If you got here it may not be what you think:', results); var result = results; if (typeof results.pop === 'function') { result = results.pop(); } if (!result.squelch) { new __WEBPACK_IMPORTED_MODULE_4__events_errors__["a" /* VErrors */](_this2.root, target).displayErrors(result); } var ev = new CustomEvent('V:eventsHalted', { bubbles: true, cancelable: false, detail: _this2 }); target.dispatchEvent(ev); if (_this2.vComponent) { _this2.vComponent.actionsHalted(_this2); } }).finally(function () { var ev = new CustomEvent('V:eventsFinished', { bubbles: true, cancelable: false, detail: _this2 }); target.dispatchEvent(ev); if (_this2.vComponent) { _this2.vComponent.actionsFinished(_this2); } }); } }], [{ key: 'action_class', value: function action_class(action, event, root) { var action_type = action[0]; var url = action[1]; var options = action[2]; var params = action[3]; switch (action_type) { case 'loads': return new __WEBPACK_IMPORTED_MODULE_0__events_loads__["a" /* VLoads */](options, url, params, event, root); case 'replaces': return new __WEBPACK_IMPORTED_MODULE_2__events_replaces__["a" /* VReplaces */](options, url, params, event, root); case 'post': return new __WEBPACK_IMPORTED_MODULE_1__events_posts__["a" /* VPosts */](options, url, params, 'POST', event, root); case 'update': return new __WEBPACK_IMPORTED_MODULE_1__events_posts__["a" /* VPosts */](options, url, params, 'PUT', event, root); case 'delete': return new __WEBPACK_IMPORTED_MODULE_1__events_posts__["a" /* VPosts */](options, url, params, 'DELETE', event, root); case 'dialog': return new __WEBPACK_IMPORTED_MODULE_3__events_dialog__["a" /* VDialog */](options, params, event, root); case 'toggle_visibility': return new __WEBPACK_IMPORTED_MODULE_5__events_toggle_visibility__["a" /* VToggleVisibility */](options, params, event, root); case 'toggle_disabled': return new __WEBPACK_IMPORTED_MODULE_6__events_toggle_disabled__["a" /* VToggleDisabled */](options, params, event, root); case 'prompt_if_dirty': return new __WEBPACK_IMPORTED_MODULE_8__events_prompt_if_dirty__["a" /* VPromptIfDirty */](options, params, event, root); case 'remove': return new __WEBPACK_IMPORTED_MODULE_13__events_removes__["a" /* VRemoves */](options, params, event, root); case 'snackbar': return new __WEBPACK_IMPORTED_MODULE_9__events_snackbar__["a" /* VSnackbarEvent */](options, params, event, root); case 'autocomplete': return new __WEBPACK_IMPORTED_MODULE_7__events_autocomplete__["a" /* VAutoComplete */](options, url, params, event, root); case 'clear': return new __WEBPACK_IMPORTED_MODULE_10__events_clears__["a" /* VClears */](options, params, event, root); case 'close_dialog': return new __WEBPACK_IMPORTED_MODULE_11__events_close_dialog__["a" /* VCloseDialog */](options, params, event, root); case 'post_message': return new __WEBPACK_IMPORTED_MODULE_12__events_post_message__["a" /* VPostMessage */](options, params, event, root); case 'stepper': return new __WEBPACK_IMPORTED_MODULE_14__events_stepper__["a" /* VStepperEvent */](options, params, event, root); case 'navigates': return new __WEBPACK_IMPORTED_MODULE_15__events_navigates__["a" /* VNavigates */](options, params, event, root); default: return new __WEBPACK_IMPORTED_MODULE_16__events_plugin__["a" /* VPluginEventAction */](action_type, options, params, event, root); } } }]); return VEvents; }(); // This is used to get a proper binding of the actionData // https://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example function createEventHandler(actionsData, root, vComponent) { return function (event) { event.stopPropagation(); new VEvents(actionsData, event, root, vComponent).call(); }; } function getEventElements(root) { var elements = Array.from(root.querySelectorAll(EVENTS_SELECTOR)); // Include `root` if it has events: if (typeof root.matches === 'function' && root.matches(EVENTS_SELECTOR)) { elements.unshift(root); } return elements; } function initEvents(e) { console.debug('\tEvents'); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = getEventElements(e)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var eventElem = _step.value; var eventsData = JSON.parse(eventElem.dataset.events); for (var j = 0; j < eventsData.length; j++) { var eventData = eventsData[j]; var eventName = eventData[0]; var eventOptions = eventData[2]; eventOptions.passive = true; var actionsData = eventData[1]; var vComponent = eventElem.vComponent; var eventHandler = createEventHandler(actionsData, Object(__WEBPACK_IMPORTED_MODULE_17__root_document__["a" /* default */])(e), vComponent); // allow override of event handler by component if (vComponent && vComponent.createEventHandler) { eventHandler = vComponent.createEventHandler(actionsData, Object(__WEBPACK_IMPORTED_MODULE_17__root_document__["a" /* default */])(e), vComponent); } // Delegate to the component if possible if (vComponent && vComponent.initEventListener) { vComponent.initEventListener(eventName, eventHandler, eventOptions); } else { if (typeof eventElem.eventsHandler === 'undefined') { eventElem.eventsHandler = {}; } if (typeof eventElem.eventsHandler[eventName] === 'undefined') { eventElem.eventsHandler[eventName] = []; } eventElem.eventsHandler[eventName].push(eventHandler); eventElem.addEventListener(eventName, eventHandler, eventOptions); } if (vComponent) { vComponent.afterInit(); } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } fireAfterLoad(e); } function removeEvents(elem) { console.debug('\tuninitEvents'); var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = getEventElements(elem)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var eventElem = _step2.value; var eventsData = JSON.parse(eventElem.dataset.events); for (var j = 0; j < eventsData.length; j++) { var eventData = eventsData[j]; var eventName = eventData[0]; var eventOptions = eventData[2]; eventOptions.passive = true; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = eventElem.eventsHandler[eventName][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var handler = _step3.value; eventElem.removeEventListener(eventName, handler, eventOptions); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } function fireAfterLoad(e) { var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = getEventElements(e)[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var eventElem = _step4.value; var eventsData = JSON.parse(eventElem.dataset.events); for (var j = 0; j < eventsData.length; j++) { var eventData = eventsData[j]; var eventName = eventData[0]; if (eventName === 'after_init') { var event = new Event('after_init', { composed: true }); // Dispatch the event. eventElem.dispatchEvent(event); } } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } } /***/ }), /* 46 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { LIST_ITEM_ACTIVATED_CLASS: 'mdc-list-item--activated', LIST_ITEM_CLASS: 'mdc-list-item', LIST_ITEM_DISABLED_CLASS: 'mdc-list-item--disabled', LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected', ROOT: 'mdc-list' }; var strings = { ACTION_EVENT: 'MDCList:action', ARIA_CHECKED: 'aria-checked', ARIA_CHECKED_CHECKBOX_SELECTOR: '[role="checkbox"][aria-checked="true"]', ARIA_CHECKED_RADIO_SELECTOR: '[role="radio"][aria-checked="true"]', ARIA_CURRENT: 'aria-current', ARIA_DISABLED: 'aria-disabled', ARIA_ORIENTATION: 'aria-orientation', ARIA_ORIENTATION_HORIZONTAL: 'horizontal', ARIA_ROLE_CHECKBOX_SELECTOR: '[role="checkbox"]', ARIA_SELECTED: 'aria-selected', CHECKBOX_RADIO_SELECTOR: 'input[type="checkbox"]:not(:disabled), input[type="radio"]:not(:disabled)', CHECKBOX_SELECTOR: 'input[type="checkbox"]:not(:disabled)', CHILD_ELEMENTS_TO_TOGGLE_TABINDEX: "\n ." + cssClasses.LIST_ITEM_CLASS + " button:not(:disabled),\n ." + cssClasses.LIST_ITEM_CLASS + " a\n ", FOCUSABLE_CHILD_ELEMENTS: "\n ." + cssClasses.LIST_ITEM_CLASS + " button:not(:disabled),\n ." + cssClasses.LIST_ITEM_CLASS + " a,\n ." + cssClasses.LIST_ITEM_CLASS + " input[type=\"radio\"]:not(:disabled),\n ." + cssClasses.LIST_ITEM_CLASS + " input[type=\"checkbox\"]:not(:disabled)\n ", RADIO_SELECTOR: 'input[type="radio"]:not(:disabled)' }; var numbers = { UNSET_INDEX: -1 }; //# sourceMappingURL=constants.js.map /***/ }), /* 47 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCListFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(46); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select']; function isNumberArray(selectedIndex) { return selectedIndex instanceof Array; } var MDCListFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCListFoundation, _super); function MDCListFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCListFoundation.defaultAdapter, adapter)) || this; _this.wrapFocus_ = false; _this.isVertical_ = true; _this.isSingleSelectionList_ = false; _this.selectedIndex_ = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX; _this.focusedItemIndex_ = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX; _this.useActivatedClass_ = false; _this.ariaCurrentAttrValue_ = null; _this.isCheckboxList_ = false; _this.isRadioList_ = false; return _this; } Object.defineProperty(MDCListFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCListFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCListFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCListFoundation, "defaultAdapter", { get: function get() { return { addClassForElementIndex: function addClassForElementIndex() { return undefined; }, focusItemAtIndex: function focusItemAtIndex() { return undefined; }, getAttributeForElementIndex: function getAttributeForElementIndex() { return null; }, getFocusedElementIndex: function getFocusedElementIndex() { return 0; }, getListItemCount: function getListItemCount() { return 0; }, hasCheckboxAtIndex: function hasCheckboxAtIndex() { return false; }, hasRadioAtIndex: function hasRadioAtIndex() { return false; }, isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex() { return false; }, isFocusInsideList: function isFocusInsideList() { return false; }, isRootFocused: function isRootFocused() { return false; }, notifyAction: function notifyAction() { return undefined; }, removeClassForElementIndex: function removeClassForElementIndex() { return undefined; }, setAttributeForElementIndex: function setAttributeForElementIndex() { return undefined; }, setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex() { return undefined; }, setTabIndexForListItemChildren: function setTabIndexForListItemChildren() { return undefined; } }; }, enumerable: true, configurable: true }); MDCListFoundation.prototype.layout = function () { if (this.adapter_.getListItemCount() === 0) { return; } if (this.adapter_.hasCheckboxAtIndex(0)) { this.isCheckboxList_ = true; } else if (this.adapter_.hasRadioAtIndex(0)) { this.isRadioList_ = true; } }; /** * Sets the private wrapFocus_ variable. */ MDCListFoundation.prototype.setWrapFocus = function (value) { this.wrapFocus_ = value; }; /** * Sets the isVertical_ private variable. */ MDCListFoundation.prototype.setVerticalOrientation = function (value) { this.isVertical_ = value; }; /** * Sets the isSingleSelectionList_ private variable. */ MDCListFoundation.prototype.setSingleSelection = function (value) { this.isSingleSelectionList_ = value; }; /** * Sets the useActivatedClass_ private variable. */ MDCListFoundation.prototype.setUseActivatedClass = function (useActivated) { this.useActivatedClass_ = useActivated; }; MDCListFoundation.prototype.getSelectedIndex = function () { return this.selectedIndex_; }; MDCListFoundation.prototype.setSelectedIndex = function (index) { if (!this.isIndexValid_(index)) { return; } if (this.isCheckboxList_) { this.setCheckboxAtIndex_(index); } else if (this.isRadioList_) { this.setRadioAtIndex_(index); } else { this.setSingleSelectionAtIndex_(index); } }; /** * Focus in handler for the list items. */ MDCListFoundation.prototype.handleFocusIn = function (_, listItemIndex) { if (listItemIndex >= 0) { this.adapter_.setTabIndexForListItemChildren(listItemIndex, '0'); } }; /** * Focus out handler for the list items. */ MDCListFoundation.prototype.handleFocusOut = function (_, listItemIndex) { var _this = this; if (listItemIndex >= 0) { this.adapter_.setTabIndexForListItemChildren(listItemIndex, '-1'); } /** * Between Focusout & Focusin some browsers do not have focus on any element. Setting a delay to wait till the focus * is moved to next element. */ setTimeout(function () { if (!_this.adapter_.isFocusInsideList()) { _this.setTabindexToFirstSelectedItem_(); } }, 0); }; /** * Key handler for the list. */ MDCListFoundation.prototype.handleKeydown = function (evt, isRootListItem, listItemIndex) { var isArrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37; var isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38; var isArrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39; var isArrowDown = 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; if (this.adapter_.isRootFocused()) { if (isArrowUp || isEnd) { evt.preventDefault(); this.focusLastElement(); } else if (isArrowDown || isHome) { evt.preventDefault(); this.focusFirstElement(); } return; } var currentIndex = this.adapter_.getFocusedElementIndex(); if (currentIndex === -1) { currentIndex = listItemIndex; 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; } } var nextIndex; if (this.isVertical_ && isArrowDown || !this.isVertical_ && isArrowRight) { this.preventDefaultEvent_(evt); nextIndex = this.focusNextElement(currentIndex); } else if (this.isVertical_ && isArrowUp || !this.isVertical_ && isArrowLeft) { this.preventDefaultEvent_(evt); nextIndex = this.focusPrevElement(currentIndex); } else if (isHome) { this.preventDefaultEvent_(evt); nextIndex = this.focusFirstElement(); } else if (isEnd) { this.preventDefaultEvent_(evt); nextIndex = this.focusLastElement(); } else if (isEnter || isSpace) { if (isRootListItem) { // Return early if enter key is pressed on anchor element which triggers synthetic MouseEvent event. var target = evt.target; if (target && target.tagName === 'A' && isEnter) { return; } this.preventDefaultEvent_(evt); if (this.isSelectableList_()) { this.setSelectedIndexOnAction_(currentIndex); } this.adapter_.notifyAction(currentIndex); } } this.focusedItemIndex_ = currentIndex; if (nextIndex !== undefined) { this.setTabindexAtIndex_(nextIndex); this.focusedItemIndex_ = nextIndex; } }; /** * Click handler for the list. */ MDCListFoundation.prototype.handleClick = function (index, toggleCheckbox) { if (index === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { return; } if (this.isSelectableList_()) { this.setSelectedIndexOnAction_(index, toggleCheckbox); } this.adapter_.notifyAction(index); this.setTabindexAtIndex_(index); this.focusedItemIndex_ = index; }; /** * Focuses the next element on the list. */ MDCListFoundation.prototype.focusNextElement = function (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 index; } } this.adapter_.focusItemAtIndex(nextIndex); return nextIndex; }; /** * Focuses the previous element on the list. */ MDCListFoundation.prototype.focusPrevElement = function (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 index; } } this.adapter_.focusItemAtIndex(prevIndex); return prevIndex; }; MDCListFoundation.prototype.focusFirstElement = function () { this.adapter_.focusItemAtIndex(0); return 0; }; MDCListFoundation.prototype.focusLastElement = function () { var lastIndex = this.adapter_.getListItemCount() - 1; this.adapter_.focusItemAtIndex(lastIndex); return lastIndex; }; /** * @param itemIndex Index of the list item * @param isEnabled Sets the list item to enabled or disabled. */ MDCListFoundation.prototype.setEnabled = function (itemIndex, isEnabled) { if (!this.isIndexValid_(itemIndex)) { return; } if (isEnabled) { this.adapter_.removeClassForElementIndex(itemIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_DISABLED_CLASS); this.adapter_.setAttributeForElementIndex(itemIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_DISABLED, 'false'); } else { this.adapter_.addClassForElementIndex(itemIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_DISABLED_CLASS); this.adapter_.setAttributeForElementIndex(itemIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_DISABLED, 'true'); } }; /** * Ensures that preventDefault is only called if the containing element doesn't * consume the event, and it will cause an unintended scroll. */ MDCListFoundation.prototype.preventDefaultEvent_ = function (evt) { var target = evt.target; var tagName = ("" + target.tagName).toLowerCase(); if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) { evt.preventDefault(); } }; MDCListFoundation.prototype.setSingleSelectionAtIndex_ = function (index) { if (this.selectedIndex_ === index) { return; } var selectedClassName = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS; if (this.useActivatedClass_) { selectedClassName = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS; } if (this.selectedIndex_ !== __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { this.adapter_.removeClassForElementIndex(this.selectedIndex_, selectedClassName); } this.adapter_.addClassForElementIndex(index, selectedClassName); this.setAriaForSingleSelectionAtIndex_(index); this.selectedIndex_ = index; }; /** * Sets aria attribute for single selection at given index. */ MDCListFoundation.prototype.setAriaForSingleSelectionAtIndex_ = function (index) { // Detect the presence of aria-current and get the value only during list initialization when it is in unset state. if (this.selectedIndex_ === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { this.ariaCurrentAttrValue_ = this.adapter_.getAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CURRENT); } var isAriaCurrent = this.ariaCurrentAttrValue_ !== null; var ariaAttribute = isAriaCurrent ? __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CURRENT : __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_SELECTED; if (this.selectedIndex_ !== __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { this.adapter_.setAttributeForElementIndex(this.selectedIndex_, ariaAttribute, 'false'); } var ariaAttributeValue = isAriaCurrent ? this.ariaCurrentAttrValue_ : 'true'; this.adapter_.setAttributeForElementIndex(index, ariaAttribute, ariaAttributeValue); }; /** * Toggles radio at give index. Radio doesn't change the checked state if it is already checked. */ MDCListFoundation.prototype.setRadioAtIndex_ = function (index) { this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, true); if (this.selectedIndex_ !== __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { this.adapter_.setAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED, 'false'); } this.adapter_.setAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED, 'true'); this.selectedIndex_ = index; }; MDCListFoundation.prototype.setCheckboxAtIndex_ = function (index) { for (var i = 0; i < this.adapter_.getListItemCount(); i++) { var isChecked = false; if (index.indexOf(i) >= 0) { isChecked = true; } this.adapter_.setCheckedCheckboxOrRadioAtIndex(i, isChecked); this.adapter_.setAttributeForElementIndex(i, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED, isChecked ? 'true' : 'false'); } this.selectedIndex_ = index; }; MDCListFoundation.prototype.setTabindexAtIndex_ = function (index) { if (this.focusedItemIndex_ === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX && index !== 0) { // If no list item was selected set first list item's tabindex to -1. // Generally, tabindex is set to 0 on first list item of list that has no preselected items. this.adapter_.setAttributeForElementIndex(0, 'tabindex', '-1'); } else if (this.focusedItemIndex_ >= 0 && this.focusedItemIndex_ !== index) { this.adapter_.setAttributeForElementIndex(this.focusedItemIndex_, 'tabindex', '-1'); } this.adapter_.setAttributeForElementIndex(index, 'tabindex', '0'); }; /** * @return Return true if it is single selectin list, checkbox list or radio list. */ MDCListFoundation.prototype.isSelectableList_ = function () { return this.isSingleSelectionList_ || this.isCheckboxList_ || this.isRadioList_; }; MDCListFoundation.prototype.setTabindexToFirstSelectedItem_ = function () { var targetIndex = 0; if (this.isSelectableList_()) { if (typeof this.selectedIndex_ === 'number' && this.selectedIndex_ !== __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX) { targetIndex = this.selectedIndex_; } else if (isNumberArray(this.selectedIndex_) && this.selectedIndex_.length > 0) { targetIndex = this.selectedIndex_.reduce(function (currentIndex, minIndex) { return Math.min(currentIndex, minIndex); }); } } this.setTabindexAtIndex_(targetIndex); }; MDCListFoundation.prototype.isIndexValid_ = function (index) { var _this = this; if (index instanceof Array) { if (!this.isCheckboxList_) { throw new Error('MDCListFoundation: Array of index is only supported for checkbox based list'); } if (index.length === 0) { return true; } else { return index.some(function (i) { return _this.isIndexInRange_(i); }); } } else if (typeof index === 'number') { if (this.isCheckboxList_) { throw new Error('MDCListFoundation: Expected array of index for checkbox based list but got number: ' + index); } return this.isIndexInRange_(index); } else { return false; } }; MDCListFoundation.prototype.isIndexInRange_ = function (index) { var listSize = this.adapter_.getListItemCount(); return index >= 0 && index < listSize; }; MDCListFoundation.prototype.setSelectedIndexOnAction_ = function (index, toggleCheckbox) { if (toggleCheckbox === void 0) { toggleCheckbox = true; } if (this.isCheckboxList_) { this.toggleCheckboxAtIndex_(index, toggleCheckbox); } else { this.setSelectedIndex(index); } }; MDCListFoundation.prototype.toggleCheckboxAtIndex_ = function (index, toggleCheckbox) { var isChecked = this.adapter_.isCheckboxCheckedAtIndex(index); if (toggleCheckbox) { isChecked = !isChecked; this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, isChecked); } this.adapter_.setAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED, isChecked ? 'true' : 'false'); // If none of the checkbox items are selected and selectedIndex is not initialized then provide a default value. var selectedIndexes = this.selectedIndex_ === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].UNSET_INDEX ? [] : this.selectedIndex_.slice(); if (isChecked) { selectedIndexes.push(index); } else { selectedIndexes = selectedIndexes.filter(function (i) { return i !== index; }); } this.selectedIndex_ = selectedIndexes; }; return MDCListFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCListFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCMenuSurfaceFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(25); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCMenuSurfaceFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCMenuSurfaceFoundation, _super); function MDCMenuSurfaceFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCMenuSurfaceFoundation.defaultAdapter, adapter)) || this; _this.isOpen_ = false; _this.isQuickOpen_ = false; _this.isHoistedElement_ = false; _this.isFixedPosition_ = false; _this.openAnimationEndTimerId_ = 0; _this.closeAnimationEndTimerId_ = 0; _this.animationRequestId_ = 0; _this.anchorCorner_ = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_START; _this.anchorMargin_ = { top: 0, right: 0, bottom: 0, left: 0 }; _this.position_ = { x: 0, y: 0 }; return _this; } Object.defineProperty(MDCMenuSurfaceFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuSurfaceFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuSurfaceFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuSurfaceFoundation, "Corner", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuSurfaceFoundation, "defaultAdapter", { /** * @see {@link MDCMenuSurfaceAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, hasAnchor: function hasAnchor() { return false; }, isElementInContainer: function isElementInContainer() { return false; }, isFocused: function isFocused() { return false; }, isRtl: function isRtl() { return false; }, getInnerDimensions: function getInnerDimensions() { return { height: 0, width: 0 }; }, getAnchorDimensions: function getAnchorDimensions() { return null; }, getWindowDimensions: function getWindowDimensions() { return { height: 0, width: 0 }; }, getBodyDimensions: function getBodyDimensions() { return { height: 0, width: 0 }; }, getWindowScroll: function getWindowScroll() { return { x: 0, y: 0 }; }, setPosition: function setPosition() { return undefined; }, setMaxHeight: function setMaxHeight() { return undefined; }, setTransformOrigin: function setTransformOrigin() { return undefined; }, saveFocus: function saveFocus() { return undefined; }, restoreFocus: function restoreFocus() { return undefined; }, notifyClose: function notifyClose() { return undefined; }, notifyOpen: function notifyOpen() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCMenuSurfaceFoundation.prototype.init = function () { var _a = MDCMenuSurfaceFoundation.cssClasses, ROOT = _a.ROOT, OPEN = _a.OPEN; if (!this.adapter_.hasClass(ROOT)) { throw new Error(ROOT + " class required in root element."); } if (this.adapter_.hasClass(OPEN)) { this.isOpen_ = true; } }; MDCMenuSurfaceFoundation.prototype.destroy = function () { clearTimeout(this.openAnimationEndTimerId_); clearTimeout(this.closeAnimationEndTimerId_); // Cancel any currently running animations. cancelAnimationFrame(this.animationRequestId_); }; /** * @param corner Default anchor corner alignment of top-left menu surface corner. */ MDCMenuSurfaceFoundation.prototype.setAnchorCorner = function (corner) { this.anchorCorner_ = corner; }; /** * @param margin Set of margin values from anchor. */ MDCMenuSurfaceFoundation.prototype.setAnchorMargin = function (margin) { this.anchorMargin_.top = margin.top || 0; this.anchorMargin_.right = margin.right || 0; this.anchorMargin_.bottom = margin.bottom || 0; this.anchorMargin_.left = margin.left || 0; }; /** Used to indicate if the menu-surface is hoisted to the body. */ MDCMenuSurfaceFoundation.prototype.setIsHoisted = function (isHoisted) { this.isHoistedElement_ = isHoisted; }; /** Used to set the menu-surface calculations based on a fixed position menu. */ MDCMenuSurfaceFoundation.prototype.setFixedPosition = function (isFixedPosition) { this.isFixedPosition_ = isFixedPosition; }; /** Sets the menu-surface position on the page. */ MDCMenuSurfaceFoundation.prototype.setAbsolutePosition = function (x, y) { this.position_.x = this.isFinite_(x) ? x : 0; this.position_.y = this.isFinite_(y) ? y : 0; }; MDCMenuSurfaceFoundation.prototype.setQuickOpen = function (quickOpen) { this.isQuickOpen_ = quickOpen; }; MDCMenuSurfaceFoundation.prototype.isOpen = function () { return this.isOpen_; }; /** * Open the menu surface. */ MDCMenuSurfaceFoundation.prototype.open = function () { var _this = this; this.adapter_.saveFocus(); if (!this.isQuickOpen_) { this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN); } this.animationRequestId_ = requestAnimationFrame(function () { _this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN); _this.dimensions_ = _this.adapter_.getInnerDimensions(); _this.autoPosition_(); if (_this.isQuickOpen_) { _this.adapter_.notifyOpen(); } else { _this.openAnimationEndTimerId_ = setTimeout(function () { _this.openAnimationEndTimerId_ = 0; _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN); _this.adapter_.notifyOpen(); }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_OPEN_DURATION); } }); this.isOpen_ = true; }; /** * Closes the menu surface. */ MDCMenuSurfaceFoundation.prototype.close = function (skipRestoreFocus) { var _this = this; if (skipRestoreFocus === void 0) { skipRestoreFocus = false; } if (!this.isQuickOpen_) { this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED); } requestAnimationFrame(function () { _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN); if (_this.isQuickOpen_) { _this.adapter_.notifyClose(); } else { _this.closeAnimationEndTimerId_ = setTimeout(function () { _this.closeAnimationEndTimerId_ = 0; _this.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED); _this.adapter_.notifyClose(); }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_CLOSE_DURATION); } }); this.isOpen_ = false; if (!skipRestoreFocus) { this.maybeRestoreFocus_(); } }; /** Handle clicks and close if not within menu-surface element. */ MDCMenuSurfaceFoundation.prototype.handleBodyClick = function (evt) { var el = evt.target; if (this.adapter_.isElementInContainer(el)) { return; } this.close(); }; /** Handle keys that close the surface. */ MDCMenuSurfaceFoundation.prototype.handleKeydown = function (evt) { var keyCode = evt.keyCode, key = evt.key; var isEscape = key === 'Escape' || keyCode === 27; if (isEscape) { this.close(); } }; MDCMenuSurfaceFoundation.prototype.autoPosition_ = function () { var _a; // Compute measurements for autoposition methods reuse. this.measurements_ = this.getAutoLayoutMeasurements_(); var corner = this.getOriginCorner_(); var maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight_(corner); var verticalAlignment = this.hasBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM) ? 'bottom' : 'top'; var horizontalAlignment = this.hasBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT) ? 'right' : 'left'; var horizontalOffset = this.getHorizontalOriginOffset_(corner); var verticalOffset = this.getVerticalOriginOffset_(corner); var _b = this.measurements_, anchorSize = _b.anchorSize, surfaceSize = _b.surfaceSize; var position = (_a = {}, _a[horizontalAlignment] = horizontalOffset, _a[verticalAlignment] = verticalOffset, _a); // Center align when anchor width is comparable or greater than menu surface, otherwise keep corner. if (anchorSize.width / surfaceSize.width > __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) { horizontalAlignment = 'center'; } // If the menu-surface has been hoisted to the body, it's no longer relative to the anchor element if (this.isHoistedElement_ || this.isFixedPosition_) { this.adjustPositionForHoistedElement_(position); } this.adapter_.setTransformOrigin(horizontalAlignment + " " + verticalAlignment); this.adapter_.setPosition(position); this.adapter_.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : ''); }; /** * @return Measurements used to position menu surface popup. */ MDCMenuSurfaceFoundation.prototype.getAutoLayoutMeasurements_ = function () { var anchorRect = this.adapter_.getAnchorDimensions(); var bodySize = this.adapter_.getBodyDimensions(); var viewportSize = this.adapter_.getWindowDimensions(); var windowScroll = this.adapter_.getWindowScroll(); if (!anchorRect) { // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together anchorRect = { top: this.position_.y, right: this.position_.x, bottom: this.position_.y, left: this.position_.x, width: 0, height: 0 }; // tslint:enable:object-literal-sort-keys } return { anchorSize: anchorRect, bodySize: bodySize, surfaceSize: this.dimensions_, viewportDistance: { // tslint:disable:object-literal-sort-keys Positional properties are more readable when they're grouped together top: anchorRect.top, right: viewportSize.width - anchorRect.right, bottom: viewportSize.height - anchorRect.bottom, left: anchorRect.left }, viewportSize: viewportSize, windowScroll: windowScroll }; }; /** * Computes the corner of the anchor from which to animate and position the menu surface. */ MDCMenuSurfaceFoundation.prototype.getOriginCorner_ = function () { // Defaults: open from the top left. var corner = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_LEFT; var _a = this.measurements_, viewportDistance = _a.viewportDistance, anchorSize = _a.anchorSize, surfaceSize = _a.surfaceSize; var isBottomAligned = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var availableTop = isBottomAligned ? viewportDistance.top + anchorSize.height + this.anchorMargin_.bottom : viewportDistance.top + this.anchorMargin_.top; var availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom : viewportDistance.bottom + anchorSize.height - this.anchorMargin_.top; var topOverflow = surfaceSize.height - availableTop; var bottomOverflow = surfaceSize.height - availableBottom; if (bottomOverflow > 0 && topOverflow < bottomOverflow) { corner = this.setBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); } var isRtl = this.adapter_.isRtl(); var isFlipRtl = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].FLIP_RTL); var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); var isAlignedRight = avoidHorizontalOverlap && !isRtl || !avoidHorizontalOverlap && isFlipRtl && isRtl; var availableLeft = isAlignedRight ? viewportDistance.left + anchorSize.width + this.anchorMargin_.right : viewportDistance.left + this.anchorMargin_.left; var availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right : viewportDistance.right + anchorSize.width - this.anchorMargin_.left; var leftOverflow = surfaceSize.width - availableLeft; var rightOverflow = surfaceSize.width - availableRight; if (leftOverflow < 0 && isAlignedRight && isRtl || avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0 || rightOverflow > 0 && leftOverflow < rightOverflow) { corner = this.setBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); } return corner; }; /** * @param corner Origin corner of the menu surface. * @return Maximum height of the menu surface, based on available space. 0 indicates should not be set. */ MDCMenuSurfaceFoundation.prototype.getMenuSurfaceMaxHeight_ = function (corner) { var viewportDistance = this.measurements_.viewportDistance; var maxHeight = 0; var isBottomAligned = this.hasBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var isBottomAnchored = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var MARGIN_TO_EDGE = MDCMenuSurfaceFoundation.numbers.MARGIN_TO_EDGE; // When maximum height is not specified, it is handled from CSS. if (isBottomAligned) { maxHeight = viewportDistance.top + this.anchorMargin_.top - MARGIN_TO_EDGE; if (!isBottomAnchored) { maxHeight += this.measurements_.anchorSize.height; } } else { maxHeight = viewportDistance.bottom - this.anchorMargin_.bottom + this.measurements_.anchorSize.height - MARGIN_TO_EDGE; if (isBottomAnchored) { maxHeight -= this.measurements_.anchorSize.height; } } return maxHeight; }; /** * @param corner Origin corner of the menu surface. * @return Horizontal offset of menu surface origin corner from corresponding anchor corner. */ MDCMenuSurfaceFoundation.prototype.getHorizontalOriginOffset_ = function (corner) { var anchorSize = this.measurements_.anchorSize; // isRightAligned corresponds to using the 'right' property on the surface. var isRightAligned = this.hasBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); var avoidHorizontalOverlap = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT); if (isRightAligned) { var rightOffset = avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.left : this.anchorMargin_.right; // For hoisted or fixed elements, adjust the offset by the difference between viewport width and body width so // when we calculate the right value (`adjustPositionForHoistedElement_`) based on the element position, // the right property is correct. if (this.isHoistedElement_ || this.isFixedPosition_) { return rightOffset - (this.measurements_.viewportSize.width - this.measurements_.bodySize.width); } return rightOffset; } return avoidHorizontalOverlap ? anchorSize.width - this.anchorMargin_.right : this.anchorMargin_.left; }; /** * @param corner Origin corner of the menu surface. * @return Vertical offset of menu surface origin corner from corresponding anchor corner. */ MDCMenuSurfaceFoundation.prototype.getVerticalOriginOffset_ = function (corner) { var anchorSize = this.measurements_.anchorSize; var isBottomAligned = this.hasBit_(corner, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var avoidVerticalOverlap = this.hasBit_(this.anchorCorner_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM); var y = 0; if (isBottomAligned) { y = avoidVerticalOverlap ? anchorSize.height - this.anchorMargin_.top : -this.anchorMargin_.bottom; } else { y = avoidVerticalOverlap ? anchorSize.height + this.anchorMargin_.bottom : this.anchorMargin_.top; } return y; }; /** Calculates the offsets for positioning the menu-surface when the menu-surface has been hoisted to the body. */ MDCMenuSurfaceFoundation.prototype.adjustPositionForHoistedElement_ = function (position) { var e_1, _a; var _b = this.measurements_, windowScroll = _b.windowScroll, viewportDistance = _b.viewportDistance; var props = Object.keys(position); try { for (var props_1 = __WEBPACK_IMPORTED_MODULE_0_tslib__["e" /* __values */](props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) { var prop = props_1_1.value; var value = position[prop] || 0; // Hoisted surfaces need to have the anchor elements location on the page added to the // position properties for proper alignment on the body. value += viewportDistance[prop]; // Surfaces that are absolutely positioned need to have additional calculations for scroll // and bottom positioning. if (!this.isFixedPosition_) { if (prop === 'top') { value += windowScroll.y; } else if (prop === 'bottom') { value -= windowScroll.y; } else if (prop === 'left') { value += windowScroll.x; } else { // prop === 'right' value -= windowScroll.x; } } position[prop] = value; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1); } finally { if (e_1) throw e_1.error; } } }; /** * The last focused element when the menu surface was opened should regain focus, if the user is * focused on or within the menu surface when it is closed. */ MDCMenuSurfaceFoundation.prototype.maybeRestoreFocus_ = function () { var isRootFocused = this.adapter_.isFocused(); var childHasFocus = document.activeElement && this.adapter_.isElementInContainer(document.activeElement); if (isRootFocused || childHasFocus) { this.adapter_.restoreFocus(); } }; MDCMenuSurfaceFoundation.prototype.hasBit_ = function (corner, bit) { return Boolean(corner & bit); // tslint:disable-line:no-bitwise }; MDCMenuSurfaceFoundation.prototype.setBit_ = function (corner, bit) { return corner | bit; // tslint:disable-line:no-bitwise }; /** * isFinite that doesn't force conversion to number type. * Equivalent to Number.isFinite in ES2015, which is not supported in IE. */ MDCMenuSurfaceFoundation.prototype.isFinite_ = function (num) { return typeof num === 'number' && isFinite(num); }; return MDCMenuSurfaceFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCMenuSurfaceFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCDismissibleDrawerFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(110); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCDismissibleDrawerFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCDismissibleDrawerFoundation, _super); function MDCDismissibleDrawerFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCDismissibleDrawerFoundation.defaultAdapter, adapter)) || this; _this.animationFrame_ = 0; _this.animationTimer_ = 0; return _this; } Object.defineProperty(MDCDismissibleDrawerFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCDismissibleDrawerFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCDismissibleDrawerFoundation, "defaultAdapter", { get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, elementHasClass: function elementHasClass() { return false; }, notifyClose: function notifyClose() { return undefined; }, notifyOpen: function notifyOpen() { return undefined; }, saveFocus: function saveFocus() { return undefined; }, restoreFocus: function restoreFocus() { return undefined; }, focusActiveNavigationItem: function focusActiveNavigationItem() { return undefined; }, trapFocus: function trapFocus() { return undefined; }, releaseFocus: function releaseFocus() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCDismissibleDrawerFoundation.prototype.destroy = function () { if (this.animationFrame_) { cancelAnimationFrame(this.animationFrame_); } if (this.animationTimer_) { clearTimeout(this.animationTimer_); } }; /** * Opens the drawer from the closed state. */ MDCDismissibleDrawerFoundation.prototype.open = function () { var _this = this; if (this.isOpen() || this.isOpening() || this.isClosing()) { return; } this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE); // Wait a frame once display is no longer "none", to establish basis for animation this.runNextAnimationFrame_(function () { _this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING); }); this.adapter_.saveFocus(); }; /** * Closes the drawer from the open state. */ MDCDismissibleDrawerFoundation.prototype.close = function () { if (!this.isOpen() || this.isOpening() || this.isClosing()) { return; } this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); }; /** * Returns true if the drawer is in the open position. * @return true if drawer is in open state. */ MDCDismissibleDrawerFoundation.prototype.isOpen = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN); }; /** * Returns true if the drawer is animating open. * @return true if drawer is animating open. */ MDCDismissibleDrawerFoundation.prototype.isOpening = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING) || this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE); }; /** * Returns true if the drawer is animating closed. * @return true if drawer is animating closed. */ MDCDismissibleDrawerFoundation.prototype.isClosing = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); }; /** * Keydown handler to close drawer when key is escape. */ MDCDismissibleDrawerFoundation.prototype.handleKeydown = function (evt) { var keyCode = evt.keyCode, key = evt.key; var isEscape = key === 'Escape' || keyCode === 27; if (isEscape) { this.close(); } }; /** * Handles the `transitionend` event when the drawer finishes opening/closing. */ MDCDismissibleDrawerFoundation.prototype.handleTransitionEnd = function (evt) { var OPENING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING, CLOSING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING, OPEN = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN, ANIMATE = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE, ROOT = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ROOT; // In Edge, transitionend on ripple pseudo-elements yields a target without classList, so check for Element first. var isRootElement = this.isElement_(evt.target) && this.adapter_.elementHasClass(evt.target, ROOT); if (!isRootElement) { return; } if (this.isClosing()) { this.adapter_.removeClass(OPEN); this.closed_(); this.adapter_.restoreFocus(); this.adapter_.notifyClose(); } else { this.adapter_.focusActiveNavigationItem(); this.opened_(); this.adapter_.notifyOpen(); } this.adapter_.removeClass(ANIMATE); this.adapter_.removeClass(OPENING); this.adapter_.removeClass(CLOSING); }; /** * Extension point for when drawer finishes open animation. */ MDCDismissibleDrawerFoundation.prototype.opened_ = function () {}; // tslint:disable-line:no-empty /** * Extension point for when drawer finishes close animation. */ MDCDismissibleDrawerFoundation.prototype.closed_ = function () {}; // tslint:disable-line:no-empty /** * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior. */ MDCDismissibleDrawerFoundation.prototype.runNextAnimationFrame_ = function (callback) { var _this = this; cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = requestAnimationFrame(function () { _this.animationFrame_ = 0; clearTimeout(_this.animationTimer_); _this.animationTimer_ = setTimeout(callback, 0); }); }; MDCDismissibleDrawerFoundation.prototype.isElement_ = function (element) { // In Edge, transitionend on ripple pseudo-elements yields a target without classList. return Boolean(element.classList); }; return MDCDismissibleDrawerFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCDismissibleDrawerFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTopAppBarFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(51); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var INITIAL_VALUE = 0; var MDCTopAppBarFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTopAppBarFoundation, _super); /* istanbul ignore next: optional argument is not a branch statement */ function MDCTopAppBarFoundation(adapter) { var _this = _super.call(this, adapter) || this; /** * Indicates if the top app bar was docked in the previous scroll handler iteration. */ _this.wasDocked_ = true; /** * Indicates if the top app bar is docked in the fully shown position. */ _this.isDockedShowing_ = true; /** * Variable for current scroll position of the top app bar */ _this.currentAppBarOffsetTop_ = 0; /** * Used to prevent the top app bar from being scrolled out of view during resize events */ _this.isCurrentlyBeingResized_ = false; /** * The timeout that's used to throttle the resize events */ _this.resizeThrottleId_ = INITIAL_VALUE; /** * The timeout that's used to debounce toggling the isCurrentlyBeingResized_ variable after a resize */ _this.resizeDebounceId_ = INITIAL_VALUE; _this.lastScrollPosition_ = _this.adapter_.getViewportScrollY(); _this.topAppBarHeight_ = _this.adapter_.getTopAppBarHeight(); return _this; } MDCTopAppBarFoundation.prototype.destroy = function () { _super.prototype.destroy.call(this); this.adapter_.setStyle('top', ''); }; /** * Scroll handler for the default scroll behavior of the top app bar. * @override */ MDCTopAppBarFoundation.prototype.handleTargetScroll = function () { 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. * @override */ MDCTopAppBarFoundation.prototype.handleWindowResize = function () { var _this = this; // Throttle resize events 10 p/s if (!this.resizeThrottleId_) { this.resizeThrottleId_ = setTimeout(function () { _this.resizeThrottleId_ = INITIAL_VALUE; _this.throttledResizeHandler_(); }, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS); } this.isCurrentlyBeingResized_ = true; if (this.resizeDebounceId_) { clearTimeout(this.resizeDebounceId_); } this.resizeDebounceId_ = setTimeout(function () { _this.handleTargetScroll(); _this.isCurrentlyBeingResized_ = false; _this.resizeDebounceId_ = INITIAL_VALUE; }, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS); }; /** * Function to determine if the DOM needs to update. */ MDCTopAppBarFoundation.prototype.checkForUpdate_ = function () { 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. */ MDCTopAppBarFoundation.prototype.moveTopAppBar_ = function () { 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_1__constants__["b" /* numbers */].MAX_TOP_APP_BAR_HEIGHT; } this.adapter_.setStyle('top', offset + 'px'); } }; /** * Throttled function that updates the top app bar scrolled values if the * top app bar height changes. */ MDCTopAppBarFoundation.prototype.throttledResizeHandler_ = function () { 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.handleTargetScroll(); }; return MDCTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTopAppBarBaseFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTopAppBarFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 51 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTopAppBarBaseFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(13); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTopAppBarBaseFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTopAppBarBaseFoundation, _super); /* istanbul ignore next: optional argument is not a branch statement */ function MDCTopAppBarBaseFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTopAppBarBaseFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCTopAppBarBaseFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTopAppBarBaseFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTopAppBarBaseFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTopAppBarBaseFoundation, "defaultAdapter", { /** * See {@link MDCTopAppBarAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, setStyle: function setStyle() { return undefined; }, getTopAppBarHeight: function getTopAppBarHeight() { return 0; }, notifyNavigationIconClicked: function notifyNavigationIconClicked() { return undefined; }, getViewportScrollY: function getViewportScrollY() { return 0; }, getTotalActionItems: function getTotalActionItems() { return 0; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); /** Other variants of TopAppBar foundation overrides this method */ MDCTopAppBarBaseFoundation.prototype.handleTargetScroll = function () {}; // tslint:disable-line:no-empty /** Other variants of TopAppBar foundation overrides this method */ MDCTopAppBarBaseFoundation.prototype.handleWindowResize = function () {}; // tslint:disable-line:no-empty MDCTopAppBarBaseFoundation.prototype.handleNavigationClick = function () { this.adapter_.notifyNavigationIconClicked(); }; return MDCTopAppBarBaseFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTopAppBarBaseFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ACTIVATED: 'mdc-select--activated', DISABLED: 'mdc-select--disabled', FOCUSED: 'mdc-select--focused', INVALID: 'mdc-select--invalid', OUTLINED: 'mdc-select--outlined', REQUIRED: 'mdc-select--required', ROOT: 'mdc-select', SELECTED_ITEM_CLASS: 'mdc-list-item--selected', WITH_LEADING_ICON: 'mdc-select--with-leading-icon' }; var strings = { ARIA_CONTROLS: 'aria-controls', ARIA_SELECTED_ATTR: 'aria-selected', CHANGE_EVENT: 'MDCSelect:change', ENHANCED_VALUE_ATTR: 'data-value', HIDDEN_INPUT_SELECTOR: 'input[type="hidden"]', LABEL_SELECTOR: '.mdc-floating-label', LEADING_ICON_SELECTOR: '.mdc-select__icon', LINE_RIPPLE_SELECTOR: '.mdc-line-ripple', MENU_SELECTOR: '.mdc-select__menu', NATIVE_CONTROL_SELECTOR: '.mdc-select__native-control', OUTLINE_SELECTOR: '.mdc-notched-outline', SELECTED_ITEM_SELECTOR: "." + cssClasses.SELECTED_ITEM_CLASS, SELECTED_TEXT_SELECTOR: '.mdc-select__selected-text' }; var numbers = { LABEL_SCALE: 0.75 }; //# sourceMappingURL=constants.js.map /***/ }), /* 53 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ARIA_CHECKED: 'aria-checked', CHECKMARK_SELECTOR: '.mdc-chip__checkmark', ENTRY_ANIMATION_NAME: 'mdc-chip-entry', INTERACTION_EVENT: 'MDCChip:interaction', LEADING_ICON_SELECTOR: '.mdc-chip__icon--leading', REMOVAL_EVENT: 'MDCChip:removal', SELECTION_EVENT: 'MDCChip:selection', TRAILING_ICON_INTERACTION_EVENT: 'MDCChip:trailingIconInteraction', TRAILING_ICON_SELECTOR: '.mdc-chip__icon--trailing' }; 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', SELECTED: 'mdc-chip--selected', TRAILING_ICON: 'mdc-chip__icon--trailing' }; //# sourceMappingURL=constants.js.map /***/ }), /* 54 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(53); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var emptyClientRect = { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0 }; var MDCChipFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCChipFoundation, _super); function MDCChipFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCChipFoundation.defaultAdapter, adapter)) || this; /** * Whether a trailing icon click should immediately trigger exit/removal of the chip. */ _this.shouldRemoveOnTrailingIconClick_ = true; return _this; } Object.defineProperty(MDCChipFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCChipFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCChipFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, addClassToLeadingIcon: function addClassToLeadingIcon() { return undefined; }, eventTargetHasClass: function eventTargetHasClass() { return false; }, getCheckmarkBoundingClientRect: function getCheckmarkBoundingClientRect() { return emptyClientRect; }, getComputedStyleValue: function getComputedStyleValue() { return ''; }, getRootBoundingClientRect: function getRootBoundingClientRect() { return emptyClientRect; }, hasClass: function hasClass() { return false; }, hasLeadingIcon: function hasLeadingIcon() { return false; }, notifyInteraction: function notifyInteraction() { return undefined; }, notifyRemoval: function notifyRemoval() { return undefined; }, notifySelection: function notifySelection() { return undefined; }, notifyTrailingIconInteraction: function notifyTrailingIconInteraction() { return undefined; }, removeClass: function removeClass() { return undefined; }, removeClassFromLeadingIcon: function removeClassFromLeadingIcon() { return undefined; }, setAttr: function setAttr() { return undefined; }, setStyleProperty: function setStyleProperty() { return undefined; } }; }, enumerable: true, configurable: true }); MDCChipFoundation.prototype.isSelected = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); }; MDCChipFoundation.prototype.setSelected = function (selected) { if (selected) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_CHECKED, 'true'); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED); this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_CHECKED, 'false'); } this.adapter_.notifySelection(selected); }; MDCChipFoundation.prototype.getShouldRemoveOnTrailingIconClick = function () { return this.shouldRemoveOnTrailingIconClick_; }; MDCChipFoundation.prototype.setShouldRemoveOnTrailingIconClick = function (shouldRemove) { this.shouldRemoveOnTrailingIconClick_ = shouldRemove; }; MDCChipFoundation.prototype.getDimensions = function () { var _this = this; var getRootRect = function getRootRect() { return _this.adapter_.getRootBoundingClientRect(); }; var getCheckmarkRect = function getCheckmarkRect() { return _this.adapter_.getCheckmarkBoundingClientRect(); }; // When a chip has a checkmark and not a leading icon, the bounding rect changes in size depending on the current // size of the checkmark. if (!this.adapter_.hasLeadingIcon()) { var checkmarkRect = getCheckmarkRect(); if (checkmarkRect) { var rootRect = getRootRect(); // Checkmark is a square, meaning the client rect's width and height are identical once the animation completes. // However, the checkbox is initially hidden by setting the width to 0. // To account for an initial width of 0, we use the checkbox's height instead (which equals the end-state width) // when adding it to the root client rect's width. return { bottom: rootRect.bottom, height: rootRect.height, left: rootRect.left, right: rootRect.right, top: rootRect.top, width: rootRect.width + checkmarkRect.height }; } } return getRootRect(); }; /** * Begins the exit animation which leads to removal of the chip. */ MDCChipFoundation.prototype.beginExit = function () { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHIP_EXIT); }; /** * Handles an interaction event on the root element. */ MDCChipFoundation.prototype.handleInteraction = function (evt) { var isEnter = evt.key === 'Enter' || evt.keyCode === 13; if (evt.type === 'click' || isEnter) { this.adapter_.notifyInteraction(); } }; /** * Handles a transition end event on the root element. */ MDCChipFoundation.prototype.handleTransitionEnd = function (evt) { var _this = this; // Handle transition end event on the chip when it is about to be removed. if (this.adapter_.eventTargetHasClass(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_1 = 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 () { _this.adapter_.setStyleProperty('width', chipWidth_1); // To mitigate jitter, start transitioning padding and margin before width. _this.adapter_.setStyleProperty('padding', '0'); _this.adapter_.setStyleProperty('margin', '0'); // On the next frame (once width is explicitly set), transition width to 0. requestAnimationFrame(function () { _this.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(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(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. */ MDCChipFoundation.prototype.handleTrailingIconInteraction = function (evt) { var isEnter = evt.key === 'Enter' || evt.keyCode === 13; evt.stopPropagation(); if (evt.type === 'click' || isEnter) { this.adapter_.notifyTrailingIconInteraction(); if (this.shouldRemoveOnTrailingIconClick_) { this.beginExit(); } } }; return MDCChipFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 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 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ACTIVE: 'mdc-slider--active', DISABLED: 'mdc-slider--disabled', DISCRETE: 'mdc-slider--discrete', FOCUS: 'mdc-slider--focus', HAS_TRACK_MARKER: 'mdc-slider--display-markers', IN_TRANSIT: 'mdc-slider--in-transit', IS_DISCRETE: 'mdc-slider--discrete' }; var strings = { ARIA_DISABLED: 'aria-disabled', ARIA_VALUEMAX: 'aria-valuemax', ARIA_VALUEMIN: 'aria-valuemin', ARIA_VALUENOW: 'aria-valuenow', CHANGE_EVENT: 'MDCSlider:change', INPUT_EVENT: 'MDCSlider:input', LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child', PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker', STEP_DATA_ATTR: 'data-step', THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container', TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container', TRACK_SELECTOR: '.mdc-slider__track' }; var numbers = { PAGE_FACTOR: 4 }; //# sourceMappingURL=constants.js.map /***/ }), /* 56 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabScrollerRTL; }); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTabScrollerRTL = /** @class */function () { function MDCTabScrollerRTL(adapter) { this.adapter_ = adapter; } return MDCTabScrollerRTL; }(); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabScrollerRTL); //# sourceMappingURL=rtl-scroller.js.map /***/ }), /* 57 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabIndicatorFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(276); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTabIndicatorFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTabIndicatorFoundation, _super); function MDCTabIndicatorFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTabIndicatorFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCTabIndicatorFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabIndicatorFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabIndicatorFoundation, "defaultAdapter", { get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, computeContentClientRect: function computeContentClientRect() { return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }; }, setContentStyleProperty: function setContentStyleProperty() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCTabIndicatorFoundation.prototype.computeContentClientRect = function () { return this.adapter_.computeContentClientRect(); }; return MDCTabIndicatorFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabIndicatorFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 58 */ /***/ (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 events; }); /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { CELL: 'mdc-data-table__cell', CELL_NUMERIC: 'mdc-data-table__cell--numeric', CONTENT: 'mdc-data-table__content', HEADER_ROW: 'mdc-data-table__header-row', HEADER_ROW_CHECKBOX: 'mdc-data-table__header-row-checkbox', ROOT: 'mdc-data-table', ROW: 'mdc-data-table__row', ROW_CHECKBOX: 'mdc-data-table__row-checkbox', ROW_SELECTED: 'mdc-data-table__row--selected' }; var strings = { ARIA_SELECTED: 'aria-selected', DATA_ROW_ID_ATTR: 'data-row-id', HEADER_ROW_CHECKBOX_SELECTOR: "." + cssClasses.HEADER_ROW_CHECKBOX, ROW_CHECKBOX_SELECTOR: "." + cssClasses.ROW_CHECKBOX, ROW_SELECTED_SELECTOR: "." + cssClasses.ROW_SELECTED, ROW_SELECTOR: "." + cssClasses.ROW }; var events = { ROW_SELECTION_CHANGED: 'MDCDataTable:rowSelectionChanged', SELECTED_ALL: 'MDCDataTable:selectedAll', UNSELECTED_ALL: 'MDCDataTable:unselectedAll' }; //# sourceMappingURL=constants.js.map /***/ }), /* 59 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = initialize; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__button__ = __webpack_require__(150); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dialogs__ = __webpack_require__(175); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__datetime__ = __webpack_require__(180); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_fields__ = __webpack_require__(100); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__events__ = __webpack_require__(45); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__lists__ = __webpack_require__(217); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__drawer__ = __webpack_require__(218); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__header__ = __webpack_require__(221); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__icon_toggles__ = __webpack_require__(224); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__menus__ = __webpack_require__(103); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__selects__ = __webpack_require__(227); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__chips__ = __webpack_require__(232); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__cards__ = __webpack_require__(236); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__forms__ = __webpack_require__(237); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__snackbar__ = __webpack_require__(238); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__checkboxes__ = __webpack_require__(241); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__switches__ = __webpack_require__(244); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__rich_text_area__ = __webpack_require__(247); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__steppers__ = __webpack_require__(254); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__radios__ = __webpack_require__(255); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__sliders__ = __webpack_require__(258); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__hidden_fields__ = __webpack_require__(261); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__content__ = __webpack_require__(262); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__grid__ = __webpack_require__(263); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__tab_bars__ = __webpack_require__(264); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__data_tables__ = __webpack_require__(279); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__file_inputs__ = __webpack_require__(287); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__form_fields__ = __webpack_require__(288); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__images__ = __webpack_require__(291); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__typography__ = __webpack_require__(292); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__tooltip__ = __webpack_require__(293); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__plugins__ = __webpack_require__(294); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__progress__ = __webpack_require__(295); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__drag_n_drop__ = __webpack_require__(108); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__multi_select__ = __webpack_require__(298); function initialize(root, setRoot) { console.debug('Initializing components'); var start = performance.now(); Object(__WEBPACK_IMPORTED_MODULE_0__button__["a" /* initButtons */])(root); Object(__WEBPACK_IMPORTED_MODULE_1__dialogs__["a" /* initDialogs */])(root); Object(__WEBPACK_IMPORTED_MODULE_2__datetime__["a" /* initDateTime */])(root); // MUST BE BEFORE initTextFields Object(__WEBPACK_IMPORTED_MODULE_3__text_fields__["b" /* initTextFields */])(root); Object(__WEBPACK_IMPORTED_MODULE_5__lists__["a" /* initLists */])(root); Object(__WEBPACK_IMPORTED_MODULE_6__drawer__["a" /* initDrawer */])(root); Object(__WEBPACK_IMPORTED_MODULE_7__header__["a" /* initHeader */])(root); Object(__WEBPACK_IMPORTED_MODULE_8__icon_toggles__["a" /* initIconToggles */])(root); Object(__WEBPACK_IMPORTED_MODULE_9__menus__["a" /* initMenus */])(root); Object(__WEBPACK_IMPORTED_MODULE_10__selects__["a" /* initSelects */])(root); Object(__WEBPACK_IMPORTED_MODULE_11__chips__["a" /* initChips */])(root); Object(__WEBPACK_IMPORTED_MODULE_12__cards__["a" /* initCards */])(root); Object(__WEBPACK_IMPORTED_MODULE_13__forms__["a" /* initForms */])(root); Object(__WEBPACK_IMPORTED_MODULE_14__snackbar__["a" /* initSnackbar */])(root); Object(__WEBPACK_IMPORTED_MODULE_15__checkboxes__["a" /* initCheckboxes */])(root); Object(__WEBPACK_IMPORTED_MODULE_16__switches__["a" /* initSwitches */])(root); Object(__WEBPACK_IMPORTED_MODULE_17__rich_text_area__["a" /* initRichTextArea */])(root); Object(__WEBPACK_IMPORTED_MODULE_18__steppers__["a" /* initSteppers */])(root); Object(__WEBPACK_IMPORTED_MODULE_19__radios__["a" /* initRadios */])(root); Object(__WEBPACK_IMPORTED_MODULE_20__sliders__["a" /* initSliders */])(root); Object(__WEBPACK_IMPORTED_MODULE_21__hidden_fields__["a" /* initHiddenFields */])(root); Object(__WEBPACK_IMPORTED_MODULE_22__content__["a" /* initContent */])(root); Object(__WEBPACK_IMPORTED_MODULE_23__grid__["a" /* initGrid */])(root); Object(__WEBPACK_IMPORTED_MODULE_24__tab_bars__["a" /* initTabBars */])(root); Object(__WEBPACK_IMPORTED_MODULE_25__data_tables__["a" /* initTables */])(root); Object(__WEBPACK_IMPORTED_MODULE_26__file_inputs__["a" /* initFileInputs */])(root); Object(__WEBPACK_IMPORTED_MODULE_27__form_fields__["a" /* initFormFields */])(root); Object(__WEBPACK_IMPORTED_MODULE_28__images__["a" /* initImages */])(root); Object(__WEBPACK_IMPORTED_MODULE_29__typography__["a" /* initTypography */])(root); Object(__WEBPACK_IMPORTED_MODULE_32__progress__["a" /* initProgress */])(root); Object(__WEBPACK_IMPORTED_MODULE_30__tooltip__["a" /* initTooltips */])(root); Object(__WEBPACK_IMPORTED_MODULE_31__plugins__["a" /* initPlugins */])(root); Object(__WEBPACK_IMPORTED_MODULE_33__drag_n_drop__["c" /* initDragAndDrop */])(root); Object(__WEBPACK_IMPORTED_MODULE_34__multi_select__["a" /* initMultiSelects */])(root); // This needs to be last, because it relies on the components installed above. Object(__WEBPACK_IMPORTED_MODULE_4__events__["b" /* initEvents */])(root); var end = performance.now(); console.debug('Done in %s ms', (end - start).toFixed(2)); } /***/ }), /* 60 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { // Ripple is a special case where the "root" component is really a "mixin" of sorts, // given that it's an 'upgrade' to an existing component. That being said it is the root // CSS class that all other CSS classes derive from. BG_FOCUSED: 'mdc-ripple-upgraded--background-focused', FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation', FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation', ROOT: 'mdc-ripple-upgraded', UNBOUNDED: 'mdc-ripple-upgraded--unbounded' }; var strings = { VAR_FG_SCALE: '--mdc-ripple-fg-scale', VAR_FG_SIZE: '--mdc-ripple-fg-size', VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end', VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start', VAR_LEFT: '--mdc-ripple-left', VAR_TOP: '--mdc-ripple-top' }; var numbers = { DEACTIVATION_TIMEOUT_MS: 225, FG_DEACTIVATION_MS: 150, INITIAL_ORIGIN_SCALE: 0.6, PADDING: 10, TAP_DELAY_MS: 300 }; //# sourceMappingURL=constants.js.map /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(152); /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var global = __webpack_require__(7); var getOwnPropertyDescriptor = __webpack_require__(63).f; var createNonEnumerableProperty = __webpack_require__(20); var redefine = __webpack_require__(156); var setGlobal = __webpack_require__(34); var copyConstructorProperties = __webpack_require__(161); var isForced = __webpack_require__(168); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || setGlobal(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if ((typeof sourceProperty === 'undefined' ? 'undefined' : _typeof(sourceProperty)) === (typeof targetProperty === 'undefined' ? 'undefined' : _typeof(targetProperty))) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || targetProperty && targetProperty.sham) { createNonEnumerableProperty(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var propertyIsEnumerableModule = __webpack_require__(154); var createPropertyDescriptor = __webpack_require__(64); var toIndexedObject = __webpack_require__(32); var toPrimitive = __webpack_require__(67); var has = __webpack_require__(19); var IE8_DOM_DEFINE = __webpack_require__(68); var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return nativeGetOwnPropertyDescriptor(O, P); } catch (error) {/* empty */} if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; /***/ }), /* 64 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 65 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 66 */ /***/ (function(module, exports) { // `RequireObjectCoercible` abstract operation // https://tc39.github.io/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18); // `ToPrimitive` abstract operation // https://tc39.github.io/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (input, PREFERRED_STRING) { if (!isObject(input)) return input; var fn, val; if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var fails = __webpack_require__(17); var createElement = __webpack_require__(69); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { return Object.defineProperty(createElement('div'), 'a', { get: function get() { return 7; } }).a != 7; }); /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var isObject = __webpack_require__(18); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(22); module.exports = shared('native-function-to-string', Function.toString); /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(22); var uid = __webpack_require__(72); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), /* 72 */ /***/ (function(module, exports) { var id = 0; var postfix = Math.random(); module.exports = function (key) { return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(163); var global = __webpack_require__(7); var aFunction = function aFunction(variable) { return typeof variable == 'function' ? variable : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; }; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(19); var toIndexedObject = __webpack_require__(32); var indexOf = __webpack_require__(165).indexOf; var hiddenKeys = __webpack_require__(35); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) { !has(hiddenKeys, key) && has(O, key) && result.push(key); } // Don't enum bug & hidden keys while (names.length > i) { if (has(O, key = names[i++])) { ~indexOf(result, key) || result.push(key); } }return result; }; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isArray = __webpack_require__(76); var toLength = __webpack_require__(23); var bind = __webpack_require__(77); // `FlattenIntoArray` abstract operation // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray var flattenIntoArray = function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { var targetIndex = start; var sourceIndex = 0; var mapFn = mapper ? bind(mapper, thisArg, 3) : false; var element; while (sourceIndex < sourceLen) { if (sourceIndex in source) { element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; if (depth > 0 && isArray(element)) { targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; } else { if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); target[targetIndex] = element; } targetIndex++; } sourceIndex++; } return targetIndex; }; module.exports = flattenIntoArray; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(65); // `IsArray` abstract operation // https://tc39.github.io/ecma262/#sec-isarray module.exports = Array.isArray || function isArray(arg) { return classof(arg) == 'Array'; }; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { var aFunction = __webpack_require__(78); // optional / simple context binding module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 0: return function () { return fn.call(that); }; case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function () /* ...args */{ return fn.apply(that, arguments); }; }; /***/ }), /* 78 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') { throw TypeError(String(it) + ' is not a function'); }return it; }; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { var requireObjectCoercible = __webpack_require__(66); // `ToObject` abstract operation // https://tc39.github.io/ecma262/#sec-toobject module.exports = function (argument) { return Object(requireObjectCoercible(argument)); }; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18); var isArray = __webpack_require__(76); var wellKnownSymbol = __webpack_require__(81); var SPECIES = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation // https://tc39.github.io/ecma262/#sec-arrayspeciescreate module.exports = function (originalArray, length) { var C; if (isArray(originalArray)) { C = originalArray.constructor; // cross-realm fallback if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) { C = C[SPECIES]; if (C === null) C = undefined; } }return new (C === undefined ? Array : C)(length === 0 ? 0 : length); }; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var shared = __webpack_require__(22); var uid = __webpack_require__(72); var NATIVE_SYMBOL = __webpack_require__(169); var _Symbol = global.Symbol; var store = shared('wks'); module.exports = function (name) { return store[name] || (store[name] = NATIVE_SYMBOL && _Symbol[name] || (NATIVE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); }; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(81); var create = __webpack_require__(171); var createNonEnumerableProperty = __webpack_require__(20); var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] == undefined) { createNonEnumerableProperty(ArrayPrototype, UNSCOPABLES, create(null)); } // add a key to Array.prototype[@@unscopables] module.exports = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var bind = __webpack_require__(77); var call = Function.call; module.exports = function (CONSTRUCTOR, METHOD, length) { return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); }; /***/ }), /* 84 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = createFocusTrapInstance; /* harmony export (immutable) */ __webpack_exports__["c"] = isScrollable; /* harmony export (immutable) */ __webpack_exports__["a"] = areTopsMisaligned; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(38); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ function createFocusTrapInstance(surfaceEl, focusTrapFactory, initialFocusEl) { if (focusTrapFactory === void 0) { focusTrapFactory = __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a; } return focusTrapFactory(surfaceEl, { clickOutsideDeactivates: true, escapeDeactivates: false, initialFocus: initialFocusEl }); } function isScrollable(el) { return el ? el.scrollHeight > el.offsetHeight : false; } function areTopsMisaligned(els) { var tops = new Set(); [].forEach.call(els, function (el) { return tops.add(el.offsetTop); }); return tops.size > 1; } //# sourceMappingURL=util.js.map /***/ }), /* 85 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCDialogFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(86); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCDialogFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCDialogFoundation, _super); function MDCDialogFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCDialogFoundation.defaultAdapter, adapter)) || this; _this.isOpen_ = false; _this.animationFrame_ = 0; _this.animationTimer_ = 0; _this.layoutFrame_ = 0; _this.escapeKeyAction_ = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].CLOSE_ACTION; _this.scrimClickAction_ = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].CLOSE_ACTION; _this.autoStackButtons_ = true; _this.areButtonsStacked_ = false; return _this; } Object.defineProperty(MDCDialogFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCDialogFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCDialogFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCDialogFoundation, "defaultAdapter", { get: function get() { return { addBodyClass: function addBodyClass() { return undefined; }, addClass: function addClass() { return undefined; }, areButtonsStacked: function areButtonsStacked() { return false; }, clickDefaultButton: function clickDefaultButton() { return undefined; }, eventTargetMatches: function eventTargetMatches() { return false; }, getActionFromEvent: function getActionFromEvent() { return ''; }, getInitialFocusEl: function getInitialFocusEl() { return null; }, hasClass: function hasClass() { return false; }, isContentScrollable: function isContentScrollable() { return false; }, notifyClosed: function notifyClosed() { return undefined; }, notifyClosing: function notifyClosing() { return undefined; }, notifyOpened: function notifyOpened() { return undefined; }, notifyOpening: function notifyOpening() { return undefined; }, releaseFocus: function releaseFocus() { return undefined; }, removeBodyClass: function removeBodyClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, reverseButtons: function reverseButtons() { return undefined; }, trapFocus: function trapFocus() { return undefined; } }; }, enumerable: true, configurable: true }); MDCDialogFoundation.prototype.init = function () { if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED)) { this.setAutoStackButtons(false); } }; MDCDialogFoundation.prototype.destroy = function () { if (this.isOpen_) { this.close(__WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].DESTROY_ACTION); } if (this.animationTimer_) { clearTimeout(this.animationTimer_); this.handleAnimationTimerEnd_(); } if (this.layoutFrame_) { cancelAnimationFrame(this.layoutFrame_); this.layoutFrame_ = 0; } }; MDCDialogFoundation.prototype.open = function () { var _this = this; this.isOpen_ = true; this.adapter_.notifyOpening(); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING); // Wait a frame once display is no longer "none", to establish basis for animation this.runNextAnimationFrame_(function () { _this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN); _this.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLL_LOCK); _this.layout(); _this.animationTimer_ = setTimeout(function () { _this.handleAnimationTimerEnd_(); _this.adapter_.trapFocus(_this.adapter_.getInitialFocusEl()); _this.adapter_.notifyOpened(); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DIALOG_ANIMATION_OPEN_TIME_MS); }); }; MDCDialogFoundation.prototype.close = function (action) { var _this = this; if (action === void 0) { action = ''; } if (!this.isOpen_) { // Avoid redundant close calls (and events), e.g. from keydown on elements that inherently emit click return; } this.isOpen_ = false; this.adapter_.notifyClosing(action); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN); this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLL_LOCK); cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = 0; clearTimeout(this.animationTimer_); this.animationTimer_ = setTimeout(function () { _this.adapter_.releaseFocus(); _this.handleAnimationTimerEnd_(); _this.adapter_.notifyClosed(action); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DIALOG_ANIMATION_CLOSE_TIME_MS); }; MDCDialogFoundation.prototype.isOpen = function () { return this.isOpen_; }; MDCDialogFoundation.prototype.getEscapeKeyAction = function () { return this.escapeKeyAction_; }; MDCDialogFoundation.prototype.setEscapeKeyAction = function (action) { this.escapeKeyAction_ = action; }; MDCDialogFoundation.prototype.getScrimClickAction = function () { return this.scrimClickAction_; }; MDCDialogFoundation.prototype.setScrimClickAction = function (action) { this.scrimClickAction_ = action; }; MDCDialogFoundation.prototype.getAutoStackButtons = function () { return this.autoStackButtons_; }; MDCDialogFoundation.prototype.setAutoStackButtons = function (autoStack) { this.autoStackButtons_ = autoStack; }; MDCDialogFoundation.prototype.layout = function () { var _this = this; if (this.layoutFrame_) { cancelAnimationFrame(this.layoutFrame_); } this.layoutFrame_ = requestAnimationFrame(function () { _this.layoutInternal_(); _this.layoutFrame_ = 0; }); }; /** Handles click on the dialog root element. */ MDCDialogFoundation.prototype.handleClick = function (evt) { var isScrim = this.adapter_.eventTargetMatches(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].SCRIM_SELECTOR); // Check for scrim click first since it doesn't require querying ancestors. if (isScrim && this.scrimClickAction_ !== '') { this.close(this.scrimClickAction_); } else { var action = this.adapter_.getActionFromEvent(evt); if (action) { this.close(action); } } }; /** Handles keydown on the dialog root element. */ MDCDialogFoundation.prototype.handleKeydown = function (evt) { var isEnter = evt.key === 'Enter' || evt.keyCode === 13; if (!isEnter) { return; } var action = this.adapter_.getActionFromEvent(evt); if (action) { // Action button callback is handled in `handleClick`, // since space/enter keydowns on buttons trigger click events. return; } var isDefault = !this.adapter_.eventTargetMatches(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].SUPPRESS_DEFAULT_PRESS_SELECTOR); if (isEnter && isDefault) { this.adapter_.clickDefaultButton(); } }; /** Handles keydown on the document. */ MDCDialogFoundation.prototype.handleDocumentKeydown = function (evt) { var isEscape = evt.key === 'Escape' || evt.keyCode === 27; if (isEscape && this.escapeKeyAction_ !== '') { this.close(this.escapeKeyAction_); } }; MDCDialogFoundation.prototype.layoutInternal_ = function () { if (this.autoStackButtons_) { this.detectStackedButtons_(); } this.detectScrollableContent_(); }; MDCDialogFoundation.prototype.handleAnimationTimerEnd_ = function () { this.animationTimer_ = 0; this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); }; /** * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior. */ MDCDialogFoundation.prototype.runNextAnimationFrame_ = function (callback) { var _this = this; cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = requestAnimationFrame(function () { _this.animationFrame_ = 0; clearTimeout(_this.animationTimer_); _this.animationTimer_ = setTimeout(callback, 0); }); }; MDCDialogFoundation.prototype.detectStackedButtons_ = function () { // Remove the class first to let us measure the buttons' natural positions. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED); var areButtonsStacked = this.adapter_.areButtonsStacked(); if (areButtonsStacked) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED); } if (areButtonsStacked !== this.areButtonsStacked_) { this.adapter_.reverseButtons(); this.areButtonsStacked_ = areButtonsStacked; } }; MDCDialogFoundation.prototype.detectScrollableContent_ = function () { // Remove the class first to let us measure the natural height of the content. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLLABLE); if (this.adapter_.isContentScrollable()) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLLABLE); } }; return MDCDialogFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCDialogFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 86 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { CLOSING: 'mdc-dialog--closing', OPEN: 'mdc-dialog--open', OPENING: 'mdc-dialog--opening', SCROLLABLE: 'mdc-dialog--scrollable', SCROLL_LOCK: 'mdc-dialog-scroll-lock', STACKED: 'mdc-dialog--stacked' }; var strings = { ACTION_ATTRIBUTE: 'data-mdc-dialog-action', BUTTON_DEFAULT_ATTRIBUTE: 'data-mdc-dialog-button-default', BUTTON_SELECTOR: '.mdc-dialog__button', CLOSED_EVENT: 'MDCDialog:closed', CLOSE_ACTION: 'close', CLOSING_EVENT: 'MDCDialog:closing', CONTAINER_SELECTOR: '.mdc-dialog__container', CONTENT_SELECTOR: '.mdc-dialog__content', DESTROY_ACTION: 'destroy', INITIAL_FOCUS_ATTRIBUTE: 'data-mdc-dialog-initial-focus', OPENED_EVENT: 'MDCDialog:opened', OPENING_EVENT: 'MDCDialog:opening', SCRIM_SELECTOR: '.mdc-dialog__scrim', SUPPRESS_DEFAULT_PRESS_SELECTOR: ['textarea', '.mdc-menu .mdc-list-item'].join(', '), SURFACE_SELECTOR: '.mdc-dialog__surface' }; var numbers = { DIALOG_ANIMATION_CLOSE_TIME_MS: 75, DIALOG_ANIMATION_OPEN_TIME_MS: 150 }; //# sourceMappingURL=constants.js.map /***/ }), /* 87 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__component__ = __webpack_require__(182); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__component__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(42); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(94); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__character_counter_index__ = __webpack_require__(186); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__helper_text_index__ = __webpack_require__(187); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__icon_index__ = __webpack_require__(188); /* unused harmony namespace reexport */ /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ //# sourceMappingURL=index.js.map /***/ }), /* 88 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCFloatingLabel; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(89); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCFloatingLabel = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCFloatingLabel, _super); function MDCFloatingLabel() { return _super !== null && _super.apply(this, arguments) || this; } MDCFloatingLabel.attachTo = function (root) { return new MDCFloatingLabel(root); }; /** * Styles the label to produce the label shake for errors. * @param shouldShake If true, shakes the label by adding a CSS class; otherwise, stops shaking by removing the class. */ MDCFloatingLabel.prototype.shake = function (shouldShake) { this.foundation_.shake(shouldShake); }; /** * Styles the label to float/dock. * @param shouldFloat If true, floats the label by adding a CSS class; otherwise, docks it by removing the class. */ MDCFloatingLabel.prototype.float = function (shouldFloat) { this.foundation_.float(shouldFloat); }; MDCFloatingLabel.prototype.getWidth = function () { return this.foundation_.getWidth(); }; MDCFloatingLabel.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, getWidth: function getWidth() { return _this.root_.scrollWidth; }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return _this.listen(evtType, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return _this.unlisten(evtType, handler); } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCFloatingLabelFoundation */](adapter); }; return MDCFloatingLabel; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 89 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCFloatingLabelFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(183); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCFloatingLabelFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCFloatingLabelFoundation, _super); function MDCFloatingLabelFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCFloatingLabelFoundation.defaultAdapter, adapter)) || this; _this.shakeAnimationEndHandler_ = function () { return _this.handleShakeAnimationEnd_(); }; return _this; } Object.defineProperty(MDCFloatingLabelFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFloatingLabelFoundation, "defaultAdapter", { /** * See {@link MDCFloatingLabelAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, getWidth: function getWidth() { return 0; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCFloatingLabelFoundation.prototype.init = function () { this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_); }; MDCFloatingLabelFoundation.prototype.destroy = function () { this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_); }; /** * Returns the width of the label element. */ MDCFloatingLabelFoundation.prototype.getWidth = function () { return this.adapter_.getWidth(); }; /** * Styles the label to produce a shake animation to indicate an error. * @param shouldShake If true, adds the shake CSS class; otherwise, removes shake class. */ MDCFloatingLabelFoundation.prototype.shake = function (shouldShake) { var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; if (shouldShake) { this.adapter_.addClass(LABEL_SHAKE); } else { this.adapter_.removeClass(LABEL_SHAKE); } }; /** * Styles the label to float or dock. * @param shouldFloat If true, adds the float CSS class; otherwise, removes float and shake classes to dock the label. */ MDCFloatingLabelFoundation.prototype.float = function (shouldFloat) { var _a = MDCFloatingLabelFoundation.cssClasses, LABEL_FLOAT_ABOVE = _a.LABEL_FLOAT_ABOVE, LABEL_SHAKE = _a.LABEL_SHAKE; if (shouldFloat) { this.adapter_.addClass(LABEL_FLOAT_ABOVE); } else { this.adapter_.removeClass(LABEL_FLOAT_ABOVE); this.adapter_.removeClass(LABEL_SHAKE); } }; MDCFloatingLabelFoundation.prototype.handleShakeAnimationEnd_ = function () { var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; this.adapter_.removeClass(LABEL_SHAKE); }; return MDCFloatingLabelFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCFloatingLabelFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 90 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCLineRipple; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(184); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCLineRipple = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCLineRipple, _super); function MDCLineRipple() { return _super !== null && _super.apply(this, arguments) || this; } MDCLineRipple.attachTo = function (root) { return new MDCLineRipple(root); }; /** * Activates the line ripple */ MDCLineRipple.prototype.activate = function () { this.foundation_.activate(); }; /** * Deactivates the line ripple */ MDCLineRipple.prototype.deactivate = function () { this.foundation_.deactivate(); }; /** * Sets the transform origin given a user's click location. * The `rippleCenter` is the x-coordinate of the middle of the ripple. */ MDCLineRipple.prototype.setRippleCenter = function (xCoordinate) { this.foundation_.setRippleCenter(xCoordinate); }; MDCLineRipple.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this.root_.classList.contains(className); }, setStyle: function setStyle(propertyName, value) { return _this.root_.style.setProperty(propertyName, value); }, registerEventHandler: function registerEventHandler(evtType, handler) { return _this.listen(evtType, handler); }, deregisterEventHandler: function deregisterEventHandler(evtType, handler) { return _this.unlisten(evtType, handler); } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCLineRippleFoundation */](adapter); }; return MDCLineRipple; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 91 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCNotchedOutlineFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(40); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCNotchedOutlineFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCNotchedOutlineFoundation, _super); function MDCNotchedOutlineFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCNotchedOutlineFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCNotchedOutlineFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCNotchedOutlineFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCNotchedOutlineFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCNotchedOutlineFoundation, "defaultAdapter", { /** * See {@link MDCNotchedOutlineAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, setNotchWidthProperty: function setNotchWidthProperty() { return undefined; }, removeNotchWidthProperty: function removeNotchWidthProperty() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); /** * Adds the outline notched selector and updates the notch width calculated based off of notchWidth. */ MDCNotchedOutlineFoundation.prototype.notch = function (notchWidth) { var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; if (notchWidth > 0) { notchWidth += __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].NOTCH_ELEMENT_PADDING; // Add padding from left/right. } this.adapter_.setNotchWidthProperty(notchWidth); this.adapter_.addClass(OUTLINE_NOTCHED); }; /** * Removes notched outline selector to close the notch in the outline. */ MDCNotchedOutlineFoundation.prototype.closeNotch = function () { var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED; this.adapter_.removeClass(OUTLINE_NOTCHED); this.adapter_.removeNotchWidthProperty(); }; return MDCNotchedOutlineFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCNotchedOutlineFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 92 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldCharacterCounter; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(41); /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTextFieldCharacterCounter = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldCharacterCounter, _super); function MDCTextFieldCharacterCounter() { return _super !== null && _super.apply(this, arguments) || this; } MDCTextFieldCharacterCounter.attachTo = function (root) { return new MDCTextFieldCharacterCounter(root); }; Object.defineProperty(MDCTextFieldCharacterCounter.prototype, "foundation", { get: function get() { return this.foundation_; }, enumerable: true, configurable: true }); MDCTextFieldCharacterCounter.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. var adapter = { setContent: function setContent(content) { _this.root_.textContent = content; } }; return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTextFieldCharacterCounterFoundation */](adapter); }; return MDCTextFieldCharacterCounter; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 93 */ /***/ (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 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ROOT: 'mdc-text-field-character-counter' }; var strings = { ROOT_SELECTOR: "." + cssClasses.ROOT }; //# sourceMappingURL=constants.js.map /***/ }), /* 94 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(42); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var POINTERDOWN_EVENTS = ['mousedown', 'touchstart']; var INTERACTION_EVENTS = ['click', 'keydown']; var MDCTextFieldFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldFoundation, _super); /** * @param adapter * @param foundationMap Map from subcomponent names to their subfoundations. */ function MDCTextFieldFoundation(adapter, foundationMap) { if (foundationMap === void 0) { foundationMap = {}; } var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTextFieldFoundation.defaultAdapter, adapter)) || this; _this.isFocused_ = false; _this.receivedUserInput_ = false; _this.isValid_ = true; _this.useNativeValidation_ = true; _this.helperText_ = foundationMap.helperText; _this.characterCounter_ = foundationMap.characterCounter; _this.leadingIcon_ = foundationMap.leadingIcon; _this.trailingIcon_ = foundationMap.trailingIcon; _this.inputFocusHandler_ = function () { return _this.activateFocus(); }; _this.inputBlurHandler_ = function () { return _this.deactivateFocus(); }; _this.inputInputHandler_ = function () { return _this.handleInput(); }; _this.setPointerXOffset_ = function (evt) { return _this.setTransformOrigin(evt); }; _this.textFieldInteractionHandler_ = function () { return _this.handleTextFieldInteraction(); }; _this.validationAttributeChangeHandler_ = function (attributesList) { return _this.handleValidationAttributeChange(attributesList); }; return _this; } Object.defineProperty(MDCTextFieldFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldAlwaysFloat_", { get: function get() { var type = this.getNativeInput_().type; return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* ALWAYS_FLOAT_TYPES */].indexOf(type) >= 0; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldFloat", { get: function get() { return this.shouldAlwaysFloat_ || this.isFocused_ || Boolean(this.getValue()) || this.isBadInput_(); }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation.prototype, "shouldShake", { get: function get() { return !this.isFocused_ && !this.isValid() && Boolean(this.getValue()); }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldFoundation, "defaultAdapter", { /** * See {@link MDCTextFieldAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return true; }, registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() { return undefined; }, deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() { return undefined; }, registerInputInteractionHandler: function registerInputInteractionHandler() { return undefined; }, deregisterInputInteractionHandler: function deregisterInputInteractionHandler() { return undefined; }, registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() { return new MutationObserver(function () { return undefined; }); }, deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() { return undefined; }, getNativeInput: function getNativeInput() { return null; }, isFocused: function isFocused() { return false; }, activateLineRipple: function activateLineRipple() { return undefined; }, deactivateLineRipple: function deactivateLineRipple() { return undefined; }, setLineRippleTransformOrigin: function setLineRippleTransformOrigin() { return undefined; }, shakeLabel: function shakeLabel() { return undefined; }, floatLabel: function floatLabel() { return undefined; }, hasLabel: function hasLabel() { return false; }, getLabelWidth: function getLabelWidth() { return 0; }, hasOutline: function hasOutline() { return false; }, notchOutline: function notchOutline() { return undefined; }, closeOutline: function closeOutline() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCTextFieldFoundation.prototype.init = function () { var _this = this; if (this.adapter_.isFocused()) { this.inputFocusHandler_(); } else if (this.adapter_.hasLabel() && this.shouldFloat) { this.notchOutline(true); this.adapter_.floatLabel(true); } this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_); this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_); this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_); POINTERDOWN_EVENTS.forEach(function (evtType) { _this.adapter_.registerInputInteractionHandler(evtType, _this.setPointerXOffset_); }); INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.registerTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_); }); this.validationObserver_ = this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_); this.setCharacterCounter_(this.getValue().length); }; MDCTextFieldFoundation.prototype.destroy = function () { var _this = this; this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_); this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_); this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_); POINTERDOWN_EVENTS.forEach(function (evtType) { _this.adapter_.deregisterInputInteractionHandler(evtType, _this.setPointerXOffset_); }); INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.deregisterTextFieldInteractionHandler(evtType, _this.textFieldInteractionHandler_); }); this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_); }; /** * Handles user interactions with the Text Field. */ MDCTextFieldFoundation.prototype.handleTextFieldInteraction = function () { var nativeInput = this.adapter_.getNativeInput(); if (nativeInput && nativeInput.disabled) { return; } this.receivedUserInput_ = true; }; /** * Handles validation attribute changes */ MDCTextFieldFoundation.prototype.handleValidationAttributeChange = function (attributesList) { var _this = this; attributesList.some(function (attributeName) { if (__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* VALIDATION_ATTR_WHITELIST */].indexOf(attributeName) > -1) { _this.styleValidity_(true); return true; } return false; }); if (attributesList.indexOf('maxlength') > -1) { this.setCharacterCounter_(this.getValue().length); } }; /** * Opens/closes the notched outline. */ MDCTextFieldFoundation.prototype.notchOutline = function (openNotch) { if (!this.adapter_.hasOutline()) { return; } if (openNotch) { var isDense = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */].DENSE); var labelScale = isDense ? __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].DENSE_LABEL_SCALE : __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].LABEL_SCALE; var labelWidth = this.adapter_.getLabelWidth() * labelScale; this.adapter_.notchOutline(labelWidth); } else { this.adapter_.closeOutline(); } }; /** * Activates the text field focus state. */ MDCTextFieldFoundation.prototype.activateFocus = function () { this.isFocused_ = true; this.styleFocused_(this.isFocused_); this.adapter_.activateLineRipple(); if (this.adapter_.hasLabel()) { this.notchOutline(this.shouldFloat); this.adapter_.floatLabel(this.shouldFloat); this.adapter_.shakeLabel(this.shouldShake); } if (this.helperText_) { this.helperText_.showToScreenReader(); } }; /** * Sets the line ripple's transform origin, so that the line ripple activate * animation will animate out from the user's click location. */ MDCTextFieldFoundation.prototype.setTransformOrigin = function (evt) { var touches = evt.touches; var targetEvent = touches ? touches[0] : evt; var targetClientRect = targetEvent.target.getBoundingClientRect(); var normalizedX = targetEvent.clientX - targetClientRect.left; this.adapter_.setLineRippleTransformOrigin(normalizedX); }; /** * Handles input change of text input and text area. */ MDCTextFieldFoundation.prototype.handleInput = function () { this.autoCompleteFocus(); this.setCharacterCounter_(this.getValue().length); }; /** * Activates the Text Field's focus state in cases when the input value * changes without user input (e.g. programmatically). */ MDCTextFieldFoundation.prototype.autoCompleteFocus = function () { if (!this.receivedUserInput_) { this.activateFocus(); } }; /** * Deactivates the Text Field's focus state. */ MDCTextFieldFoundation.prototype.deactivateFocus = function () { this.isFocused_ = false; this.adapter_.deactivateLineRipple(); var isValid = this.isValid(); this.styleValidity_(isValid); this.styleFocused_(this.isFocused_); if (this.adapter_.hasLabel()) { this.notchOutline(this.shouldFloat); this.adapter_.floatLabel(this.shouldFloat); this.adapter_.shakeLabel(this.shouldShake); } if (!this.shouldFloat) { this.receivedUserInput_ = false; } }; MDCTextFieldFoundation.prototype.getValue = function () { return this.getNativeInput_().value; }; /** * @param value The value to set on the input Element. */ MDCTextFieldFoundation.prototype.setValue = function (value) { // Prevent Safari from moving the caret to the end of the input when the value has not changed. if (this.getValue() !== value) { this.getNativeInput_().value = value; } this.setCharacterCounter_(value.length); var isValid = this.isValid(); this.styleValidity_(isValid); if (this.adapter_.hasLabel()) { this.notchOutline(this.shouldFloat); this.adapter_.floatLabel(this.shouldFloat); this.adapter_.shakeLabel(this.shouldShake); } }; /** * @return The custom validity state, if set; otherwise, the result of a native validity check. */ MDCTextFieldFoundation.prototype.isValid = function () { return this.useNativeValidation_ ? this.isNativeInputValid_() : this.isValid_; }; /** * @param isValid Sets the custom validity state of the Text Field. */ MDCTextFieldFoundation.prototype.setValid = function (isValid) { this.isValid_ = isValid; this.styleValidity_(isValid); var shouldShake = !isValid && !this.isFocused_; if (this.adapter_.hasLabel()) { this.adapter_.shakeLabel(shouldShake); } }; /** * Enables or disables the use of native validation. Use this for custom validation. * @param useNativeValidation Set this to false to ignore native input validation. */ MDCTextFieldFoundation.prototype.setUseNativeValidation = function (useNativeValidation) { this.useNativeValidation_ = useNativeValidation; }; MDCTextFieldFoundation.prototype.isDisabled = function () { return this.getNativeInput_().disabled; }; /** * @param disabled Sets the text-field disabled or enabled. */ MDCTextFieldFoundation.prototype.setDisabled = function (disabled) { this.getNativeInput_().disabled = disabled; this.styleDisabled_(disabled); }; /** * @param content Sets the content of the helper text. */ MDCTextFieldFoundation.prototype.setHelperTextContent = function (content) { if (this.helperText_) { this.helperText_.setContent(content); } }; /** * Sets the aria label of the leading icon. */ MDCTextFieldFoundation.prototype.setLeadingIconAriaLabel = function (label) { if (this.leadingIcon_) { this.leadingIcon_.setAriaLabel(label); } }; /** * Sets the text content of the leading icon. */ MDCTextFieldFoundation.prototype.setLeadingIconContent = function (content) { if (this.leadingIcon_) { this.leadingIcon_.setContent(content); } }; /** * Sets the aria label of the trailing icon. */ MDCTextFieldFoundation.prototype.setTrailingIconAriaLabel = function (label) { if (this.trailingIcon_) { this.trailingIcon_.setAriaLabel(label); } }; /** * Sets the text content of the trailing icon. */ MDCTextFieldFoundation.prototype.setTrailingIconContent = function (content) { if (this.trailingIcon_) { this.trailingIcon_.setContent(content); } }; /** * Sets character counter values that shows characters used and the total character limit. */ MDCTextFieldFoundation.prototype.setCharacterCounter_ = function (currentLength) { if (!this.characterCounter_) { return; } var maxLength = this.getNativeInput_().maxLength; if (maxLength === -1) { throw new Error('MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.'); } this.characterCounter_.setCounterValue(currentLength, maxLength); }; /** * @return True if the Text Field input fails in converting the user-supplied value. */ MDCTextFieldFoundation.prototype.isBadInput_ = function () { // The badInput property is not supported in IE 11 💩. return this.getNativeInput_().validity.badInput || false; }; /** * @return The result of native validity checking (ValidityState.valid). */ MDCTextFieldFoundation.prototype.isNativeInputValid_ = function () { return this.getNativeInput_().validity.valid; }; /** * Styles the component based on the validity state. */ MDCTextFieldFoundation.prototype.styleValidity_ = function (isValid) { var INVALID = MDCTextFieldFoundation.cssClasses.INVALID; if (isValid) { this.adapter_.removeClass(INVALID); } else { this.adapter_.addClass(INVALID); } if (this.helperText_) { this.helperText_.setValidity(isValid); } }; /** * Styles the component based on the focused state. */ MDCTextFieldFoundation.prototype.styleFocused_ = function (isFocused) { var FOCUSED = MDCTextFieldFoundation.cssClasses.FOCUSED; if (isFocused) { this.adapter_.addClass(FOCUSED); } else { this.adapter_.removeClass(FOCUSED); } }; /** * Styles the component based on the disabled state. */ MDCTextFieldFoundation.prototype.styleDisabled_ = function (isDisabled) { var _a = MDCTextFieldFoundation.cssClasses, DISABLED = _a.DISABLED, INVALID = _a.INVALID; if (isDisabled) { this.adapter_.addClass(DISABLED); this.adapter_.removeClass(INVALID); } else { this.adapter_.removeClass(DISABLED); } if (this.leadingIcon_) { this.leadingIcon_.setDisabled(isDisabled); } if (this.trailingIcon_) { this.trailingIcon_.setDisabled(isDisabled); } }; /** * @return The native text input element from the host environment, or an object with the same shape for unit tests. */ MDCTextFieldFoundation.prototype.getNativeInput_ = function () { // this.adapter_ may be undefined in foundation unit tests. This happens when testdouble is creating a mock object // and invokes the shouldShake/shouldFloat getters (which in turn call getValue(), which calls this method) before // init() has been called from the MDCTextField constructor. To work around that issue, we return a dummy object. var nativeInput = this.adapter_ ? this.adapter_.getNativeInput() : null; return nativeInput || { disabled: false, maxLength: -1, type: 'input', validity: { badInput: false, valid: true }, value: '' }; }; return MDCTextFieldFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 95 */ /***/ (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_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(43); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTextFieldHelperText = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldHelperText, _super); function MDCTextFieldHelperText() { return _super !== null && _super.apply(this, arguments) || this; } MDCTextFieldHelperText.attachTo = function (root) { return new MDCTextFieldHelperText(root); }; Object.defineProperty(MDCTextFieldHelperText.prototype, "foundation", { get: function get() { return this.foundation_; }, enumerable: true, configurable: true }); MDCTextFieldHelperText.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this.root_.classList.contains(className); }, setAttr: function setAttr(attr, value) { return _this.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this.root_.textContent = content; } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTextFieldHelperTextFoundation */](adapter); }; return MDCTextFieldHelperText; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 96 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent', HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg', ROOT: 'mdc-text-field-helper-text' }; var strings = { ARIA_HIDDEN: 'aria-hidden', ROLE: 'role', ROOT_SELECTOR: "." + cssClasses.ROOT }; //# sourceMappingURL=constants.js.map /***/ }), /* 97 */ /***/ (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_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(98); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTextFieldIcon = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldIcon, _super); function MDCTextFieldIcon() { return _super !== null && _super.apply(this, arguments) || this; } MDCTextFieldIcon.attachTo = function (root) { return new MDCTextFieldIcon(root); }; Object.defineProperty(MDCTextFieldIcon.prototype, "foundation", { get: function get() { return this.foundation_; }, enumerable: true, configurable: true }); MDCTextFieldIcon.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { getAttr: function getAttr(attr) { return _this.root_.getAttribute(attr); }, setAttr: function setAttr(attr, value) { return _this.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this.root_.textContent = content; }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return _this.listen(evtType, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return _this.unlisten(evtType, handler); }, notifyIconAction: function notifyIconAction() { return _this.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTextFieldIconFoundation */].strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */); } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTextFieldIconFoundation */](adapter); }; return MDCTextFieldIcon; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 98 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldIconFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(99); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var INTERACTION_EVENTS = ['click', 'keydown']; var MDCTextFieldIconFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTextFieldIconFoundation, _super); function MDCTextFieldIconFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTextFieldIconFoundation.defaultAdapter, adapter)) || this; _this.savedTabIndex_ = null; _this.interactionHandler_ = function (evt) { return _this.handleInteraction(evt); }; return _this; } Object.defineProperty(MDCTextFieldIconFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldIconFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTextFieldIconFoundation, "defaultAdapter", { /** * See {@link MDCTextFieldIconAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { getAttr: function getAttr() { return null; }, setAttr: function setAttr() { return undefined; }, removeAttr: function removeAttr() { return undefined; }, setContent: function setContent() { return undefined; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, notifyIconAction: function notifyIconAction() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCTextFieldIconFoundation.prototype.init = function () { var _this = this; this.savedTabIndex_ = this.adapter_.getAttr('tabindex'); INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.registerInteractionHandler(evtType, _this.interactionHandler_); }); }; MDCTextFieldIconFoundation.prototype.destroy = function () { var _this = this; INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.deregisterInteractionHandler(evtType, _this.interactionHandler_); }); }; MDCTextFieldIconFoundation.prototype.setDisabled = function (disabled) { if (!this.savedTabIndex_) { return; } if (disabled) { this.adapter_.setAttr('tabindex', '-1'); this.adapter_.removeAttr('role'); } else { this.adapter_.setAttr('tabindex', this.savedTabIndex_); this.adapter_.setAttr('role', __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ICON_ROLE); } }; MDCTextFieldIconFoundation.prototype.setAriaLabel = function (label) { this.adapter_.setAttr('aria-label', label); }; MDCTextFieldIconFoundation.prototype.setContent = function (content) { this.adapter_.setContent(content); }; MDCTextFieldIconFoundation.prototype.handleInteraction = function (evt) { var isEnterKey = evt.key === 'Enter' || evt.keyCode === 13; if (evt.type === 'click' || isEnterKey) { this.adapter_.notifyIconAction(); } }; return MDCTextFieldIconFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldIconFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 99 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ICON_EVENT: 'MDCTextField:icon', ICON_ROLE: 'button' }; var cssClasses = { ROOT: 'mdc-text-field__icon' }; //# sourceMappingURL=constants.js.map /***/ }), /* 100 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = initTextFields; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VTextField; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_textfield__ = __webpack_require__(87); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_event_handler__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_visibility_observer__ = __webpack_require__(44); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_dirtyable__ = __webpack_require__(11); 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; } var AFTER_INPUT_EVENT = 'after_input'; var AFTER_INPUT_TIMEOUT = 500; // ms function initTextFields(e) { console.debug('\tTextFields'); Object(__WEBPACK_IMPORTED_MODULE_1__base_component__["c" /* hookupComponents */])(e, '.v-text-field', VTextField, __WEBPACK_IMPORTED_MODULE_0__material_textfield__["a" /* MDCTextField */]); } var VTextField = function (_dirtyableMixin) { _inherits(VTextField, _dirtyableMixin); function VTextField(element, mdcComponent) { _classCallCheck(this, VTextField); var _this = _possibleConstructorReturn(this, (VTextField.__proto__ || Object.getPrototypeOf(VTextField)).call(this, element, mdcComponent)); _this.input = element.querySelector('input,textarea'); _this.input.vComponent = _this; _this.afterInputTimeout = null; _this.helperDisplay = _this.root.getElementById(element.id + '-input-helper-text'); _this.origHelperText = _this.helperDisplay.innerHTML.trim(); _this.recalcWhenVisible(_this); _this.input.addEventListener('input', function (event) { clearTimeout(_this.afterInputTimeout); _this.afterInputTimeout = setTimeout(function () { _this.element.dispatchEvent(new Event(AFTER_INPUT_EVENT, { composed: true })); }, AFTER_INPUT_TIMEOUT); }); var caseType = element.dataset.case_type; if (caseType !== 'mixed') { _this.input.addEventListener('keyup', function (e) { _this.forceCase(caseType); }); } _this.originalValue = _this.value(); return _this; } // Called whenever a form is about to be submitted. // returns true on success // returns on failure return an error object that can be processed by VErrors: // { email: ["email must be filled", "email must be from your domain"] } // { :page: ["must be filled"] } _createClass(VTextField, [{ key: 'validate', value: function validate(formData) { console.debug('TextField validate', formData); var isValid = this.input.checkValidity(); if (isValid) { if (this.origHelperText !== '') { this.helperDisplay.innerHTML = this.origHelperText; this.helperDisplay.classList.remove('v-hidden', 'mdc-text-field-helper-text--validation-msg'); this.element.classList.remove('mdc-text-field--invalid'); } else { this.helperDisplay.classList.add('v-hidden'); } return true; } var message = this.helperDisplay.dataset.validationError ? this.helperDisplay.dataset.validationError : this.input.validationMessage; var errorMessage = {}; errorMessage[this.element.id] = [message]; return errorMessage; } // Called to collect data for submission }, { key: 'prepareSubmit', value: function prepareSubmit(params) { var optionSelected = this.optionSelected(); if (optionSelected) { var key = optionSelected.dataset.key; if (key) { var name = this.name(); var id = name + '_id'; params.push([id, key]); console.debug('TextField prepareSubmit added:' + id + '=' + key); } } params.push([this.name(), this.value()]); } }, { key: 'optionSelected', value: function optionSelected() { var dataList = this.element.querySelector('datalist'); if (dataList) { var parentElement = this.input; // If we find the input inside our list, we submit the form var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = dataList.children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var element = _step.value; if (element.value === parentElement.value) { return element; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } return null; } }, { key: 'name', value: function name() { return this.input.name; } }, { key: 'value', value: function value() { return this.input.value; } }, { key: 'clear', value: function clear() { if (this.value() !== '') { this.setValue(null); } } }, { key: 'reset', value: function reset() { this.input.value = this.originalValue; } }, { key: 'setValue', value: function setValue(value) { this.input.value = value; } }, { key: 'isDirty', value: function isDirty() { return this.dirtyable && this.value().localeCompare(this.originalValue) !== 0; } }, { key: 'onShow', value: function onShow() { this.mdcComponent.layout(); } }, { key: 'preview', value: function preview(result, acceptsMimeTypes) { this.setValue(result); } // Return true if focus is able to be set, false otherwise }, { key: 'focus', value: function focus() { if (this.isHidden() || this.input.disabled) return false; this.input.focus(); return true; } }, { key: 'isHidden', value: function isHidden() { var style = window.getComputedStyle(this.element); return style.display === 'none'; } }, { key: 'forceCase', value: function forceCase(caseType) { if (caseType === 'upper') { this.input.value = this.input.value.toUpperCase(); } else if (caseType === 'lower') { this.input.value = this.input.value.toLowerCase(); } } }]); return VTextField; }(Object(__WEBPACK_IMPORTED_MODULE_4__mixins_dirtyable__["a" /* dirtyableMixin */])(Object(__WEBPACK_IMPORTED_MODULE_3__mixins_visibility_observer__["a" /* visibilityObserverMixin */])(Object(__WEBPACK_IMPORTED_MODULE_2__mixins_event_handler__["a" /* eventHandlerMixin */])(__WEBPACK_IMPORTED_MODULE_1__base_component__["a" /* VBaseComponent */])))); /***/ }), /* 101 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_config__ = __webpack_require__(189); /* harmony default export */ __webpack_exports__["a"] = (new __WEBPACK_IMPORTED_MODULE_0__utils_config__["a" /* default */]({ component: { datetime: { flatpickr: { altInput: true, disableMobile: true, clickOpens: false, defaultHour: 0 } } }, request: { headers: { POST: { Accept: 'application/json,text/html;q=0.9' } } }, compatibility: { errorMessage: 'Your browser is not supported! Please use a different browser to continue.', incompatibleBrowsers: ['ie'] } })); /***/ }), /* 102 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = getEventTarget; function getEventTarget(event) { if (typeof event.composedPath === 'function') { var compTarget = event.composedPath()[0]; if (compTarget) { return compTarget; } if (event.path && event.path[0]) { return event.path[0]; } } return event.target; } /***/ }), /* 103 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = uninitMenus; /* harmony export (immutable) */ __webpack_exports__["a"] = initMenus; /* unused harmony export VMenu */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_menu__ = __webpack_require__(201); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_component__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_event_handler__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__events__ = __webpack_require__(45); 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; } function createMenuHandler(menu, element) { return function (event) { var offset = parseInt(element.dataset.rightOffset); var placement = element.dataset.placement === 'contextual' ? __WEBPACK_IMPORTED_MODULE_0__material_menu__["a" /* Corner */].TOP_LEFT : __WEBPACK_IMPORTED_MODULE_0__material_menu__["a" /* Corner */].BOTTOM_LEFT; menu.setAbsolutePosition(event.clientX, event.clientY); menu.setAnchorMargin({ left: offset }); menu.setAnchorCorner(placement); menu.open = !menu.open; event.stopPropagation(); }; } function createSurfaceClickHandler(mdcMenu) { return function (event) { if (mdcMenu.open) { if (event.target.classList.contains('v-menu-link')) { mdcMenu.open = false; } } }; } function uninitMenus(root) { console.debug('\tUninit Menus'); Object(__WEBPACK_IMPORTED_MODULE_1__base_component__["e" /* unhookupComponents */])(root, '.v-menu'); } function initMenus(root) { console.debug('\tMenus'); Object(__WEBPACK_IMPORTED_MODULE_1__base_component__["c" /* hookupComponents */])(root, '.v-menu', VMenu, null); } var VMenu = function (_eventHandlerMixin) { _inherits(VMenu, _eventHandlerMixin); function VMenu(element) { _classCallCheck(this, VMenu); var _this = _possibleConstructorReturn(this, (VMenu.__proto__ || Object.getPrototypeOf(VMenu)).call(this, element)); _this.hoistedMenuElement = element.querySelector('.mdc-menu'); _this.mdcComponent = new __WEBPACK_IMPORTED_MODULE_0__material_menu__["b" /* MDCMenu */](_this.hoistedMenuElement); Object(__WEBPACK_IMPORTED_MODULE_3__events__["b" /* initEvents */])(_this.hoistedMenuElement); // Ensure that the menu surface closes when an item is clicked _this.hoistedMenuElement.addEventListener('click', createSurfaceClickHandler(_this.mdcComponent), { capture: true }); var link = _this.menulink(); if (link) { link.addEventListener('click', createMenuHandler(_this.mdcComponent, element)); } if (_this.hoistedMenuElement.getAttribute('data-hoist') != 'false') { _this.mdcComponent.hoistMenuToBody(); } return _this; } _createClass(VMenu, [{ key: "destroy", value: function destroy() { _get(VMenu.prototype.__proto__ || Object.getPrototypeOf(VMenu.prototype), "destroy", this).call(this); Object(__WEBPACK_IMPORTED_MODULE_3__events__["c" /* removeEvents */])(this.hoistedMenuElement); var link = this.menulink(); if (link) { link.removeEventListener('click', createMenuHandler(this.mdcComponent, this.element)); } this.hoistedMenuElement.removeEventListener('click', createSurfaceClickHandler(), { capture: true }); this.hoistedMenuElement.parentNode.removeChild(this.hoistedMenuElement); } }, { key: "menulink", value: function menulink() { var anchor = this.element.closest('.mdc-menu-anchor'); var link = null; if (anchor) { link = anchor.querySelector('.v-menu-click'); } return link; } }]); return VMenu; }(Object(__WEBPACK_IMPORTED_MODULE_2__mixins_event_handler__["a" /* eventHandlerMixin */])(__WEBPACK_IMPORTED_MODULE_1__base_component__["a" /* VBaseComponent */])); /***/ }), /* 104 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCMenu; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_list_component__ = __webpack_require__(105); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_list_foundation__ = __webpack_require__(47); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_menu_surface_component__ = __webpack_require__(202); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_menu_surface_foundation__ = __webpack_require__(48); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constants__ = __webpack_require__(26); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__foundation__ = __webpack_require__(106); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCMenu = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCMenu, _super); function MDCMenu() { return _super !== null && _super.apply(this, arguments) || this; } MDCMenu.attachTo = function (root) { return new MDCMenu(root); }; MDCMenu.prototype.initialize = function (menuSurfaceFactory, listFactory) { if (menuSurfaceFactory === void 0) { menuSurfaceFactory = function menuSurfaceFactory(el) { return new __WEBPACK_IMPORTED_MODULE_5__material_menu_surface_component__["a" /* MDCMenuSurface */](el); }; } if (listFactory === void 0) { listFactory = function listFactory(el) { return new __WEBPACK_IMPORTED_MODULE_3__material_list_component__["a" /* MDCList */](el); }; } this.menuSurfaceFactory_ = menuSurfaceFactory; this.listFactory_ = listFactory; }; MDCMenu.prototype.initialSyncWithDOM = function () { var _this = this; this.menuSurface_ = this.menuSurfaceFactory_(this.root_); var list = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["d" /* strings */].LIST_SELECTOR); if (list) { this.list_ = this.listFactory_(list); this.list_.wrapFocus = true; } else { this.list_ = null; } this.handleKeydown_ = function (evt) { return _this.foundation_.handleKeydown(evt); }; this.handleItemAction_ = function (evt) { return _this.foundation_.handleItemAction(_this.items[evt.detail.index]); }; this.handleMenuSurfaceOpened_ = function () { return _this.foundation_.handleMenuSurfaceOpened(); }; this.menuSurface_.listen(__WEBPACK_IMPORTED_MODULE_6__material_menu_surface_foundation__["a" /* MDCMenuSurfaceFoundation */].strings.OPENED_EVENT, this.handleMenuSurfaceOpened_); this.listen('keydown', this.handleKeydown_); this.listen(__WEBPACK_IMPORTED_MODULE_4__material_list_foundation__["a" /* MDCListFoundation */].strings.ACTION_EVENT, this.handleItemAction_); }; MDCMenu.prototype.destroy = function () { if (this.list_) { this.list_.destroy(); } this.menuSurface_.destroy(); this.menuSurface_.unlisten(__WEBPACK_IMPORTED_MODULE_6__material_menu_surface_foundation__["a" /* MDCMenuSurfaceFoundation */].strings.OPENED_EVENT, this.handleMenuSurfaceOpened_); this.unlisten('keydown', this.handleKeydown_); this.unlisten(__WEBPACK_IMPORTED_MODULE_4__material_list_foundation__["a" /* MDCListFoundation */].strings.ACTION_EVENT, this.handleItemAction_); _super.prototype.destroy.call(this); }; Object.defineProperty(MDCMenu.prototype, "open", { get: function get() { return this.menuSurface_.isOpen(); }, set: function set(value) { if (value) { this.menuSurface_.open(); } else { this.menuSurface_.close(); } }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenu.prototype, "wrapFocus", { get: function get() { return this.list_ ? this.list_.wrapFocus : false; }, set: function set(value) { if (this.list_) { this.list_.wrapFocus = value; } }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenu.prototype, "items", { /** * 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. */ get: function get() { return this.list_ ? this.list_.listElements : []; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenu.prototype, "quickOpen", { set: function set(quickOpen) { this.menuSurface_.quickOpen = quickOpen; }, enumerable: true, configurable: true }); /** * Sets default focus state where the menu should focus every time when menu * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by * default. * @param focusState Default focus state. */ MDCMenu.prototype.setDefaultFocusState = function (focusState) { this.foundation_.setDefaultFocusState(focusState); }; /** * @param corner Default anchor corner alignment of top-left menu corner. */ MDCMenu.prototype.setAnchorCorner = function (corner) { this.menuSurface_.setAnchorCorner(corner); }; MDCMenu.prototype.setAnchorMargin = function (margin) { this.menuSurface_.setAnchorMargin(margin); }; /** * Sets the list item as the selected row at the specified index. * @param index Index of list item within menu. */ MDCMenu.prototype.setSelectedIndex = function (index) { this.foundation_.setSelectedIndex(index); }; /** * Sets the enabled state to isEnabled for the menu item at the given index. * @param index Index of the menu item * @param isEnabled The desired enabled state of the menu item. */ MDCMenu.prototype.setEnabled = function (index, isEnabled) { this.foundation_.setEnabled(index, isEnabled); }; /** * @return The item within the menu at the index specified. */ MDCMenu.prototype.getOptionByIndex = function (index) { var items = this.items; if (index < items.length) { return this.items[index]; } else { return null; } }; MDCMenu.prototype.setFixedPosition = function (isFixed) { this.menuSurface_.setFixedPosition(isFixed); }; MDCMenu.prototype.hoistMenuToBody = function () { this.menuSurface_.hoistMenuToBody(); }; MDCMenu.prototype.setIsHoisted = function (isHoisted) { this.menuSurface_.setIsHoisted(isHoisted); }; MDCMenu.prototype.setAbsolutePosition = function (x, y) { this.menuSurface_.setAbsolutePosition(x, y); }; /** * Sets the element that the menu-surface is anchored to. */ MDCMenu.prototype.setAnchorElement = function (element) { this.menuSurface_.anchorElement = element; }; MDCMenu.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClassToElementAtIndex: function addClassToElementAtIndex(index, className) { var list = _this.items; list[index].classList.add(className); }, removeClassFromElementAtIndex: function removeClassFromElementAtIndex(index, className) { var list = _this.items; list[index].classList.remove(className); }, addAttributeToElementAtIndex: function addAttributeToElementAtIndex(index, attr, value) { var list = _this.items; list[index].setAttribute(attr, value); }, removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex(index, attr) { var list = _this.items; list[index].removeAttribute(attr); }, elementContainsClass: function elementContainsClass(element, className) { return element.classList.contains(className); }, closeSurface: function closeSurface(skipRestoreFocus) { return _this.menuSurface_.close(skipRestoreFocus); }, getElementIndex: function getElementIndex(element) { return _this.items.indexOf(element); }, notifySelected: function notifySelected(evtData) { return _this.emit(__WEBPACK_IMPORTED_MODULE_7__constants__["d" /* strings */].SELECTED_EVENT, { index: evtData.index, item: _this.items[evtData.index] }); }, getMenuItemCount: function getMenuItemCount() { return _this.items.length; }, focusItemAtIndex: function focusItemAtIndex(index) { return _this.items[index].focus(); }, focusListRoot: function focusListRoot() { return _this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["d" /* strings */].LIST_SELECTOR).focus(); }, isSelectableItemAtIndex: function isSelectableItemAtIndex(index) { return !!Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__["a" /* closest */])(_this.items[index], "." + __WEBPACK_IMPORTED_MODULE_7__constants__["b" /* cssClasses */].MENU_SELECTION_GROUP); }, getSelectedSiblingOfItemAtIndex: function getSelectedSiblingOfItemAtIndex(index) { var selectionGroupEl = Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__["a" /* closest */])(_this.items[index], "." + __WEBPACK_IMPORTED_MODULE_7__constants__["b" /* cssClasses */].MENU_SELECTION_GROUP); var selectedItemEl = selectionGroupEl.querySelector("." + __WEBPACK_IMPORTED_MODULE_7__constants__["b" /* cssClasses */].MENU_SELECTED_LIST_ITEM); return selectedItemEl ? _this.items.indexOf(selectedItemEl) : -1; } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_8__foundation__["a" /* MDCMenuFoundation */](adapter); }; return MDCMenu; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 105 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCList; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(46); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(47); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCList = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCList, _super); function MDCList() { return _super !== null && _super.apply(this, arguments) || this; } Object.defineProperty(MDCList.prototype, "vertical", { set: function set(value) { this.foundation_.setVerticalOrientation(value); }, enumerable: true, configurable: true }); Object.defineProperty(MDCList.prototype, "listElements", { get: function get() { return [].slice.call(this.root_.querySelectorAll("." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_CLASS)); }, enumerable: true, configurable: true }); Object.defineProperty(MDCList.prototype, "wrapFocus", { set: function set(value) { this.foundation_.setWrapFocus(value); }, enumerable: true, configurable: true }); Object.defineProperty(MDCList.prototype, "singleSelection", { set: function set(isSingleSelectionList) { this.foundation_.setSingleSelection(isSingleSelectionList); }, enumerable: true, configurable: true }); Object.defineProperty(MDCList.prototype, "selectedIndex", { get: function get() { return this.foundation_.getSelectedIndex(); }, set: function set(index) { this.foundation_.setSelectedIndex(index); }, enumerable: true, configurable: true }); MDCList.attachTo = function (root) { return new MDCList(root); }; MDCList.prototype.initialSyncWithDOM = function () { this.handleClick_ = this.handleClickEvent_.bind(this); this.handleKeydown_ = this.handleKeydownEvent_.bind(this); this.focusInEventListener_ = this.handleFocusInEvent_.bind(this); this.focusOutEventListener_ = this.handleFocusOutEvent_.bind(this); this.listen('keydown', this.handleKeydown_); this.listen('click', this.handleClick_); this.listen('focusin', this.focusInEventListener_); this.listen('focusout', this.focusOutEventListener_); this.layout(); this.initializeListType(); }; MDCList.prototype.destroy = function () { this.unlisten('keydown', this.handleKeydown_); this.unlisten('click', this.handleClick_); this.unlisten('focusin', this.focusInEventListener_); this.unlisten('focusout', this.focusOutEventListener_); }; MDCList.prototype.layout = function () { var direction = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_ORIENTATION); this.vertical = direction !== __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_ORIENTATION_HORIZONTAL; // List items need to have at least tabindex=-1 to be focusable. [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])')).forEach(function (el) { el.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__["c" /* strings */].FOCUSABLE_CHILD_ELEMENTS)).forEach(function (el) { return el.setAttribute('tabindex', '-1'); }); this.foundation_.layout(); }; /** * Initialize selectedIndex value based on pre-selected checkbox list items, single selection or radio. */ MDCList.prototype.initializeListType = function () { var _this = this; var checkboxListItems = this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_ROLE_CHECKBOX_SELECTOR); var singleSelectedListItem = this.root_.querySelector("\n ." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS + ",\n ." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS + "\n "); var radioSelectedListItem = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_RADIO_SELECTOR); if (checkboxListItems.length) { var preselectedItems = this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_CHECKBOX_SELECTOR); this.selectedIndex = [].map.call(preselectedItems, function (listItem) { return _this.listElements.indexOf(listItem); }); } else if (singleSelectedListItem) { if (singleSelectedListItem.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS)) { this.foundation_.setUseActivatedClass(true); } this.singleSelection = true; this.selectedIndex = this.listElements.indexOf(singleSelectedListItem); } else if (radioSelectedListItem) { this.selectedIndex = this.listElements.indexOf(radioSelectedListItem); } }; /** * Updates the list item at itemIndex to the desired isEnabled state. * @param itemIndex Index of the list item * @param isEnabled Sets the list item to enabled or disabled. */ MDCList.prototype.setEnabled = function (itemIndex, isEnabled) { this.foundation_.setEnabled(itemIndex, isEnabled); }; MDCList.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. var adapter = { addClassForElementIndex: function addClassForElementIndex(index, className) { var element = _this.listElements[index]; if (element) { element.classList.add(className); } }, focusItemAtIndex: function focusItemAtIndex(index) { var element = _this.listElements[index]; if (element) { element.focus(); } }, getAttributeForElementIndex: function getAttributeForElementIndex(index, attr) { return _this.listElements[index].getAttribute(attr); }, getFocusedElementIndex: function getFocusedElementIndex() { return _this.listElements.indexOf(document.activeElement); }, getListItemCount: function getListItemCount() { return _this.listElements.length; }, hasCheckboxAtIndex: function hasCheckboxAtIndex(index) { var listItem = _this.listElements[index]; return !!listItem.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].CHECKBOX_SELECTOR); }, hasRadioAtIndex: function hasRadioAtIndex(index) { var listItem = _this.listElements[index]; return !!listItem.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].RADIO_SELECTOR); }, isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex(index) { var listItem = _this.listElements[index]; var toggleEl = listItem.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].CHECKBOX_SELECTOR); return toggleEl.checked; }, isFocusInsideList: function isFocusInsideList() { return _this.root_.contains(document.activeElement); }, isRootFocused: function isRootFocused() { return document.activeElement === _this.root_; }, notifyAction: function notifyAction(index) { _this.emit(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ACTION_EVENT, { index: index }, /** shouldBubble */true); }, removeClassForElementIndex: function removeClassForElementIndex(index, className) { var element = _this.listElements[index]; if (element) { element.classList.remove(className); } }, setAttributeForElementIndex: function setAttributeForElementIndex(index, attr, value) { var element = _this.listElements[index]; if (element) { element.setAttribute(attr, value); } }, setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex(index, isChecked) { var listItem = _this.listElements[index]; var toggleEl = listItem.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].CHECKBOX_RADIO_SELECTOR); toggleEl.checked = isChecked; var event = document.createEvent('Event'); event.initEvent('change', true, true); toggleEl.dispatchEvent(event); }, setTabIndexForListItemChildren: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) { var element = _this.listElements[listItemIndex]; var listItemChildren = [].slice.call(element.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].CHILD_ELEMENTS_TO_TOGGLE_TABINDEX)); listItemChildren.forEach(function (el) { return el.setAttribute('tabindex', tabIndexValue); }); } }; return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* MDCListFoundation */](adapter); }; /** * Used to figure out which list item this event is targetting. Or returns -1 if * there is no list item */ MDCList.prototype.getListItemIndex_ = function (evt) { var eventTarget = evt.target; var nearestParent = Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__["a" /* closest */])(eventTarget, "." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_CLASS + ", ." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].ROOT); // Get the index of the element if it is a list item. if (nearestParent && Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__["b" /* matches */])(nearestParent, "." + __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_CLASS)) { return this.listElements.indexOf(nearestParent); } return -1; }; /** * Used to figure out which element was clicked before sending the event to the foundation. */ MDCList.prototype.handleFocusInEvent_ = function (evt) { var index = this.getListItemIndex_(evt); this.foundation_.handleFocusIn(evt, index); }; /** * Used to figure out which element was clicked before sending the event to the foundation. */ MDCList.prototype.handleFocusOutEvent_ = function (evt) { var index = this.getListItemIndex_(evt); this.foundation_.handleFocusOut(evt, index); }; /** * Used to figure out which element was focused when keydown event occurred before sending the event to the * foundation. */ MDCList.prototype.handleKeydownEvent_ = function (evt) { var index = this.getListItemIndex_(evt); var target = evt.target; this.foundation_.handleKeydown(evt, target.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].LIST_ITEM_CLASS), index); }; /** * Used to figure out which element was clicked before sending the event to the foundation. */ MDCList.prototype.handleClickEvent_ = function (evt) { var index = this.getListItemIndex_(evt); var target = evt.target; // Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events. var toggleCheckbox = !Object(__WEBPACK_IMPORTED_MODULE_2__material_dom_ponyfill__["b" /* matches */])(target, __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].CHECKBOX_RADIO_SELECTOR); this.foundation_.handleClick(index, toggleCheckbox); }; return MDCList; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 106 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCMenuFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_list_constants__ = __webpack_require__(46); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_foundation__ = __webpack_require__(48); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(26); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCMenuFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCMenuFoundation, _super); function MDCMenuFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCMenuFoundation.defaultAdapter, adapter)) || this; _this.closeAnimationEndTimerId_ = 0; _this.defaultFocusState_ = __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* DefaultFocusState */].LIST_ROOT; return _this; } Object.defineProperty(MDCMenuFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCMenuFoundation, "defaultAdapter", { /** * @see {@link MDCMenuAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClassToElementAtIndex: function addClassToElementAtIndex() { return undefined; }, removeClassFromElementAtIndex: function removeClassFromElementAtIndex() { return undefined; }, addAttributeToElementAtIndex: function addAttributeToElementAtIndex() { return undefined; }, removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex() { return undefined; }, elementContainsClass: function elementContainsClass() { return false; }, closeSurface: function closeSurface() { return undefined; }, getElementIndex: function getElementIndex() { return -1; }, notifySelected: function notifySelected() { return undefined; }, getMenuItemCount: function getMenuItemCount() { return 0; }, focusItemAtIndex: function focusItemAtIndex() { return undefined; }, focusListRoot: function focusListRoot() { return undefined; }, getSelectedSiblingOfItemAtIndex: function getSelectedSiblingOfItemAtIndex() { return -1; }, isSelectableItemAtIndex: function isSelectableItemAtIndex() { return false; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCMenuFoundation.prototype.destroy = function () { if (this.closeAnimationEndTimerId_) { clearTimeout(this.closeAnimationEndTimerId_); } this.adapter_.closeSurface(); }; MDCMenuFoundation.prototype.handleKeydown = function (evt) { var key = evt.key, keyCode = evt.keyCode; var isTab = key === 'Tab' || keyCode === 9; if (isTab) { this.adapter_.closeSurface( /** skipRestoreFocus */true); } }; MDCMenuFoundation.prototype.handleItemAction = function (listItem) { var _this = this; var index = this.adapter_.getElementIndex(listItem); if (index < 0) { return; } this.adapter_.notifySelected({ index: index }); this.adapter_.closeSurface(); // Wait for the menu to close before adding/removing classes that affect styles. this.closeAnimationEndTimerId_ = setTimeout(function () { // Recompute the index in case the menu contents have changed. var recomputedIndex = _this.adapter_.getElementIndex(listItem); if (_this.adapter_.isSelectableItemAtIndex(recomputedIndex)) { _this.setSelectedIndex(recomputedIndex); } }, __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_foundation__["a" /* MDCMenuSurfaceFoundation */].numbers.TRANSITION_CLOSE_DURATION); }; MDCMenuFoundation.prototype.handleMenuSurfaceOpened = function () { switch (this.defaultFocusState_) { case __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* DefaultFocusState */].FIRST_ITEM: this.adapter_.focusItemAtIndex(0); break; case __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* DefaultFocusState */].LAST_ITEM: this.adapter_.focusItemAtIndex(this.adapter_.getMenuItemCount() - 1); break; case __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* DefaultFocusState */].NONE: // Do nothing. break; default: this.adapter_.focusListRoot(); break; } }; /** * Sets default focus state where the menu should focus every time when menu * is opened. Focuses the list root (`DefaultFocusState.LIST_ROOT`) element by * default. */ MDCMenuFoundation.prototype.setDefaultFocusState = function (focusState) { this.defaultFocusState_ = focusState; }; /** * Selects the list item at `index` within the menu. * @param index Index of list item within the menu. */ MDCMenuFoundation.prototype.setSelectedIndex = function (index) { this.validatedIndex_(index); if (!this.adapter_.isSelectableItemAtIndex(index)) { throw new Error('MDCMenuFoundation: No selection group at specified index.'); } var prevSelectedIndex = this.adapter_.getSelectedSiblingOfItemAtIndex(index); if (prevSelectedIndex >= 0) { this.adapter_.removeAttributeFromElementAtIndex(prevSelectedIndex, __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */].ARIA_CHECKED_ATTR); this.adapter_.removeClassFromElementAtIndex(prevSelectedIndex, __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* cssClasses */].MENU_SELECTED_LIST_ITEM); } this.adapter_.addClassToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* cssClasses */].MENU_SELECTED_LIST_ITEM); this.adapter_.addAttributeToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */].ARIA_CHECKED_ATTR, 'true'); }; /** * Sets the enabled state to isEnabled for the menu item at the given index. * @param index Index of the menu item * @param isEnabled The desired enabled state of the menu item. */ MDCMenuFoundation.prototype.setEnabled = function (index, isEnabled) { this.validatedIndex_(index); if (isEnabled) { this.adapter_.removeClassFromElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_2__material_list_constants__["a" /* cssClasses */].LIST_ITEM_DISABLED_CLASS); this.adapter_.addAttributeToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */].ARIA_DISABLED_ATTR, 'false'); } else { this.adapter_.addClassToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_2__material_list_constants__["a" /* cssClasses */].LIST_ITEM_DISABLED_CLASS); this.adapter_.addAttributeToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* strings */].ARIA_DISABLED_ATTR, 'true'); } }; MDCMenuFoundation.prototype.validatedIndex_ = function (index) { var menuSize = this.adapter_.getMenuItemCount(); var isIndexInRange = index >= 0 && index < menuSize; if (!isIndexInRange) { throw new Error('MDCMenuFoundation: No list item at specified index.'); } }; return MDCMenuFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCMenuFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 107 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VDialog; }); 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"); } } var VDialog = function () { function VDialog(options, params, event, root) { _classCallCheck(this, VDialog); this.dialogId = options.target; this.params = params; this.event = event; this.root = root; } _createClass(VDialog, [{ key: 'call', value: function call(results) { var dialog = this.root.querySelector('#' + this.dialogId); if (!(dialog && dialog.vComponent)) { var err = new Error('Unable to find dialog ' + this.dialogId + '. ' + 'Did you forget to attach it?'); results.push({ action: 'dialog', contentType: 'v/errors', content: { exception: err.message } }); return new Promise(function (_, reject) { return reject(results); }); } return new Promise(function (resolve, reject) { var comp = dialog.vComponent.mdcComponent; comp.listen('MDCDialog:closed', function (event) { results.push({ action: 'dialog', statusCode: 200, dialogAction: event.detail.action }); resolve(results); }); dialog.vComponent.open(); }); } }]); return VDialog; }(); /***/ }), /* 108 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export EVENT_DROPPED */ /* harmony export (immutable) */ __webpack_exports__["c"] = initDragAndDrop; /* harmony export (immutable) */ __webpack_exports__["b"] = hasDragDropData; /* harmony export (immutable) */ __webpack_exports__["a"] = extractDragDropData; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_component__ = __webpack_require__(1); /* A drag data store (DragEvent.prototype.dataTransfer.items) can be in one of three modes: 1. read/write, during a `dragstart` event: items can be read and added 2. read-only, during a `drop` event: items can be read, but not added 3. protected, during all other types of DragEvent: items cannot be read or added. (see https://html.spec.whatwg.org/multipage/dnd.html#concept-dnd-rw) Thus, attempting to mutate the store during events other than `dragstart` fails silently: no error is raised, but items are not added. To read items in protected mode, serialize data as a string and store it as a key instead of as a value. This makes it accessible via `dataTransfer.types`: // in a dragstart handler: event.dataTransfer.setData(JSON.stringify(foo), ''); // in a later read-only or protected DragEvent handler: const json = event.dataTransfer.types[someIndex]; const foo = JSON.stringify(json); There is no workaround for attempting to mutate a drag data store not in read/write mode. */ var EVENT_DROPPED = 'dropped'; var DRAG_DATA_MIME_TYPE = 'application/x.voom-drag-data+json'; var ELEMENT_ID_MIME_TYPE = 'text/x.voom-element-id'; function createDragStartHandler(root, element) { return function (event) { var dragParamData = event.target.dataset.drag_params; if (dragParamData) { event.dataTransfer.setData(DRAG_DATA_MIME_TYPE, dragParamData); var zone = JSON.parse(dragParamData).zone; if (zone) { event.dataTransfer.setData(zone, ''); } event.dataTransfer.effectAllowed = 'move'; event.target.classList.remove('v-dnd-draggable'); event.target.classList.add('v-dnd-moving'); event.dataTransfer.setData(ELEMENT_ID_MIME_TYPE, element.id); } }; } function createDragOverHandler(root, element) { return function (event) { var dropZone = element.dataset.dropzone; if (dropZone == null || event.dataTransfer.types.includes(dropZone)) { if (event.preventDefault) { event.preventDefault(); } element.classList.add('v-dnd-over'); } else { element.classList.remove('v-dnd-over'); } }; } function createDragLeaveHandler(root, element) { return function (event) { element.classList.remove('v-dnd-over'); }; } function createDropHandler(root, element) { // When an element is upgraded to a Voom component after being replaced via // `replaces`, root may refer to the replaced element itself instead of the // element's root node. // Since a valid drop zone may exist anywhere on the page, it is not // guaranteed that root contains the element being dragged. // getRootNode will fetch `root`'s actual root node (document or shadow // DOM root). var trueRoot = Object(__WEBPACK_IMPORTED_MODULE_0__base_component__["b" /* getRootNode */])(root); return function (event) { event.stopPropagation(); event.preventDefault(); var id = event.dataTransfer.getData(ELEMENT_ID_MIME_TYPE); var draggedElement = id ? trueRoot.querySelector('#' + id) : null; var dragParams = {}; if (draggedElement) { dragParams = JSON.parse(draggedElement.dataset.drag_params); } element.classList.remove('v-dnd-over', 'v-dnd-moving'); element.classList.add('v-dnd-draggable'); // Emit a "dropped" event for the element being dragged: // The drag_params of the dragged element are merged with the // drop_params of the drop zone. var dropZoneParams = JSON.parse(element.dataset.drop_params); var params = Object.assign({}, dragParams, dropZoneParams); var droppedEvent = new CustomEvent(EVENT_DROPPED, { detail: params }); draggedElement.dispatchEvent(droppedEvent); return false; }; } function createDragEndHandler(root, element) { return function (event) { element.classList.remove('v-dnd-over', 'v-dnd-moving'); element.classList.add('v-dnd-draggable'); }; } var DRAGGABLE_SELECTOR = '[draggable=true]'; var DROP_ZONE_SELECTOR = '[data-dropzone]'; function initDragAndDrop(root) { var draggables = Array.from(root.querySelectorAll(DRAGGABLE_SELECTOR)); if (typeof root.matches === 'function' && root.matches(DRAGGABLE_SELECTOR)) { draggables.unshift(root); } var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = draggables[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var elem = _step.value; elem.addEventListener('dragstart', createDragStartHandler(root, elem)); elem.addEventListener('dragend', createDragEndHandler(root, elem)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var dropZones = Array.from(root.querySelectorAll(DROP_ZONE_SELECTOR)); if (typeof root.matches === 'function' && root.matches(DROP_ZONE_SELECTOR)) { dropZones.unshift(root); } var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = dropZones[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _elem = _step2.value; _elem.addEventListener('dragover', createDragOverHandler(root, _elem)); _elem.addEventListener('drop', createDropHandler(root, _elem)); _elem.addEventListener('dragleave', createDragLeaveHandler(root, _elem)); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } /** * hasDragDropData determines whether the provided event has previously-set * drag-n-drop data available. * @param {Event} event * @return {Boolean} */ function hasDragDropData(event) { return event.type === 'drop' && event.dataTransfer || event.type === EVENT_DROPPED && event.detail; } /** * extractDragDropData attempts to extract a payload of drag-n-drop data from * the provided event previously set during a `dragstart` event. * @param {Event} event * @return {Object} */ function extractDragDropData(event) { if (event.type === 'drop' && event.dataTransfer) { return JSON.parse(event.dataTransfer.getData(DRAG_DATA_MIME_TYPE)); } else if (event.type === EVENT_DROPPED) { return event.detail; } return {}; } /***/ }), /* 109 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = createFocusTrapInstance; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(38); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ function createFocusTrapInstance(surfaceEl, focusTrapFactory) { if (focusTrapFactory === void 0) { focusTrapFactory = __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a; } return focusTrapFactory(surfaceEl, { clickOutsideDeactivates: true, escapeDeactivates: false, initialFocus: undefined, returnFocusOnDeactivate: false }); } //# sourceMappingURL=util.js.map /***/ }), /* 110 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ANIMATE: 'mdc-drawer--animate', CLOSING: 'mdc-drawer--closing', DISMISSIBLE: 'mdc-drawer--dismissible', MODAL: 'mdc-drawer--modal', OPEN: 'mdc-drawer--open', OPENING: 'mdc-drawer--opening', ROOT: 'mdc-drawer' }; var strings = { APP_CONTENT_SELECTOR: '.mdc-drawer-app-content', CLOSE_EVENT: 'MDCDrawer:closed', OPEN_EVENT: 'MDCDrawer:opened', SCRIM_SELECTOR: '.mdc-drawer-scrim' }; //# sourceMappingURL=constants.js.map /***/ }), /* 111 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCModalDrawerFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__ = __webpack_require__(49); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /* istanbul ignore next: subclass is not a branch statement */ var MDCModalDrawerFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCModalDrawerFoundation, _super); function MDCModalDrawerFoundation() { return _super !== null && _super.apply(this, arguments) || this; } /** * Handles click event on scrim. */ MDCModalDrawerFoundation.prototype.handleScrimClick = function () { this.close(); }; /** * Called when drawer finishes open animation. */ MDCModalDrawerFoundation.prototype.opened_ = function () { this.adapter_.trapFocus(); }; /** * Called when drawer finishes close animation. */ MDCModalDrawerFoundation.prototype.closed_ = function () { this.adapter_.releaseFocus(); }; return MDCModalDrawerFoundation; }(__WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* MDCDismissibleDrawerFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCModalDrawerFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 112 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCFixedTopAppBarFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__standard_foundation__ = __webpack_require__(50); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCFixedTopAppBarFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCFixedTopAppBarFoundation, _super); function MDCFixedTopAppBarFoundation() { var _this = _super !== null && _super.apply(this, arguments) || this; /** * State variable for the previous scroll iteration top app bar state */ _this.wasScrolled_ = false; return _this; } /** * Scroll handler for applying/removing the modifier class on the fixed top app bar. * @override */ MDCFixedTopAppBarFoundation.prototype.handleTargetScroll = function () { var currentScroll = this.adapter_.getViewportScrollY(); if (currentScroll <= 0) { if (this.wasScrolled_) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS); this.wasScrolled_ = false; } } else { if (!this.wasScrolled_) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS); this.wasScrolled_ = true; } } }; return MDCFixedTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_2__standard_foundation__["a" /* MDCTopAppBarFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCFixedTopAppBarFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 113 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCShortTopAppBarFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(51); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCShortTopAppBarFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCShortTopAppBarFoundation, _super); /* istanbul ignore next: optional argument is not a branch statement */ function MDCShortTopAppBarFoundation(adapter) { var _this = _super.call(this, adapter) || this; _this.isCollapsed_ = false; _this.isAlwaysCollapsed_ = false; return _this; } Object.defineProperty(MDCShortTopAppBarFoundation.prototype, "isCollapsed", { // Public visibility for backward compatibility. get: function get() { return this.isCollapsed_; }, enumerable: true, configurable: true }); MDCShortTopAppBarFoundation.prototype.init = function () { _super.prototype.init.call(this); if (this.adapter_.getTotalActionItems() > 0) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SHORT_HAS_ACTION_ITEM_CLASS); } // If initialized with SHORT_COLLAPSED_CLASS, the bar should always be collapsed this.setAlwaysCollapsed(this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS)); }; /** * Set if the short top app bar should always be collapsed. * * @param value When `true`, bar will always be collapsed. When `false`, bar may collapse or expand based on scroll. */ MDCShortTopAppBarFoundation.prototype.setAlwaysCollapsed = function (value) { this.isAlwaysCollapsed_ = !!value; if (this.isAlwaysCollapsed_) { this.collapse_(); } else { // let maybeCollapseBar_ determine if the bar should be collapsed this.maybeCollapseBar_(); } }; MDCShortTopAppBarFoundation.prototype.getAlwaysCollapsed = function () { return this.isAlwaysCollapsed_; }; /** * Scroll handler for applying/removing the collapsed modifier class on the short top app bar. * @override */ MDCShortTopAppBarFoundation.prototype.handleTargetScroll = function () { this.maybeCollapseBar_(); }; MDCShortTopAppBarFoundation.prototype.maybeCollapseBar_ = function () { if (this.isAlwaysCollapsed_) { return; } var currentScroll = this.adapter_.getViewportScrollY(); if (currentScroll <= 0) { if (this.isCollapsed_) { this.uncollapse_(); } } else { if (!this.isCollapsed_) { this.collapse_(); } } }; MDCShortTopAppBarFoundation.prototype.uncollapse_ = function () { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS); this.isCollapsed_ = false; }; MDCShortTopAppBarFoundation.prototype.collapse_ = function () { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS); this.isCollapsed_ = true; }; return MDCShortTopAppBarFoundation; }(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCTopAppBarBaseFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCShortTopAppBarFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 114 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCIconButtonToggleFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(115); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCIconButtonToggleFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCIconButtonToggleFoundation, _super); function MDCIconButtonToggleFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCIconButtonToggleFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCIconButtonToggleFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCIconButtonToggleFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCIconButtonToggleFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, hasClass: function hasClass() { return false; }, notifyChange: function notifyChange() { return undefined; }, removeClass: function removeClass() { return undefined; }, setAttr: function setAttr() { return undefined; } }; }, enumerable: true, configurable: true }); MDCIconButtonToggleFoundation.prototype.init = function () { this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_PRESSED, "" + this.isOn()); }; MDCIconButtonToggleFoundation.prototype.handleClick = function () { this.toggle(); this.adapter_.notifyChange({ isOn: this.isOn() }); }; MDCIconButtonToggleFoundation.prototype.isOn = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON); }; MDCIconButtonToggleFoundation.prototype.toggle = function (isOn) { if (isOn === void 0) { isOn = !this.isOn(); } if (isOn) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON); } this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_PRESSED, "" + isOn); }; return MDCIconButtonToggleFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCIconButtonToggleFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 115 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ICON_BUTTON_ON: 'mdc-icon-button--on', ROOT: 'mdc-icon-button' }; var strings = { ARIA_PRESSED: 'aria-pressed', CHANGE_EVENT: 'MDCIconButtonToggle:change' }; //# sourceMappingURL=constants.js.map /***/ }), /* 116 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(52); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCSelectFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSelectFoundation, _super); /* istanbul ignore next: optional argument is not a branch statement */ /** * @param adapter * @param foundationMap Map from subcomponent names to their subfoundations. */ function MDCSelectFoundation(adapter, foundationMap) { if (foundationMap === void 0) { foundationMap = {}; } var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSelectFoundation.defaultAdapter, adapter)) || this; _this.leadingIcon_ = foundationMap.leadingIcon; _this.helperText_ = foundationMap.helperText; return _this; } Object.defineProperty(MDCSelectFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectFoundation, "defaultAdapter", { /** * See {@link MDCSelectAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, activateBottomLine: function activateBottomLine() { return undefined; }, deactivateBottomLine: function deactivateBottomLine() { return undefined; }, setValue: function setValue() { return undefined; }, getValue: function getValue() { return ''; }, floatLabel: function floatLabel() { return undefined; }, getLabelWidth: function getLabelWidth() { return 0; }, hasOutline: function hasOutline() { return false; }, notchOutline: function notchOutline() { return undefined; }, closeOutline: function closeOutline() { return undefined; }, openMenu: function openMenu() { return undefined; }, closeMenu: function closeMenu() { return undefined; }, isMenuOpen: function isMenuOpen() { return false; }, setSelectedIndex: function setSelectedIndex() { return undefined; }, setDisabled: function setDisabled() { return undefined; }, setRippleCenter: function setRippleCenter() { return undefined; }, notifyChange: function notifyChange() { return undefined; }, checkValidity: function checkValidity() { return false; }, setValid: function setValid() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCSelectFoundation.prototype.setSelectedIndex = function (index) { this.adapter_.setSelectedIndex(index); this.adapter_.closeMenu(); var didChange = true; this.handleChange(didChange); }; MDCSelectFoundation.prototype.setValue = function (value) { this.adapter_.setValue(value); var didChange = true; this.handleChange(didChange); }; MDCSelectFoundation.prototype.getValue = function () { return this.adapter_.getValue(); }; MDCSelectFoundation.prototype.setDisabled = function (isDisabled) { if (isDisabled) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED); } this.adapter_.setDisabled(isDisabled); this.adapter_.closeMenu(); if (this.leadingIcon_) { this.leadingIcon_.setDisabled(isDisabled); } }; /** * @param content Sets the content of the helper text. */ MDCSelectFoundation.prototype.setHelperTextContent = function (content) { if (this.helperText_) { this.helperText_.setContent(content); } }; MDCSelectFoundation.prototype.layout = function () { var openNotch = this.getValue().length > 0; this.notchOutline(openNotch); }; MDCSelectFoundation.prototype.handleMenuOpened = function () { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVATED); }; MDCSelectFoundation.prototype.handleMenuClosed = function () { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVATED); }; /** * Handles value changes, via change event or programmatic updates. */ MDCSelectFoundation.prototype.handleChange = function (didChange) { if (didChange === void 0) { didChange = true; } var value = this.getValue(); var optionHasValue = value.length > 0; var isRequired = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REQUIRED); this.notchOutline(optionHasValue); if (!this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FOCUSED)) { this.adapter_.floatLabel(optionHasValue); } if (didChange) { this.adapter_.notifyChange(value); if (isRequired) { this.setValid(this.isValid()); if (this.helperText_) { this.helperText_.setValidity(this.isValid()); } } } }; /** * Handles focus events from select element. */ MDCSelectFoundation.prototype.handleFocus = function () { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FOCUSED); this.adapter_.floatLabel(true); this.notchOutline(true); this.adapter_.activateBottomLine(); if (this.helperText_) { this.helperText_.showToScreenReader(); } }; /** * Handles blur events from select element. */ MDCSelectFoundation.prototype.handleBlur = function () { if (this.adapter_.isMenuOpen()) { return; } this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FOCUSED); this.handleChange(false); this.adapter_.deactivateBottomLine(); var isRequired = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REQUIRED); if (isRequired) { this.setValid(this.isValid()); if (this.helperText_) { this.helperText_.setValidity(this.isValid()); } } }; MDCSelectFoundation.prototype.handleClick = function (normalizedX) { if (this.adapter_.isMenuOpen()) { return; } this.adapter_.setRippleCenter(normalizedX); this.adapter_.openMenu(); }; MDCSelectFoundation.prototype.handleKeydown = function (event) { if (this.adapter_.isMenuOpen()) { return; } var isEnter = event.key === 'Enter' || event.keyCode === 13; var isSpace = event.key === 'Space' || event.keyCode === 32; var arrowUp = event.key === 'ArrowUp' || event.keyCode === 38; var arrowDown = event.key === 'ArrowDown' || event.keyCode === 40; if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FOCUSED) && (isEnter || isSpace || arrowUp || arrowDown)) { this.adapter_.openMenu(); event.preventDefault(); } }; /** * Opens/closes the notched outline. */ MDCSelectFoundation.prototype.notchOutline = function (openNotch) { if (!this.adapter_.hasOutline()) { return; } var isFocused = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FOCUSED); if (openNotch) { var labelScale = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].LABEL_SCALE; var labelWidth = this.adapter_.getLabelWidth() * labelScale; this.adapter_.notchOutline(labelWidth); } else if (!isFocused) { this.adapter_.closeOutline(); } }; /** * Sets the aria label of the leading icon. */ MDCSelectFoundation.prototype.setLeadingIconAriaLabel = function (label) { if (this.leadingIcon_) { this.leadingIcon_.setAriaLabel(label); } }; /** * Sets the text content of the leading icon. */ MDCSelectFoundation.prototype.setLeadingIconContent = function (content) { if (this.leadingIcon_) { this.leadingIcon_.setContent(content); } }; MDCSelectFoundation.prototype.setValid = function (isValid) { this.adapter_.setValid(isValid); }; MDCSelectFoundation.prototype.isValid = function () { return this.adapter_.checkValidity(); }; return MDCSelectFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSelectFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 117 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectHelperText; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(118); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCSelectHelperText = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSelectHelperText, _super); function MDCSelectHelperText() { return _super !== null && _super.apply(this, arguments) || this; } MDCSelectHelperText.attachTo = function (root) { return new MDCSelectHelperText(root); }; Object.defineProperty(MDCSelectHelperText.prototype, "foundation", { get: function get() { return this.foundation_; }, enumerable: true, configurable: true }); MDCSelectHelperText.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, hasClass: function hasClass(className) { return _this.root_.classList.contains(className); }, setAttr: function setAttr(attr, value) { return _this.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this.root_.textContent = content; } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCSelectHelperTextFoundation */](adapter); }; return MDCSelectHelperText; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 118 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectHelperTextFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(119); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCSelectHelperTextFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSelectHelperTextFoundation, _super); function MDCSelectHelperTextFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSelectHelperTextFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCSelectHelperTextFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectHelperTextFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectHelperTextFoundation, "defaultAdapter", { /** * See {@link MDCSelectHelperTextAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, setAttr: function setAttr() { return undefined; }, removeAttr: function removeAttr() { return undefined; }, setContent: function setContent() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); /** * Sets the content of the helper text field. */ MDCSelectHelperTextFoundation.prototype.setContent = function (content) { this.adapter_.setContent(content); }; /** * Sets the persistency of the helper text. */ MDCSelectHelperTextFoundation.prototype.setPersistent = function (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 isValidation True to make the helper text act as an error validation message. */ MDCSelectHelperTextFoundation.prototype.setValidation = function (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 screen readers. */ MDCSelectHelperTextFoundation.prototype.showToScreenReader = function () { this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN); }; /** * Sets the validity of the helper text based on the select validity. */ MDCSelectHelperTextFoundation.prototype.setValidity = function (selectIsValid) { 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 && !selectIsValid; 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. */ MDCSelectHelperTextFoundation.prototype.hide_ = function () { this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN, 'true'); }; return MDCSelectHelperTextFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSelectHelperTextFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 119 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ARIA_HIDDEN: 'aria-hidden', ROLE: 'role' }; var cssClasses = { HELPER_TEXT_PERSISTENT: 'mdc-select-helper-text--persistent', HELPER_TEXT_VALIDATION_MSG: 'mdc-select-helper-text--validation-msg' }; //# sourceMappingURL=constants.js.map /***/ }), /* 120 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectIcon; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(121); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCSelectIcon = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSelectIcon, _super); function MDCSelectIcon() { return _super !== null && _super.apply(this, arguments) || this; } MDCSelectIcon.attachTo = function (root) { return new MDCSelectIcon(root); }; Object.defineProperty(MDCSelectIcon.prototype, "foundation", { get: function get() { return this.foundation_; }, enumerable: true, configurable: true }); MDCSelectIcon.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. var adapter = { getAttr: function getAttr(attr) { return _this.root_.getAttribute(attr); }, setAttr: function setAttr(attr, value) { return _this.root_.setAttribute(attr, value); }, removeAttr: function removeAttr(attr) { return _this.root_.removeAttribute(attr); }, setContent: function setContent(content) { _this.root_.textContent = content; }, registerInteractionHandler: function registerInteractionHandler(evtType, handler) { return _this.listen(evtType, handler); }, deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) { return _this.unlisten(evtType, handler); }, notifyIconAction: function notifyIconAction() { return _this.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCSelectIconFoundation */].strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */); } }; // tslint:enable:object-literal-sort-keys return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* MDCSelectIconFoundation */](adapter); }; return MDCSelectIcon; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 121 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectIconFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(122); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var INTERACTION_EVENTS = ['click', 'keydown']; var MDCSelectIconFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSelectIconFoundation, _super); function MDCSelectIconFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSelectIconFoundation.defaultAdapter, adapter)) || this; _this.savedTabIndex_ = null; _this.interactionHandler_ = function (evt) { return _this.handleInteraction(evt); }; return _this; } Object.defineProperty(MDCSelectIconFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSelectIconFoundation, "defaultAdapter", { /** * See {@link MDCSelectIconAdapter} for typing information on parameters and return types. */ get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { getAttr: function getAttr() { return null; }, setAttr: function setAttr() { return undefined; }, removeAttr: function removeAttr() { return undefined; }, setContent: function setContent() { return undefined; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, notifyIconAction: function notifyIconAction() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCSelectIconFoundation.prototype.init = function () { var _this = this; this.savedTabIndex_ = this.adapter_.getAttr('tabindex'); INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.registerInteractionHandler(evtType, _this.interactionHandler_); }); }; MDCSelectIconFoundation.prototype.destroy = function () { var _this = this; INTERACTION_EVENTS.forEach(function (evtType) { _this.adapter_.deregisterInteractionHandler(evtType, _this.interactionHandler_); }); }; MDCSelectIconFoundation.prototype.setDisabled = function (disabled) { if (!this.savedTabIndex_) { return; } if (disabled) { this.adapter_.setAttr('tabindex', '-1'); this.adapter_.removeAttr('role'); } else { this.adapter_.setAttr('tabindex', this.savedTabIndex_); this.adapter_.setAttr('role', __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */].ICON_ROLE); } }; MDCSelectIconFoundation.prototype.setAriaLabel = function (label) { this.adapter_.setAttr('aria-label', label); }; MDCSelectIconFoundation.prototype.setContent = function (content) { this.adapter_.setContent(content); }; MDCSelectIconFoundation.prototype.handleInteraction = function (evt) { var isEnterKey = evt.key === 'Enter' || evt.keyCode === 13; if (evt.type === 'click' || isEnterKey) { this.adapter_.notifyIconAction(); } }; return MDCSelectIconFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSelectIconFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 122 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; }); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ICON_EVENT: 'MDCSelect:icon', ICON_ROLE: 'button' }; //# sourceMappingURL=constants.js.map /***/ }), /* 123 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chip_index__ = __webpack_require__(233); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__chip_index__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chip_set_index__ = __webpack_require__(234); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__chip_set_index__["a"]; }); /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ //# sourceMappingURL=index.js.map /***/ }), /* 124 */ /***/ (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_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_component__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_foundation__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(53); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__foundation__ = __webpack_require__(54); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var INTERACTION_EVENTS = ['click', 'keydown']; var MDCChip = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCChip, _super); function MDCChip() { return _super !== null && _super.apply(this, arguments) || this; } Object.defineProperty(MDCChip.prototype, "selected", { /** * @return Whether the chip is selected. */ get: function get() { return this.foundation_.isSelected(); }, /** * Sets selected state on the chip. */ set: function set(selected) { this.foundation_.setSelected(selected); }, enumerable: true, configurable: true }); Object.defineProperty(MDCChip.prototype, "shouldRemoveOnTrailingIconClick", { /** * @return Whether a trailing icon click should trigger exit/removal of the chip. */ get: function get() { return this.foundation_.getShouldRemoveOnTrailingIconClick(); }, /** * Sets whether a trailing icon click should trigger exit/removal of the chip. */ set: function set(shouldRemove) { this.foundation_.setShouldRemoveOnTrailingIconClick(shouldRemove); }, enumerable: true, configurable: true }); Object.defineProperty(MDCChip.prototype, "ripple", { get: function get() { return this.ripple_; }, enumerable: true, configurable: true }); Object.defineProperty(MDCChip.prototype, "id", { get: function get() { return this.root_.id; }, enumerable: true, configurable: true }); MDCChip.attachTo = function (root) { return new MDCChip(root); }; MDCChip.prototype.initialize = function (rippleFactory) { var _this = this; if (rippleFactory === void 0) { rippleFactory = function rippleFactory(el, foundation) { return new __WEBPACK_IMPORTED_MODULE_2__material_ripple_component__["a" /* MDCRipple */](el, foundation); }; } 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); this.checkmark_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKMARK_SELECTOR); // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. var rippleAdapter = __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, __WEBPACK_IMPORTED_MODULE_2__material_ripple_component__["a" /* MDCRipple */].createAdapter(this), { computeBoundingRect: function computeBoundingRect() { return _this.foundation_.getDimensions(); } }); this.ripple_ = rippleFactory(this.root_, new __WEBPACK_IMPORTED_MODULE_3__material_ripple_foundation__["a" /* MDCRippleFoundation */](rippleAdapter)); }; MDCChip.prototype.initialSyncWithDOM = function () { var _this = this; this.handleInteraction_ = function (evt) { return _this.foundation_.handleInteraction(evt); }; this.handleTransitionEnd_ = function (evt) { return _this.foundation_.handleTransitionEnd(evt); }; this.handleTrailingIconInteraction_ = function (evt) { return _this.foundation_.handleTrailingIconInteraction(evt); }; INTERACTION_EVENTS.forEach(function (evtType) { _this.listen(evtType, _this.handleInteraction_); }); this.listen('transitionend', this.handleTransitionEnd_); if (this.trailingIcon_) { INTERACTION_EVENTS.forEach(function (evtType) { _this.trailingIcon_.addEventListener(evtType, _this.handleTrailingIconInteraction_); }); } }; MDCChip.prototype.destroy = function () { var _this = this; this.ripple_.destroy(); INTERACTION_EVENTS.forEach(function (evtType) { _this.unlisten(evtType, _this.handleInteraction_); }); this.unlisten('transitionend', this.handleTransitionEnd_); if (this.trailingIcon_) { INTERACTION_EVENTS.forEach(function (evtType) { _this.trailingIcon_.removeEventListener(evtType, _this.handleTrailingIconInteraction_); }); } _super.prototype.destroy.call(this); }; /** * Begins the exit animation which leads to removal of the chip. */ MDCChip.prototype.beginExit = function () { this.foundation_.beginExit(); }; MDCChip.prototype.getDefaultFoundation = function () { var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial. // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable. var adapter = { addClass: function addClass(className) { return _this.root_.classList.add(className); }, addClassToLeadingIcon: function addClassToLeadingIcon(className) { if (_this.leadingIcon_) { _this.leadingIcon_.classList.add(className); } }, eventTargetHasClass: function eventTargetHasClass(target, className) { return target ? target.classList.contains(className) : false; }, getCheckmarkBoundingClientRect: function getCheckmarkBoundingClientRect() { return _this.checkmark_ ? _this.checkmark_.getBoundingClientRect() : null; }, getComputedStyleValue: function getComputedStyleValue(propertyName) { return window.getComputedStyle(_this.root_).getPropertyValue(propertyName); }, getRootBoundingClientRect: function getRootBoundingClientRect() { return _this.root_.getBoundingClientRect(); }, hasClass: function hasClass(className) { return _this.root_.classList.contains(className); }, hasLeadingIcon: function hasLeadingIcon() { return !!_this.leadingIcon_; }, notifyInteraction: function notifyInteraction() { return _this.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].INTERACTION_EVENT, { chipId: _this.id }, true /* shouldBubble */); }, notifyRemoval: function notifyRemoval() { return _this.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].REMOVAL_EVENT, { chipId: _this.id, root: _this.root_ }, true /* shouldBubble */); }, notifySelection: function notifySelection(selected) { return _this.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].SELECTION_EVENT, { chipId: _this.id, selected: selected }, true /* shouldBubble */); }, notifyTrailingIconInteraction: function notifyTrailingIconInteraction() { return _this.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].TRAILING_ICON_INTERACTION_EVENT, { chipId: _this.id }, true /* shouldBubble */); }, removeClass: function removeClass(className) { return _this.root_.classList.remove(className); }, removeClassFromLeadingIcon: function removeClassFromLeadingIcon(className) { if (_this.leadingIcon_) { _this.leadingIcon_.classList.remove(className); } }, setAttr: function setAttr(attr, value) { return _this.root_.setAttribute(attr, value); }, setStyleProperty: function setStyleProperty(propertyName, value) { return _this.root_.style.setProperty(propertyName, value); } }; return new __WEBPACK_IMPORTED_MODULE_5__foundation__["a" /* MDCChipFoundation */](adapter); }; return MDCChip; }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* MDCComponent */]); //# sourceMappingURL=component.js.map /***/ }), /* 125 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipSetFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(126); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCChipSetFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCChipSetFoundation, _super); function MDCChipSetFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCChipSetFoundation.defaultAdapter, adapter)) || this; /** * The ids of the selected chips in the set. Only used for choice chip set or filter chip set. */ _this.selectedChipIds_ = []; return _this; } Object.defineProperty(MDCChipSetFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCChipSetFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCChipSetFoundation, "defaultAdapter", { get: function get() { return { hasClass: function hasClass() { return false; }, removeChip: function removeChip() { return undefined; }, setSelected: function setSelected() { return undefined; } }; }, enumerable: true, configurable: true }); /** * Returns an array of the IDs of all selected chips. */ MDCChipSetFoundation.prototype.getSelectedChipIds = function () { return this.selectedChipIds_.slice(); }; /** * Selects the chip with the given id. Deselects all other chips if the chip set is of the choice variant. */ MDCChipSetFoundation.prototype.select = function (chipId) { if (this.selectedChipIds_.indexOf(chipId) >= 0) { return; } if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHOICE) && this.selectedChipIds_.length > 0) { var previouslySelectedChip = this.selectedChipIds_[0]; this.selectedChipIds_.length = 0; this.adapter_.setSelected(previouslySelectedChip, false); } this.selectedChipIds_.push(chipId); this.adapter_.setSelected(chipId, true); }; /** * Handles a chip interaction event */ MDCChipSetFoundation.prototype.handleChipInteraction = function (chipId) { if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHOICE) || this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].FILTER)) { this.toggleSelect_(chipId); } }; /** * Handles a chip selection event, used to handle discrepancy when selection state is set directly on the Chip. */ MDCChipSetFoundation.prototype.handleChipSelection = function (chipId, selected) { var chipIsSelected = this.selectedChipIds_.indexOf(chipId) >= 0; if (selected && !chipIsSelected) { this.select(chipId); } else if (!selected && chipIsSelected) { this.deselect_(chipId); } }; /** * Handles the event when a chip is removed. */ MDCChipSetFoundation.prototype.handleChipRemoval = function (chipId) { this.deselect_(chipId); this.adapter_.removeChip(chipId); }; /** * Deselects the chip with the given id. */ MDCChipSetFoundation.prototype.deselect_ = function (chipId) { var index = this.selectedChipIds_.indexOf(chipId); if (index >= 0) { this.selectedChipIds_.splice(index, 1); this.adapter_.setSelected(chipId, false); } }; /** * Toggles selection of the chip with the given id. */ MDCChipSetFoundation.prototype.toggleSelect_ = function (chipId) { if (this.selectedChipIds_.indexOf(chipId) >= 0) { this.deselect_(chipId); } else { this.select(chipId); } }; return MDCChipSetFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipSetFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 126 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { CHIP_SELECTOR: '.mdc-chip' }; var cssClasses = { CHOICE: 'mdc-chip-set--choice', FILTER: 'mdc-chip-set--filter' }; //# sourceMappingURL=constants.js.map /***/ }), /* 127 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return announce; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(28); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var ARIA_LIVE_DELAY_MS = __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].ARIA_LIVE_DELAY_MS; var ARIA_LIVE_LABEL_TEXT_ATTR = __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_LIVE_LABEL_TEXT_ATTR; function announce(ariaEl, labelEl) { if (labelEl === void 0) { labelEl = ariaEl; } var priority = ariaEl.getAttribute('aria-live'); // Trim text to ignore ` ` (see below). // textContent is only null if the node is a document, DOCTYPE, or notation. var labelText = labelEl.textContent.trim(); if (!labelText || !priority) { return; } // Temporarily disable `aria-live` to prevent JAWS+Firefox from announcing the message twice. ariaEl.setAttribute('aria-live', 'off'); // Temporarily clear `textContent` to force a DOM mutation event that will be detected by screen readers. // `aria-live` elements are only announced when the element's `textContent` *changes*, so snackbars // sent to the browser in the initial HTML response won't be read unless we clear the element's `textContent` first. // Similarly, displaying the same snackbar message twice in a row doesn't trigger a DOM mutation event, // so screen readers won't announce the second message unless we first clear `textContent`. // // We have to clear the label text two different ways to make it work in all browsers and screen readers: // // 1. `textContent = ''` is required for IE11 + JAWS // 2. `innerHTML = ' '` is required for Chrome + JAWS and NVDA // // All other browser/screen reader combinations support both methods. // // The wrapper `` visually hides the space character so that it doesn't cause jank when added/removed. // N.B.: Setting `position: absolute`, `opacity: 0`, or `height: 0` prevents Chrome from detecting the DOM change. // // This technique has been tested in: // // * JAWS 2019: // - Chrome 70 // - Firefox 60 (ESR) // - IE 11 // * NVDA 2018: // - Chrome 70 // - Firefox 60 (ESR) // - IE 11 // * ChromeVox 53 labelEl.textContent = ''; labelEl.innerHTML = ' '; // Prevent visual jank by temporarily displaying the label text in the ::before pseudo-element. // CSS generated content is normally announced by screen readers // (except in IE 11; see https://tink.uk/accessibility-support-for-css-generated-content/); // however, `aria-live` is turned off, so this DOM update will be ignored by screen readers. labelEl.setAttribute(ARIA_LIVE_LABEL_TEXT_ATTR, labelText); setTimeout(function () { // Allow screen readers to announce changes to the DOM again. ariaEl.setAttribute('aria-live', priority); // Remove the message from the ::before pseudo-element. labelEl.removeAttribute(ARIA_LIVE_LABEL_TEXT_ATTR); // Restore the original label text, which will be announced by screen readers. labelEl.textContent = labelText; }, ARIA_LIVE_DELAY_MS); } //# sourceMappingURL=util.js.map /***/ }), /* 128 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSnackbarFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(28); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var OPENING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING, OPEN = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN, CLOSING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING; var REASON_ACTION = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].REASON_ACTION, REASON_DISMISS = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].REASON_DISMISS; var MDCSnackbarFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSnackbarFoundation, _super); function MDCSnackbarFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSnackbarFoundation.defaultAdapter, adapter)) || this; _this.isOpen_ = false; _this.animationFrame_ = 0; _this.animationTimer_ = 0; _this.autoDismissTimer_ = 0; _this.autoDismissTimeoutMs_ = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DEFAULT_AUTO_DISMISS_TIMEOUT_MS; _this.closeOnEscape_ = true; return _this; } Object.defineProperty(MDCSnackbarFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSnackbarFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSnackbarFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSnackbarFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, announce: function announce() { return undefined; }, notifyClosed: function notifyClosed() { return undefined; }, notifyClosing: function notifyClosing() { return undefined; }, notifyOpened: function notifyOpened() { return undefined; }, notifyOpening: function notifyOpening() { return undefined; }, removeClass: function removeClass() { return undefined; } }; }, enumerable: true, configurable: true }); MDCSnackbarFoundation.prototype.destroy = function () { this.clearAutoDismissTimer_(); cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = 0; clearTimeout(this.animationTimer_); this.animationTimer_ = 0; this.adapter_.removeClass(OPENING); this.adapter_.removeClass(OPEN); this.adapter_.removeClass(CLOSING); }; MDCSnackbarFoundation.prototype.open = function () { var _this = this; this.clearAutoDismissTimer_(); this.isOpen_ = true; this.adapter_.notifyOpening(); this.adapter_.removeClass(CLOSING); this.adapter_.addClass(OPENING); this.adapter_.announce(); // Wait a frame once display is no longer "none", to establish basis for animation this.runNextAnimationFrame_(function () { _this.adapter_.addClass(OPEN); _this.animationTimer_ = setTimeout(function () { _this.handleAnimationTimerEnd_(); _this.adapter_.notifyOpened(); _this.autoDismissTimer_ = setTimeout(function () { _this.close(REASON_DISMISS); }, _this.getTimeoutMs()); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].SNACKBAR_ANIMATION_OPEN_TIME_MS); }); }; /** * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom * client-specific values may also be used if desired. */ MDCSnackbarFoundation.prototype.close = function (reason) { var _this = this; if (reason === void 0) { reason = ''; } if (!this.isOpen_) { // Avoid redundant close calls (and events), e.g. repeated interactions as the snackbar is animating closed return; } cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = 0; this.clearAutoDismissTimer_(); this.isOpen_ = false; this.adapter_.notifyClosing(reason); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING); clearTimeout(this.animationTimer_); this.animationTimer_ = setTimeout(function () { _this.handleAnimationTimerEnd_(); _this.adapter_.notifyClosed(reason); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].SNACKBAR_ANIMATION_CLOSE_TIME_MS); }; MDCSnackbarFoundation.prototype.isOpen = function () { return this.isOpen_; }; MDCSnackbarFoundation.prototype.getTimeoutMs = function () { return this.autoDismissTimeoutMs_; }; MDCSnackbarFoundation.prototype.setTimeoutMs = function (timeoutMs) { // Use shorter variable names to make the code more readable var minValue = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].MIN_AUTO_DISMISS_TIMEOUT_MS; var maxValue = __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].MAX_AUTO_DISMISS_TIMEOUT_MS; if (timeoutMs <= maxValue && timeoutMs >= minValue) { this.autoDismissTimeoutMs_ = timeoutMs; } else { throw new Error("timeoutMs must be an integer in the range " + minValue + '\u2013' + maxValue + ", but got '" + timeoutMs + "'"); } }; MDCSnackbarFoundation.prototype.getCloseOnEscape = function () { return this.closeOnEscape_; }; MDCSnackbarFoundation.prototype.setCloseOnEscape = function (closeOnEscape) { this.closeOnEscape_ = closeOnEscape; }; MDCSnackbarFoundation.prototype.handleKeyDown = function (evt) { var isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27; if (isEscapeKey && this.getCloseOnEscape()) { this.close(REASON_DISMISS); } }; MDCSnackbarFoundation.prototype.handleActionButtonClick = function (_evt) { this.close(REASON_ACTION); }; MDCSnackbarFoundation.prototype.handleActionIconClick = function (_evt) { this.close(REASON_DISMISS); }; MDCSnackbarFoundation.prototype.clearAutoDismissTimer_ = function () { clearTimeout(this.autoDismissTimer_); this.autoDismissTimer_ = 0; }; MDCSnackbarFoundation.prototype.handleAnimationTimerEnd_ = function () { this.animationTimer_ = 0; this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING); this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING); }; /** * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior. */ MDCSnackbarFoundation.prototype.runNextAnimationFrame_ = function (callback) { var _this = this; cancelAnimationFrame(this.animationFrame_); this.animationFrame_ = requestAnimationFrame(function () { _this.animationFrame_ = 0; clearTimeout(_this.animationTimer_); _this.animationTimer_ = setTimeout(callback, 0); }); }; return MDCSnackbarFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSnackbarFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 129 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCCheckboxFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(130); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCCheckboxFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCCheckboxFoundation, _super); function MDCCheckboxFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCCheckboxFoundation.defaultAdapter, adapter)) || this; _this.currentCheckState_ = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_INIT; _this.currentAnimationClass_ = ''; _this.animEndLatchTimer_ = 0; _this.enableAnimationEndHandler_ = false; return _this; } Object.defineProperty(MDCCheckboxFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCCheckboxFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCCheckboxFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCCheckboxFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, forceLayout: function forceLayout() { return undefined; }, hasNativeControl: function hasNativeControl() { return false; }, isAttachedToDOM: function isAttachedToDOM() { return false; }, isChecked: function isChecked() { return false; }, isIndeterminate: function isIndeterminate() { return false; }, removeClass: function removeClass() { return undefined; }, removeNativeControlAttr: function removeNativeControlAttr() { return undefined; }, setNativeControlAttr: function setNativeControlAttr() { return undefined; }, setNativeControlDisabled: function setNativeControlDisabled() { return undefined; } }; }, enumerable: true, configurable: true }); MDCCheckboxFoundation.prototype.init = function () { this.currentCheckState_ = this.determineCheckState_(); this.updateAriaChecked_(); this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].UPGRADED); }; MDCCheckboxFoundation.prototype.destroy = function () { clearTimeout(this.animEndLatchTimer_); }; MDCCheckboxFoundation.prototype.setDisabled = function (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 animationend event for the checkbox */ MDCCheckboxFoundation.prototype.handleAnimationEnd = function () { var _this = this; if (!this.enableAnimationEndHandler_) { return; } clearTimeout(this.animEndLatchTimer_); this.animEndLatchTimer_ = setTimeout(function () { _this.adapter_.removeClass(_this.currentAnimationClass_); _this.enableAnimationEndHandler_ = false; }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].ANIM_END_LATCH_MS); }; /** * Handles the change event for the checkbox */ MDCCheckboxFoundation.prototype.handleChange = function () { this.transitionCheckState_(); }; MDCCheckboxFoundation.prototype.transitionCheckState_ = function () { if (!this.adapter_.hasNativeControl()) { return; } var oldState = this.currentCheckState_; var newState = this.determineCheckState_(); if (oldState === newState) { return; } this.updateAriaChecked_(); var TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED; var SELECTED = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED; if (newState === TRANSITION_STATE_UNCHECKED) { this.adapter_.removeClass(SELECTED); } else { this.adapter_.addClass(SELECTED); } // 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.enableAnimationEndHandler_ = true; } }; MDCCheckboxFoundation.prototype.determineCheckState_ = function () { var TRANSITION_STATE_INDETERMINATE = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_INDETERMINATE, TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED; if (this.adapter_.isIndeterminate()) { return TRANSITION_STATE_INDETERMINATE; } return this.adapter_.isChecked() ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED; }; MDCCheckboxFoundation.prototype.getTransitionAnimationClass_ = function (oldState, newState) { var TRANSITION_STATE_INIT = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_INIT, TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_CHECKED, TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED; var _a = MDCCheckboxFoundation.cssClasses, ANIM_UNCHECKED_CHECKED = _a.ANIM_UNCHECKED_CHECKED, ANIM_UNCHECKED_INDETERMINATE = _a.ANIM_UNCHECKED_INDETERMINATE, ANIM_CHECKED_UNCHECKED = _a.ANIM_CHECKED_UNCHECKED, ANIM_CHECKED_INDETERMINATE = _a.ANIM_CHECKED_INDETERMINATE, ANIM_INDETERMINATE_CHECKED = _a.ANIM_INDETERMINATE_CHECKED, ANIM_INDETERMINATE_UNCHECKED = _a.ANIM_INDETERMINATE_UNCHECKED; switch (oldState) { case TRANSITION_STATE_INIT: if (newState === TRANSITION_STATE_UNCHECKED) { return ''; } return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED; 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; default: // TRANSITION_STATE_INDETERMINATE return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED; } }; MDCCheckboxFoundation.prototype.updateAriaChecked_ = function () { // Ensure aria-checked is set to mixed if checkbox is in indeterminate state. if (this.adapter_.isIndeterminate()) { this.adapter_.setNativeControlAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED_ATTR, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED_INDETERMINATE_VALUE); } else { // The on/off state does not need to keep track of aria-checked, since // the screenreader uses the checked property on the checkbox element. this.adapter_.removeNativeControlAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_CHECKED_ATTR); } }; return MDCCheckboxFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCCheckboxFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 130 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate', ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked', ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked', ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked', ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked', ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate', BACKGROUND: 'mdc-checkbox__background', CHECKED: 'mdc-checkbox--checked', CHECKMARK: 'mdc-checkbox__checkmark', CHECKMARK_PATH: 'mdc-checkbox__checkmark-path', DISABLED: 'mdc-checkbox--disabled', INDETERMINATE: 'mdc-checkbox--indeterminate', MIXEDMARK: 'mdc-checkbox__mixedmark', NATIVE_CONTROL: 'mdc-checkbox__native-control', ROOT: 'mdc-checkbox', SELECTED: 'mdc-checkbox--selected', UPGRADED: 'mdc-checkbox--upgraded' }; var strings = { ARIA_CHECKED_ATTR: 'aria-checked', ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed', NATIVE_CONTROL_SELECTOR: '.mdc-checkbox__native-control', TRANSITION_STATE_CHECKED: 'checked', TRANSITION_STATE_INDETERMINATE: 'indeterminate', TRANSITION_STATE_INIT: 'init', TRANSITION_STATE_UNCHECKED: 'unchecked' }; var numbers = { ANIM_END_LATCH_MS: 250 }; //# sourceMappingURL=constants.js.map /***/ }), /* 131 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSwitchFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(132); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCSwitchFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSwitchFoundation, _super); function MDCSwitchFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSwitchFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCSwitchFoundation, "strings", { /** The string constants used by the switch. */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSwitchFoundation, "cssClasses", { /** The CSS classes used by the switch. */ get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSwitchFoundation, "defaultAdapter", { /** The default Adapter for the switch. */ get: function get() { return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, setNativeControlChecked: function setNativeControlChecked() { return undefined; }, setNativeControlDisabled: function setNativeControlDisabled() { return undefined; } }; }, enumerable: true, configurable: true }); /** Sets the checked state of the switch. */ MDCSwitchFoundation.prototype.setChecked = function (checked) { this.adapter_.setNativeControlChecked(checked); this.updateCheckedStyling_(checked); }; /** Sets the disabled state of the switch. */ MDCSwitchFoundation.prototype.setDisabled = function (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. */ MDCSwitchFoundation.prototype.handleChange = function (evt) { var nativeControl = evt.target; this.updateCheckedStyling_(nativeControl.checked); }; /** Updates the styling of the switch based on its checked state. */ MDCSwitchFoundation.prototype.updateCheckedStyling_ = function (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_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSwitchFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 132 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** CSS classes used by the switch. */ var cssClasses = { /** Class used for a switch that is in the "checked" (on) position. */ CHECKED: 'mdc-switch--checked', /** Class used for a switch that is disabled. */ DISABLED: 'mdc-switch--disabled' }; /** String constants used by the switch. */ var strings = { /** A CSS selector used to locate the native HTML control for the switch. */ NATIVE_CONTROL_SELECTOR: '.mdc-switch__native-control', /** A CSS selector used to locate the ripple surface element for the switch. */ RIPPLE_SURFACE_SELECTOR: '.mdc-switch__thumb-underlay' }; //# sourceMappingURL=constants.js.map /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer, module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! * Quill Editor v1.3.7 * https://quilljs.com/ * Copyright (c) 2014, Jason Chen * Copyright (c) 2013, salesforce.com */ (function webpackUniversalModuleDefinition(root, factory) { if (( false ? 'undefined' : _typeof2(exports)) === 'object' && ( false ? 'undefined' : _typeof2(module)) === 'object') module.exports = factory();else if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else if ((typeof exports === 'undefined' ? 'undefined' : _typeof2(exports)) === 'object') exports["Quill"] = factory();else root["Quill"] = factory(); })(typeof self !== 'undefined' ? self : 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 = 109); /******/ }( /************************************************************************/ /******/[ /* 0 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var container_1 = __webpack_require__(17); var format_1 = __webpack_require__(18); var leaf_1 = __webpack_require__(19); var scroll_1 = __webpack_require__(45); var inline_1 = __webpack_require__(46); var block_1 = __webpack_require__(47); var embed_1 = __webpack_require__(48); var text_1 = __webpack_require__(49); var attributor_1 = __webpack_require__(12); var class_1 = __webpack_require__(32); var style_1 = __webpack_require__(33); var store_1 = __webpack_require__(31); var Registry = __webpack_require__(1); var Parchment = { Scope: Registry.Scope, create: Registry.create, find: Registry.find, query: Registry.query, register: Registry.register, Container: container_1.default, Format: format_1.default, Leaf: leaf_1.default, Embed: embed_1.default, Scroll: scroll_1.default, Block: block_1.default, Inline: inline_1.default, Text: text_1.default, Attributor: { Attribute: attributor_1.default, Class: class_1.default, Style: style_1.default, Store: store_1.default } }; exports.default = Parchment; /***/ }, /* 1 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var ParchmentError = /** @class */function (_super) { __extends(ParchmentError, _super); function ParchmentError(message) { var _this = this; message = '[Parchment] ' + message; _this = _super.call(this, message) || this; _this.message = message; _this.name = _this.constructor.name; return _this; } return ParchmentError; }(Error); exports.ParchmentError = ParchmentError; var attributes = {}; var classes = {}; var tags = {}; var types = {}; exports.DATA_KEY = '__blot'; var Scope; (function (Scope) { Scope[Scope["TYPE"] = 3] = "TYPE"; Scope[Scope["LEVEL"] = 12] = "LEVEL"; Scope[Scope["ATTRIBUTE"] = 13] = "ATTRIBUTE"; Scope[Scope["BLOT"] = 14] = "BLOT"; Scope[Scope["INLINE"] = 7] = "INLINE"; Scope[Scope["BLOCK"] = 11] = "BLOCK"; Scope[Scope["BLOCK_BLOT"] = 10] = "BLOCK_BLOT"; Scope[Scope["INLINE_BLOT"] = 6] = "INLINE_BLOT"; Scope[Scope["BLOCK_ATTRIBUTE"] = 9] = "BLOCK_ATTRIBUTE"; Scope[Scope["INLINE_ATTRIBUTE"] = 5] = "INLINE_ATTRIBUTE"; Scope[Scope["ANY"] = 15] = "ANY"; })(Scope = exports.Scope || (exports.Scope = {})); function create(input, value) { var match = query(input); if (match == null) { throw new ParchmentError("Unable to create " + input + " blot"); } var BlotClass = match; var node = // @ts-ignore input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value); return new BlotClass(node, value); } exports.create = create; function find(node, bubble) { if (bubble === void 0) { bubble = false; } if (node == null) return null; // @ts-ignore if (node[exports.DATA_KEY] != null) return node[exports.DATA_KEY].blot; if (bubble) return find(node.parentNode, bubble); return null; } exports.find = find; function query(query, scope) { if (scope === void 0) { scope = Scope.ANY; } var match; if (typeof query === 'string') { match = types[query] || attributes[query]; // @ts-ignore } else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) { match = types['text']; } else if (typeof query === 'number') { if (query & Scope.LEVEL & Scope.BLOCK) { match = types['block']; } else if (query & Scope.LEVEL & Scope.INLINE) { match = types['inline']; } } else if (query instanceof HTMLElement) { var names = (query.getAttribute('class') || '').split(/\s+/); for (var i in names) { match = classes[names[i]]; if (match) break; } match = match || tags[query.tagName]; } if (match == null) return null; // @ts-ignore if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope) return match; return null; } exports.query = query; function register() { var Definitions = []; for (var _i = 0; _i < arguments.length; _i++) { Definitions[_i] = arguments[_i]; } if (Definitions.length > 1) { return Definitions.map(function (d) { return register(d); }); } var Definition = Definitions[0]; if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') { throw new ParchmentError('Invalid definition'); } else if (Definition.blotName === 'abstract') { throw new ParchmentError('Cannot register abstract class'); } types[Definition.blotName || Definition.attrName] = Definition; if (typeof Definition.keyName === 'string') { attributes[Definition.keyName] = Definition; } else { if (Definition.className != null) { classes[Definition.className] = Definition; } if (Definition.tagName != null) { if (Array.isArray(Definition.tagName)) { Definition.tagName = Definition.tagName.map(function (tagName) { return tagName.toUpperCase(); }); } else { Definition.tagName = Definition.tagName.toUpperCase(); } var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName]; tagNames.forEach(function (tag) { if (tags[tag] == null || Definition.className == null) { tags[tag] = Definition; } }); } } return Definition; } exports.register = register; /***/ }, /* 2 */ /***/function (module, exports, __webpack_require__) { var diff = __webpack_require__(51); var equal = __webpack_require__(11); var extend = __webpack_require__(3); var op = __webpack_require__(20); var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff() var Delta = function Delta(ops) { // Assume we are given a well formed ops if (Array.isArray(ops)) { this.ops = ops; } else if (ops != null && Array.isArray(ops.ops)) { this.ops = ops.ops; } else { this.ops = []; } }; Delta.prototype.insert = function (text, attributes) { var newOp = {}; if (text.length === 0) return this; newOp.insert = text; if (attributes != null && (typeof attributes === 'undefined' ? 'undefined' : _typeof2(attributes)) === 'object' && Object.keys(attributes).length > 0) { newOp.attributes = attributes; } return this.push(newOp); }; Delta.prototype['delete'] = function (length) { if (length <= 0) return this; return this.push({ 'delete': length }); }; Delta.prototype.retain = function (length, attributes) { if (length <= 0) return this; var newOp = { retain: length }; if (attributes != null && (typeof attributes === 'undefined' ? 'undefined' : _typeof2(attributes)) === 'object' && Object.keys(attributes).length > 0) { newOp.attributes = attributes; } return this.push(newOp); }; Delta.prototype.push = function (newOp) { var index = this.ops.length; var lastOp = this.ops[index - 1]; newOp = extend(true, {}, newOp); if ((typeof lastOp === 'undefined' ? 'undefined' : _typeof2(lastOp)) === 'object') { if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') { this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] }; return this; } // Since it does not matter if we insert before or after deleting at the same index, // always prefer to insert first if (typeof lastOp['delete'] === 'number' && newOp.insert != null) { index -= 1; lastOp = this.ops[index - 1]; if ((typeof lastOp === 'undefined' ? 'undefined' : _typeof2(lastOp)) !== 'object') { this.ops.unshift(newOp); return this; } } if (equal(newOp.attributes, lastOp.attributes)) { if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') { this.ops[index - 1] = { insert: lastOp.insert + newOp.insert }; if (_typeof2(newOp.attributes) === 'object') this.ops[index - 1].attributes = newOp.attributes; return this; } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') { this.ops[index - 1] = { retain: lastOp.retain + newOp.retain }; if (_typeof2(newOp.attributes) === 'object') this.ops[index - 1].attributes = newOp.attributes; return this; } } } if (index === this.ops.length) { this.ops.push(newOp); } else { this.ops.splice(index, 0, newOp); } return this; }; Delta.prototype.chop = function () { var lastOp = this.ops[this.ops.length - 1]; if (lastOp && lastOp.retain && !lastOp.attributes) { this.ops.pop(); } return this; }; Delta.prototype.filter = function (predicate) { return this.ops.filter(predicate); }; Delta.prototype.forEach = function (predicate) { this.ops.forEach(predicate); }; Delta.prototype.map = function (predicate) { return this.ops.map(predicate); }; Delta.prototype.partition = function (predicate) { var passed = [], failed = []; this.forEach(function (op) { var target = predicate(op) ? passed : failed; target.push(op); }); return [passed, failed]; }; Delta.prototype.reduce = function (predicate, initial) { return this.ops.reduce(predicate, initial); }; Delta.prototype.changeLength = function () { return this.reduce(function (length, elem) { if (elem.insert) { return length + op.length(elem); } else if (elem.delete) { return length - elem.delete; } return length; }, 0); }; Delta.prototype.length = function () { return this.reduce(function (length, elem) { return length + op.length(elem); }, 0); }; Delta.prototype.slice = function (start, end) { start = start || 0; if (typeof end !== 'number') end = Infinity; var ops = []; var iter = op.iterator(this.ops); var index = 0; while (index < end && iter.hasNext()) { var nextOp; if (index < start) { nextOp = iter.next(start - index); } else { nextOp = iter.next(end - index); ops.push(nextOp); } index += op.length(nextOp); } return new Delta(ops); }; Delta.prototype.compose = function (other) { var thisIter = op.iterator(this.ops); var otherIter = op.iterator(other.ops); var ops = []; var firstOther = otherIter.peek(); if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) { var firstLeft = firstOther.retain; while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) { firstLeft -= thisIter.peekLength(); ops.push(thisIter.next()); } if (firstOther.retain - firstLeft > 0) { otherIter.next(firstOther.retain - firstLeft); } } var delta = new Delta(ops); while (thisIter.hasNext() || otherIter.hasNext()) { if (otherIter.peekType() === 'insert') { delta.push(otherIter.next()); } else if (thisIter.peekType() === 'delete') { delta.push(thisIter.next()); } else { var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); var thisOp = thisIter.next(length); var otherOp = otherIter.next(length); if (typeof otherOp.retain === 'number') { var newOp = {}; if (typeof thisOp.retain === 'number') { newOp.retain = length; } else { newOp.insert = thisOp.insert; } // Preserve null when composing with a retain, otherwise remove it for inserts var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number'); if (attributes) newOp.attributes = attributes; delta.push(newOp); // Optimization if rest of other is just retain if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) { var rest = new Delta(thisIter.rest()); return delta.concat(rest).chop(); } // Other op should be delete, we could be an insert or retain // Insert + delete cancels out } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') { delta.push(otherOp); } } } return delta.chop(); }; Delta.prototype.concat = function (other) { var delta = new Delta(this.ops.slice()); if (other.ops.length > 0) { delta.push(other.ops[0]); delta.ops = delta.ops.concat(other.ops.slice(1)); } return delta; }; Delta.prototype.diff = function (other, index) { if (this.ops === other.ops) { return new Delta(); } var strings = [this, other].map(function (delta) { return delta.map(function (op) { if (op.insert != null) { return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER; } var prep = delta === other ? 'on' : 'with'; throw new Error('diff() called ' + prep + ' non-document'); }).join(''); }); var delta = new Delta(); var diffResult = diff(strings[0], strings[1], index); var thisIter = op.iterator(this.ops); var otherIter = op.iterator(other.ops); diffResult.forEach(function (component) { var length = component[1].length; while (length > 0) { var opLength = 0; switch (component[0]) { case diff.INSERT: opLength = Math.min(otherIter.peekLength(), length); delta.push(otherIter.next(opLength)); break; case diff.DELETE: opLength = Math.min(length, thisIter.peekLength()); thisIter.next(opLength); delta['delete'](opLength); break; case diff.EQUAL: opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length); var thisOp = thisIter.next(opLength); var otherOp = otherIter.next(opLength); if (equal(thisOp.insert, otherOp.insert)) { delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes)); } else { delta.push(otherOp)['delete'](opLength); } break; } length -= opLength; } }); return delta.chop(); }; Delta.prototype.eachLine = function (predicate, newline) { newline = newline || '\n'; var iter = op.iterator(this.ops); var line = new Delta(); var i = 0; while (iter.hasNext()) { if (iter.peekType() !== 'insert') return; var thisOp = iter.peek(); var start = op.length(thisOp) - iter.peekLength(); var index = typeof thisOp.insert === 'string' ? thisOp.insert.indexOf(newline, start) - start : -1; if (index < 0) { line.push(iter.next()); } else if (index > 0) { line.push(iter.next(index)); } else { if (predicate(line, iter.next(1).attributes || {}, i) === false) { return; } i += 1; line = new Delta(); } } if (line.length() > 0) { predicate(line, {}, i); } }; Delta.prototype.transform = function (other, priority) { priority = !!priority; if (typeof other === 'number') { return this.transformPosition(other, priority); } var thisIter = op.iterator(this.ops); var otherIter = op.iterator(other.ops); var delta = new Delta(); while (thisIter.hasNext() || otherIter.hasNext()) { if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) { delta.retain(op.length(thisIter.next())); } else if (otherIter.peekType() === 'insert') { delta.push(otherIter.next()); } else { var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); var thisOp = thisIter.next(length); var otherOp = otherIter.next(length); if (thisOp['delete']) { // Our delete either makes their delete redundant or removes their retain continue; } else if (otherOp['delete']) { delta.push(otherOp); } else { // We retain either their retain or insert delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority)); } } } return delta.chop(); }; Delta.prototype.transformPosition = function (index, priority) { priority = !!priority; var thisIter = op.iterator(this.ops); var offset = 0; while (thisIter.hasNext() && offset <= index) { var length = thisIter.peekLength(); var nextType = thisIter.peekType(); thisIter.next(); if (nextType === 'delete') { index -= Math.min(length, index - offset); continue; } else if (nextType === 'insert' && (offset < index || !priority)) { index += length; } offset += length; } return index; }; module.exports = Delta; /***/ }, /* 3 */ /***/function (module, exports) { 'use strict'; var hasOwn = Object.prototype.hasOwnProperty; var toStr = Object.prototype.toString; var defineProperty = Object.defineProperty; var gOPD = Object.getOwnPropertyDescriptor; var isArray = function isArray(arr) { if (typeof Array.isArray === 'function') { return Array.isArray(arr); } return toStr.call(arr) === '[object Array]'; }; var isPlainObject = function isPlainObject(obj) { if (!obj || toStr.call(obj) !== '[object Object]') { return false; } var hasOwnConstructor = hasOwn.call(obj, 'constructor'); var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for (key in obj) {/**/} return typeof key === 'undefined' || hasOwn.call(obj, key); }; // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target var setProperty = function setProperty(target, options) { if (defineProperty && options.name === '__proto__') { defineProperty(target, options.name, { enumerable: true, configurable: true, value: options.newValue, writable: true }); } else { target[options.name] = options.newValue; } }; // Return undefined instead of __proto__ if '__proto__' is not an own property var getProperty = function getProperty(obj, name) { if (name === '__proto__') { if (!hasOwn.call(obj, name)) { return void 0; } else if (gOPD) { // In early versions of node, obj['__proto__'] is buggy when obj has // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. return gOPD(obj, name).value; } } return obj[name]; }; module.exports = function extend() { var options, name, src, copy, copyIsArray, clone; var target = arguments[0]; var i = 1; var length = arguments.length; var deep = false; // Handle a deep copy situation if (typeof target === 'boolean') { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } if (target == null || (typeof target === 'undefined' ? 'undefined' : _typeof2(target)) !== 'object' && typeof target !== 'function') { target = {}; } for (; i < length; ++i) { options = arguments[i]; // Only deal with non-null/undefined values if (options != null) { // Extend the base object for (name in options) { src = getProperty(target, name); copy = getProperty(options, name); // Prevent never-ending loop if (target !== copy) { // Recurse if we're merging plain objects or arrays if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { if (copyIsArray) { copyIsArray = false; clone = src && isArray(src) ? src : []; } else { clone = src && isPlainObject(src) ? src : {}; } // Never move original objects, clone them setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); // Don't bring in undefined values } else if (typeof copy !== 'undefined') { setProperty(target, { name: name, newValue: copy }); } } } } } // Return the modified object return target; }; /***/ }, /* 4 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.BlockEmbed = exports.bubbleFormats = undefined; 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); } }; var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _break = __webpack_require__(16); var _break2 = _interopRequireDefault(_break); var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var NEWLINE_LENGTH = 1; var BlockEmbed = function (_Parchment$Embed) { _inherits(BlockEmbed, _Parchment$Embed); function BlockEmbed() { _classCallCheck(this, BlockEmbed); return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments)); } _createClass(BlockEmbed, [{ key: 'attach', value: function attach() { _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this); this.attributes = new _parchment2.default.Attributor.Store(this.domNode); } }, { key: 'delta', value: function delta() { return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values())); } }, { key: 'format', value: function format(name, value) { var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE); if (attribute != null) { this.attributes.attribute(attribute, value); } } }, { key: 'formatAt', value: function formatAt(index, length, name, value) { this.format(name, value); } }, { key: 'insertAt', value: function insertAt(index, value, def) { if (typeof value === 'string' && value.endsWith('\n')) { var block = _parchment2.default.create(Block.blotName); this.parent.insertBefore(block, index === 0 ? this : this.next); block.insertAt(0, value.slice(0, -1)); } else { _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def); } } }]); return BlockEmbed; }(_parchment2.default.Embed); BlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements var Block = function (_Parchment$Block) { _inherits(Block, _Parchment$Block); function Block(domNode) { _classCallCheck(this, Block); var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode)); _this2.cache = {}; return _this2; } _createClass(Block, [{ key: 'delta', value: function delta() { if (this.cache.delta == null) { this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) { if (leaf.length() === 0) { return delta; } else { return delta.insert(leaf.value(), bubbleFormats(leaf)); } }, new _quillDelta2.default()).insert('\n', bubbleFormats(this)); } return this.cache.delta; } }, { key: 'deleteAt', value: function deleteAt(index, length) { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length); this.cache = {}; } }, { key: 'formatAt', value: function formatAt(index, length, name, value) { if (length <= 0) return; if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { if (index + length === this.length()) { this.format(name, value); } } else { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value); } this.cache = {}; } }, { key: 'insertAt', value: function insertAt(index, value, def) { if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def); if (value.length === 0) return; var lines = value.split('\n'); var text = lines.shift(); if (text.length > 0) { if (index < this.length() - 1 || this.children.tail == null) { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text); } else { this.children.tail.insertAt(this.children.tail.length(), text); } this.cache = {}; } var block = this; lines.reduce(function (index, line) { block = block.split(index, true); block.insertAt(0, line); return line.length; }, index + text.length); } }, { key: 'insertBefore', value: function insertBefore(blot, ref) { var head = this.children.head; _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref); if (head instanceof _break2.default) { head.remove(); } this.cache = {}; } }, { key: 'length', value: function length() { if (this.cache.length == null) { this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH; } return this.cache.length; } }, { key: 'moveChildren', value: function moveChildren(target, ref) { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref); this.cache = {}; } }, { key: 'optimize', value: function optimize(context) { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context); this.cache = {}; } }, { key: 'path', value: function path(index) { return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true); } }, { key: 'removeChild', value: function removeChild(child) { _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child); this.cache = {}; } }, { key: 'split', value: function split(index) { var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) { var clone = this.clone(); if (index === 0) { this.parent.insertBefore(clone, this); return this; } else { this.parent.insertBefore(clone, this.next); return clone; } } else { var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force); this.cache = {}; return next; } } }]); return Block; }(_parchment2.default.Block); Block.blotName = 'block'; Block.tagName = 'P'; Block.defaultChild = 'break'; Block.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default]; function bubbleFormats(blot) { var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (blot == null) return formats; if (typeof blot.formats === 'function') { formats = (0, _extend2.default)(formats, blot.formats()); } if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) { return formats; } return bubbleFormats(blot.parent, formats); } exports.bubbleFormats = bubbleFormats; exports.BlockEmbed = BlockEmbed; exports.default = Block; /***/ }, /* 5 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.overload = exports.expandConfig = undefined; var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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; }; }(); __webpack_require__(50); var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _editor = __webpack_require__(14); var _editor2 = _interopRequireDefault(_editor); var _emitter3 = __webpack_require__(8); var _emitter4 = _interopRequireDefault(_emitter3); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _selection = __webpack_require__(15); var _selection2 = _interopRequireDefault(_selection); var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); var _theme = __webpack_require__(34); var _theme2 = _interopRequireDefault(_theme); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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"); } } var debug = (0, _logger2.default)('quill'); var Quill = function () { _createClass(Quill, null, [{ key: 'debug', value: function debug(limit) { if (limit === true) { limit = 'log'; } _logger2.default.level(limit); } }, { key: 'find', value: function find(node) { return node.__quill || _parchment2.default.find(node); } }, { key: 'import', value: function _import(name) { if (this.imports[name] == null) { debug.error('Cannot import ' + name + '. Are you sure it was registered?'); } return this.imports[name]; } }, { key: 'register', value: function register(path, target) { var _this = this; var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (typeof path !== 'string') { var name = path.attrName || path.blotName; if (typeof name === 'string') { // register(Blot | Attributor, overwrite) this.register('formats/' + name, path, target); } else { Object.keys(path).forEach(function (key) { _this.register(key, path[key], target); }); } } else { if (this.imports[path] != null && !overwrite) { debug.warn('Overwriting ' + path + ' with', target); } this.imports[path] = target; if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') { _parchment2.default.register(target); } else if (path.startsWith('modules') && typeof target.register === 'function') { target.register(); } } } }]); function Quill(container) { var _this2 = this; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; _classCallCheck(this, Quill); this.options = expandConfig(container, options); this.container = this.options.container; if (this.container == null) { return debug.error('Invalid Quill container', container); } if (this.options.debug) { Quill.debug(this.options.debug); } var html = this.container.innerHTML.trim(); this.container.classList.add('ql-container'); this.container.innerHTML = ''; this.container.__quill = this; this.root = this.addContainer('ql-editor'); this.root.classList.add('ql-blank'); this.root.setAttribute('data-gramm', false); this.scrollingContainer = this.options.scrollingContainer || this.root; this.emitter = new _emitter4.default(); this.scroll = _parchment2.default.create(this.root, { emitter: this.emitter, whitelist: this.options.formats }); this.editor = new _editor2.default(this.scroll); this.selection = new _selection2.default(this.scroll, this.emitter); this.theme = new this.options.theme(this, this.options); this.keyboard = this.theme.addModule('keyboard'); this.clipboard = this.theme.addModule('clipboard'); this.history = this.theme.addModule('history'); this.theme.init(); this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) { if (type === _emitter4.default.events.TEXT_CHANGE) { _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank()); } }); this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) { var range = _this2.selection.lastRange; var index = range && range.length === 0 ? range.index : undefined; modify.call(_this2, function () { return _this2.editor.update(null, mutations, index); }, source); }); var contents = this.clipboard.convert('
' + html + '


'); this.setContents(contents); this.history.clear(); if (this.options.placeholder) { this.root.setAttribute('data-placeholder', this.options.placeholder); } if (this.options.readOnly) { this.disable(); } } _createClass(Quill, [{ key: 'addContainer', value: function addContainer(container) { var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; if (typeof container === 'string') { var className = container; container = document.createElement('div'); container.classList.add(className); } this.container.insertBefore(container, refNode); return container; } }, { key: 'blur', value: function blur() { this.selection.setRange(null); } }, { key: 'deleteText', value: function deleteText(index, length, source) { var _this3 = this; var _overload = overload(index, length, source); var _overload2 = _slicedToArray(_overload, 4); index = _overload2[0]; length = _overload2[1]; source = _overload2[3]; return modify.call(this, function () { return _this3.editor.deleteText(index, length); }, source, index, -1 * length); } }, { key: 'disable', value: function disable() { this.enable(false); } }, { key: 'enable', value: function enable() { var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; this.scroll.enable(enabled); this.container.classList.toggle('ql-disabled', !enabled); } }, { key: 'focus', value: function focus() { var scrollTop = this.scrollingContainer.scrollTop; this.selection.focus(); this.scrollingContainer.scrollTop = scrollTop; this.scrollIntoView(); } }, { key: 'format', value: function format(name, value) { var _this4 = this; var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; return modify.call(this, function () { var range = _this4.getSelection(true); var change = new _quillDelta2.default(); if (range == null) { return change; } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value)); } else if (range.length === 0) { _this4.selection.format(name, value); return change; } else { change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value)); } _this4.setSelection(range, _emitter4.default.sources.SILENT); return change; }, source); } }, { key: 'formatLine', value: function formatLine(index, length, name, value, source) { var _this5 = this; var formats = void 0; var _overload3 = overload(index, length, name, value, source); var _overload4 = _slicedToArray(_overload3, 4); index = _overload4[0]; length = _overload4[1]; formats = _overload4[2]; source = _overload4[3]; return modify.call(this, function () { return _this5.editor.formatLine(index, length, formats); }, source, index, 0); } }, { key: 'formatText', value: function formatText(index, length, name, value, source) { var _this6 = this; var formats = void 0; var _overload5 = overload(index, length, name, value, source); var _overload6 = _slicedToArray(_overload5, 4); index = _overload6[0]; length = _overload6[1]; formats = _overload6[2]; source = _overload6[3]; return modify.call(this, function () { return _this6.editor.formatText(index, length, formats); }, source, index, 0); } }, { key: 'getBounds', value: function getBounds(index) { var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var bounds = void 0; if (typeof index === 'number') { bounds = this.selection.getBounds(index, length); } else { bounds = this.selection.getBounds(index.index, index.length); } var containerBounds = this.container.getBoundingClientRect(); return { bottom: bounds.bottom - containerBounds.top, height: bounds.height, left: bounds.left - containerBounds.left, right: bounds.right - containerBounds.left, top: bounds.top - containerBounds.top, width: bounds.width }; } }, { key: 'getContents', value: function getContents() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; var _overload7 = overload(index, length); var _overload8 = _slicedToArray(_overload7, 2); index = _overload8[0]; length = _overload8[1]; return this.editor.getContents(index, length); } }, { key: 'getFormat', value: function getFormat() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true); var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; if (typeof index === 'number') { return this.editor.getFormat(index, length); } else { return this.editor.getFormat(index.index, index.length); } } }, { key: 'getIndex', value: function getIndex(blot) { return blot.offset(this.scroll); } }, { key: 'getLength', value: function getLength() { return this.scroll.length(); } }, { key: 'getLeaf', value: function getLeaf(index) { return this.scroll.leaf(index); } }, { key: 'getLine', value: function getLine(index) { return this.scroll.line(index); } }, { key: 'getLines', value: function getLines() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; if (typeof index !== 'number') { return this.scroll.lines(index.index, index.length); } else { return this.scroll.lines(index, length); } } }, { key: 'getModule', value: function getModule(name) { return this.theme.modules[name]; } }, { key: 'getSelection', value: function getSelection() { var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (focus) this.focus(); this.update(); // Make sure we access getRange with editor in consistent state return this.selection.getRange()[0]; } }, { key: 'getText', value: function getText() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; var _overload9 = overload(index, length); var _overload10 = _slicedToArray(_overload9, 2); index = _overload10[0]; length = _overload10[1]; return this.editor.getText(index, length); } }, { key: 'hasFocus', value: function hasFocus() { return this.selection.hasFocus(); } }, { key: 'insertEmbed', value: function insertEmbed(index, embed, value) { var _this7 = this; var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API; return modify.call(this, function () { return _this7.editor.insertEmbed(index, embed, value); }, source, index); } }, { key: 'insertText', value: function insertText(index, text, name, value, source) { var _this8 = this; var formats = void 0; var _overload11 = overload(index, 0, name, value, source); var _overload12 = _slicedToArray(_overload11, 4); index = _overload12[0]; formats = _overload12[2]; source = _overload12[3]; return modify.call(this, function () { return _this8.editor.insertText(index, text, formats); }, source, index, text.length); } }, { key: 'isEnabled', value: function isEnabled() { return !this.container.classList.contains('ql-disabled'); } }, { key: 'off', value: function off() { return this.emitter.off.apply(this.emitter, arguments); } }, { key: 'on', value: function on() { return this.emitter.on.apply(this.emitter, arguments); } }, { key: 'once', value: function once() { return this.emitter.once.apply(this.emitter, arguments); } }, { key: 'pasteHTML', value: function pasteHTML(index, html, source) { this.clipboard.dangerouslyPasteHTML(index, html, source); } }, { key: 'removeFormat', value: function removeFormat(index, length, source) { var _this9 = this; var _overload13 = overload(index, length, source); var _overload14 = _slicedToArray(_overload13, 4); index = _overload14[0]; length = _overload14[1]; source = _overload14[3]; return modify.call(this, function () { return _this9.editor.removeFormat(index, length); }, source, index); } }, { key: 'scrollIntoView', value: function scrollIntoView() { this.selection.scrollIntoView(this.scrollingContainer); } }, { key: 'setContents', value: function setContents(delta) { var _this10 = this; var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; return modify.call(this, function () { delta = new _quillDelta2.default(delta); var length = _this10.getLength(); var deleted = _this10.editor.deleteText(0, length); var applied = _this10.editor.applyDelta(delta); var lastOp = applied.ops[applied.ops.length - 1]; if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\n') { _this10.editor.deleteText(_this10.getLength() - 1, 1); applied.delete(1); } var ret = deleted.compose(applied); return ret; }, source); } }, { key: 'setSelection', value: function setSelection(index, length, source) { if (index == null) { this.selection.setRange(null, length || Quill.sources.API); } else { var _overload15 = overload(index, length, source); var _overload16 = _slicedToArray(_overload15, 4); index = _overload16[0]; length = _overload16[1]; source = _overload16[3]; this.selection.setRange(new _selection.Range(index, length), source); if (source !== _emitter4.default.sources.SILENT) { this.selection.scrollIntoView(this.scrollingContainer); } } } }, { key: 'setText', value: function setText(text) { var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; var delta = new _quillDelta2.default().insert(text); return this.setContents(delta, source); } }, { key: 'update', value: function update() { var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes this.selection.update(source); return change; } }, { key: 'updateContents', value: function updateContents(delta) { var _this11 = this; var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; return modify.call(this, function () { delta = new _quillDelta2.default(delta); return _this11.editor.applyDelta(delta, source); }, source, true); } }]); return Quill; }(); Quill.DEFAULTS = { bounds: null, formats: null, modules: {}, placeholder: '', readOnly: false, scrollingContainer: null, strict: true, theme: 'default' }; Quill.events = _emitter4.default.events; Quill.sources = _emitter4.default.sources; // eslint-disable-next-line no-undef Quill.version = false ? 'dev' : "1.3.7"; Quill.imports = { 'delta': _quillDelta2.default, 'parchment': _parchment2.default, 'core/module': _module2.default, 'core/theme': _theme2.default }; function expandConfig(container, userConfig) { userConfig = (0, _extend2.default)(true, { container: container, modules: { clipboard: true, keyboard: true, history: true } }, userConfig); if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) { userConfig.theme = _theme2.default; } else { userConfig.theme = Quill.import('themes/' + userConfig.theme); if (userConfig.theme == null) { throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?'); } } var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS); [themeConfig, userConfig].forEach(function (config) { config.modules = config.modules || {}; Object.keys(config.modules).forEach(function (module) { if (config.modules[module] === true) { config.modules[module] = {}; } }); }); var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules)); var moduleConfig = moduleNames.reduce(function (config, name) { var moduleClass = Quill.import('modules/' + name); if (moduleClass == null) { debug.error('Cannot load ' + name + ' module. Are you sure you registered it?'); } else { config[name] = moduleClass.DEFAULTS || {}; } return config; }, {}); // Special case toolbar shorthand if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) { userConfig.modules.toolbar = { container: userConfig.modules.toolbar }; } userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig); ['bounds', 'container', 'scrollingContainer'].forEach(function (key) { if (typeof userConfig[key] === 'string') { userConfig[key] = document.querySelector(userConfig[key]); } }); userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) { if (userConfig.modules[name]) { config[name] = userConfig.modules[name]; } return config; }, {}); return userConfig; } // Handle selection preservation and TEXT_CHANGE emission // common to modification APIs function modify(modifier, source, index, shift) { if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) { return new _quillDelta2.default(); } var range = index == null ? null : this.getSelection(); var oldDelta = this.editor.delta; var change = modifier(); if (range != null) { if (index === true) index = range.index; if (shift == null) { range = shiftRange(range, change, source); } else if (shift !== 0) { range = shiftRange(range, index, shift, source); } this.setSelection(range, _emitter4.default.sources.SILENT); } if (change.length() > 0) { var _emitter; var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source]; (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); if (source !== _emitter4.default.sources.SILENT) { var _emitter2; (_emitter2 = this.emitter).emit.apply(_emitter2, args); } } return change; } function overload(index, length, name, value, source) { var formats = {}; if (typeof index.index === 'number' && typeof index.length === 'number') { // Allow for throwaway end (used by insertText/insertEmbed) if (typeof length !== 'number') { source = value, value = name, name = length, length = index.length, index = index.index; } else { length = index.length, index = index.index; } } else if (typeof length !== 'number') { source = value, value = name, name = length, length = 0; } // Handle format being object, two format name/value strings or excluded if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { formats = name; source = value; } else if (typeof name === 'string') { if (value != null) { formats[name] = value; } else { source = name; } } // Handle optional source source = source || _emitter4.default.sources.API; return [index, length, formats, source]; } function shiftRange(range, index, length, source) { if (range == null) return null; var start = void 0, end = void 0; if (index instanceof _quillDelta2.default) { var _map = [range.index, range.index + range.length].map(function (pos) { return index.transformPosition(pos, source !== _emitter4.default.sources.USER); }); var _map2 = _slicedToArray(_map, 2); start = _map2[0]; end = _map2[1]; } else { var _map3 = [range.index, range.index + range.length].map(function (pos) { if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos; if (length >= 0) { return pos + length; } else { return Math.max(index, pos + length); } }); var _map4 = _slicedToArray(_map3, 2); start = _map4[0]; end = _map4[1]; } return new _selection.Range(start, end - start); } exports.expandConfig = expandConfig; exports.overload = overload; exports.default = Quill; /***/ }, /* 6 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Inline = function (_Parchment$Inline) { _inherits(Inline, _Parchment$Inline); function Inline() { _classCallCheck(this, Inline); return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments)); } _createClass(Inline, [{ key: 'formatAt', value: function formatAt(index, length, name, value) { if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) { var blot = this.isolate(index, length); if (value) { blot.wrap(name, value); } } else { _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value); } } }, { key: 'optimize', value: function optimize(context) { _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context); if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) { var parent = this.parent.isolate(this.offset(), this.length()); this.moveChildren(parent); parent.wrap(this); } } }], [{ key: 'compare', value: function compare(self, other) { var selfIndex = Inline.order.indexOf(self); var otherIndex = Inline.order.indexOf(other); if (selfIndex >= 0 || otherIndex >= 0) { return selfIndex - otherIndex; } else if (self === other) { return 0; } else if (self < other) { return -1; } else { return 1; } } }]); return Inline; }(_parchment2.default.Inline); Inline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds Inline.order = ['cursor', 'inline', // Must be lower 'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher ]; exports.default = Inline; /***/ }, /* 7 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var TextBlot = function (_Parchment$Text) { _inherits(TextBlot, _Parchment$Text); function TextBlot() { _classCallCheck(this, TextBlot); return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments)); } return TextBlot; }(_parchment2.default.Text); exports.default = TextBlot; /***/ }, /* 8 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _eventemitter = __webpack_require__(54); var _eventemitter2 = _interopRequireDefault(_eventemitter); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var debug = (0, _logger2.default)('quill:events'); var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click']; EVENTS.forEach(function (eventName) { document.addEventListener(eventName, function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) { // TODO use WeakMap if (node.__quill && node.__quill.emitter) { var _node$__quill$emitter; (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args); } }); }); }); var Emitter = function (_EventEmitter) { _inherits(Emitter, _EventEmitter); function Emitter() { _classCallCheck(this, Emitter); var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this)); _this.listeners = {}; _this.on('error', debug.error); return _this; } _createClass(Emitter, [{ key: 'emit', value: function emit() { debug.log.apply(debug, arguments); _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments); } }, { key: 'handleDOM', value: function handleDOM(event) { for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } (this.listeners[event.type] || []).forEach(function (_ref) { var node = _ref.node, handler = _ref.handler; if (event.target === node || node.contains(event.target)) { handler.apply(undefined, [event].concat(args)); } }); } }, { key: 'listenDOM', value: function listenDOM(eventName, node, handler) { if (!this.listeners[eventName]) { this.listeners[eventName] = []; } this.listeners[eventName].push({ node: node, handler: handler }); } }]); return Emitter; }(_eventemitter2.default); Emitter.events = { EDITOR_CHANGE: 'editor-change', SCROLL_BEFORE_UPDATE: 'scroll-before-update', SCROLL_OPTIMIZE: 'scroll-optimize', SCROLL_UPDATE: 'scroll-update', SELECTION_CHANGE: 'selection-change', TEXT_CHANGE: 'text-change' }; Emitter.sources = { API: 'api', SILENT: 'silent', USER: 'user' }; exports.default = Emitter; /***/ }, /* 9 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Module = function Module(quill) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; _classCallCheck(this, Module); this.quill = quill; this.options = options; }; Module.DEFAULTS = {}; exports.default = Module; /***/ }, /* 10 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var levels = ['error', 'warn', 'log', 'info']; var level = 'warn'; function debug(method) { if (levels.indexOf(method) <= levels.indexOf(level)) { var _console; for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } (_console = console)[method].apply(_console, args); // eslint-disable-line no-console } } function namespace(ns) { return levels.reduce(function (logger, method) { logger[method] = debug.bind(console, method, ns); return logger; }, {}); } debug.level = namespace.level = function (newLevel) { level = newLevel; }; exports.default = namespace; /***/ }, /* 11 */ /***/function (module, exports, __webpack_require__) { var pSlice = Array.prototype.slice; var objectKeys = __webpack_require__(52); var isArguments = __webpack_require__(53); var deepEqual = module.exports = function (actual, expected, opts) { if (!opts) opts = {}; // 7.1. All identical values are equivalent, as determined by ===. if (actual === expected) { return true; } else if (actual instanceof Date && expected instanceof Date) { return actual.getTime() === expected.getTime(); // 7.3. Other pairs that do not both pass typeof value == 'object', // equivalence is determined by ==. } else if (!actual || !expected || (typeof actual === 'undefined' ? 'undefined' : _typeof2(actual)) != 'object' && (typeof expected === 'undefined' ? 'undefined' : _typeof2(expected)) != 'object') { return opts.strict ? actual === expected : actual == expected; // 7.4. For all other Object pairs, including Array objects, equivalence is // determined by having the same number of owned properties (as verified // with Object.prototype.hasOwnProperty.call), the same set of keys // (although not necessarily the same order), equivalent values for every // corresponding key, and an identical 'prototype' property. Note: this // accounts for both named and indexed properties on Arrays. } else { return objEquiv(actual, expected, opts); } }; function isUndefinedOrNull(value) { return value === null || value === undefined; } function isBuffer(x) { if (!x || (typeof x === 'undefined' ? 'undefined' : _typeof2(x)) !== 'object' || typeof x.length !== 'number') return false; if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { return false; } if (x.length > 0 && typeof x[0] !== 'number') return false; return true; } function objEquiv(a, b, opts) { var i, key; if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) return false; // an identical 'prototype' property. if (a.prototype !== b.prototype) return false; //~~~I've managed to break Object.keys through screwy arguments passing. // Converting to array solves the problem. if (isArguments(a)) { if (!isArguments(b)) { return false; } a = pSlice.call(a); b = pSlice.call(b); return deepEqual(a, b, opts); } if (isBuffer(a)) { if (!isBuffer(b)) { return false; } if (a.length !== b.length) return false; for (i = 0; i < a.length; i++) { if (a[i] !== b[i]) return false; } return true; } try { var ka = objectKeys(a), kb = objectKeys(b); } catch (e) { //happens when one is a string literal and the other isn't return false; } // having the same number of owned properties (keys incorporates // hasOwnProperty) if (ka.length != kb.length) return false; //the same set of keys (although not necessarily the same order), ka.sort(); kb.sort(); //~~~cheap key test for (i = ka.length - 1; i >= 0; i--) { if (ka[i] != kb[i]) return false; } //equivalent values for every corresponding key, and //~~~possibly expensive deep test for (i = ka.length - 1; i >= 0; i--) { key = ka[i]; if (!deepEqual(a[key], b[key], opts)) return false; } return (typeof a === 'undefined' ? 'undefined' : _typeof2(a)) === (typeof b === 'undefined' ? 'undefined' : _typeof2(b)); } /***/ }, /* 12 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Registry = __webpack_require__(1); var Attributor = /** @class */function () { function Attributor(attrName, keyName, options) { if (options === void 0) { options = {}; } this.attrName = attrName; this.keyName = keyName; var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE; if (options.scope != null) { // Ignore type bits, force attribute bit this.scope = options.scope & Registry.Scope.LEVEL | attributeBit; } else { this.scope = Registry.Scope.ATTRIBUTE; } if (options.whitelist != null) this.whitelist = options.whitelist; } Attributor.keys = function (node) { return [].map.call(node.attributes, function (item) { return item.name; }); }; Attributor.prototype.add = function (node, value) { if (!this.canAdd(node, value)) return false; node.setAttribute(this.keyName, value); return true; }; Attributor.prototype.canAdd = function (node, value) { var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE)); if (match == null) return false; if (this.whitelist == null) return true; if (typeof value === 'string') { return this.whitelist.indexOf(value.replace(/["']/g, '')) > -1; } else { return this.whitelist.indexOf(value) > -1; } }; Attributor.prototype.remove = function (node) { node.removeAttribute(this.keyName); }; Attributor.prototype.value = function (node) { var value = node.getAttribute(this.keyName); if (this.canAdd(node, value) && value) { return value; } return ''; }; return Attributor; }(); exports.default = Attributor; /***/ }, /* 13 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Code = undefined; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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); } }; var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Code = function (_Inline) { _inherits(Code, _Inline); function Code() { _classCallCheck(this, Code); return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments)); } return Code; }(_inline2.default); Code.blotName = 'code'; Code.tagName = 'CODE'; var CodeBlock = function (_Block) { _inherits(CodeBlock, _Block); function CodeBlock() { _classCallCheck(this, CodeBlock); return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments)); } _createClass(CodeBlock, [{ key: 'delta', value: function delta() { var _this3 = this; var text = this.domNode.textContent; if (text.endsWith('\n')) { // Should always be true text = text.slice(0, -1); } return text.split('\n').reduce(function (delta, frag) { return delta.insert(frag).insert('\n', _this3.formats()); }, new _quillDelta2.default()); } }, { key: 'format', value: function format(name, value) { if (name === this.statics.blotName && value) return; var _descendant = this.descendant(_text2.default, this.length() - 1), _descendant2 = _slicedToArray(_descendant, 1), text = _descendant2[0]; if (text != null) { text.deleteAt(text.length() - 1, 1); } _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value); } }, { key: 'formatAt', value: function formatAt(index, length, name, value) { if (length === 0) return; if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) { return; } var nextNewline = this.newlineIndex(index); if (nextNewline < 0 || nextNewline >= index + length) return; var prevNewline = this.newlineIndex(index, true) + 1; var isolateLength = nextNewline - prevNewline + 1; var blot = this.isolate(prevNewline, isolateLength); var next = blot.next; blot.format(name, value); if (next instanceof CodeBlock) { next.formatAt(0, index - prevNewline + length - isolateLength, name, value); } } }, { key: 'insertAt', value: function insertAt(index, value, def) { if (def != null) return; var _descendant3 = this.descendant(_text2.default, index), _descendant4 = _slicedToArray(_descendant3, 2), text = _descendant4[0], offset = _descendant4[1]; text.insertAt(offset, value); } }, { key: 'length', value: function length() { var length = this.domNode.textContent.length; if (!this.domNode.textContent.endsWith('\n')) { return length + 1; } return length; } }, { key: 'newlineIndex', value: function newlineIndex(searchIndex) { var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!reverse) { var offset = this.domNode.textContent.slice(searchIndex).indexOf('\n'); return offset > -1 ? searchIndex + offset : -1; } else { return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\n'); } } }, { key: 'optimize', value: function optimize(context) { if (!this.domNode.textContent.endsWith('\n')) { this.appendChild(_parchment2.default.create('text', '\n')); } _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context); var next = this.next; if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) { next.optimize(context); next.moveChildren(this); next.remove(); } } }, { key: 'replace', value: function replace(target) { _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target); [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) { var blot = _parchment2.default.find(node); if (blot == null) { node.parentNode.removeChild(node); } else if (blot instanceof _parchment2.default.Embed) { blot.remove(); } else { blot.unwrap(); } }); } }], [{ key: 'create', value: function create(value) { var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value); domNode.setAttribute('spellcheck', false); return domNode; } }, { key: 'formats', value: function formats() { return true; } }]); return CodeBlock; }(_block2.default); CodeBlock.blotName = 'code-block'; CodeBlock.tagName = 'PRE'; CodeBlock.TAB = ' '; exports.Code = Code; exports.default = CodeBlock; /***/ }, /* 14 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _op = __webpack_require__(20); var _op2 = _interopRequireDefault(_op); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _code = __webpack_require__(13); var _code2 = _interopRequireDefault(_code); var _cursor = __webpack_require__(24); var _cursor2 = _interopRequireDefault(_cursor); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); var _break = __webpack_require__(16); var _break2 = _interopRequireDefault(_break); var _clone = __webpack_require__(21); var _clone2 = _interopRequireDefault(_clone); var _deepEqual = __webpack_require__(11); var _deepEqual2 = _interopRequireDefault(_deepEqual); var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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"); } } var ASCII = /^[ -~]*$/; var Editor = function () { function Editor(scroll) { _classCallCheck(this, Editor); this.scroll = scroll; this.delta = this.getDelta(); } _createClass(Editor, [{ key: 'applyDelta', value: function applyDelta(delta) { var _this = this; var consumeNextNewline = false; this.scroll.update(); var scrollLength = this.scroll.length(); this.scroll.batchStart(); delta = normalizeDelta(delta); delta.reduce(function (index, op) { var length = op.retain || op.delete || op.insert.length || 1; var attributes = op.attributes || {}; if (op.insert != null) { if (typeof op.insert === 'string') { var text = op.insert; if (text.endsWith('\n') && consumeNextNewline) { consumeNextNewline = false; text = text.slice(0, -1); } if (index >= scrollLength && !text.endsWith('\n')) { consumeNextNewline = true; } _this.scroll.insertAt(index, text); var _scroll$line = _this.scroll.line(index), _scroll$line2 = _slicedToArray(_scroll$line, 2), line = _scroll$line2[0], offset = _scroll$line2[1]; var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line)); if (line instanceof _block2.default) { var _line$descendant = line.descendant(_parchment2.default.Leaf, offset), _line$descendant2 = _slicedToArray(_line$descendant, 1), leaf = _line$descendant2[0]; formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf)); } attributes = _op2.default.attributes.diff(formats, attributes) || {}; } else if (_typeof(op.insert) === 'object') { var key = Object.keys(op.insert)[0]; // There should only be one key if (key == null) return index; _this.scroll.insertAt(index, key, op.insert[key]); } scrollLength += length; } Object.keys(attributes).forEach(function (name) { _this.scroll.formatAt(index, length, name, attributes[name]); }); return index + length; }, 0); delta.reduce(function (index, op) { if (typeof op.delete === 'number') { _this.scroll.deleteAt(index, op.delete); return index; } return index + (op.retain || op.insert.length || 1); }, 0); this.scroll.batchEnd(); return this.update(delta); } }, { key: 'deleteText', value: function deleteText(index, length) { this.scroll.deleteAt(index, length); return this.update(new _quillDelta2.default().retain(index).delete(length)); } }, { key: 'formatLine', value: function formatLine(index, length) { var _this2 = this; var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; this.scroll.update(); Object.keys(formats).forEach(function (format) { if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return; var lines = _this2.scroll.lines(index, Math.max(length, 1)); var lengthRemaining = length; lines.forEach(function (line) { var lineLength = line.length(); if (!(line instanceof _code2.default)) { line.format(format, formats[format]); } else { var codeIndex = index - line.offset(_this2.scroll); var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1; line.formatAt(codeIndex, codeLength, format, formats[format]); } lengthRemaining -= lineLength; }); }); this.scroll.optimize(); return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); } }, { key: 'formatText', value: function formatText(index, length) { var _this3 = this; var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; Object.keys(formats).forEach(function (format) { _this3.scroll.formatAt(index, length, format, formats[format]); }); return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); } }, { key: 'getContents', value: function getContents(index, length) { return this.delta.slice(index, index + length); } }, { key: 'getDelta', value: function getDelta() { return this.scroll.lines().reduce(function (delta, line) { return delta.concat(line.delta()); }, new _quillDelta2.default()); } }, { key: 'getFormat', value: function getFormat(index) { var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var lines = [], leaves = []; if (length === 0) { this.scroll.path(index).forEach(function (path) { var _path = _slicedToArray(path, 1), blot = _path[0]; if (blot instanceof _block2.default) { lines.push(blot); } else if (blot instanceof _parchment2.default.Leaf) { leaves.push(blot); } }); } else { lines = this.scroll.lines(index, length); leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length); } var formatsArr = [lines, leaves].map(function (blots) { if (blots.length === 0) return {}; var formats = (0, _block.bubbleFormats)(blots.shift()); while (Object.keys(formats).length > 0) { var blot = blots.shift(); if (blot == null) return formats; formats = combineFormats((0, _block.bubbleFormats)(blot), formats); } return formats; }); return _extend2.default.apply(_extend2.default, formatsArr); } }, { key: 'getText', value: function getText(index, length) { return this.getContents(index, length).filter(function (op) { return typeof op.insert === 'string'; }).map(function (op) { return op.insert; }).join(''); } }, { key: 'insertEmbed', value: function insertEmbed(index, embed, value) { this.scroll.insertAt(index, embed, value); return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value))); } }, { key: 'insertText', value: function insertText(index, text) { var _this4 = this; var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; text = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); this.scroll.insertAt(index, text); Object.keys(formats).forEach(function (format) { _this4.scroll.formatAt(index, text.length, format, formats[format]); }); return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats))); } }, { key: 'isBlank', value: function isBlank() { if (this.scroll.children.length == 0) return true; if (this.scroll.children.length > 1) return false; var block = this.scroll.children.head; if (block.statics.blotName !== _block2.default.blotName) return false; if (block.children.length > 1) return false; return block.children.head instanceof _break2.default; } }, { key: 'removeFormat', value: function removeFormat(index, length) { var text = this.getText(index, length); var _scroll$line3 = this.scroll.line(index + length), _scroll$line4 = _slicedToArray(_scroll$line3, 2), line = _scroll$line4[0], offset = _scroll$line4[1]; var suffixLength = 0, suffix = new _quillDelta2.default(); if (line != null) { if (!(line instanceof _code2.default)) { suffixLength = line.length() - offset; } else { suffixLength = line.newlineIndex(offset) - offset + 1; } suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\n'); } var contents = this.getContents(index, length + suffixLength); var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix)); var delta = new _quillDelta2.default().retain(index).concat(diff); return this.applyDelta(delta); } }, { key: 'update', value: function update(change) { var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; var oldDelta = this.delta; if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) { // Optimization for character changes var textBlot = _parchment2.default.find(mutations[0].target); var formats = (0, _block.bubbleFormats)(textBlot); var index = textBlot.offset(this.scroll); var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, ''); var oldText = new _quillDelta2.default().insert(oldValue); var newText = new _quillDelta2.default().insert(textBlot.value()); var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex)); change = diffDelta.reduce(function (delta, op) { if (op.insert) { return delta.insert(op.insert, formats); } else { return delta.push(op); } }, new _quillDelta2.default()); this.delta = oldDelta.compose(change); } else { this.delta = this.getDelta(); if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) { change = oldDelta.diff(this.delta, cursorIndex); } } return change; } }]); return Editor; }(); function combineFormats(formats, combined) { return Object.keys(combined).reduce(function (merged, name) { if (formats[name] == null) return merged; if (combined[name] === formats[name]) { merged[name] = combined[name]; } else if (Array.isArray(combined[name])) { if (combined[name].indexOf(formats[name]) < 0) { merged[name] = combined[name].concat([formats[name]]); } } else { merged[name] = [combined[name], formats[name]]; } return merged; }, {}); } function normalizeDelta(delta) { return delta.reduce(function (delta, op) { if (op.insert === 1) { var attributes = (0, _clone2.default)(op.attributes); delete attributes['image']; return delta.insert({ image: op.attributes.image }, attributes); } if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) { op = (0, _clone2.default)(op); if (op.attributes.list) { op.attributes.list = 'ordered'; } else { op.attributes.list = 'bullet'; delete op.attributes.bullet; } } if (typeof op.insert === 'string') { var text = op.insert.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); return delta.insert(text, op.attributes); } return delta.push(op); }, new _quillDelta2.default()); } exports.default = Editor; /***/ }, /* 15 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Range = undefined; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _clone = __webpack_require__(21); var _clone2 = _interopRequireDefault(_clone); var _deepEqual = __webpack_require__(11); var _deepEqual2 = _interopRequireDefault(_deepEqual); var _emitter3 = __webpack_require__(8); var _emitter4 = _interopRequireDefault(_emitter3); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; }return arr2; } else { return Array.from(arr); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var debug = (0, _logger2.default)('quill:selection'); var Range = function Range(index) { var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; _classCallCheck(this, Range); this.index = index; this.length = length; }; var Selection = function () { function Selection(scroll, emitter) { var _this = this; _classCallCheck(this, Selection); this.emitter = emitter; this.scroll = scroll; this.composing = false; this.mouseDown = false; this.root = this.scroll.domNode; this.cursor = _parchment2.default.create('cursor', this); // savedRange is last non-null range this.lastRange = this.savedRange = new Range(0, 0); this.handleComposition(); this.handleDragging(); this.emitter.listenDOM('selectionchange', document, function () { if (!_this.mouseDown) { setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1); } }); this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) { if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) { _this.update(_emitter4.default.sources.SILENT); } }); this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () { if (!_this.hasFocus()) return; var native = _this.getNativeRange(); if (native == null) return; if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle // TODO unclear if this has negative side effects _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () { try { _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset); } catch (ignored) {} }); }); this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) { if (context.range) { var _context$range = context.range, startNode = _context$range.startNode, startOffset = _context$range.startOffset, endNode = _context$range.endNode, endOffset = _context$range.endOffset; _this.setNativeRange(startNode, startOffset, endNode, endOffset); } }); this.update(_emitter4.default.sources.SILENT); } _createClass(Selection, [{ key: 'handleComposition', value: function handleComposition() { var _this2 = this; this.root.addEventListener('compositionstart', function () { _this2.composing = true; }); this.root.addEventListener('compositionend', function () { _this2.composing = false; if (_this2.cursor.parent) { var range = _this2.cursor.restore(); if (!range) return; setTimeout(function () { _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset); }, 1); } }); } }, { key: 'handleDragging', value: function handleDragging() { var _this3 = this; this.emitter.listenDOM('mousedown', document.body, function () { _this3.mouseDown = true; }); this.emitter.listenDOM('mouseup', document.body, function () { _this3.mouseDown = false; _this3.update(_emitter4.default.sources.USER); }); } }, { key: 'focus', value: function focus() { if (this.hasFocus()) return; this.root.focus(); this.setRange(this.savedRange); } }, { key: 'format', value: function format(_format, value) { if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return; this.scroll.update(); var nativeRange = this.getNativeRange(); if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return; if (nativeRange.start.node !== this.cursor.textNode) { var blot = _parchment2.default.find(nativeRange.start.node, false); if (blot == null) return; // TODO Give blot ability to not split if (blot instanceof _parchment2.default.Leaf) { var after = blot.split(nativeRange.start.offset); blot.parent.insertBefore(this.cursor, after); } else { blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen } this.cursor.attach(); } this.cursor.format(_format, value); this.scroll.optimize(); this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length); this.update(); } }, { key: 'getBounds', value: function getBounds(index) { var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var scrollLength = this.scroll.length(); index = Math.min(index, scrollLength - 1); length = Math.min(index + length, scrollLength - 1) - index; var node = void 0, _scroll$leaf = this.scroll.leaf(index), _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2), leaf = _scroll$leaf2[0], offset = _scroll$leaf2[1]; if (leaf == null) return null; var _leaf$position = leaf.position(offset, true); var _leaf$position2 = _slicedToArray(_leaf$position, 2); node = _leaf$position2[0]; offset = _leaf$position2[1]; var range = document.createRange(); if (length > 0) { range.setStart(node, offset); var _scroll$leaf3 = this.scroll.leaf(index + length); var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2); leaf = _scroll$leaf4[0]; offset = _scroll$leaf4[1]; if (leaf == null) return null; var _leaf$position3 = leaf.position(offset, true); var _leaf$position4 = _slicedToArray(_leaf$position3, 2); node = _leaf$position4[0]; offset = _leaf$position4[1]; range.setEnd(node, offset); return range.getBoundingClientRect(); } else { var side = 'left'; var rect = void 0; if (node instanceof Text) { if (offset < node.data.length) { range.setStart(node, offset); range.setEnd(node, offset + 1); } else { range.setStart(node, offset - 1); range.setEnd(node, offset); side = 'right'; } rect = range.getBoundingClientRect(); } else { rect = leaf.domNode.getBoundingClientRect(); if (offset > 0) side = 'right'; } return { bottom: rect.top + rect.height, height: rect.height, left: rect[side], right: rect[side], top: rect.top, width: 0 }; } } }, { key: 'getNativeRange', value: function getNativeRange() { var selection = document.getSelection(); if (selection == null || selection.rangeCount <= 0) return null; var nativeRange = selection.getRangeAt(0); if (nativeRange == null) return null; var range = this.normalizeNative(nativeRange); debug.info('getNativeRange', range); return range; } }, { key: 'getRange', value: function getRange() { var normalized = this.getNativeRange(); if (normalized == null) return [null, null]; var range = this.normalizedToRange(normalized); return [range, normalized]; } }, { key: 'hasFocus', value: function hasFocus() { return document.activeElement === this.root; } }, { key: 'normalizedToRange', value: function normalizedToRange(range) { var _this4 = this; var positions = [[range.start.node, range.start.offset]]; if (!range.native.collapsed) { positions.push([range.end.node, range.end.offset]); } var indexes = positions.map(function (position) { var _position = _slicedToArray(position, 2), node = _position[0], offset = _position[1]; var blot = _parchment2.default.find(node, true); var index = blot.offset(_this4.scroll); if (offset === 0) { return index; } else if (blot instanceof _parchment2.default.Container) { return index + blot.length(); } else { return index + blot.index(node, offset); } }); var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1); var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes))); return new Range(start, end - start); } }, { key: 'normalizeNative', value: function normalizeNative(nativeRange) { if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) { return null; } var range = { start: { node: nativeRange.startContainer, offset: nativeRange.startOffset }, end: { node: nativeRange.endContainer, offset: nativeRange.endOffset }, native: nativeRange }; [range.start, range.end].forEach(function (position) { var node = position.node, offset = position.offset; while (!(node instanceof Text) && node.childNodes.length > 0) { if (node.childNodes.length > offset) { node = node.childNodes[offset]; offset = 0; } else if (node.childNodes.length === offset) { node = node.lastChild; offset = node instanceof Text ? node.data.length : node.childNodes.length + 1; } else { break; } } position.node = node, position.offset = offset; }); return range; } }, { key: 'rangeToNative', value: function rangeToNative(range) { var _this5 = this; var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length]; var args = []; var scrollLength = this.scroll.length(); indexes.forEach(function (index, i) { index = Math.min(scrollLength - 1, index); var node = void 0, _scroll$leaf5 = _this5.scroll.leaf(index), _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2), leaf = _scroll$leaf6[0], offset = _scroll$leaf6[1]; var _leaf$position5 = leaf.position(offset, i !== 0); var _leaf$position6 = _slicedToArray(_leaf$position5, 2); node = _leaf$position6[0]; offset = _leaf$position6[1]; args.push(node, offset); }); if (args.length < 2) { args = args.concat(args); } return args; } }, { key: 'scrollIntoView', value: function scrollIntoView(scrollingContainer) { var range = this.lastRange; if (range == null) return; var bounds = this.getBounds(range.index, range.length); if (bounds == null) return; var limit = this.scroll.length() - 1; var _scroll$line = this.scroll.line(Math.min(range.index, limit)), _scroll$line2 = _slicedToArray(_scroll$line, 1), first = _scroll$line2[0]; var last = first; if (range.length > 0) { var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit)); var _scroll$line4 = _slicedToArray(_scroll$line3, 1); last = _scroll$line4[0]; } if (first == null || last == null) return; var scrollBounds = scrollingContainer.getBoundingClientRect(); if (bounds.top < scrollBounds.top) { scrollingContainer.scrollTop -= scrollBounds.top - bounds.top; } else if (bounds.bottom > scrollBounds.bottom) { scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom; } } }, { key: 'setNativeRange', value: function setNativeRange(startNode, startOffset) { var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode; var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset; var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; debug.info('setNativeRange', startNode, startOffset, endNode, endOffset); if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) { return; } var selection = document.getSelection(); if (selection == null) return; if (startNode != null) { if (!this.hasFocus()) this.root.focus(); var native = (this.getNativeRange() || {}).native; if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) { if (startNode.tagName == "BR") { startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode); startNode = startNode.parentNode; } if (endNode.tagName == "BR") { endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode); endNode = endNode.parentNode; } var range = document.createRange(); range.setStart(startNode, startOffset); range.setEnd(endNode, endOffset); selection.removeAllRanges(); selection.addRange(range); } } else { selection.removeAllRanges(); this.root.blur(); document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs) } } }, { key: 'setRange', value: function setRange(range) { var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; if (typeof force === 'string') { source = force; force = false; } debug.info('setRange', range); if (range != null) { var args = this.rangeToNative(range); this.setNativeRange.apply(this, _toConsumableArray(args).concat([force])); } else { this.setNativeRange(null); } this.update(source); } }, { key: 'update', value: function update() { var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; var oldRange = this.lastRange; var _getRange = this.getRange(), _getRange2 = _slicedToArray(_getRange, 2), lastRange = _getRange2[0], nativeRange = _getRange2[1]; this.lastRange = lastRange; if (this.lastRange != null) { this.savedRange = this.lastRange; } if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) { var _emitter; if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) { this.cursor.restore(); } var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source]; (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); if (source !== _emitter4.default.sources.SILENT) { var _emitter2; (_emitter2 = this.emitter).emit.apply(_emitter2, args); } } } }]); return Selection; }(); function contains(parent, descendant) { try { // Firefox inserts inaccessible nodes around video elements descendant.parentNode; } catch (e) { return false; } // IE11 has bug with Text nodes // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect if (descendant instanceof Text) { descendant = descendant.parentNode; } return parent.contains(descendant); } exports.Range = Range; exports.default = Selection; /***/ }, /* 16 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Break = function (_Parchment$Embed) { _inherits(Break, _Parchment$Embed); function Break() { _classCallCheck(this, Break); return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments)); } _createClass(Break, [{ key: 'insertInto', value: function insertInto(parent, ref) { if (parent.children.length === 0) { _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref); } else { this.remove(); } } }, { key: 'length', value: function length() { return 0; } }, { key: 'value', value: function value() { return ''; } }], [{ key: 'value', value: function value() { return undefined; } }]); return Break; }(_parchment2.default.Embed); Break.blotName = 'break'; Break.tagName = 'BR'; exports.default = Break; /***/ }, /* 17 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var linked_list_1 = __webpack_require__(44); var shadow_1 = __webpack_require__(30); var Registry = __webpack_require__(1); var ContainerBlot = /** @class */function (_super) { __extends(ContainerBlot, _super); function ContainerBlot(domNode) { var _this = _super.call(this, domNode) || this; _this.build(); return _this; } ContainerBlot.prototype.appendChild = function (other) { this.insertBefore(other); }; ContainerBlot.prototype.attach = function () { _super.prototype.attach.call(this); this.children.forEach(function (child) { child.attach(); }); }; ContainerBlot.prototype.build = function () { var _this = this; this.children = new linked_list_1.default(); // Need to be reversed for if DOM nodes already in order [].slice.call(this.domNode.childNodes).reverse().forEach(function (node) { try { var child = makeBlot(node); _this.insertBefore(child, _this.children.head || undefined); } catch (err) { if (err instanceof Registry.ParchmentError) return;else throw err; } }); }; ContainerBlot.prototype.deleteAt = function (index, length) { if (index === 0 && length === this.length()) { return this.remove(); } this.children.forEachAt(index, length, function (child, offset, length) { child.deleteAt(offset, length); }); }; ContainerBlot.prototype.descendant = function (criteria, index) { var _a = this.children.find(index), child = _a[0], offset = _a[1]; if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) { return [child, offset]; } else if (child instanceof ContainerBlot) { return child.descendant(criteria, offset); } else { return [null, -1]; } }; ContainerBlot.prototype.descendants = function (criteria, index, length) { if (index === void 0) { index = 0; } if (length === void 0) { length = Number.MAX_VALUE; } var descendants = []; var lengthLeft = length; this.children.forEachAt(index, length, function (child, index, length) { if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) { descendants.push(child); } if (child instanceof ContainerBlot) { descendants = descendants.concat(child.descendants(criteria, index, lengthLeft)); } lengthLeft -= length; }); return descendants; }; ContainerBlot.prototype.detach = function () { this.children.forEach(function (child) { child.detach(); }); _super.prototype.detach.call(this); }; ContainerBlot.prototype.formatAt = function (index, length, name, value) { this.children.forEachAt(index, length, function (child, offset, length) { child.formatAt(offset, length, name, value); }); }; ContainerBlot.prototype.insertAt = function (index, value, def) { var _a = this.children.find(index), child = _a[0], offset = _a[1]; if (child) { child.insertAt(offset, value, def); } else { var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); this.appendChild(blot); } }; ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) { if (this.statics.allowedChildren != null && !this.statics.allowedChildren.some(function (child) { return childBlot instanceof child; })) { throw new Registry.ParchmentError("Cannot insert " + childBlot.statics.blotName + " into " + this.statics.blotName); } childBlot.insertInto(this, refBlot); }; ContainerBlot.prototype.length = function () { return this.children.reduce(function (memo, child) { return memo + child.length(); }, 0); }; ContainerBlot.prototype.moveChildren = function (targetParent, refNode) { this.children.forEach(function (child) { targetParent.insertBefore(child, refNode); }); }; ContainerBlot.prototype.optimize = function (context) { _super.prototype.optimize.call(this, context); if (this.children.length === 0) { if (this.statics.defaultChild != null) { var child = Registry.create(this.statics.defaultChild); this.appendChild(child); child.optimize(context); } else { this.remove(); } } }; ContainerBlot.prototype.path = function (index, inclusive) { if (inclusive === void 0) { inclusive = false; } var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1]; var position = [[this, index]]; if (child instanceof ContainerBlot) { return position.concat(child.path(offset, inclusive)); } else if (child != null) { position.push([child, offset]); } return position; }; ContainerBlot.prototype.removeChild = function (child) { this.children.remove(child); }; ContainerBlot.prototype.replace = function (target) { if (target instanceof ContainerBlot) { target.moveChildren(this); } _super.prototype.replace.call(this, target); }; ContainerBlot.prototype.split = function (index, force) { if (force === void 0) { force = false; } if (!force) { if (index === 0) return this; if (index === this.length()) return this.next; } var after = this.clone(); this.parent.insertBefore(after, this.next); this.children.forEachAt(index, this.length(), function (child, offset, length) { child = child.split(offset, force); after.appendChild(child); }); return after; }; ContainerBlot.prototype.unwrap = function () { this.moveChildren(this.parent, this.next); this.remove(); }; ContainerBlot.prototype.update = function (mutations, context) { var _this = this; var addedNodes = []; var removedNodes = []; mutations.forEach(function (mutation) { if (mutation.target === _this.domNode && mutation.type === 'childList') { addedNodes.push.apply(addedNodes, mutation.addedNodes); removedNodes.push.apply(removedNodes, mutation.removedNodes); } }); removedNodes.forEach(function (node) { // Check node has actually been removed // One exception is Chrome does not immediately remove IFRAMEs // from DOM but MutationRecord is correct in its reported removal if (node.parentNode != null && // @ts-ignore node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { return; } var blot = Registry.find(node); if (blot == null) return; if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) { blot.detach(); } }); addedNodes.filter(function (node) { return node.parentNode == _this.domNode; }).sort(function (a, b) { if (a === b) return 0; if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) { return 1; } return -1; }).forEach(function (node) { var refBlot = null; if (node.nextSibling != null) { refBlot = Registry.find(node.nextSibling); } var blot = makeBlot(node); if (blot.next != refBlot || blot.next == null) { if (blot.parent != null) { blot.parent.removeChild(_this); } _this.insertBefore(blot, refBlot || undefined); } }); }; return ContainerBlot; }(shadow_1.default); function makeBlot(node) { var blot = Registry.find(node); if (blot == null) { try { blot = Registry.create(node); } catch (e) { blot = Registry.create(Registry.Scope.INLINE); [].slice.call(node.childNodes).forEach(function (child) { // @ts-ignore blot.domNode.appendChild(child); }); if (node.parentNode) { node.parentNode.replaceChild(blot.domNode, node); } blot.attach(); } } return blot; } exports.default = ContainerBlot; /***/ }, /* 18 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var attributor_1 = __webpack_require__(12); var store_1 = __webpack_require__(31); var container_1 = __webpack_require__(17); var Registry = __webpack_require__(1); var FormatBlot = /** @class */function (_super) { __extends(FormatBlot, _super); function FormatBlot(domNode) { var _this = _super.call(this, domNode) || this; _this.attributes = new store_1.default(_this.domNode); return _this; } FormatBlot.formats = function (domNode) { if (typeof this.tagName === 'string') { return true; } else if (Array.isArray(this.tagName)) { return domNode.tagName.toLowerCase(); } return undefined; }; FormatBlot.prototype.format = function (name, value) { var format = Registry.query(name); if (format instanceof attributor_1.default) { this.attributes.attribute(format, value); } else if (value) { if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) { this.replaceWith(name, value); } } }; FormatBlot.prototype.formats = function () { var formats = this.attributes.values(); var format = this.statics.formats(this.domNode); if (format != null) { formats[this.statics.blotName] = format; } return formats; }; FormatBlot.prototype.replaceWith = function (name, value) { var replacement = _super.prototype.replaceWith.call(this, name, value); this.attributes.copy(replacement); return replacement; }; FormatBlot.prototype.update = function (mutations, context) { var _this = this; _super.prototype.update.call(this, mutations, context); if (mutations.some(function (mutation) { return mutation.target === _this.domNode && mutation.type === 'attributes'; })) { this.attributes.build(); } }; FormatBlot.prototype.wrap = function (name, value) { var wrapper = _super.prototype.wrap.call(this, name, value); if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) { this.attributes.move(wrapper); } return wrapper; }; return FormatBlot; }(container_1.default); exports.default = FormatBlot; /***/ }, /* 19 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var shadow_1 = __webpack_require__(30); var Registry = __webpack_require__(1); var LeafBlot = /** @class */function (_super) { __extends(LeafBlot, _super); function LeafBlot() { return _super !== null && _super.apply(this, arguments) || this; } LeafBlot.value = function (domNode) { return true; }; LeafBlot.prototype.index = function (node, offset) { if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { return Math.min(offset, 1); } return -1; }; LeafBlot.prototype.position = function (index, inclusive) { var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode); if (index > 0) offset += 1; return [this.parent.domNode, offset]; }; LeafBlot.prototype.value = function () { var _a; return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a; }; LeafBlot.scope = Registry.Scope.INLINE_BLOT; return LeafBlot; }(shadow_1.default); exports.default = LeafBlot; /***/ }, /* 20 */ /***/function (module, exports, __webpack_require__) { var equal = __webpack_require__(11); var extend = __webpack_require__(3); var lib = { attributes: { compose: function compose(a, b, keepNull) { if ((typeof a === 'undefined' ? 'undefined' : _typeof2(a)) !== 'object') a = {}; if ((typeof b === 'undefined' ? 'undefined' : _typeof2(b)) !== 'object') b = {}; var attributes = extend(true, {}, b); if (!keepNull) { attributes = Object.keys(attributes).reduce(function (copy, key) { if (attributes[key] != null) { copy[key] = attributes[key]; } return copy; }, {}); } for (var key in a) { if (a[key] !== undefined && b[key] === undefined) { attributes[key] = a[key]; } } return Object.keys(attributes).length > 0 ? attributes : undefined; }, diff: function diff(a, b) { if ((typeof a === 'undefined' ? 'undefined' : _typeof2(a)) !== 'object') a = {}; if ((typeof b === 'undefined' ? 'undefined' : _typeof2(b)) !== 'object') b = {}; var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) { if (!equal(a[key], b[key])) { attributes[key] = b[key] === undefined ? null : b[key]; } return attributes; }, {}); return Object.keys(attributes).length > 0 ? attributes : undefined; }, transform: function transform(a, b, priority) { if ((typeof a === 'undefined' ? 'undefined' : _typeof2(a)) !== 'object') return b; if ((typeof b === 'undefined' ? 'undefined' : _typeof2(b)) !== 'object') return undefined; if (!priority) return b; // b simply overwrites us without priority var attributes = Object.keys(b).reduce(function (attributes, key) { if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value return attributes; }, {}); return Object.keys(attributes).length > 0 ? attributes : undefined; } }, iterator: function iterator(ops) { return new Iterator(ops); }, length: function length(op) { if (typeof op['delete'] === 'number') { return op['delete']; } else if (typeof op.retain === 'number') { return op.retain; } else { return typeof op.insert === 'string' ? op.insert.length : 1; } } }; function Iterator(ops) { this.ops = ops; this.index = 0; this.offset = 0; }; Iterator.prototype.hasNext = function () { return this.peekLength() < Infinity; }; Iterator.prototype.next = function (length) { if (!length) length = Infinity; var nextOp = this.ops[this.index]; if (nextOp) { var offset = this.offset; var opLength = lib.length(nextOp); if (length >= opLength - offset) { length = opLength - offset; this.index += 1; this.offset = 0; } else { this.offset += length; } if (typeof nextOp['delete'] === 'number') { return { 'delete': length }; } else { var retOp = {}; if (nextOp.attributes) { retOp.attributes = nextOp.attributes; } if (typeof nextOp.retain === 'number') { retOp.retain = length; } else if (typeof nextOp.insert === 'string') { retOp.insert = nextOp.insert.substr(offset, length); } else { // offset should === 0, length should === 1 retOp.insert = nextOp.insert; } return retOp; } } else { return { retain: Infinity }; } }; Iterator.prototype.peek = function () { return this.ops[this.index]; }; Iterator.prototype.peekLength = function () { if (this.ops[this.index]) { // Should never return 0 if our index is being managed correctly return lib.length(this.ops[this.index]) - this.offset; } else { return Infinity; } }; Iterator.prototype.peekType = function () { if (this.ops[this.index]) { if (typeof this.ops[this.index]['delete'] === 'number') { return 'delete'; } else if (typeof this.ops[this.index].retain === 'number') { return 'retain'; } else { return 'insert'; } } return 'retain'; }; Iterator.prototype.rest = function () { if (!this.hasNext()) { return []; } else if (this.offset === 0) { return this.ops.slice(this.index); } else { var offset = this.offset; var index = this.index; var next = this.next(); var rest = this.ops.slice(this.index); this.offset = offset; this.index = index; return [next].concat(rest); } }; module.exports = lib; /***/ }, /* 21 */ /***/function (module, exports) { var clone = function () { 'use strict'; function _instanceof(obj, type) { return type != null && obj instanceof type; } var nativeMap; try { nativeMap = Map; } catch (_) { // maybe a reference error because no `Map`. Give it a dummy value that no // value will ever be an instanceof. nativeMap = function nativeMap() {}; } var nativeSet; try { nativeSet = Set; } catch (_) { nativeSet = function nativeSet() {}; } var nativePromise; try { nativePromise = Promise; } catch (_) { nativePromise = function nativePromise() {}; } /** * Clones (copies) an Object using deep copying. * * This function supports circular references by default, but if you are certain * there are no circular references in your object, you can save some CPU time * by calling clone(obj, false). * * Caution: if `circular` is false and `parent` contains circular references, * your program may enter an infinite loop and crash. * * @param `parent` - the object to be cloned * @param `circular` - set to true if the object to be cloned may contain * circular references. (optional - true by default) * @param `depth` - set to a number if the object is only to be cloned to * a particular depth. (optional - defaults to Infinity) * @param `prototype` - sets the prototype to be used when cloning an object. * (optional - defaults to parent prototype). * @param `includeNonEnumerable` - set to true if the non-enumerable properties * should be cloned as well. Non-enumerable properties on the prototype * chain will be ignored. (optional - false by default) */ function clone(parent, circular, depth, prototype, includeNonEnumerable) { if ((typeof circular === 'undefined' ? 'undefined' : _typeof2(circular)) === 'object') { depth = circular.depth; prototype = circular.prototype; includeNonEnumerable = circular.includeNonEnumerable; circular = circular.circular; } // maintain two arrays for circular references, where corresponding parents // and children have the same index var allParents = []; var allChildren = []; var useBuffer = typeof Buffer != 'undefined'; if (typeof circular == 'undefined') circular = true; if (typeof depth == 'undefined') depth = Infinity; // recurse this function so we don't reset allParents and allChildren function _clone(parent, depth) { // cloning null always returns null if (parent === null) return null; if (depth === 0) return parent; var child; var proto; if ((typeof parent === 'undefined' ? 'undefined' : _typeof2(parent)) != 'object') { return parent; } if (_instanceof(parent, nativeMap)) { child = new nativeMap(); } else if (_instanceof(parent, nativeSet)) { child = new nativeSet(); } else if (_instanceof(parent, nativePromise)) { child = new nativePromise(function (resolve, reject) { parent.then(function (value) { resolve(_clone(value, depth - 1)); }, function (err) { reject(_clone(err, depth - 1)); }); }); } else if (clone.__isArray(parent)) { child = []; } else if (clone.__isRegExp(parent)) { child = new RegExp(parent.source, __getRegExpFlags(parent)); if (parent.lastIndex) child.lastIndex = parent.lastIndex; } else if (clone.__isDate(parent)) { child = new Date(parent.getTime()); } else if (useBuffer && Buffer.isBuffer(parent)) { if (Buffer.allocUnsafe) { // Node.js >= 4.5.0 child = Buffer.allocUnsafe(parent.length); } else { // Older Node.js versions child = new Buffer(parent.length); } parent.copy(child); return child; } else if (_instanceof(parent, Error)) { child = Object.create(parent); } else { if (typeof prototype == 'undefined') { proto = Object.getPrototypeOf(parent); child = Object.create(proto); } else { child = Object.create(prototype); proto = prototype; } } if (circular) { var index = allParents.indexOf(parent); if (index != -1) { return allChildren[index]; } allParents.push(parent); allChildren.push(child); } if (_instanceof(parent, nativeMap)) { parent.forEach(function (value, key) { var keyChild = _clone(key, depth - 1); var valueChild = _clone(value, depth - 1); child.set(keyChild, valueChild); }); } if (_instanceof(parent, nativeSet)) { parent.forEach(function (value) { var entryChild = _clone(value, depth - 1); child.add(entryChild); }); } for (var i in parent) { var attrs; if (proto) { attrs = Object.getOwnPropertyDescriptor(proto, i); } if (attrs && attrs.set == null) { continue; } child[i] = _clone(parent[i], depth - 1); } if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(parent); for (var i = 0; i < symbols.length; i++) { // Don't need to worry about cloning a symbol because it is a primitive, // like a number or string. var symbol = symbols[i]; var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { continue; } child[symbol] = _clone(parent[symbol], depth - 1); if (!descriptor.enumerable) { Object.defineProperty(child, symbol, { enumerable: false }); } } } if (includeNonEnumerable) { var allPropertyNames = Object.getOwnPropertyNames(parent); for (var i = 0; i < allPropertyNames.length; i++) { var propertyName = allPropertyNames[i]; var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); if (descriptor && descriptor.enumerable) { continue; } child[propertyName] = _clone(parent[propertyName], depth - 1); Object.defineProperty(child, propertyName, { enumerable: false }); } } return child; } return _clone(parent, depth); } /** * Simple flat clone using prototype, accepts only objects, usefull for property * override on FLAT configuration object (no nested props). * * USE WITH CAUTION! This may not behave as you wish if you do not know how this * works. */ clone.clonePrototype = function clonePrototype(parent) { if (parent === null) return null; var c = function c() {}; c.prototype = parent; return new c(); }; // private utility functions function __objToStr(o) { return Object.prototype.toString.call(o); } clone.__objToStr = __objToStr; function __isDate(o) { return (typeof o === 'undefined' ? 'undefined' : _typeof2(o)) === 'object' && __objToStr(o) === '[object Date]'; } clone.__isDate = __isDate; function __isArray(o) { return (typeof o === 'undefined' ? 'undefined' : _typeof2(o)) === 'object' && __objToStr(o) === '[object Array]'; } clone.__isArray = __isArray; function __isRegExp(o) { return (typeof o === 'undefined' ? 'undefined' : _typeof2(o)) === 'object' && __objToStr(o) === '[object RegExp]'; } clone.__isRegExp = __isRegExp; function __getRegExpFlags(re) { var flags = ''; if (re.global) flags += 'g'; if (re.ignoreCase) flags += 'i'; if (re.multiline) flags += 'm'; return flags; } clone.__getRegExpFlags = __getRegExpFlags; return clone; }(); if ((typeof module === 'undefined' ? 'undefined' : _typeof2(module)) === 'object' && module.exports) { module.exports = clone; } /***/ }, /* 22 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _emitter = __webpack_require__(8); var _emitter2 = _interopRequireDefault(_emitter); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); var _break = __webpack_require__(16); var _break2 = _interopRequireDefault(_break); var _code = __webpack_require__(13); var _code2 = _interopRequireDefault(_code); var _container = __webpack_require__(25); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } function isLine(blot) { return blot instanceof _block2.default || blot instanceof _block.BlockEmbed; } var Scroll = function (_Parchment$Scroll) { _inherits(Scroll, _Parchment$Scroll); function Scroll(domNode, config) { _classCallCheck(this, Scroll); var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode)); _this.emitter = config.emitter; if (Array.isArray(config.whitelist)) { _this.whitelist = config.whitelist.reduce(function (whitelist, format) { whitelist[format] = true; return whitelist; }, {}); } // Some reason fixes composition issues with character languages in Windows/Chrome, Safari _this.domNode.addEventListener('DOMNodeInserted', function () {}); _this.optimize(); _this.enable(); return _this; } _createClass(Scroll, [{ key: 'batchStart', value: function batchStart() { this.batch = true; } }, { key: 'batchEnd', value: function batchEnd() { this.batch = false; this.optimize(); } }, { key: 'deleteAt', value: function deleteAt(index, length) { var _line = this.line(index), _line2 = _slicedToArray(_line, 2), first = _line2[0], offset = _line2[1]; var _line3 = this.line(index + length), _line4 = _slicedToArray(_line3, 1), last = _line4[0]; _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length); if (last != null && first !== last && offset > 0) { if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) { this.optimize(); return; } if (first instanceof _code2.default) { var newlineIndex = first.newlineIndex(first.length(), true); if (newlineIndex > -1) { first = first.split(newlineIndex + 1); if (first === last) { this.optimize(); return; } } } else if (last instanceof _code2.default) { var _newlineIndex = last.newlineIndex(0); if (_newlineIndex > -1) { last.split(_newlineIndex + 1); } } var ref = last.children.head instanceof _break2.default ? null : last.children.head; first.moveChildren(last, ref); first.remove(); } this.optimize(); } }, { key: 'enable', value: function enable() { var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; this.domNode.setAttribute('contenteditable', enabled); } }, { key: 'formatAt', value: function formatAt(index, length, format, value) { if (this.whitelist != null && !this.whitelist[format]) return; _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value); this.optimize(); } }, { key: 'insertAt', value: function insertAt(index, value, def) { if (def != null && this.whitelist != null && !this.whitelist[value]) return; if (index >= this.length()) { if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) { var blot = _parchment2.default.create(this.statics.defaultChild); this.appendChild(blot); if (def == null && value.endsWith('\n')) { value = value.slice(0, -1); } blot.insertAt(0, value, def); } else { var embed = _parchment2.default.create(value, def); this.appendChild(embed); } } else { _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def); } this.optimize(); } }, { key: 'insertBefore', value: function insertBefore(blot, ref) { if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) { var wrapper = _parchment2.default.create(this.statics.defaultChild); wrapper.appendChild(blot); blot = wrapper; } _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref); } }, { key: 'leaf', value: function leaf(index) { return this.path(index).pop() || [null, -1]; } }, { key: 'line', value: function line(index) { if (index === this.length()) { return this.line(index - 1); } return this.descendant(isLine, index); } }, { key: 'lines', value: function lines() { var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; var getLines = function getLines(blot, index, length) { var lines = [], lengthLeft = length; blot.children.forEachAt(index, length, function (child, index, length) { if (isLine(child)) { lines.push(child); } else if (child instanceof _parchment2.default.Container) { lines = lines.concat(getLines(child, index, lengthLeft)); } lengthLeft -= length; }); return lines; }; return getLines(this, index, length); } }, { key: 'optimize', value: function optimize() { var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (this.batch === true) return; _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context); if (mutations.length > 0) { this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context); } } }, { key: 'path', value: function path(index) { return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self } }, { key: 'update', value: function update(mutations) { if (this.batch === true) return; var source = _emitter2.default.sources.USER; if (typeof mutations === 'string') { source = mutations; } if (!Array.isArray(mutations)) { mutations = this.observer.takeRecords(); } if (mutations.length > 0) { this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations); } _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy if (mutations.length > 0) { this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations); } } }]); return Scroll; }(_parchment2.default.Scroll); Scroll.blotName = 'scroll'; Scroll.className = 'ql-editor'; Scroll.tagName = 'DIV'; Scroll.defaultChild = 'block'; Scroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default]; exports.default = Scroll; /***/ }, /* 23 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SHORTKEY = exports.default = undefined; var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _clone = __webpack_require__(21); var _clone2 = _interopRequireDefault(_clone); var _deepEqual = __webpack_require__(11); var _deepEqual2 = _interopRequireDefault(_deepEqual); var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _op = __webpack_require__(20); var _op2 = _interopRequireDefault(_op); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var debug = (0, _logger2.default)('quill:keyboard'); var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey'; var Keyboard = function (_Module) { _inherits(Keyboard, _Module); _createClass(Keyboard, null, [{ key: 'match', value: function match(evt, binding) { binding = normalize(binding); if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) { return !!binding[key] !== evt[key] && binding[key] !== null; })) { return false; } return binding.key === (evt.which || evt.keyCode); } }]); function Keyboard(quill, options) { _classCallCheck(this, Keyboard); var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options)); _this.bindings = {}; Object.keys(_this.options.bindings).forEach(function (name) { if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) { return; } if (_this.options.bindings[name]) { _this.addBinding(_this.options.bindings[name]); } }); _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter); _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {}); if (/Firefox/i.test(navigator.userAgent)) { // Need to handle delete and backspace for Firefox in the general case #1171 _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace); _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete); } else { _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace); _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete); } _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange); _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange); _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace); _this.listen(); return _this; } _createClass(Keyboard, [{ key: 'addBinding', value: function addBinding(key) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var binding = normalize(key); if (binding == null || binding.key == null) { return debug.warn('Attempted to add invalid keyboard binding', binding); } if (typeof context === 'function') { context = { handler: context }; } if (typeof handler === 'function') { handler = { handler: handler }; } binding = (0, _extend2.default)(binding, context, handler); this.bindings[binding.key] = this.bindings[binding.key] || []; this.bindings[binding.key].push(binding); } }, { key: 'listen', value: function listen() { var _this2 = this; this.quill.root.addEventListener('keydown', function (evt) { if (evt.defaultPrevented) return; var which = evt.which || evt.keyCode; var bindings = (_this2.bindings[which] || []).filter(function (binding) { return Keyboard.match(evt, binding); }); if (bindings.length === 0) return; var range = _this2.quill.getSelection(); if (range == null || !_this2.quill.hasFocus()) return; var _quill$getLine = _this2.quill.getLine(range.index), _quill$getLine2 = _slicedToArray(_quill$getLine, 2), line = _quill$getLine2[0], offset = _quill$getLine2[1]; var _quill$getLeaf = _this2.quill.getLeaf(range.index), _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2), leafStart = _quill$getLeaf2[0], offsetStart = _quill$getLeaf2[1]; var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length), _ref2 = _slicedToArray(_ref, 2), leafEnd = _ref2[0], offsetEnd = _ref2[1]; var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : ''; var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : ''; var curContext = { collapsed: range.length === 0, empty: range.length === 0 && line.length() <= 1, format: _this2.quill.getFormat(range), offset: offset, prefix: prefixText, suffix: suffixText }; var prevented = bindings.some(function (binding) { if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false; if (binding.empty != null && binding.empty !== curContext.empty) return false; if (binding.offset != null && binding.offset !== curContext.offset) return false; if (Array.isArray(binding.format)) { // any format is present if (binding.format.every(function (name) { return curContext.format[name] == null; })) { return false; } } else if (_typeof(binding.format) === 'object') { // all formats must match if (!Object.keys(binding.format).every(function (name) { if (binding.format[name] === true) return curContext.format[name] != null; if (binding.format[name] === false) return curContext.format[name] == null; return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]); })) { return false; } } if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false; if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false; return binding.handler.call(_this2, range, curContext) !== true; }); if (prevented) { evt.preventDefault(); } }); } }]); return Keyboard; }(_module2.default); Keyboard.keys = { BACKSPACE: 8, TAB: 9, ENTER: 13, ESCAPE: 27, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; Keyboard.DEFAULTS = { bindings: { 'bold': makeFormatHandler('bold'), 'italic': makeFormatHandler('italic'), 'underline': makeFormatHandler('underline'), 'indent': { // highlight tab or tab at beginning of list, indent or blockquote key: Keyboard.keys.TAB, format: ['blockquote', 'indent', 'list'], handler: function handler(range, context) { if (context.collapsed && context.offset !== 0) return true; this.quill.format('indent', '+1', _quill2.default.sources.USER); } }, 'outdent': { key: Keyboard.keys.TAB, shiftKey: true, format: ['blockquote', 'indent', 'list'], // highlight tab or tab at beginning of list, indent or blockquote handler: function handler(range, context) { if (context.collapsed && context.offset !== 0) return true; this.quill.format('indent', '-1', _quill2.default.sources.USER); } }, 'outdent backspace': { key: Keyboard.keys.BACKSPACE, collapsed: true, shiftKey: null, metaKey: null, ctrlKey: null, altKey: null, format: ['indent', 'list'], offset: 0, handler: function handler(range, context) { if (context.format.indent != null) { this.quill.format('indent', '-1', _quill2.default.sources.USER); } else if (context.format.list != null) { this.quill.format('list', false, _quill2.default.sources.USER); } } }, 'indent code-block': makeCodeBlockHandler(true), 'outdent code-block': makeCodeBlockHandler(false), 'remove tab': { key: Keyboard.keys.TAB, shiftKey: true, collapsed: true, prefix: /\t$/, handler: function handler(range) { this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER); } }, 'tab': { key: Keyboard.keys.TAB, handler: function handler(range) { this.quill.history.cutoff(); var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t'); this.quill.updateContents(delta, _quill2.default.sources.USER); this.quill.history.cutoff(); this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); } }, 'list empty enter': { key: Keyboard.keys.ENTER, collapsed: true, format: ['list'], empty: true, handler: function handler(range, context) { this.quill.format('list', false, _quill2.default.sources.USER); if (context.format.indent) { this.quill.format('indent', false, _quill2.default.sources.USER); } } }, 'checklist enter': { key: Keyboard.keys.ENTER, collapsed: true, format: { list: 'checked' }, handler: function handler(range) { var _quill$getLine3 = this.quill.getLine(range.index), _quill$getLine4 = _slicedToArray(_quill$getLine3, 2), line = _quill$getLine4[0], offset = _quill$getLine4[1]; var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' }); var delta = new _quillDelta2.default().retain(range.index).insert('\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' }); this.quill.updateContents(delta, _quill2.default.sources.USER); this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); this.quill.scrollIntoView(); } }, 'header enter': { key: Keyboard.keys.ENTER, collapsed: true, format: ['header'], suffix: /^$/, handler: function handler(range, context) { var _quill$getLine5 = this.quill.getLine(range.index), _quill$getLine6 = _slicedToArray(_quill$getLine5, 2), line = _quill$getLine6[0], offset = _quill$getLine6[1]; var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null }); this.quill.updateContents(delta, _quill2.default.sources.USER); this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); this.quill.scrollIntoView(); } }, 'list autofill': { key: ' ', collapsed: true, format: { list: false }, prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/, handler: function handler(range, context) { var length = context.prefix.length; var _quill$getLine7 = this.quill.getLine(range.index), _quill$getLine8 = _slicedToArray(_quill$getLine7, 2), line = _quill$getLine8[0], offset = _quill$getLine8[1]; if (offset > length) return true; var value = void 0; switch (context.prefix.trim()) { case '[]':case '[ ]': value = 'unchecked'; break; case '[x]': value = 'checked'; break; case '-':case '*': value = 'bullet'; break; default: value = 'ordered'; } this.quill.insertText(range.index, ' ', _quill2.default.sources.USER); this.quill.history.cutoff(); var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value }); this.quill.updateContents(delta, _quill2.default.sources.USER); this.quill.history.cutoff(); this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT); } }, 'code exit': { key: Keyboard.keys.ENTER, collapsed: true, format: ['code-block'], prefix: /\n\n$/, suffix: /^\s+$/, handler: function handler(range) { var _quill$getLine9 = this.quill.getLine(range.index), _quill$getLine10 = _slicedToArray(_quill$getLine9, 2), line = _quill$getLine10[0], offset = _quill$getLine10[1]; var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1); this.quill.updateContents(delta, _quill2.default.sources.USER); } }, 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false), 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true), 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false), 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true) } }; function makeEmbedArrowHandler(key, shiftKey) { var _ref3; var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix'; return _ref3 = { key: key, shiftKey: shiftKey, altKey: null }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) { var index = range.index; if (key === Keyboard.keys.RIGHT) { index += range.length + 1; } var _quill$getLeaf3 = this.quill.getLeaf(index), _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1), leaf = _quill$getLeaf4[0]; if (!(leaf instanceof _parchment2.default.Embed)) return true; if (key === Keyboard.keys.LEFT) { if (shiftKey) { this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER); } else { this.quill.setSelection(range.index - 1, _quill2.default.sources.USER); } } else { if (shiftKey) { this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER); } else { this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER); } } return false; }), _ref3; } function handleBackspace(range, context) { if (range.index === 0 || this.quill.getLength() <= 1) return; var _quill$getLine11 = this.quill.getLine(range.index), _quill$getLine12 = _slicedToArray(_quill$getLine11, 1), line = _quill$getLine12[0]; var formats = {}; if (context.offset === 0) { var _quill$getLine13 = this.quill.getLine(range.index - 1), _quill$getLine14 = _slicedToArray(_quill$getLine13, 1), prev = _quill$getLine14[0]; if (prev != null && prev.length() > 1) { var curFormats = line.formats(); var prevFormats = this.quill.getFormat(range.index - 1, 1); formats = _op2.default.attributes.diff(curFormats, prevFormats) || {}; } } // Check for astral symbols var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1; this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER); if (Object.keys(formats).length > 0) { this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER); } this.quill.focus(); } function handleDelete(range, context) { // Check for astral symbols var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1; if (range.index >= this.quill.getLength() - length) return; var formats = {}, nextLength = 0; var _quill$getLine15 = this.quill.getLine(range.index), _quill$getLine16 = _slicedToArray(_quill$getLine15, 1), line = _quill$getLine16[0]; if (context.offset >= line.length() - 1) { var _quill$getLine17 = this.quill.getLine(range.index + 1), _quill$getLine18 = _slicedToArray(_quill$getLine17, 1), next = _quill$getLine18[0]; if (next) { var curFormats = line.formats(); var nextFormats = this.quill.getFormat(range.index, 1); formats = _op2.default.attributes.diff(curFormats, nextFormats) || {}; nextLength = next.length(); } } this.quill.deleteText(range.index, length, _quill2.default.sources.USER); if (Object.keys(formats).length > 0) { this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER); } } function handleDeleteRange(range) { var lines = this.quill.getLines(range); var formats = {}; if (lines.length > 1) { var firstFormats = lines[0].formats(); var lastFormats = lines[lines.length - 1].formats(); formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {}; } this.quill.deleteText(range, _quill2.default.sources.USER); if (Object.keys(formats).length > 0) { this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER); } this.quill.setSelection(range.index, _quill2.default.sources.SILENT); this.quill.focus(); } function handleEnter(range, context) { var _this3 = this; if (range.length > 0) { this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change } var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) { if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) { lineFormats[format] = context.format[format]; } return lineFormats; }, {}); this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER); // Earlier scroll.deleteAt might have messed up our selection, // so insertText's built in selection preservation is not reliable this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); this.quill.focus(); Object.keys(context.format).forEach(function (name) { if (lineFormats[name] != null) return; if (Array.isArray(context.format[name])) return; if (name === 'link') return; _this3.quill.format(name, context.format[name], _quill2.default.sources.USER); }); } function makeCodeBlockHandler(indent) { return { key: Keyboard.keys.TAB, shiftKey: !indent, format: { 'code-block': true }, handler: function handler(range) { var CodeBlock = _parchment2.default.query('code-block'); var index = range.index, length = range.length; var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index), _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2), block = _quill$scroll$descend2[0], offset = _quill$scroll$descend2[1]; if (block == null) return; var scrollIndex = this.quill.getIndex(block); var start = block.newlineIndex(offset, true) + 1; var end = block.newlineIndex(scrollIndex + offset + length); var lines = block.domNode.textContent.slice(start, end).split('\n'); offset = 0; lines.forEach(function (line, i) { if (indent) { block.insertAt(start + offset, CodeBlock.TAB); offset += CodeBlock.TAB.length; if (i === 0) { index += CodeBlock.TAB.length; } else { length += CodeBlock.TAB.length; } } else if (line.startsWith(CodeBlock.TAB)) { block.deleteAt(start + offset, CodeBlock.TAB.length); offset -= CodeBlock.TAB.length; if (i === 0) { index -= CodeBlock.TAB.length; } else { length -= CodeBlock.TAB.length; } } offset += line.length + 1; }); this.quill.update(_quill2.default.sources.USER); this.quill.setSelection(index, length, _quill2.default.sources.SILENT); } }; } function makeFormatHandler(format) { return { key: format[0].toUpperCase(), shortKey: true, handler: function handler(range, context) { this.quill.format(format, !context.format[format], _quill2.default.sources.USER); } }; } function normalize(binding) { if (typeof binding === 'string' || typeof binding === 'number') { return normalize({ key: binding }); } if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') { binding = (0, _clone2.default)(binding, false); } if (typeof binding.key === 'string') { if (Keyboard.keys[binding.key.toUpperCase()] != null) { binding.key = Keyboard.keys[binding.key.toUpperCase()]; } else if (binding.key.length === 1) { binding.key = binding.key.toUpperCase().charCodeAt(0); } else { return null; } } if (binding.shortKey) { binding[SHORTKEY] = binding.shortKey; delete binding.shortKey; } return binding; } exports.default = Keyboard; exports.SHORTKEY = SHORTKEY; /***/ }, /* 24 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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; }; }(); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Cursor = function (_Parchment$Embed) { _inherits(Cursor, _Parchment$Embed); _createClass(Cursor, null, [{ key: 'value', value: function value() { return undefined; } }]); function Cursor(domNode, selection) { _classCallCheck(this, Cursor); var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode)); _this.selection = selection; _this.textNode = document.createTextNode(Cursor.CONTENTS); _this.domNode.appendChild(_this.textNode); _this._length = 0; return _this; } _createClass(Cursor, [{ key: 'detach', value: function detach() { // super.detach() will also clear domNode.__blot if (this.parent != null) this.parent.removeChild(this); } }, { key: 'format', value: function format(name, value) { if (this._length !== 0) { return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value); } var target = this, index = 0; while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) { index += target.offset(target.parent); target = target.parent; } if (target != null) { this._length = Cursor.CONTENTS.length; target.optimize(); target.formatAt(index, Cursor.CONTENTS.length, name, value); this._length = 0; } } }, { key: 'index', value: function index(node, offset) { if (node === this.textNode) return 0; return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset); } }, { key: 'length', value: function length() { return this._length; } }, { key: 'position', value: function position() { return [this.textNode, this.textNode.data.length]; } }, { key: 'remove', value: function remove() { _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this); this.parent = null; } }, { key: 'restore', value: function restore() { if (this.selection.composing || this.parent == null) return; var textNode = this.textNode; var range = this.selection.getNativeRange(); var restoreText = void 0, start = void 0, end = void 0; if (range != null && range.start.node === textNode && range.end.node === textNode) { var _ref = [textNode, range.start.offset, range.end.offset]; restoreText = _ref[0]; start = _ref[1]; end = _ref[2]; } // Link format will insert text outside of anchor tag while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) { this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode); } if (this.textNode.data !== Cursor.CONTENTS) { var text = this.textNode.data.split(Cursor.CONTENTS).join(''); if (this.next instanceof _text2.default) { restoreText = this.next.domNode; this.next.insertAt(0, text); this.textNode.data = Cursor.CONTENTS; } else { this.textNode.data = text; this.parent.insertBefore(_parchment2.default.create(this.textNode), this); this.textNode = document.createTextNode(Cursor.CONTENTS); this.domNode.appendChild(this.textNode); } } this.remove(); if (start != null) { var _map = [start, end].map(function (offset) { return Math.max(0, Math.min(restoreText.data.length, offset - 1)); }); var _map2 = _slicedToArray(_map, 2); start = _map2[0]; end = _map2[1]; return { startNode: restoreText, startOffset: start, endNode: restoreText, endOffset: end }; } } }, { key: 'update', value: function update(mutations, context) { var _this2 = this; if (mutations.some(function (mutation) { return mutation.type === 'characterData' && mutation.target === _this2.textNode; })) { var range = this.restore(); if (range) context.range = range; } } }, { key: 'value', value: function value() { return ''; } }]); return Cursor; }(_parchment2.default.Embed); Cursor.blotName = 'cursor'; Cursor.className = 'ql-cursor'; Cursor.tagName = 'span'; Cursor.CONTENTS = '\uFEFF'; // Zero width no break space exports.default = Cursor; /***/ }, /* 25 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Container = function (_Parchment$Container) { _inherits(Container, _Parchment$Container); function Container() { _classCallCheck(this, Container); return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments)); } return Container; }(_parchment2.default.Container); Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container]; exports.default = Container; /***/ }, /* 26 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined; 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ColorAttributor = function (_Parchment$Attributor) { _inherits(ColorAttributor, _Parchment$Attributor); function ColorAttributor() { _classCallCheck(this, ColorAttributor); return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments)); } _createClass(ColorAttributor, [{ key: 'value', value: function value(domNode) { var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode); if (!value.startsWith('rgb(')) return value; value = value.replace(/^[^\d]+/, '').replace(/[^\d]+$/, ''); return '#' + value.split(',').map(function (component) { return ('00' + parseInt(component).toString(16)).slice(-2); }).join(''); } }]); return ColorAttributor; }(_parchment2.default.Attributor.Style); var ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', { scope: _parchment2.default.Scope.INLINE }); var ColorStyle = new ColorAttributor('color', 'color', { scope: _parchment2.default.Scope.INLINE }); exports.ColorAttributor = ColorAttributor; exports.ColorClass = ColorClass; exports.ColorStyle = ColorStyle; /***/ }, /* 27 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sanitize = exports.default = undefined; 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); } }; var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Link = function (_Inline) { _inherits(Link, _Inline); function Link() { _classCallCheck(this, Link); return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments)); } _createClass(Link, [{ key: 'format', value: function format(name, value) { if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value); value = this.constructor.sanitize(value); this.domNode.setAttribute('href', value); } }], [{ key: 'create', value: function create(value) { var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value); value = this.sanitize(value); node.setAttribute('href', value); node.setAttribute('rel', 'noopener noreferrer'); node.setAttribute('target', '_blank'); return node; } }, { key: 'formats', value: function formats(domNode) { return domNode.getAttribute('href'); } }, { key: 'sanitize', value: function sanitize(url) { return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL; } }]); return Link; }(_inline2.default); Link.blotName = 'link'; Link.tagName = 'A'; Link.SANITIZED_URL = 'about:blank'; Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel']; function _sanitize(url, protocols) { var anchor = document.createElement('a'); anchor.href = url; var protocol = anchor.href.slice(0, anchor.href.indexOf(':')); return protocols.indexOf(protocol) > -1; } exports.default = Link; exports.sanitize = _sanitize; /***/ }, /* 28 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); }; 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 _keyboard = __webpack_require__(23); var _keyboard2 = _interopRequireDefault(_keyboard); var _dropdown = __webpack_require__(107); var _dropdown2 = _interopRequireDefault(_dropdown); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var optionsCounter = 0; function toggleAriaAttribute(element, attribute) { element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true')); } var Picker = function () { function Picker(select) { var _this = this; _classCallCheck(this, Picker); this.select = select; this.container = document.createElement('span'); this.buildPicker(); this.select.style.display = 'none'; this.select.parentNode.insertBefore(this.container, this.select); this.label.addEventListener('mousedown', function () { _this.togglePicker(); }); this.label.addEventListener('keydown', function (event) { switch (event.keyCode) { // Allows the "Enter" key to open the picker case _keyboard2.default.keys.ENTER: _this.togglePicker(); break; // Allows the "Escape" key to close the picker case _keyboard2.default.keys.ESCAPE: _this.escape(); event.preventDefault(); break; default: } }); this.select.addEventListener('change', this.update.bind(this)); } _createClass(Picker, [{ key: 'togglePicker', value: function togglePicker() { this.container.classList.toggle('ql-expanded'); // Toggle aria-expanded and aria-hidden to make the picker accessible toggleAriaAttribute(this.label, 'aria-expanded'); toggleAriaAttribute(this.options, 'aria-hidden'); } }, { key: 'buildItem', value: function buildItem(option) { var _this2 = this; var item = document.createElement('span'); item.tabIndex = '0'; item.setAttribute('role', 'button'); item.classList.add('ql-picker-item'); if (option.hasAttribute('value')) { item.setAttribute('data-value', option.getAttribute('value')); } if (option.textContent) { item.setAttribute('data-label', option.textContent); } item.addEventListener('click', function () { _this2.selectItem(item, true); }); item.addEventListener('keydown', function (event) { switch (event.keyCode) { // Allows the "Enter" key to select an item case _keyboard2.default.keys.ENTER: _this2.selectItem(item, true); event.preventDefault(); break; // Allows the "Escape" key to close the picker case _keyboard2.default.keys.ESCAPE: _this2.escape(); event.preventDefault(); break; default: } }); return item; } }, { key: 'buildLabel', value: function buildLabel() { var label = document.createElement('span'); label.classList.add('ql-picker-label'); label.innerHTML = _dropdown2.default; label.tabIndex = '0'; label.setAttribute('role', 'button'); label.setAttribute('aria-expanded', 'false'); this.container.appendChild(label); return label; } }, { key: 'buildOptions', value: function buildOptions() { var _this3 = this; var options = document.createElement('span'); options.classList.add('ql-picker-options'); // Don't want screen readers to read this until options are visible options.setAttribute('aria-hidden', 'true'); options.tabIndex = '-1'; // Need a unique id for aria-controls options.id = 'ql-picker-options-' + optionsCounter; optionsCounter += 1; this.label.setAttribute('aria-controls', options.id); this.options = options; [].slice.call(this.select.options).forEach(function (option) { var item = _this3.buildItem(option); options.appendChild(item); if (option.selected === true) { _this3.selectItem(item); } }); this.container.appendChild(options); } }, { key: 'buildPicker', value: function buildPicker() { var _this4 = this; [].slice.call(this.select.attributes).forEach(function (item) { _this4.container.setAttribute(item.name, item.value); }); this.container.classList.add('ql-picker'); this.label = this.buildLabel(); this.buildOptions(); } }, { key: 'escape', value: function escape() { var _this5 = this; // Close menu and return focus to trigger label this.close(); // Need setTimeout for accessibility to ensure that the browser executes // focus on the next process thread and after any DOM content changes setTimeout(function () { return _this5.label.focus(); }, 1); } }, { key: 'close', value: function close() { this.container.classList.remove('ql-expanded'); this.label.setAttribute('aria-expanded', 'false'); this.options.setAttribute('aria-hidden', 'true'); } }, { key: 'selectItem', value: function selectItem(item) { var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var selected = this.container.querySelector('.ql-selected'); if (item === selected) return; if (selected != null) { selected.classList.remove('ql-selected'); } if (item == null) return; item.classList.add('ql-selected'); this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item); if (item.hasAttribute('data-value')) { this.label.setAttribute('data-value', item.getAttribute('data-value')); } else { this.label.removeAttribute('data-value'); } if (item.hasAttribute('data-label')) { this.label.setAttribute('data-label', item.getAttribute('data-label')); } else { this.label.removeAttribute('data-label'); } if (trigger) { if (typeof Event === 'function') { this.select.dispatchEvent(new Event('change')); } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') { // IE11 var event = document.createEvent('Event'); event.initEvent('change', true, true); this.select.dispatchEvent(event); } this.close(); } } }, { key: 'update', value: function update() { var option = void 0; if (this.select.selectedIndex > -1) { var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex]; option = this.select.options[this.select.selectedIndex]; this.selectItem(item); } else { this.selectItem(null); } var isActive = option != null && option !== this.select.querySelector('option[selected]'); this.label.classList.toggle('ql-active', isActive); } }]); return Picker; }(); exports.default = Picker; /***/ }, /* 29 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); var _break = __webpack_require__(16); var _break2 = _interopRequireDefault(_break); var _container = __webpack_require__(25); var _container2 = _interopRequireDefault(_container); var _cursor = __webpack_require__(24); var _cursor2 = _interopRequireDefault(_cursor); var _embed = __webpack_require__(35); var _embed2 = _interopRequireDefault(_embed); var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); var _scroll = __webpack_require__(22); var _scroll2 = _interopRequireDefault(_scroll); var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); var _clipboard = __webpack_require__(55); var _clipboard2 = _interopRequireDefault(_clipboard); var _history = __webpack_require__(42); var _history2 = _interopRequireDefault(_history); var _keyboard = __webpack_require__(23); var _keyboard2 = _interopRequireDefault(_keyboard); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _quill2.default.register({ 'blots/block': _block2.default, 'blots/block/embed': _block.BlockEmbed, 'blots/break': _break2.default, 'blots/container': _container2.default, 'blots/cursor': _cursor2.default, 'blots/embed': _embed2.default, 'blots/inline': _inline2.default, 'blots/scroll': _scroll2.default, 'blots/text': _text2.default, 'modules/clipboard': _clipboard2.default, 'modules/history': _history2.default, 'modules/keyboard': _keyboard2.default }); _parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default); exports.default = _quill2.default; /***/ }, /* 30 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Registry = __webpack_require__(1); var ShadowBlot = /** @class */function () { function ShadowBlot(domNode) { this.domNode = domNode; // @ts-ignore this.domNode[Registry.DATA_KEY] = { blot: this }; } Object.defineProperty(ShadowBlot.prototype, "statics", { // Hack for accessing inherited static methods get: function get() { return this.constructor; }, enumerable: true, configurable: true }); ShadowBlot.create = function (value) { if (this.tagName == null) { throw new Registry.ParchmentError('Blot definition missing tagName'); } var node; if (Array.isArray(this.tagName)) { if (typeof value === 'string') { value = value.toUpperCase(); if (parseInt(value).toString() === value) { value = parseInt(value); } } if (typeof value === 'number') { node = document.createElement(this.tagName[value - 1]); } else if (this.tagName.indexOf(value) > -1) { node = document.createElement(value); } else { node = document.createElement(this.tagName[0]); } } else { node = document.createElement(this.tagName); } if (this.className) { node.classList.add(this.className); } return node; }; ShadowBlot.prototype.attach = function () { if (this.parent != null) { this.scroll = this.parent.scroll; } }; ShadowBlot.prototype.clone = function () { var domNode = this.domNode.cloneNode(false); return Registry.create(domNode); }; ShadowBlot.prototype.detach = function () { if (this.parent != null) this.parent.removeChild(this); // @ts-ignore delete this.domNode[Registry.DATA_KEY]; }; ShadowBlot.prototype.deleteAt = function (index, length) { var blot = this.isolate(index, length); blot.remove(); }; ShadowBlot.prototype.formatAt = function (index, length, name, value) { var blot = this.isolate(index, length); if (Registry.query(name, Registry.Scope.BLOT) != null && value) { blot.wrap(name, value); } else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) { var parent = Registry.create(this.statics.scope); blot.wrap(parent); parent.format(name, value); } }; ShadowBlot.prototype.insertAt = function (index, value, def) { var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); var ref = this.split(index); this.parent.insertBefore(blot, ref); }; ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) { if (refBlot === void 0) { refBlot = null; } if (this.parent != null) { this.parent.children.remove(this); } var refDomNode = null; parentBlot.children.insertBefore(this, refBlot); if (refBlot != null) { refDomNode = refBlot.domNode; } if (this.domNode.parentNode != parentBlot.domNode || this.domNode.nextSibling != refDomNode) { parentBlot.domNode.insertBefore(this.domNode, refDomNode); } this.parent = parentBlot; this.attach(); }; ShadowBlot.prototype.isolate = function (index, length) { var target = this.split(index); target.split(length); return target; }; ShadowBlot.prototype.length = function () { return 1; }; ShadowBlot.prototype.offset = function (root) { if (root === void 0) { root = this.parent; } if (this.parent == null || this == root) return 0; return this.parent.children.offset(this) + this.parent.offset(root); }; ShadowBlot.prototype.optimize = function (context) { // TODO clean up once we use WeakMap // @ts-ignore if (this.domNode[Registry.DATA_KEY] != null) { // @ts-ignore delete this.domNode[Registry.DATA_KEY].mutations; } }; ShadowBlot.prototype.remove = function () { if (this.domNode.parentNode != null) { this.domNode.parentNode.removeChild(this.domNode); } this.detach(); }; ShadowBlot.prototype.replace = function (target) { if (target.parent == null) return; target.parent.insertBefore(this, target.next); target.remove(); }; ShadowBlot.prototype.replaceWith = function (name, value) { var replacement = typeof name === 'string' ? Registry.create(name, value) : name; replacement.replace(this); return replacement; }; ShadowBlot.prototype.split = function (index, force) { return index === 0 ? this : this.next; }; ShadowBlot.prototype.update = function (mutations, context) { // Nothing to do by default }; ShadowBlot.prototype.wrap = function (name, value) { var wrapper = typeof name === 'string' ? Registry.create(name, value) : name; if (this.parent != null) { this.parent.insertBefore(wrapper, this.next); } wrapper.appendChild(this); return wrapper; }; ShadowBlot.blotName = 'abstract'; return ShadowBlot; }(); exports.default = ShadowBlot; /***/ }, /* 31 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var attributor_1 = __webpack_require__(12); var class_1 = __webpack_require__(32); var style_1 = __webpack_require__(33); var Registry = __webpack_require__(1); var AttributorStore = /** @class */function () { function AttributorStore(domNode) { this.attributes = {}; this.domNode = domNode; this.build(); } AttributorStore.prototype.attribute = function (attribute, value) { // verb if (value) { if (attribute.add(this.domNode, value)) { if (attribute.value(this.domNode) != null) { this.attributes[attribute.attrName] = attribute; } else { delete this.attributes[attribute.attrName]; } } } else { attribute.remove(this.domNode); delete this.attributes[attribute.attrName]; } }; AttributorStore.prototype.build = function () { var _this = this; this.attributes = {}; var attributes = attributor_1.default.keys(this.domNode); var classes = class_1.default.keys(this.domNode); var styles = style_1.default.keys(this.domNode); attributes.concat(classes).concat(styles).forEach(function (name) { var attr = Registry.query(name, Registry.Scope.ATTRIBUTE); if (attr instanceof attributor_1.default) { _this.attributes[attr.attrName] = attr; } }); }; AttributorStore.prototype.copy = function (target) { var _this = this; Object.keys(this.attributes).forEach(function (key) { var value = _this.attributes[key].value(_this.domNode); target.format(key, value); }); }; AttributorStore.prototype.move = function (target) { var _this = this; this.copy(target); Object.keys(this.attributes).forEach(function (key) { _this.attributes[key].remove(_this.domNode); }); this.attributes = {}; }; AttributorStore.prototype.values = function () { var _this = this; return Object.keys(this.attributes).reduce(function (attributes, name) { attributes[name] = _this.attributes[name].value(_this.domNode); return attributes; }, {}); }; return AttributorStore; }(); exports.default = AttributorStore; /***/ }, /* 32 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var attributor_1 = __webpack_require__(12); function match(node, prefix) { var className = node.getAttribute('class') || ''; return className.split(/\s+/).filter(function (name) { return name.indexOf(prefix + "-") === 0; }); } var ClassAttributor = /** @class */function (_super) { __extends(ClassAttributor, _super); function ClassAttributor() { return _super !== null && _super.apply(this, arguments) || this; } ClassAttributor.keys = function (node) { return (node.getAttribute('class') || '').split(/\s+/).map(function (name) { return name.split('-').slice(0, -1).join('-'); }); }; ClassAttributor.prototype.add = function (node, value) { if (!this.canAdd(node, value)) return false; this.remove(node); node.classList.add(this.keyName + "-" + value); return true; }; ClassAttributor.prototype.remove = function (node) { var matches = match(node, this.keyName); matches.forEach(function (name) { node.classList.remove(name); }); if (node.classList.length === 0) { node.removeAttribute('class'); } }; ClassAttributor.prototype.value = function (node) { var result = match(node, this.keyName)[0] || ''; var value = result.slice(this.keyName.length + 1); // +1 for hyphen return this.canAdd(node, value) ? value : ''; }; return ClassAttributor; }(attributor_1.default); exports.default = ClassAttributor; /***/ }, /* 33 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var attributor_1 = __webpack_require__(12); function camelize(name) { var parts = name.split('-'); var rest = parts.slice(1).map(function (part) { return part[0].toUpperCase() + part.slice(1); }).join(''); return parts[0] + rest; } var StyleAttributor = /** @class */function (_super) { __extends(StyleAttributor, _super); function StyleAttributor() { return _super !== null && _super.apply(this, arguments) || this; } StyleAttributor.keys = function (node) { return (node.getAttribute('style') || '').split(';').map(function (value) { var arr = value.split(':'); return arr[0].trim(); }); }; StyleAttributor.prototype.add = function (node, value) { if (!this.canAdd(node, value)) return false; // @ts-ignore node.style[camelize(this.keyName)] = value; return true; }; StyleAttributor.prototype.remove = function (node) { // @ts-ignore node.style[camelize(this.keyName)] = ''; if (!node.getAttribute('style')) { node.removeAttribute('style'); } }; StyleAttributor.prototype.value = function (node) { // @ts-ignore var value = node.style[camelize(this.keyName)]; return this.canAdd(node, value) ? value : ''; }; return StyleAttributor; }(attributor_1.default); exports.default = StyleAttributor; /***/ }, /* 34 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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"); } } var Theme = function () { function Theme(quill, options) { _classCallCheck(this, Theme); this.quill = quill; this.options = options; this.modules = {}; } _createClass(Theme, [{ key: 'init', value: function init() { var _this = this; Object.keys(this.options.modules).forEach(function (name) { if (_this.modules[name] == null) { _this.addModule(name); } }); } }, { key: 'addModule', value: function addModule(name) { var moduleClass = this.quill.constructor.import('modules/' + name); this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {}); return this.modules[name]; } }]); return Theme; }(); Theme.DEFAULTS = { modules: {} }; Theme.themes = { 'default': Theme }; exports.default = Theme; /***/ }, /* 35 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _text = __webpack_require__(7); var _text2 = _interopRequireDefault(_text); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var GUARD_TEXT = '\uFEFF'; var Embed = function (_Parchment$Embed) { _inherits(Embed, _Parchment$Embed); function Embed(node) { _classCallCheck(this, Embed); var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node)); _this.contentNode = document.createElement('span'); _this.contentNode.setAttribute('contenteditable', false); [].slice.call(_this.domNode.childNodes).forEach(function (childNode) { _this.contentNode.appendChild(childNode); }); _this.leftGuard = document.createTextNode(GUARD_TEXT); _this.rightGuard = document.createTextNode(GUARD_TEXT); _this.domNode.appendChild(_this.leftGuard); _this.domNode.appendChild(_this.contentNode); _this.domNode.appendChild(_this.rightGuard); return _this; } _createClass(Embed, [{ key: 'index', value: function index(node, offset) { if (node === this.leftGuard) return 0; if (node === this.rightGuard) return 1; return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset); } }, { key: 'restore', value: function restore(node) { var range = void 0, textNode = void 0; var text = node.data.split(GUARD_TEXT).join(''); if (node === this.leftGuard) { if (this.prev instanceof _text2.default) { var prevLength = this.prev.length(); this.prev.insertAt(prevLength, text); range = { startNode: this.prev.domNode, startOffset: prevLength + text.length }; } else { textNode = document.createTextNode(text); this.parent.insertBefore(_parchment2.default.create(textNode), this); range = { startNode: textNode, startOffset: text.length }; } } else if (node === this.rightGuard) { if (this.next instanceof _text2.default) { this.next.insertAt(0, text); range = { startNode: this.next.domNode, startOffset: text.length }; } else { textNode = document.createTextNode(text); this.parent.insertBefore(_parchment2.default.create(textNode), this.next); range = { startNode: textNode, startOffset: text.length }; } } node.data = GUARD_TEXT; return range; } }, { key: 'update', value: function update(mutations, context) { var _this2 = this; mutations.forEach(function (mutation) { if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) { var range = _this2.restore(mutation.target); if (range) context.range = range; } }); } }]); return Embed; }(_parchment2.default.Embed); exports.default = Embed; /***/ }, /* 36 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var config = { scope: _parchment2.default.Scope.BLOCK, whitelist: ['right', 'center', 'justify'] }; var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config); var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config); var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config); exports.AlignAttribute = AlignAttribute; exports.AlignClass = AlignClass; exports.AlignStyle = AlignStyle; /***/ }, /* 37 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BackgroundStyle = exports.BackgroundClass = undefined; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _color = __webpack_require__(26); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', { scope: _parchment2.default.Scope.INLINE }); var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', { scope: _parchment2.default.Scope.INLINE }); exports.BackgroundClass = BackgroundClass; exports.BackgroundStyle = BackgroundStyle; /***/ }, /* 38 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var config = { scope: _parchment2.default.Scope.BLOCK, whitelist: ['rtl'] }; var DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config); var DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config); var DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config); exports.DirectionAttribute = DirectionAttribute; exports.DirectionClass = DirectionClass; exports.DirectionStyle = DirectionStyle; /***/ }, /* 39 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FontClass = exports.FontStyle = undefined; 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var config = { scope: _parchment2.default.Scope.INLINE, whitelist: ['serif', 'monospace'] }; var FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config); var FontStyleAttributor = function (_Parchment$Attributor) { _inherits(FontStyleAttributor, _Parchment$Attributor); function FontStyleAttributor() { _classCallCheck(this, FontStyleAttributor); return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments)); } _createClass(FontStyleAttributor, [{ key: 'value', value: function value(node) { return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/["']/g, ''); } }]); return FontStyleAttributor; }(_parchment2.default.Attributor.Style); var FontStyle = new FontStyleAttributor('font', 'font-family', config); exports.FontStyle = FontStyle; exports.FontClass = FontClass; /***/ }, /* 40 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SizeStyle = exports.SizeClass = undefined; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', { scope: _parchment2.default.Scope.INLINE, whitelist: ['small', 'large', 'huge'] }); var SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', { scope: _parchment2.default.Scope.INLINE, whitelist: ['10px', '18px', '32px'] }); exports.SizeClass = SizeClass; exports.SizeStyle = SizeStyle; /***/ }, /* 41 */ /***/function (module, exports, __webpack_require__) { "use strict"; module.exports = { 'align': { '': __webpack_require__(76), 'center': __webpack_require__(77), 'right': __webpack_require__(78), 'justify': __webpack_require__(79) }, 'background': __webpack_require__(80), 'blockquote': __webpack_require__(81), 'bold': __webpack_require__(82), 'clean': __webpack_require__(83), 'code': __webpack_require__(58), 'code-block': __webpack_require__(58), 'color': __webpack_require__(84), 'direction': { '': __webpack_require__(85), 'rtl': __webpack_require__(86) }, 'float': { 'center': __webpack_require__(87), 'full': __webpack_require__(88), 'left': __webpack_require__(89), 'right': __webpack_require__(90) }, 'formula': __webpack_require__(91), 'header': { '1': __webpack_require__(92), '2': __webpack_require__(93) }, 'italic': __webpack_require__(94), 'image': __webpack_require__(95), 'indent': { '+1': __webpack_require__(96), '-1': __webpack_require__(97) }, 'link': __webpack_require__(98), 'list': { 'ordered': __webpack_require__(99), 'bullet': __webpack_require__(100), 'check': __webpack_require__(101) }, 'script': { 'sub': __webpack_require__(102), 'super': __webpack_require__(103) }, 'strike': __webpack_require__(104), 'underline': __webpack_require__(105), 'video': __webpack_require__(106) }; /***/ }, /* 42 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLastChangeIndex = exports.default = undefined; 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 _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var History = function (_Module) { _inherits(History, _Module); function History(quill, options) { _classCallCheck(this, History); var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options)); _this.lastRecorded = 0; _this.ignoreChange = false; _this.clear(); _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) { if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return; if (!_this.options.userOnly || source === _quill2.default.sources.USER) { _this.record(delta, oldDelta); } else { _this.transform(delta); } }); _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this)); _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this)); if (/Win/i.test(navigator.platform)) { _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this)); } return _this; } _createClass(History, [{ key: 'change', value: function change(source, dest) { if (this.stack[source].length === 0) return; var delta = this.stack[source].pop(); this.stack[dest].push(delta); this.lastRecorded = 0; this.ignoreChange = true; this.quill.updateContents(delta[source], _quill2.default.sources.USER); this.ignoreChange = false; var index = getLastChangeIndex(delta[source]); this.quill.setSelection(index); } }, { key: 'clear', value: function clear() { this.stack = { undo: [], redo: [] }; } }, { key: 'cutoff', value: function cutoff() { this.lastRecorded = 0; } }, { key: 'record', value: function record(changeDelta, oldDelta) { if (changeDelta.ops.length === 0) return; this.stack.redo = []; var undoDelta = this.quill.getContents().diff(oldDelta); var timestamp = Date.now(); if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) { var delta = this.stack.undo.pop(); undoDelta = undoDelta.compose(delta.undo); changeDelta = delta.redo.compose(changeDelta); } else { this.lastRecorded = timestamp; } this.stack.undo.push({ redo: changeDelta, undo: undoDelta }); if (this.stack.undo.length > this.options.maxStack) { this.stack.undo.shift(); } } }, { key: 'redo', value: function redo() { this.change('redo', 'undo'); } }, { key: 'transform', value: function transform(delta) { this.stack.undo.forEach(function (change) { change.undo = delta.transform(change.undo, true); change.redo = delta.transform(change.redo, true); }); this.stack.redo.forEach(function (change) { change.undo = delta.transform(change.undo, true); change.redo = delta.transform(change.redo, true); }); } }, { key: 'undo', value: function undo() { this.change('undo', 'redo'); } }]); return History; }(_module2.default); History.DEFAULTS = { delay: 1000, maxStack: 100, userOnly: false }; function endsWithNewlineChange(delta) { var lastOp = delta.ops[delta.ops.length - 1]; if (lastOp == null) return false; if (lastOp.insert != null) { return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\n'); } if (lastOp.attributes != null) { return Object.keys(lastOp.attributes).some(function (attr) { return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null; }); } return false; } function getLastChangeIndex(delta) { var deleteLength = delta.reduce(function (length, op) { length += op.delete || 0; return length; }, 0); var changeIndex = delta.length() - deleteLength; if (endsWithNewlineChange(delta)) { changeIndex -= 1; } return changeIndex; } exports.default = History; exports.getLastChangeIndex = getLastChangeIndex; /***/ }, /* 43 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.BaseTooltip = undefined; 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); } }; var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _emitter = __webpack_require__(8); var _emitter2 = _interopRequireDefault(_emitter); var _keyboard = __webpack_require__(23); var _keyboard2 = _interopRequireDefault(_keyboard); var _theme = __webpack_require__(34); var _theme2 = _interopRequireDefault(_theme); var _colorPicker = __webpack_require__(59); var _colorPicker2 = _interopRequireDefault(_colorPicker); var _iconPicker = __webpack_require__(60); var _iconPicker2 = _interopRequireDefault(_iconPicker); var _picker = __webpack_require__(28); var _picker2 = _interopRequireDefault(_picker); var _tooltip = __webpack_require__(61); var _tooltip2 = _interopRequireDefault(_tooltip); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ALIGNS = [false, 'center', 'right', 'justify']; var COLORS = ["#000000", "#e60000", "#ff9900", "#ffff00", "#008a00", "#0066cc", "#9933ff", "#ffffff", "#facccc", "#ffebcc", "#ffffcc", "#cce8cc", "#cce0f5", "#ebd6ff", "#bbbbbb", "#f06666", "#ffc266", "#ffff66", "#66b966", "#66a3e0", "#c285ff", "#888888", "#a10000", "#b26b00", "#b2b200", "#006100", "#0047b2", "#6b24b2", "#444444", "#5c0000", "#663d00", "#666600", "#003700", "#002966", "#3d1466"]; var FONTS = [false, 'serif', 'monospace']; var HEADERS = ['1', '2', '3', false]; var SIZES = ['small', false, 'large', 'huge']; var BaseTheme = function (_Theme) { _inherits(BaseTheme, _Theme); function BaseTheme(quill, options) { _classCallCheck(this, BaseTheme); var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options)); var listener = function listener(e) { if (!document.body.contains(quill.root)) { return document.body.removeEventListener('click', listener); } if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) { _this.tooltip.hide(); } if (_this.pickers != null) { _this.pickers.forEach(function (picker) { if (!picker.container.contains(e.target)) { picker.close(); } }); } }; quill.emitter.listenDOM('click', document.body, listener); return _this; } _createClass(BaseTheme, [{ key: 'addModule', value: function addModule(name) { var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name); if (name === 'toolbar') { this.extendToolbar(module); } return module; } }, { key: 'buildButtons', value: function buildButtons(buttons, icons) { buttons.forEach(function (button) { var className = button.getAttribute('class') || ''; className.split(/\s+/).forEach(function (name) { if (!name.startsWith('ql-')) return; name = name.slice('ql-'.length); if (icons[name] == null) return; if (name === 'direction') { button.innerHTML = icons[name][''] + icons[name]['rtl']; } else if (typeof icons[name] === 'string') { button.innerHTML = icons[name]; } else { var value = button.value || ''; if (value != null && icons[name][value]) { button.innerHTML = icons[name][value]; } } }); }); } }, { key: 'buildPickers', value: function buildPickers(selects, icons) { var _this2 = this; this.pickers = selects.map(function (select) { if (select.classList.contains('ql-align')) { if (select.querySelector('option') == null) { fillSelect(select, ALIGNS); } return new _iconPicker2.default(select, icons.align); } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) { var format = select.classList.contains('ql-background') ? 'background' : 'color'; if (select.querySelector('option') == null) { fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000'); } return new _colorPicker2.default(select, icons[format]); } else { if (select.querySelector('option') == null) { if (select.classList.contains('ql-font')) { fillSelect(select, FONTS); } else if (select.classList.contains('ql-header')) { fillSelect(select, HEADERS); } else if (select.classList.contains('ql-size')) { fillSelect(select, SIZES); } } return new _picker2.default(select); } }); var update = function update() { _this2.pickers.forEach(function (picker) { picker.update(); }); }; this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update); } }]); return BaseTheme; }(_theme2.default); BaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, { modules: { toolbar: { handlers: { formula: function formula() { this.quill.theme.tooltip.edit('formula'); }, image: function image() { var _this3 = this; var fileInput = this.container.querySelector('input.ql-image[type=file]'); if (fileInput == null) { fileInput = document.createElement('input'); fileInput.setAttribute('type', 'file'); fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'); fileInput.classList.add('ql-image'); fileInput.addEventListener('change', function () { if (fileInput.files != null && fileInput.files[0] != null) { var reader = new FileReader(); reader.onload = function (e) { var range = _this3.quill.getSelection(true); _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER); _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT); fileInput.value = ""; }; reader.readAsDataURL(fileInput.files[0]); } }); this.container.appendChild(fileInput); } fileInput.click(); }, video: function video() { this.quill.theme.tooltip.edit('video'); } } } } }); var BaseTooltip = function (_Tooltip) { _inherits(BaseTooltip, _Tooltip); function BaseTooltip(quill, boundsContainer) { _classCallCheck(this, BaseTooltip); var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer)); _this4.textbox = _this4.root.querySelector('input[type="text"]'); _this4.listen(); return _this4; } _createClass(BaseTooltip, [{ key: 'listen', value: function listen() { var _this5 = this; this.textbox.addEventListener('keydown', function (event) { if (_keyboard2.default.match(event, 'enter')) { _this5.save(); event.preventDefault(); } else if (_keyboard2.default.match(event, 'escape')) { _this5.cancel(); event.preventDefault(); } }); } }, { key: 'cancel', value: function cancel() { this.hide(); } }, { key: 'edit', value: function edit() { var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link'; var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; this.root.classList.remove('ql-hidden'); this.root.classList.add('ql-editing'); if (preview != null) { this.textbox.value = preview; } else if (mode !== this.root.getAttribute('data-mode')) { this.textbox.value = ''; } this.position(this.quill.getBounds(this.quill.selection.savedRange)); this.textbox.select(); this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || ''); this.root.setAttribute('data-mode', mode); } }, { key: 'restoreFocus', value: function restoreFocus() { var scrollTop = this.quill.scrollingContainer.scrollTop; this.quill.focus(); this.quill.scrollingContainer.scrollTop = scrollTop; } }, { key: 'save', value: function save() { var value = this.textbox.value; switch (this.root.getAttribute('data-mode')) { case 'link': { var scrollTop = this.quill.root.scrollTop; if (this.linkRange) { this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER); delete this.linkRange; } else { this.restoreFocus(); this.quill.format('link', value, _emitter2.default.sources.USER); } this.quill.root.scrollTop = scrollTop; break; } case 'video': { value = extractVideoUrl(value); } // eslint-disable-next-line no-fallthrough case 'formula': { if (!value) break; var range = this.quill.getSelection(true); if (range != null) { var index = range.index + range.length; this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER); if (this.root.getAttribute('data-mode') === 'formula') { this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER); } this.quill.setSelection(index + 2, _emitter2.default.sources.USER); } break; } default: } this.textbox.value = ''; this.hide(); } }]); return BaseTooltip; }(_tooltip2.default); function extractVideoUrl(url) { var match = url.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/); if (match) { return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0'; } if (match = url.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/)) { // eslint-disable-line no-cond-assign return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/'; } return url; } function fillSelect(select, values) { var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; values.forEach(function (value) { var option = document.createElement('option'); if (value === defaultValue) { option.setAttribute('selected', 'selected'); } else { option.setAttribute('value', value); } select.appendChild(option); }); } exports.BaseTooltip = BaseTooltip; exports.default = BaseTheme; /***/ }, /* 44 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var LinkedList = /** @class */function () { function LinkedList() { this.head = this.tail = null; this.length = 0; } LinkedList.prototype.append = function () { var nodes = []; for (var _i = 0; _i < arguments.length; _i++) { nodes[_i] = arguments[_i]; } this.insertBefore(nodes[0], null); if (nodes.length > 1) { this.append.apply(this, nodes.slice(1)); } }; LinkedList.prototype.contains = function (node) { var cur, next = this.iterator(); while (cur = next()) { if (cur === node) return true; } return false; }; LinkedList.prototype.insertBefore = function (node, refNode) { if (!node) return; node.next = refNode; if (refNode != null) { node.prev = refNode.prev; if (refNode.prev != null) { refNode.prev.next = node; } refNode.prev = node; if (refNode === this.head) { this.head = node; } } else if (this.tail != null) { this.tail.next = node; node.prev = this.tail; this.tail = node; } else { node.prev = null; this.head = this.tail = node; } this.length += 1; }; LinkedList.prototype.offset = function (target) { var index = 0, cur = this.head; while (cur != null) { if (cur === target) return index; index += cur.length(); cur = cur.next; } return -1; }; LinkedList.prototype.remove = function (node) { if (!this.contains(node)) return; if (node.prev != null) node.prev.next = node.next; if (node.next != null) node.next.prev = node.prev; if (node === this.head) this.head = node.next; if (node === this.tail) this.tail = node.prev; this.length -= 1; }; LinkedList.prototype.iterator = function (curNode) { if (curNode === void 0) { curNode = this.head; } // TODO use yield when we can return function () { var ret = curNode; if (curNode != null) curNode = curNode.next; return ret; }; }; LinkedList.prototype.find = function (index, inclusive) { if (inclusive === void 0) { inclusive = false; } var cur, next = this.iterator(); while (cur = next()) { var length = cur.length(); if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) { return [cur, index]; } index -= length; } return [null, 0]; }; LinkedList.prototype.forEach = function (callback) { var cur, next = this.iterator(); while (cur = next()) { callback(cur); } }; LinkedList.prototype.forEachAt = function (index, length, callback) { if (length <= 0) return; var _a = this.find(index), startNode = _a[0], offset = _a[1]; var cur, curIndex = index - offset, next = this.iterator(startNode); while ((cur = next()) && curIndex < index + length) { var curLength = cur.length(); if (index > curIndex) { callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index)); } else { callback(cur, 0, Math.min(curLength, index + length - curIndex)); } curIndex += curLength; } }; LinkedList.prototype.map = function (callback) { return this.reduce(function (memo, cur) { memo.push(callback(cur)); return memo; }, []); }; LinkedList.prototype.reduce = function (callback, memo) { var cur, next = this.iterator(); while (cur = next()) { memo = callback(memo, cur); } return memo; }; return LinkedList; }(); exports.default = LinkedList; /***/ }, /* 45 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var container_1 = __webpack_require__(17); var Registry = __webpack_require__(1); var OBSERVER_CONFIG = { attributes: true, characterData: true, characterDataOldValue: true, childList: true, subtree: true }; var MAX_OPTIMIZE_ITERATIONS = 100; var ScrollBlot = /** @class */function (_super) { __extends(ScrollBlot, _super); function ScrollBlot(node) { var _this = _super.call(this, node) || this; _this.scroll = _this; _this.observer = new MutationObserver(function (mutations) { _this.update(mutations); }); _this.observer.observe(_this.domNode, OBSERVER_CONFIG); _this.attach(); return _this; } ScrollBlot.prototype.detach = function () { _super.prototype.detach.call(this); this.observer.disconnect(); }; ScrollBlot.prototype.deleteAt = function (index, length) { this.update(); if (index === 0 && length === this.length()) { this.children.forEach(function (child) { child.remove(); }); } else { _super.prototype.deleteAt.call(this, index, length); } }; ScrollBlot.prototype.formatAt = function (index, length, name, value) { this.update(); _super.prototype.formatAt.call(this, index, length, name, value); }; ScrollBlot.prototype.insertAt = function (index, value, def) { this.update(); _super.prototype.insertAt.call(this, index, value, def); }; ScrollBlot.prototype.optimize = function (mutations, context) { var _this = this; if (mutations === void 0) { mutations = []; } if (context === void 0) { context = {}; } _super.prototype.optimize.call(this, context); // We must modify mutations directly, cannot make copy and then modify var records = [].slice.call(this.observer.takeRecords()); // Array.push currently seems to be implemented by a non-tail recursive function // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords()); while (records.length > 0) { mutations.push(records.pop()); } // TODO use WeakMap var mark = function mark(blot, markParent) { if (markParent === void 0) { markParent = true; } if (blot == null || blot === _this) return; if (blot.domNode.parentNode == null) return; // @ts-ignore if (blot.domNode[Registry.DATA_KEY].mutations == null) { // @ts-ignore blot.domNode[Registry.DATA_KEY].mutations = []; } if (markParent) mark(blot.parent); }; var optimize = function optimize(blot) { // Post-order traversal if ( // @ts-ignore blot.domNode[Registry.DATA_KEY] == null || // @ts-ignore blot.domNode[Registry.DATA_KEY].mutations == null) { return; } if (blot instanceof container_1.default) { blot.children.forEach(optimize); } blot.optimize(context); }; var remaining = mutations; for (var i = 0; remaining.length > 0; i += 1) { if (i >= MAX_OPTIMIZE_ITERATIONS) { throw new Error('[Parchment] Maximum optimize iterations reached'); } remaining.forEach(function (mutation) { var blot = Registry.find(mutation.target, true); if (blot == null) return; if (blot.domNode === mutation.target) { if (mutation.type === 'childList') { mark(Registry.find(mutation.previousSibling, false)); [].forEach.call(mutation.addedNodes, function (node) { var child = Registry.find(node, false); mark(child, false); if (child instanceof container_1.default) { child.children.forEach(function (grandChild) { mark(grandChild, false); }); } }); } else if (mutation.type === 'attributes') { mark(blot.prev); } } mark(blot); }); this.children.forEach(optimize); remaining = [].slice.call(this.observer.takeRecords()); records = remaining.slice(); while (records.length > 0) { mutations.push(records.pop()); } } }; ScrollBlot.prototype.update = function (mutations, context) { var _this = this; if (context === void 0) { context = {}; } mutations = mutations || this.observer.takeRecords(); // TODO use WeakMap mutations.map(function (mutation) { var blot = Registry.find(mutation.target, true); if (blot == null) return null; // @ts-ignore if (blot.domNode[Registry.DATA_KEY].mutations == null) { // @ts-ignore blot.domNode[Registry.DATA_KEY].mutations = [mutation]; return blot; } else { // @ts-ignore blot.domNode[Registry.DATA_KEY].mutations.push(mutation); return null; } }).forEach(function (blot) { if (blot == null || blot === _this || //@ts-ignore blot.domNode[Registry.DATA_KEY] == null) return; // @ts-ignore blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context); }); // @ts-ignore if (this.domNode[Registry.DATA_KEY].mutations != null) { // @ts-ignore _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context); } this.optimize(mutations, context); }; ScrollBlot.blotName = 'scroll'; ScrollBlot.defaultChild = 'block'; ScrollBlot.scope = Registry.Scope.BLOCK_BLOT; ScrollBlot.tagName = 'DIV'; return ScrollBlot; }(container_1.default); exports.default = ScrollBlot; /***/ }, /* 46 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var format_1 = __webpack_require__(18); var Registry = __webpack_require__(1); // Shallow object comparison function isEqual(obj1, obj2) { if (Object.keys(obj1).length !== Object.keys(obj2).length) return false; // @ts-ignore for (var prop in obj1) { // @ts-ignore if (obj1[prop] !== obj2[prop]) return false; } return true; } var InlineBlot = /** @class */function (_super) { __extends(InlineBlot, _super); function InlineBlot() { return _super !== null && _super.apply(this, arguments) || this; } InlineBlot.formats = function (domNode) { if (domNode.tagName === InlineBlot.tagName) return undefined; return _super.formats.call(this, domNode); }; InlineBlot.prototype.format = function (name, value) { var _this = this; if (name === this.statics.blotName && !value) { this.children.forEach(function (child) { if (!(child instanceof format_1.default)) { child = child.wrap(InlineBlot.blotName, true); } _this.attributes.copy(child); }); this.unwrap(); } else { _super.prototype.format.call(this, name, value); } }; InlineBlot.prototype.formatAt = function (index, length, name, value) { if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) { var blot = this.isolate(index, length); blot.format(name, value); } else { _super.prototype.formatAt.call(this, index, length, name, value); } }; InlineBlot.prototype.optimize = function (context) { _super.prototype.optimize.call(this, context); var formats = this.formats(); if (Object.keys(formats).length === 0) { return this.unwrap(); // unformatted span } var next = this.next; if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) { next.moveChildren(this); next.remove(); } }; InlineBlot.blotName = 'inline'; InlineBlot.scope = Registry.Scope.INLINE_BLOT; InlineBlot.tagName = 'SPAN'; return InlineBlot; }(format_1.default); exports.default = InlineBlot; /***/ }, /* 47 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var format_1 = __webpack_require__(18); var Registry = __webpack_require__(1); var BlockBlot = /** @class */function (_super) { __extends(BlockBlot, _super); function BlockBlot() { return _super !== null && _super.apply(this, arguments) || this; } BlockBlot.formats = function (domNode) { var tagName = Registry.query(BlockBlot.blotName).tagName; if (domNode.tagName === tagName) return undefined; return _super.formats.call(this, domNode); }; BlockBlot.prototype.format = function (name, value) { if (Registry.query(name, Registry.Scope.BLOCK) == null) { return; } else if (name === this.statics.blotName && !value) { this.replaceWith(BlockBlot.blotName); } else { _super.prototype.format.call(this, name, value); } }; BlockBlot.prototype.formatAt = function (index, length, name, value) { if (Registry.query(name, Registry.Scope.BLOCK) != null) { this.format(name, value); } else { _super.prototype.formatAt.call(this, index, length, name, value); } }; BlockBlot.prototype.insertAt = function (index, value, def) { if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) { // Insert text or inline _super.prototype.insertAt.call(this, index, value, def); } else { var after = this.split(index); var blot = Registry.create(value, def); after.parent.insertBefore(blot, after); } }; BlockBlot.prototype.update = function (mutations, context) { if (navigator.userAgent.match(/Trident/)) { this.build(); } else { _super.prototype.update.call(this, mutations, context); } }; BlockBlot.blotName = 'block'; BlockBlot.scope = Registry.Scope.BLOCK_BLOT; BlockBlot.tagName = 'P'; return BlockBlot; }(format_1.default); exports.default = BlockBlot; /***/ }, /* 48 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var leaf_1 = __webpack_require__(19); var EmbedBlot = /** @class */function (_super) { __extends(EmbedBlot, _super); function EmbedBlot() { return _super !== null && _super.apply(this, arguments) || this; } EmbedBlot.formats = function (domNode) { return undefined; }; EmbedBlot.prototype.format = function (name, value) { // super.formatAt wraps, which is what we want in general, // but this allows subclasses to overwrite for formats // that just apply to particular embeds _super.prototype.formatAt.call(this, 0, this.length(), name, value); }; EmbedBlot.prototype.formatAt = function (index, length, name, value) { if (index === 0 && length === this.length()) { this.format(name, value); } else { _super.prototype.formatAt.call(this, index, length, name, value); } }; EmbedBlot.prototype.formats = function () { return this.statics.formats(this.domNode); }; return EmbedBlot; }(leaf_1.default); exports.default = EmbedBlot; /***/ }, /* 49 */ /***/function (module, exports, __webpack_require__) { "use strict"; var __extends = this && this.__extends || function () { var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) d[p] = b[p]; } }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); Object.defineProperty(exports, "__esModule", { value: true }); var leaf_1 = __webpack_require__(19); var Registry = __webpack_require__(1); var TextBlot = /** @class */function (_super) { __extends(TextBlot, _super); function TextBlot(node) { var _this = _super.call(this, node) || this; _this.text = _this.statics.value(_this.domNode); return _this; } TextBlot.create = function (value) { return document.createTextNode(value); }; TextBlot.value = function (domNode) { var text = domNode.data; // @ts-ignore if (text['normalize']) text = text['normalize'](); return text; }; TextBlot.prototype.deleteAt = function (index, length) { this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length); }; TextBlot.prototype.index = function (node, offset) { if (this.domNode === node) { return offset; } return -1; }; TextBlot.prototype.insertAt = function (index, value, def) { if (def == null) { this.text = this.text.slice(0, index) + value + this.text.slice(index); this.domNode.data = this.text; } else { _super.prototype.insertAt.call(this, index, value, def); } }; TextBlot.prototype.length = function () { return this.text.length; }; TextBlot.prototype.optimize = function (context) { _super.prototype.optimize.call(this, context); this.text = this.statics.value(this.domNode); if (this.text.length === 0) { this.remove(); } else if (this.next instanceof TextBlot && this.next.prev === this) { this.insertAt(this.length(), this.next.value()); this.next.remove(); } }; TextBlot.prototype.position = function (index, inclusive) { if (inclusive === void 0) { inclusive = false; } return [this.domNode, index]; }; TextBlot.prototype.split = function (index, force) { if (force === void 0) { force = false; } if (!force) { if (index === 0) return this; if (index === this.length()) return this.next; } var after = Registry.create(this.domNode.splitText(index)); this.parent.insertBefore(after, this.next); this.text = this.statics.value(this.domNode); return after; }; TextBlot.prototype.update = function (mutations, context) { var _this = this; if (mutations.some(function (mutation) { return mutation.type === 'characterData' && mutation.target === _this.domNode; })) { this.text = this.statics.value(this.domNode); } }; TextBlot.prototype.value = function () { return this.text; }; TextBlot.blotName = 'text'; TextBlot.scope = Registry.Scope.INLINE_BLOT; return TextBlot; }(leaf_1.default); exports.default = TextBlot; /***/ }, /* 50 */ /***/function (module, exports, __webpack_require__) { "use strict"; var elem = document.createElement('div'); elem.classList.toggle('test-class', false); if (elem.classList.contains('test-class')) { var _toggle = DOMTokenList.prototype.toggle; DOMTokenList.prototype.toggle = function (token, force) { if (arguments.length > 1 && !this.contains(token) === !force) { return force; } else { return _toggle.call(this, token); } }; } if (!String.prototype.startsWith) { String.prototype.startsWith = function (searchString, position) { position = position || 0; return this.substr(position, searchString.length) === searchString; }; } if (!String.prototype.endsWith) { String.prototype.endsWith = function (searchString, position) { var subjectString = this.toString(); if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { position = subjectString.length; } position -= searchString.length; var lastIndex = subjectString.indexOf(searchString, position); return lastIndex !== -1 && lastIndex === position; }; } if (!Array.prototype.find) { Object.defineProperty(Array.prototype, "find", { value: function value(predicate) { if (this === null) { throw new TypeError('Array.prototype.find called on null or undefined'); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } var list = Object(this); var length = list.length >>> 0; var thisArg = arguments[1]; var value; for (var i = 0; i < length; i++) { value = list[i]; if (predicate.call(thisArg, value, i, list)) { return value; } } return undefined; } }); } document.addEventListener("DOMContentLoaded", function () { // Disable resizing in Firefox document.execCommand("enableObjectResizing", false, false); // Disable automatic linkifying in IE11 document.execCommand("autoUrlDetect", false, false); }); /***/ }, /* 51 */ /***/function (module, exports) { /** * This library modifies the diff-patch-match library by Neil Fraser * by removing the patch and match functionality and certain advanced * options in the diff function. The original license is as follows: * * === * * Diff Match and Patch * * Copyright 2006 Google Inc. * http://code.google.com/p/google-diff-match-patch/ * * 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. */ /** * The data structure representing a diff is an array of tuples: * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] * which means: delete 'Hello', add 'Goodbye' and keep ' world.' */ var DIFF_DELETE = -1; var DIFF_INSERT = 1; var DIFF_EQUAL = 0; /** * Find the differences between two texts. Simplifies the problem by stripping * any common prefix or suffix off the texts before diffing. * @param {string} text1 Old string to be diffed. * @param {string} text2 New string to be diffed. * @param {Int} cursor_pos Expected edit position in text1 (optional) * @return {Array} Array of diff tuples. */ function diff_main(text1, text2, cursor_pos) { // Check for equality (speedup). if (text1 == text2) { if (text1) { return [[DIFF_EQUAL, text1]]; } return []; } // Check cursor_pos within bounds if (cursor_pos < 0 || text1.length < cursor_pos) { cursor_pos = null; } // Trim off common prefix (speedup). var commonlength = diff_commonPrefix(text1, text2); var commonprefix = text1.substring(0, commonlength); text1 = text1.substring(commonlength); text2 = text2.substring(commonlength); // Trim off common suffix (speedup). commonlength = diff_commonSuffix(text1, text2); var commonsuffix = text1.substring(text1.length - commonlength); text1 = text1.substring(0, text1.length - commonlength); text2 = text2.substring(0, text2.length - commonlength); // Compute the diff on the middle block. var diffs = diff_compute_(text1, text2); // Restore the prefix and suffix. if (commonprefix) { diffs.unshift([DIFF_EQUAL, commonprefix]); } if (commonsuffix) { diffs.push([DIFF_EQUAL, commonsuffix]); } diff_cleanupMerge(diffs); if (cursor_pos != null) { diffs = fix_cursor(diffs, cursor_pos); } diffs = fix_emoji(diffs); return diffs; }; /** * Find the differences between two texts. Assumes that the texts do not * have any common prefix or suffix. * @param {string} text1 Old string to be diffed. * @param {string} text2 New string to be diffed. * @return {Array} Array of diff tuples. */ function diff_compute_(text1, text2) { var diffs; if (!text1) { // Just add some text (speedup). return [[DIFF_INSERT, text2]]; } if (!text2) { // Just delete some text (speedup). return [[DIFF_DELETE, text1]]; } var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; var i = longtext.indexOf(shorttext); if (i != -1) { // Shorter text is inside the longer text (speedup). diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]]; // Swap insertions for deletions if diff is reversed. if (text1.length > text2.length) { diffs[0][0] = diffs[2][0] = DIFF_DELETE; } return diffs; } if (shorttext.length == 1) { // Single character string. // After the previous speedup, the character can't be an equality. return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; } // Check to see if the problem can be split in two. var hm = diff_halfMatch_(text1, text2); if (hm) { // A half-match was found, sort out the return data. var text1_a = hm[0]; var text1_b = hm[1]; var text2_a = hm[2]; var text2_b = hm[3]; var mid_common = hm[4]; // Send both pairs off for separate processing. var diffs_a = diff_main(text1_a, text2_a); var diffs_b = diff_main(text1_b, text2_b); // Merge the results. return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); } return diff_bisect_(text1, text2); }; /** * Find the 'middle snake' of a diff, split the problem in two * and return the recursively constructed diff. * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. * @param {string} text1 Old string to be diffed. * @param {string} text2 New string to be diffed. * @return {Array} Array of diff tuples. * @private */ function diff_bisect_(text1, text2) { // Cache the text lengths to prevent multiple calls. var text1_length = text1.length; var text2_length = text2.length; var max_d = Math.ceil((text1_length + text2_length) / 2); var v_offset = max_d; var v_length = 2 * max_d; var v1 = new Array(v_length); var v2 = new Array(v_length); // Setting all elements to -1 is faster in Chrome & Firefox than mixing // integers and undefined. for (var x = 0; x < v_length; x++) { v1[x] = -1; v2[x] = -1; } v1[v_offset + 1] = 0; v2[v_offset + 1] = 0; var delta = text1_length - text2_length; // If the total number of characters is odd, then the front path will collide // with the reverse path. var front = delta % 2 != 0; // Offsets for start and end of k loop. // Prevents mapping of space beyond the grid. var k1start = 0; var k1end = 0; var k2start = 0; var k2end = 0; for (var d = 0; d < max_d; d++) { // Walk the front path one step. for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { var k1_offset = v_offset + k1; var x1; if (k1 == -d || k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1]) { x1 = v1[k1_offset + 1]; } else { x1 = v1[k1_offset - 1] + 1; } var y1 = x1 - k1; while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) == text2.charAt(y1)) { x1++; y1++; } v1[k1_offset] = x1; if (x1 > text1_length) { // Ran off the right of the graph. k1end += 2; } else if (y1 > text2_length) { // Ran off the bottom of the graph. k1start += 2; } else if (front) { var k2_offset = v_offset + delta - k1; if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) { // Mirror x2 onto top-left coordinate system. var x2 = text1_length - v2[k2_offset]; if (x1 >= x2) { // Overlap detected. return diff_bisectSplit_(text1, text2, x1, y1); } } } } // Walk the reverse path one step. for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { var k2_offset = v_offset + k2; var x2; if (k2 == -d || k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1]) { x2 = v2[k2_offset + 1]; } else { x2 = v2[k2_offset - 1] + 1; } var y2 = x2 - k2; while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) == text2.charAt(text2_length - y2 - 1)) { x2++; y2++; } v2[k2_offset] = x2; if (x2 > text1_length) { // Ran off the left of the graph. k2end += 2; } else if (y2 > text2_length) { // Ran off the top of the graph. k2start += 2; } else if (!front) { var k1_offset = v_offset + delta - k2; if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) { var x1 = v1[k1_offset]; var y1 = v_offset + x1 - k1_offset; // Mirror x2 onto top-left coordinate system. x2 = text1_length - x2; if (x1 >= x2) { // Overlap detected. return diff_bisectSplit_(text1, text2, x1, y1); } } } } } // Diff took too long and hit the deadline or // number of diffs equals number of characters, no commonality at all. return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; }; /** * Given the location of the 'middle snake', split the diff in two parts * and recurse. * @param {string} text1 Old string to be diffed. * @param {string} text2 New string to be diffed. * @param {number} x Index of split point in text1. * @param {number} y Index of split point in text2. * @return {Array} Array of diff tuples. */ function diff_bisectSplit_(text1, text2, x, y) { var text1a = text1.substring(0, x); var text2a = text2.substring(0, y); var text1b = text1.substring(x); var text2b = text2.substring(y); // Compute both diffs serially. var diffs = diff_main(text1a, text2a); var diffsb = diff_main(text1b, text2b); return diffs.concat(diffsb); }; /** * Determine the common prefix of two strings. * @param {string} text1 First string. * @param {string} text2 Second string. * @return {number} The number of characters common to the start of each * string. */ function diff_commonPrefix(text1, text2) { // Quick check for common null cases. if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) { return 0; } // Binary search. // Performance analysis: http://neil.fraser.name/news/2007/10/09/ var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerstart = 0; while (pointermin < pointermid) { if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) { pointermin = pointermid; pointerstart = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } return pointermid; }; /** * Determine the common suffix of two strings. * @param {string} text1 First string. * @param {string} text2 Second string. * @return {number} The number of characters common to the end of each string. */ function diff_commonSuffix(text1, text2) { // Quick check for common null cases. if (!text1 || !text2 || text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) { return 0; } // Binary search. // Performance analysis: http://neil.fraser.name/news/2007/10/09/ var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerend = 0; while (pointermin < pointermid) { if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) { pointermin = pointermid; pointerend = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } return pointermid; }; /** * Do the two texts share a substring which is at least half the length of the * longer text? * This speedup can produce non-minimal diffs. * @param {string} text1 First string. * @param {string} text2 Second string. * @return {Array.} Five element Array, containing the prefix of * text1, the suffix of text1, the prefix of text2, the suffix of * text2 and the common middle. Or null if there was no match. */ function diff_halfMatch_(text1, text2) { var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { return null; // Pointless. } /** * Does a substring of shorttext exist within longtext such that the substring * is at least half the length of longtext? * Closure, but does not reference any external variables. * @param {string} longtext Longer string. * @param {string} shorttext Shorter string. * @param {number} i Start index of quarter length substring within longtext. * @return {Array.} Five element Array, containing the prefix of * longtext, the suffix of longtext, the prefix of shorttext, the suffix * of shorttext and the common middle. Or null if there was no match. * @private */ function diff_halfMatchI_(longtext, shorttext, i) { // Start with a 1/4 length substring at position i as a seed. var seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); var j = -1; var best_common = ''; var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; while ((j = shorttext.indexOf(seed, j + 1)) != -1) { var prefixLength = diff_commonPrefix(longtext.substring(i), shorttext.substring(j)); var suffixLength = diff_commonSuffix(longtext.substring(0, i), shorttext.substring(0, j)); if (best_common.length < suffixLength + prefixLength) { best_common = shorttext.substring(j - suffixLength, j) + shorttext.substring(j, j + prefixLength); best_longtext_a = longtext.substring(0, i - suffixLength); best_longtext_b = longtext.substring(i + prefixLength); best_shorttext_a = shorttext.substring(0, j - suffixLength); best_shorttext_b = shorttext.substring(j + prefixLength); } } if (best_common.length * 2 >= longtext.length) { return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common]; } else { return null; } } // First check if the second quarter is the seed for a half-match. var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4)); // Check again based on the third quarter. var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2)); var hm; if (!hm1 && !hm2) { return null; } else if (!hm2) { hm = hm1; } else if (!hm1) { hm = hm2; } else { // Both matched. Select the longest. hm = hm1[4].length > hm2[4].length ? hm1 : hm2; } // A half-match was found, sort out the return data. var text1_a, text1_b, text2_a, text2_b; if (text1.length > text2.length) { text1_a = hm[0]; text1_b = hm[1]; text2_a = hm[2]; text2_b = hm[3]; } else { text2_a = hm[0]; text2_b = hm[1]; text1_a = hm[2]; text1_b = hm[3]; } var mid_common = hm[4]; return [text1_a, text1_b, text2_a, text2_b, mid_common]; }; /** * Reorder and merge like edit sections. Merge equalities. * Any edit section can move as long as it doesn't cross an equality. * @param {Array} diffs Array of diff tuples. */ function diff_cleanupMerge(diffs) { diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end. var pointer = 0; var count_delete = 0; var count_insert = 0; var text_delete = ''; var text_insert = ''; var commonlength; while (pointer < diffs.length) { switch (diffs[pointer][0]) { case DIFF_INSERT: count_insert++; text_insert += diffs[pointer][1]; pointer++; break; case DIFF_DELETE: count_delete++; text_delete += diffs[pointer][1]; pointer++; break; case DIFF_EQUAL: // Upon reaching an equality, check for prior redundancies. if (count_delete + count_insert > 1) { if (count_delete !== 0 && count_insert !== 0) { // Factor out any common prefixies. commonlength = diff_commonPrefix(text_insert, text_delete); if (commonlength !== 0) { if (pointer - count_delete - count_insert > 0 && diffs[pointer - count_delete - count_insert - 1][0] == DIFF_EQUAL) { diffs[pointer - count_delete - count_insert - 1][1] += text_insert.substring(0, commonlength); } else { diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]); pointer++; } text_insert = text_insert.substring(commonlength); text_delete = text_delete.substring(commonlength); } // Factor out any common suffixies. commonlength = diff_commonSuffix(text_insert, text_delete); if (commonlength !== 0) { diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1]; text_insert = text_insert.substring(0, text_insert.length - commonlength); text_delete = text_delete.substring(0, text_delete.length - commonlength); } } // Delete the offending records and add the merged ones. if (count_delete === 0) { diffs.splice(pointer - count_insert, count_delete + count_insert, [DIFF_INSERT, text_insert]); } else if (count_insert === 0) { diffs.splice(pointer - count_delete, count_delete + count_insert, [DIFF_DELETE, text_delete]); } else { diffs.splice(pointer - count_delete - count_insert, count_delete + count_insert, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]); } pointer = pointer - count_delete - count_insert + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1; } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) { // Merge this equality with the previous one. diffs[pointer - 1][1] += diffs[pointer][1]; diffs.splice(pointer, 1); } else { pointer++; } count_insert = 0; count_delete = 0; text_delete = ''; text_insert = ''; break; } } if (diffs[diffs.length - 1][1] === '') { diffs.pop(); // Remove the dummy entry at the end. } // Second pass: look for single edits surrounded on both sides by equalities // which can be shifted sideways to eliminate an equality. // e.g: ABAC -> ABAC var changes = false; pointer = 1; // Intentionally ignore the first and last element (don't need checking). while (pointer < diffs.length - 1) { if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) { // This is a single edit surrounded by equalities. if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) { // Shift the edit over the previous equality. diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length); diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; diffs.splice(pointer - 1, 1); changes = true; } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) { // Shift the edit over the next equality. diffs[pointer - 1][1] += diffs[pointer + 1][1]; diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1]; diffs.splice(pointer + 1, 1); changes = true; } } pointer++; } // If shifts were made, the diff needs reordering and another shift sweep. if (changes) { diff_cleanupMerge(diffs); } }; var diff = diff_main; diff.INSERT = DIFF_INSERT; diff.DELETE = DIFF_DELETE; diff.EQUAL = DIFF_EQUAL; module.exports = diff; /* * Modify a diff such that the cursor position points to the start of a change: * E.g. * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1) * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]] * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2) * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]] * * @param {Array} diffs Array of diff tuples * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! * @return {Array} A tuple [cursor location in the modified diff, modified diff] */ function cursor_normalize_diff(diffs, cursor_pos) { if (cursor_pos === 0) { return [DIFF_EQUAL, diffs]; } for (var current_pos = 0, i = 0; i < diffs.length; i++) { var d = diffs[i]; if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) { var next_pos = current_pos + d[1].length; if (cursor_pos === next_pos) { return [i + 1, diffs]; } else if (cursor_pos < next_pos) { // copy to prevent side effects diffs = diffs.slice(); // split d into two diff changes var split_pos = cursor_pos - current_pos; var d_left = [d[0], d[1].slice(0, split_pos)]; var d_right = [d[0], d[1].slice(split_pos)]; diffs.splice(i, 1, d_left, d_right); return [i + 1, diffs]; } else { current_pos = next_pos; } } } throw new Error('cursor_pos is out of bounds!'); } /* * Modify a diff such that the edit position is "shifted" to the proposed edit location (cursor_position). * * Case 1) * Check if a naive shift is possible: * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X) * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result * Case 2) * Check if the following shifts are possible: * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix'] * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix'] * ^ ^ * d d_next * * @param {Array} diffs Array of diff tuples * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! * @return {Array} Array of diff tuples */ function fix_cursor(diffs, cursor_pos) { var norm = cursor_normalize_diff(diffs, cursor_pos); var ndiffs = norm[1]; var cursor_pointer = norm[0]; var d = ndiffs[cursor_pointer]; var d_next = ndiffs[cursor_pointer + 1]; if (d == null) { // Text was deleted from end of original string, // cursor is now out of bounds in new string return diffs; } else if (d[0] !== DIFF_EQUAL) { // A modification happened at the cursor location. // This is the expected outcome, so we can return the original diff. return diffs; } else { if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) { // Case 1) // It is possible to perform a naive shift ndiffs.splice(cursor_pointer, 2, d_next, d); return merge_tuples(ndiffs, cursor_pointer, 2); } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) { // Case 2) // d[1] is a prefix of d_next[1] // We can assume that d_next[0] !== 0, since d[0] === 0 // Shift edit locations.. ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]); var suffix = d_next[1].slice(d[1].length); if (suffix.length > 0) { ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]); } return merge_tuples(ndiffs, cursor_pointer, 3); } else { // Not possible to perform any modification return diffs; } } } /* * Check diff did not split surrogate pairs. * Ex. [0, '\uD83D'], [-1, '\uDC36'], [1, '\uDC2F'] -> [-1, '\uD83D\uDC36'], [1, '\uD83D\uDC2F'] * '\uD83D\uDC36' === '🐶', '\uD83D\uDC2F' === '🐯' * * @param {Array} diffs Array of diff tuples * @return {Array} Array of diff tuples */ function fix_emoji(diffs) { var compact = false; var starts_with_pair_end = function starts_with_pair_end(str) { return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF; }; var ends_with_pair_start = function ends_with_pair_start(str) { return str.charCodeAt(str.length - 1) >= 0xD800 && str.charCodeAt(str.length - 1) <= 0xDBFF; }; for (var i = 2; i < diffs.length; i += 1) { if (diffs[i - 2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i - 2][1]) && diffs[i - 1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i - 1][1]) && diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) { compact = true; diffs[i - 1][1] = diffs[i - 2][1].slice(-1) + diffs[i - 1][1]; diffs[i][1] = diffs[i - 2][1].slice(-1) + diffs[i][1]; diffs[i - 2][1] = diffs[i - 2][1].slice(0, -1); } } if (!compact) { return diffs; } var fixed_diffs = []; for (var i = 0; i < diffs.length; i += 1) { if (diffs[i][1].length > 0) { fixed_diffs.push(diffs[i]); } } return fixed_diffs; } /* * Try to merge tuples with their neigbors in a given range. * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab'] * * @param {Array} diffs Array of diff tuples. * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]). * @param {Int} length Number of consecutive elements to check. * @return {Array} Array of merged diff tuples. */ function merge_tuples(diffs, start, length) { // Check from (start-1) to (start+length). for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) { if (i + 1 < diffs.length) { var left_d = diffs[i]; var right_d = diffs[i + 1]; if (left_d[0] === right_d[1]) { diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]); } } } return diffs; } /***/ }, /* 52 */ /***/function (module, exports) { exports = module.exports = typeof Object.keys === 'function' ? Object.keys : shim; exports.shim = shim; function shim(obj) { var keys = []; for (var key in obj) { keys.push(key); }return keys; } /***/ }, /* 53 */ /***/function (module, exports) { var supportsArgumentsClass = function () { return Object.prototype.toString.call(arguments); }() == '[object Arguments]'; exports = module.exports = supportsArgumentsClass ? supported : unsupported; exports.supported = supported; function supported(object) { return Object.prototype.toString.call(object) == '[object Arguments]'; }; exports.unsupported = unsupported; function unsupported(object) { return object && (typeof object === 'undefined' ? 'undefined' : _typeof2(object)) == 'object' && typeof object.length == 'number' && Object.prototype.hasOwnProperty.call(object, 'callee') && !Object.prototype.propertyIsEnumerable.call(object, 'callee') || false; }; /***/ }, /* 54 */ /***/function (module, exports) { 'use strict'; var has = Object.prototype.hasOwnProperty, prefix = '~'; /** * Constructor to create a storage for our `EE` objects. * An `Events` instance is a plain object whose properties are event names. * * @constructor * @api private */ function Events() {} // // We try to not inherit from `Object.prototype`. In some engines creating an // instance in this way is faster than calling `Object.create(null)` directly. // If `Object.create(null)` is not supported we prefix the event names with a // character to make sure that the built-in object properties are not // overridden or used as an attack vector. // if (Object.create) { Events.prototype = Object.create(null); // // This hack is needed because the `__proto__` property is still inherited in // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. // if (!new Events().__proto__) prefix = false; } /** * Representation of a single event listener. * * @param {Function} fn The listener function. * @param {Mixed} context The context to invoke the listener with. * @param {Boolean} [once=false] Specify if the listener is a one-time listener. * @constructor * @api private */ function EE(fn, context, once) { this.fn = fn; this.context = context; this.once = once || false; } /** * Minimal `EventEmitter` interface that is molded against the Node.js * `EventEmitter` interface. * * @constructor * @api public */ function EventEmitter() { this._events = new Events(); this._eventsCount = 0; } /** * Return an array listing the events for which the emitter has registered * listeners. * * @returns {Array} * @api public */ EventEmitter.prototype.eventNames = function eventNames() { var names = [], events, name; if (this._eventsCount === 0) return names; for (name in events = this._events) { if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); } if (Object.getOwnPropertySymbols) { return names.concat(Object.getOwnPropertySymbols(events)); } return names; }; /** * Return the listeners registered for a given event. * * @param {String|Symbol} event The event name. * @param {Boolean} exists Only check if there are listeners. * @returns {Array|Boolean} * @api public */ EventEmitter.prototype.listeners = function listeners(event, exists) { var evt = prefix ? prefix + event : event, available = this._events[evt]; if (exists) return !!available; if (!available) return []; if (available.fn) return [available.fn]; for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) { ee[i] = available[i].fn; } return ee; }; /** * Calls each of the listeners registered for a given event. * * @param {String|Symbol} event The event name. * @returns {Boolean} `true` if the event had listeners, else `false`. * @api public */ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { var evt = prefix ? prefix + event : event; if (!this._events[evt]) return false; var listeners = this._events[evt], len = arguments.length, args, i; if (listeners.fn) { if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); switch (len) { case 1: return listeners.fn.call(listeners.context), true; case 2: return listeners.fn.call(listeners.context, a1), true; case 3: return listeners.fn.call(listeners.context, a1, a2), true; case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; } for (i = 1, args = new Array(len - 1); i < len; i++) { args[i - 1] = arguments[i]; } listeners.fn.apply(listeners.context, args); } else { var length = listeners.length, j; for (i = 0; i < length; i++) { if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); switch (len) { case 1: listeners[i].fn.call(listeners[i].context);break; case 2: listeners[i].fn.call(listeners[i].context, a1);break; case 3: listeners[i].fn.call(listeners[i].context, a1, a2);break; case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3);break; default: if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) { args[j - 1] = arguments[j]; } listeners[i].fn.apply(listeners[i].context, args); } } } return true; }; /** * Add a listener for a given event. * * @param {String|Symbol} event The event name. * @param {Function} fn The listener function. * @param {Mixed} [context=this] The context to invoke the listener with. * @returns {EventEmitter} `this`. * @api public */ EventEmitter.prototype.on = function on(event, fn, context) { var listener = new EE(fn, context || this), evt = prefix ? prefix + event : event; if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener]; return this; }; /** * Add a one-time listener for a given event. * * @param {String|Symbol} event The event name. * @param {Function} fn The listener function. * @param {Mixed} [context=this] The context to invoke the listener with. * @returns {EventEmitter} `this`. * @api public */ EventEmitter.prototype.once = function once(event, fn, context) { var listener = new EE(fn, context || this, true), evt = prefix ? prefix + event : event; if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener]; return this; }; /** * Remove the listeners of a given event. * * @param {String|Symbol} event The event name. * @param {Function} fn Only remove the listeners that match this function. * @param {Mixed} context Only remove the listeners that have this context. * @param {Boolean} once Only remove one-time listeners. * @returns {EventEmitter} `this`. * @api public */ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { var evt = prefix ? prefix + event : event; if (!this._events[evt]) return this; if (!fn) { if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt]; return this; } var listeners = this._events[evt]; if (listeners.fn) { if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) { if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt]; } } else { for (var i = 0, events = [], length = listeners.length; i < length; i++) { if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) { events.push(listeners[i]); } } // // Reset the array, or remove it completely if we have no more listeners. // if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt]; } return this; }; /** * Remove all listeners, or those of the specified event. * * @param {String|Symbol} [event] The event name. * @returns {EventEmitter} `this`. * @api public */ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { var evt; if (event) { evt = prefix ? prefix + event : event; if (this._events[evt]) { if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt]; } } else { this._events = new Events(); this._eventsCount = 0; } return this; }; // // Alias methods names because people roll like that. // EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.addListener = EventEmitter.prototype.on; // // This function doesn't apply anymore. // EventEmitter.prototype.setMaxListeners = function setMaxListeners() { return this; }; // // Expose the prefix. // EventEmitter.prefixed = prefix; // // Allow `EventEmitter` to be imported as module namespace. // EventEmitter.EventEmitter = EventEmitter; // // Expose the module. // if ('undefined' !== typeof module) { module.exports = EventEmitter; } /***/ }, /* 55 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined; var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _extend2 = __webpack_require__(3); var _extend3 = _interopRequireDefault(_extend2); var _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); var _align = __webpack_require__(36); var _background = __webpack_require__(37); var _code = __webpack_require__(13); var _code2 = _interopRequireDefault(_code); var _color = __webpack_require__(26); var _direction = __webpack_require__(38); var _font = __webpack_require__(39); var _size = __webpack_require__(40); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var debug = (0, _logger2.default)('quill:clipboard'); var DOM_KEY = '__ql-matcher'; var CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]]; var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) { memo[attr.keyName] = attr; return memo; }, {}); var STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) { memo[attr.keyName] = attr; return memo; }, {}); var Clipboard = function (_Module) { _inherits(Clipboard, _Module); function Clipboard(quill, options) { _classCallCheck(this, Clipboard); var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options)); _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this)); _this.container = _this.quill.addContainer('ql-clipboard'); _this.container.setAttribute('contenteditable', true); _this.container.setAttribute('tabindex', -1); _this.matchers = []; CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), selector = _ref2[0], matcher = _ref2[1]; if (!options.matchVisual && matcher === matchSpacing) return; _this.addMatcher(selector, matcher); }); return _this; } _createClass(Clipboard, [{ key: 'addMatcher', value: function addMatcher(selector, matcher) { this.matchers.push([selector, matcher]); } }, { key: 'convert', value: function convert(html) { if (typeof html === 'string') { this.container.innerHTML = html.replace(/\>\r?\n +\<'); // Remove spaces between tags return this.convert(); } var formats = this.quill.getFormat(this.quill.selection.savedRange.index); if (formats[_code2.default.blotName]) { var text = this.container.innerText; this.container.innerHTML = ''; return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName])); } var _prepareMatching = this.prepareMatching(), _prepareMatching2 = _slicedToArray(_prepareMatching, 2), elementMatchers = _prepareMatching2[0], textMatchers = _prepareMatching2[1]; var delta = traverse(this.container, elementMatchers, textMatchers); // Remove trailing newline if (deltaEndsWith(delta, '\n') && delta.ops[delta.ops.length - 1].attributes == null) { delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1)); } debug.log('convert', this.container.innerHTML, delta); this.container.innerHTML = ''; return delta; } }, { key: 'dangerouslyPasteHTML', value: function dangerouslyPasteHTML(index, html) { var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API; if (typeof index === 'string') { this.quill.setContents(this.convert(index), html); this.quill.setSelection(0, _quill2.default.sources.SILENT); } else { var paste = this.convert(html); this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source); this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT); } } }, { key: 'onPaste', value: function onPaste(e) { var _this2 = this; if (e.defaultPrevented || !this.quill.isEnabled()) return; var range = this.quill.getSelection(); var delta = new _quillDelta2.default().retain(range.index); var scrollTop = this.quill.scrollingContainer.scrollTop; this.container.focus(); this.quill.selection.update(_quill2.default.sources.SILENT); setTimeout(function () { delta = delta.concat(_this2.convert()).delete(range.length); _this2.quill.updateContents(delta, _quill2.default.sources.USER); // range.length contributes to delta.length() _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT); _this2.quill.scrollingContainer.scrollTop = scrollTop; _this2.quill.focus(); }, 1); } }, { key: 'prepareMatching', value: function prepareMatching() { var _this3 = this; var elementMatchers = [], textMatchers = []; this.matchers.forEach(function (pair) { var _pair = _slicedToArray(pair, 2), selector = _pair[0], matcher = _pair[1]; switch (selector) { case Node.TEXT_NODE: textMatchers.push(matcher); break; case Node.ELEMENT_NODE: elementMatchers.push(matcher); break; default: [].forEach.call(_this3.container.querySelectorAll(selector), function (node) { // TODO use weakmap node[DOM_KEY] = node[DOM_KEY] || []; node[DOM_KEY].push(matcher); }); break; } }); return [elementMatchers, textMatchers]; } }]); return Clipboard; }(_module2.default); Clipboard.DEFAULTS = { matchers: [], matchVisual: true }; function applyFormat(delta, format, value) { if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') { return Object.keys(format).reduce(function (delta, key) { return applyFormat(delta, key, format[key]); }, delta); } else { return delta.reduce(function (delta, op) { if (op.attributes && op.attributes[format]) { return delta.push(op); } else { return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes)); } }, new _quillDelta2.default()); } } function computeStyle(node) { if (node.nodeType !== Node.ELEMENT_NODE) return {}; var DOM_KEY = '__ql-computed-style'; return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node)); } function deltaEndsWith(delta, text) { var endText = ""; for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) { var op = delta.ops[i]; if (typeof op.insert !== 'string') break; endText = op.insert + endText; } return endText.slice(-1 * text.length) === text; } function isLine(node) { if (node.childNodes.length === 0) return false; // Exclude embed blocks var style = computeStyle(node); return ['block', 'list-item'].indexOf(style.display) > -1; } function traverse(node, elementMatchers, textMatchers) { // Post-order if (node.nodeType === node.TEXT_NODE) { return textMatchers.reduce(function (delta, matcher) { return matcher(node, delta); }, new _quillDelta2.default()); } else if (node.nodeType === node.ELEMENT_NODE) { return [].reduce.call(node.childNodes || [], function (delta, childNode) { var childrenDelta = traverse(childNode, elementMatchers, textMatchers); if (childNode.nodeType === node.ELEMENT_NODE) { childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) { return matcher(childNode, childrenDelta); }, childrenDelta); childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) { return matcher(childNode, childrenDelta); }, childrenDelta); } return delta.concat(childrenDelta); }, new _quillDelta2.default()); } else { return new _quillDelta2.default(); } } function matchAlias(format, node, delta) { return applyFormat(delta, format, true); } function matchAttributor(node, delta) { var attributes = _parchment2.default.Attributor.Attribute.keys(node); var classes = _parchment2.default.Attributor.Class.keys(node); var styles = _parchment2.default.Attributor.Style.keys(node); var formats = {}; attributes.concat(classes).concat(styles).forEach(function (name) { var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE); if (attr != null) { formats[attr.attrName] = attr.value(node); if (formats[attr.attrName]) return; } attr = ATTRIBUTE_ATTRIBUTORS[name]; if (attr != null && (attr.attrName === name || attr.keyName === name)) { formats[attr.attrName] = attr.value(node) || undefined; } attr = STYLE_ATTRIBUTORS[name]; if (attr != null && (attr.attrName === name || attr.keyName === name)) { attr = STYLE_ATTRIBUTORS[name]; formats[attr.attrName] = attr.value(node) || undefined; } }); if (Object.keys(formats).length > 0) { delta = applyFormat(delta, formats); } return delta; } function matchBlot(node, delta) { var match = _parchment2.default.query(node); if (match == null) return delta; if (match.prototype instanceof _parchment2.default.Embed) { var embed = {}; var value = match.value(node); if (value != null) { embed[match.blotName] = value; delta = new _quillDelta2.default().insert(embed, match.formats(node)); } } else if (typeof match.formats === 'function') { delta = applyFormat(delta, match.blotName, match.formats(node)); } return delta; } function matchBreak(node, delta) { if (!deltaEndsWith(delta, '\n')) { delta.insert('\n'); } return delta; } function matchIgnore() { return new _quillDelta2.default(); } function matchIndent(node, delta) { var match = _parchment2.default.query(node); if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\n')) { return delta; } var indent = -1, parent = node.parentNode; while (!parent.classList.contains('ql-clipboard')) { if ((_parchment2.default.query(parent) || {}).blotName === 'list') { indent += 1; } parent = parent.parentNode; } if (indent <= 0) return delta; return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent })); } function matchNewline(node, delta) { if (!deltaEndsWith(delta, '\n')) { if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) { delta.insert('\n'); } } return delta; } function matchSpacing(node, delta) { if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\n\n')) { var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom); if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) { delta.insert('\n'); } } return delta; } function matchStyles(node, delta) { var formats = {}; var style = node.style || {}; if (style.fontStyle && computeStyle(node).fontStyle === 'italic') { formats.italic = true; } if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) { formats.bold = true; } if (Object.keys(formats).length > 0) { delta = applyFormat(delta, formats); } if (parseFloat(style.textIndent || 0) > 0) { // Could be 0.5in delta = new _quillDelta2.default().insert('\t').concat(delta); } return delta; } function matchText(node, delta) { var text = node.data; // Word represents empty line with   if (node.parentNode.tagName === 'O:P') { return delta.insert(text.trim()); } if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) { return delta; } if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) { // eslint-disable-next-line func-style var replacer = function replacer(collapse, match) { match = match.replace(/[^\u00a0]/g, ''); // \u00a0 is nbsp; return match.length < 1 && collapse ? ' ' : match; }; text = text.replace(/\r\n/g, ' ').replace(/\n/g, ' '); text = text.replace(/\s\s+/g, replacer.bind(replacer, true)); // collapse whitespace if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) { text = text.replace(/^\s+/, replacer.bind(replacer, false)); } if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) { text = text.replace(/\s+$/, replacer.bind(replacer, false)); } } return delta.insert(text); } exports.default = Clipboard; exports.matchAttributor = matchAttributor; exports.matchBlot = matchBlot; exports.matchNewline = matchNewline; exports.matchSpacing = matchSpacing; exports.matchText = matchText; /***/ }, /* 56 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Bold = function (_Inline) { _inherits(Bold, _Inline); function Bold() { _classCallCheck(this, Bold); return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments)); } _createClass(Bold, [{ key: 'optimize', value: function optimize(context) { _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context); if (this.domNode.tagName !== this.statics.tagName[0]) { this.replaceWith(this.statics.blotName); } } }], [{ key: 'create', value: function create() { return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this); } }, { key: 'formats', value: function formats() { return true; } }]); return Bold; }(_inline2.default); Bold.blotName = 'bold'; Bold.tagName = ['STRONG', 'B']; exports.default = Bold; /***/ }, /* 57 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addControls = exports.default = undefined; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _quillDelta = __webpack_require__(2); var _quillDelta2 = _interopRequireDefault(_quillDelta); var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _logger = __webpack_require__(10); var _logger2 = _interopRequireDefault(_logger); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var debug = (0, _logger2.default)('quill:toolbar'); var Toolbar = function (_Module) { _inherits(Toolbar, _Module); function Toolbar(quill, options) { _classCallCheck(this, Toolbar); var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options)); if (Array.isArray(_this.options.container)) { var container = document.createElement('div'); addControls(container, _this.options.container); quill.container.parentNode.insertBefore(container, quill.container); _this.container = container; } else if (typeof _this.options.container === 'string') { _this.container = document.querySelector(_this.options.container); } else { _this.container = _this.options.container; } if (!(_this.container instanceof HTMLElement)) { var _ret; return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret); } _this.container.classList.add('ql-toolbar'); _this.controls = []; _this.handlers = {}; Object.keys(_this.options.handlers).forEach(function (format) { _this.addHandler(format, _this.options.handlers[format]); }); [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) { _this.attach(input); }); _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) { if (type === _quill2.default.events.SELECTION_CHANGE) { _this.update(range); } }); _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () { var _this$quill$selection = _this.quill.selection.getRange(), _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1), range = _this$quill$selection2[0]; // quill.getSelection triggers update _this.update(range); }); return _this; } _createClass(Toolbar, [{ key: 'addHandler', value: function addHandler(format, handler) { this.handlers[format] = handler; } }, { key: 'attach', value: function attach(input) { var _this2 = this; var format = [].find.call(input.classList, function (className) { return className.indexOf('ql-') === 0; }); if (!format) return; format = format.slice('ql-'.length); if (input.tagName === 'BUTTON') { input.setAttribute('type', 'button'); } if (this.handlers[format] == null) { if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) { debug.warn('ignoring attaching to disabled format', format, input); return; } if (_parchment2.default.query(format) == null) { debug.warn('ignoring attaching to nonexistent format', format, input); return; } } var eventName = input.tagName === 'SELECT' ? 'change' : 'click'; input.addEventListener(eventName, function (e) { var value = void 0; if (input.tagName === 'SELECT') { if (input.selectedIndex < 0) return; var selected = input.options[input.selectedIndex]; if (selected.hasAttribute('selected')) { value = false; } else { value = selected.value || false; } } else { if (input.classList.contains('ql-active')) { value = false; } else { value = input.value || !input.hasAttribute('value'); } e.preventDefault(); } _this2.quill.focus(); var _quill$selection$getR = _this2.quill.selection.getRange(), _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1), range = _quill$selection$getR2[0]; if (_this2.handlers[format] != null) { _this2.handlers[format].call(_this2, value); } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) { value = prompt('Enter ' + format); if (!value) return; _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER); } else { _this2.quill.format(format, value, _quill2.default.sources.USER); } _this2.update(range); }); // TODO use weakmap this.controls.push([format, input]); } }, { key: 'update', value: function update(range) { var formats = range == null ? {} : this.quill.getFormat(range); this.controls.forEach(function (pair) { var _pair = _slicedToArray(pair, 2), format = _pair[0], input = _pair[1]; if (input.tagName === 'SELECT') { var option = void 0; if (range == null) { option = null; } else if (formats[format] == null) { option = input.querySelector('option[selected]'); } else if (!Array.isArray(formats[format])) { var value = formats[format]; if (typeof value === 'string') { value = value.replace(/\"/g, '\\"'); } option = input.querySelector('option[value="' + value + '"]'); } if (option == null) { input.value = ''; // TODO make configurable? input.selectedIndex = -1; } else { option.selected = true; } } else { if (range == null) { input.classList.remove('ql-active'); } else if (input.hasAttribute('value')) { // both being null should match (default values) // '1' should match with 1 (headers) var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value'); input.classList.toggle('ql-active', isActive); } else { input.classList.toggle('ql-active', formats[format] != null); } } }); } }]); return Toolbar; }(_module2.default); Toolbar.DEFAULTS = {}; function addButton(container, format, value) { var input = document.createElement('button'); input.setAttribute('type', 'button'); input.classList.add('ql-' + format); if (value != null) { input.value = value; } container.appendChild(input); } function addControls(container, groups) { if (!Array.isArray(groups[0])) { groups = [groups]; } groups.forEach(function (controls) { var group = document.createElement('span'); group.classList.add('ql-formats'); controls.forEach(function (control) { if (typeof control === 'string') { addButton(group, control); } else { var format = Object.keys(control)[0]; var value = control[format]; if (Array.isArray(value)) { addSelect(group, format, value); } else { addButton(group, format, value); } } }); container.appendChild(group); }); } function addSelect(container, format, values) { var input = document.createElement('select'); input.classList.add('ql-' + format); values.forEach(function (value) { var option = document.createElement('option'); if (value !== false) { option.setAttribute('value', value); } else { option.setAttribute('selected', 'selected'); } input.appendChild(option); }); container.appendChild(input); } Toolbar.DEFAULTS = { container: null, handlers: { clean: function clean() { var _this3 = this; var range = this.quill.getSelection(); if (range == null) return; if (range.length == 0) { var formats = this.quill.getFormat(); Object.keys(formats).forEach(function (name) { // Clean functionality in existing apps only clean inline formats if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) { _this3.quill.format(name, false); } }); } else { this.quill.removeFormat(range, _quill2.default.sources.USER); } }, direction: function direction(value) { var align = this.quill.getFormat()['align']; if (value === 'rtl' && align == null) { this.quill.format('align', 'right', _quill2.default.sources.USER); } else if (!value && align === 'right') { this.quill.format('align', false, _quill2.default.sources.USER); } this.quill.format('direction', value, _quill2.default.sources.USER); }, indent: function indent(value) { var range = this.quill.getSelection(); var formats = this.quill.getFormat(range); var indent = parseInt(formats.indent || 0); if (value === '+1' || value === '-1') { var modifier = value === '+1' ? 1 : -1; if (formats.direction === 'rtl') modifier *= -1; this.quill.format('indent', indent + modifier, _quill2.default.sources.USER); } }, link: function link(value) { if (value === true) { value = prompt('Enter link URL:'); } this.quill.format('link', value, _quill2.default.sources.USER); }, list: function list(value) { var range = this.quill.getSelection(); var formats = this.quill.getFormat(range); if (value === 'check') { if (formats['list'] === 'checked' || formats['list'] === 'unchecked') { this.quill.format('list', false, _quill2.default.sources.USER); } else { this.quill.format('list', 'unchecked', _quill2.default.sources.USER); } } else { this.quill.format('list', value, _quill2.default.sources.USER); } } } }; exports.default = Toolbar; exports.addControls = addControls; /***/ }, /* 58 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 59 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _picker = __webpack_require__(28); var _picker2 = _interopRequireDefault(_picker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ColorPicker = function (_Picker) { _inherits(ColorPicker, _Picker); function ColorPicker(select, label) { _classCallCheck(this, ColorPicker); var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select)); _this.label.innerHTML = label; _this.container.classList.add('ql-color-picker'); [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) { item.classList.add('ql-primary'); }); return _this; } _createClass(ColorPicker, [{ key: 'buildItem', value: function buildItem(option) { var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option); item.style.backgroundColor = option.getAttribute('value') || ''; return item; } }, { key: 'selectItem', value: function selectItem(item, trigger) { _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger); var colorLabel = this.label.querySelector('.ql-color-label'); var value = item ? item.getAttribute('data-value') || '' : ''; if (colorLabel) { if (colorLabel.tagName === 'line') { colorLabel.style.stroke = value; } else { colorLabel.style.fill = value; } } } }]); return ColorPicker; }(_picker2.default); exports.default = ColorPicker; /***/ }, /* 60 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _picker = __webpack_require__(28); var _picker2 = _interopRequireDefault(_picker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var IconPicker = function (_Picker) { _inherits(IconPicker, _Picker); function IconPicker(select, icons) { _classCallCheck(this, IconPicker); var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select)); _this.container.classList.add('ql-icon-picker'); [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) { item.innerHTML = icons[item.getAttribute('data-value') || '']; }); _this.defaultItem = _this.container.querySelector('.ql-selected'); _this.selectItem(_this.defaultItem); return _this; } _createClass(IconPicker, [{ key: 'selectItem', value: function selectItem(item, trigger) { _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger); item = item || this.defaultItem; this.label.innerHTML = item.innerHTML; } }]); return IconPicker; }(_picker2.default); exports.default = IconPicker; /***/ }, /* 61 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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"); } } var Tooltip = function () { function Tooltip(quill, boundsContainer) { var _this = this; _classCallCheck(this, Tooltip); this.quill = quill; this.boundsContainer = boundsContainer || document.body; this.root = quill.addContainer('ql-tooltip'); this.root.innerHTML = this.constructor.TEMPLATE; if (this.quill.root === this.quill.scrollingContainer) { this.quill.root.addEventListener('scroll', function () { _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px'; }); } this.hide(); } _createClass(Tooltip, [{ key: 'hide', value: function hide() { this.root.classList.add('ql-hidden'); } }, { key: 'position', value: function position(reference) { var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2; // root.scrollTop should be 0 if scrollContainer !== root var top = reference.bottom + this.quill.root.scrollTop; this.root.style.left = left + 'px'; this.root.style.top = top + 'px'; this.root.classList.remove('ql-flip'); var containerBounds = this.boundsContainer.getBoundingClientRect(); var rootBounds = this.root.getBoundingClientRect(); var shift = 0; if (rootBounds.right > containerBounds.right) { shift = containerBounds.right - rootBounds.right; this.root.style.left = left + shift + 'px'; } if (rootBounds.left < containerBounds.left) { shift = containerBounds.left - rootBounds.left; this.root.style.left = left + shift + 'px'; } if (rootBounds.bottom > containerBounds.bottom) { var height = rootBounds.bottom - rootBounds.top; var verticalShift = reference.bottom - reference.top + height; this.root.style.top = top - verticalShift + 'px'; this.root.classList.add('ql-flip'); } return shift; } }, { key: 'show', value: function show() { this.root.classList.remove('ql-editing'); this.root.classList.remove('ql-hidden'); } }]); return Tooltip; }(); exports.default = Tooltip; /***/ }, /* 62 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [];var _n = true;var _d = false;var _e = undefined;try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value);if (i && _arr.length === i) break; } } catch (err) { _d = true;_e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } }return _arr; }return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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; }; }(); var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _emitter = __webpack_require__(8); var _emitter2 = _interopRequireDefault(_emitter); var _base = __webpack_require__(43); var _base2 = _interopRequireDefault(_base); var _link = __webpack_require__(27); var _link2 = _interopRequireDefault(_link); var _selection = __webpack_require__(15); var _icons = __webpack_require__(41); var _icons2 = _interopRequireDefault(_icons); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']]; var SnowTheme = function (_BaseTheme) { _inherits(SnowTheme, _BaseTheme); function SnowTheme(quill, options) { _classCallCheck(this, SnowTheme); if (options.modules.toolbar != null && options.modules.toolbar.container == null) { options.modules.toolbar.container = TOOLBAR_CONFIG; } var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options)); _this.quill.container.classList.add('ql-snow'); return _this; } _createClass(SnowTheme, [{ key: 'extendToolbar', value: function extendToolbar(toolbar) { toolbar.container.classList.add('ql-snow'); this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default); this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default); this.tooltip = new SnowTooltip(this.quill, this.options.bounds); if (toolbar.container.querySelector('.ql-link')) { this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) { toolbar.handlers['link'].call(toolbar, !context.format.link); }); } } }]); return SnowTheme; }(_base2.default); SnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, { modules: { toolbar: { handlers: { link: function link(value) { if (value) { var range = this.quill.getSelection(); if (range == null || range.length == 0) return; var preview = this.quill.getText(range); if (/^\S+@\S+\.\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) { preview = 'mailto:' + preview; } var tooltip = this.quill.theme.tooltip; tooltip.edit('link', preview); } else { this.quill.format('link', false); } } } } } }); var SnowTooltip = function (_BaseTooltip) { _inherits(SnowTooltip, _BaseTooltip); function SnowTooltip(quill, bounds) { _classCallCheck(this, SnowTooltip); var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds)); _this2.preview = _this2.root.querySelector('a.ql-preview'); return _this2; } _createClass(SnowTooltip, [{ key: 'listen', value: function listen() { var _this3 = this; _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this); this.root.querySelector('a.ql-action').addEventListener('click', function (event) { if (_this3.root.classList.contains('ql-editing')) { _this3.save(); } else { _this3.edit('link', _this3.preview.textContent); } event.preventDefault(); }); this.root.querySelector('a.ql-remove').addEventListener('click', function (event) { if (_this3.linkRange != null) { var range = _this3.linkRange; _this3.restoreFocus(); _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER); delete _this3.linkRange; } event.preventDefault(); _this3.hide(); }); this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) { if (range == null) return; if (range.length === 0 && source === _emitter2.default.sources.USER) { var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index), _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2), link = _quill$scroll$descend2[0], offset = _quill$scroll$descend2[1]; if (link != null) { _this3.linkRange = new _selection.Range(range.index - offset, link.length()); var preview = _link2.default.formats(link.domNode); _this3.preview.textContent = preview; _this3.preview.setAttribute('href', preview); _this3.show(); _this3.position(_this3.quill.getBounds(_this3.linkRange)); return; } } else { delete _this3.linkRange; } _this3.hide(); }); } }, { key: 'show', value: function show() { _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this); this.root.removeAttribute('data-mode'); } }]); return SnowTooltip; }(_base.BaseTooltip); SnowTooltip.TEMPLATE = ['', '', '', ''].join(''); exports.default = SnowTheme; /***/ }, /* 63 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _core = __webpack_require__(29); var _core2 = _interopRequireDefault(_core); var _align = __webpack_require__(36); var _direction = __webpack_require__(38); var _indent = __webpack_require__(64); var _blockquote = __webpack_require__(65); var _blockquote2 = _interopRequireDefault(_blockquote); var _header = __webpack_require__(66); var _header2 = _interopRequireDefault(_header); var _list = __webpack_require__(67); var _list2 = _interopRequireDefault(_list); var _background = __webpack_require__(37); var _color = __webpack_require__(26); var _font = __webpack_require__(39); var _size = __webpack_require__(40); var _bold = __webpack_require__(56); var _bold2 = _interopRequireDefault(_bold); var _italic = __webpack_require__(68); var _italic2 = _interopRequireDefault(_italic); var _link = __webpack_require__(27); var _link2 = _interopRequireDefault(_link); var _script = __webpack_require__(69); var _script2 = _interopRequireDefault(_script); var _strike = __webpack_require__(70); var _strike2 = _interopRequireDefault(_strike); var _underline = __webpack_require__(71); var _underline2 = _interopRequireDefault(_underline); var _image = __webpack_require__(72); var _image2 = _interopRequireDefault(_image); var _video = __webpack_require__(73); var _video2 = _interopRequireDefault(_video); var _code = __webpack_require__(13); var _code2 = _interopRequireDefault(_code); var _formula = __webpack_require__(74); var _formula2 = _interopRequireDefault(_formula); var _syntax = __webpack_require__(75); var _syntax2 = _interopRequireDefault(_syntax); var _toolbar = __webpack_require__(57); var _toolbar2 = _interopRequireDefault(_toolbar); var _icons = __webpack_require__(41); var _icons2 = _interopRequireDefault(_icons); var _picker = __webpack_require__(28); var _picker2 = _interopRequireDefault(_picker); var _colorPicker = __webpack_require__(59); var _colorPicker2 = _interopRequireDefault(_colorPicker); var _iconPicker = __webpack_require__(60); var _iconPicker2 = _interopRequireDefault(_iconPicker); var _tooltip = __webpack_require__(61); var _tooltip2 = _interopRequireDefault(_tooltip); var _bubble = __webpack_require__(108); var _bubble2 = _interopRequireDefault(_bubble); var _snow = __webpack_require__(62); var _snow2 = _interopRequireDefault(_snow); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _core2.default.register({ 'attributors/attribute/direction': _direction.DirectionAttribute, 'attributors/class/align': _align.AlignClass, 'attributors/class/background': _background.BackgroundClass, 'attributors/class/color': _color.ColorClass, 'attributors/class/direction': _direction.DirectionClass, 'attributors/class/font': _font.FontClass, 'attributors/class/size': _size.SizeClass, 'attributors/style/align': _align.AlignStyle, 'attributors/style/background': _background.BackgroundStyle, 'attributors/style/color': _color.ColorStyle, 'attributors/style/direction': _direction.DirectionStyle, 'attributors/style/font': _font.FontStyle, 'attributors/style/size': _size.SizeStyle }, true); _core2.default.register({ 'formats/align': _align.AlignClass, 'formats/direction': _direction.DirectionClass, 'formats/indent': _indent.IndentClass, 'formats/background': _background.BackgroundStyle, 'formats/color': _color.ColorStyle, 'formats/font': _font.FontClass, 'formats/size': _size.SizeClass, 'formats/blockquote': _blockquote2.default, 'formats/code-block': _code2.default, 'formats/header': _header2.default, 'formats/list': _list2.default, 'formats/bold': _bold2.default, 'formats/code': _code.Code, 'formats/italic': _italic2.default, 'formats/link': _link2.default, 'formats/script': _script2.default, 'formats/strike': _strike2.default, 'formats/underline': _underline2.default, 'formats/image': _image2.default, 'formats/video': _video2.default, 'formats/list/item': _list.ListItem, 'modules/formula': _formula2.default, 'modules/syntax': _syntax2.default, 'modules/toolbar': _toolbar2.default, 'themes/bubble': _bubble2.default, 'themes/snow': _snow2.default, 'ui/icons': _icons2.default, 'ui/picker': _picker2.default, 'ui/icon-picker': _iconPicker2.default, 'ui/color-picker': _colorPicker2.default, 'ui/tooltip': _tooltip2.default }, true); exports.default = _core2.default; /***/ }, /* 64 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IndentClass = undefined; 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var IdentAttributor = function (_Parchment$Attributor) { _inherits(IdentAttributor, _Parchment$Attributor); function IdentAttributor() { _classCallCheck(this, IdentAttributor); return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments)); } _createClass(IdentAttributor, [{ key: 'add', value: function add(node, value) { if (value === '+1' || value === '-1') { var indent = this.value(node) || 0; value = value === '+1' ? indent + 1 : indent - 1; } if (value === 0) { this.remove(node); return true; } else { return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value); } } }, { key: 'canAdd', value: function canAdd(node, value) { return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value)); } }, { key: 'value', value: function value(node) { return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN } }]); return IdentAttributor; }(_parchment2.default.Attributor.Class); var IndentClass = new IdentAttributor('indent', 'ql-indent', { scope: _parchment2.default.Scope.BLOCK, whitelist: [1, 2, 3, 4, 5, 6, 7, 8] }); exports.IndentClass = IndentClass; /***/ }, /* 65 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Blockquote = function (_Block) { _inherits(Blockquote, _Block); function Blockquote() { _classCallCheck(this, Blockquote); return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments)); } return Blockquote; }(_block2.default); Blockquote.blotName = 'blockquote'; Blockquote.tagName = 'blockquote'; exports.default = Blockquote; /***/ }, /* 66 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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 _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Header = function (_Block) { _inherits(Header, _Block); function Header() { _classCallCheck(this, Header); return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments)); } _createClass(Header, null, [{ key: 'formats', value: function formats(domNode) { return this.tagName.indexOf(domNode.tagName) + 1; } }]); return Header; }(_block2.default); Header.blotName = 'header'; Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']; exports.default = Header; /***/ }, /* 67 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ListItem = undefined; 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _block = __webpack_require__(4); var _block2 = _interopRequireDefault(_block); var _container = __webpack_require__(25); var _container2 = _interopRequireDefault(_container); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ListItem = function (_Block) { _inherits(ListItem, _Block); function ListItem() { _classCallCheck(this, ListItem); return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments)); } _createClass(ListItem, [{ key: 'format', value: function format(name, value) { if (name === List.blotName && !value) { this.replaceWith(_parchment2.default.create(this.statics.scope)); } else { _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value); } } }, { key: 'remove', value: function remove() { if (this.prev == null && this.next == null) { this.parent.remove(); } else { _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this); } } }, { key: 'replaceWith', value: function replaceWith(name, value) { this.parent.isolate(this.offset(this.parent), this.length()); if (name === this.parent.statics.blotName) { this.parent.replaceWith(name, value); return this; } else { this.parent.unwrap(); return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value); } } }], [{ key: 'formats', value: function formats(domNode) { return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode); } }]); return ListItem; }(_block2.default); ListItem.blotName = 'list-item'; ListItem.tagName = 'LI'; var List = function (_Container) { _inherits(List, _Container); _createClass(List, null, [{ key: 'create', value: function create(value) { var tagName = value === 'ordered' ? 'OL' : 'UL'; var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName); if (value === 'checked' || value === 'unchecked') { node.setAttribute('data-checked', value === 'checked'); } return node; } }, { key: 'formats', value: function formats(domNode) { if (domNode.tagName === 'OL') return 'ordered'; if (domNode.tagName === 'UL') { if (domNode.hasAttribute('data-checked')) { return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked'; } else { return 'bullet'; } } return undefined; } }]); function List(domNode) { _classCallCheck(this, List); var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode)); var listEventHandler = function listEventHandler(e) { if (e.target.parentNode !== domNode) return; var format = _this2.statics.formats(domNode); var blot = _parchment2.default.find(e.target); if (format === 'checked') { blot.format('list', 'unchecked'); } else if (format === 'unchecked') { blot.format('list', 'checked'); } }; domNode.addEventListener('touchstart', listEventHandler); domNode.addEventListener('mousedown', listEventHandler); return _this2; } _createClass(List, [{ key: 'format', value: function format(name, value) { if (this.children.length > 0) { this.children.tail.format(name, value); } } }, { key: 'formats', value: function formats() { // We don't inherit from FormatBlot return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode)); } }, { key: 'insertBefore', value: function insertBefore(blot, ref) { if (blot instanceof ListItem) { _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref); } else { var index = ref == null ? this.length() : ref.offset(this); var after = this.split(index); after.parent.insertBefore(blot, after); } } }, { key: 'optimize', value: function optimize(context) { _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context); var next = this.next; if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) { next.moveChildren(this); next.remove(); } } }, { key: 'replace', value: function replace(target) { if (target.statics.blotName !== this.statics.blotName) { var item = _parchment2.default.create(this.statics.defaultChild); target.moveChildren(item); this.appendChild(item); } _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target); } }]); return List; }(_container2.default); List.blotName = 'list'; List.scope = _parchment2.default.Scope.BLOCK_BLOT; List.tagName = ['OL', 'UL']; List.defaultChild = 'list-item'; List.allowedChildren = [ListItem]; exports.ListItem = ListItem; exports.default = List; /***/ }, /* 68 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _bold = __webpack_require__(56); var _bold2 = _interopRequireDefault(_bold); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Italic = function (_Bold) { _inherits(Italic, _Bold); function Italic() { _classCallCheck(this, Italic); return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments)); } return Italic; }(_bold2.default); Italic.blotName = 'italic'; Italic.tagName = ['EM', 'I']; exports.default = Italic; /***/ }, /* 69 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Script = function (_Inline) { _inherits(Script, _Inline); function Script() { _classCallCheck(this, Script); return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments)); } _createClass(Script, null, [{ key: 'create', value: function create(value) { if (value === 'super') { return document.createElement('sup'); } else if (value === 'sub') { return document.createElement('sub'); } else { return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value); } } }, { key: 'formats', value: function formats(domNode) { if (domNode.tagName === 'SUB') return 'sub'; if (domNode.tagName === 'SUP') return 'super'; return undefined; } }]); return Script; }(_inline2.default); Script.blotName = 'script'; Script.tagName = ['SUB', 'SUP']; exports.default = Script; /***/ }, /* 70 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Strike = function (_Inline) { _inherits(Strike, _Inline); function Strike() { _classCallCheck(this, Strike); return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments)); } return Strike; }(_inline2.default); Strike.blotName = 'strike'; Strike.tagName = 'S'; exports.default = Strike; /***/ }, /* 71 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _inline = __webpack_require__(6); var _inline2 = _interopRequireDefault(_inline); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var Underline = function (_Inline) { _inherits(Underline, _Inline); function Underline() { _classCallCheck(this, Underline); return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments)); } return Underline; }(_inline2.default); Underline.blotName = 'underline'; Underline.tagName = 'U'; exports.default = Underline; /***/ }, /* 72 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _link = __webpack_require__(27); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ATTRIBUTES = ['alt', 'height', 'width']; var Image = function (_Parchment$Embed) { _inherits(Image, _Parchment$Embed); function Image() { _classCallCheck(this, Image); return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments)); } _createClass(Image, [{ key: 'format', value: function format(name, value) { if (ATTRIBUTES.indexOf(name) > -1) { if (value) { this.domNode.setAttribute(name, value); } else { this.domNode.removeAttribute(name); } } else { _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value); } } }], [{ key: 'create', value: function create(value) { var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value); if (typeof value === 'string') { node.setAttribute('src', this.sanitize(value)); } return node; } }, { key: 'formats', value: function formats(domNode) { return ATTRIBUTES.reduce(function (formats, attribute) { if (domNode.hasAttribute(attribute)) { formats[attribute] = domNode.getAttribute(attribute); } return formats; }, {}); } }, { key: 'match', value: function match(url) { return (/\.(jpe?g|gif|png)$/.test(url) || /^data:image\/.+;base64/.test(url) ); } }, { key: 'sanitize', value: function sanitize(url) { return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0'; } }, { key: 'value', value: function value(domNode) { return domNode.getAttribute('src'); } }]); return Image; }(_parchment2.default.Embed); Image.blotName = 'image'; Image.tagName = 'IMG'; exports.default = Image; /***/ }, /* 73 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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); } }; var _block = __webpack_require__(4); var _link = __webpack_require__(27); var _link2 = _interopRequireDefault(_link); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var ATTRIBUTES = ['height', 'width']; var Video = function (_BlockEmbed) { _inherits(Video, _BlockEmbed); function Video() { _classCallCheck(this, Video); return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments)); } _createClass(Video, [{ key: 'format', value: function format(name, value) { if (ATTRIBUTES.indexOf(name) > -1) { if (value) { this.domNode.setAttribute(name, value); } else { this.domNode.removeAttribute(name); } } else { _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value); } } }], [{ key: 'create', value: function create(value) { var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value); node.setAttribute('frameborder', '0'); node.setAttribute('allowfullscreen', true); node.setAttribute('src', this.sanitize(value)); return node; } }, { key: 'formats', value: function formats(domNode) { return ATTRIBUTES.reduce(function (formats, attribute) { if (domNode.hasAttribute(attribute)) { formats[attribute] = domNode.getAttribute(attribute); } return formats; }, {}); } }, { key: 'sanitize', value: function sanitize(url) { return _link2.default.sanitize(url); } }, { key: 'value', value: function value(domNode) { return domNode.getAttribute('src'); } }]); return Video; }(_block.BlockEmbed); Video.blotName = 'video'; Video.className = 'ql-video'; Video.tagName = 'IFRAME'; exports.default = Video; /***/ }, /* 74 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.FormulaBlot = undefined; 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); } }; var _embed = __webpack_require__(35); var _embed2 = _interopRequireDefault(_embed); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var FormulaBlot = function (_Embed) { _inherits(FormulaBlot, _Embed); function FormulaBlot() { _classCallCheck(this, FormulaBlot); return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments)); } _createClass(FormulaBlot, null, [{ key: 'create', value: function create(value) { var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value); if (typeof value === 'string') { window.katex.render(value, node, { throwOnError: false, errorColor: '#f00' }); node.setAttribute('data-value', value); } return node; } }, { key: 'value', value: function value(domNode) { return domNode.getAttribute('data-value'); } }]); return FormulaBlot; }(_embed2.default); FormulaBlot.blotName = 'formula'; FormulaBlot.className = 'ql-formula'; FormulaBlot.tagName = 'SPAN'; var Formula = function (_Module) { _inherits(Formula, _Module); _createClass(Formula, null, [{ key: 'register', value: function register() { _quill2.default.register(FormulaBlot, true); } }]); function Formula() { _classCallCheck(this, Formula); var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this)); if (window.katex == null) { throw new Error('Formula module requires KaTeX.'); } return _this2; } return Formula; }(_module2.default); exports.FormulaBlot = FormulaBlot; exports.default = Formula; /***/ }, /* 75 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.CodeToken = exports.CodeBlock = undefined; 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); } }; var _parchment = __webpack_require__(0); var _parchment2 = _interopRequireDefault(_parchment); var _quill = __webpack_require__(5); var _quill2 = _interopRequireDefault(_quill); var _module = __webpack_require__(9); var _module2 = _interopRequireDefault(_module); var _code = __webpack_require__(13); var _code2 = _interopRequireDefault(_code); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var SyntaxCodeBlock = function (_CodeBlock) { _inherits(SyntaxCodeBlock, _CodeBlock); function SyntaxCodeBlock() { _classCallCheck(this, SyntaxCodeBlock); return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments)); } _createClass(SyntaxCodeBlock, [{ key: 'replaceWith', value: function replaceWith(block) { this.domNode.textContent = this.domNode.textContent; this.attach(); _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block); } }, { key: 'highlight', value: function highlight(_highlight) { var text = this.domNode.textContent; if (this.cachedText !== text) { if (text.trim().length > 0 || this.cachedText == null) { this.domNode.innerHTML = _highlight(text); this.domNode.normalize(); this.attach(); } this.cachedText = text; } } }]); return SyntaxCodeBlock; }(_code2.default); SyntaxCodeBlock.className = 'ql-syntax'; var CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', { scope: _parchment2.default.Scope.INLINE }); var Syntax = function (_Module) { _inherits(Syntax, _Module); _createClass(Syntax, null, [{ key: 'register', value: function register() { _quill2.default.register(CodeToken, true); _quill2.default.register(SyntaxCodeBlock, true); } }]); function Syntax(quill, options) { _classCallCheck(this, Syntax); var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options)); if (typeof _this2.options.highlight !== 'function') { throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.'); } var timer = null; _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () { clearTimeout(timer); timer = setTimeout(function () { _this2.highlight(); timer = null; }, _this2.options.interval); }); _this2.highlight(); return _this2; } _createClass(Syntax, [{ key: 'highlight', value: function highlight() { var _this3 = this; if (this.quill.selection.composing) return; this.quill.update(_quill2.default.sources.USER); var range = this.quill.getSelection(); this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) { code.highlight(_this3.options.highlight); }); this.quill.update(_quill2.default.sources.SILENT); if (range != null) { this.quill.setSelection(range, _quill2.default.sources.SILENT); } } }]); return Syntax; }(_module2.default); Syntax.DEFAULTS = { highlight: function () { if (window.hljs == null) return null; return function (text) { var result = window.hljs.highlightAuto(text); return result.value; }; }(), interval: 1000 }; exports.CodeBlock = SyntaxCodeBlock; exports.CodeToken = CodeToken; exports.default = Syntax; /***/ }, /* 76 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 77 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 78 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 79 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 80 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 81 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 82 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 83 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 84 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 85 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 86 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 87 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 88 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 89 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 90 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 91 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 92 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 93 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 94 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 95 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 96 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 97 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 98 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 99 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 100 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 101 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 102 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 103 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 104 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 105 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 106 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 107 */ /***/function (module, exports) { module.exports = " "; /***/ }, /* 108 */ /***/function (module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.BubbleTooltip = undefined; 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; }; }(); var _extend = __webpack_require__(3); var _extend2 = _interopRequireDefault(_extend); var _emitter = __webpack_require__(8); var _emitter2 = _interopRequireDefault(_emitter); var _base = __webpack_require__(43); var _base2 = _interopRequireDefault(_base); var _selection = __webpack_require__(15); var _icons = __webpack_require__(41); var _icons2 = _interopRequireDefault(_icons); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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 === 'undefined' ? 'undefined' : _typeof2(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 === 'undefined' ? 'undefined' : _typeof2(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; } var TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']]; var BubbleTheme = function (_BaseTheme) { _inherits(BubbleTheme, _BaseTheme); function BubbleTheme(quill, options) { _classCallCheck(this, BubbleTheme); if (options.modules.toolbar != null && options.modules.toolbar.container == null) { options.modules.toolbar.container = TOOLBAR_CONFIG; } var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options)); _this.quill.container.classList.add('ql-bubble'); return _this; } _createClass(BubbleTheme, [{ key: 'extendToolbar', value: function extendToolbar(toolbar) { this.tooltip = new BubbleTooltip(this.quill, this.options.bounds); this.tooltip.root.appendChild(toolbar.container); this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default); this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default); } }]); return BubbleTheme; }(_base2.default); BubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, { modules: { toolbar: { handlers: { link: function link(value) { if (!value) { this.quill.format('link', false); } else { this.quill.theme.tooltip.edit(); } } } } } }); var BubbleTooltip = function (_BaseTooltip) { _inherits(BubbleTooltip, _BaseTooltip); function BubbleTooltip(quill, bounds) { _classCallCheck(this, BubbleTooltip); var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds)); _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) { if (type !== _emitter2.default.events.SELECTION_CHANGE) return; if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) { _this2.show(); // Lock our width so we will expand beyond our offsetParent boundaries _this2.root.style.left = '0px'; _this2.root.style.width = ''; _this2.root.style.width = _this2.root.offsetWidth + 'px'; var lines = _this2.quill.getLines(range.index, range.length); if (lines.length === 1) { _this2.position(_this2.quill.getBounds(range)); } else { var lastLine = lines[lines.length - 1]; var index = _this2.quill.getIndex(lastLine); var length = Math.min(lastLine.length() - 1, range.index + range.length - index); var _bounds = _this2.quill.getBounds(new _selection.Range(index, length)); _this2.position(_bounds); } } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) { _this2.hide(); } }); return _this2; } _createClass(BubbleTooltip, [{ key: 'listen', value: function listen() { var _this3 = this; _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this); this.root.querySelector('.ql-close').addEventListener('click', function () { _this3.root.classList.remove('ql-editing'); }); this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () { // Let selection be restored by toolbar handlers before repositioning setTimeout(function () { if (_this3.root.classList.contains('ql-hidden')) return; var range = _this3.quill.getSelection(); if (range != null) { _this3.position(_this3.quill.getBounds(range)); } }, 1); }); } }, { key: 'cancel', value: function cancel() { this.show(); } }, { key: 'position', value: function position(reference) { var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference); var arrow = this.root.querySelector('.ql-tooltip-arrow'); arrow.style.marginLeft = ''; if (shift === 0) return shift; arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px'; } }]); return BubbleTooltip; }(_base.BaseTooltip); BubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join(''); exports.BubbleTooltip = BubbleTooltip; exports.default = BubbleTheme; /***/ }, /* 109 */ /***/function (module, exports, __webpack_require__) { module.exports = __webpack_require__(63); /***/ }] /******/)["default"] ); }); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(248).Buffer, __webpack_require__(252)(module))) /***/ }), /* 134 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCRadioFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(135); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCRadioFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCRadioFoundation, _super); function MDCRadioFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCRadioFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCRadioFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRadioFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRadioFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, setNativeControlDisabled: function setNativeControlDisabled() { return undefined; } }; }, enumerable: true, configurable: true }); MDCRadioFoundation.prototype.setDisabled = function (disabled) { var DISABLED = MDCRadioFoundation.cssClasses.DISABLED; this.adapter_.setNativeControlDisabled(disabled); if (disabled) { this.adapter_.addClass(DISABLED); } else { this.adapter_.removeClass(DISABLED); } }; return MDCRadioFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCRadioFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 135 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control' }; var cssClasses = { DISABLED: 'mdc-radio--disabled', ROOT: 'mdc-radio' }; //# sourceMappingURL=constants.js.map /***/ }), /* 136 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSliderFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation_util__ = __webpack_require__(29); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(55); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var DOWN_EVENTS = ['mousedown', 'pointerdown', 'touchstart']; var UP_EVENTS = ['mouseup', 'pointerup', 'touchend']; var MOVE_EVENT_MAP = { mousedown: 'mousemove', pointerdown: 'pointermove', touchstart: 'touchmove' }; var KEY_IDS = { ARROW_DOWN: 'ArrowDown', ARROW_LEFT: 'ArrowLeft', ARROW_RIGHT: 'ArrowRight', ARROW_UP: 'ArrowUp', END: 'End', HOME: 'Home', PAGE_DOWN: 'PageDown', PAGE_UP: 'PageUp' }; var MDCSliderFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCSliderFoundation, _super); function MDCSliderFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCSliderFoundation.defaultAdapter, adapter)) || this; /** * 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.thumbContainerPointerHandler_ = function () { return _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; } Object.defineProperty(MDCSliderFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSliderFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSliderFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCSliderFoundation, "defaultAdapter", { get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { hasClass: function hasClass() { return false; }, addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, getAttribute: function getAttribute() { return null; }, setAttribute: function setAttribute() { return undefined; }, removeAttribute: function removeAttribute() { return undefined; }, computeBoundingRect: function computeBoundingRect() { return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }; }, getTabIndex: function getTabIndex() { return 0; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler() { return undefined; }, deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler() { return undefined; }, registerBodyInteractionHandler: function registerBodyInteractionHandler() { return undefined; }, deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler() { return undefined; }, registerResizeHandler: function registerResizeHandler() { return undefined; }, deregisterResizeHandler: function deregisterResizeHandler() { return undefined; }, notifyInput: function notifyInput() { return undefined; }, notifyChange: function notifyChange() { return undefined; }, setThumbContainerStyleProperty: function setThumbContainerStyleProperty() { return undefined; }, setTrackStyleProperty: function setTrackStyleProperty() { return undefined; }, setMarkerValue: function setMarkerValue() { return undefined; }, appendTrackMarkers: function appendTrackMarkers() { return undefined; }, removeTrackMarkers: function removeTrackMarkers() { return undefined; }, setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty() { return undefined; }, isRTL: function isRTL() { return false; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCSliderFoundation.prototype.init = function () { var _this = this; this.isDiscrete_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].IS_DISCRETE); this.hasTrackMarker_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].HAS_TRACK_MARKER); DOWN_EVENTS.forEach(function (evtName) { _this.adapter_.registerInteractionHandler(evtName, _this.interactionStartHandler_); _this.adapter_.registerThumbContainerInteractionHandler(evtName, _this.thumbContainerPointerHandler_); }); this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_); this.adapter_.registerInteractionHandler('focus', this.focusHandler_); this.adapter_.registerInteractionHandler('blur', this.blurHandler_); 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; } }; MDCSliderFoundation.prototype.destroy = function () { var _this = this; DOWN_EVENTS.forEach(function (evtName) { _this.adapter_.deregisterInteractionHandler(evtName, _this.interactionStartHandler_); _this.adapter_.deregisterThumbContainerInteractionHandler(evtName, _this.thumbContainerPointerHandler_); }); this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_); this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); this.adapter_.deregisterResizeHandler(this.resizeHandler_); }; MDCSliderFoundation.prototype.setupTrackMarker = function () { 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; this.adapter_.setLastTrackMarkersStyleProperty('flex-grow', String(lastStepRatio)); } } }; MDCSliderFoundation.prototype.layout = function () { this.rect_ = this.adapter_.computeBoundingRect(); this.updateUIForCurrentValue_(); }; MDCSliderFoundation.prototype.getValue = function () { return this.value_; }; MDCSliderFoundation.prototype.setValue = function (value) { this.setValue_(value, false); }; MDCSliderFoundation.prototype.getMax = function () { return this.max_; }; MDCSliderFoundation.prototype.setMax = function (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_3__constants__["c" /* strings */].ARIA_VALUEMAX, String(this.max_)); this.setupTrackMarker(); }; MDCSliderFoundation.prototype.getMin = function () { return this.min_; }; MDCSliderFoundation.prototype.setMin = function (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_3__constants__["c" /* strings */].ARIA_VALUEMIN, String(this.min_)); this.setupTrackMarker(); }; MDCSliderFoundation.prototype.getStep = function () { return this.step_; }; MDCSliderFoundation.prototype.setStep = function (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(); }; MDCSliderFoundation.prototype.isDisabled = function () { return this.disabled_; }; MDCSliderFoundation.prototype.setDisabled = function (disabled) { this.disabled_ = disabled; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED, this.disabled_); if (this.disabled_) { this.savedTabIndex_ = this.adapter_.getTabIndex(); this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_DISABLED, 'true'); this.adapter_.removeAttribute('tabindex'); } else { this.adapter_.removeAttribute(__WEBPACK_IMPORTED_MODULE_3__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 */ MDCSliderFoundation.prototype.handleDown_ = function (downEvent) { var _this = this; if (this.disabled_) { return; } this.preventFocusState_ = true; this.setInTransit_(!this.handlingThumbTargetEvt_); this.handlingThumbTargetEvt_ = false; this.setActive_(true); var moveHandler = function moveHandler(moveEvent) { _this.handleMove_(moveEvent); }; var moveEventType = MOVE_EVENT_MAP[downEvent.type]; // 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() { _this.handleUp_(); _this.adapter_.deregisterBodyInteractionHandler(moveEventType, moveHandler); UP_EVENTS.forEach(function (evtName) { return _this.adapter_.deregisterBodyInteractionHandler(evtName, upHandler); }); }; this.adapter_.registerBodyInteractionHandler(moveEventType, moveHandler); UP_EVENTS.forEach(function (evtName) { return _this.adapter_.registerBodyInteractionHandler(evtName, upHandler); }); this.setValueFromEvt_(downEvent); }; /** * Called when the user moves the slider */ MDCSliderFoundation.prototype.handleMove_ = function (evt) { evt.preventDefault(); this.setValueFromEvt_(evt); }; /** * Called when the user's interaction with the slider ends */ MDCSliderFoundation.prototype.handleUp_ = function () { this.setActive_(false); this.adapter_.notifyChange(); }; /** * Returns the pageX of the event */ MDCSliderFoundation.prototype.getPageX_ = function (evt) { if (evt.targetTouches && evt.targetTouches.length > 0) { return evt.targetTouches[0].pageX; } return evt.pageX; }; /** * Sets the slider value from an event */ MDCSliderFoundation.prototype.setValueFromEvt_ = function (evt) { var pageX = this.getPageX_(evt); var value = this.computeValueFromPageX_(pageX); this.setValue_(value, true); }; /** * Computes the new value from the pageX position */ MDCSliderFoundation.prototype.computeValueFromPageX_ = function (pageX) { var _a = this, max = _a.max_, min = _a.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 */ MDCSliderFoundation.prototype.handleKeydown_ = function (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_3__constants__["a" /* cssClasses */].FOCUS); this.setValue_(value, true); this.adapter_.notifyChange(); }; /** * Returns the computed name of the event */ MDCSliderFoundation.prototype.getKeyId_ = function (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 */ MDCSliderFoundation.prototype.getValueForKeyId_ = function (keyId) { var _a = this, max = _a.max_, min = _a.min_, step = _a.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_3__constants__["b" /* numbers */].PAGE_FACTOR; case KEY_IDS.PAGE_DOWN: return this.value_ - delta * __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */].PAGE_FACTOR; default: return NaN; } }; MDCSliderFoundation.prototype.handleFocus_ = function () { if (this.preventFocusState_) { return; } this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FOCUS); }; MDCSliderFoundation.prototype.handleBlur_ = function () { this.preventFocusState_ = false; this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FOCUS); }; /** * Sets the value of the slider */ MDCSliderFoundation.prototype.setValue_ = function (value, shouldFireInput, force) { if (force === void 0) { force = false; } if (value === this.value_ && !force) { return; } var _a = this, min = _a.min_, max = _a.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_3__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 */ MDCSliderFoundation.prototype.quantize_ = function (value) { var numSteps = Math.round(value / this.step_); return numSteps * this.step_; }; MDCSliderFoundation.prototype.updateUIForCurrentValue_ = function () { var _this = this; var _a = this, max = _a.max_, min = _a.min_, value = _a.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_1__material_animation_util__["b" /* getCorrectPropertyName */])(window, 'transform'); var transitionendEvtName = Object(__WEBPACK_IMPORTED_MODULE_1__material_animation_util__["a" /* getCorrectEventName */])(window, 'transitionend'); if (this.inTransit_) { var onTransitionEnd_1 = function onTransitionEnd_1() { _this.setInTransit_(false); _this.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd_1); }; this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd_1); } 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. _this.adapter_.setThumbContainerStyleProperty(transformProp, "translateX(" + translatePx + "px) translateX(-50%)"); _this.adapter_.setTrackStyleProperty(transformProp, "scaleX(" + pctComplete + ")"); }); }; /** * Toggles the active state of the slider */ MDCSliderFoundation.prototype.setActive_ = function (active) { this.active_ = active; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].ACTIVE, this.active_); }; /** * Toggles the inTransit state of the slider */ MDCSliderFoundation.prototype.setInTransit_ = function (inTransit) { this.inTransit_ = inTransit; this.toggleClass_(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].IN_TRANSIT, this.inTransit_); }; /** * Conditionally adds or removes a class based on shouldBePresent */ MDCSliderFoundation.prototype.toggleClass_ = function (className, shouldBePresent) { if (shouldBePresent) { this.adapter_.addClass(className); } else { this.adapter_.removeClass(className); } }; return MDCSliderFoundation; }(__WEBPACK_IMPORTED_MODULE_2__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSliderFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 137 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ANIMATING: 'mdc-tab-scroller--animating', SCROLL_AREA_SCROLL: 'mdc-tab-scroller__scroll-area--scroll', SCROLL_TEST: 'mdc-tab-scroller__test' }; var strings = { AREA_SELECTOR: '.mdc-tab-scroller__scroll-area', CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content' }; //# sourceMappingURL=constants.js.map /***/ }), /* 138 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(278); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCTabFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTabFoundation, _super); function MDCTabFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTabFoundation.defaultAdapter, adapter)) || this; _this.focusOnActivate_ = true; return _this; } Object.defineProperty(MDCTabFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabFoundation, "defaultAdapter", { get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function addClass() { return undefined; }, removeClass: function removeClass() { return undefined; }, hasClass: function hasClass() { return false; }, setAttr: function setAttr() { return undefined; }, activateIndicator: function activateIndicator() { return undefined; }, deactivateIndicator: function deactivateIndicator() { return undefined; }, notifyInteracted: function notifyInteracted() { return undefined; }, getOffsetLeft: function getOffsetLeft() { return 0; }, getOffsetWidth: function getOffsetWidth() { return 0; }, getContentOffsetLeft: function getContentOffsetLeft() { return 0; }, getContentOffsetWidth: function getContentOffsetWidth() { return 0; }, focus: function focus() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); MDCTabFoundation.prototype.handleClick = function () { // 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(); }; MDCTabFoundation.prototype.isActive = function () { return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE); }; /** * Sets whether the tab should focus itself when activated */ MDCTabFoundation.prototype.setFocusOnActivate = function (focusOnActivate) { this.focusOnActivate_ = focusOnActivate; }; /** * Activates the Tab */ MDCTabFoundation.prototype.activate = function (previousIndicatorClientRect) { 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); if (this.focusOnActivate_) { this.adapter_.focus(); } }; /** * Deactivates the Tab */ MDCTabFoundation.prototype.deactivate = function () { // Early exit if (!this.isActive()) { return; } 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 dimensions of the Tab */ MDCTabFoundation.prototype.computeDimensions = function () { var rootWidth = this.adapter_.getOffsetWidth(); var rootLeft = this.adapter_.getOffsetLeft(); var contentWidth = this.adapter_.getContentOffsetWidth(); var contentLeft = this.adapter_.getContentOffsetLeft(); return { contentLeft: rootLeft + contentLeft, contentRight: rootLeft + contentLeft + contentWidth, rootLeft: rootLeft, rootRight: rootLeft + rootWidth }; }; return MDCTabFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 139 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabBarFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(140); /** * @license * Copyright 2018 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var 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_2__constants__["b" /* strings */].ARROW_LEFT_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_RIGHT_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].END_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].HOME_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ENTER_KEY); ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].SPACE_KEY); 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_2__constants__["a" /* numbers */].ARROW_LEFT_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_LEFT_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */].ARROW_RIGHT_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_RIGHT_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */].END_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].END_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */].HOME_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].HOME_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */].ENTER_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ENTER_KEY); KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */].SPACE_KEYCODE, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].SPACE_KEY); var MDCTabBarFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCTabBarFoundation, _super); function MDCTabBarFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCTabBarFoundation.defaultAdapter, adapter)) || this; _this.useAutomaticActivation_ = false; return _this; } Object.defineProperty(MDCTabBarFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabBarFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCTabBarFoundation, "defaultAdapter", { get: function get() { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { scrollTo: function scrollTo() { return undefined; }, incrementScroll: function incrementScroll() { return undefined; }, getScrollPosition: function getScrollPosition() { return 0; }, getScrollContentWidth: function getScrollContentWidth() { return 0; }, getOffsetWidth: function getOffsetWidth() { return 0; }, isRTL: function isRTL() { return false; }, setActiveTab: function setActiveTab() { return undefined; }, activateTabAtIndex: function activateTabAtIndex() { return undefined; }, deactivateTabAtIndex: function deactivateTabAtIndex() { return undefined; }, focusTabAtIndex: function focusTabAtIndex() { return undefined; }, getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex() { return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }; }, getTabDimensionsAtIndex: function getTabDimensionsAtIndex() { return { rootLeft: 0, rootRight: 0, contentLeft: 0, contentRight: 0 }; }, getPreviousActiveTabIndex: function getPreviousActiveTabIndex() { return -1; }, getFocusedTabIndex: function getFocusedTabIndex() { return -1; }, getIndexOfTabById: function getIndexOfTabById() { return -1; }, getTabListLength: function getTabListLength() { return 0; }, notifyTabActivated: function notifyTabActivated() { return undefined; } }; // tslint:enable:object-literal-sort-keys }, enumerable: true, configurable: true }); /** * Switches between automatic and manual activation modes. * See https://www.w3.org/TR/wai-aria-practices/#tabpanel for examples. */ MDCTabBarFoundation.prototype.setUseAutomaticActivation = function (useAutomaticActivation) { this.useAutomaticActivation_ = useAutomaticActivation; }; MDCTabBarFoundation.prototype.activateTab = function (index) { var previousActiveIndex = this.adapter_.getPreviousActiveTabIndex(); if (!this.indexIsInRange_(index) || index === previousActiveIndex) { return; } var previousClientRect; if (previousActiveIndex !== -1) { this.adapter_.deactivateTabAtIndex(previousActiveIndex); previousClientRect = this.adapter_.getTabIndicatorClientRectAtIndex(previousActiveIndex); } this.adapter_.activateTabAtIndex(index, previousClientRect); this.scrollIntoView(index); this.adapter_.notifyTabActivated(index); }; MDCTabBarFoundation.prototype.handleKeyDown = function (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; } // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple if (!this.isActivationKey_(key)) { evt.preventDefault(); } if (this.useAutomaticActivation_) { if (this.isActivationKey_(key)) { return; } var index = this.determineTargetFromKey_(this.adapter_.getPreviousActiveTabIndex(), key); this.adapter_.setActiveTab(index); this.scrollIntoView(index); } else { var focusedTabIndex = this.adapter_.getFocusedTabIndex(); if (this.isActivationKey_(key)) { this.adapter_.setActiveTab(focusedTabIndex); } else { var index = this.determineTargetFromKey_(focusedTabIndex, key); this.adapter_.focusTabAtIndex(index); this.scrollIntoView(index); } } }; /** * Handles the MDCTab:interacted event */ MDCTabBarFoundation.prototype.handleTabInteraction = function (evt) { this.adapter_.setActiveTab(this.adapter_.getIndexOfTabById(evt.detail.tabId)); }; /** * Scrolls the tab at the given index into view * @param index The tab index to make visible */ MDCTabBarFoundation.prototype.scrollIntoView = function (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 determining the index of the destination tab based on what key was pressed * @param origin The original index from which to determine the destination * @param key The name of the key */ MDCTabBarFoundation.prototype.determineTargetFromKey_ = function (origin, key) { var isRTL = this.isRTL_(); var maxIndex = this.adapter_.getTabListLength() - 1; var shouldGoToEnd = key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].END_KEY; var shouldDecrement = key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_LEFT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_RIGHT_KEY && isRTL; var shouldIncrement = key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_RIGHT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARROW_LEFT_KEY && isRTL; var index = origin; if (shouldGoToEnd) { index = maxIndex; } else if (shouldDecrement) { index -= 1; } else if (shouldIncrement) { index += 1; } else { index = 0; } if (index < 0) { index = maxIndex; } else if (index > maxIndex) { index = 0; } return index; }; /** * Calculates the scroll increment that will make the tab at the given index visible * @param index The index of the tab * @param nextIndex The index of the next tab * @param scrollPosition The current scroll position * @param barWidth The width of the Tab Bar */ MDCTabBarFoundation.prototype.calculateScrollIncrement_ = function (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_2__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; var rightIncrement = relativeContentLeft + __WEBPACK_IMPORTED_MODULE_2__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 index The index of the tab * @param nextIndex The index of the next tab * @param scrollPosition The current scroll position * @param barWidth The width of the Tab Bar * @param scrollContentWidth The width of the scroll content */ MDCTabBarFoundation.prototype.calculateScrollIncrementRTL_ = function (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_2__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT; var rightIncrement = relativeContentLeft - __WEBPACK_IMPORTED_MODULE_2__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 index The index of the tab * @param tabDimensions The dimensions of the tab * @param scrollPosition The current scroll position * @param barWidth The width of the tab bar */ MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdge_ = function (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 index The index of the tab * @param tabDimensions The dimensions of the tab * @param scrollPosition The current scroll position * @param barWidth The width of the tab bar * @param scrollContentWidth The width of the scroller content */ MDCTabBarFoundation.prototype.findAdjacentTabIndexClosestToEdgeRTL_ = function (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 evt The keydown event */ MDCTabBarFoundation.prototype.getKeyFromEvent_ = function (evt) { if (ACCEPTABLE_KEYS.has(evt.key)) { return evt.key; } return KEYCODE_MAP.get(evt.keyCode); }; MDCTabBarFoundation.prototype.isActivationKey_ = function (key) { return key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].SPACE_KEY || key === __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ENTER_KEY; }; /** * Returns whether a given index is inclusively between the ends * @param index The index to test */ MDCTabBarFoundation.prototype.indexIsInRange_ = function (index) { return index >= 0 && index < this.adapter_.getTabListLength(); }; /** * Returns the view's RTL property */ MDCTabBarFoundation.prototype.isRTL_ = function () { return this.adapter_.isRTL(); }; /** * Scrolls the tab at the given index into view for left-to-right user agents. * @param index The index of the tab to scroll into view */ MDCTabBarFoundation.prototype.scrollIntoView_ = function (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 index The tab index to make visible */ MDCTabBarFoundation.prototype.scrollIntoViewRTL_ = function (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_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabBarFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 140 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var strings = { ARROW_LEFT_KEY: 'ArrowLeft', ARROW_RIGHT_KEY: 'ArrowRight', END_KEY: 'End', ENTER_KEY: 'Enter', HOME_KEY: 'Home', SPACE_KEY: 'Space', TAB_ACTIVATED_EVENT: 'MDCTabBar:activated', TAB_SCROLLER_SELECTOR: '.mdc-tab-scroller', TAB_SELECTOR: '.mdc-tab' }; var numbers = { ARROW_LEFT_KEYCODE: 37, ARROW_RIGHT_KEYCODE: 39, END_KEYCODE: 35, ENTER_KEYCODE: 13, EXTRA_SCROLL_AMOUNT: 20, HOME_KEYCODE: 36, SPACE_KEYCODE: 32 }; //# sourceMappingURL=constants.js.map /***/ }), /* 141 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCRippleFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(284); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(142); /** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ // Activation events registered on the root element of each instance for activation var ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown']; // Deactivation events registered on documentElement when a pointer-related down event occurs var POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu']; // simultaneous nested activations var activatedTargets = []; var MDCRippleFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["c" /* __extends */](MDCRippleFoundation, _super); function MDCRippleFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCRippleFoundation.defaultAdapter, adapter)) || this; _this.activationAnimationHasEnded_ = false; _this.activationTimer_ = 0; _this.fgDeactivationRemovalTimer_ = 0; _this.fgScale_ = '0'; _this.frame_ = { width: 0, height: 0 }; _this.initialSize_ = 0; _this.layoutFrame_ = 0; _this.maxRadius_ = 0; _this.unboundedCoords_ = { left: 0, top: 0 }; _this.activationState_ = _this.defaultActivationState_(); _this.activationTimerCallback_ = function () { _this.activationAnimationHasEnded_ = true; _this.runDeactivationUXLogicIfReady_(); }; _this.activateHandler_ = function (e) { return _this.activate_(e); }; _this.deactivateHandler_ = function () { return _this.deactivate_(); }; _this.focusHandler_ = function () { return _this.handleFocus(); }; _this.blurHandler_ = function () { return _this.handleBlur(); }; _this.resizeHandler_ = function () { return _this.layout(); }; return _this; } Object.defineProperty(MDCRippleFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "numbers", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCRippleFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, browserSupportsCssVars: function browserSupportsCssVars() { return true; }, computeBoundingRect: function computeBoundingRect() { return { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 }; }, containsEventTarget: function containsEventTarget() { return true; }, deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, deregisterResizeHandler: function deregisterResizeHandler() { return undefined; }, getWindowPageOffset: function getWindowPageOffset() { return { x: 0, y: 0 }; }, isSurfaceActive: function isSurfaceActive() { return true; }, isSurfaceDisabled: function isSurfaceDisabled() { return true; }, isUnbounded: function isUnbounded() { return true; }, registerDocumentInteractionHandler: function registerDocumentInteractionHandler() { return undefined; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; }, registerResizeHandler: function registerResizeHandler() { return undefined; }, removeClass: function removeClass() { return undefined; }, updateCssVariable: function updateCssVariable() { return undefined; } }; }, enumerable: true, configurable: true }); MDCRippleFoundation.prototype.init = function () { var _this = this; var supportsPressRipple = this.supportsPressRipple_(); this.registerRootHandlers_(supportsPressRipple); if (supportsPressRipple) { var _a = MDCRippleFoundation.cssClasses, ROOT_1 = _a.ROOT, UNBOUNDED_1 = _a.UNBOUNDED; requestAnimationFrame(function () { _this.adapter_.addClass(ROOT_1); if (_this.adapter_.isUnbounded()) { _this.adapter_.addClass(UNBOUNDED_1); // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple _this.layoutInternal_(); } }); } }; MDCRippleFoundation.prototype.destroy = function () { var _this = this; if (this.supportsPressRipple_()) { if (this.activationTimer_) { clearTimeout(this.activationTimer_); this.activationTimer_ = 0; this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION); } if (this.fgDeactivationRemovalTimer_) { clearTimeout(this.fgDeactivationRemovalTimer_); this.fgDeactivationRemovalTimer_ = 0; this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION); } var _a = MDCRippleFoundation.cssClasses, ROOT_2 = _a.ROOT, UNBOUNDED_2 = _a.UNBOUNDED; requestAnimationFrame(function () { _this.adapter_.removeClass(ROOT_2); _this.adapter_.removeClass(UNBOUNDED_2); _this.removeCssVars_(); }); } this.deregisterRootHandlers_(); this.deregisterDeactivationHandlers_(); }; /** * @param evt Optional event containing position information. */ MDCRippleFoundation.prototype.activate = function (evt) { this.activate_(evt); }; MDCRippleFoundation.prototype.deactivate = function () { this.deactivate_(); }; MDCRippleFoundation.prototype.layout = function () { var _this = this; if (this.layoutFrame_) { cancelAnimationFrame(this.layoutFrame_); } this.layoutFrame_ = requestAnimationFrame(function () { _this.layoutInternal_(); _this.layoutFrame_ = 0; }); }; MDCRippleFoundation.prototype.setUnbounded = function (unbounded) { var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED; if (unbounded) { this.adapter_.addClass(UNBOUNDED); } else { this.adapter_.removeClass(UNBOUNDED); } }; MDCRippleFoundation.prototype.handleFocus = function () { var _this = this; requestAnimationFrame(function () { return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); }; MDCRippleFoundation.prototype.handleBlur = function () { var _this = this; requestAnimationFrame(function () { return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED); }); }; /** * We compute this property so that we are not querying information about the client * until the point in time where the foundation requests it. This prevents scenarios where * client-side feature-detection may happen too early, such as when components are rendered on the server * and then initialized at mount time on the client. */ MDCRippleFoundation.prototype.supportsPressRipple_ = function () { return this.adapter_.browserSupportsCssVars(); }; MDCRippleFoundation.prototype.defaultActivationState_ = function () { return { activationEvent: undefined, hasDeactivationUXRun: false, isActivated: false, isProgrammatic: false, wasActivatedByPointer: false, wasElementMadeActive: false }; }; /** * supportsPressRipple Passed from init to save a redundant function call */ MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) { var _this = this; if (supportsPressRipple) { ACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.registerInteractionHandler(evtType, _this.activateHandler_); }); if (this.adapter_.isUnbounded()) { this.adapter_.registerResizeHandler(this.resizeHandler_); } } this.adapter_.registerInteractionHandler('focus', this.focusHandler_); this.adapter_.registerInteractionHandler('blur', this.blurHandler_); }; MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) { var _this = this; if (evt.type === 'keydown') { this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_); } else { POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_); }); } }; MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () { var _this = this; ACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.deregisterInteractionHandler(evtType, _this.activateHandler_); }); this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_); this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_); if (this.adapter_.isUnbounded()) { this.adapter_.deregisterResizeHandler(this.resizeHandler_); } }; MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () { var _this = this; this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_); POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) { _this.adapter_.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_); }); }; MDCRippleFoundation.prototype.removeCssVars_ = function () { var _this = this; var rippleStrings = MDCRippleFoundation.strings; var keys = Object.keys(rippleStrings); keys.forEach(function (key) { if (key.indexOf('VAR_') === 0) { _this.adapter_.updateCssVariable(rippleStrings[key], null); } }); }; MDCRippleFoundation.prototype.activate_ = function (evt) { var _this = this; if (this.adapter_.isSurfaceDisabled()) { return; } var activationState = this.activationState_; if (activationState.isActivated) { return; } // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction var previousActivationEvent = this.previousActivationEvent_; var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type; if (isSameInteraction) { return; } activationState.isActivated = true; activationState.isProgrammatic = evt === undefined; activationState.activationEvent = evt; activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown'); var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) { return _this.adapter_.containsEventTarget(target); }); if (hasActivatedChild) { // Immediately reset activation state, while preserving logic that prevents touch follow-on events this.resetActivationState_(); return; } if (evt !== undefined) { activatedTargets.push(evt.target); this.registerDeactivationHandlers_(evt); } activationState.wasElementMadeActive = this.checkElementMadeActive_(evt); if (activationState.wasElementMadeActive) { this.animateActivation_(); } requestAnimationFrame(function () { // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples activatedTargets = []; if (!activationState.wasElementMadeActive && evt !== undefined && (evt.key === ' ' || evt.keyCode === 32)) { // If space was pressed, try again within an rAF call to detect :active, because different UAs report // active states inconsistently when they're called within event handling code: // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971 // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741 // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS // variable is set within a rAF callback for a submit button interaction (#2241). activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt); if (activationState.wasElementMadeActive) { _this.animateActivation_(); } } if (!activationState.wasElementMadeActive) { // Reset activation state immediately if element was not made active. _this.activationState_ = _this.defaultActivationState_(); } }); }; MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) { return evt !== undefined && evt.type === 'keydown' ? this.adapter_.isSurfaceActive() : true; }; MDCRippleFoundation.prototype.animateActivation_ = function () { var _this = this; var _a = MDCRippleFoundation.strings, VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START, VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END; var _b = MDCRippleFoundation.cssClasses, FG_DEACTIVATION = _b.FG_DEACTIVATION, FG_ACTIVATION = _b.FG_ACTIVATION; var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS; this.layoutInternal_(); var translateStart = ''; var translateEnd = ''; if (!this.adapter_.isUnbounded()) { var _c = this.getFgTranslationCoordinates_(), startPoint = _c.startPoint, endPoint = _c.endPoint; translateStart = startPoint.x + "px, " + startPoint.y + "px"; translateEnd = endPoint.x + "px, " + endPoint.y + "px"; } this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart); this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd); // Cancel any ongoing activation/deactivation animations clearTimeout(this.activationTimer_); clearTimeout(this.fgDeactivationRemovalTimer_); this.rmBoundedActivationClasses_(); this.adapter_.removeClass(FG_DEACTIVATION); // Force layout in order to re-trigger the animation. this.adapter_.computeBoundingRect(); this.adapter_.addClass(FG_ACTIVATION); this.activationTimer_ = setTimeout(function () { return _this.activationTimerCallback_(); }, DEACTIVATION_TIMEOUT_MS); }; MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () { var _a = this.activationState_, activationEvent = _a.activationEvent, wasActivatedByPointer = _a.wasActivatedByPointer; var startPoint; if (wasActivatedByPointer) { startPoint = Object(__WEBPACK_IMPORTED_MODULE_3__util__["a" /* getNormalizedEventCoords */])(activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect()); } else { startPoint = { x: this.frame_.width / 2, y: this.frame_.height / 2 }; } // Center the element around the start point. startPoint = { x: startPoint.x - this.initialSize_ / 2, y: startPoint.y - this.initialSize_ / 2 }; var endPoint = { x: this.frame_.width / 2 - this.initialSize_ / 2, y: this.frame_.height / 2 - this.initialSize_ / 2 }; return { startPoint: startPoint, endPoint: endPoint }; }; MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () { var _this = this; // This method is called both when a pointing device is released, and when the activation animation ends. // The deactivation animation should only run after both of those occur. var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION; var _a = this.activationState_, hasDeactivationUXRun = _a.hasDeactivationUXRun, isActivated = _a.isActivated; var activationHasEnded = hasDeactivationUXRun || !isActivated; if (activationHasEnded && this.activationAnimationHasEnded_) { this.rmBoundedActivationClasses_(); this.adapter_.addClass(FG_DEACTIVATION); this.fgDeactivationRemovalTimer_ = setTimeout(function () { _this.adapter_.removeClass(FG_DEACTIVATION); }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].FG_DEACTIVATION_MS); } }; MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () { var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION; this.adapter_.removeClass(FG_ACTIVATION); this.activationAnimationHasEnded_ = false; this.adapter_.computeBoundingRect(); }; MDCRippleFoundation.prototype.resetActivationState_ = function () { var _this = this; this.previousActivationEvent_ = this.activationState_.activationEvent; this.activationState_ = this.defaultActivationState_(); // Touch devices may fire additional events for the same interaction within a short time. // Store the previous event until it's safe to assume that subsequent events are for new interactions. setTimeout(function () { return _this.previousActivationEvent_ = undefined; }, MDCRippleFoundation.numbers.TAP_DELAY_MS); }; MDCRippleFoundation.prototype.deactivate_ = function () { var _this = this; var activationState = this.activationState_; // This can happen in scenarios such as when you have a keyup event that blurs the element. if (!activationState.isActivated) { return; } var state = __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, activationState); if (activationState.isProgrammatic) { requestAnimationFrame(function () { return _this.animateDeactivation_(state); }); this.resetActivationState_(); } else { this.deregisterDeactivationHandlers_(); requestAnimationFrame(function () { _this.activationState_.hasDeactivationUXRun = true; _this.animateDeactivation_(state); _this.resetActivationState_(); }); } }; MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) { var wasActivatedByPointer = _a.wasActivatedByPointer, wasElementMadeActive = _a.wasElementMadeActive; if (wasActivatedByPointer || wasElementMadeActive) { this.runDeactivationUXLogicIfReady_(); } }; MDCRippleFoundation.prototype.layoutInternal_ = function () { var _this = this; this.frame_ = this.adapter_.computeBoundingRect(); var maxDim = Math.max(this.frame_.height, this.frame_.width); // Surface diameter is treated differently for unbounded vs. bounded ripples. // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via // `overflow: hidden`. var getBoundedRadius = function getBoundedRadius() { var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2)); return hypotenuse + MDCRippleFoundation.numbers.PADDING; }; this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius(); // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE); this.fgScale_ = "" + this.maxRadius_ / this.initialSize_; this.updateLayoutCssVars_(); }; MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () { var _a = MDCRippleFoundation.strings, VAR_FG_SIZE = _a.VAR_FG_SIZE, VAR_LEFT = _a.VAR_LEFT, VAR_TOP = _a.VAR_TOP, VAR_FG_SCALE = _a.VAR_FG_SCALE; this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + "px"); this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_); if (this.adapter_.isUnbounded()) { this.unboundedCoords_ = { left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2), top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2) }; this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + "px"); this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + "px"); } }; return MDCRippleFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCRippleFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 142 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["b"] = supportsCssVariables; /* harmony export (immutable) */ __webpack_exports__["a"] = getNormalizedEventCoords; /** * Stores result from supportsCssVariables to avoid redundant processing to * detect CSS custom variable support. */ var supportsCssVariables_; 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'; // Append to head instead of body because this script might be invoked in the // head, in which case the body doesn't exist yet. The probe works either way. document.head.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'; if (node.parentNode) { node.parentNode.removeChild(node); } return hasPseudoVarBug; } function supportsCssVariables(windowObj, forceRefresh) { if (forceRefresh === void 0) { forceRefresh = false; } var CSS = windowObj.CSS; var supportsCssVars = supportsCssVariables_; if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) { return supportsCssVariables_; } var supportsFunctionPresent = CSS && typeof CSS.supports === 'function'; if (!supportsFunctionPresent) { return false; } var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes'); // See: https://bugs.webkit.org/show_bug.cgi?id=154669 // See: README section on Safari var weAreFeatureDetectingSafari10plus = CSS.supports('(--css-vars: yes)') && CSS.supports('color', '#00000000'); if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) { supportsCssVars = !detectEdgePseudoVarBug(windowObj); } else { supportsCssVars = false; } if (!forceRefresh) { supportsCssVariables_ = supportsCssVars; } return supportsCssVars; } function getNormalizedEventCoords(evt, pageOffset, clientRect) { if (!evt) { return { x: 0, y: 0 }; } var x = pageOffset.x, y = pageOffset.y; var documentX = x + clientRect.left; var documentY = y + clientRect.top; var normalizedX; var normalizedY; // Determine touch point relative to the ripple container. if (evt.type === 'touchstart') { var touchEvent = evt; normalizedX = touchEvent.changedTouches[0].pageX - documentX; normalizedY = touchEvent.changedTouches[0].pageY - documentY; } else { var mouseEvent = evt; normalizedX = mouseEvent.pageX - documentX; normalizedY = mouseEvent.pageY - documentY; } return { x: normalizedX, y: normalizedY }; } //# sourceMappingURL=util.js.map /***/ }), /* 143 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCDataTableFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(58); /** * @license * Copyright 2019 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCDataTableFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["c" /* __extends */](MDCDataTableFoundation, _super); function MDCDataTableFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCDataTableFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCDataTableFoundation, "defaultAdapter", { get: function get() { return { addClassAtRowIndex: function addClassAtRowIndex() { return undefined; }, getRowCount: function getRowCount() { return 0; }, getRowElements: function getRowElements() { return []; }, getRowIdAtIndex: function getRowIdAtIndex() { return ''; }, getRowIndexByChildElement: function getRowIndexByChildElement() { return 0; }, getSelectedRowCount: function getSelectedRowCount() { return 0; }, isCheckboxAtRowIndexChecked: function isCheckboxAtRowIndexChecked() { return false; }, isHeaderRowCheckboxChecked: function isHeaderRowCheckboxChecked() { return false; }, isRowsSelectable: function isRowsSelectable() { return false; }, notifyRowSelectionChanged: function notifyRowSelectionChanged() { return undefined; }, notifySelectedAll: function notifySelectedAll() { return undefined; }, notifyUnselectedAll: function notifyUnselectedAll() { return undefined; }, registerHeaderRowCheckbox: function registerHeaderRowCheckbox() { return undefined; }, registerRowCheckboxes: function registerRowCheckboxes() { return undefined; }, removeClassAtRowIndex: function removeClassAtRowIndex() { return undefined; }, setAttributeAtRowIndex: function setAttributeAtRowIndex() { return undefined; }, setHeaderRowCheckboxChecked: function setHeaderRowCheckboxChecked() { return undefined; }, setHeaderRowCheckboxIndeterminate: function setHeaderRowCheckboxIndeterminate() { return undefined; }, setRowCheckboxCheckedAtIndex: function setRowCheckboxCheckedAtIndex() { return undefined; } }; }, enumerable: true, configurable: true }); /** * Re-initializes header row checkbox and row checkboxes when selectable rows are added or removed from table. * Use this if registering checkbox is synchronous. */ MDCDataTableFoundation.prototype.layout = function () { if (this.adapter_.isRowsSelectable()) { this.adapter_.registerHeaderRowCheckbox(); this.adapter_.registerRowCheckboxes(); this.setHeaderRowCheckboxState_(); } }; /** * Re-initializes header row checkbox and row checkboxes when selectable rows are added or removed from table. * Use this if registering checkbox is asynchronous. */ MDCDataTableFoundation.prototype.layoutAsync = function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __awaiter */](this, void 0, void 0, function () { return __WEBPACK_IMPORTED_MODULE_0_tslib__["d" /* __generator */](this, function (_a) { switch (_a.label) { case 0: if (!this.adapter_.isRowsSelectable()) return [3 /*break*/, 3]; return [4 /*yield*/, this.adapter_.registerHeaderRowCheckbox()]; case 1: _a.sent(); return [4 /*yield*/, this.adapter_.registerRowCheckboxes()]; case 2: _a.sent(); this.setHeaderRowCheckboxState_(); _a.label = 3; case 3: return [2 /*return*/]; } }); }); }; /** * @return Returns array of row elements. */ MDCDataTableFoundation.prototype.getRows = function () { return this.adapter_.getRowElements(); }; /** * Sets selected row ids. Overwrites previously selected rows. * @param rowIds Array of row ids that needs to be selected. */ MDCDataTableFoundation.prototype.setSelectedRowIds = function (rowIds) { for (var rowIndex = 0; rowIndex < this.adapter_.getRowCount(); rowIndex++) { var rowId = this.adapter_.getRowIdAtIndex(rowIndex); var isSelected = false; if (rowId && rowIds.indexOf(rowId) >= 0) { isSelected = true; } this.adapter_.setRowCheckboxCheckedAtIndex(rowIndex, isSelected); this.selectRowAtIndex_(rowIndex, isSelected); } this.setHeaderRowCheckboxState_(); }; /** * @return Returns array of selected row ids. */ MDCDataTableFoundation.prototype.getSelectedRowIds = function () { var selectedRowIds = []; for (var rowIndex = 0; rowIndex < this.adapter_.getRowCount(); rowIndex++) { if (this.adapter_.isCheckboxAtRowIndexChecked(rowIndex)) { selectedRowIds.push(this.adapter_.getRowIdAtIndex(rowIndex)); } } return selectedRowIds; }; /** * Handles header row checkbox change event. */ MDCDataTableFoundation.prototype.handleHeaderRowCheckboxChange = function () { var isHeaderChecked = this.adapter_.isHeaderRowCheckboxChecked(); for (var rowIndex = 0; rowIndex < this.adapter_.getRowCount(); rowIndex++) { this.adapter_.setRowCheckboxCheckedAtIndex(rowIndex, isHeaderChecked); this.selectRowAtIndex_(rowIndex, isHeaderChecked); } if (isHeaderChecked) { this.adapter_.notifySelectedAll(); } else { this.adapter_.notifyUnselectedAll(); } }; /** * Handles change event originated from row checkboxes. */ MDCDataTableFoundation.prototype.handleRowCheckboxChange = function (event) { var rowIndex = this.adapter_.getRowIndexByChildElement(event.target); if (rowIndex === -1) { return; } var selected = this.adapter_.isCheckboxAtRowIndexChecked(rowIndex); this.selectRowAtIndex_(rowIndex, selected); this.setHeaderRowCheckboxState_(); var rowId = this.adapter_.getRowIdAtIndex(rowIndex); this.adapter_.notifyRowSelectionChanged({ rowId: rowId, rowIndex: rowIndex, selected: selected }); }; /** * Updates header row checkbox state based on number of rows selected. */ MDCDataTableFoundation.prototype.setHeaderRowCheckboxState_ = function () { if (this.adapter_.getSelectedRowCount() === this.adapter_.getRowCount()) { this.adapter_.setHeaderRowCheckboxChecked(true); this.adapter_.setHeaderRowCheckboxIndeterminate(false); } else if (this.adapter_.getSelectedRowCount() === 0) { this.adapter_.setHeaderRowCheckboxIndeterminate(false); this.adapter_.setHeaderRowCheckboxChecked(false); } else { this.adapter_.setHeaderRowCheckboxIndeterminate(true); this.adapter_.setHeaderRowCheckboxChecked(false); } }; /** * Sets the attributes of row element based on selection state. */ MDCDataTableFoundation.prototype.selectRowAtIndex_ = function (rowIndex, selected) { if (selected) { this.adapter_.addClassAtRowIndex(rowIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ROW_SELECTED); this.adapter_.setAttributeAtRowIndex(rowIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_SELECTED, 'true'); } else { this.adapter_.removeClassAtRowIndex(rowIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ROW_SELECTED); this.adapter_.setAttributeAtRowIndex(rowIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_SELECTED, 'false'); } }; return MDCDataTableFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); //# sourceMappingURL=foundation.js.map /***/ }), /* 144 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCFormFieldFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(145); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCFormFieldFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCFormFieldFoundation, _super); function MDCFormFieldFoundation(adapter) { var _this = _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCFormFieldFoundation.defaultAdapter, adapter)) || this; _this.clickHandler_ = function () { return _this.handleClick_(); }; return _this; } Object.defineProperty(MDCFormFieldFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFormFieldFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCFormFieldFoundation, "defaultAdapter", { get: function get() { return { activateInputRipple: function activateInputRipple() { return undefined; }, deactivateInputRipple: function deactivateInputRipple() { return undefined; }, deregisterInteractionHandler: function deregisterInteractionHandler() { return undefined; }, registerInteractionHandler: function registerInteractionHandler() { return undefined; } }; }, enumerable: true, configurable: true }); MDCFormFieldFoundation.prototype.init = function () { this.adapter_.registerInteractionHandler('click', this.clickHandler_); }; MDCFormFieldFoundation.prototype.destroy = function () { this.adapter_.deregisterInteractionHandler('click', this.clickHandler_); }; MDCFormFieldFoundation.prototype.handleClick_ = function () { var _this = this; this.adapter_.activateInputRipple(); requestAnimationFrame(function () { return _this.adapter_.deactivateInputRipple(); }); }; return MDCFormFieldFoundation; }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCFormFieldFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 145 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { ROOT: 'mdc-form-field' }; var strings = { LABEL_SELECTOR: '.mdc-form-field > label' }; //# sourceMappingURL=constants.js.map /***/ }), /* 146 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCLinearProgressFoundation; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation_util__ = __webpack_require__(29); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_foundation__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(147); /** * @license * Copyright 2017 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var MDCLinearProgressFoundation = /** @class */function (_super) { __WEBPACK_IMPORTED_MODULE_0_tslib__["b" /* __extends */](MDCLinearProgressFoundation, _super); function MDCLinearProgressFoundation(adapter) { return _super.call(this, __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __assign */]({}, MDCLinearProgressFoundation.defaultAdapter, adapter)) || this; } Object.defineProperty(MDCLinearProgressFoundation, "cssClasses", { get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCLinearProgressFoundation, "strings", { get: function get() { return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */]; }, enumerable: true, configurable: true }); Object.defineProperty(MDCLinearProgressFoundation, "defaultAdapter", { get: function get() { return { addClass: function addClass() { return undefined; }, getBuffer: function getBuffer() { return null; }, getPrimaryBar: function getPrimaryBar() { return null; }, hasClass: function hasClass() { return false; }, removeClass: function removeClass() { return undefined; }, setStyle: function setStyle() { return undefined; } }; }, enumerable: true, configurable: true }); MDCLinearProgressFoundation.prototype.init = function () { this.isDeterminate_ = !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.isReversed_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].REVERSED_CLASS); this.progress_ = 0; }; MDCLinearProgressFoundation.prototype.setDeterminate = function (isDeterminate) { this.isDeterminate_ = isDeterminate; if (this.isDeterminate_) { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.setScale_(this.adapter_.getPrimaryBar(), this.progress_); } else { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].INDETERMINATE_CLASS); this.setScale_(this.adapter_.getPrimaryBar(), 1); this.setScale_(this.adapter_.getBuffer(), 1); } }; MDCLinearProgressFoundation.prototype.setProgress = function (value) { this.progress_ = value; if (this.isDeterminate_) { this.setScale_(this.adapter_.getPrimaryBar(), value); } }; MDCLinearProgressFoundation.prototype.setBuffer = function (value) { if (this.isDeterminate_) { this.setScale_(this.adapter_.getBuffer(), value); } }; MDCLinearProgressFoundation.prototype.setReverse = function (isReversed) { this.isReversed_ = isReversed; if (this.isReversed_) { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].REVERSED_CLASS); } else { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].REVERSED_CLASS); } }; MDCLinearProgressFoundation.prototype.open = function () { this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CLOSED_CLASS); }; MDCLinearProgressFoundation.prototype.close = function () { this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CLOSED_CLASS); }; MDCLinearProgressFoundation.prototype.setScale_ = function (el, scaleValue) { if (!el) { return; } var value = "scaleX(" + scaleValue + ")"; this.adapter_.setStyle(el, Object(__WEBPACK_IMPORTED_MODULE_1__material_animation_util__["b" /* getCorrectPropertyName */])(window, 'transform'), value); }; return MDCLinearProgressFoundation; }(__WEBPACK_IMPORTED_MODULE_2__material_base_foundation__["a" /* MDCFoundation */]); // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. /* unused harmony default export */ var _unused_webpack_default_export = (MDCLinearProgressFoundation); //# sourceMappingURL=foundation.js.map /***/ }), /* 147 */ /***/ (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. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var cssClasses = { CLOSED_CLASS: 'mdc-linear-progress--closed', INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate', REVERSED_CLASS: 'mdc-linear-progress--reversed' }; var strings = { BUFFER_SELECTOR: '.mdc-linear-progress__buffer', PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar' }; //# sourceMappingURL=constants.js.map /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(149); /***/ }), /* 149 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_initialize__ = __webpack_require__(59); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__webcomponents_webcomponentsjs_custom_elements_es5_adapter_js__ = __webpack_require__(300); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__webcomponents_webcomponentsjs_custom_elements_es5_adapter_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__webcomponents_webcomponentsjs_custom_elements_es5_adapter_js__); 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; } /* global require */ // The Adapter is required when transpiling classes to ES5 code. // https://github.com/webcomponents/webcomponentsjs/tree/v2.2.7#custom-elements-es5-adapterjs // Webcomponent polyfil window.WebComponents = window.WebComponents || {}; window.WebComponents.root = __webpack_require__(301); function loadFont(src) { var lnk = document.createElement('link'); lnk.setAttribute('href', src); lnk.setAttribute('rel', 'stylesheet'); lnk.setAttribute('type', 'text/css'); document.head.appendChild(lnk); } // https://stackoverflow.com/questions/54546007/why-doesnt-font-awesome-work-in-my-shadow-dom loadFont('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700'); loadFont('https://fonts.googleapis.com/icon?family=Material+Icons'); loadFont('https://use.fontawesome.com/releases/v5.4.1/css/all.css'); var FlowMatic = function (_HTMLElement) { _inherits(FlowMatic, _HTMLElement); function FlowMatic() { _classCallCheck(this, FlowMatic); return _possibleConstructorReturn(this, (FlowMatic.__proto__ || Object.getPrototypeOf(FlowMatic)).call(this)); } _createClass(FlowMatic, [{ key: 'loadComponent', value: function loadComponent() { var _this2 = this; var oReq = new XMLHttpRequest(); oReq.addEventListener('load', function (r) { var template = document.createElement('template'); template.innerHTML = oReq.responseText; _this2.attachShadow({ mode: 'open' }).appendChild(template.content); _this2.loadScripts(_this2.shadowRoot).then(function () { Object(__WEBPACK_IMPORTED_MODULE_0__components_initialize__["a" /* initialize */])(_this2.shadowRoot, true); }); var event = new CustomEvent('flow-matic-loaded', { bubbles: true }); _this2.dispatchEvent(event); }); oReq.open('GET', '' + this.dataset.comp); oReq.send(); } }, { key: 'attributeChangedCallback', value: function attributeChangedCallback() { if (this.dataset.comp) { this.loadComponent(); } } // Scripts that are part of the response and stuck into a template with innerHTML // won't be parsed. On top of that js from a plugin that has a remote dependency // was being parsed before the remote script was loaded (everything was treated async). // This function collects a promise for each remote script and once they're all loaded // it adds the inline scripts. }, { key: 'loadScripts', value: function loadScripts(root) { var _this3 = this; if (window.FLOW_MATIC_SCRIPTS_LOADED) { return Promise.resolve(); } else { window.FLOW_MATIC_SCRIPTS_LOADED = true; } var scripts = Array.from(root.querySelectorAll('script')); var remoteScripts = scripts.filter(function (s) { return s.hasAttribute('src'); }); var inlineScripts = scripts.filter(function (s) { return !remoteScripts.includes(s); }); // load remote scripts var remoteScriptPromises = remoteScripts.map(function (script) { return new Promise(function (resolve) { var newScript = _this3.loadScript(script); newScript.addEventListener('load', function () { resolve(); }); }); }); // When all remote scripts are done, load inlines return Promise.all(remoteScriptPromises).then(function () { inlineScripts.forEach(_this3.loadScript); }); } // Browsers don't evaluate