UNPKG

swipe-angular-list

Version:

![](https://img.shields.io/npm/dy/swipe-angular-list.svg) ![](https://img.shields.io/github/stars/leifermendez/swipe-angular-list) ![](https://img.shields.io/github/license/leifermendez/swipe-angular-list) # Swiper List (Angular)

1,067 lines (1,029 loc) 145 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) : typeof define === 'function' && define.amd ? define('swipe-angular-list', ['exports', '@angular/core', '@angular/common'], factory) : (global = global || self, factory(global['swipe-angular-list'] = {}, global.ng.core, global.ng.common)); }(this, (function (exports, core, common) { 'use strict'; /*! ***************************************************************************** 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(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 = 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 === "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 === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { 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 s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } 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 }; } function __classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); } function __classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; } /** * @license Angular v8.2.14 * (c) 2010-2019 Google LLC. https://angular.io/ * License: MIT */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var _DOM = null; function getDOM() { return _DOM; } function setDOM(adapter) { _DOM = adapter; } function setRootDomAdapter(adapter) { if (!_DOM) { _DOM = adapter; } } /* tslint:disable:requireParameterType */ /** * Provides DOM operations in an environment-agnostic way. * * @security Tread carefully! Interacting with the DOM directly is dangerous and * can introduce XSS risks. */ var DomAdapter = /** @class */ (function () { function DomAdapter() { this.resourceLoaderType = null; } Object.defineProperty(DomAdapter.prototype, "attrToPropMap", { /** * Maps attribute names to their corresponding property names for cases * where attribute name doesn't match property name. */ get: function () { return this._attrToPropMap; }, set: function (value) { this._attrToPropMap = value; }, enumerable: true, configurable: true }); return DomAdapter; }()); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Provides DOM operations in any browser environment. * * @security Tread carefully! Interacting with the DOM directly is dangerous and * can introduce XSS risks. */ var GenericBrowserDomAdapter = /** @class */ (function (_super) { __extends(GenericBrowserDomAdapter, _super); function GenericBrowserDomAdapter() { var _this = _super.call(this) || this; _this._animationPrefix = null; _this._transitionEnd = null; try { var element_1 = _this.createElement('div', document); if (_this.getStyle(element_1, 'animationName') != null) { _this._animationPrefix = ''; } else { var domPrefixes = ['Webkit', 'Moz', 'O', 'ms']; for (var i = 0; i < domPrefixes.length; i++) { if (_this.getStyle(element_1, domPrefixes[i] + 'AnimationName') != null) { _this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-'; break; } } } var transEndEventNames_1 = { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', transition: 'transitionend' }; Object.keys(transEndEventNames_1).forEach(function (key) { if (_this.getStyle(element_1, key) != null) { _this._transitionEnd = transEndEventNames_1[key]; } }); } catch (_a) { _this._animationPrefix = null; _this._transitionEnd = null; } return _this; } GenericBrowserDomAdapter.prototype.getDistributedNodes = function (el) { return el.getDistributedNodes(); }; GenericBrowserDomAdapter.prototype.resolveAndSetHref = function (el, baseUrl, href) { el.href = href == null ? baseUrl : baseUrl + '/../' + href; }; GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () { return true; }; GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM = function () { return typeof document.body.createShadowRoot === 'function'; }; GenericBrowserDomAdapter.prototype.getAnimationPrefix = function () { return this._animationPrefix ? this._animationPrefix : ''; }; GenericBrowserDomAdapter.prototype.getTransitionEnd = function () { return this._transitionEnd ? this._transitionEnd : ''; }; GenericBrowserDomAdapter.prototype.supportsAnimation = function () { return this._animationPrefix != null && this._transitionEnd != null; }; return GenericBrowserDomAdapter; }(DomAdapter)); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var _attrToPropMap = { 'class': 'className', 'innerHtml': 'innerHTML', 'readonly': 'readOnly', 'tabindex': 'tabIndex', }; var DOM_KEY_LOCATION_NUMPAD = 3; // Map to convert some key or keyIdentifier values to what will be returned by getEventKey var _keyMap = { // The following values are here for cross-browser compatibility and to match the W3C standard // cf http://www.w3.org/TR/DOM-Level-3-Events-key/ '\b': 'Backspace', '\t': 'Tab', '\x7F': 'Delete', '\x1B': 'Escape', 'Del': 'Delete', 'Esc': 'Escape', 'Left': 'ArrowLeft', 'Right': 'ArrowRight', 'Up': 'ArrowUp', 'Down': 'ArrowDown', 'Menu': 'ContextMenu', 'Scroll': 'ScrollLock', 'Win': 'OS' }; // There is a bug in Chrome for numeric keypad keys: // https://code.google.com/p/chromium/issues/detail?id=155654 // 1, 2, 3 ... are reported as A, B, C ... var _chromeNumKeyPadMap = { 'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5', 'F': '6', 'G': '7', 'H': '8', 'I': '9', 'J': '*', 'K': '+', 'M': '-', 'N': '.', 'O': '/', '\x60': '0', '\x90': 'NumLock' }; var ɵ0 = function () { if (core.ɵglobal['Node']) { return core.ɵglobal['Node'].prototype.contains || function (node) { return !!(this.compareDocumentPosition(node) & 16); }; } return undefined; }; var nodeContains = (ɵ0)(); /** * A `DomAdapter` powered by full browser DOM APIs. * * @security Tread carefully! Interacting with the DOM directly is dangerous and * can introduce XSS risks. */ /* tslint:disable:requireParameterType no-console */ var BrowserDomAdapter = /** @class */ (function (_super) { __extends(BrowserDomAdapter, _super); function BrowserDomAdapter() { return _super !== null && _super.apply(this, arguments) || this; } BrowserDomAdapter.prototype.parse = function (templateHtml) { throw new Error('parse not implemented'); }; BrowserDomAdapter.makeCurrent = function () { setRootDomAdapter(new BrowserDomAdapter()); }; BrowserDomAdapter.prototype.hasProperty = function (element, name) { return name in element; }; BrowserDomAdapter.prototype.setProperty = function (el, name, value) { el[name] = value; }; BrowserDomAdapter.prototype.getProperty = function (el, name) { return el[name]; }; BrowserDomAdapter.prototype.invoke = function (el, methodName, args) { var _a; (_a = el)[methodName].apply(_a, __spread(args)); }; // TODO(tbosch): move this into a separate environment class once we have it BrowserDomAdapter.prototype.logError = function (error) { if (window.console) { if (console.error) { console.error(error); } else { console.log(error); } } }; BrowserDomAdapter.prototype.log = function (error) { if (window.console) { window.console.log && window.console.log(error); } }; BrowserDomAdapter.prototype.logGroup = function (error) { if (window.console) { window.console.group && window.console.group(error); } }; BrowserDomAdapter.prototype.logGroupEnd = function () { if (window.console) { window.console.groupEnd && window.console.groupEnd(); } }; Object.defineProperty(BrowserDomAdapter.prototype, "attrToPropMap", { get: function () { return _attrToPropMap; }, enumerable: true, configurable: true }); BrowserDomAdapter.prototype.contains = function (nodeA, nodeB) { return nodeContains.call(nodeA, nodeB); }; BrowserDomAdapter.prototype.querySelector = function (el, selector) { return el.querySelector(selector); }; BrowserDomAdapter.prototype.querySelectorAll = function (el, selector) { return el.querySelectorAll(selector); }; BrowserDomAdapter.prototype.on = function (el, evt, listener) { el.addEventListener(evt, listener, false); }; BrowserDomAdapter.prototype.onAndCancel = function (el, evt, listener) { el.addEventListener(evt, listener, false); // Needed to follow Dart's subscription semantic, until fix of // https://code.google.com/p/dart/issues/detail?id=17406 return function () { el.removeEventListener(evt, listener, false); }; }; BrowserDomAdapter.prototype.dispatchEvent = function (el, evt) { el.dispatchEvent(evt); }; BrowserDomAdapter.prototype.createMouseEvent = function (eventType) { var evt = this.getDefaultDocument().createEvent('MouseEvent'); evt.initEvent(eventType, true, true); return evt; }; BrowserDomAdapter.prototype.createEvent = function (eventType) { var evt = this.getDefaultDocument().createEvent('Event'); evt.initEvent(eventType, true, true); return evt; }; BrowserDomAdapter.prototype.preventDefault = function (evt) { evt.preventDefault(); evt.returnValue = false; }; BrowserDomAdapter.prototype.isPrevented = function (evt) { return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue; }; BrowserDomAdapter.prototype.getInnerHTML = function (el) { return el.innerHTML; }; BrowserDomAdapter.prototype.getTemplateContent = function (el) { return 'content' in el && this.isTemplateElement(el) ? el.content : null; }; BrowserDomAdapter.prototype.getOuterHTML = function (el) { return el.outerHTML; }; BrowserDomAdapter.prototype.nodeName = function (node) { return node.nodeName; }; BrowserDomAdapter.prototype.nodeValue = function (node) { return node.nodeValue; }; BrowserDomAdapter.prototype.type = function (node) { return node.type; }; BrowserDomAdapter.prototype.content = function (node) { if (this.hasProperty(node, 'content')) { return node.content; } else { return node; } }; BrowserDomAdapter.prototype.firstChild = function (el) { return el.firstChild; }; BrowserDomAdapter.prototype.nextSibling = function (el) { return el.nextSibling; }; BrowserDomAdapter.prototype.parentElement = function (el) { return el.parentNode; }; BrowserDomAdapter.prototype.childNodes = function (el) { return el.childNodes; }; BrowserDomAdapter.prototype.childNodesAsList = function (el) { var childNodes = el.childNodes; var res = new Array(childNodes.length); for (var i = 0; i < childNodes.length; i++) { res[i] = childNodes[i]; } return res; }; BrowserDomAdapter.prototype.clearNodes = function (el) { while (el.firstChild) { el.removeChild(el.firstChild); } }; BrowserDomAdapter.prototype.appendChild = function (el, node) { el.appendChild(node); }; BrowserDomAdapter.prototype.removeChild = function (el, node) { el.removeChild(node); }; BrowserDomAdapter.prototype.replaceChild = function (el, newChild, oldChild) { el.replaceChild(newChild, oldChild); }; BrowserDomAdapter.prototype.remove = function (node) { if (node.parentNode) { node.parentNode.removeChild(node); } return node; }; BrowserDomAdapter.prototype.insertBefore = function (parent, ref, node) { parent.insertBefore(node, ref); }; BrowserDomAdapter.prototype.insertAllBefore = function (parent, ref, nodes) { nodes.forEach(function (n) { return parent.insertBefore(n, ref); }); }; BrowserDomAdapter.prototype.insertAfter = function (parent, ref, node) { parent.insertBefore(node, ref.nextSibling); }; BrowserDomAdapter.prototype.setInnerHTML = function (el, value) { el.innerHTML = value; }; BrowserDomAdapter.prototype.getText = function (el) { return el.textContent; }; BrowserDomAdapter.prototype.setText = function (el, value) { el.textContent = value; }; BrowserDomAdapter.prototype.getValue = function (el) { return el.value; }; BrowserDomAdapter.prototype.setValue = function (el, value) { el.value = value; }; BrowserDomAdapter.prototype.getChecked = function (el) { return el.checked; }; BrowserDomAdapter.prototype.setChecked = function (el, value) { el.checked = value; }; BrowserDomAdapter.prototype.createComment = function (text) { return this.getDefaultDocument().createComment(text); }; BrowserDomAdapter.prototype.createTemplate = function (html) { var t = this.getDefaultDocument().createElement('template'); t.innerHTML = html; return t; }; BrowserDomAdapter.prototype.createElement = function (tagName, doc) { doc = doc || this.getDefaultDocument(); return doc.createElement(tagName); }; BrowserDomAdapter.prototype.createElementNS = function (ns, tagName, doc) { doc = doc || this.getDefaultDocument(); return doc.createElementNS(ns, tagName); }; BrowserDomAdapter.prototype.createTextNode = function (text, doc) { doc = doc || this.getDefaultDocument(); return doc.createTextNode(text); }; BrowserDomAdapter.prototype.createScriptTag = function (attrName, attrValue, doc) { doc = doc || this.getDefaultDocument(); var el = doc.createElement('SCRIPT'); el.setAttribute(attrName, attrValue); return el; }; BrowserDomAdapter.prototype.createStyleElement = function (css, doc) { doc = doc || this.getDefaultDocument(); var style = doc.createElement('style'); this.appendChild(style, this.createTextNode(css, doc)); return style; }; BrowserDomAdapter.prototype.createShadowRoot = function (el) { return el.createShadowRoot(); }; BrowserDomAdapter.prototype.getShadowRoot = function (el) { return el.shadowRoot; }; BrowserDomAdapter.prototype.getHost = function (el) { return el.host; }; BrowserDomAdapter.prototype.clone = function (node) { return node.cloneNode(true); }; BrowserDomAdapter.prototype.getElementsByClassName = function (element, name) { return element.getElementsByClassName(name); }; BrowserDomAdapter.prototype.getElementsByTagName = function (element, name) { return element.getElementsByTagName(name); }; BrowserDomAdapter.prototype.classList = function (element) { return Array.prototype.slice.call(element.classList, 0); }; BrowserDomAdapter.prototype.addClass = function (element, className) { element.classList.add(className); }; BrowserDomAdapter.prototype.removeClass = function (element, className) { element.classList.remove(className); }; BrowserDomAdapter.prototype.hasClass = function (element, className) { return element.classList.contains(className); }; BrowserDomAdapter.prototype.setStyle = function (element, styleName, styleValue) { element.style[styleName] = styleValue; }; BrowserDomAdapter.prototype.removeStyle = function (element, stylename) { // IE requires '' instead of null // see https://github.com/angular/angular/issues/7916 element.style[stylename] = ''; }; BrowserDomAdapter.prototype.getStyle = function (element, stylename) { return element.style[stylename]; }; BrowserDomAdapter.prototype.hasStyle = function (element, styleName, styleValue) { var value = this.getStyle(element, styleName) || ''; return styleValue ? value == styleValue : value.length > 0; }; BrowserDomAdapter.prototype.tagName = function (element) { return element.tagName; }; BrowserDomAdapter.prototype.attributeMap = function (element) { var res = new Map(); var elAttrs = element.attributes; for (var i = 0; i < elAttrs.length; i++) { var attrib = elAttrs.item(i); res.set(attrib.name, attrib.value); } return res; }; BrowserDomAdapter.prototype.hasAttribute = function (element, attribute) { return element.hasAttribute(attribute); }; BrowserDomAdapter.prototype.hasAttributeNS = function (element, ns, attribute) { return element.hasAttributeNS(ns, attribute); }; BrowserDomAdapter.prototype.getAttribute = function (element, attribute) { return element.getAttribute(attribute); }; BrowserDomAdapter.prototype.getAttributeNS = function (element, ns, name) { return element.getAttributeNS(ns, name); }; BrowserDomAdapter.prototype.setAttribute = function (element, name, value) { element.setAttribute(name, value); }; BrowserDomAdapter.prototype.setAttributeNS = function (element, ns, name, value) { element.setAttributeNS(ns, name, value); }; BrowserDomAdapter.prototype.removeAttribute = function (element, attribute) { element.removeAttribute(attribute); }; BrowserDomAdapter.prototype.removeAttributeNS = function (element, ns, name) { element.removeAttributeNS(ns, name); }; BrowserDomAdapter.prototype.templateAwareRoot = function (el) { return this.isTemplateElement(el) ? this.content(el) : el; }; BrowserDomAdapter.prototype.createHtmlDocument = function () { return document.implementation.createHTMLDocument('fakeTitle'); }; BrowserDomAdapter.prototype.getDefaultDocument = function () { return document; }; BrowserDomAdapter.prototype.getBoundingClientRect = function (el) { try { return el.getBoundingClientRect(); } catch (_a) { return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }; } }; BrowserDomAdapter.prototype.getTitle = function (doc) { return doc.title; }; BrowserDomAdapter.prototype.setTitle = function (doc, newTitle) { doc.title = newTitle || ''; }; BrowserDomAdapter.prototype.elementMatches = function (n, selector) { if (this.isElementNode(n)) { return n.matches && n.matches(selector) || n.msMatchesSelector && n.msMatchesSelector(selector) || n.webkitMatchesSelector && n.webkitMatchesSelector(selector); } return false; }; BrowserDomAdapter.prototype.isTemplateElement = function (el) { return this.isElementNode(el) && el.nodeName === 'TEMPLATE'; }; BrowserDomAdapter.prototype.isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; }; BrowserDomAdapter.prototype.isCommentNode = function (node) { return node.nodeType === Node.COMMENT_NODE; }; BrowserDomAdapter.prototype.isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; }; BrowserDomAdapter.prototype.hasShadowRoot = function (node) { return node.shadowRoot != null && node instanceof HTMLElement; }; BrowserDomAdapter.prototype.isShadowRoot = function (node) { return node instanceof DocumentFragment; }; BrowserDomAdapter.prototype.importIntoDoc = function (node) { return document.importNode(this.templateAwareRoot(node), true); }; BrowserDomAdapter.prototype.adoptNode = function (node) { return document.adoptNode(node); }; BrowserDomAdapter.prototype.getHref = function (el) { return el.getAttribute('href'); }; BrowserDomAdapter.prototype.getEventKey = function (event) { var key = event.key; if (key == null) { key = event.keyIdentifier; // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and // Safari cf // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces if (key == null) { return 'Unidentified'; } if (key.startsWith('U+')) { key = String.fromCharCode(parseInt(key.substring(2), 16)); if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) { // There is a bug in Chrome for numeric keypad keys: // https://code.google.com/p/chromium/issues/detail?id=155654 // 1, 2, 3 ... are reported as A, B, C ... key = _chromeNumKeyPadMap[key]; } } } return _keyMap[key] || key; }; BrowserDomAdapter.prototype.getGlobalEventTarget = function (doc, target) { if (target === 'window') { return window; } if (target === 'document') { return doc; } if (target === 'body') { return doc.body; } return null; }; BrowserDomAdapter.prototype.getHistory = function () { return window.history; }; BrowserDomAdapter.prototype.getLocation = function () { return window.location; }; BrowserDomAdapter.prototype.getBaseHref = function (doc) { var href = getBaseElementHref(); return href == null ? null : relativePath(href); }; BrowserDomAdapter.prototype.resetBaseElement = function () { baseElement = null; }; BrowserDomAdapter.prototype.getUserAgent = function () { return window.navigator.userAgent; }; BrowserDomAdapter.prototype.setData = function (element, name, value) { this.setAttribute(element, 'data-' + name, value); }; BrowserDomAdapter.prototype.getData = function (element, name) { return this.getAttribute(element, 'data-' + name); }; BrowserDomAdapter.prototype.getComputedStyle = function (element) { return getComputedStyle(element); }; // TODO(tbosch): move this into a separate environment class once we have it BrowserDomAdapter.prototype.supportsWebAnimation = function () { return typeof Element.prototype['animate'] === 'function'; }; BrowserDomAdapter.prototype.performanceNow = function () { // performance.now() is not available in all browsers, see // http://caniuse.com/#search=performance.now return window.performance && window.performance.now ? window.performance.now() : new Date().getTime(); }; BrowserDomAdapter.prototype.supportsCookies = function () { return true; }; BrowserDomAdapter.prototype.getCookie = function (name) { return common.ɵparseCookieValue(document.cookie, name); }; BrowserDomAdapter.prototype.setCookie = function (name, value) { // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does // not clear other cookies. document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value); }; return BrowserDomAdapter; }(GenericBrowserDomAdapter)); var baseElement = null; function getBaseElementHref() { if (!baseElement) { baseElement = document.querySelector('base'); if (!baseElement) { return null; } } return baseElement.getAttribute('href'); } // based on urlUtils.js in AngularJS 1 var urlParsingNode; function relativePath(url) { if (!urlParsingNode) { urlParsingNode = document.createElement('a'); } urlParsingNode.setAttribute('href', url); return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname : '/' + urlParsingNode.pathname; } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function supportsState() { return !!window.history.pushState; } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * `PlatformLocation` encapsulates all of the direct calls to platform APIs. * This class should not be used directly by an application developer. Instead, use * {@link Location}. */ var BrowserPlatformLocation = /** @class */ (function (_super) { __extends(BrowserPlatformLocation, _super); function BrowserPlatformLocation(_doc) { var _this = _super.call(this) || this; _this._doc = _doc; _this._init(); return _this; } // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it /** @internal */ BrowserPlatformLocation.prototype._init = function () { this.location = getDOM().getLocation(); this._history = getDOM().getHistory(); }; BrowserPlatformLocation.prototype.getBaseHrefFromDOM = function () { return getDOM().getBaseHref(this._doc); }; BrowserPlatformLocation.prototype.onPopState = function (fn) { getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false); }; BrowserPlatformLocation.prototype.onHashChange = function (fn) { getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false); }; Object.defineProperty(BrowserPlatformLocation.prototype, "href", { get: function () { return this.location.href; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "protocol", { get: function () { return this.location.protocol; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "hostname", { get: function () { return this.location.hostname; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "port", { get: function () { return this.location.port; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "pathname", { get: function () { return this.location.pathname; }, set: function (newPath) { this.location.pathname = newPath; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "search", { get: function () { return this.location.search; }, enumerable: true, configurable: true }); Object.defineProperty(BrowserPlatformLocation.prototype, "hash", { get: function () { return this.location.hash; }, enumerable: true, configurable: true }); BrowserPlatformLocation.prototype.pushState = function (state, title, url) { if (supportsState()) { this._history.pushState(state, title, url); } else { this.location.hash = url; } }; BrowserPlatformLocation.prototype.replaceState = function (state, title, url) { if (supportsState()) { this._history.replaceState(state, title, url); } else { this.location.hash = url; } }; BrowserPlatformLocation.prototype.forward = function () { this._history.forward(); }; BrowserPlatformLocation.prototype.back = function () { this._history.back(); }; BrowserPlatformLocation.prototype.getState = function () { return this._history.state; }; BrowserPlatformLocation = __decorate([ core.Injectable(), __param(0, core.Inject(common.DOCUMENT)), __metadata("design:paramtypes", [Object]) ], BrowserPlatformLocation); return BrowserPlatformLocation; }(common.PlatformLocation)); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * An id that identifies a particular application being bootstrapped, that should * match across the client/server boundary. */ var TRANSITION_ID = new core.InjectionToken('TRANSITION_ID'); function appInitializerFactory(transitionId, document, injector) { return function () { // Wait for all application initializers to be completed before removing the styles set by // the server. injector.get(core.ApplicationInitStatus).donePromise.then(function () { var dom = getDOM(); var styles = Array.prototype.slice.apply(dom.querySelectorAll(document, "style[ng-transition]")); styles.filter(function (el) { return dom.getAttribute(el, 'ng-transition') === transitionId; }) .forEach(function (el) { return dom.remove(el); }); }); }; } var SERVER_TRANSITION_PROVIDERS = [ { provide: core.APP_INITIALIZER, useFactory: appInitializerFactory, deps: [TRANSITION_ID, common.DOCUMENT, core.Injector], multi: true }, ]; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var BrowserGetTestability = /** @class */ (function () { function BrowserGetTestability() { } BrowserGetTestability.init = function () { core.setTestabilityGetter(new BrowserGetTestability()); }; BrowserGetTestability.prototype.addToWindow = function (registry) { core.ɵglobal['getAngularTestability'] = function (elem, findInAncestors) { if (findInAncestors === void 0) { findInAncestors = true; } var testability = registry.findTestabilityInTree(elem, findInAncestors); if (testability == null) { throw new Error('Could not find testability for element.'); } return testability; }; core.ɵglobal['getAllAngularTestabilities'] = function () { return registry.getAllTestabilities(); }; core.ɵglobal['getAllAngularRootElements'] = function () { return registry.getAllRootElements(); }; var whenAllStable = function (callback /** TODO #9100 */) { var testabilities = core.ɵglobal['getAllAngularTestabilities'](); var count = testabilities.length; var didWork = false; var decrement = function (didWork_ /** TODO #9100 */) { didWork = didWork || didWork_; count--; if (count == 0) { callback(didWork); } }; testabilities.forEach(function (testability /** TODO #9100 */) { testability.whenStable(decrement); }); }; if (!core.ɵglobal['frameworkStabilizers']) { core.ɵglobal['frameworkStabilizers'] = []; } core.ɵglobal['frameworkStabilizers'].push(whenAllStable); }; BrowserGetTestability.prototype.findTestabilityInTree = function (registry, elem, findInAncestors) { if (elem == null) { return null; } var t = registry.getTestability(elem); if (t != null) { return t; } else if (!findInAncestors) { return null; } if (getDOM().isShadowRoot(elem)) { return this.findTestabilityInTree(registry, getDOM().getHost(elem), true); } return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true); }; return BrowserGetTestability; }()); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var CAMEL_CASE_REGEXP = /([A-Z])/g; var DASH_CASE_REGEXP = /-([a-z])/g; function camelCaseToDashCase(input) { return input.replace(CAMEL_CASE_REGEXP, function () { var m = []; for (var _i = 0; _i < arguments.length; _i++) { m[_i] = arguments[_i]; } return '-' + m[1].toLowerCase(); }); } function dashCaseToCamelCase(input) { return input.replace(DASH_CASE_REGEXP, function () { var m = []; for (var _i = 0; _i < arguments.length; _i++) { m[_i] = arguments[_i]; } return m[1].toUpperCase(); }); } /** * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if * `name` is `'probe'`. * @param name Name under which it will be exported. Keep in mind this will be a property of the * global `ng` object. * @param value The value to export. */ function exportNgVar(name, value) { if (typeof COMPILED === 'undefined' || !COMPILED) { // Note: we can't export `ng` when using closure enhanced optimization as: // - closure declares globals itself for minified names, which sometimes clobber our `ng` global // - we can't declare a closure extern as the namespace `ng` is already used within Google // for typings for angularJS (via `goog.provide('ng....')`). var ng = core.ɵglobal['ng'] = core.ɵglobal['ng'] || {}; ng[name] = value; } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ɵ0$1 = function () { return ({ 'ApplicationRef': core.ApplicationRef, 'NgZone': core.NgZone, }); }; var CORE_TOKENS = (ɵ0$1)(); var INSPECT_GLOBAL_NAME = 'probe'; var CORE_TOKENS_GLOBAL_NAME = 'coreTokens'; /** * Returns a {@link DebugElement} for the given native DOM element, or * null if the given native element does not have an Angular view associated * with it. */ function inspectNativeElement(element) { return core.getDebugNode(element); } function _createNgProbe(coreTokens) { exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement); exportNgVar(CORE_TOKENS_GLOBAL_NAME, __assign({}, CORE_TOKENS, _ngProbeTokensToMap(coreTokens || []))); return function () { return inspectNativeElement; }; } function _ngProbeTokensToMap(tokens) { return tokens.reduce(function (prev, t) { return (prev[t.name] = t.token, prev); }, {}); } /** * In Ivy, we don't support NgProbe because we have our own set of testing utilities * with more robust functionality. * * We shouldn't bring in NgProbe because it prevents DebugNode and friends from * tree-shaking properly. */ var ELEMENT_PROBE_PROVIDERS__POST_R3__ = []; /** * Providers which support debugging Angular applications (e.g. via `ng.probe`). */ var ELEMENT_PROBE_PROVIDERS__PRE_R3__ = [ { provide: core.APP_INITIALIZER, useFactory: _createNgProbe, deps: [ [core.NgProbeToken, new core.Optional()], ], multi: true, }, ]; var ELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS__PRE_R3__; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * The injection token for the event-manager plug-in service. * * @publicApi */ var EVENT_MANAGER_PLUGINS = new core.InjectionToken('EventManagerPlugins'); /** * An injectable service that provides event management for Angular * through a browser plug-in. * * @publicApi */ var EventManager = /** @class */ (function () { /**