diff --git a/README.CN.md b/README.CN.md index fcc8efe8d..0ed26c9c4 100644 --- a/README.CN.md +++ b/README.CN.md @@ -41,7 +41,7 @@ | [mp-mvvm![](https://raw.githubusercontent.com/dntzhang/cax/master/asset/hot.png) ](https://github.com/Tencent/omi/tree/master/packages/mp-mvvm)| 小程序插上 MVVM 的翅膀, [mappingjs](https://github.com/Tencent/omi/tree/master/packages/mappingjs) 强力加持。| | [omi-html](https://github.com/Tencent/omi/tree/master/packages/omi-html)| Using [htm](https://github.com/developit/htm) in omi.| | [omi-30-seconds![](https://raw.githubusercontent.com/dntzhang/cax/master/asset/hot.png) ](https://github.com/Tencent/omi/tree/master/packages/omi-30-seconds)| 30 秒理解一段有用的 Omi 代码片段.| -| [omi-spritejs](https://github.com/Tencent/omi/tree/master/packages/omi-spritejs)| Web Components, JSX 和 Canvas 的完美融合| +| [omi-sprite](https://github.com/Tencent/omi/tree/master/packages/omi-sprite)| Web Components, JSX 和 Canvas 的完美融合| | [omi-canvas](https://github.com/Tencent/omi/tree/master/packages/omi-canvas)| Web Components, JSX 和 Canvas 的完美融合| | [omi-mp![](https://raw.githubusercontent.com/dntzhang/cax/master/asset/hot.png) ](https://github.com/Tencent/omi/tree/master/packages/omi-mp)| 通过微信小程序开发和生成 Web 单页应用(H5 SPA)| | [omi-router ](https://github.com/Tencent/omi/tree/master/packages/omi-router) |Omi 官方路由。[→ DEMO](https://tencent.github.io/omi/packages/omi-router/examples/spa/build/)| diff --git a/packages/omi-spritejs/README.md b/packages/omi-sprite/README.md similarity index 94% rename from packages/omi-spritejs/README.md rename to packages/omi-sprite/README.md index 4ca2c14c5..7f277cd59 100644 --- a/packages/omi-spritejs/README.md +++ b/packages/omi-sprite/README.md @@ -4,6 +4,8 @@ The current version is v0.0.0. v1.0.0 is coming soon. +[→ Online DEMO](https://tencent.github.io/omi/packages/omi-sprite/examples/simple/) + ```js import { render, define, WeElement } from 'omi' import '../../src/index' diff --git a/packages/omi-spritejs/assets/omi-spritejs2.jpg b/packages/omi-sprite/assets/omi-spritejs2.jpg similarity index 100% rename from packages/omi-spritejs/assets/omi-spritejs2.jpg rename to packages/omi-sprite/assets/omi-spritejs2.jpg diff --git a/packages/omi-sprite/dist/omi-sprite.js b/packages/omi-sprite/dist/omi-sprite.js new file mode 100644 index 000000000..9f0b2488d --- /dev/null +++ b/packages/omi-sprite/dist/omi-sprite.js @@ -0,0 +1,1065 @@ +/*! + * omi-sprite v0.0.0 By akira-cn + * Github: https://github.com/AlloyTeam/omi + * MIT Licensed. + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("spritejs"), require("omi")); + else if(typeof define === 'function' && define.amd) + define(["spritejs", "omi"], factory); + else if(typeof exports === 'object') + exports["OmiSpritejs"] = factory(require("spritejs"), require("omi")); + else + root["OmiSpritejs"] = factory(root["spritejs"], root["omi"]); +})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_5__) { +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 = 4); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_0__; + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["b"] = vnode; +function vnode(sel, data, children, text, elm) { + var key = data === undefined ? undefined : data.key; + return { sel: sel, data: data, children: children, + text: text, elm: elm, key: key }; +} +/* harmony default export */ __webpack_exports__["a"] = (vnode); +//# sourceMappingURL=vnode.js.map + +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return array; }); +/* harmony export (immutable) */ __webpack_exports__["b"] = primitive; +var array = Array.isArray; +function primitive(s) { + return typeof s === 'string' || typeof s === 'number'; +} +//# sourceMappingURL=is.js.map + +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = h; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vnode__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__is__ = __webpack_require__(2); + + +function addNS(data, children, sel) { + data.ns = 'http://www.w3.org/2000/svg'; + if (sel !== 'foreignObject' && children !== undefined) { + for (var i = 0; i < children.length; ++i) { + var childData = children[i].data; + if (childData !== undefined) { + addNS(childData, children[i].children, children[i].sel); + } + } + } +} +function h(sel, b, c) { + var data = {}, children, text, i; + if (c !== undefined) { + data = b; + if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](c)) { + children = c; + } + else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](c)) { + text = c; + } + else if (c && c.sel) { + children = [c]; + } + } + else if (b !== undefined) { + if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](b)) { + children = b; + } + else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](b)) { + text = b; + } + else if (b && b.sel) { + children = [b]; + } + else { + data = b; + } + } + if (children !== undefined) { + for (i = 0; i < children.length; ++i) { + if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](children[i])) + children[i] = Object(__WEBPACK_IMPORTED_MODULE_0__vnode__["b" /* vnode */])(undefined, undefined, undefined, children[i], undefined); + } + } + if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' && + (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) { + addNS(data, children, sel); + } + return Object(__WEBPACK_IMPORTED_MODULE_0__vnode__["b" /* vnode */])(sel, data, children, text, undefined); +} +; +/* unused harmony default export */ var _unused_webpack_default_export = (h); +//# sourceMappingURL=h.js.map + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +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 _omi = __webpack_require__(5); + +var _spritejs = __webpack_require__(0); + +var _h = __webpack_require__(6); + +var _h2 = _interopRequireDefault(_h); + +var _attributes = __webpack_require__(9); + +var _attributes2 = _interopRequireDefault(_attributes); + +var _props = __webpack_require__(10); + +var _props2 = _interopRequireDefault(_props); + +var _nodeapi = __webpack_require__(11); + +var api = _interopRequireWildcard(_nodeapi); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +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 === "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 snabbdom = __webpack_require__(12); + +var create = _attributes2['default'].create, + update = _attributes2['default'].update; + + +function updateEvents(oldVnode, vnode) { + var oldEvents = oldVnode.events, + attrs = vnode.data.attrs; + + if (oldVnode.elm && oldEvents) { + oldEvents.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + type = _ref2[0], + f = _ref2[1]; + + oldVnode.elm.removeEventListener(type, f); + }); + } + if (vnode.elm && attrs) { + Object.entries(attrs).forEach(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 2), + key = _ref4[0], + val = _ref4[1]; + + if (key.indexOf('on') === 0 && typeof val === 'function') { + vnode.elm.addEventListener(key.slice(2).toLowerCase(), val); + vnode.events = vnode.events || []; + vnode.events.push([key, val]); + delete attrs[key]; + } + }); + } +} + +function createAttrs(oldVnode, vnode) { + updateEvents(oldVnode, vnode); + return create(oldVnode, vnode); +} + +function updateAttrs(oldVnode, vnode) { + updateEvents(oldVnode, vnode); + return update(oldVnode, vnode); +} + +var patch = snabbdom.init([{ + create: createAttrs, + update: updateAttrs +}, _props2['default']], api); + +function parseVNode(vdom) { + var nodeName = vdom.nodeName, + key = vdom.key, + attrs = vdom.attributes, + children = vdom.children; + + var sel = nodeName; + if (attrs && attrs.id) sel = sel + '#' + attrs.id; + var props = { attrs: attrs }; + if (key) props.key = key; + return (0, _h2['default'])(sel, props, children.map(function (child) { + return parseVNode(child); + })); +} + +(0, _omi.define)('omi-sprite', function (_WeElement) { + _inherits(_class, _WeElement); + + function _class() { + _classCallCheck(this, _class); + + return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments)); + } + + _createClass(_class, [{ + key: 'install', + value: function install() {} + }, { + key: 'installed', + value: function installed() { + if (this.shadowRoot && this.shadowRoot.styleSheets) { + _spritejs.stylesheet.fromDocumentCSS(this.shadowRoot.styleSheets); + } + var node = this; + while (node) { + var styleSheets = node.styleSheets; + if (styleSheets) { + _spritejs.stylesheet.fromDocumentCSS(styleSheets); + } + node = node.parentNode; + } + this.scene = new _spritejs.Scene(this.container, this.props); + render(this.scene, this.props.children); + } + }, { + key: 'afterUpdate', + value: function afterUpdate() { + render(this.scene, this.props.children); + } + }, { + key: 'render', + value: function render(props) { + var _this2 = this; + + return Omi.h('div', { ref: function ref(e) { + _this2.container = e; + }, + viewport: props.viewport, + resolution: props.resolution }); + } + }]); + + return _class; +}(_omi.WeElement)); + +function render(scene, children) { + children.forEach(function (layer) { + if (!layer.attributes.id) layer.attributes.id = 'layer_' + Math.random().toString(36).slice(2); + var layerEl = scene.layer(layer.attributes.id); + patch(layerEl, parseVNode(layer)); + }); +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var vnode_1 = __webpack_require__(7); +var is = __webpack_require__(8); +function addNS(data, children, sel) { + data.ns = 'http://www.w3.org/2000/svg'; + if (sel !== 'foreignObject' && children !== undefined) { + for (var i = 0; i < children.length; ++i) { + var childData = children[i].data; + if (childData !== undefined) { + addNS(childData, children[i].children, children[i].sel); + } + } + } +} +function h(sel, b, c) { + var data = {}, children, text, i; + if (c !== undefined) { + data = b; + if (is.array(c)) { + children = c; + } + else if (is.primitive(c)) { + text = c; + } + else if (c && c.sel) { + children = [c]; + } + } + else if (b !== undefined) { + if (is.array(b)) { + children = b; + } + else if (is.primitive(b)) { + text = b; + } + else if (b && b.sel) { + children = [b]; + } + else { + data = b; + } + } + if (children !== undefined) { + for (i = 0; i < children.length; ++i) { + if (is.primitive(children[i])) + children[i] = vnode_1.vnode(undefined, undefined, undefined, children[i], undefined); + } + } + if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' && + (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) { + addNS(data, children, sel); + } + return vnode_1.vnode(sel, data, children, text, undefined); +} +exports.h = h; +; +exports.default = h; +//# sourceMappingURL=h.js.map + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +function vnode(sel, data, children, text, elm) { + var key = data === undefined ? undefined : data.key; + return { sel: sel, data: data, children: children, + text: text, elm: elm, key: key }; +} +exports.vnode = vnode; +exports.default = vnode; +//# sourceMappingURL=vnode.js.map + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.array = Array.isArray; +function primitive(s) { + return typeof s === 'string' || typeof s === 'number'; +} +exports.primitive = primitive; +//# sourceMappingURL=is.js.map + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var xlinkNS = 'http://www.w3.org/1999/xlink'; +var xmlNS = 'http://www.w3.org/XML/1998/namespace'; +var colonChar = 58; +var xChar = 120; +function updateAttrs(oldVnode, vnode) { + var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs; + if (!oldAttrs && !attrs) + return; + if (oldAttrs === attrs) + return; + oldAttrs = oldAttrs || {}; + attrs = attrs || {}; + // update modified attributes, add new attributes + for (key in attrs) { + var cur = attrs[key]; + var old = oldAttrs[key]; + if (old !== cur) { + if (cur === true) { + elm.setAttribute(key, ""); + } + else if (cur === false) { + elm.removeAttribute(key); + } + else { + if (key.charCodeAt(0) !== xChar) { + elm.setAttribute(key, cur); + } + else if (key.charCodeAt(3) === colonChar) { + // Assume xml namespace + elm.setAttributeNS(xmlNS, key, cur); + } + else if (key.charCodeAt(5) === colonChar) { + // Assume xlink namespace + elm.setAttributeNS(xlinkNS, key, cur); + } + else { + elm.setAttribute(key, cur); + } + } + } + } + // remove removed attributes + // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value) + // the other option is to remove all attributes with value == undefined + for (key in oldAttrs) { + if (!(key in attrs)) { + elm.removeAttribute(key); + } + } +} +exports.attributesModule = { create: updateAttrs, update: updateAttrs }; +exports.default = exports.attributesModule; +//# sourceMappingURL=attributes.js.map + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +function updateProps(oldVnode, vnode) { + var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props; + if (!oldProps && !props) + return; + if (oldProps === props) + return; + oldProps = oldProps || {}; + props = props || {}; + for (key in oldProps) { + if (!props[key]) { + delete elm[key]; + } + } + for (key in props) { + cur = props[key]; + old = oldProps[key]; + if (old !== cur && (key !== 'value' || elm[key] !== cur)) { + elm[key] = cur; + } + } +} +exports.propsModule = { create: updateProps, update: updateProps }; +exports.default = exports.propsModule; +//# sourceMappingURL=props.js.map + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createElement = createElement; +exports.createElementNS = createElementNS; +exports.createTextNode = createTextNode; +exports.createComment = createComment; +exports.insertBefore = insertBefore; +exports.removeChild = removeChild; +exports.appendChild = appendChild; +exports.parentNode = parentNode; +exports.nextSibling = nextSibling; +exports.tagName = tagName; +exports.setTextContent = setTextContent; +exports.getTextContent = getTextContent; +exports.isElement = isElement; +exports.isText = isText; +exports.isComment = isComment; + +var _spritejs = __webpack_require__(0); + +function createElement(tagName) { + return (0, _spritejs.createNode)(tagName); +} +function createElementNS(namespaceURI, qualifiedName) { + return (0, _spritejs.createNode)(qualifiedName); +} +function createTextNode(text) { + return text; +} +function createComment(text) { + // no def +} +function insertBefore(parentNode, newNode, referenceNode) { + if (parentNode) { + parentNode.insertBefore(newNode, referenceNode); + } +} +function removeChild(node, child) { + node.removeChild(child); +} +function appendChild(node, child) { + if (typeof child === 'string') { + node.text = child; + } else { + node.appendChild(child); + } +} +function parentNode(node) { + return node.parent; +} +function nextSibling(node) { + if (node.parent) { + var idx = node.parent.children.indexOf(node); + return node.parent[idx + 1]; + } +} +function tagName(elm) { + return elm.tagName; +} +function setTextContent(node, text) { + node.text = text; +} +function getTextContent(node) { + return node.text; +} +function isElement(node) { + return node instanceof _spritejs.BaseSprite; +} +function isText(node) { + return typeof node === 'string'; +} +function isComment(node) { + return false; +} + +/***/ }), +/* 12 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony export (immutable) */ __webpack_exports__["init"] = init; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__vnode__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__is__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__htmldomapi__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__h__ = __webpack_require__(3); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_3__h__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__thunk__ = __webpack_require__(14); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "thunk", function() { return __WEBPACK_IMPORTED_MODULE_4__thunk__["a"]; }); + + + +function isUndef(s) { return s === undefined; } +function isDef(s) { return s !== undefined; } +var emptyNode = Object(__WEBPACK_IMPORTED_MODULE_0__vnode__["a" /* default */])('', {}, [], undefined, undefined); +function sameVnode(vnode1, vnode2) { + return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel; +} +function isVnode(vnode) { + return vnode.sel !== undefined; +} +function createKeyToOldIdx(children, beginIdx, endIdx) { + var i, map = {}, key, ch; + for (i = beginIdx; i <= endIdx; ++i) { + ch = children[i]; + if (ch != null) { + key = ch.key; + if (key !== undefined) + map[key] = i; + } + } + return map; +} +var hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post']; + + +function init(modules, domApi) { + var i, j, cbs = {}; + var api = domApi !== undefined ? domApi : __WEBPACK_IMPORTED_MODULE_2__htmldomapi__["a" /* default */]; + for (i = 0; i < hooks.length; ++i) { + cbs[hooks[i]] = []; + for (j = 0; j < modules.length; ++j) { + var hook = modules[j][hooks[i]]; + if (hook !== undefined) { + cbs[hooks[i]].push(hook); + } + } + } + function emptyNodeAt(elm) { + var id = elm.id ? '#' + elm.id : ''; + var c = elm.className ? '.' + elm.className.split(' ').join('.') : ''; + return Object(__WEBPACK_IMPORTED_MODULE_0__vnode__["a" /* default */])(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm); + } + function createRmCb(childElm, listeners) { + return function rmCb() { + if (--listeners === 0) { + var parent_1 = api.parentNode(childElm); + api.removeChild(parent_1, childElm); + } + }; + } + function createElm(vnode, insertedVnodeQueue) { + var i, data = vnode.data; + if (data !== undefined) { + if (isDef(i = data.hook) && isDef(i = i.init)) { + i(vnode); + data = vnode.data; + } + } + var children = vnode.children, sel = vnode.sel; + if (sel === '!') { + if (isUndef(vnode.text)) { + vnode.text = ''; + } + vnode.elm = api.createComment(vnode.text); + } + else if (sel !== undefined) { + // Parse selector + var hashIdx = sel.indexOf('#'); + var dotIdx = sel.indexOf('.', hashIdx); + var hash = hashIdx > 0 ? hashIdx : sel.length; + var dot = dotIdx > 0 ? dotIdx : sel.length; + var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel; + var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag) + : api.createElement(tag); + if (hash < dot) + elm.setAttribute('id', sel.slice(hash + 1, dot)); + if (dotIdx > 0) + elm.setAttribute('class', sel.slice(dot + 1).replace(/\./g, ' ')); + for (i = 0; i < cbs.create.length; ++i) + cbs.create[i](emptyNode, vnode); + if (__WEBPACK_IMPORTED_MODULE_1__is__["a" /* array */](children)) { + for (i = 0; i < children.length; ++i) { + var ch = children[i]; + if (ch != null) { + api.appendChild(elm, createElm(ch, insertedVnodeQueue)); + } + } + } + else if (__WEBPACK_IMPORTED_MODULE_1__is__["b" /* primitive */](vnode.text)) { + api.appendChild(elm, api.createTextNode(vnode.text)); + } + i = vnode.data.hook; // Reuse variable + if (isDef(i)) { + if (i.create) + i.create(emptyNode, vnode); + if (i.insert) + insertedVnodeQueue.push(vnode); + } + } + else { + vnode.elm = api.createTextNode(vnode.text); + } + return vnode.elm; + } + function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) { + for (; startIdx <= endIdx; ++startIdx) { + var ch = vnodes[startIdx]; + if (ch != null) { + api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before); + } + } + } + function invokeDestroyHook(vnode) { + var i, j, data = vnode.data; + if (data !== undefined) { + if (isDef(i = data.hook) && isDef(i = i.destroy)) + i(vnode); + for (i = 0; i < cbs.destroy.length; ++i) + cbs.destroy[i](vnode); + if (vnode.children !== undefined) { + for (j = 0; j < vnode.children.length; ++j) { + i = vnode.children[j]; + if (i != null && typeof i !== "string") { + invokeDestroyHook(i); + } + } + } + } + } + function removeVnodes(parentElm, vnodes, startIdx, endIdx) { + for (; startIdx <= endIdx; ++startIdx) { + var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx]; + if (ch != null) { + if (isDef(ch.sel)) { + invokeDestroyHook(ch); + listeners = cbs.remove.length + 1; + rm = createRmCb(ch.elm, listeners); + for (i_1 = 0; i_1 < cbs.remove.length; ++i_1) + cbs.remove[i_1](ch, rm); + if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) { + i_1(ch, rm); + } + else { + rm(); + } + } + else { + api.removeChild(parentElm, ch.elm); + } + } + } + } + function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) { + var oldStartIdx = 0, newStartIdx = 0; + var oldEndIdx = oldCh.length - 1; + var oldStartVnode = oldCh[0]; + var oldEndVnode = oldCh[oldEndIdx]; + var newEndIdx = newCh.length - 1; + var newStartVnode = newCh[0]; + var newEndVnode = newCh[newEndIdx]; + var oldKeyToIdx; + var idxInOld; + var elmToMove; + var before; + while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { + if (oldStartVnode == null) { + oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left + } + else if (oldEndVnode == null) { + oldEndVnode = oldCh[--oldEndIdx]; + } + else if (newStartVnode == null) { + newStartVnode = newCh[++newStartIdx]; + } + else if (newEndVnode == null) { + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldStartVnode, newStartVnode)) { + patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue); + oldStartVnode = oldCh[++oldStartIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else if (sameVnode(oldEndVnode, newEndVnode)) { + patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue); + oldEndVnode = oldCh[--oldEndIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldStartVnode, newEndVnode)) { + patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue); + api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm)); + oldStartVnode = oldCh[++oldStartIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldEndVnode, newStartVnode)) { + patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue); + api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm); + oldEndVnode = oldCh[--oldEndIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else { + if (oldKeyToIdx === undefined) { + oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); + } + idxInOld = oldKeyToIdx[newStartVnode.key]; + if (isUndef(idxInOld)) { + api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm); + newStartVnode = newCh[++newStartIdx]; + } + else { + elmToMove = oldCh[idxInOld]; + if (elmToMove.sel !== newStartVnode.sel) { + api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm); + } + else { + patchVnode(elmToMove, newStartVnode, insertedVnodeQueue); + oldCh[idxInOld] = undefined; + api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm); + } + newStartVnode = newCh[++newStartIdx]; + } + } + } + if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) { + if (oldStartIdx > oldEndIdx) { + before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm; + addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); + } + else { + removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); + } + } + } + function patchVnode(oldVnode, vnode, insertedVnodeQueue) { + var i, hook; + if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) { + i(oldVnode, vnode); + } + var elm = vnode.elm = oldVnode.elm; + var oldCh = oldVnode.children; + var ch = vnode.children; + if (oldVnode === vnode) + return; + if (vnode.data !== undefined) { + for (i = 0; i < cbs.update.length; ++i) + cbs.update[i](oldVnode, vnode); + i = vnode.data.hook; + if (isDef(i) && isDef(i = i.update)) + i(oldVnode, vnode); + } + if (isUndef(vnode.text)) { + if (isDef(oldCh) && isDef(ch)) { + if (oldCh !== ch) + updateChildren(elm, oldCh, ch, insertedVnodeQueue); + } + else if (isDef(ch)) { + if (isDef(oldVnode.text)) + api.setTextContent(elm, ''); + addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); + } + else if (isDef(oldCh)) { + removeVnodes(elm, oldCh, 0, oldCh.length - 1); + } + else if (isDef(oldVnode.text)) { + api.setTextContent(elm, ''); + } + } + else if (oldVnode.text !== vnode.text) { + api.setTextContent(elm, vnode.text); + } + if (isDef(hook) && isDef(i = hook.postpatch)) { + i(oldVnode, vnode); + } + } + return function patch(oldVnode, vnode) { + var i, elm, parent; + var insertedVnodeQueue = []; + for (i = 0; i < cbs.pre.length; ++i) + cbs.pre[i](); + if (!isVnode(oldVnode)) { + oldVnode = emptyNodeAt(oldVnode); + } + if (sameVnode(oldVnode, vnode)) { + patchVnode(oldVnode, vnode, insertedVnodeQueue); + } + else { + elm = oldVnode.elm; + parent = api.parentNode(elm); + createElm(vnode, insertedVnodeQueue); + if (parent !== null) { + api.insertBefore(parent, vnode.elm, api.nextSibling(elm)); + removeVnodes(parent, [oldVnode], 0, 0); + } + } + for (i = 0; i < insertedVnodeQueue.length; ++i) { + insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]); + } + for (i = 0; i < cbs.post.length; ++i) + cbs.post[i](); + return vnode; + }; +} +//# sourceMappingURL=snabbdom.js.map + +/***/ }), +/* 13 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export htmlDomApi */ +function createElement(tagName) { + return document.createElement(tagName); +} +function createElementNS(namespaceURI, qualifiedName) { + return document.createElementNS(namespaceURI, qualifiedName); +} +function createTextNode(text) { + return document.createTextNode(text); +} +function createComment(text) { + return document.createComment(text); +} +function insertBefore(parentNode, newNode, referenceNode) { + parentNode.insertBefore(newNode, referenceNode); +} +function removeChild(node, child) { + node.removeChild(child); +} +function appendChild(node, child) { + node.appendChild(child); +} +function parentNode(node) { + return node.parentNode; +} +function nextSibling(node) { + return node.nextSibling; +} +function tagName(elm) { + return elm.tagName; +} +function setTextContent(node, text) { + node.textContent = text; +} +function getTextContent(node) { + return node.textContent; +} +function isElement(node) { + return node.nodeType === 1; +} +function isText(node) { + return node.nodeType === 3; +} +function isComment(node) { + return node.nodeType === 8; +} +var htmlDomApi = { + createElement: createElement, + createElementNS: createElementNS, + createTextNode: createTextNode, + createComment: createComment, + insertBefore: insertBefore, + removeChild: removeChild, + appendChild: appendChild, + parentNode: parentNode, + nextSibling: nextSibling, + tagName: tagName, + setTextContent: setTextContent, + getTextContent: getTextContent, + isElement: isElement, + isText: isText, + isComment: isComment, +}; +/* harmony default export */ __webpack_exports__["a"] = (htmlDomApi); +//# sourceMappingURL=htmldomapi.js.map + +/***/ }), +/* 14 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return thunk; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__h__ = __webpack_require__(3); + +function copyToThunk(vnode, thunk) { + thunk.elm = vnode.elm; + vnode.data.fn = thunk.data.fn; + vnode.data.args = thunk.data.args; + thunk.data = vnode.data; + thunk.children = vnode.children; + thunk.text = vnode.text; + thunk.elm = vnode.elm; +} +function init(thunk) { + var cur = thunk.data; + var vnode = cur.fn.apply(undefined, cur.args); + copyToThunk(vnode, thunk); +} +function prepatch(oldVnode, thunk) { + var i, old = oldVnode.data, cur = thunk.data; + var oldArgs = old.args, args = cur.args; + if (old.fn !== cur.fn || oldArgs.length !== args.length) { + copyToThunk(cur.fn.apply(undefined, args), thunk); + return; + } + for (i = 0; i < args.length; ++i) { + if (oldArgs[i] !== args[i]) { + copyToThunk(cur.fn.apply(undefined, args), thunk); + return; + } + } + copyToThunk(oldVnode, thunk); +} +var thunk = function thunk(sel, key, fn, args) { + if (args === undefined) { + args = fn; + fn = key; + key = undefined; + } + return Object(__WEBPACK_IMPORTED_MODULE_0__h__["a" /* h */])(sel, { + key: key, + hook: { init: init, prepatch: prepatch }, + fn: fn, + args: args + }); +}; +/* unused harmony default export */ var _unused_webpack_default_export = (thunk); +//# sourceMappingURL=thunk.js.map + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/packages/omi-sprite/dist/omi-sprite.min.js b/packages/omi-sprite/dist/omi-sprite.min.js new file mode 100644 index 000000000..219b46312 --- /dev/null +++ b/packages/omi-sprite/dist/omi-sprite.min.js @@ -0,0 +1,6 @@ +/*! + * omi-sprite v0.0.0 By akira-cn + * Github: https://github.com/AlloyTeam/omi + * MIT Licensed. + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("spritejs"),require("omi")):"function"==typeof define&&define.amd?define(["spritejs","omi"],t):"object"==typeof exports?exports.OmiSpritejs=t(require("spritejs"),require("omi")):e.OmiSpritejs=t(e.spritejs,e.omi)}("undefined"!=typeof self?self:this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(t,n){t.exports=e},function(e,t,n){"use strict";function r(e,t,n,r,o){return{sel:e,data:t,children:n,text:r,elm:o,key:void 0===t?void 0:t.key}}t.b=r,t.a=r},function(e,t,n){"use strict";function r(e){return"string"==typeof e||"number"==typeof e}n.d(t,"a",function(){return o}),t.b=r;var o=Array.isArray},function(e,t,n){"use strict";function r(e,t,n){if(e.ns="http://www.w3.org/2000/svg","foreignObject"!==n&&void 0!==t)for(var o=0;o0?f:u.length,v=l>0?l:u.length,h=-1!==f||-1!==l?u.slice(0,Math.min(s,v)):u,m=e.elm=o(i)&&o(n=i.ns)?j.createElementNS(n,h):j.createElement(h);for(s0&&m.setAttribute("class",u.slice(v+1).replace(/\./g," ")),n=0;nh?(c=null==n[x+1]?null:n[x+1].elm,v(e,c,n,p,x,o)):y(e,t,s,h))}function g(e,t,n){var i,a;o(i=t.data)&&o(a=i.hook)&&o(i=a.prepatch)&&i(e,t);var u=t.elm=e.elm,f=e.children,l=t.children;if(e!==t){if(void 0!==t.data){for(i=0;i

Omi

- + @@ -51,7 +51,7 @@ define('my-app', class extends WeElement { > - + ) } diff --git a/packages/omi-spritejs/examples/simple/omi.jpg b/packages/omi-sprite/examples/simple/omi.jpg similarity index 100% rename from packages/omi-spritejs/examples/simple/omi.jpg rename to packages/omi-sprite/examples/simple/omi.jpg diff --git a/packages/omi-spritejs/package.json b/packages/omi-sprite/package.json similarity index 96% rename from packages/omi-spritejs/package.json rename to packages/omi-sprite/package.json index 627a94108..d9e6492de 100644 --- a/packages/omi-spritejs/package.json +++ b/packages/omi-sprite/package.json @@ -1,5 +1,5 @@ { - "name": "omi-spritejs", + "name": "omi-sprite", "version": "0.0.0", "description": "Omi spritejs.", "main": "dist/index.js", @@ -15,9 +15,9 @@ "url": "https://github.com/Tencent/omi.git" }, "keywords": [ - "omi-spritejs", + "omi-sprite", "spritejs", - "cax" + "canvas" ], "dependencies": { "file-loader": "^2.0.0", diff --git a/packages/omi-spritejs/src/index.js b/packages/omi-sprite/src/index.js similarity index 98% rename from packages/omi-spritejs/src/index.js rename to packages/omi-sprite/src/index.js index 7653ab9ab..32b44ee3e 100644 --- a/packages/omi-spritejs/src/index.js +++ b/packages/omi-sprite/src/index.js @@ -58,7 +58,7 @@ function parseVNode(vdom) { return h(sel, props, children.map(child => parseVNode(child))) } -define('omi-spritejs', class extends WeElement { +define('omi-sprite', class extends WeElement { install() { } diff --git a/packages/omi-spritejs/src/nodeapi.js b/packages/omi-sprite/src/nodeapi.js similarity index 59% rename from packages/omi-spritejs/src/nodeapi.js rename to packages/omi-sprite/src/nodeapi.js index 665382192..8b55cdd24 100644 --- a/packages/omi-spritejs/src/nodeapi.js +++ b/packages/omi-sprite/src/nodeapi.js @@ -1,56 +1,56 @@ -import {createNode, BaseSprite} from 'spritejs'; +import {createNode, BaseSprite} from 'spritejs' export function createElement(tagName) { - return createNode(tagName); + return createNode(tagName) } export function createElementNS(namespaceURI, qualifiedName) { - return createNode(qualifiedName); + return createNode(qualifiedName) } export function createTextNode(text) { - return text; + return text } export function createComment(text) { // no def } export function insertBefore(parentNode, newNode, referenceNode) { if(parentNode) { - parentNode.insertBefore(newNode, referenceNode); + parentNode.insertBefore(newNode, referenceNode) } } export function removeChild(node, child) { - node.removeChild(child); + node.removeChild(child) } export function appendChild(node, child) { if(typeof child === 'string') { - node.text = child; + node.text = child } else { - node.appendChild(child); + node.appendChild(child) } } export function parentNode(node) { - return node.parent; + return node.parent } export function nextSibling(node) { if(node.parent) { - const idx = node.parent.children.indexOf(node); - return node.parent[idx + 1]; + const idx = node.parent.children.indexOf(node) + return node.parent[idx + 1] } } export function tagName(elm) { - return elm.tagName; + return elm.tagName } export function setTextContent(node, text) { - node.text = text; + node.text = text } export function getTextContent(node) { - return node.text; + return node.text } export function isElement(node) { - return node instanceof BaseSprite; + return node instanceof BaseSprite } export function isText(node) { - return typeof node === 'string'; + return typeof node === 'string' } export function isComment(node) { - return false; + return false } diff --git a/packages/omi-spritejs/webpack.config.js b/packages/omi-sprite/webpack.config.js similarity index 91% rename from packages/omi-spritejs/webpack.config.js rename to packages/omi-sprite/webpack.config.js index 11857a8d4..80c0c8707 100755 --- a/packages/omi-spritejs/webpack.config.js +++ b/packages/omi-sprite/webpack.config.js @@ -57,7 +57,7 @@ var config = { if(ENV === 'build'||ENV === 'build-min'){ config = { entry: { - 'omi-spritejs': './src/index.js' + 'omi-sprite': './src/index.js' }, output: { // path: __dirname, @@ -69,7 +69,7 @@ if(ENV === 'build'||ENV === 'build-min'){ }, externals: { "omi": 'omi', - "cax": 'cax' + "spritejs": "spritejs", }, resolve: { alias: { @@ -95,7 +95,7 @@ if(ENV === 'build'||ENV === 'build-min'){ }, plugins: [ // Avoid publishing files when compilation fails - new webpack.BannerPlugin(" omi-spritejs v"+packageJSON.version+" By akira-cn \r\n Github: https://github.com/AlloyTeam/omi\r\n MIT Licensed."), + new webpack.BannerPlugin(" omi-sprite v"+packageJSON.version+" By akira-cn \r\n Github: https://github.com/AlloyTeam/omi\r\n MIT Licensed."), new webpack.NoEmitOnErrorsPlugin() ], stats: { @@ -109,7 +109,7 @@ if(ENV === 'build'||ENV === 'build-min'){ if(ENV === 'build-min'){ config.plugins.push(new webpack.optimize.UglifyJsPlugin()); config.entry = { - 'omi-spritejs.min': './src/index.js' + 'omi-sprite.min': './src/index.js' }; } } diff --git a/packages/omi-spritejs/dist/omi-spritejs.js b/packages/omi-spritejs/dist/omi-spritejs.js deleted file mode 100644 index 6bde733d6..000000000 --- a/packages/omi-spritejs/dist/omi-spritejs.js +++ /dev/null @@ -1,27615 +0,0 @@ -/*! - * omi-spritejs v0.0.0 By akira-cn - * Github: https://github.com/AlloyTeam/omi - * MIT Licensed. - */ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("omi")); - else if(typeof define === 'function' && define.amd) - define(["omi"], factory); - else if(typeof exports === 'object') - exports["OmiSpritejs"] = factory(require("omi")); - else - root["OmiSpritejs"] = factory(root["omi"]); -})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_5__) { -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 = 4); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -(function webpackUniversalModuleDefinition(root, factory) { - if(true) - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["spritejs"] = factory(); - else - root["spritejs"] = factory(); -})(window, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/js/"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Timeline = exports.Easings = exports.Effects = exports.Resource = exports.Color = exports.createElement = exports.createNode = exports.isValidNodeType = exports.registerNodeType = exports.Paper2D = exports.Scene = exports.Layer = exports.Group = exports.Path = exports.Label = exports.Sprite = exports.DataNode = exports.BaseSprite = exports.BaseNode = exports.stylesheet = exports.querySelectorAll = exports.querySelector = exports.use = exports.utils = exports.math = exports.version = exports._debugger = undefined; - -var _spriteCore = __webpack_require__(1); - -var _basesprite = __webpack_require__(267); - -var _basesprite2 = _interopRequireDefault(_basesprite); - -var _sprite = __webpack_require__(271); - -var _sprite2 = _interopRequireDefault(_sprite); - -var _layer = __webpack_require__(299); - -var _layer2 = _interopRequireDefault(_layer); - -var _scene = __webpack_require__(303); - -var _scene2 = _interopRequireDefault(_scene); - -var _resource = __webpack_require__(268); - -var _resource2 = _interopRequireDefault(_resource); - -var _platform = __webpack_require__(269); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var setDeprecation = _spriteCore.utils.setDeprecation; - - -if (_platform.shim) { - (0, _platform.shim)(); -} - -(0, _spriteCore.registerNodeType)('layer', _layer2.default, true); -(0, _spriteCore.registerNodeType)('scene', _scene2.default, true); - -function Paper2D() { - setDeprecation('spritejs.Paper2D', 'Instead use new spritejs.Scene.'); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return new (Function.prototype.bind.apply(_scene2.default, [null].concat(args)))(); -} - -var version = '2.24.8'; - -exports._debugger = _platform._debugger; -exports.version = version; -exports.math = _spriteCore.math; -exports.utils = _spriteCore.utils; -exports.use = _spriteCore.use; -exports.querySelector = _spriteCore.querySelector; -exports.querySelectorAll = _spriteCore.querySelectorAll; -exports.stylesheet = _spriteCore.stylesheet; -exports.BaseNode = _spriteCore.BaseNode; -exports.BaseSprite = _basesprite2.default; -exports.DataNode = _spriteCore.DataNode; -exports.Sprite = _sprite2.default; -exports.Label = _spriteCore.Label; -exports.Path = _spriteCore.Path; -exports.Group = _spriteCore.Group; -exports.Layer = _layer2.default; -exports.Scene = _scene2.default; -exports.Paper2D = Paper2D; -exports.registerNodeType = _spriteCore.registerNodeType; -exports.isValidNodeType = _spriteCore.isValidNodeType; -exports.createNode = _spriteCore.createNode; -exports.createElement = _spriteCore.createElement; -exports.Color = _spriteCore.Color; -exports.Resource = _resource2.default; -exports.Effects = _spriteCore.Effects; -exports.Easings = _spriteCore.Easings; -exports.Timeline = _spriteCore.Timeline; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.SvgPath = exports.Color = exports.createElement = exports.createNode = exports.isValidNodeType = exports.registerNodeType = exports.Timeline = exports.Easings = exports.Effects = exports.Group = exports.Layer = exports.Path = exports.Label = exports.Sprite = exports.Batch = exports.DataNode = exports.BaseSprite = exports.BaseNode = exports.math = exports.utils = exports.use = exports.querySelectorAll = exports.querySelector = exports.stylesheet = undefined; - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _weakMap = __webpack_require__(60); - -var _weakMap2 = _interopRequireDefault(_weakMap); - -var _spriteAnimator = __webpack_require__(88); - -var _svgPathToCanvas = __webpack_require__(146); - -var _svgPathToCanvas2 = _interopRequireDefault(_svgPathToCanvas); - -var _spriteMath = __webpack_require__(148); - -var math = _interopRequireWildcard(_spriteMath); - -var _utils = __webpack_require__(157); - -var utils = _interopRequireWildcard(_utils); - -var _basesprite = __webpack_require__(174); - -var _basesprite2 = _interopRequireDefault(_basesprite); - -var _datanode = __webpack_require__(238); - -var _datanode2 = _interopRequireDefault(_datanode); - -var _sprite = __webpack_require__(239); - -var _sprite2 = _interopRequireDefault(_sprite); - -var _label = __webpack_require__(241); - -var _label2 = _interopRequireDefault(_label); - -var _layer = __webpack_require__(247); - -var _layer2 = _interopRequireDefault(_layer); - -var _group = __webpack_require__(249); - -var _group2 = _interopRequireDefault(_group); - -var _basenode = __webpack_require__(232); - -var _basenode2 = _interopRequireDefault(_basenode); - -var _path = __webpack_require__(266); - -var _path2 = _interopRequireDefault(_path); - -var _batch = __webpack_require__(248); - -var _batch2 = _interopRequireDefault(_batch); - -var _nodetype = __webpack_require__(236); - -var _selector = __webpack_require__(199); - -var _stylesheet = __webpack_require__(198); - -var _stylesheet2 = _interopRequireDefault(_stylesheet); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -utils.parseFont = __webpack_require__(230); - -var Color = utils.Color; - -var installed = new _weakMap2.default(); -var _merged = (0, _symbol2.default)('merged'); - -var target = null; -function use(plugin) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - - if (!target) { - target = (0, _assign2.default)({}, this); - target.__spritejs = this; - // target.use = use.bind(target); - target.use = function (plugin) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - return use.call(target, plugin, options, merge); - }; - } - if (typeof options === 'boolean') { - merge = options; - options = null; - } - if (installed.has(plugin)) { - var _ret = installed.get(plugin); - if (merge && !_ret[_merged]) { - (0, _assign2.default)(target, _ret); - _ret[_merged] = true; - } - return _ret; - } - var install = plugin.install || plugin; - var ret = install.call(plugin, target, options) || {}; - installed.set(plugin, ret); - if (merge) { - (0, _assign2.default)(target.__spritejs, ret); - ret[_merged] = true; - } - return ret; -} - -exports.stylesheet = _stylesheet2.default; -exports.querySelector = _selector.querySelector; -exports.querySelectorAll = _selector.querySelectorAll; -exports.use = use; -exports.utils = utils; -exports.math = math; -exports.BaseNode = _basenode2.default; -exports.BaseSprite = _basesprite2.default; -exports.DataNode = _datanode2.default; -exports.Batch = _batch2.default; -exports.Sprite = _sprite2.default; -exports.Label = _label2.default; -exports.Path = _path2.default; -exports.Layer = _layer2.default; -exports.Group = _group2.default; -exports.Effects = _spriteAnimator.Effects; -exports.Easings = _spriteAnimator.Easings; -exports.Timeline = _spriteAnimator.Timeline; -exports.registerNodeType = _nodetype.registerNodeType; -exports.isValidNodeType = _nodetype.isValidNodeType; -exports.createNode = _nodetype.createNode; -exports.createElement = _nodetype.createElement; -exports.Color = Color; -exports.SvgPath = _svgPathToCanvas2.default; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(3), __esModule: true }; - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(4); -module.exports = __webpack_require__(7).Object.assign; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.1 Object.assign(target, source) -var $export = __webpack_require__(5); - -$export($export.S + $export.F, 'Object', { assign: __webpack_require__(20) }); - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(6); -var core = __webpack_require__(7); -var ctx = __webpack_require__(8); -var hide = __webpack_require__(10); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && key in exports) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.1' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(9); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - 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); - }; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(11); -var createDesc = __webpack_require__(19); -module.exports = __webpack_require__(15) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(12); -var IE8_DOM_DEFINE = __webpack_require__(14); -var toPrimitive = __webpack_require__(18); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(13); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(15) && !__webpack_require__(16)(function () { - return Object.defineProperty(__webpack_require__(17)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(16)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(13); -var document = __webpack_require__(6).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(13); -// 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 (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 19.1.2.1 Object.assign(target, source, ...) -var getKeys = __webpack_require__(21); -var gOPS = __webpack_require__(36); -var pIE = __webpack_require__(37); -var toObject = __webpack_require__(38); -var IObject = __webpack_require__(25); -var $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__(16)(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(22); -var enumBugKeys = __webpack_require__(35); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(23); -var toIObject = __webpack_require__(24); -var arrayIndexOf = __webpack_require__(28)(false); -var IE_PROTO = __webpack_require__(32)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(25); -var defined = __webpack_require__(27); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(26); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(24); -var toLength = __webpack_require__(29); -var toAbsoluteIndex = __webpack_require__(31); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(30); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 30 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(30); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(33)('keys'); -var uid = __webpack_require__(34); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(6); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); -module.exports = function (key) { - return store[key] || (store[key] = {}); -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(27); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(40), __esModule: true }; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(41); -__webpack_require__(57); -__webpack_require__(58); -__webpack_require__(59); -module.exports = __webpack_require__(7).Symbol; - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(6); -var has = __webpack_require__(23); -var DESCRIPTORS = __webpack_require__(15); -var $export = __webpack_require__(5); -var redefine = __webpack_require__(42); -var META = __webpack_require__(43).KEY; -var $fails = __webpack_require__(16); -var shared = __webpack_require__(33); -var setToStringTag = __webpack_require__(44); -var uid = __webpack_require__(34); -var wks = __webpack_require__(45); -var wksExt = __webpack_require__(46); -var wksDefine = __webpack_require__(47); -var enumKeys = __webpack_require__(49); -var isArray = __webpack_require__(50); -var anObject = __webpack_require__(12); -var toIObject = __webpack_require__(24); -var toPrimitive = __webpack_require__(18); -var createDesc = __webpack_require__(19); -var _create = __webpack_require__(51); -var gOPNExt = __webpack_require__(54); -var $GOPD = __webpack_require__(56); -var $DP = __webpack_require__(11); -var $keys = __webpack_require__(21); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(55).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(37).f = $propertyIsEnumerable; - __webpack_require__(36).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(48)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - replacer = args[1]; - if (typeof replacer == 'function') $replacer = replacer; - if ($replacer || !isArray(replacer)) replacer = function (key, value) { - if ($replacer) value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(10); - - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(34)('meta'); -var isObject = __webpack_require__(13); -var has = __webpack_require__(23); -var setDesc = __webpack_require__(11).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(16)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(11).f; -var has = __webpack_require__(23); -var TAG = __webpack_require__(45)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(33)('wks'); -var uid = __webpack_require__(34); -var Symbol = __webpack_require__(6).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(45); - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(6); -var core = __webpack_require__(7); -var LIBRARY = __webpack_require__(48); -var wksExt = __webpack_require__(46); -var defineProperty = __webpack_require__(11).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(21); -var gOPS = __webpack_require__(36); -var pIE = __webpack_require__(37); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(26); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(12); -var dPs = __webpack_require__(52); -var enumBugKeys = __webpack_require__(35); -var IE_PROTO = __webpack_require__(32)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(17)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(53).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(11); -var anObject = __webpack_require__(12); -var getKeys = __webpack_require__(21); - -module.exports = __webpack_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(6).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(24); -var gOPN = __webpack_require__(55).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(22); -var hiddenKeys = __webpack_require__(35).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(37); -var createDesc = __webpack_require__(19); -var toIObject = __webpack_require__(24); -var toPrimitive = __webpack_require__(18); -var has = __webpack_require__(23); -var IE8_DOM_DEFINE = __webpack_require__(14); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(47)('asyncIterator'); - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(47)('observable'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(61), __esModule: true }; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(57); -__webpack_require__(62); -__webpack_require__(70); -__webpack_require__(84); -__webpack_require__(86); -module.exports = __webpack_require__(7).WeakMap; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(63); -var global = __webpack_require__(6); -var hide = __webpack_require__(10); -var Iterators = __webpack_require__(66); -var TO_STRING_TAG = __webpack_require__(45)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(64); -var step = __webpack_require__(65); -var Iterators = __webpack_require__(66); -var toIObject = __webpack_require__(24); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(67)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 64 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 65 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(48); -var $export = __webpack_require__(5); -var redefine = __webpack_require__(42); -var hide = __webpack_require__(10); -var has = __webpack_require__(23); -var Iterators = __webpack_require__(66); -var $iterCreate = __webpack_require__(68); -var setToStringTag = __webpack_require__(44); -var getPrototypeOf = __webpack_require__(69); -var ITERATOR = __webpack_require__(45)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(51); -var descriptor = __webpack_require__(19); -var setToStringTag = __webpack_require__(44); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(10)(IteratorPrototype, __webpack_require__(45)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(23); -var toObject = __webpack_require__(38); -var IE_PROTO = __webpack_require__(32)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var each = __webpack_require__(71)(0); -var redefine = __webpack_require__(42); -var meta = __webpack_require__(43); -var assign = __webpack_require__(20); -var weak = __webpack_require__(74); -var isObject = __webpack_require__(13); -var fails = __webpack_require__(16); -var validate = __webpack_require__(82); -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var tmp = {}; -var InternalMap; - -var wrapper = function (get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -// 23.3 WeakMap Objects -var $WeakMap = module.exports = __webpack_require__(83)(WEAK_MAP, wrapper, methods, weak, true, true); - -// IE11 WeakMap frozen keys fix -if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - // store frozen objects on internal weakmap shim - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - var result = this._f[key](a, b); - return key == 'set' ? this : result; - // store all the rest on native weakmap - } return method.call(this, a, b); - }); - }); -} - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var ctx = __webpack_require__(8); -var IObject = __webpack_require__(25); -var toObject = __webpack_require__(38); -var toLength = __webpack_require__(29); -var asc = __webpack_require__(72); -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - for (;length > index; index++) if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - if (TYPE) { - if (IS_MAP) result[index] = res; // map - else if (res) switch (TYPE) { - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -// 9.4.2.3 ArraySpeciesCreate(originalArray, length) -var speciesConstructor = __webpack_require__(73); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(13); -var isArray = __webpack_require__(50); -var SPECIES = __webpack_require__(45)('species'); - -module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return C === undefined ? Array : C; -}; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var redefineAll = __webpack_require__(75); -var getWeak = __webpack_require__(43).getWeak; -var anObject = __webpack_require__(12); -var isObject = __webpack_require__(13); -var anInstance = __webpack_require__(76); -var forOf = __webpack_require__(77); -var createArrayMethod = __webpack_require__(71); -var $has = __webpack_require__(23); -var validate = __webpack_require__(82); -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -// fallback for uncaught frozen keys -var uncaughtFrozenStore = function (that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; -var UncaughtFrozenStore = function () { - this.a = []; -}; -var findUncaughtFrozen = function (store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value; - else this.a.push([key, value]); - }, - 'delete': function (key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = id++; // collection id - that._l = undefined; // leak store for uncaught frozen objects - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function (that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value); - else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -var hide = __webpack_require__(10); -module.exports = function (target, src, safe) { - for (var key in src) { - if (safe && target[key]) target[key] = src[key]; - else hide(target, key, src[key]); - } return target; -}; - - -/***/ }), -/* 76 */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(8); -var call = __webpack_require__(78); -var isArrayIter = __webpack_require__(79); -var anObject = __webpack_require__(12); -var toLength = __webpack_require__(29); -var getIterFn = __webpack_require__(80); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - // fast case for arrays with default iterator - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -// call something on iterator step with safe closing on error -var anObject = __webpack_require__(12); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -// check on default Array iterator -var Iterators = __webpack_require__(66); -var ITERATOR = __webpack_require__(45)('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(81); -var ITERATOR = __webpack_require__(45)('iterator'); -var Iterators = __webpack_require__(66); -module.exports = __webpack_require__(7).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__(26); -var TAG = __webpack_require__(45)('toStringTag'); -// ES3 wrong here -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(13); -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(6); -var $export = __webpack_require__(5); -var meta = __webpack_require__(43); -var fails = __webpack_require__(16); -var hide = __webpack_require__(10); -var redefineAll = __webpack_require__(75); -var forOf = __webpack_require__(77); -var anInstance = __webpack_require__(76); -var isObject = __webpack_require__(13); -var setToStringTag = __webpack_require__(44); -var dP = __webpack_require__(11).f; -var each = __webpack_require__(71)(0); -var DESCRIPTORS = __webpack_require__(15); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME, '_c'); - target._c = new Base(); - if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target); - }); - each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) { - var IS_ADDER = KEY == 'add' || KEY == 'set'; - if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) { - anInstance(this, C, KEY); - if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false; - var result = this._c[KEY](a === 0 ? 0 : a, b); - return IS_ADDER ? this : result; - }); - }); - IS_WEAK || dP(C.prototype, 'size', { - get: function () { - return this._c.size; - } - }); - } - - setToStringTag(C, NAME); - - O[NAME] = C; - $export($export.G + $export.W + $export.F, O); - - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - - return C; -}; - - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of -__webpack_require__(85)('WeakMap'); - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// https://tc39.github.io/proposal-setmap-offrom/ -var $export = __webpack_require__(5); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { of: function of() { - var length = arguments.length; - var A = Array(length); - while (length--) A[length] = arguments[length]; - return new this(A); - } }); -}; - - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from -__webpack_require__(87)('WeakMap'); - - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// https://tc39.github.io/proposal-setmap-offrom/ -var $export = __webpack_require__(5); -var aFunction = __webpack_require__(9); -var ctx = __webpack_require__(8); -var forOf = __webpack_require__(77); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - return new this(A); - } }); -}; - - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Timeline = exports.Effects = exports.Easings = exports.Animator = undefined; - -var _spriteTimeline = __webpack_require__(89); - -var _spriteTimeline2 = _interopRequireDefault(_spriteTimeline); - -var _effect = __webpack_require__(121); - -var _effect2 = _interopRequireDefault(_effect); - -var _easing = __webpack_require__(122); - -var _animator = __webpack_require__(124); - -var _animator2 = _interopRequireDefault(_animator); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.Animator = _animator2.default; -exports.Easings = _easing.Easings; -exports.Effects = _effect2.default; -exports.Timeline = _spriteTimeline2.default; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _map = __webpack_require__(105); - -var _map2 = _interopRequireDefault(_map); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _utils = __webpack_require__(120); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _nowtime = (0, _utils.createNowTime)(); - -var defaultOptions = { - originTime: 0, - playbackRate: 1.0 -}; - -var _timeMark = (0, _symbol2.default)('timeMark'), - _playbackRate = (0, _symbol2.default)('playbackRate'), - _timers = (0, _symbol2.default)('timers'), - _originTime = (0, _symbol2.default)('originTime'), - _setTimer = (0, _symbol2.default)('setTimer'), - _parent = (0, _symbol2.default)('parent'); - -var Timeline = function () { - function Timeline(options, parent) { - (0, _classCallCheck3.default)(this, Timeline); - - if (options instanceof Timeline) { - parent = options; - options = {}; - } - - options = (0, _assign2.default)({}, defaultOptions, options); - - if (parent) { - this[_parent] = parent; - } - - var nowtime = options.nowtime || _nowtime; - if (!parent) { - var createTime = nowtime(); - Object.defineProperty(this, 'globalTime', { - get: function get() { - return nowtime() - createTime; - } - }); - } else { - Object.defineProperty(this, 'globalTime', { - get: function get() { - return parent.currentTime; - } - }); - } - - // timeMark records the reference points on timeline - // Each time we change the playbackRate or currentTime or entropy - // A new timeMark will be generated - // timeMark sorted by entropy - // If you reset entropy, all the timeMarks behind the new entropy - // should be dropped - this[_timeMark] = [{ - globalTime: this.globalTime, - localTime: -options.originTime, - entropy: -options.originTime, - playbackRate: options.playbackRate, - globalEntropy: 0 - }]; - - if (this[_parent]) { - this[_timeMark][0].globalEntropy = this[_parent].entropy; - } - - this[_originTime] = options.originTime; - this[_playbackRate] = options.playbackRate; - this[_timers] = new _map2.default(); - } - - (0, _createClass3.default)(Timeline, [{ - key: 'markTime', - value: function markTime() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$time = _ref.time, - time = _ref$time === undefined ? this.currentTime : _ref$time, - _ref$entropy = _ref.entropy, - entropy = _ref$entropy === undefined ? this.entropy : _ref$entropy, - _ref$playbackRate = _ref.playbackRate, - playbackRate = _ref$playbackRate === undefined ? this.playbackRate : _ref$playbackRate; - - var timeMark = { - globalTime: this.globalTime, - localTime: time, - entropy: entropy, - playbackRate: playbackRate, - globalEntropy: this.globalEntropy - }; - this[_timeMark].push(timeMark); - } - }, { - key: 'fork', - value: function fork(options) { - return new Timeline(options, this); - } - }, { - key: 'seekGlobalTime', - value: function seekGlobalTime(seekEntropy) { - var idx = this.seekTimeMark(seekEntropy), - timeMark = this[_timeMark][idx]; - - var entropy = timeMark.entropy, - playbackRate = timeMark.playbackRate, - globalTime = timeMark.globalTime; - - - return globalTime + (seekEntropy - entropy) / Math.abs(playbackRate); - } - }, { - key: 'seekLocalTime', - value: function seekLocalTime(seekEntropy) { - var idx = this.seekTimeMark(seekEntropy), - timeMark = this[_timeMark][idx]; - - var localTime = timeMark.localTime, - entropy = timeMark.entropy, - playbackRate = timeMark.playbackRate; - - - if (playbackRate > 0) { - return localTime + (seekEntropy - entropy); - } - return localTime - (seekEntropy - entropy); - } - }, { - key: 'seekTimeMark', - value: function seekTimeMark(entropy) { - var timeMark = this[_timeMark]; - - var l = 0, - r = timeMark.length - 1; - - if (entropy <= timeMark[l].entropy) { - return l; - } - if (entropy >= timeMark[r].entropy) { - return r; - } - - var m = Math.floor((l + r) / 2); // binary search - - while (m > l && m < r) { - if (entropy === timeMark[m].entropy) { - return m; - }if (entropy < timeMark[m].entropy) { - r = m; - } else if (entropy > timeMark[m].entropy) { - l = m; - } - m = Math.floor((l + r) / 2); - } - - return l; - } - }, { - key: 'updateTimers', - value: function updateTimers() { - var _this = this; - - var timers = [].concat((0, _toConsumableArray3.default)(this[_timers])); - timers.forEach(function (_ref2) { - var _ref3 = (0, _slicedToArray3.default)(_ref2, 2), - id = _ref3[0], - timer = _ref3[1]; - - _this[_setTimer](timer.handler, timer.time, id); - }); - } - }, { - key: 'clearTimeout', - value: function (_clearTimeout) { - function clearTimeout(_x) { - return _clearTimeout.apply(this, arguments); - } - - clearTimeout.toString = function () { - return _clearTimeout.toString(); - }; - - return clearTimeout; - }(function (id) { - var timer = this[_timers].get(id); - - if (timer && timer.timerID != null) { - if (this[_parent]) { - this[_parent].clearTimeout(timer.timerID); - } else { - clearTimeout(timer.timerID); - } - } - this[_timers].delete(id); - }) - }, { - key: 'clearInterval', - value: function clearInterval(id) { - return this.clearTimeout(id); - } - }, { - key: 'clear', - value: function clear() { - var _this2 = this; - - // clear all running timers - var timers = this[_timers];[].concat((0, _toConsumableArray3.default)(timers.keys())).forEach(function (id) { - _this2.clearTimeout(id); - }); - } - - /* - setTimeout(func, {delay: 100, isEntropy: true}) - setTimeout(func, {entropy: 100}) - setTimeout(func, 100}) - */ - - }, { - key: 'setTimeout', - value: function setTimeout(handler) { - var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { delay: 0 }; - - return this[_setTimer](handler, time); - } - }, { - key: 'setInterval', - value: function setInterval(handler) { - var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { delay: 0 }; - - var that = this; - var id = this[_setTimer](function step() { - // reset timer before handler cause we may clearTimeout in handler() - that[_setTimer](step, time, id); - handler(); - }, time); - - return id; - } - }, { - key: _setTimer, - value: function value(handler, time) { - var _this3 = this; - - var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _symbol2.default)('timerID'); - - time = (0, _utils.formatDelay)(time); - - var timer = this[_timers].get(id); - var delay = void 0, - timerID = null, - startTime = void 0, - startEntropy = void 0; - - if (timer) { - this.clearTimeout(id); - if (time.isEntropy) { - delay = (time.delay - (this.entropy - timer.startEntropy)) / Math.abs(this.playbackRate); - } else { - delay = (time.delay - (this.currentTime - timer.startTime)) / this.playbackRate; - } - startTime = timer.startTime; - startEntropy = timer.startEntropy; - } else { - delay = time.delay / (time.isEntropy ? Math.abs(this.playbackRate) : this.playbackRate); - startTime = this.currentTime; - startEntropy = this.entropy; - } - - var parent = this[_parent], - globalTimeout = parent ? parent.setTimeout.bind(parent) : setTimeout; - - var heading = time.heading; - // console.log(heading, parent, delay) - if (!parent && heading === false && delay < 0) { - delay = Infinity; - } - - // if playbackRate is zero, delay will be infinity. - // For wxapp bugs, cannot use Number.isFinite yet. - if (isFinite(delay) || parent) { - // eslint-disable-line no-restricted-globals - delay = Math.ceil(delay); - if (globalTimeout !== setTimeout) { - delay = { delay: delay, heading: heading }; - } - timerID = globalTimeout(function () { - _this3[_timers].delete(id); - handler(); - }, delay); - } - - this[_timers].set(id, { - timerID: timerID, - handler: handler, - time: time, - startTime: startTime, - startEntropy: startEntropy - }); - - return id; - } - }, { - key: 'parent', - get: function get() { - return this[_parent]; - } - }, { - key: 'lastTimeMark', - get: function get() { - return this[_timeMark][this[_timeMark].length - 1]; - } - }, { - key: 'currentTime', - get: function get() { - var _lastTimeMark = this.lastTimeMark, - localTime = _lastTimeMark.localTime, - globalTime = _lastTimeMark.globalTime; - - return localTime + (this.globalTime - globalTime) * this.playbackRate; - }, - set: function set(time) { - var _this4 = this; - - var from = this.currentTime, - to = time, - timers = this[_timers]; - - this.markTime({ time: time });[].concat((0, _toConsumableArray3.default)(timers)).forEach(function (_ref4) { - var _ref5 = (0, _slicedToArray3.default)(_ref4, 2), - id = _ref5[0], - timer = _ref5[1]; - - if (!timers.has(id)) return; // Need check because it maybe clearTimeout by former handler(). - var _timer$time = timer.time, - isEntropy = _timer$time.isEntropy, - delay = _timer$time.delay, - heading = _timer$time.heading, - handler = timer.handler, - startTime = timer.startTime; - - - if (!isEntropy) { - var endTime = startTime + delay; - if (delay === 0 || heading !== false && (to - from) * delay <= 0 || from <= endTime && endTime <= to || from >= endTime && endTime >= to) { - handler(); - _this4.clearTimeout(id); - } - } else if (delay === 0) { - handler(); - _this4.clearTimeout(id); - } - }); - this.updateTimers(); - } - - // Both currentTime and entropy should be influenced by playbackRate. - // If current playbackRate is negative, the currentTime should go backwards - // while the entropy remain to go forwards. - // Both of the initial values is set to -originTime - - }, { - key: 'entropy', - get: function get() { - var _lastTimeMark2 = this.lastTimeMark, - entropy = _lastTimeMark2.entropy, - globalEntropy = _lastTimeMark2.globalEntropy; - - return entropy + Math.abs((this.globalEntropy - globalEntropy) * this.playbackRate); - }, - - - // get globalTime() { - // if(this[_parent]) { - // return this[_parent].currentTime; - // } - - // return nowtime(); - // } - - // change entropy will NOT cause currentTime changing but may influence the pass - // and the future of the timeline. (It may change the result of seek***Time) - // While entropy is set, all the marks behind will be droped - set: function set(entropy) { - if (this.entropy > entropy) { - var idx = this.seekTimeMark(entropy); - this[_timeMark].length = idx + 1; - } - this.markTime({ entropy: entropy }); - this.updateTimers(); - } - }, { - key: 'globalEntropy', - get: function get() { - return this[_parent] ? this[_parent].entropy : this.globalTime; - } - }, { - key: 'playbackRate', - get: function get() { - return this[_playbackRate]; - }, - set: function set(rate) { - if (rate !== this.playbackRate) { - this.markTime({ playbackRate: rate }); - this[_playbackRate] = rate; - this.updateTimers(); - } - } - }, { - key: 'paused', - get: function get() { - if (this.playbackRate === 0) return true; - var parent = this.parent; - while (parent) { - if (parent.playbackRate === 0) return true; - parent = parent.parent; - } - return false; - } - }]); - return Timeline; -}(); - -exports.default = Timeline; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _isIterable2 = __webpack_require__(91); - -var _isIterable3 = _interopRequireDefault(_isIterable2); - -var _getIterator2 = __webpack_require__(96); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = (0, _getIterator3.default)(arr), _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 ((0, _isIterable3.default)(Object(arr))) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -}(); - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(92), __esModule: true }; - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(62); -__webpack_require__(93); -module.exports = __webpack_require__(95); - - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(94)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(67)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(30); -var defined = __webpack_require__(27); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(81); -var ITERATOR = __webpack_require__(45)('iterator'); -var Iterators = __webpack_require__(66); -module.exports = __webpack_require__(7).isIterable = function (it) { - var O = Object(it); - return O[ITERATOR] !== undefined - || '@@iterator' in O - // eslint-disable-next-line no-prototype-builtins - || Iterators.hasOwnProperty(classof(O)); -}; - - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(97), __esModule: true }; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(62); -__webpack_require__(93); -module.exports = __webpack_require__(98); - - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(12); -var get = __webpack_require__(80); -module.exports = __webpack_require__(7).getIterator = function (it) { - var iterFn = get(it); - if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!'); - return anObject(iterFn.call(it)); -}; - - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _from = __webpack_require__(100); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (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 (0, _from2.default)(arr); - } -}; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(101), __esModule: true }; - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(93); -__webpack_require__(102); -module.exports = __webpack_require__(7).Array.from; - - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var ctx = __webpack_require__(8); -var $export = __webpack_require__(5); -var toObject = __webpack_require__(38); -var call = __webpack_require__(78); -var isArrayIter = __webpack_require__(79); -var toLength = __webpack_require__(29); -var createProperty = __webpack_require__(103); -var getIterFn = __webpack_require__(80); - -$export($export.S + $export.F * !__webpack_require__(104)(function (iter) { Array.from(iter); }), 'Array', { - // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) - from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - // if object isn't iterable or it's array with default iterator - use simple case - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - result.length = index; - return result; - } -}); - - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $defineProperty = __webpack_require__(11); -var createDesc = __webpack_require__(19); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; -}; - - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(45)('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(106), __esModule: true }; - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(57); -__webpack_require__(93); -__webpack_require__(62); -__webpack_require__(107); -__webpack_require__(110); -__webpack_require__(113); -__webpack_require__(114); -module.exports = __webpack_require__(7).Map; - - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(108); -var validate = __webpack_require__(82); -var MAP = 'Map'; - -// 23.1 Map Objects -module.exports = __webpack_require__(83)(MAP, function (get) { - return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = strong.getEntry(validate(this, MAP), key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); - } -}, strong, true); - - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var dP = __webpack_require__(11).f; -var create = __webpack_require__(51); -var redefineAll = __webpack_require__(75); -var ctx = __webpack_require__(8); -var anInstance = __webpack_require__(76); -var forOf = __webpack_require__(77); -var $iterDefine = __webpack_require__(67); -var step = __webpack_require__(65); -var setSpecies = __webpack_require__(109); -var DESCRIPTORS = __webpack_require__(15); -var fastKey = __webpack_require__(43).fastKey; -var validate = __webpack_require__(82); -var SIZE = DESCRIPTORS ? '_s' : 'size'; - -var getEntry = function (that, key) { - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return that._i[index]; - // frozen object case - for (entry = that._f; entry; entry = entry.n) { - if (entry.k == key) return entry; - } -}; - -module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = create(null); // index - that._f = undefined; // first entry - that._l = undefined; // last entry - that[SIZE] = 0; // size - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { - entry.r = true; - if (entry.p) entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that._f = that._l = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = validate(this, NAME); - var entry = getEntry(that, key); - if (entry) { - var next = entry.n; - var prev = entry.p; - delete that._i[entry.i]; - entry.r = true; - if (prev) prev.n = next; - if (next) next.p = prev; - if (that._f == entry) that._f = next; - if (that._l == entry) that._l = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - validate(this, NAME); - var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.n : this._f) { - f(entry.v, entry.k, this); - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(validate(this, NAME), key); - } - }); - if (DESCRIPTORS) dP(C.prototype, 'size', { - get: function () { - return validate(this, NAME)[SIZE]; - } - }); - return C; - }, - def: function (that, key, value) { - var entry = getEntry(that, key); - var prev, index; - // change existing entry - if (entry) { - entry.v = value; - // create new entry - } else { - that._l = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that._l, // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if (!that._f) that._f = entry; - if (prev) prev.n = entry; - that[SIZE]++; - // add to index - if (index !== 'F') that._i[index] = entry; - } return that; - }, - getEntry: getEntry, - setStrong: function (C, NAME, IS_MAP) { - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - $iterDefine(C, NAME, function (iterated, kind) { - this._t = validate(iterated, NAME); // target - this._k = kind; // kind - this._l = undefined; // previous - }, function () { - var that = this; - var kind = that._k; - var entry = that._l; - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - // get next entry - if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { - // or finish the iteration - that._t = undefined; - return step(1); - } - // return step by kind - if (kind == 'keys') return step(0, entry.k); - if (kind == 'values') return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(NAME); - } -}; - - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(6); -var core = __webpack_require__(7); -var dP = __webpack_require__(11); -var DESCRIPTORS = __webpack_require__(15); -var SPECIES = __webpack_require__(45)('species'); - -module.exports = function (KEY) { - var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var $export = __webpack_require__(5); - -$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(111)('Map') }); - - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var classof = __webpack_require__(81); -var from = __webpack_require__(112); -module.exports = function (NAME) { - return function toJSON() { - if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); - return from(this); - }; -}; - - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -var forOf = __webpack_require__(77); - -module.exports = function (iter, ITERATOR) { - var result = []; - forOf(iter, false, result.push, result, ITERATOR); - return result; -}; - - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of -__webpack_require__(85)('Map'); - - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from -__webpack_require__(87)('Map'); - - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(117); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = 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; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -}(); - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(118), __esModule: true }; - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(119); -var $Object = __webpack_require__(7).Object; -module.exports = function defineProperty(it, key, desc) { - return $Object.defineProperty(it, key, desc); -}; - - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(5); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(15), 'Object', { defineProperty: __webpack_require__(11).f }); - - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.createNowTime = createNowTime; -exports.formatDelay = formatDelay; -function createNowTime() { - var syncLocker = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - var nowtime = null; - if (Date.now) { - nowtime = Date.now; - } else { - nowtime = function nowtime() { - return new Date().getTime(); - }; - } - - return nowtime; -} - -/* - delay = 100 -> delay = {delay: 100} - delay = {entropy: 100} -> delay = {delay: 100, isEntropy: true} - */ -function formatDelay(delay) { - if (typeof delay === 'number') { - delay = { delay: delay }; - } else if ('entropy' in delay) { - delay = { delay: delay.entropy, isEntropy: true }; - } - return delay; -} - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = { - // s - startFrame, e - endFrame - default: function _default(from, to, p, s, e) { - if (typeof from === 'number' && typeof to === 'number') { - return from + (p - s) / (e - s) * (to - from); - } - - if (p - s > e - p) { - return to; - } - return from; - } -}; - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.parseEasing = exports.Easings = undefined; - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _map = __webpack_require__(105); - -var _map2 = _interopRequireDefault(_map); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var BezierEasing = __webpack_require__(123); -var bezierFuncCache = new _map2.default(); - -function getBezierEasing() { - for (var _len = arguments.length, value = Array(_len), _key = 0; _key < _len; _key++) { - value[_key] = arguments[_key]; - } - - var easing = bezierFuncCache.get(value); - if (easing) { - return easing; - } - easing = BezierEasing.apply(undefined, value); - bezierFuncCache.set(value, easing); - return easing; -} - -function getStepsEasing(step) { - var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'end'; - - return function (p, frames) { - for (var i = 1; i < frames.length; i++) { - var offset = frames[i].offset; - - if (p <= offset) { - var start = frames[i - 1].offset, - end = offset; - var fp = (p - start) / (end - start), - d = 1 / step; - - var t = fp / d; - if (pos === 'end') { - t = Math.floor(t); - } else { - t = Math.ceil(t); - } - - return d * t * (end - start) + start; - } - } - return 0; - }; -} - -function parseEasingStr(easingStr) { - var pattern = /^cubic-bezier\((.*)\)/, - matched = easingStr.match(pattern); - - if (matched) { - var value = matched[1].trim(); - value = value.split(',').map(function (v) { - return parseFloat(v.trim()); - }); - return getBezierEasing.apply(undefined, (0, _toConsumableArray3.default)(value)); - } - - pattern = /^steps\((.*)\)/; - matched = easingStr.match(pattern); - - if (matched) { - var _value = matched[1].trim(); - _value = _value.split(',').map(function (v) { - return v.trim(); - }); - - var _value2 = _value, - _value3 = (0, _slicedToArray3.default)(_value2, 2), - step = _value3[0], - pos = _value3[1]; - - return getStepsEasing(parseInt(step, 10), pos); - } - return easingStr; -} - -var Easings = { - linear: function linear(p) { - return p; - }, - - ease: getBezierEasing(0.25, 0.1, 0.25, 1), - 'ease-in': getBezierEasing(0.42, 0, 1, 1), - 'ease-out': getBezierEasing(0, 0, 0.58, 1), - 'ease-in-out': getBezierEasing(0.42, 0, 0.58, 1), - // 'step-start': function(p, frames){ - // let ret = 0 - // for(let i = 0; i < frames.length; i++){ - // const {offset} = frames[i] - // ret = offset - // if(p < offset){ - // break - // } - // } - // return ret - // }, - // 'step-end': function(p, frames){ - // let ret = 0 - // for(let i = 0; i < frames.length; i++){ - // const {offset} = frames[i] - // if(p < offset){ - // break - // } - // ret = offset - // } - // return ret - // } - 'step-start': getStepsEasing(1, 'start'), - 'step-end': getStepsEasing(1, 'end') -}; - -function parseEasing(easing) { - if (typeof easing === 'string') { - if (!Easings[easing]) { - easing = parseEasingStr(easing); - } else { - // load default Easing - easing = Easings[easing]; - } - } else if (easing.type === 'cubic-bezier') { - easing = getBezierEasing.apply(undefined, (0, _toConsumableArray3.default)(easing.value)); - } else if (easing.type === 'steps') { - easing = getStepsEasing(easing.step, easing.pos); - } - return easing; -} - -exports.Easings = Easings; -exports.parseEasing = parseEasing; - -/***/ }), -/* 123 */ -/***/ (function(module, exports) { - -/** - * https://github.com/gre/bezier-easing - * BezierEasing - use bezier curve for transition easing function - * by Gaëtan Renaudeau 2014 - 2015 – MIT License - */ - -// These values are established by empiricism with tests (tradeoff: performance VS precision) -var NEWTON_ITERATIONS = 4; -var NEWTON_MIN_SLOPE = 0.001; -var SUBDIVISION_PRECISION = 0.0000001; -var SUBDIVISION_MAX_ITERATIONS = 10; - -var kSplineTableSize = 11; -var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); - -var float32ArraySupported = typeof Float32Array === 'function'; - -function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } -function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } -function C (aA1) { return 3.0 * aA1; } - -// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. -function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } - -// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. -function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } - -function binarySubdivide (aX, aA, aB, mX1, mX2) { - var currentX, currentT, i = 0; - do { - currentT = aA + (aB - aA) / 2.0; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 0.0) { - aB = currentT; - } else { - aA = currentT; - } - } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); - return currentT; -} - -function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { - for (var i = 0; i < NEWTON_ITERATIONS; ++i) { - var currentSlope = getSlope(aGuessT, mX1, mX2); - if (currentSlope === 0.0) { - return aGuessT; - } - var currentX = calcBezier(aGuessT, mX1, mX2) - aX; - aGuessT -= currentX / currentSlope; - } - return aGuessT; -} - -function LinearEasing (x) { - return x; -} - -module.exports = function bezier (mX1, mY1, mX2, mY2) { - if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { - throw new Error('bezier x values must be in [0, 1] range'); - } - - if (mX1 === mY1 && mX2 === mY2) { - return LinearEasing; - } - - // Precompute samples table - var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); - for (var i = 0; i < kSplineTableSize; ++i) { - sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); - } - - function getTForX (aX) { - var intervalStart = 0.0; - var currentSample = 1; - var lastSample = kSplineTableSize - 1; - - for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - --currentSample; - - // Interpolate to provide an initial guess for t - var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); - var guessForT = intervalStart + dist * kSampleStepSize; - - var initialSlope = getSlope(guessForT, mX1, mX2); - if (initialSlope >= NEWTON_MIN_SLOPE) { - return newtonRaphsonIterate(aX, guessForT, mX1, mX2); - } else if (initialSlope === 0.0) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); - } - } - - return function BezierEasing (x) { - // Because JavaScript number are imprecise, we should guarantee the extremes are right. - if (x === 0) { - return 0; - } - if (x === 1) { - return 1; - } - return calcBezier(getTForX(x), mY1, mY2); - }; -}; - - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = undefined; - -var _promise = __webpack_require__(125); - -var _promise2 = _interopRequireDefault(_promise); - -var _keys = __webpack_require__(137); - -var _keys2 = _interopRequireDefault(_keys); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _spriteTimeline = __webpack_require__(89); - -var _spriteTimeline2 = _interopRequireDefault(_spriteTimeline); - -var _utils = __webpack_require__(141); - -var _easing = __webpack_require__(122); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _timing = (0, _symbol2.default)('timing'), - _keyframes = (0, _symbol2.default)('keyframes'), - _initState = (0, _symbol2.default)('initState'), - _readyDefer = (0, _symbol2.default)('readyDefer'), - _finishedDefer = (0, _symbol2.default)('finishedDefer'), - _effects = (0, _symbol2.default)('effects'), - _activeReadyTimer = (0, _symbol2.default)('activeReadyTimer'), - _activeFinishTimer = (0, _symbol2.default)('activeFinishTimer'), - _removeDefer = (0, _symbol2.default)('removeDefer'); - -/** - easing: { - type: 'cubic-bezier', - value: [...] - } - easing: { - type: 'steps', - step: 1, - pos: 'end' - } - */ -var defaultTiming = { - delay: 0, - endDelay: 0, - fill: 'auto', - iterations: 1.0, - playbackRate: 1.0, - direction: 'normal', - easing: 'linear', - effect: null -}; - -/** - animation: play --> delay --> effect --> endDelay - playState: idle --> pending --> running --> pending --> finished - */ - -var _default = function () { - function _default(initState, keyframes, timing) { - var _this = this; - - (0, _classCallCheck3.default)(this, _default); - - if (Array.isArray(initState)) { - var _ref = [initState[0], initState, keyframes]; - // 如果 initState 缺省,默认 keyframes 的第一帧为 initState - - initState = _ref[0]; - keyframes = _ref[1]; - timing = _ref[2]; - } - - if (typeof timing === 'number') { - timing = { duration: timing }; - } - - this[_timing] = (0, _assign2.default)({}, defaultTiming, timing); - this[_timing].easing = (0, _easing.parseEasing)(this[_timing].easing); - this[_keyframes] = (0, _utils.calculateFramesOffset)(keyframes); - - var lastFrame = this[_keyframes][this[_keyframes].length - 1]; - - this[_initState] = {}; // 初始状态 - - (0, _keys2.default)(lastFrame).forEach(function (key) { - if (Object.prototype.hasOwnProperty.call(initState, key)) { - if (key !== 'easing' && key !== 'offset') { - _this[_initState][key] = initState[key]; - } - } - }); - - // 补齐参数 - this[_keyframes] = this[_keyframes].map(function (frame) { - return (0, _assign2.default)({}, _this[_initState], frame); - }); - - if (this[_keyframes][0].offset !== 0) { - // 要补第一帧 - this[_keyframes].unshift((0, _assign2.default)({}, this[_initState], { offset: 0 })); - } - if (lastFrame.offset < 1) { - // 要补最后一帧 - this[_keyframes].push((0, _assign2.default)({}, lastFrame, { offset: 1 })); - } - - this[_effects] = {}; - this.timeline = null; // idle, no effect - } - - (0, _createClass3.default)(_default, [{ - key: 'pause', - value: function pause() { - this.timeline.playbackRate = 0; - } - }, { - key: _activeReadyTimer, - value: function value() { - var _this2 = this; - - if (this[_readyDefer] && !this[_readyDefer].timerID) { - if (this.timeline.currentTime < 0) { - this[_readyDefer].timerID = this.timeline.setTimeout(function () { - _this2[_readyDefer].resolve(); - delete _this2[_readyDefer]; - }, { delay: -this.timeline.currentTime, heading: false }); - } else { - this[_readyDefer].timerID = this.timeline.setTimeout(function () { - _this2[_readyDefer].resolve(); - delete _this2[_readyDefer]; - }, { delay: 0, isEntropy: true }); - } - } - } - }, { - key: _activeFinishTimer, - value: function value() { - var _this3 = this; - - var _timing2 = this[_timing], - duration = _timing2.duration, - iterations = _timing2.iterations, - endDelay = _timing2.endDelay; - - var delay = Math.ceil(duration * iterations + endDelay - this.timeline.currentTime) + 1; - if (this[_finishedDefer] && !this[_finishedDefer].timerID) { - this[_finishedDefer].timerID = this.timeline.setTimeout(function () { - _this3[_finishedDefer].resolve(); - _this3[_removeDefer](_readyDefer); - _this3[_removeDefer](_finishedDefer); - }, { delay: delay, heading: false }); - this[_finishedDefer].reverseTimerID = this.timeline.setTimeout(function () { - _this3[_finishedDefer].resolve(); - _this3[_removeDefer](_readyDefer); - _this3[_removeDefer](_finishedDefer); - _this3.timeline = null; - }, { delay: -this[_timing].delay - 1, heading: false }); - } - } - }, { - key: 'play', - value: function play() { - if (this.playState === 'finished') { - this.cancel(); - } - - if (this.playState === 'idle') { - if (this.playbackRate <= 0) { - return; - } - var _timing3 = this[_timing], - delay = _timing3.delay, - playbackRate = _timing3.playbackRate, - timeline = _timing3.timeline; - - this.timeline = new _spriteTimeline2.default({ - originTime: delay, - playbackRate: playbackRate - }, timeline); - this[_activeReadyTimer](); - this[_activeFinishTimer](); - } else if (this.playState === 'paused') { - this.timeline.playbackRate = this.playbackRate; - this[_activeReadyTimer](); - } - } - }, { - key: _removeDefer, - value: function value(deferID) { - var defered = this[deferID], - timeline = this.timeline; - - - if (defered && timeline) { - timeline.clearTimeout(defered.timerID); - if (defered.reverseTimerID) { - timeline.clearTimeout(defered.reverseTimerID); - } - } - delete this[deferID]; - } - }, { - key: 'cancel', - value: function cancel() { - this[_removeDefer](_readyDefer); - this[_removeDefer](_finishedDefer); - this.timeline = null; - } - }, { - key: 'finish', - value: function finish() { - if (this.timeline) { - this.timeline.currentTime = Infinity / this.playbackRate; - } - this[_removeDefer](_readyDefer); - this[_removeDefer](_finishedDefer); - } - }, { - key: 'applyEffects', - value: function applyEffects(effects) { - return (0, _assign2.default)(this[_effects], effects); - } - }, { - key: 'playbackRate', - get: function get() { - return this[_timing].playbackRate; - }, - set: function set(rate) { - if (this.timeline) { - this.timeline.playbackRate = rate; - } - this[_timing].playbackRate = rate; - } - }, { - key: 'playState', - get: function get() { - var timeline = this.timeline, - _timing4 = this[_timing], - iterations = _timing4.iterations, - duration = _timing4.duration, - endDelay = _timing4.endDelay; - - var state = 'running'; - - if (timeline == null) { - state = 'idle'; - } else if (timeline.paused) { - state = 'paused'; - } else if (timeline.currentTime < 0) { - // 开始 pending - state = 'pending'; - } else { - var ed = timeline.currentTime - iterations * duration; - if (ed > 0 && ed < endDelay) { - // 结束 pending - state = 'pending'; - } else if (ed >= endDelay) { - state = 'finished'; - } - } - return state; - } - }, { - key: 'progress', - get: function get() { - if (!this.timeline) return 0; - - var _timing5 = this[_timing], - duration = _timing5.duration, - iterations = _timing5.iterations; - - var timeline = this.timeline, - playState = this.playState; - - var p = void 0; - - if (playState === 'idle') { - p = 0; - } else if (playState === 'paused' && timeline.currentTime < 0) { - p = 0; - } else if (playState === 'pending') { - if (timeline.currentTime < 0) { - p = 0; - } else { - var time = timeline.seekLocalTime(iterations * duration); - p = (0, _utils.periodicity)(time, duration)[1] / duration; - } - } else if (playState === 'running' || playState === 'paused') { - p = (0, _utils.periodicity)(timeline.currentTime, duration)[1] / duration; - } - - if (playState === 'finished') { - p = (0, _utils.periodicity)(iterations, 1)[1]; - } - - return p; - } - }, { - key: 'frame', - get: function get() { - var playState = this.playState, - initState = this[_initState], - fill = this[_timing].fill; - - - if (playState === 'idle') { - return initState; - } - - var currentTime = this.timeline.currentTime, - keyframes = this[_keyframes].slice(0); - - var _getProgress = (0, _utils.getProgress)(this.timeline, this[_timing], this.progress), - p = _getProgress.p, - inverted = _getProgress.inverted; - - var frameState = initState; - if (currentTime < 0 && playState === 'pending') { - // 在开始前 delay 阶段 - if (fill === 'backwards' || fill === 'both') { - frameState = inverted ? keyframes[keyframes.length - 1] : keyframes[0]; - } - } else if (playState !== 'pending' && playState !== 'finished' || fill === 'forwards' || fill === 'both') { - // 不在 endDelay 或结束状态,或 forwards - frameState = (0, _utils.getCurrentFrame)(this[_timing], keyframes, this[_effects], p); - } - return frameState; - } - }, { - key: 'timing', - get: function get() { - return this[_timing]; - } - }, { - key: 'baseTimeline', - set: function set(timeline) { - this[_timing].timeline = timeline; - }, - get: function get() { - return this[_timing].timeline; - } - }, { - key: 'ready', - get: function get() { - if (this[_readyDefer]) { - return this[_readyDefer].promise; - } - - if (this.timeline && this.timeline.currentTime >= 0) { - if (this.playState !== 'paused') { - return _promise2.default.resolve(); - } - } - - this[_readyDefer] = (0, _utils.defer)(); - if (this.timeline) { - // 已经在 pending 状态 - this[_activeReadyTimer](); - } - if (this[_readyDefer]) { - return this[_readyDefer].promise; - } - return _promise2.default.resolve(); - } - }, { - key: 'finished', - get: function get() { - if (this.playState === 'finished') { - return _promise2.default.resolve(); - } - if (!this[_finishedDefer]) { - this[_finishedDefer] = (0, _utils.defer)(); - - if (this.timeline) { - this[_activeFinishTimer](); - } - } - - return this[_finishedDefer].promise; - } - }]); - return _default; -}(); - -exports.default = _default; - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(126), __esModule: true }; - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(57); -__webpack_require__(93); -__webpack_require__(62); -__webpack_require__(127); -__webpack_require__(135); -__webpack_require__(136); -module.exports = __webpack_require__(7).Promise; - - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(48); -var global = __webpack_require__(6); -var ctx = __webpack_require__(8); -var classof = __webpack_require__(81); -var $export = __webpack_require__(5); -var isObject = __webpack_require__(13); -var aFunction = __webpack_require__(9); -var anInstance = __webpack_require__(76); -var forOf = __webpack_require__(77); -var speciesConstructor = __webpack_require__(128); -var task = __webpack_require__(129).set; -var microtask = __webpack_require__(131)(); -var newPromiseCapabilityModule = __webpack_require__(132); -var perform = __webpack_require__(133); -var promiseResolve = __webpack_require__(134); -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; -var empty = function () { /* empty */ }; -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; - -var USE_NATIVE = !!function () { - try { - // correct subclassing with @@species support - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[__webpack_require__(45)('species')] = function (exec) { - exec(empty, empty); - }; - // unhandled rejections tracking support, NodeJS Promise without it fails @@species test - return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise; - } catch (e) { /* empty */ } -}(); - -// helpers -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function (promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function (reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); - if (domain) domain.exit(); - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - reject(e); - } - }; - while (chain.length > i) run(chain[i++]); // variable length - can't use forEach - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; -var onUnhandled = function (promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ promise: promise, reason: value }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; -var isUnhandled = function (promise) { - if (promise._h == 1) return false; - var chain = promise._a || promise._c; - var i = 0; - var reaction; - while (chain.length > i) { - reaction = chain[i++]; - if (reaction.fail || !isUnhandled(reaction.promise)) return false; - } return true; -}; -var onHandleUnhandled = function (promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ promise: promise, reason: promise._v }); - } - }); -}; -var $reject = function (value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; -var $resolve = function (value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { _w: promise, _d: false }; // wrap - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ _w: promise, _d: false }, e); // wrap - } -}; - -// constructor polyfill -if (!USE_NATIVE) { - // 25.4.3.1 Promise(executor) - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - this._c = []; // <- awaiting reactions - this._a = undefined; // <- checked in isUnhandled reactions - this._s = 0; // <- state - this._d = false; // <- done - this._v = undefined; // <- value - this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled - this._n = false; // <- notify - }; - Internal.prototype = __webpack_require__(75)($Promise.prototype, { - // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - // 25.4.5.1 Promise.prototype.catch(onRejected) - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === $Promise || C === Wrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); -__webpack_require__(44)($Promise, PROMISE); -__webpack_require__(109)(PROMISE); -Wrapper = __webpack_require__(7)[PROMISE]; - -// statics -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - // 25.4.4.5 Promise.reject(r) - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - // 25.4.4.6 Promise.resolve(x) - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(104)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - // 25.4.4.1 Promise.all(iterable) - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - // 25.4.4.4 Promise.race(iterable) - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.3.20 SpeciesConstructor(O, defaultConstructor) -var anObject = __webpack_require__(12); -var aFunction = __webpack_require__(9); -var SPECIES = __webpack_require__(45)('species'); -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(8); -var invoke = __webpack_require__(130); -var html = __webpack_require__(53); -var cel = __webpack_require__(17); -var global = __webpack_require__(6); -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; -var run = function () { - var id = +this; - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var listener = function (event) { - run.call(event.data); -}; -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - // Node.js 0.8- - if (__webpack_require__(26)(process) == 'process') { - defer = function (id) { - process.nextTick(ctx(run, id, 1)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(ctx(run, id, 1)); - }; - // Browsers with MessageChannel, includes WebWorkers - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function (id) { - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function (id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; - - -/***/ }), -/* 130 */ -/***/ (function(module, exports) { - -// fast apply, http://jsperf.lnkit.com/fast-apply/5 -module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); -}; - - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(6); -var macrotask = __webpack_require__(129).set; -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __webpack_require__(26)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function () { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify(); - else last = undefined; - throw e; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // Node.js - if (isNode) { - notify = function () { - process.nextTick(flush); - }; - // browsers with MutationObserver - } else if (Observer) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { - var promise = Promise.resolve(); - notify = function () { - promise.then(flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; -}; - - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 25.4.1.5 NewPromiseCapability(C) -var aFunction = __webpack_require__(9); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - - -/***/ }), -/* 133 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return { e: false, v: exec() }; - } catch (e) { - return { e: true, v: e }; - } -}; - - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(12); -var isObject = __webpack_require__(13); -var newPromiseCapability = __webpack_require__(132); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// https://github.com/tc39/proposal-promise-finally - -var $export = __webpack_require__(5); -var core = __webpack_require__(7); -var global = __webpack_require__(6); -var speciesConstructor = __webpack_require__(128); -var promiseResolve = __webpack_require__(134); - -$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); -} }); - - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// https://github.com/tc39/proposal-promise-try -var $export = __webpack_require__(5); -var newPromiseCapability = __webpack_require__(132); -var perform = __webpack_require__(133); - -$export($export.S, 'Promise', { 'try': function (callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; -} }); - - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(138), __esModule: true }; - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(139); -module.exports = __webpack_require__(7).Object.keys; - - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 Object.keys(O) -var toObject = __webpack_require__(38); -var $keys = __webpack_require__(21); - -__webpack_require__(140)('keys', function () { - return function keys(it) { - return $keys(toObject(it)); - }; -}); - - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __webpack_require__) { - -// most Object methods by ES6 should accept primitives -var $export = __webpack_require__(5); -var core = __webpack_require__(7); -var fails = __webpack_require__(16); -module.exports = function (KEY, exec) { - var fn = (core.Object || {})[KEY] || Object[KEY]; - var exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); -}; - - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(142); - -var _entries2 = _interopRequireDefault(_entries); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _promise = __webpack_require__(125); - -var _promise2 = _interopRequireDefault(_promise); - -exports.defer = defer; -exports.periodicity = periodicity; -exports.calculateFramesOffset = calculateFramesOffset; -exports.getProgress = getProgress; -exports.getCurrentFrame = getCurrentFrame; - -var _easing2 = __webpack_require__(122); - -var _effect = __webpack_require__(121); - -var _effect2 = _interopRequireDefault(_effect); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function defer() { - var ret = {}; - ret.promise = new _promise2.default(function (resolve, reject) { - ret.resolve = resolve; - ret.reject = reject; - }); - return ret; -} - -function periodicity(val, dur) { - var t = Math.floor(val / dur); - var v = val - t * dur; - if (v === 0 && t > 0) { - v = dur; - t--; - } - return [t, v]; -} - -function calculateFramesOffset(keyframes) { - keyframes = keyframes.slice(0); - - var firstFrame = keyframes[0], - lastFrame = keyframes[keyframes.length - 1]; - - lastFrame.offset = lastFrame.offset || 1; - firstFrame.offset = firstFrame.offset || 0; - - var offset = 0, - offsetFrom = -1; - - for (var i = 0; i < keyframes.length; i++) { - var frame = keyframes[i]; - if (frame.offset != null) { - var dis = i - offsetFrom; - if (dis > 1) { - var delta = (frame.offset - offset) / dis; - for (var j = 0; j < dis - 1; j++) { - keyframes[offsetFrom + j + 1].offset = offset + delta * (j + 1); - } - } - offset = frame.offset; - offsetFrom = i; - } - if (frame.easing != null) { - frame.easing = (0, _easing2.parseEasing)(frame.easing); - } - if (i > 0) { - var hasEasing = keyframes[i].easing != null; - // 如果中间某个属性没有了,需要从前一帧复制过来 - keyframes[i] = (0, _assign2.default)({}, keyframes[i - 1], keyframes[i]); - if (!hasEasing) { - // easing 不能复制 - delete keyframes[i].easing; - } - } - } - - return keyframes; -} - -function getProgress(timeline, timing, p) { - var currentTime = timeline.currentTime, - direction = timing.direction, - duration = timing.duration; - - var inverted = false; - if (direction === 'reverse') { - p = 1 - p; - inverted = true; - } else if (direction === 'alternate' || direction === 'alternate-reverse') { - var period = Math.floor(currentTime / duration); - - if (p === 1) period--; - // period = Math.max(0, period) - - if (period % 2 ^ direction === 'alternate-reverse') { - p = 1 - p; - inverted = true; - } - } - return { p: p, inverted: inverted }; -} - -function calculateFrame(previousFrame, nextFrame, effects, p) { - var ret = {}; - (0, _entries2.default)(nextFrame).forEach(function (_ref) { - var _ref2 = (0, _slicedToArray3.default)(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - - if (key !== 'offset' && key !== 'easing') { - var effect = effects[key] || effects.default; - - var v = effect(previousFrame[key], value, p, previousFrame.offset, nextFrame.offset); - - if (v != null) { - ret[key] = v; - } - } - }); - return ret; -} - -function getCurrentFrame(timing, keyframes, effects, p) { - var easing = timing.easing, - effect = timing.effect; - - - if (!effect) { - // timing.effect 会覆盖掉 Effects 和 animator.applyEffects 中定义的 effects - effects = (0, _assign2.default)({}, effects, _effect2.default); - } - - var ret = {}; - - p = easing(p, keyframes); - - for (var i = 1; i < keyframes.length; i++) { - var frame = keyframes[i], - offset = frame.offset; - - if (offset >= p || i === keyframes.length - 1) { - var previousFrame = keyframes[i - 1], - previousOffset = previousFrame.offset, - _easing = previousFrame.easing; - - var ep = p; - if (_easing) { - var d = offset - previousOffset; - ep = _easing((p - previousOffset) / d) * d + previousOffset; - } - - if (effect) { - ret = effect(previousFrame, frame, ep, previousOffset, offset); - } else { - ret = calculateFrame(previousFrame, frame, effects, ep); - } - break; - } - } - - return ret; -} - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(143), __esModule: true }; - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(144); -module.exports = __webpack_require__(7).Object.entries; - - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/tc39/proposal-object-values-entries -var $export = __webpack_require__(5); -var $entries = __webpack_require__(145)(true); - -$export($export.S, 'Object', { - entries: function entries(it) { - return $entries(it); - } -}); - - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __webpack_require__) { - -var getKeys = __webpack_require__(21); -var toIObject = __webpack_require__(24); -var isEnum = __webpack_require__(37).f; -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) if (isEnum.call(O, key = keys[i++])) { - result.push(isEntries ? [key, O[key]] : O[key]); - } return result; - }; -}; - - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _toArray2 = __webpack_require__(147); - -var _toArray3 = _interopRequireDefault(_toArray2); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _spriteMath = __webpack_require__(148); - -var _platform = __webpack_require__(151); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -var parse = __webpack_require__(152); -var abs = __webpack_require__(153); -var normalize = __webpack_require__(154); -var isSvgPath = __webpack_require__(156); - -var _path = (0, _symbol2.default)('path'); -var _bounds = (0, _symbol2.default)('bounds'); -var _savedPaths = (0, _symbol2.default)('savedPaths'); -var _renderProps = (0, _symbol2.default)('renderProps'); -var _beginPath = (0, _symbol2.default)('beginPath'); - -var SvgPath = function () { - function SvgPath(d) { - (0, _classCallCheck3.default)(this, SvgPath); - - if (!isSvgPath(d)) { - throw new Error('Not an SVG path!'); - } - - var path = normalize(abs(parse(d))); - - this[_path] = path; - - this[_bounds] = null; - this[_savedPaths] = []; - this[_renderProps] = {}; - this[_beginPath] = false; - } - - (0, _createClass3.default)(SvgPath, [{ - key: 'save', - value: function save() { - this[_savedPaths].push({ path: this[_path], - bounds: this[_bounds], - renderProps: (0, _assign2.default)({}, this[_renderProps]) }); - return this; - } - }, { - key: 'restore', - value: function restore() { - if (this[_savedPaths].length) { - var _savedPaths$pop = this[_savedPaths].pop(), - path = _savedPaths$pop.path, - bounds = _savedPaths$pop.bounds, - renderProps = _savedPaths$pop.renderProps; - - this[_path] = path; - this[_bounds] = bounds; - this[_renderProps] = renderProps; - } - return this; - } - }, { - key: 'isPointInPath', - value: function isPointInPath(x, y) { - return (0, _platform.isPointInPath)(this, x, y); - } - }, { - key: 'getPointAtLength', - value: function getPointAtLength(len) { - return (0, _platform.getPointAtLength)(this.d, len); - } - }, { - key: 'getTotalLength', - value: function getTotalLength() { - return (0, _platform.getTotalLength)(this.d); - } - }, { - key: 'transform', - value: function transform() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - this[_bounds] = null; - var m = new _spriteMath.Matrix(args); - var commands = this[_path]; - this[_path] = commands.map(function (c) { - var _c = (0, _toArray3.default)(c), - cmd = _c[0], - args = _c.slice(1); - - var transformed = [cmd]; - for (var i = 0; i < args.length; i += 2) { - var x0 = args[i], - y0 = args[i + 1]; - - var _m$transformPoint = m.transformPoint(x0, y0), - _m$transformPoint2 = (0, _slicedToArray3.default)(_m$transformPoint, 2), - x = _m$transformPoint2[0], - y = _m$transformPoint2[1]; - - transformed.push(x, y); - } - return transformed; - }); - return this; - } - }, { - key: 'translate', - value: function translate(x, y) { - var m = new _spriteMath.Matrix().translate(x, y); - return this.transform.apply(this, (0, _toConsumableArray3.default)(m.m)); - } - }, { - key: 'rotate', - value: function rotate(deg) { - var m = new _spriteMath.Matrix().rotate(deg); - return this.transform.apply(this, (0, _toConsumableArray3.default)(m.m)); - } - }, { - key: 'scale', - value: function scale(sx, sy) { - if (sy == null) sy = sx; - var m = new _spriteMath.Matrix().scale(sx, sy); - return this.transform.apply(this, (0, _toConsumableArray3.default)(m.m)); - } - }, { - key: 'skew', - value: function skew(degX, degY) { - var m = new _spriteMath.Matrix().skew(degX, degY); - return this.transform.apply(this, (0, _toConsumableArray3.default)(m.m)); - } - }, { - key: 'trim', - value: function trim() { - var _bounds2 = (0, _slicedToArray3.default)(this.bounds, 2), - x = _bounds2[0], - y = _bounds2[1]; - - this.translate(-x, -y); - return this; - } - }, { - key: 'beginPath', - value: function beginPath() { - this[_beginPath] = true; - return this; - } - }, { - key: 'to', - value: function to(context) { - var commands = this[_path]; - var renderProps = this[_renderProps]; - if (commands.length) { - if (this[_beginPath]) { - context.beginPath(); - } - commands.forEach(function (c) { - var _c2 = (0, _toArray3.default)(c), - cmd = _c2[0], - args = _c2.slice(1); - - if (cmd === 'M') { - context.moveTo.apply(context, (0, _toConsumableArray3.default)(args)); - } else { - context.bezierCurveTo.apply(context, (0, _toConsumableArray3.default)(args)); - } - }); - } - (0, _assign2.default)(context, renderProps); - return { - stroke: function stroke() { - context.stroke(); - return this; - }, - fill: function fill() { - context.fill(); - return this; - } - }; - } - }, { - key: 'strokeStyle', - value: function strokeStyle(value) { - this[_renderProps].strokeStyle = value; - return this; - } - }, { - key: 'fillStyle', - value: function fillStyle(value) { - this[_renderProps].fillStyle = value; - return this; - } - }, { - key: 'lineWidth', - value: function lineWidth(value) { - this[_renderProps].lineWidth = value; - return this; - } - }, { - key: 'lineCap', - value: function lineCap(value) { - this[_renderProps].lineCap = value; - return this; - } - }, { - key: 'lineJoin', - value: function lineJoin(value) { - this[_renderProps].lineJoin = value; - return this; - } - }, { - key: 'bounds', - get: function get() { - if (!this[_bounds]) { - var path = this[_path]; - this[_bounds] = [0, 0, 0, 0]; - if (path.length) { - var bounds = [Infinity, Infinity, -Infinity, -Infinity]; - - for (var i = 0, l = path.length; i < l; i++) { - var points = path[i].slice(1); - - for (var j = 0; j < points.length; j += 2) { - if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0]; - if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1]; - if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0]; - if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1]; - } - } - this[_bounds] = bounds; - } - } - return this[_bounds]; - } - }, { - key: 'size', - get: function get() { - var bounds = this.bounds; - return [bounds[2] - bounds[0], bounds[3] - bounds[1]]; - } - }, { - key: 'center', - get: function get() { - var _bounds3 = (0, _slicedToArray3.default)(this.bounds, 4), - x0 = _bounds3[0], - y0 = _bounds3[1], - x1 = _bounds3[2], - y1 = _bounds3[3]; - - return [(x0 + x1) / 2, (y0 + y1) / 2]; - } - }, { - key: 'd', - get: function get() { - return this[_path].map(function (p) { - var _p = (0, _toArray3.default)(p), - c = _p[0], - points = _p.slice(1); - - return c + points.join(); - }).join(''); - } - }, { - key: 'path', - get: function get() { - return this[_path]; - } - }]); - return SvgPath; -}(); - -exports.default = SvgPath; - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _from = __webpack_require__(100); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - return Array.isArray(arr) ? arr : (0, _from2.default)(arr); -}; - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Vector = exports.Matrix = undefined; - -var _matrix = __webpack_require__(149); - -var _matrix2 = _interopRequireDefault(_matrix); - -var _vector = __webpack_require__(150); - -var _vector2 = _interopRequireDefault(_vector); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -exports.Matrix = _matrix2.default; -exports.Vector = _vector2.default; - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// from https://github.com/chrisaljoudi/transformatrix.js -/** - default: - (1, 0, 0) - (0, 1, 0) - */ -var Matrix = function Matrix(m) { - m = m || [1, 0, 0, 1, 0, 0]; - this.m = [m[0], m[1], m[2], m[3], m[4], m[5]]; -}; - -Matrix.prototype.unit = function () { - this.m = [1, 0, 0, 1, 0, 0]; - return this; -}; - -Matrix.prototype.multiply = function (m) { - var m1 = this.m; - var m2 = void 0; - - if (m instanceof Matrix) { - m2 = m.m; - } else { - m2 = m; - } - - var m11 = m1[0] * m2[0] + m1[2] * m2[1], - m12 = m1[1] * m2[0] + m1[3] * m2[1], - m21 = m1[0] * m2[2] + m1[2] * m2[3], - m22 = m1[1] * m2[2] + m1[3] * m2[3]; - - var dx = m1[0] * m2[4] + m1[2] * m2[5] + m1[4], - dy = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; - - m1[0] = m11; - m1[1] = m12; - m1[2] = m21; - m1[3] = m22; - m1[4] = dx; - m1[5] = dy; - - return this; -}; - -Matrix.prototype.inverse = function () { - var inv = new Matrix(this.m), - invm = inv.m; - - var d = 1 / (invm[0] * invm[3] - invm[1] * invm[2]), - m0 = invm[3] * d, - m1 = -invm[1] * d, - m2 = -invm[2] * d, - m3 = invm[0] * d, - m4 = d * (invm[2] * invm[5] - invm[3] * invm[4]), - m5 = d * (invm[1] * invm[4] - invm[0] * invm[5]); - - invm[0] = m0; - invm[1] = m1; - invm[2] = m2; - invm[3] = m3; - invm[4] = m4; - invm[5] = m5; - - return inv; -}; - -/** - (1, 0, sx) - (0, 1, sy) - * */ -Matrix.prototype.translate = function (x, y) { - return this.multiply([1, 0, 0, 1, x, y]); -}; - -/** - (cos, -sin, 0) - (sin, cos, 0) - */ -Matrix.prototype.rotate = function (deg) { - var rad = deg * Math.PI / 180, - c = Math.cos(rad), - s = Math.sin(rad); - - return this.multiply([c, s, -s, c, 0, 0]); -}; - -/** - (1, tx, 0) - (ty, 1, 0) - */ -Matrix.prototype.skew = function (degX, degY) { - degY |= 0; - var radX = degX * Math.PI / 180, - radY = degY * Math.PI / 180; - var tx = Math.tan(radX), - ty = Math.tan(radY); - - return this.multiply([1, ty, tx, 1, 0, 0]); -}; - -/** - (sx, 0, 0) - (0, sy, 0) - */ -Matrix.prototype.scale = function (sx, sy) { - return this.multiply([sx, 0, 0, sy, 0, 0]); -}; - -Matrix.prototype.transformPoint = function (px, py) { - var x = px, - y = py; - px = x * this.m[0] + y * this.m[2] + this.m[4]; - py = x * this.m[1] + y * this.m[3] + this.m[5]; - - return [px, py]; -}; - -Matrix.prototype.transformVector = function (px, py) { - var x = px, - y = py; - px = x * this.m[0] + y * this.m[2]; - py = x * this.m[1] + y * this.m[3]; - - return [px, py]; -}; - -exports.default = Matrix; - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -var Vector = function () { - function Vector(p1) { - var p2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0]; - (0, _classCallCheck3.default)(this, Vector); - - var _p = (0, _slicedToArray3.default)(p1, 3), - x1 = _p[0], - y1 = _p[1], - z1 = _p[2], - _p2 = (0, _slicedToArray3.default)(p2, 3), - x2 = _p2[0], - y2 = _p2[1], - z2 = _p2[2]; - - z1 = z1 || 0; - z2 = z2 || 0; - - this.x = x1 - x2; - this.y = y1 - y2; - this.z = z1 - z2; - } - - (0, _createClass3.default)(Vector, [{ - key: "unit", - value: function unit() { - var length = this.length; - return new Vector([this.x / length, this.y / length, this.z / length]); - } - }, { - key: "dot", - value: function dot(v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - } - }, { - key: "cross", - value: function cross(v) { - var x1 = this.x, - y1 = this.y, - z1 = this.z, - x2 = v.x, - y2 = v.y, - z2 = v.z; - - return new Vector([y1 * z2 - z1 * y2, z1 * x2 - x1 * z2, x1 * y2 - x2 * y1]); - } - }, { - key: "length", - get: function get() { - var x = this.x, - y = this.y, - z = this.z; - - return Math.sqrt(x * x + y * y + z * z); - } - }]); - return Vector; -}(); - -exports.default = Vector; - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getPointAtLength = getPointAtLength; -exports.getTotalLength = getTotalLength; -exports.isPointInPath = isPointInPath; -function createSvgPath(d) { - var path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - path.setAttribute('d', d); - return path; -} - -function getPointAtLength(d, len) { - var path = createSvgPath(d); - - var _path$getPointAtLengt = path.getPointAtLength(len), - x = _path$getPointAtLengt.x, - y = _path$getPointAtLengt.y; - - return [x, y]; -} - -function getTotalLength(d, len) { - var path = createSvgPath(d); - return path.getTotalLength(len); -} - -function isPointInPath(_ref, x, y) { - var d = _ref.d; - - var path = new Path2D(d); - var context = document.createElement('canvas').getContext('2d'); - return context.isPointInPath(path, x, y); -} - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// https://github.com/jkroso/parse-svg-path - -module.exports = parse; - -/** - * expected argument lengths - * @type {Object} - */ -/* eslint-disable */ -var length = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 - - /** - * segment pattern - * @type {RegExp} - */ - -};var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig; - -/** - * parse an svg path data string. Generates an Array - * of commands where each command is an Array of the - * form `[command, arg1, arg2, ...]` - * - * @param {String} path - * @return {Array} - */ - -function parse(path) { - var data = []; - path.replace(segment, function (_, command, args) { - var type = command.toLowerCase(); - args = parseValues(args); - - // overloaded moveTo - if (type == 'm' && args.length > 2) { - data.push([command].concat(args.splice(0, 2))); - type = 'l'; - command = command == 'm' ? 'l' : 'L'; - } - - while (true) { - if (args.length == length[type]) { - args.unshift(command); - return data.push(args); - } - if (args.length < length[type]) throw new Error('malformed path data'); - data.push([command].concat(args.splice(0, length[type]))); - } - }); - return data; -} - -var number = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig; - -function parseValues(args) { - var numbers = args.match(number); - return numbers ? numbers.map(Number) : []; -} -/* eslint-enable */ - -/***/ }), -/* 153 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// https://github.com/jkroso/abs-svg-path - -module.exports = absolutize; - -/** - * redefine `path` with absolute coordinates - * - * @param {Array} path - * @return {Array} - */ - -/* eslint-disable */ -function absolutize(path) { - var startX = 0; - var startY = 0; - var x = 0; - var y = 0; - - return path.map(function (seg) { - seg = seg.slice(); - var type = seg[0]; - var command = type.toUpperCase(); - - // is relative - if (type != command) { - seg[0] = command; - switch (type) { - case 'a': - seg[6] += x; - seg[7] += y; - break; - case 'v': - seg[1] += y; - break; - case 'h': - seg[1] += x; - break; - default: - for (var i = 1; i < seg.length;) { - seg[i++] += x; - seg[i++] += y; - } - } - } - - // update cursor state - switch (command) { - case 'Z': - x = startX; - y = startY; - break; - case 'H': - x = seg[1]; - break; - case 'V': - y = seg[1]; - break; - case 'M': - x = startX = seg[1]; - y = startY = seg[2]; - break; - default: - x = seg[seg.length - 2]; - y = seg[seg.length - 1]; - } - - return seg; - }); -} -/* eslint-enable */ - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -// https://github.com/jkroso/normalize-svg-path - -module.exports = normalize; - -var a2c = __webpack_require__(155); - -/* eslint-disable */ -function normalize(path) { - // init state - var prev; - var result = []; - var bezierX = 0; - var bezierY = 0; - var startX = 0; - var startY = 0; - var quadX = null; - var quadY = null; - var x = 0; - var y = 0; - - for (var i = 0, len = path.length; i < len; i++) { - var seg = path[i]; - var command = seg[0]; - - switch (command) { - case 'M': - startX = seg[1]; - startY = seg[2]; - break; - case 'A': - var curves = a2c(x, y, seg[6], seg[7], seg[4], seg[5], seg[1], seg[2], seg[3]); - - if (!curves.length) continue; - - curves = curves.map(function (curve) { - var _curve = (0, _slicedToArray3.default)(curve, 8), - x0 = _curve[0], - y0 = _curve[1], - x1 = _curve[2], - y1 = _curve[3], - x2 = _curve[4], - y2 = _curve[5], - x = _curve[6], - y = _curve[7]; - - return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y }; - }); - - for (var j = 0, c; j < curves.length; j++) { - c = curves[j]; - seg = ['C', c.x1, c.y1, c.x2, c.y2, c.x, c.y]; - if (j < curves.length - 1) result.push(seg); - } - - break; - case 'S': - // default control point - var cx = x; - var cy = y; - if (prev == 'C' || prev == 'S') { - cx += cx - bezierX; // reflect the previous command's control - cy += cy - bezierY; // point relative to the current point - } - seg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]; - break; - case 'T': - if (prev == 'Q' || prev == 'T') { - quadX = x * 2 - quadX; // as with 'S' reflect previous control point - quadY = y * 2 - quadY; - } else { - quadX = x; - quadY = y; - } - seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]); - break; - case 'Q': - quadX = seg[1]; - quadY = seg[2]; - seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]); - break; - case 'L': - seg = line(x, y, seg[1], seg[2]); - break; - case 'H': - seg = line(x, y, seg[1], y); - break; - case 'V': - seg = line(x, y, x, seg[1]); - break; - case 'Z': - seg = line(x, y, startX, startY); - break; - } - - // update state - prev = command; - x = seg[seg.length - 2]; - y = seg[seg.length - 1]; - if (seg.length > 4) { - bezierX = seg[seg.length - 4]; - bezierY = seg[seg.length - 3]; - } else { - bezierX = x; - bezierY = y; - } - result.push(seg); - } - - return result; -} - -function line(x1, y1, x2, y2) { - return ['C', x1, y1, x2, y2, x2, y2]; -} - -function quadratic(x1, y1, cx, cy, x2, y2) { - return ['C', x1 / 3 + 2 / 3 * cx, y1 / 3 + 2 / 3 * cy, x2 / 3 + 2 / 3 * cx, y2 / 3 + 2 / 3 * cy, x2, y2]; -} -/* eslint-enable */ - -/***/ }), -/* 155 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// https://github.com/colinmeinke/svg-arc-to-cubic-bezier -// -// Convert an arc to a sequence of cubic bézier curves -// - - -var TAU = Math.PI * 2; - -/* eslint-disable space-infix-ops */ - -// Calculate an angle between two unit vectors -// -// Since we measure angle between radii of circular arcs, -// we can use simplified math (without length normalization) -// -function unit_vector_angle(ux, uy, vx, vy) { - var sign = ux * vy - uy * vx < 0 ? -1 : 1; - var dot = ux * vx + uy * vy; - - // Add this to work with arbitrary vectors: - // dot /= Math.sqrt(ux * ux + uy * uy) * Math.sqrt(vx * vx + vy * vy); - - // rounding errors, e.g. -1.0000000000000002 can screw up this - if (dot > 1.0) { - dot = 1.0; - } - if (dot < -1.0) { - dot = -1.0; - } - - return sign * Math.acos(dot); -} - -// Convert from endpoint to center parameterization, -// see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes -// -// Return [cx, cy, theta1, delta_theta] -// -function get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi) { - // Step 1. - // - // Moving an ellipse so origin will be the middlepoint between our two - // points. After that, rotate it to line up ellipse axes with coordinate - // axes. - // - var x1p = cos_phi * (x1 - x2) / 2 + sin_phi * (y1 - y2) / 2; - var y1p = -sin_phi * (x1 - x2) / 2 + cos_phi * (y1 - y2) / 2; - - var rx_sq = rx * rx; - var ry_sq = ry * ry; - var x1p_sq = x1p * x1p; - var y1p_sq = y1p * y1p; - - // Step 2. - // - // Compute coordinates of the centre of this ellipse (cx', cy') - // in the new coordinate system. - // - var radicant = rx_sq * ry_sq - rx_sq * y1p_sq - ry_sq * x1p_sq; - - if (radicant < 0) { - // due to rounding errors it might be e.g. -1.3877787807814457e-17 - radicant = 0; - } - - radicant /= rx_sq * y1p_sq + ry_sq * x1p_sq; - radicant = Math.sqrt(radicant) * (fa === fs ? -1 : 1); - - var cxp = radicant * rx / ry * y1p; - var cyp = radicant * -ry / rx * x1p; - - // Step 3. - // - // Transform back to get centre coordinates (cx, cy) in the original - // coordinate system. - // - var cx = cos_phi * cxp - sin_phi * cyp + (x1 + x2) / 2; - var cy = sin_phi * cxp + cos_phi * cyp + (y1 + y2) / 2; - - // Step 4. - // - // Compute angles (theta1, delta_theta). - // - var v1x = (x1p - cxp) / rx; - var v1y = (y1p - cyp) / ry; - var v2x = (-x1p - cxp) / rx; - var v2y = (-y1p - cyp) / ry; - - var theta1 = unit_vector_angle(1, 0, v1x, v1y); - var delta_theta = unit_vector_angle(v1x, v1y, v2x, v2y); - - if (fs === 0 && delta_theta > 0) { - delta_theta -= TAU; - } - if (fs === 1 && delta_theta < 0) { - delta_theta += TAU; - } - - return [cx, cy, theta1, delta_theta]; -} - -// -// Approximate one unit arc segment with bézier curves, -// see http://math.stackexchange.com/questions/873224 -// -function approximate_unit_arc(theta1, delta_theta) { - var alpha = 4 / 3 * Math.tan(delta_theta / 4); - - var x1 = Math.cos(theta1); - var y1 = Math.sin(theta1); - var x2 = Math.cos(theta1 + delta_theta); - var y2 = Math.sin(theta1 + delta_theta); - - return [x1, y1, x1 - y1 * alpha, y1 + x1 * alpha, x2 + y2 * alpha, y2 - x2 * alpha, x2, y2]; -} - -module.exports = function a2c(x1, y1, x2, y2, fa, fs, rx, ry, phi) { - var sin_phi = Math.sin(phi * TAU / 360); - var cos_phi = Math.cos(phi * TAU / 360); - - // Make sure radii are valid - // - var x1p = cos_phi * (x1 - x2) / 2 + sin_phi * (y1 - y2) / 2; - var y1p = -sin_phi * (x1 - x2) / 2 + cos_phi * (y1 - y2) / 2; - - if (x1p === 0 && y1p === 0) { - // we're asked to draw line to itself - return []; - } - - if (rx === 0 || ry === 0) { - // one of the radii is zero - return []; - } - - // Compensate out-of-range radii - // - rx = Math.abs(rx); - ry = Math.abs(ry); - - var lambda = x1p * x1p / (rx * rx) + y1p * y1p / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - - // Get center parameters (cx, cy, theta1, delta_theta) - // - var cc = get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi); - - var result = []; - var theta1 = cc[2]; - var delta_theta = cc[3]; - - // Split an arc to multiple segments, so each segment - // will be less than τ/4 (= 90°) - // - var segments = Math.max(Math.ceil(Math.abs(delta_theta) / (TAU / 4)), 1); - delta_theta /= segments; - - for (var i = 0; i < segments; i++) { - result.push(approximate_unit_arc(theta1, delta_theta)); - theta1 += delta_theta; - } - - // We have a bezier approximation of a unit circle, - // now need to transform back to the original ellipse - // - return result.map(function (curve) { - for (var _i = 0; _i < curve.length; _i += 2) { - var x = curve[_i + 0]; - var y = curve[_i + 1]; - - // scale - x *= rx; - y *= ry; - - // rotate - var xp = cos_phi * x - sin_phi * y; - var yp = sin_phi * x + cos_phi * y; - - // translate - curve[_i + 0] = xp + cc[0]; - curve[_i + 1] = yp + cc[1]; - } - - return curve; - }); -}; - -/***/ }), -/* 156 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// https://github.com/dy/is-svg-path - -module.exports = function isPath(str) { - if (typeof str !== 'string') return false; - - str = str.trim(); - - // https://www.w3.org/TR/SVG/paths.html#PathDataBNF - if (/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(str) && /[\dz]$/i.test(str) && str.length > 4) return true; - - return false; -}; - -/***/ }), -/* 157 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.generateID = exports.sortOrderedSprites = exports.setDeprecation = exports.rectVertices = exports.rectToBox = exports.parseValue = exports.parseStringTransform = exports.parseStringInt = exports.parseStringFloat = exports.praseString = exports.parseColorString = exports.parseColor = exports.inheritAttributes = exports.inherit = exports.relative = exports.absolute = exports.oneOrTwoValues = exports.notice = exports.fourValuesShortCut = exports.flow = exports.deprecate = exports.Color = exports.boxUnion = exports.boxToRect = exports.boxIntersect = exports.boxEqual = exports.attr = exports.appendUnit = exports.cacheContextPool = exports.findColor = exports.cachable = undefined; - -var _utils = __webpack_require__(158); - -var _decorators = __webpack_require__(172); - -var _render = __webpack_require__(173); - -exports.cachable = _decorators.cachable; -exports.findColor = _render.findColor; -exports.cacheContextPool = _render.cacheContextPool; -exports.appendUnit = _utils.appendUnit; -exports.attr = _decorators.attr; -exports.boxEqual = _utils.boxEqual; -exports.boxIntersect = _utils.boxIntersect; -exports.boxToRect = _utils.boxToRect; -exports.boxUnion = _utils.boxUnion; -exports.Color = _utils.Color; -exports.deprecate = _decorators.deprecate; -exports.flow = _decorators.flow; -exports.fourValuesShortCut = _utils.fourValuesShortCut; -exports.notice = _utils.notice; -exports.oneOrTwoValues = _utils.oneOrTwoValues; -exports.absolute = _decorators.absolute; -exports.relative = _decorators.relative; -exports.inherit = _decorators.inherit; -exports.inheritAttributes = _decorators.inheritAttributes; -exports.parseColor = _utils.parseColor; -exports.parseColorString = _utils.parseColorString; -exports.praseString = _utils.praseString; -exports.parseStringFloat = _utils.parseStringFloat; -exports.parseStringInt = _utils.parseStringInt; -exports.parseStringTransform = _utils.parseStringTransform; -exports.parseValue = _decorators.parseValue; -exports.rectToBox = _utils.rectToBox; -exports.rectVertices = _utils.rectVertices; -exports.setDeprecation = _decorators.setDeprecation; -exports.sortOrderedSprites = _utils.sortOrderedSprites; -exports.generateID = _utils.generateID; - -/***/ }), -/* 158 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.generateID = exports.sortOrderedSprites = exports.rectVertices = exports.rectToBox = exports.parseStringTransform = exports.parseStringInt = exports.parseStringFloat = exports.praseString = exports.parseColorString = exports.parseColor = exports.oneOrTwoValues = exports.notice = exports.fourValuesShortCut = exports.boxUnion = exports.boxToRect = exports.boxIntersect = exports.boxEqual = exports.appendUnit = exports.Color = undefined; - -var _weakMap = __webpack_require__(60); - -var _weakMap2 = _interopRequireDefault(_weakMap); - -var _set = __webpack_require__(159); - -var _set2 = _interopRequireDefault(_set); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _isNan = __webpack_require__(165); - -var _isNan2 = _interopRequireDefault(_isNan); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var colorString = __webpack_require__(168); - -var Color = function () { - function Color(color) { - (0, _classCallCheck3.default)(this, Color); - - if (typeof color === 'string') { - var _colorString$get = colorString.get(color || 'rgba(0,0,0,1)'), - model = _colorString$get.model, - value = _colorString$get.value; - - this.model = model; - this.value = value; - } else { - this.model = color.model; - this.value = color.value; - } - } - - (0, _createClass3.default)(Color, [{ - key: 'toString', - value: function toString() { - var _value = (0, _slicedToArray3.default)(this.value, 4), - a = _value[0], - b = _value[1], - c = _value[2], - d = _value[3]; - - var model = this.model; - - if (model === 'rgb') { - return model + 'a(' + a + ',' + b + ',' + c + ',' + d + ')'; - } - return model + 'a(' + a + ',' + b + '%,' + c + '%,' + d + ')'; - } - }, { - key: 'str', - get: function get() { - return String(this); - } - }]); - return Color; -}(); - -exports.Color = Color; - - -var parseColor = function parseColor(color) { - return new Color(color); -}; - -function parseColorString(color) { - if (color && typeof color === 'string' && color !== 'inherit') { - return parseColor(color).toString(); - } - return color; -} - -function parseStringTransform(str) { - if (typeof str !== 'string') return str; - - var rules = str.match(/(?:^|\s)+((?:scale|rotate|translate|skew|matrix)\([^()]+\))/g); - var ret = {}; - if (rules) { - rules.forEach(function (rule) { - var matched = rule.match(/(scale|rotate|translate|skew|matrix)\(([^()]+)\)/); - - var _matched = (0, _slicedToArray3.default)(matched, 3), - m = _matched[1], - v = _matched[2]; - - if (m === 'rotate') { - ret[m] = parseStringFloat(v)[0]; - } else { - ret[m] = parseStringFloat(v); - } - }); - } - - return ret; -} - -function parseValuesString(str, parser) { - if (typeof str === 'string' && str !== '' && str !== 'inherit') { - var values = str.split(/[\s,]+/g); - return values.map(function (v) { - var ret = parser ? parser(v) : v; - return (0, _isNan2.default)(ret) ? v : ret; - }); - } - return str; -} - -function praseString(str) { - return parseValuesString(str); -} - -function parseStringInt(str) { - return parseValuesString(str, parseInt); -} - -function parseStringFloat(str) { - return parseValuesString(str, function (v) { - if (v === 'center') return 0.5; - if (v === 'left' || v === 'top') return 0; - if (v === 'right' || v === 'bottom') return 1; - return parseFloat(v); - }); -} - -function oneOrTwoValues(val) { - if (!Array.isArray(val)) { - return [val, val]; - }if (val.length === 1) { - return [val[0], val[0]]; - } - return val; -} - -function fourValuesShortCut(val) { - if (!Array.isArray(val)) { - return [val, val, val, val]; - }if (val.length === 1) { - return [val[0], val[0], val[0], val[0]]; - }if (val.length === 2) { - return [val[0], val[1], val[0], val[1]]; - } - return [].concat((0, _toConsumableArray3.default)(val), [0, 0, 0, 0]).slice(0, 4); -} - -function boxIntersect(box1, box2) { - // left, top, right, buttom - var _ref = [box1[0], box1[1], box1[2], box1[3]], - l1 = _ref[0], - t1 = _ref[1], - r1 = _ref[2], - b1 = _ref[3], - _ref2 = [box2[0], box2[1], box2[2], box2[3]], - l2 = _ref2[0], - t2 = _ref2[1], - r2 = _ref2[2], - b2 = _ref2[3]; - - - var t = Math.max(t1, t2), - r = Math.min(r1, r2), - b = Math.min(b1, b2), - l = Math.max(l1, l2); - - if (b >= t && r >= l) { - return [l, t, r, b]; - } - return null; -} - -function boxToRect(box) { - return [box[0], box[1], box[2] - box[0], box[3] - box[1]]; -} - -function boxEqual(box1, box2) { - return box1[0] === box2[0] && box1[1] === box2[1] && box1[2] === box2[2] && box1[3] === box2[3]; -} - -function rectToBox(rect) { - return [rect[0], rect[1], rect[0] + rect[2], rect[1] + rect[3]]; -} - -function rectVertices(rect) { - var _rectToBox = rectToBox(rect), - _rectToBox2 = (0, _slicedToArray3.default)(_rectToBox, 4), - x1 = _rectToBox2[0], - y1 = _rectToBox2[1], - x2 = _rectToBox2[2], - y2 = _rectToBox2[3]; - - return [[x1, y1], [x2, y1], [x2, y2], [x1, y2]]; -} - -function boxUnion(box1, box2) { - if (!box1) return box2; - if (!box2) return box1; - - return [Math.min(box1[0], box2[0]), Math.min(box1[1], box2[1]), Math.max(box1[2], box2[2]), Math.max(box1[3], box2[3])]; -} - -function appendUnit(value) { - var defaultUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px'; - - if (value === '') { - return value; - } - if (typeof value === 'string' && (0, _isNan2.default)(Number(value))) { - return value; - } - return value + defaultUnit; -} - -function sortOrderedSprites(sprites) { - var reversed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - return [].concat((0, _toConsumableArray3.default)(sprites)).sort(function (a, b) { - if (reversed) { - ; - var _ref3 = [b, a]; - a = _ref3[0]; - b = _ref3[1]; - }if (a.zIndex === b.zIndex) { - return a.zOrder - b.zOrder; - } - return a.zIndex - b.zIndex; - }); -} - -var noticed = new _set2.default(); -function notice(msg) { - var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'warn'; - - if (typeof console !== 'undefined' && !noticed.has(msg)) { - console[level](msg); // eslint-disable-line no-console - noticed.add(msg); - } -} - -var IDMap = new _weakMap2.default(); -function generateID(obj) { - if (IDMap.has(obj)) { - return IDMap.get(obj); - } - var id = Math.random().toString(36).slice(2); - IDMap.set(obj, id); - return id; -} - -exports.appendUnit = appendUnit; -exports.boxEqual = boxEqual; -exports.boxIntersect = boxIntersect; -exports.boxToRect = boxToRect; -exports.boxUnion = boxUnion; -exports.fourValuesShortCut = fourValuesShortCut; -exports.notice = notice; -exports.oneOrTwoValues = oneOrTwoValues; -exports.parseColor = parseColor; -exports.parseColorString = parseColorString; -exports.praseString = praseString; -exports.parseStringFloat = parseStringFloat; -exports.parseStringInt = parseStringInt; -exports.parseStringTransform = parseStringTransform; -exports.rectToBox = rectToBox; -exports.rectVertices = rectVertices; -exports.sortOrderedSprites = sortOrderedSprites; -exports.generateID = generateID; - -/***/ }), -/* 159 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(160), __esModule: true }; - -/***/ }), -/* 160 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(57); -__webpack_require__(93); -__webpack_require__(62); -__webpack_require__(161); -__webpack_require__(162); -__webpack_require__(163); -__webpack_require__(164); -module.exports = __webpack_require__(7).Set; - - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(108); -var validate = __webpack_require__(82); -var SET = 'Set'; - -// 23.2 Set Objects -module.exports = __webpack_require__(83)(SET, function (get) { - return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); - } -}, strong); - - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/DavidBruant/Map-Set.prototype.toJSON -var $export = __webpack_require__(5); - -$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(111)('Set') }); - - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of -__webpack_require__(85)('Set'); - - -/***/ }), -/* 164 */ -/***/ (function(module, exports, __webpack_require__) { - -// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from -__webpack_require__(87)('Set'); - - -/***/ }), -/* 165 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(166), __esModule: true }; - -/***/ }), -/* 166 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(167); -module.exports = __webpack_require__(7).Number.isNaN; - - -/***/ }), -/* 167 */ -/***/ (function(module, exports, __webpack_require__) { - -// 20.1.2.4 Number.isNaN(number) -var $export = __webpack_require__(5); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } -}); - - -/***/ }), -/* 168 */ -/***/ (function(module, exports, __webpack_require__) { - -/* MIT license */ -var colorNames = __webpack_require__(169); -var swizzle = __webpack_require__(170); - -var reverseNames = {}; - -// create a list of reverse color names -for (var name in colorNames) { - if (colorNames.hasOwnProperty(name)) { - reverseNames[colorNames[name]] = name; - } -} - -var cs = module.exports = { - to: {}, - get: {} -}; - -cs.get = function (string) { - var prefix = string.substring(0, 3).toLowerCase(); - var val; - var model; - switch (prefix) { - case 'hsl': - val = cs.get.hsl(string); - model = 'hsl'; - break; - case 'hwb': - val = cs.get.hwb(string); - model = 'hwb'; - break; - default: - val = cs.get.rgb(string); - model = 'rgb'; - break; - } - - if (!val) { - return null; - } - - return {model: model, value: val}; -}; - -cs.get.rgb = function (string) { - if (!string) { - return null; - } - - var abbr = /^#([a-f0-9]{3,4})$/i; - var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; - var rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; - var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; - var keyword = /(\D+)/; - - var rgb = [0, 0, 0, 1]; - var match; - var i; - var hexAlpha; - - if (match = string.match(hex)) { - hexAlpha = match[2]; - match = match[1]; - - for (i = 0; i < 3; i++) { - // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 - var i2 = i * 2; - rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); - } - - if (hexAlpha) { - rgb[3] = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100; - } - } else if (match = string.match(abbr)) { - match = match[1]; - hexAlpha = match[3]; - - for (i = 0; i < 3; i++) { - rgb[i] = parseInt(match[i] + match[i], 16); - } - - if (hexAlpha) { - rgb[3] = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100; - } - } else if (match = string.match(rgba)) { - for (i = 0; i < 3; i++) { - rgb[i] = parseInt(match[i + 1], 0); - } - - if (match[4]) { - rgb[3] = parseFloat(match[4]); - } - } else if (match = string.match(per)) { - for (i = 0; i < 3; i++) { - rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); - } - - if (match[4]) { - rgb[3] = parseFloat(match[4]); - } - } else if (match = string.match(keyword)) { - if (match[1] === 'transparent') { - return [0, 0, 0, 0]; - } - - rgb = colorNames[match[1]]; - - if (!rgb) { - return null; - } - - rgb[3] = 1; - - return rgb; - } else { - return null; - } - - for (i = 0; i < 3; i++) { - rgb[i] = clamp(rgb[i], 0, 255); - } - rgb[3] = clamp(rgb[3], 0, 1); - - return rgb; -}; - -cs.get.hsl = function (string) { - if (!string) { - return null; - } - - var hsl = /^hsla?\(\s*([+-]?(?:\d*\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; - var match = string.match(hsl); - - if (match) { - var alpha = parseFloat(match[4]); - var h = (parseFloat(match[1]) + 360) % 360; - var s = clamp(parseFloat(match[2]), 0, 100); - var l = clamp(parseFloat(match[3]), 0, 100); - var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); - - return [h, s, l, a]; - } - - return null; -}; - -cs.get.hwb = function (string) { - if (!string) { - return null; - } - - var hwb = /^hwb\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; - var match = string.match(hwb); - - if (match) { - var alpha = parseFloat(match[4]); - var h = ((parseFloat(match[1]) % 360) + 360) % 360; - var w = clamp(parseFloat(match[2]), 0, 100); - var b = clamp(parseFloat(match[3]), 0, 100); - var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); - return [h, w, b, a]; - } - - return null; -}; - -cs.to.hex = function () { - var rgba = swizzle(arguments); - - return ( - '#' + - hexDouble(rgba[0]) + - hexDouble(rgba[1]) + - hexDouble(rgba[2]) + - (rgba[3] < 1 - ? (hexDouble(Math.round(rgba[3] * 255))) - : '') - ); -}; - -cs.to.rgb = function () { - var rgba = swizzle(arguments); - - return rgba.length < 4 || rgba[3] === 1 - ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')' - : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')'; -}; - -cs.to.rgb.percent = function () { - var rgba = swizzle(arguments); - - var r = Math.round(rgba[0] / 255 * 100); - var g = Math.round(rgba[1] / 255 * 100); - var b = Math.round(rgba[2] / 255 * 100); - - return rgba.length < 4 || rgba[3] === 1 - ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)' - : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')'; -}; - -cs.to.hsl = function () { - var hsla = swizzle(arguments); - return hsla.length < 4 || hsla[3] === 1 - ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)' - : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')'; -}; - -// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax -// (hwb have alpha optional & 1 is default value) -cs.to.hwb = function () { - var hwba = swizzle(arguments); - - var a = ''; - if (hwba.length >= 4 && hwba[3] !== 1) { - a = ', ' + hwba[3]; - } - - return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')'; -}; - -cs.to.keyword = function (rgb) { - return reverseNames[rgb.slice(0, 3)]; -}; - -// helpers -function clamp(num, min, max) { - return Math.min(Math.max(min, num), max); -} - -function hexDouble(num) { - var str = num.toString(16).toUpperCase(); - return (str.length < 2) ? '0' + str : str; -} - - -/***/ }), -/* 169 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; - - -/***/ }), -/* 170 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isArrayish = __webpack_require__(171); - -var concat = Array.prototype.concat; -var slice = Array.prototype.slice; - -var swizzle = module.exports = function swizzle(args) { - var results = []; - - for (var i = 0, len = args.length; i < len; i++) { - var arg = args[i]; - - if (isArrayish(arg)) { - // http://jsperf.com/javascript-array-concat-vs-push/98 - results = concat.call(results, slice.call(arg)); - } else { - results.push(arg); - } - } - - return results; -}; - -swizzle.wrap = function (fn) { - return function () { - return fn(swizzle(arguments)); - }; -}; - - -/***/ }), -/* 171 */ -/***/ (function(module, exports) { - -module.exports = function isArrayish(obj) { - if (!obj || typeof obj === 'string') { - return false; - } - - return obj instanceof Array || Array.isArray(obj) || - (obj.length >= 0 && (obj.splice instanceof Function || - (Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String'))); -}; - - -/***/ }), -/* 172 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.inheritAttributes = undefined; - -var _set = __webpack_require__(159); - -var _set2 = _interopRequireDefault(_set); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -exports.attr = attr; -exports.cachable = cachable; -exports.inherit = inherit; -exports.relative = relative; -exports.flow = flow; -exports.absolute = absolute; -exports.setDeprecation = setDeprecation; -exports.deprecate = deprecate; -exports.parseValue = parseValue; - -var _utils = __webpack_require__(158); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _attrAbsolute = (0, _symbol2.default)('attrAbsolute'); - -function attr(target, prop, descriptor) { - if (!target.hasOwnProperty('__attributeNames')) { - // eslint-disable-line no-prototype-builtins - target.__attributeNames = new _set2.default(target.__attributeNames); - } - target.__attributeNames.add(prop); - var _getter = descriptor.get; - if (!_getter) { - _getter = function _getter() { - return this.get(prop); - }; - } - if (!descriptor.__relative && !descriptor.__inherit) { - descriptor.get = function () { - var ret = _getter.call(this); - if (ret == null) { - ret = this.get(prop); - } - return ret; - }; - } else if (descriptor.__relative) { - // enable set default to user defined getter - descriptor.get = function () { - var ret = _getter.call(this); - var subject = this.subject; - - if (ret == null) { - ret = this.get(prop); - } else if (ret.relative) { - var _relative = ret.relative.trim(); - if (_relative === 'pw' || _relative === 'ph') { - var parent = subject.parent; - var pv = null; - - if (parent) { - var attrSize = parent.attrSize; - if (attrSize) { - var attrV = _relative === 'pw' ? attrSize[0] : attrSize[1]; - while (attrSize && attrV === '') { - // flexible value - parent = parent.parent; - attrSize = parent.attrSize; - } - } - if (_relative === 'pw') { - pv = attrSize ? parent.contentSize[0] : parent.resolution[0]; - } else if (_relative === 'ph') { - pv = attrSize ? parent.contentSize[1] : parent.resolution[1]; - } - } - if (pv !== ret.pv) { - this[prop] = ret.rv; - return this[prop]; - } - subject.cache = null; - if (subject[_attrAbsolute]) { - return pv * ret.v; - } - return ret.rv; - } - if (_relative === 'rw' || _relative === 'rh') { - var layer = subject.layer; - var _pv = null; - if (layer) { - if (_relative === 'rw') { - _pv = layer.resolution[0]; - } else if (_relative === 'rh') { - _pv = layer.resolution[1]; - } - } - if (_pv !== ret.pv) { - this[prop] = ret.rv; - return this[prop]; - } - subject.cache = null; - if (subject[_attrAbsolute]) { - return _pv * ret.v; - } - return ret.rv; - } - } - return ret; - }; - } else { - // enable set default to user defined getter - descriptor.get = function () { - var ret = _getter.call(this); - var subject = this.subject; - - if (ret == null) { - ret = this.get(prop); - } else if (ret === 'inherit') { - var value = null; - var parent = subject.parent; - while (parent && parent.attr) { - value = parent.attr(prop); - if (value != null) break; - parent = parent.parent; - } - return value != null ? value : this.__inheritDefaults[prop]; - // return this.__inheritDefaults[prop]; - } - return ret; - }; - } - - var _setter = descriptor.set; - var _clearCache = !descriptor.__cachable; - - descriptor.set = function (val) { - var subject = this.subject; - this.__updateTag = false; - this.__reflowTag = false; - _setter.call(this, val); - if (subject && subject.hasLayout) { - var offsetSize = subject.boxOffsetSize, - layoutSize = subject.__lastLayout; - - if (!layoutSize || offsetSize[0] !== layoutSize[0] || offsetSize[1] !== layoutSize[1]) { - subject.parent.clearLayout(); - } - subject.__lastLayout = offsetSize; - } - if (this.subject && this.__updateTag) { - subject.forceUpdate(_clearCache); - if (this.__reflowTag) { - subject.reflow(); - } - } - // delete this.__reflowTag; - // delete this.__updateTag; - }; - return descriptor; -} - -// after attr -function cachable(target, prop, descriptor) { - descriptor.__cachable = true; - return descriptor; -} - -var inheritAttributes = exports.inheritAttributes = new _set2.default(); - -// after attr -function inherit() { - var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - - return function (target, prop, descriptor) { - target.__inheritDefaults = target.__inheritDefaults || {}; - target.__inheritDefaults[prop] = defaultValue; - descriptor.__inherit = true; - inheritAttributes.add(prop); - return descriptor; - }; -} - -// after attr -// relative -> width | height -function relative() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'width'; - - return function (target, prop, descriptor) { - if (descriptor.set) { - var setter = descriptor.set; - descriptor.__relative = true; - - descriptor.set = function (val) { - if (typeof val === 'string') { - val = val.trim(); - if (val.slice(-1) === '%') { - var parent = this.subject.parent; - var pv = null; - if (parent) { - var attrSize = parent.attrSize; - if (attrSize) { - var attrV = relative === 'pw' ? attrSize[0] : attrSize[1]; - while (attrSize && attrV === '') { - // flexible value - parent = parent.parent; - attrSize = parent.attrSize; - } - } - if (type === 'width') { - pv = attrSize ? parent.contentSize[0] : parent.resolution[0]; - } else if (type === 'height') { - pv = attrSize ? parent.contentSize[1] : parent.resolution[1]; - } - } - val = { - relative: type === 'width' ? 'pw' : 'ph', - pv: pv, - v: parseFloat(val) / 100, - rv: val - }; - } else if (val.slice(-2) === 'rw') { - var layer = this.subject.layer; - var _pv2 = null; - if (layer) { - _pv2 = layer.resolution[0]; - } - val = { - relative: 'rw', - pv: _pv2, - v: parseFloat(val) / 100, - rv: val - }; - } else if (val.slice(-2) === 'rh') { - var _layer = this.subject.layer; - var _pv3 = null; - if (_layer) { - _pv3 = _layer.resolution[1]; - } - val = { - relative: 'rh', - pv: _pv3, - v: parseFloat(val) / 100, - rv: val - }; - } else { - val = val ? parseFloat(val) : val; - } - } - setter.call(this, val); - }; - return descriptor; - } - }; -} - -function flow(target, prop, descriptor) { - if (descriptor.get) { - var _getter = descriptor.get; - descriptor.get = function () { - var ret = this.flow(prop); - if (ret === undefined) { - ret = _getter.call(this); - this.flow(prop, ret); - } - return ret; - }; - } - return descriptor; -} - -// set tag force to get absolute value from relative attributes -function absolute(target, prop, descriptor) { - if (descriptor.get) { - var _getter = descriptor.get; - descriptor.get = function () { - this[_attrAbsolute] = true; - var ret = _getter.call(this); - this[_attrAbsolute] = false; - return ret; - }; - } - return descriptor; -} - -function setDeprecation(apiName) { - var msg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - - msg = '[Deprecation] ' + apiName + ' has been deprecated.' + msg; - (0, _utils.notice)(msg); -} - -function deprecate() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var msg = '', - apiName = ''; - function decorator(target, prop, descriptor) { - apiName = apiName || target.constructor.name + '#' + prop; - if (typeof descriptor.value === 'function') { - var func = descriptor.value; - descriptor.value = function () { - setDeprecation(apiName, msg); - - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return func.apply(this, args); - }; - } - if (descriptor.set) { - var setter = descriptor.set; - descriptor.set = function (val) { - setDeprecation(apiName, msg); - return setter.call(this, val); - }; - } - if (descriptor.get) { - var getter = descriptor.get; - descriptor.get = function () { - setDeprecation(apiName, msg); - return getter.call(this); - }; - } - } - if (args.length === 1) { - msg = args[0]; - return decorator; - } - if (args.length === 2) { - apiName = args[0]; - msg = args[1]; - return decorator; - } - return decorator.apply(undefined, args); -} - -// before attr -function parseValue() { - for (var _len3 = arguments.length, parsers = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - parsers[_key3] = arguments[_key3]; - } - - return function (target, prop, descriptor) { - var setter = descriptor.set; - - descriptor.set = function (val) { - if (val != null && val !== '' && val !== 'inherit') { - val = parsers.reduce(function (v, parser) { - return parser(v); - }, val); - } - setter.call(this, val); - }; - - return descriptor; - }; -} - -/***/ }), -/* 173 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.cacheContextPool = undefined; - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -exports.drawRadiusBox = drawRadiusBox; -exports.findColor = findColor; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function drawRadiusBox(context, _ref) { - var x = _ref.x, - y = _ref.y, - w = _ref.w, - h = _ref.h, - r = _ref.r; - - // avoid radius larger than width or height - r = Math.min(r, Math.floor(Math.min(w, h) / 2)); - // avoid radius is negative - r = Math.max(r, 0); - - context.beginPath(); - context.moveTo(x + r, y); - context.arcTo(x + w, y, x + w, y + h, r); - context.arcTo(x + w, y + h, x, y + h, r); - context.arcTo(x, y + h, x, y, r); - context.arcTo(x, y, x + w, y, r); - context.closePath(); -} - -/* istanbul ignore next */ -function gradientBox(angle, rect) { - var _rect = (0, _slicedToArray3.default)(rect, 4), - x = _rect[0], - y = _rect[1], - w = _rect[2], - h = _rect[3]; - - angle %= 360; - if (angle < 0) { - angle += 360; - } - - var ret = [x, y, x + w, y + h]; - if (angle >= 0 && angle < 90) { - var tan = Math.tan(Math.PI * angle / 180); - - var d = tan * w; - - if (d <= h) { - ret = [x, y, x + w, y + d]; - } else { - d = h / tan; - ret = [x, y, x + d, y + h]; - } - } else if (angle >= 90 && angle < 180) { - var _tan = Math.tan(Math.PI * (angle - 90) / 180); - - var _d = _tan * h; - - if (_d <= w) { - ret = [x + w, y, x + w - _d, y + h]; - } else { - _d = w / _tan; - ret = [x + w, y, x, y + _d]; - } - } else if (angle >= 180 && angle < 270) { - var _tan2 = Math.tan(Math.PI * (angle - 180) / 180); - - var _d2 = _tan2 * w; - - if (_d2 <= h) { - ret = [x + w, y + h, x, y + h - _d2]; - } else { - _d2 = h / _tan2; - ret = [x + w, y + h, x + w - _d2, y]; - } - } else if (angle >= 270 && angle < 360) { - var _tan3 = Math.tan(Math.PI * (angle - 270) / 180); - - var _d3 = _tan3 * h; - - if (_d3 <= w) { - ret = [x, y + h, x + _d3, y]; - } else { - _d3 = w / _tan3; - ret = [x, y + h, x + w, y + h - _d3]; - } - } - - return ret; -} - -function findColor(context, sprite, prop) { - var gradients = sprite.attr('gradients') || {}; - var color = prop === 'border' ? sprite.attr(prop).color : sprite.attr(prop), - gradient = void 0; - - if (gradients[prop]) { - /* istanbul ignore next */ - gradient = gradients[prop]; - } else if (typeof color !== 'string') { - gradient = color; - } - - if (gradient) { - var _gradient = gradient, - colors = _gradient.colors, - vector = _gradient.vector, - direction = _gradient.direction, - rect = _gradient.rect; - - /* istanbul ignore if */ - - if (direction != null) { - if (prop === 'border') { - rect = rect || [0, 0].concat((0, _toConsumableArray3.default)(sprite.outerSize)); - } else { - var _sprite$attr = sprite.attr('border'), - borderWidth = _sprite$attr.width; - - rect = rect || [borderWidth, borderWidth].concat((0, _toConsumableArray3.default)(sprite.innerSize)); - } - vector = gradientBox(direction, rect); - } - - if (vector.length === 4) { - color = context.createLinearGradient.apply(context, (0, _toConsumableArray3.default)(vector)); - } else if (vector.length === 6) { - color = context.createRadialGradient.apply(context, (0, _toConsumableArray3.default)(vector)); - } /* istanbul ignore next */else if (vector.length === 3) { - // for wxapp - color = context.createCircularGradient.apply(context, (0, _toConsumableArray3.default)(vector)); - } /* istanbul ignore next */else { - throw Error('Invalid gradient vector!'); - } - - colors.forEach(function (o) { - color.addColorStop(o.offset, o.color); - }); - } - - return color; -} - -var contextPool = [], - maxPollSize = 20; - -var cacheContextPool = exports.cacheContextPool = { - get: function get(context) { - if (contextPool.length > 0) { - return contextPool.pop(); - } - - var canvas = context.canvas; - if (!canvas || !canvas.cloneNode) { - return; - } - var copied = canvas.cloneNode(); - return copied.getContext('2d'); - }, - put: function put() { - for (var _len = arguments.length, contexts = Array(_len), _key = 0; _key < _len; _key++) { - contexts[_key] = arguments[_key]; - } - - contexts.every(function (context) { - var ret = contextPool.length < maxPollSize; - if (ret) { - context.canvas.width = 0; - context.canvas.height = 0; - contextPool.push(context); - } - return ret; - }); - }, - - get size() { - return contextPool.length; - } -}; - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = undefined; - -var _getOwnPropertyDescriptor = __webpack_require__(175); - -var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); - -var _keys = __webpack_require__(137); - -var _keys2 = _interopRequireDefault(_keys); - -var _promise = __webpack_require__(125); - -var _promise2 = _interopRequireDefault(_promise); - -var _defineProperty2 = __webpack_require__(178); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(142); - -var _entries2 = _interopRequireDefault(_entries); - -var _typeof2 = __webpack_require__(179); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _defineProperty4 = __webpack_require__(117); - -var _defineProperty5 = _interopRequireDefault(_defineProperty4); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _stringify = __webpack_require__(182); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _set = __webpack_require__(159); - -var _set2 = _interopRequireDefault(_set); - -var _getPrototypeOf = __webpack_require__(184); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__(187); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _get2 = __webpack_require__(188); - -var _get3 = _interopRequireDefault(_get2); - -var _inherits2 = __webpack_require__(189); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _dec, _desc, _value, _class, _class2, _temp; - -var _spriteMath = __webpack_require__(148); - -var _spriteAnimator = __webpack_require__(88); - -var _utils = __webpack_require__(157); - -var _attr20 = __webpack_require__(197); - -var _attr21 = _interopRequireDefault(_attr20); - -var _basenode = __webpack_require__(232); - -var _basenode2 = _interopRequireDefault(_basenode); - -var _animation2 = __webpack_require__(233); - -var _animation3 = _interopRequireDefault(_animation2); - -var _nodetype = __webpack_require__(236); - -var _stylesheet = __webpack_require__(198); - -var _stylesheet2 = _interopRequireDefault(_stylesheet); - -var _render = __webpack_require__(173); - -var _filters = __webpack_require__(237); - -var _filters2 = _interopRequireDefault(_filters); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _applyDecoratedDescriptor = __webpack_require__(231); - -var _attr = (0, _symbol2.default)('attr'), - _animations = (0, _symbol2.default)('animations'), - _cachePriority = (0, _symbol2.default)('cachePriority'), - _effects = (0, _symbol2.default)('effects'), - _flow = (0, _symbol2.default)('flow'), - _changeStateAction = (0, _symbol2.default)('changeStateAction'), - _resolveState = (0, _symbol2.default)('resolveState'), - _show = (0, _symbol2.default)('show'), - _hide = (0, _symbol2.default)('hide'), - _enter = (0, _symbol2.default)('enter'), - _releaseKeys = (0, _symbol2.default)('releaseKeys'), - _style = (0, _symbol2.default)('style'); - -var CACHE_PRIORITY_THRESHOLDS = 0; // disable cache_priority, for canvas drawing bug... - -var BaseSprite = (_dec = (0, _utils.deprecate)('Instead use sprite.cache = null'), (_class = (_temp = _class2 = function (_BaseNode) { - (0, _inherits3.default)(BaseSprite, _BaseNode); - - /** - new Sprite({ - attr: { - ... - } - }) - */ - function BaseSprite(attr) { - (0, _classCallCheck3.default)(this, BaseSprite); - - var _this = (0, _possibleConstructorReturn3.default)(this, (BaseSprite.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite)).call(this)); - - _this[_attr] = new _this.constructor.Attr(_this); - _this[_animations] = new _set2.default(); - _this[_cachePriority] = 0; - _this[_flow] = {}; - _this[_releaseKeys] = new _set2.default(); - _this[_style] = {}; - - if (attr) { - _this.attr(attr); - } - return _this; - } - - (0, _createClass3.default)(BaseSprite, [{ - key: 'setReleaseKey', - value: function setReleaseKey(key) { - this[_releaseKeys].add(key); - } - }, { - key: 'reflow', - value: function reflow() { - this[_flow] = {}; - // let parent = this.parent - // while(parent) { - // if(parent.reflow) parent.reflow() - // parent = parent.parent - // } - } - }, { - key: 'flow', - value: function flow(prop, value) { - if (value === undefined) { - return this[_flow][prop]; - } - this[_flow][prop] = value; - } - }, { - key: 'serialize', - value: function serialize() { - var nodeType = this.nodeType, - attrs = this[_attr].serialize(), - dataset = (0, _stringify2.default)(this.dataset), - id = this.id; - - return { - nodeType: nodeType, - attrs: attrs, - dataset: dataset, - id: id - }; - } - }, { - key: 'merge', - value: function merge(attrs) { - this[_attr].merge(attrs); - } - }, { - key: 'cloneNode', - value: function cloneNode() { - var node = new this.constructor(); - node.merge(this[_attr].serialize()); - node.data(this.dataset); - var bgimage = this.attr('bgimage'); - if (bgimage && bgimage.image) { - node.attr('bgimage', null); - node.attr('bgimage', (0, _assign2.default)({}, bgimage)); - } - return node; - } - }, { - key: 'getAttribute', - value: function getAttribute(prop) { - /* istanbul ignore next */ - return this.attr(prop); - } - }, { - key: 'setAttribute', - value: function setAttribute(prop, val) { - /* istanbul ignore next */ - return this.attr(prop, val); - } - }, { - key: 'removeAttribute', - value: function removeAttribute(prop) { - /* istanbul ignore next */ - return this.attr(prop, null); - } - }, { - key: 'attr', - value: function attr(props, val) { - var _this2 = this; - - var setVal = function setVal(key, value) { - if (!_this2[_attr].__attributeNames.has(key) && !(key in _this2[_attr])) { - (0, _defineProperty5.default)(_this2[_attr], key, { - // enumerable: true, - configurable: true, - set: function set(value) { - var subject = this.subject; - var owner = subject.__owner || subject; - this.quietSet(key, value); - // fixed color inherit - if (key === 'color' && !this.__attributeNames.has('fillColor')) { - subject.attr('fillColor', value); - } - // fixed font inherit - if ((key === 'fontSize' || key === 'fontFamily' || key === 'fontStyle' || key === 'fontVariant' || key === 'fontWeight') && !this.__attributeNames.has('font')) { - var parseFont = __webpack_require__(230); - var font = this.get('font') || 'normal normal normal 16px Arial'; - var parsed = parseFont(font); - parsed.fontSize = parsed.size + parsed.unit; - if (key === 'fontSize' && (typeof value === 'number' || /[\d.]$/.test(value))) { - value += 'px'; - } - parsed[key] = value; - - var _parseFont = parseFont(font), - style = _parseFont.style, - variant = _parseFont.variant, - weight = _parseFont.weight, - family = _parseFont.family, - fontSize = _parseFont.fontSize; - - subject.attr('font', style + ' ' + variant + ' ' + weight + ' ' + fontSize + ' ' + family); - } - if (key === 'font' || key === 'lineHeight' || key === 'lineBreak' || key === 'wordBreak' || key === 'letterSpacing' || key === 'textIndent') { - var children = owner.querySelectorAll('*'); - children.forEach(function (node) { - if (node.retypesetting) node.retypesetting(); - }); - } - if (_utils.inheritAttributes.has(key)) { - subject.forceUpdate(); - } - }, - get: function get() { - return this.get(key); - } - }); - } - _this2[_attr][key] = value; - if (_stylesheet2.default.relatedAttributes.has(key)) { - _this2.updateStyles(); - } - }; - if ((typeof props === 'undefined' ? 'undefined' : (0, _typeof3.default)(props)) === 'object') { - (0, _entries2.default)(props).forEach(function (_ref) { - var _ref2 = (0, _slicedToArray3.default)(_ref, 2), - prop = _ref2[0], - value = _ref2[1]; - - _this2.attr(prop, value); - }); - return this; - }if (typeof props === 'string') { - if (val !== undefined) { - if (props === 'attrs') { - if (Array.isArray(val)) { - val = _assign2.default.apply(Object, [{}].concat((0, _toConsumableArray3.default)(val))); - } - (0, _entries2.default)(val).forEach(function (_ref3) { - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2), - prop = _ref4[0], - value = _ref4[1]; - - _this2.attr(prop, value); - }); - return this; - } - if (props === 'style') { - if (Array.isArray(val)) { - val = _assign2.default.apply(Object, [{}].concat((0, _toConsumableArray3.default)(val))); - } - (0, _entries2.default)(val).forEach(function (_ref5) { - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2), - prop = _ref6[0], - value = _ref6[1]; - - _this2.style[prop] = value; - }); - return this; - } - if (typeof val === 'function') { - val = val(this.attr(props)); - } - if (val && typeof val.then === 'function') { - return val.then(function (res) { - setVal(props, res); - }); - } - setVal(props, val); - return this; - } - return props in this[_attr] ? this[_attr][props] : this[_attr].get(props); - } - - return this[_attr].attrs; - } - }, { - key: 'isVisible', - value: function isVisible() { - if (!this.parent) return false; - - var display = this.attr('display'); - if (display === 'none') { - return false; - } - - var opacity = this.attr('opacity'); - if (opacity <= 0) { - return false; - } - - if (this.isVirtual) return true; - - var _offsetSize = (0, _slicedToArray3.default)(this.offsetSize, 2), - width = _offsetSize[0], - height = _offsetSize[1]; - - if (width <= 0 || height <= 0) { - return false; - } - - if (this.parent.isVisible) { - return this.parent.isVisible(); - } - return true; - } - }, { - key: 'transition', - value: function transition(sec) { - var _ref9; - - var easing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'linear'; - var isStyleAnim = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var that = this, - _animation = (0, _symbol2.default)('animation'); - - easing = easing || 'linear'; - - var delay = 0; - if ((typeof sec === 'undefined' ? 'undefined' : (0, _typeof3.default)(sec)) === 'object') { - delay = sec.delay || 0; - sec = sec.duration; - } - - return _ref9 = {}, (0, _defineProperty3.default)(_ref9, _animation, null), (0, _defineProperty3.default)(_ref9, 'cancel', function cancel() { - var preserveState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - var animation = this[_animation]; - if (animation) { - animation.cancel(preserveState); - } - }), (0, _defineProperty3.default)(_ref9, 'end', function end() { - var animation = this[_animation]; - if (animation && (animation.playState === 'running' || animation.playState === 'pending')) { - animation.finish(); - } - }), (0, _defineProperty3.default)(_ref9, 'reverse', function reverse() { - var animation = this[_animation]; - if (animation) { - if (animation.playState === 'running' || animation.playState === 'pending') { - animation.playbackRate = -animation.playbackRate; - } else { - var direction = animation.timing.direction; - animation.timing.direction = direction === 'reverse' ? 'normal' : 'reverse'; - animation.play(); - } - } - return animation.finished; - }), (0, _defineProperty3.default)(_ref9, 'attr', function attr(prop, val) { - this.end(); - if (typeof prop === 'string') { - prop = (0, _defineProperty3.default)({}, prop, val); - } - (0, _entries2.default)(prop).forEach(function (_ref7) { - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2), - key = _ref8[0], - value = _ref8[1]; - - if (typeof value === 'function') { - prop[key] = value(that.attr(key)); - } - }); - this[_animation] = that.animate([prop], { - duration: sec * 1000, - delay: delay * 1000, - fill: 'forwards', - easing: easing - }, isStyleAnim); - return this[_animation].finished; - }), _ref9; - } - }, { - key: 'animate', - value: function animate(frames, timing) { - var _this3 = this; - - var isStyleAnim = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var setter = null; - if (isStyleAnim) { - setter = function setter(frame, target) { - target.attributes.__styleTag = true; - target.attr(frame); - target.attributes.__styleTag = false; - }; - } - var animation = new _animation3.default(this, frames, timing, setter); - if (this[_effects]) animation.applyEffects(this[_effects]); - if (this.layer) { - animation.baseTimeline = this.layer.timeline; - animation.play(); - animation.finished.then(function () { - _this3[_animations].delete(animation); - }); - } - this[_animations].add(animation); - return animation; - } - }, { - key: 'changeState', - value: function changeState(fromState, toState, action) { - var _this4 = this; - - var animation = void 0; - if (this[_changeStateAction]) { - var currentAnim = this[_changeStateAction].animation; - if (this[_changeStateAction].reversable && (currentAnim.playState === 'running' || currentAnim.playState === 'pending') && this[_changeStateAction].fromState === toState && this[_changeStateAction].toState === fromState) { - currentAnim.playbackRate = -currentAnim.playbackRate; - animation = currentAnim; - animation.__reversed = this[_changeStateAction].action; - } else { - currentAnim.finish(); - } - } - if (!animation) { - // const [_fromState, _toState] = [Object.assign({}, fromState), Object.assign({}, toState)]; - // delete _fromState.__default; - // delete _toState.__default; - var _fromState = {}, - _toState = {}; - (0, _entries2.default)(fromState || {}).forEach(function (_ref10) { - var _ref11 = (0, _slicedToArray3.default)(_ref10, 2), - key = _ref11[0], - value = _ref11[1]; - - if (key !== '__default') { - if (typeof value === 'function') { - _fromState[key] = _this4.attr(key); - } else { - _fromState[key] = value; - } - } - }); - (0, _entries2.default)(toState || {}).forEach(function (_ref12) { - var _ref13 = (0, _slicedToArray3.default)(_ref12, 2), - key = _ref13[0], - value = _ref13[1]; - - if (key !== '__default') { - if (typeof value === 'function') { - _toState[key] = value(_this4.attr(key)); - } else { - _toState[key] = value; - } - } - }); - animation = this.animate([_fromState, _toState], (0, _assign2.default)({ fill: 'forwards' }, action)); - animation.finished.then(function () { - if (_this4[_changeStateAction] && _this4[_changeStateAction].animation === animation) delete _this4[_changeStateAction]; - }); - } - this[_changeStateAction] = { animation: animation, fromState: fromState, toState: toState, action: action, reversable: action.reversable !== false }; - return animation; - } - }, { - key: 'connect', - value: function connect(parent) { - var _this5 = this; - - var zOrder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - - if (parent && !(parent instanceof _basenode2.default)) { - var node = new _basenode2.default(); - node.context = parent; - node.timeline = new _spriteAnimator.Timeline(); - node.update = function () { - var currentTime = this.timeline.currentTime; - node.dispatchEvent('update', { target: this, timeline: this.timeline, renderTime: currentTime }, true, true); - }; - parent = node; - } - var ret = (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'connect', this).call(this, parent, zOrder); - Object.defineProperty(this, 'context', { - get: function get() { - return parent.cache || parent.context; - }, - configurable: true - }); - this[_animations].forEach(function (animation) { - if (parent.layer) { - animation.baseTimeline = parent.layer.timeline; - } - animation.play(); - animation.finished.then(function () { - _this5[_animations].delete(animation); - }); - }); - if (this.hasLayout) parent.clearLayout(); - this.reflow(); - return ret; - } - }, { - key: 'disconnect', - value: function disconnect(parent) { - var _this6 = this; - - this[_animations].forEach(function (animation) { - return animation.cancel(); - }); - if (this.cache) { - this.cache = null; - } - if (this.hasLayout) parent.clearLayout(); - this.reflow(); - var ret = (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'disconnect', this).call(this, parent); - delete this.context; - [].concat((0, _toConsumableArray3.default)(this[_releaseKeys])).forEach(function (key) { - return delete _this6[key]; - }); - return ret; - } - }, { - key: 'getParentXY', - value: function getParentXY() { - var lx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - var ly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - - var layer = this.layer; - if (!layer) return [0, 0]; - var parents = []; - var target = this.parent; - while (target && target !== layer) { - parents.push(target); - target = target.parent; - } - parents.reverse(); - - var parentX = lx, - parentY = ly; - - parents.forEach(function (node) { - var scrollLeft = node.attr('scrollLeft'), - scrollTop = node.attr('scrollTop'), - borderWidth = node.attr('border').width, - padding = node.attr('padding'); - - var _node$pointToOffset = node.pointToOffset(parentX, parentY); - - var _node$pointToOffset2 = (0, _slicedToArray3.default)(_node$pointToOffset, 2); - - parentX = _node$pointToOffset2[0]; - parentY = _node$pointToOffset2[1]; - - parentX = parentX - node.originalRect[0] - borderWidth - padding[3] + scrollLeft; - parentY = parentY - node.originalRect[1] - borderWidth - padding[0] + scrollTop; - }); - return [parentX, parentY]; - } - }, { - key: 'getLayerXY', - value: function getLayerXY() { - var dx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - var dy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - - var layer = this.layer; - if (!layer) return [0, 0]; - var target = this; - var x = dx, - y = dy; - - while (target && target !== layer) { - var _target$offsetToPoint = target.offsetToPoint(x, y); - - var _target$offsetToPoint2 = (0, _slicedToArray3.default)(_target$offsetToPoint, 2); - - x = _target$offsetToPoint2[0]; - y = _target$offsetToPoint2[1]; - - var parent = target.parent; - - if (parent !== layer) { - var borderWidth = parent.attr('border').width; - var padding = parent.attr('padding'), - scrollLeft = parent.attr('scrollLeft') || 0, - scrollTop = parent.attr('scrollTop') || 0; - - // const parentX = evt.offsetX - this.originalRect[0] - borderWidth - padding[3] + scrollLeft - // const parentY = evt.offsetY - this.originalRect[1] - borderWidth - padding[0] + scrollTop - - x = x + parent.originalRect[0] + borderWidth + padding[3] - scrollLeft; - y = y + parent.originalRect[1] + borderWidth + padding[0] - scrollTop; - } - target = parent; - } - return [x, y]; - } - }, { - key: 'clearCache', - value: function clearCache() { - this.cache = null; - } - }, { - key: 'appendTo', - value: function appendTo(parent) { - parent.appendChild(this); - } - }, { - key: 'forceUpdate', - value: function forceUpdate() { - var clearCache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (clearCache) { - this.cache = null; - } - var parent = this.parent; - if (parent) { - this.parent.update(this); - } - } - - // layer position to sprite offset - - }, { - key: 'pointToOffset', - value: function pointToOffset(x, y) { - var _xy = (0, _slicedToArray3.default)(this.xy, 2), - x0 = _xy[0], - y0 = _xy[1]; - - var dx = x - x0, - dy = y - y0; - - var transform = this.transform; - return transform.inverse().transformPoint(dx, dy); - } - }, { - key: 'offsetToPoint', - value: function offsetToPoint(dx, dy) { - var transform = this.transform; - - var _xy2 = (0, _slicedToArray3.default)(this.xy, 2), - x0 = _xy2[0], - y0 = _xy2[1]; - - var _transform$transformP = transform.transformPoint(dx, dy), - _transform$transformP2 = (0, _slicedToArray3.default)(_transform$transformP, 2), - x = _transform$transformP2[0], - y = _transform$transformP2[1]; - - return [x + x0, y + y0]; - } - }, { - key: 'getOffsetXY', - value: function getOffsetXY(evt) { - var parentX = void 0, - parentY = void 0; - - if (evt.parentX != null) { - // group - parentX = evt.parentX; - parentY = evt.parentY; - } else { - parentX = evt.layerX; - parentY = evt.layerY; - } - if (parentX != null && parentY != null) { - return this.pointToOffset(parentX, parentY); - } - } - }, { - key: 'dispatchEvent', - value: function dispatchEvent(type, evt) { - var collisionState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var swallow = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - if (collisionState) { - var offsetXY = this.getOffsetXY(evt); - if (offsetXY) { - evt.offsetX = offsetXY[0]; - evt.offsetY = offsetXY[1]; - } - } - - return (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'dispatchEvent', this).call(this, type, evt, collisionState, swallow); - } - }, { - key: 'pointCollision', - value: function pointCollision(evt) { - /* istanbul ignore if */ - if (!this.isVisible()) { - return false; - } - var offsetXY = this.getOffsetXY(evt); - if (!offsetXY) return true; - - var _offsetXY = (0, _slicedToArray3.default)(offsetXY, 2), - nx = _offsetXY[0], - ny = _offsetXY[1]; - - evt.offsetX = nx; - evt.offsetY = ny; - - var _originalRect = (0, _slicedToArray3.default)(this.originalRect, 4), - ox = _originalRect[0], - oy = _originalRect[1], - ow = _originalRect[2], - oh = _originalRect[3]; - - if (nx >= ox && nx - ox < ow && ny >= oy && ny - oy < oh) { - if (this.context && this.context.isPointInPath) { - var borderWidth = this.attr('border').width, - borderRadius = this.attr('borderRadius'); - if (borderWidth || borderRadius) { - var _outerSize = (0, _slicedToArray3.default)(this.outerSize, 2), - width = _outerSize[0], - height = _outerSize[1]; - - var _ref14 = [0, 0, width, height, Math.max(0, borderRadius + borderWidth / 2)], - x = _ref14[0], - y = _ref14[1], - w = _ref14[2], - h = _ref14[3], - r = _ref14[4]; - - (0, _render.drawRadiusBox)(this.context, { x: x, y: y, w: w, h: h, r: r }); - if (this.layer && this.layer.offset) { - nx += this.layer.offset[0]; - ny += this.layer.offset[1]; - } - return this.context.isPointInPath(nx - ox, ny - oy); - } - } - return true; - } - } - - // OBB: http://blog.csdn.net/silangquan/article/details/50812425 - - }, { - key: 'OBBCollision', - value: function OBBCollision(sprite) { - // vertices: [p1, p2, p3, p4] - var _vertices = (0, _slicedToArray3.default)(this.vertices, 3), - p11 = _vertices[0], - p12 = _vertices[1], - p13 = _vertices[2], - _sprite$vertices = (0, _slicedToArray3.default)(sprite.vertices, 3), - p21 = _sprite$vertices[0], - p22 = _sprite$vertices[1], - p23 = _sprite$vertices[2]; - - var a1 = new _spriteMath.Vector(p12, p11).unit(), - a2 = new _spriteMath.Vector(p13, p12).unit(), - a3 = new _spriteMath.Vector(p22, p21).unit(), - a4 = new _spriteMath.Vector(p23, p22).unit(); - - // The projection of the axis of a vertex in a certain direction - function verticesProjection(vertices, axis) { - var _vertices$map = vertices.map(function (v) { - return axis.dot(new _spriteMath.Vector(v)); - }), - _vertices$map2 = (0, _slicedToArray3.default)(_vertices$map, 4), - p1 = _vertices$map2[0], - p2 = _vertices$map2[1], - p3 = _vertices$map2[2], - p4 = _vertices$map2[3]; - - return [Math.min(p1, p2, p3, p4), Math.max(p1, p2, p3, p4)]; - } - - function projectionIntersect(p1, p2) { - var m1 = (p1[0] + p1[1]) / 2, - l1 = Math.abs(p1[1] - p1[0]), - m2 = (p2[0] + p2[1]) / 2, - l2 = Math.abs(p2[1] - p2[0]); - - return Math.abs(m2 - m1) <= (l1 + l2) / 2; - } - - return projectionIntersect(verticesProjection(this.vertices, a1), verticesProjection(sprite.vertices, a1)) && projectionIntersect(verticesProjection(this.vertices, a2), verticesProjection(sprite.vertices, a2)) && projectionIntersect(verticesProjection(this.vertices, a3), verticesProjection(sprite.vertices, a3)) && projectionIntersect(verticesProjection(this.vertices, a4), verticesProjection(sprite.vertices, a4)); - } - }, { - key: 'relayout', - value: function relayout() {} - }, { - key: 'draw', - value: function draw(t) { - var drawingContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.context; - - var bound = this.originalRect; - var cachableContext = !this.isVirtual && this.cache; - - var filter = this.attr('filter'), - shadow = this.attr('shadow'), - enableCache = this.attr('enableCache') || shadow || filter; - - var ratio = this.layer ? this.layer.displayRatio || 1.0 : 1.0; - - if (enableCache && (shadow || filter || cachableContext !== false) && !cachableContext) { - cachableContext = _render.cacheContextPool.get(drawingContext); - if (cachableContext) { - // +2 to solve 1px problem - cachableContext.canvas.width = Math.ceil(bound[2] * ratio) + 2; - cachableContext.canvas.height = Math.ceil(bound[3] * ratio) + 2; - } - } - - var evtArgs = { context: drawingContext, cacheContext: cachableContext, target: this, renderTime: t, fromCache: !!this.cache }; - - drawingContext.save(); - drawingContext.translate.apply(drawingContext, (0, _toConsumableArray3.default)(this.xy)); - drawingContext.transform.apply(drawingContext, (0, _toConsumableArray3.default)(this.transform.m)); - - // fix for wxapp - var alpha = drawingContext.globalAlpha != null ? drawingContext.globalAlpha : 1; - drawingContext.globalAlpha = alpha * this.attr('opacity'); - - if (!cachableContext) { - drawingContext.translate(bound[0], bound[1]); - } else { - cachableContext.save(); - // solve 1px problem - cachableContext.translate(bound[0] - Math.floor(bound[0]) + 1, bound[1] - Math.floor(bound[1]) + 1); - if (ratio !== 1.0) { - cachableContext.scale(ratio, ratio); - } - } - - this.dispatchEvent('beforedraw', evtArgs, true, true); - - if (cachableContext) { - // set cache before render for group - if (!this.cache) { - this.cache = cachableContext; - this.render(t, cachableContext); - } - } else { - this.render(t, drawingContext); - } - - if ((shadow || filter) && !cachableContext) { - console.warn('No cachable context. Shadows and filters have been ignored.'); - } - - if (cachableContext && cachableContext.canvas.width > 0 && cachableContext.canvas.height > 0) { - if (filter) { - drawingContext.filter = _filters2.default.compile(filter); - } - if (shadow) { - var blur = shadow.blur, - color = shadow.color, - offset = shadow.offset; - - blur = blur || 1; - color = color || 'rgba(0,0,0,1)'; - drawingContext.shadowBlur = blur; - drawingContext.shadowColor = color; - if (offset) { - drawingContext.shadowOffsetX = offset[0]; - drawingContext.shadowOffsetY = offset[1]; - } - } - drawingContext.drawImage(cachableContext.canvas, Math.floor(bound[0]) - 1, Math.floor(bound[1]) - 1, bound[2] + 2, bound[3] + 2); - } - - this.dispatchEvent('afterdraw', evtArgs, true, true); - - if (cachableContext) { - cachableContext.restore(); - } - drawingContext.restore(); - - this[_cachePriority]++; - - return drawingContext; - } - }, { - key: 'render', - value: function render(t, drawingContext) { - var border = this.attr('border'), - borderRadius = this.attr('borderRadius'), - padding = this.attr('padding'), - _offsetSize2 = (0, _slicedToArray3.default)(this.offsetSize, 2), - offsetWidth = _offsetSize2[0], - offsetHeight = _offsetSize2[1], - _clientSize = (0, _slicedToArray3.default)(this.clientSize, 2), - clientWidth = _clientSize[0], - clientHeight = _clientSize[1]; - - - if (!this.needRender) { - drawingContext.translate(padding[3], padding[0]); - return false; - } - - var borderWidth = border.width; - var borderStyle = border.style; - - // draw border - if (borderWidth) { - drawingContext.lineWidth = borderWidth; - - var x = borderWidth / 2, - y = borderWidth / 2, - w = offsetWidth - borderWidth, - h = offsetHeight - borderWidth, - r = borderRadius; - - - (0, _render.drawRadiusBox)(drawingContext, { x: x, y: y, w: w, h: h, r: r }); - - if (borderStyle && borderStyle !== 'solid') { - var dashOffset = this.attr('dashOffset'); - drawingContext.lineDashOffset = dashOffset; - if (borderStyle === 'dashed') { - borderStyle = [borderWidth * 3, borderWidth * 3]; - } - drawingContext.setLineDash(borderStyle); - } - drawingContext.strokeStyle = (0, _render.findColor)(drawingContext, this, 'border'); - drawingContext.stroke(); - } - - // draw bgcolor - var bgcolor = (0, _render.findColor)(drawingContext, this, 'bgcolor'); - var bgimage = this.attr('bgimage'); - - if (this.cache == null || borderWidth || borderRadius || bgcolor || bgimage && bgimage.display !== 'none') { - var _ref15 = [borderWidth, borderWidth, clientWidth, clientHeight, Math.max(0, borderRadius - borderWidth / 2)], - _x14 = _ref15[0], - _y = _ref15[1], - _w = _ref15[2], - _h = _ref15[3], - _r = _ref15[4]; - - - (0, _render.drawRadiusBox)(drawingContext, { x: _x14, y: _y, w: _w, h: _h, r: _r }); - - if (bgcolor) { - drawingContext.fillStyle = bgcolor; - drawingContext.fill(); - } - - // clip is expensive, we should only perform clip when it has to. - if (bgimage && bgimage.display !== 'none' || borderRadius && (this.nodeType !== 'sprite' || this.textures && this.textures.length)) { - drawingContext.clip(); - } - - if (bgimage && bgimage.image && bgimage.display !== 'none') { - drawBgImage(drawingContext, bgimage, borderWidth, offsetWidth, offsetHeight, clientWidth, clientHeight); - } - } - - drawingContext.translate(borderWidth + padding[3], borderWidth + padding[0]); - - return true; - } - }, { - key: 'resolveStates', - value: function resolveStates(states, before, after) { - var _this7 = this; - - var currentAnimation = null, - resolved = false; - - var _states = []; - var prev = null; - for (var i = 0; i < states.length; i++) { - var s = states[i]; - if (prev !== s) { - prev = s; - _states.push(s); - } - } - states = _states; - - var _resolveStates = function _resolveStates() { - _this7.__ignoreAction = false; - var fromState = _this7.attr('state'); - if (fromState === states[0]) { - states.shift(); - } - - var len = states.length; - var resolveState = function resolveState(state, i) { - var promise = new _promise2.default(function (resolve) { - _this7.once('state-to-' + state, function () { - fromState = state; - if (i === len - 1) { - // lastState - delete _this7[_resolveState]; - } - if (after) after.call(_this7, states); - resolve(_this7); - }); - _this7.once('state-from-' + fromState, function (_ref16) { - var animation = _ref16.animation; - - if (animation && resolved) animation.finish();else currentAnimation = animation; - }); - _this7.attr('state', state); - }); - return promise; - }; - - var promise = _promise2.default.resolve(); - states.forEach(function (state, i) { - promise = promise.then(function () { - return resolveState(state, i); - }); - }); - - var ret = { - get animation() { - return currentAnimation; - }, - states: states, - resolve: function resolve() { - resolved = true; - if (currentAnimation) currentAnimation.finish(); - return promise; - }, - - promise: promise - }; - _this7[_resolveState] = ret; - return ret; - }; - var rs = this[_resolveState]; - if (rs) { - rs.resolve(); - this.__ignoreAction = true; - var promise = rs.promise.then(function () { - if (before) before.call(_this7, states); - return _resolveStates().promise; - }); - return { - promise: promise, - resolve: function resolve() { - resolved = true; - if (currentAnimation) currentAnimation.finish(); - return promise; - } - }; - } - if (before) before.call(this, states); - return _resolveStates(); - } - - // state: original -> show -> hide -> show -> original - - }, { - key: 'show', - value: function show() { - var _this8 = this; - - if (this[_show]) return this[_show]; - - var originalDisplay = this.attr('__originalDisplay') || ''; - var originalState = this.attr('__originalState') || 'default'; - - var states = this.attr('states'); - - if (states.show) { - var _st = ['show', originalState]; - if (states.beforeShow) { - _st.unshift('beforeShow'); - } - var deferred = this.resolveStates(_st, function () { - var state = _this8.attr('state'); - if (state === 'hide') { - _this8.once('state-from-hide', function () { - _this8.attr('display', originalDisplay); - }); - } - }); - deferred.promise = deferred.promise.then(function () { - if (!_this8[_hide]) { - delete _this8[_attr].__originalDisplay; - delete _this8[_attr].__originalState; - if (states.show.__default) { - delete states.show; - _this8.attr('states', states); - } - } - delete _this8[_show]; - }); - this[_show] = deferred; - return deferred; - } - - var rs = this[_resolveState]; - if (rs) { - rs.resolve(); - rs.promise.then(function () { - _this8.attr('state', originalState); - _this8.attr('display', originalDisplay); - }); - return rs; - } - - this.attr('state', originalState); - this.attr('display', originalDisplay); - return this; - } - }, { - key: 'hide', - value: function hide() { - var _this9 = this; - - var state = this.attr('state'); - if (this[_hide] || state === 'hide' || state === 'afterExit' || state === 'beforeExit') return this[_hide]; - var __originalDisplay = this.attr('__originalDisplay'); - if (__originalDisplay == null) { - var display = this.attr('display'); - - this.attr({ - __originalDisplay: display !== 'none' ? display : '', - __originalState: state !== 'hide' ? state : 'default' - }); - } - - var states = this.attr('states'); - - if (states.hide) { - var deferred = this.resolveStates(['show', 'hide'], function () { - if (!states.show) { - var beforeHide = { __default: true }; - if (states.beforeShow) { - (0, _keys2.default)(states.beforeShow).forEach(function (key) { - beforeHide[key] = _this9.attr(key); - }); - } - (0, _keys2.default)(states.hide).forEach(function (key) { - beforeHide[key] = _this9.attr(key); - }); - states.show = beforeHide; - _this9.attr('states', states); - } - }); - deferred.promise = deferred.promise.then(function () { - _this9.attr('display', 'none'); - delete _this9[_hide]; - return _this9; - }); - this[_hide] = deferred; - return deferred; - } - - var rs = this[_resolveState]; - if (rs) { - rs.resolve(); - rs.promise.then(function () { - _this9.attr('state', 'hide'); - _this9.attr('display', 'none'); - }); - return rs; - } - - this.attr('state', 'hide'); - this.attr('display', 'none'); - return this; - } - }, { - key: 'enter', - value: function enter(toState) { - var _this10 = this; - - var states = this.attr('states'); - var ret = void 0; - if (states && (states.beforeEnter || states.afterEnter)) { - var deferred = this.resolveStates(['beforeEnter', 'afterEnter'], function (_states) { - var state = _this10.attr('state'); - _states.push(toState || state); - if (state !== 'beforeEnter' && state !== 'afterEnter' && (!states.afterEnter || states.afterEnter.__default)) { - var afterEnter = { __default: true }; - (0, _keys2.default)(states.beforeEnter).forEach(function (key) { - afterEnter[key] = _this10.attr(key); - }); - states.afterEnter = afterEnter; - _this10.attr('states', states); - } - }); - ret = deferred; - } else { - ret = (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'enter', this).call(this); - } - - this[_enter] = ret; - if (this.children) { - var enterMode = this.attr('enterMode'); - if (enterMode === 'onebyone' || enterMode === 'onebyone-reverse') { - var promise = null; - var resolved = false; - if (ret.promise) { - promise = ret.promise; - } else { - promise = _promise2.default.resolve(this); - } - - var children = this.children; - if (enterMode === 'onebyone-reverse') { - children = [].concat((0, _toConsumableArray3.default)(children)).reverse(); - } - - var currentTask = ret; - children.forEach(function (c) { - var states = c.attr('states'); - if (states && (states.beforeEnter || states.afterEnter)) { - if (!states.afterEnter || states.afterEnter.__default) { - var afterEnter = { __default: true }; - (0, _keys2.default)(states.beforeEnter).forEach(function (key) { - afterEnter[key] = c.attr(key); - }); - states.afterEnter = afterEnter; - c.attr('states', states); - } - } - var toState = c.attr('state'); - c.attr('state', 'beforeEnter'); - promise = promise.then(function () { - var d = c.enter(toState); - if (d.promise) { - currentTask = d; - if (resolved && d.resolve) { - d.resolve(); - } - return d.promise; - } - return d; - }); - }); - - this[_enter] = { - promise: promise, - resolve: function resolve() { - if (currentTask && currentTask.resolve) currentTask.resolve(); - resolved = true; - } - }; - } else { - var entries = this.children.map(function (c) { - return c.enter(); - }).filter(function (d) { - return d.promise; - }); - if (ret.promise) { - entries.unshift(ret); - } - if (entries.length) { - var _deferred = { - promise: _promise2.default.all(entries.map(function (d) { - return d.promise; - })), - resolve: function resolve() { - entries.forEach(function (d) { - return d.resolve(); - }); - return _this10.promise; - } - }; - this[_enter] = _deferred; - } - } - } - - return this[_enter]; - } - }, { - key: 'exit', - value: function exit(toState) { - var _this11 = this; - - var onbyone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var _exit = function _exit() { - var states = _this11.attr('states'); - var ret = void 0; - var afterEnter = states.afterEnter || {}; - if (states && (states.beforeExit || states.afterExit)) { - var state = void 0; - var deferred = _this11.resolveStates(['beforeExit', 'afterExit'], function () { - state = _this11.attr('state'); - if (state !== 'beforeExit' && state !== 'afterExit' && (!states.beforeExit || states.beforeExit.__default)) { - states.beforeExit = (0, _assign2.default)({}, afterEnter); - states.beforeExit.__default = true; - _this11.attr('states', states); - } - }); - deferred.promise.then(function () { - if (!onbyone) { - _this11.attr(afterEnter); - _this11[_attr].quietSet('state', toState || state); - } - return _this11; - }); - ret = deferred; - } else { - var rs = _this11[_resolveState]; - if (rs) { - rs.resolve(); - rs.promise.then(function () { - _this11.attr(afterEnter); - return (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'exit', _this11).call(_this11); - }); - ret = rs; - } else { - ret = (0, _get3.default)(BaseSprite.prototype.__proto__ || (0, _getPrototypeOf2.default)(BaseSprite.prototype), 'exit', _this11).call(_this11); - _this11.attr(afterEnter); - } - } - - if (_this11.children) { - var exitMode = _this11.attr('exitMode'); - if (exitMode === 'onebyone' || exitMode === 'onebyone-reverse') { - var promise = _promise2.default.resolve(_this11); - var resolved = false; - - var children = _this11.children; - if (exitMode === 'onebyone-reverse') { - children = [].concat((0, _toConsumableArray3.default)(children)).reverse(); - } - - var currentTask = null; - children.forEach(function (c) { - var states = c.attr('states'); - if (states && (states.beforeExit || states.afterExit)) { - if (!states.beforeExit || states.beforeExit.__default) { - states.beforeExit = (0, _assign2.default)({}, afterEnter); - states.beforeExit.__default = true; - c.attr('states', states); - } - } - var toState = c.attr('state'); - c.attr('state', 'beforeExit'); - promise = promise.then(function () { - var d = c.exit(toState, true); - if (d.promise) { - currentTask = d; - if (resolved && d.resolve) d.resolve(); - return d.promise; - } - return d; - }); - c.__toState = toState; - }); - - promise = promise.then(function () { - var p = ret.promise || _promise2.default.resolve(_this11); - currentTask = ret; - return p.then(function () { - _this11.children.forEach(function (c) { - var states = c.attr('states'); - c.attr(states.afterEnter); - c[_attr].quietSet('state', c.__toState); - delete c.__toState; - }); - }); - }); - - return { - promise: promise, - resolve: function resolve() { - if (currentTask && currentTask.resolve) currentTask.resolve(); - resolved = true; - } - }; - } - - var exites = _this11.children.map(function (c) { - return c.exit(); - }).filter(function (d) { - return d.promise; - }); - if (ret.promise) { - exites.unshift(ret); - } - if (exites.length) { - var _deferred2 = { - promise: _promise2.default.all(exites.map(function (d) { - return d.promise; - })), - resolve: function resolve() { - exites.forEach(function (d) { - return d.resolve(); - }); - return _this11.promise; - } - }; - return _deferred2; - } - } - - return ret; - }; - - if (this[_enter] && this[_enter].promise) { - var resolved = false; - this[_enter].resolve(); - var promise = this[_enter].promise.then(function () { - var deferred = _exit(); - if (resolved && deferred.resolve) { - deferred.resolve(); - } - return deferred.promise; - }); - return { - promise: promise, - resolve: function resolve() { - resolved = true; - } - }; - } - return _exit(); - } - }, { - key: 'layer', - get: function get() { - return this.parent && this.parent.layer; - } - }, { - key: 'id', - set: function set(val) { - this.attr('id', val); - }, - get: function get() { - return this.attr('id'); - } - }, { - key: 'name', - set: function set(val) { - this.attr('name', val); - }, - get: function get() { - return this.attr('name'); - } - }, { - key: 'className', - set: function set(val) { - this.attr('class', val); - }, - get: function get() { - return this.attr('class'); - } - }, { - key: 'hasLayout', - get: function get() { - if (this.attr('position') === 'absolute') return false; - if (this.parent && this.parent.relayout) { - var display = this.parent.attr('display'); - return display !== '' && display !== 'static'; - } - return false; - } - }, { - key: 'zIndex', - set: function set(val) { - this.attr('zIndex', val); - }, - get: function get() { - return this.attr('zIndex'); - } - }, { - key: 'attributes', - get: function get() { - if (typeof Proxy === 'function') { - try { - return new Proxy(this[_attr], { - get: function get(target, prop) { - return prop in target ? target[prop] : target.get(prop); - }, - set: function set(target, prop, value) { - if (typeof prop !== 'string' || /^__/.test(prop)) target[prop] = value;else target.subject.attr(prop, value); - return true; - }, - deleteProperty: function deleteProperty(target, prop) { - if (typeof prop !== 'string' || /^__/.test(prop)) delete target[prop];else target.subject.attr(prop, null); - return true; - } - }); - } catch (ex) { - return this[_attr]; - } - } - return this[_attr]; - } - }, { - key: 'style', - get: function get() { - if (typeof Proxy === 'function') { - try { - return new Proxy(this[_attr], { - get: function get(target, prop) { - if (prop !== 'id' && prop !== 'name' && prop !== 'class' && target.__attributeNames.has(prop) || _utils.inheritAttributes.has(prop)) { - return target[prop]; - } - return target.subject[_style][prop]; - }, - set: function set(target, prop, value) { - if (prop !== 'id' && prop !== 'name' && prop !== 'class' && target.__attributeNames.has(prop) || _utils.inheritAttributes.has(prop)) { - target.subject.attr(prop, value); - } else { - target.subject[_style][prop] = value; - } - return true; - }, - deleteProperty: function deleteProperty(target, prop) { - if (prop !== 'id' && prop !== 'name' && prop !== 'class' && target.__attributeNames.has(prop) || _utils.inheritAttributes.has(prop)) { - target.subject.attr(prop, null); - } else { - delete target.subject[_style][prop]; - } - return true; - } - }); - } catch (ex) { - return this[_attr]; - } - } - return this[_attr]; - } - }, { - key: 'isVirtual', - get: function get() { - return false; - } - }, { - key: 'transform', - get: function get() { - var transform = new _spriteMath.Matrix(this[_attr].get('transformMatrix')); - var transformOrigin = this.attr('transformOrigin'); - if (transformOrigin) { - var t = new _spriteMath.Matrix(); - t.translate.apply(t, (0, _toConsumableArray3.default)(transformOrigin)); - t.multiply(transform); - t.translate.apply(t, (0, _toConsumableArray3.default)(transformOrigin.map(function (v) { - return -v; - }))); - return t; - } - return transform; - } - }, { - key: 'animations', - get: function get() { - return this[_animations]; - } - }, { - key: 'xy', - get: function get() { - var x = void 0, - y = void 0; - if (this.hasLayout) { - x = this.attr('layoutX'); - y = this.attr('layoutY'); - } else { - var _attr2 = this.attr('pos'); - - var _attr3 = (0, _slicedToArray3.default)(_attr2, 2); - - x = _attr3[0]; - y = _attr3[1]; - } - return [x, y]; - } - }, { - key: 'attrSize', - get: function get() { - var _attr4 = this.attr('size'), - _attr5 = (0, _slicedToArray3.default)(_attr4, 2), - width = _attr5[0], - height = _attr5[1]; - - var isBorderBox = this.attr('boxSizing') === 'border-box'; - - if (this.hasLayout) { - var layoutWidth = this.attr('layoutWidth'), - layoutHeight = this.attr('layoutHeight');var _ref17 = [layoutWidth !== '' ? layoutWidth : width, layoutHeight !== '' ? layoutHeight : height]; - width = _ref17[0]; - height = _ref17[1]; - } - if (isBorderBox) { - var borderWidth = this.attr('border').width, - _attr6 = this.attr('padding'), - _attr7 = (0, _slicedToArray3.default)(_attr6, 4), - paddingTop = _attr7[0], - paddingRight = _attr7[1], - paddingBottom = _attr7[2], - paddingLeft = _attr7[3]; - - - if (width !== '') { - width = Math.max(0, width - 2 * borderWidth - paddingLeft - paddingRight); - } - if (height !== '') { - height = Math.max(0, height - 2 * borderWidth - paddingTop - paddingBottom); - } - } - return [width, height]; - } - }, { - key: 'boxOffsetSize', - get: function get() { - // get original boxSize, without layout - if (this.isVirtual) return [0, 0]; - - var _attr8 = this.attr('size'), - _attr9 = (0, _slicedToArray3.default)(_attr8, 2), - width = _attr9[0], - height = _attr9[1]; - - var _attr10 = this.attr('padding'), - _attr11 = (0, _slicedToArray3.default)(_attr10, 4), - top = _attr11[0], - right = _attr11[1], - bottom = _attr11[2], - left = _attr11[3]; - - var _attr12 = this.attr('border'), - borderWidth = _attr12.width, - lw = borderWidth * 2; - - return [left + (width | 0) + right + lw, top + (height | 0) + bottom + lw]; - } - - // content width / height - - }, { - key: 'contentSize', - get: function get() { - if (this.isVirtual) return [0, 0]; - - var _attrSize = (0, _slicedToArray3.default)(this.attrSize, 2), - width = _attrSize[0], - height = _attrSize[1]; - - return [width | 0, height | 0]; - } - - // content + padding - - }, { - key: 'clientSize', - get: function get() { - var _attr13 = this.attr('padding'), - _attr14 = (0, _slicedToArray3.default)(_attr13, 4), - top = _attr14[0], - right = _attr14[1], - bottom = _attr14[2], - left = _attr14[3], - _contentSize = (0, _slicedToArray3.default)(this.contentSize, 2), - width = _contentSize[0], - height = _contentSize[1]; - - return [left + width + right, top + height + bottom]; - } - - // content + padding + border - - }, { - key: 'offsetSize', - get: function get() { - var _attr15 = this.attr('border'), - borderWidth = _attr15.width, - _clientSize2 = (0, _slicedToArray3.default)(this.clientSize, 2), - width = _clientSize2[0], - height = _clientSize2[1]; - - return [width + 2 * borderWidth, height + 2 * borderWidth]; - } - }, { - key: 'layoutSize', - get: function get() { - var size = this.offsetSize; - - var _attr16 = this.attr('margin'), - _attr17 = (0, _slicedToArray3.default)(_attr16, 4), - top = _attr17[0], - right = _attr17[1], - bottom = _attr17[2], - left = _attr17[3]; - - return [left + size[0] + right, top + size[1] + bottom]; - } - }, { - key: 'innerSize', - get: function get() { - return this.contentSize; - } - }, { - key: 'outerSize', - get: function get() { - return this.offsetSize; - } - }, { - key: 'boundingRect', - get: function get() { - var transform = this.transform; - - var _originalRect2 = (0, _slicedToArray3.default)(this.originalRect, 4), - ox = _originalRect2[0], - oy = _originalRect2[1], - width = _originalRect2[2], - height = _originalRect2[3]; - - if (this.hasLayout) { - var margin = this.attr('margin'); - width += margin[1]; - height += margin[2]; - } - - var vertexs = [[ox, oy], [width + ox, oy], [ox, height + oy], [width + ox, height + oy]]; - - var transformed = vertexs.map(function (v) { - return transform.transformPoint(v[0], v[1]); - }); - - var vx = transformed.map(function (v) { - return v[0]; - }), - vy = transformed.map(function (v) { - return v[1]; - }); - - var minX = Math.min.apply(Math, (0, _toConsumableArray3.default)(vx)), - minY = Math.min.apply(Math, (0, _toConsumableArray3.default)(vy)), - maxX = Math.max.apply(Math, (0, _toConsumableArray3.default)(vx)), - maxY = Math.max.apply(Math, (0, _toConsumableArray3.default)(vy)); - - return [minX, minY].concat([maxX - minX, maxY - minY]); - } - - // rect before transform - - }, { - key: 'originalRect', - get: function get() { - var _offsetSize3 = (0, _slicedToArray3.default)(this.offsetSize, 2), - width = _offsetSize3[0], - height = _offsetSize3[1], - _attr18 = this.attr('anchor'), - _attr19 = (0, _slicedToArray3.default)(_attr18, 2), - anchorX = _attr19[0], - anchorY = _attr19[1]; - - var rect = [-anchorX * width, -anchorY * height, width, height]; - - if (this.hasLayout) { - var margin = this.attr('margin'); - rect[0] += margin[3]; - rect[1] += margin[0]; - } - return rect; - } - }, { - key: 'originalRenderRect', - get: function get() { - var bound = this.originalRect, - pos = this.xy; - - return [pos[0] + bound[0], pos[1] + bound[1], bound[2], bound[3]]; - } - }, { - key: 'renderBox', - get: function get() { - var bound = this.boundingRect, - pos = this.xy; - - return [Math.floor(pos[0] + bound[0]), Math.floor(pos[1] + bound[1]), Math.ceil(pos[0] + bound[0] + bound[2]), Math.ceil(pos[1] + bound[1] + bound[3])]; - } - }, { - key: 'renderRect', - get: function get() { - return (0, _utils.boxToRect)(this.renderBox); - } - }, { - key: 'vertices', - get: function get() { - var vertices = (0, _utils.rectVertices)(this.originalRect), - transform = this.transform, - _xy3 = (0, _slicedToArray3.default)(this.xy, 2), - x0 = _xy3[0], - y0 = _xy3[1]; - - - return vertices.map(function (v) { - var _transform$transformP3 = transform.transformPoint(v[0], v[1]), - _transform$transformP4 = (0, _slicedToArray3.default)(_transform$transformP3, 2), - x = _transform$transformP4[0], - y = _transform$transformP4[1]; - - return [x0 + x, y0 + y]; - }); - } - }, { - key: 'cache', - set: function set(context) { - if (context == null) { - this[_cachePriority] = 0; - if (this.parent && this.parent.cache) { - this.parent.cache = null; - } - } - if (this.cacheContext && context !== this.cacheContext) { - _render.cacheContextPool.put(this.cacheContext); - } - this.cacheContext = context; - }, - get: function get() { - if (this[_cachePriority] >= CACHE_PRIORITY_THRESHOLDS) { - return this.cacheContext; - } - if (this.cacheContext) { - this.cache = null; - } - return false; - } - }, { - key: 'needRender', - get: function get() { - if (this.isVirtual) return false; - - var _offsetSize4 = (0, _slicedToArray3.default)(this.offsetSize, 2), - offsetWidth = _offsetSize4[0], - offsetHeight = _offsetSize4[1]; - - if (offsetWidth <= 0 || offsetHeight <= 0) return false; - - var border = this.attr('border'); - - if (border.width <= 0 && this.attr('borderRadius') <= 0 && !this.attr('bgcolor') && !this.attr('gradients').bgcolor && !this.attr('bgimage')) { - return false; // don't need to render - } - - return true; - } - }], [{ - key: 'setAttributeEffects', - value: function setAttributeEffects() { - var effects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - if (this.prototype[_effects] == null) { - this.prototype[_effects] = effects; - } - (0, _assign2.default)(this.prototype[_effects], effects); - } - }, { - key: 'addAttributes', - value: function addAttributes() { - var _this12 = this; - - var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - (0, _entries2.default)(attrs).forEach(function (_ref18) { - var _ref19 = (0, _slicedToArray3.default)(_ref18, 2), - prop = _ref19[0], - handler = _ref19[1]; - - var getter = function getter() { - return this.get(prop); - }; - if (typeof handler !== 'function' && handler.set) { - getter = handler.get || getter; - handler = handler.set; - } - if (prop !== 'init') { - _this12.Attr.prototype.__attributeNames.add(prop); - (0, _defineProperty5.default)(_this12.Attr.prototype, prop, { - set: function set(val) { - this.__updateTag = false; - this.__reflowTag = false; - handler(this, val); - if (this.subject && this.subject.hasLayout) { - var offsetSize = this.subject.offsetSize, - layoutSize = this.subject.__layoutSize; - - if (!layoutSize || offsetSize[0] !== layoutSize[0] || offsetSize[1] !== layoutSize[1]) { - this.subject.parent.clearLayout(); - } - this.subject.__lastLayout = offsetSize; - } - if (this.subject && this.__updateTag) { - this.subject.forceUpdate(true); - if (this.__reflowTag) { - this.subject.reflow(); - } - } - // delete this.__reflowTag; - // delete this.__updateTag; - }, - - get: getter - }); - } - }); - } - }, { - key: 'defineAttributes', - value: function defineAttributes(attrs, effects) { - this.Attr = function (_Attr) { - (0, _inherits3.default)(_class3, _Attr); - - function _class3(subject) { - (0, _classCallCheck3.default)(this, _class3); - - var _this13 = (0, _possibleConstructorReturn3.default)(this, (_class3.__proto__ || (0, _getPrototypeOf2.default)(_class3)).call(this, subject)); - - if (attrs.init) attrs.init(_this13, subject); - return _this13; - } - - return _class3; - }(this.Attr); - if (attrs) this.addAttributes(attrs); - if (effects) this.setAttributeEffects(effects); - return this.Attr; - } - }]); - return BaseSprite; -}(_basenode2.default), _class2.Attr = _attr21.default, _class2.inheritAttributes = _utils.inheritAttributes, _temp), (_applyDecoratedDescriptor(_class.prototype, 'xy', [_utils.absolute], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'xy'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'attrSize', [_utils.absolute, _utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'attrSize'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'boxOffsetSize', [_utils.absolute, _utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'boxOffsetSize'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'contentSize', [_utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'contentSize'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'clientSize', [_utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'clientSize'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'offsetSize', [_utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'offsetSize'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'originalRect', [_utils.flow], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'originalRect'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'clearCache', [_dec], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'clearCache'), _class.prototype)), _class)); -exports.default = BaseSprite; - - -function drawDot9Image(drawingContext, image, clip9, borderWidth, offsetWidth, offsetHeight, clientWidth, clientHeight) { - var w = image.width, - h = image.height; - - var _ref20 = clip9 || [16, 16, 16, 16], - _ref21 = (0, _slicedToArray3.default)(_ref20, 4), - top = _ref21[0], - right = _ref21[1], - bottom = _ref21[2], - left = _ref21[3]; - - var leftTop = [0, 0, left, top], - rightTop = [w - right, 0, right, top], - rightBottom = [w - right, h - bottom, right, bottom], - leftBottom = [0, h - bottom, left, bottom]; - - var boxRight = offsetWidth - right - borderWidth, - boxBottom = offsetHeight - borderWidth - bottom; - - // draw .9 cross - var midWidth = w - left - right, - midHeight = h - top - bottom; - - if (midWidth > 0) { - var midBoxWidth = clientWidth - left - right + 2; - var leftOffset = borderWidth + left - 1; - while (midBoxWidth > 0) { - var ww = Math.min(midBoxWidth, midWidth) + 1; - var topPiece = [left - 1, 0, ww, top], - bottomPiece = [left - 1, h - bottom, ww, bottom]; - - drawingContext.drawImage.apply(drawingContext, [image].concat(topPiece, [leftOffset, borderWidth, ww, top])); - drawingContext.drawImage.apply(drawingContext, [image].concat(bottomPiece, [leftOffset, boxBottom, ww, bottom])); - midBoxWidth -= midWidth; - if (midBoxWidth > 0) { - leftOffset += midWidth; - } - } - } - - if (midHeight > 0) { - var midBoxHeight = clientHeight - top - bottom + 2; - var topOffset = borderWidth + top - 1; - while (midBoxHeight > 0) { - var hh = Math.min(midBoxHeight, midHeight) + 1; - var leftPiece = [0, top - 1, left, hh], - rightPiece = [w - right, top - 1, right, hh]; - - drawingContext.drawImage.apply(drawingContext, [image].concat(leftPiece, [borderWidth, topOffset, left, hh])); - drawingContext.drawImage.apply(drawingContext, [image].concat(rightPiece, [boxRight, topOffset, right, hh])); - midBoxHeight -= midHeight; - if (midBoxHeight > 0) { - topOffset += midHeight; - } - } - } - - if (midHeight && midWidth > 0) { - var _midBoxWidth = clientWidth - left - right + 2; - var _leftOffset = borderWidth + left - 1; - - while (_midBoxWidth > 0) { - var _midBoxHeight = clientHeight - top - bottom + 2; - var _topOffset = borderWidth + top - 1; - while (_midBoxHeight > 0) { - var _ww = Math.min(_midBoxWidth, midWidth) + 1, - _hh = Math.min(_midBoxHeight, midHeight) + 1; - var midPiece = [left - 1, top - 1, _ww, _hh]; - drawingContext.drawImage.apply(drawingContext, [image].concat(midPiece, [_leftOffset, _topOffset, _ww, _hh])); - _midBoxHeight -= midWidth; - if (_midBoxHeight > 0) { - _topOffset += midHeight; - } - } - _midBoxWidth -= midWidth; - if (_midBoxWidth > 0) { - _leftOffset += midWidth; - } - } - } - - // draw four corners - drawingContext.drawImage.apply(drawingContext, [image].concat(leftTop, [borderWidth, borderWidth, left, top])); - drawingContext.drawImage.apply(drawingContext, [image].concat(rightTop, [boxRight, borderWidth, right, top])); - drawingContext.drawImage.apply(drawingContext, [image].concat(rightBottom, [boxRight, boxBottom, left, bottom])); - drawingContext.drawImage.apply(drawingContext, [image].concat(leftBottom, [borderWidth, boxBottom, left, bottom])); -} - -function drawBgImage(drawingContext, bgimage, borderWidth, offsetWidth, offsetHeight, clientWidth, clientHeight) { - var image = bgimage.image, - display = bgimage.display, - clip9 = bgimage.clip9; - - - if (display === '.9') { - drawDot9Image(drawingContext, image, clip9, borderWidth, offsetWidth, offsetHeight, clientWidth, clientHeight); - } else { - var offset = bgimage.offset || [0, 0], - w = image.width, - h = image.height; - - if (display === 'center') { - offset = [(clientWidth - w) * 0.5, (clientHeight - h) * 0.5]; - } else if (display === 'stretch') { - w = clientWidth - offset[0]; - h = clientHeight - offset[1]; - } - drawingContext.drawImage(image, borderWidth + offset[0], borderWidth + offset[1], w, h); - - if (w > 0 && (display === 'repeat' || display === 'repeatX')) { - var cw = clientWidth - borderWidth - offset[0] - w; - while (cw > borderWidth) { - drawingContext.drawImage(image, clientWidth - cw, borderWidth + offset[1], w, h); - if (h > 0 && display === 'repeat') { - var ch = clientHeight - borderWidth - offset[1] - h; - while (ch > borderWidth) { - drawingContext.drawImage(image, clientWidth - cw, clientHeight - ch, w, h); - ch -= h; - } - } - cw -= w; - } - } - - if (h > 0 && (display === 'repeat' || display === 'repeatY')) { - var _ch = clientHeight - borderWidth - offset[1] - h; - while (_ch > borderWidth) { - drawingContext.drawImage(image, borderWidth + offset[0], clientHeight - _ch, w, h); - _ch -= h; - } - } - } -} - -(0, _nodetype.registerNodeType)('basesprite', BaseSprite); - -/***/ }), -/* 175 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(176), __esModule: true }; - -/***/ }), -/* 176 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(177); -var $Object = __webpack_require__(7).Object; -module.exports = function getOwnPropertyDescriptor(it, key) { - return $Object.getOwnPropertyDescriptor(it, key); -}; - - -/***/ }), -/* 177 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) -var toIObject = __webpack_require__(24); -var $getOwnPropertyDescriptor = __webpack_require__(56).f; - -__webpack_require__(140)('getOwnPropertyDescriptor', function () { - return function getOwnPropertyDescriptor(it, key) { - return $getOwnPropertyDescriptor(toIObject(it), key); - }; -}); - - -/***/ }), -/* 178 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(117); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -/***/ }), -/* 179 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(180); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 180 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(181), __esModule: true }; - -/***/ }), -/* 181 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(93); -__webpack_require__(62); -module.exports = __webpack_require__(46).f('iterator'); - - -/***/ }), -/* 182 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(183), __esModule: true }; - -/***/ }), -/* 183 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 184 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(185), __esModule: true }; - -/***/ }), -/* 185 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(186); -module.exports = __webpack_require__(7).Object.getPrototypeOf; - - -/***/ }), -/* 186 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 Object.getPrototypeOf(O) -var toObject = __webpack_require__(38); -var $getPrototypeOf = __webpack_require__(69); - -__webpack_require__(140)('getPrototypeOf', function () { - return function getPrototypeOf(it) { - return $getPrototypeOf(toObject(it)); - }; -}); - - -/***/ }), -/* 187 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _typeof2 = __webpack_require__(179); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; -}; - -/***/ }), -/* 188 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _getPrototypeOf = __webpack_require__(184); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _getOwnPropertyDescriptor = __webpack_require__(175); - -var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function get(object, property, receiver) { - if (object === null) object = Function.prototype; - var desc = (0, _getOwnPropertyDescriptor2.default)(object, property); - - if (desc === undefined) { - var parent = (0, _getPrototypeOf2.default)(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); - } -}; - -/***/ }), -/* 189 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _setPrototypeOf = __webpack_require__(190); - -var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); - -var _create = __webpack_require__(194); - -var _create2 = _interopRequireDefault(_create); - -var _typeof2 = __webpack_require__(179); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (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" : (0, _typeof3.default)(superClass))); - } - - subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; -}; - -/***/ }), -/* 190 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(191), __esModule: true }; - -/***/ }), -/* 191 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(192); -module.exports = __webpack_require__(7).Object.setPrototypeOf; - - -/***/ }), -/* 192 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.19 Object.setPrototypeOf(O, proto) -var $export = __webpack_require__(5); -$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(193).set }); - - -/***/ }), -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__(13); -var anObject = __webpack_require__(12); -var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = __webpack_require__(8)(Function.call, __webpack_require__(56).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(195), __esModule: true }; - -/***/ }), -/* 195 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(196); -var $Object = __webpack_require__(7).Object; -module.exports = function create(P, D) { - return $Object.create(P, D); -}; - - -/***/ }), -/* 196 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(5); -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -$export($export.S, 'Object', { create: __webpack_require__(51) }); - - -/***/ }), -/* 197 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _getOwnPropertyDescriptor = __webpack_require__(175); - -var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(142); - -var _entries2 = _interopRequireDefault(_entries); - -var _stringify = __webpack_require__(182); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(179); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _set = __webpack_require__(159); - -var _set2 = _interopRequireDefault(_set); - -var _map = __webpack_require__(105); - -var _map2 = _interopRequireDefault(_map); - -var _classCallCheck2 = __webpack_require__(115); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(116); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _desc, _value, _class; - -var _spriteMath = __webpack_require__(148); - -var _svgPathToCanvas = __webpack_require__(146); - -var _svgPathToCanvas2 = _interopRequireDefault(_svgPathToCanvas); - -var _utils = __webpack_require__(157); - -var _stylesheet = __webpack_require__(198); - -var _stylesheet2 = _interopRequireDefault(_stylesheet); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _applyDecoratedDescriptor = __webpack_require__(231); - -var _attr = (0, _symbol2.default)('attr'), - _style = (0, _symbol2.default)('style'), - _temp = (0, _symbol2.default)('store'), - _subject = (0, _symbol2.default)('subject'), - _default = (0, _symbol2.default)('default'); - -var SpriteAttr = (_dec = (0, _utils.deprecate)('You can remove this call.'), _dec2 = (0, _utils.parseValue)(_utils.parseStringFloat, _utils.oneOrTwoValues), _dec3 = (0, _utils.relative)('width'), _dec4 = (0, _utils.relative)('height'), _dec5 = (0, _utils.relative)('width'), _dec6 = (0, _utils.relative)('height'), _dec7 = (0, _utils.parseValue)(_utils.parseStringInt), _dec8 = (0, _utils.parseValue)(_utils.parseColorString), _dec9 = (0, _utils.parseValue)(parseFloat), _dec10 = (0, _utils.relative)('width'), _dec11 = (0, _utils.relative)('height'), _dec12 = (0, _utils.relative)('width'), _dec13 = (0, _utils.relative)('height'), _dec14 = (0, _utils.parseValue)(_utils.parseStringInt), _dec15 = (0, _utils.parseValue)(_utils.parseStringInt, _utils.fourValuesShortCut), _dec16 = (0, _utils.parseValue)(parseFloat), _dec17 = (0, _utils.parseValue)(parseFloat), _dec18 = (0, _utils.parseValue)(parseFloat), _dec19 = (0, _utils.parseValue)(parseFloat), _dec20 = (0, _utils.parseValue)(parseFloat), _dec21 = (0, _utils.parseValue)(parseFloat), _dec22 = (0, _utils.parseValue)(_utils.parseStringTransform), _dec23 = (0, _utils.parseValue)(_utils.parseStringFloat), _dec24 = (0, _utils.parseValue)(parseFloat), _dec25 = (0, _utils.parseValue)(_utils.parseStringFloat, _utils.oneOrTwoValues), _dec26 = (0, _utils.parseValue)(parseInt), _dec27 = (0, _utils.parseValue)(parseFloat), _dec28 = (0, _utils.parseValue)(parseFloat), _dec29 = (0, _utils.parseValue)(parseFloat), _dec30 = (0, _utils.parseValue)(parseInt), _dec31 = (0, _utils.parseValue)(_utils.parseStringInt, _utils.fourValuesShortCut), _dec32 = (0, _utils.parseValue)(parseFloat), _dec33 = (0, _utils.parseValue)(parseFloat), _dec34 = (0, _utils.parseValue)(parseFloat), _dec35 = (0, _utils.parseValue)(parseFloat), (_class = function () { - function SpriteAttr(subject) { - (0, _classCallCheck3.default)(this, SpriteAttr); - - this[_subject] = subject; - this[_default] = {}; - this[_attr] = {}; - this[_style] = {}; - - this[_temp] = new _map2.default(); // save non-serialized values - - Object.defineProperty(this, '__attributesSet', { - value: new _set2.default() - }); - Object.defineProperty(this, '__styleTag', { - writable: true, - value: false - }); - Object.defineProperty(this, '__updateTag', { - writable: true, - value: false - }); - Object.defineProperty(this, '__reflowTag', { - writable: true, - value: false - }); - - this.setDefault({ - state: 'default', - states: {}, - actions: { - 'beforeEnter:': { - duration: 300, - easing: 'ease-in' - }, - 'beforeExit:': { - duration: 300, - easing: 'ease-out' - }, - 'hide:': { - duration: 300, - easing: 'ease-in' - }, - ':hide': { - duration: 300, - easing: 'ease-out' - }, - 'hide:beforeShow': 'none', - 'beforeShow:': { - duration: 300, - easing: 'ease-in' - } - }, - enterMode: 'normal', - exitMode: 'normal', - anchor: [0, 0], - enableCache: false, - x: 0, - y: 0, - opacity: 1, - width: '', - height: '', - layoutX: 0, - layoutY: 0, - layoutWidth: '', - layoutHeight: '', - bgcolor: '', - flexGrow: 0, - flexShrink: 1, - flexBasis: 'auto', - order: 0, - position: '', - alignSelf: '', - rotate: 0, - scale: [1, 1], - translate: [0, 0], - skew: [0, 0], - transform: 'matrix(1,0,0,1,0,0)', - transformOrigin: '', - transformMatrix: [1, 0, 0, 1, 0, 0], - border: { - width: 0, - color: 'rgba(0,0,0,0)', - style: 'solid' - }, - // border: [0, 'rgba(0,0,0,0)'], - borderRadius: 0, - boxSizing: 'content-box', - dashOffset: 0, - display: '', - padding: [0, 0, 0, 0], - margin: [0, 0, 0, 0], - zIndex: 0, - offsetRotate: 'auto', - gradients: {}, - offsetDistance: 0, - filter: '', // filter: {blur, ...} - shadow: '', // shadow: {color = 'rgba(0,0,0,1)', blur = 1[, offset]} - bgimage: '', - clipOverflow: true - }); - } - - (0, _createClass3.default)(SpriteAttr, [{ - key: 'setDefault', - value: function setDefault(attrs) { - (0, _assign2.default)(this[_default], attrs); - (0, _assign2.default)(this[_attr], attrs); - } - }, { - key: 'saveObj', - value: function saveObj(key, val) { - this[_temp].set(key, val); - this.__updateTag = true; - } - }, { - key: 'loadObj', - value: function loadObj(key) { - return this[_temp].get(key); - } - }, { - key: 'quietSet', - value: function quietSet(key, val) { - var oldVal = void 0; - if (key.length > 5 && key.indexOf('data-') === 0) { - var dataKey = key.slice(5); - oldVal = this.subject.data(dataKey); - this.subject.data(dataKey, val); - } else { - if (!this.__styleTag && val != null) { - this.__attributesSet.add(key); - } - if (!this.__styleTag && val == null) { - val = this[_default][key]; - if (this.__attributesSet.has(key)) { - this.__attributesSet.delete(key); - } - } - oldVal = this[_attr][key]; - this[_attr][key] = val; - } - if (oldVal !== val && _stylesheet2.default.relatedAttributes.has(key)) { - this.subject.updateStyles(); - } - } - }, { - key: 'clearStyle', - value: function clearStyle() { - this[_style] = {}; - } - }, { - key: 'set', - value: function set(key, val) { - if (!this.__styleTag && val != null) { - this.__attributesSet.add(key); - } - if (!this.__styleTag && val == null) { - val = this[_default][key]; - if (this.__attributesSet.has(key)) { - this.__attributesSet.delete(key); - } - } - if (this.__styleTag) { - if (val != null) { - this[_style][key] = val; - } else { - delete this[_style][key]; - } - } - var oldVal = this[_attr][key]; - if ((typeof val === 'undefined' ? 'undefined' : (0, _typeof3.default)(val)) === 'object') { - if (oldVal !== val && (0, _stringify2.default)(val) === (0, _stringify2.default)(oldVal)) { - return; - } - } else if (oldVal === val) { - return; - } - if (!this.__styleTag) { - this[_attr][key] = val; - if (_stylesheet2.default.relatedAttributes.has(key)) { - this.subject.updateStyles(); - } - } - this.__updateTag = true; - // auto reflow - if (key === 'width' || key === 'height' || key === 'layoutWidth' || key === 'layoutHeight' || key === 'display' || key === 'anchor' || key === 'border' || key === 'padding' || key === 'boxSizing' || key === 'margin' || key === 'flexBasis' || key === 'flex') { - this.__reflowTag = true; - } - } - }, { - key: 'get', - value: function get(key) { - if (key.length > 5 && key.indexOf('data-') === 0) { - return this.subject.data(key.slice(5)); - } - if (this.__getStyleTag || this[_style][key] != null && !this.__attributesSet.has(key)) { - return this[_style][key]; - } - return this[_attr][key]; - } - }, { - key: 'clearCache', - value: function clearCache() { - return this; - } - }, { - key: 'clearFlow', - value: function clearFlow() { - this.__reflowTag = true; - return this; - } - }, { - key: 'merge', - value: function merge(attrs) { - var _this = this; - - if (typeof attrs === 'string') { - attrs = JSON.parse(attrs); - } - (0, _entries2.default)(attrs).forEach(function (_ref) { - var _ref2 = (0, _slicedToArray3.default)(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - - if (_this[_default][key] !== value) { - if (key !== 'offsetPath' && key !== 'offsetDistance' && key !== 'offsetRotate' && key !== 'offsetAngle' && key !== 'offsetPoint') { - // this[key] = value; - _this.subject.attr(key, value); - } else if (key === 'offsetPath') { - var offsetPath = new _svgPathToCanvas2.default(value); - _this.set('offsetPath', offsetPath.d); - _this.saveObj('offsetPath', offsetPath); - } else { - _this.set(key, value); - } - } - }); - - return this; - } - }, { - key: 'serialize', - value: function serialize() { - var _this2 = this; - - var ret = {}; - [].concat((0, _toConsumableArray3.default)(this.__attributesSet)).forEach(function (key) { - if (key !== 'id' && key.indexOf('__internal') !== 0) { - ret[key] = _this2[key]; - } - }); - (0, _entries2.default)(this).forEach(function (_ref3) { - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2), - key = _ref4[0], - value = _ref4[1]; - - if (key.indexOf('__') !== 0) { - ret[key] = value; - } - }); - var offsetAngle = this.get('offsetAngle'); - if (offsetAngle != null) ret.offsetAngle = offsetAngle; - var offsetPoint = this.get('offsetPoint'); - if (offsetPoint != null) ret.offsetPoint = offsetPoint; - return (0, _stringify2.default)(ret); - } - }, { - key: 'resetOffset', - value: function resetOffset() { - var offsetPath = this.get('offsetPath'); - var dis = this.offsetDistance; - - if (offsetPath) { - var pathObj = this.loadObj('offsetPath'); - if (pathObj) { - offsetPath = pathObj; - } else { - offsetPath = new _svgPathToCanvas2.default(offsetPath); - this.saveObj('offsetPath', offsetPath); - } - } - - if (offsetPath != null) { - var len = dis * offsetPath.getTotalLength(); - - var _offsetPath$getPointA = offsetPath.getPointAtLength(len), - _offsetPath$getPointA2 = (0, _slicedToArray3.default)(_offsetPath$getPointA, 2), - x = _offsetPath$getPointA2[0], - y = _offsetPath$getPointA2[1]; - - var angle = this.offsetRotate; - - if (angle === 'auto' || angle === 'reverse') { - if (angle === 'reverse' && len === 0) { - len = 1; - } - - var _offsetPath$getPointA3 = offsetPath.getPointAtLength(angle === 'auto' ? len + 1 : len - 1), - _offsetPath$getPointA4 = (0, _slicedToArray3.default)(_offsetPath$getPointA3, 2), - x1 = _offsetPath$getPointA4[0], - y1 = _offsetPath$getPointA4[1]; - - if (x1 === x && y1 === y) { - // last point - angle = this.get('offsetAngle'); - } else { - angle = 180 * Math.atan2(y1 - y, x1 - x) / Math.PI; - } - - if (this.offsetRotate === 'reverse') { - angle = -angle; - } - } - - var offsetAngle = this.get('offsetAngle'); - - if (offsetAngle) { - this.rotate -= offsetAngle; - } - - this.set('offsetAngle', angle); - this.rotate += angle; - - var offsetPoint = this.get('offsetPoint'); - if (offsetPoint) { - this.pos = [this.x - offsetPoint[0], this.y - offsetPoint[1]]; - } - - this.set('offsetPoint', [x, y]); - this.pos = [this.x + x, this.y + y]; - } - } - }, { - key: 'style', - get: function get() { - return this[_style]; - } - }, { - key: 'attrs', - get: function get() { - var _this3 = this; - - var ret = {}; - [].concat((0, _toConsumableArray3.default)(this.__attributeNames)).forEach(function (key) { - ret[key] = _this3[key]; - }); - [].concat((0, _toConsumableArray3.default)(this.__attributesSet)).forEach(function (key) { - ret[key] = _this3[key]; - }); - (0, _entries2.default)(this).forEach(function (_ref5) { - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2), - key = _ref6[0], - value = _ref6[1]; - - if (key.indexOf('__') !== 0) { - ret[key] = value; - } - }); - return ret; - } - }, { - key: 'subject', - get: function get() { - return this[_subject]; - } - - /* ------------------- define attributes ----------------------- */ - - }, { - key: 'id', - set: function set(val) { - return this.quietSet('id', String(val)); - } - }, { - key: 'name', - set: function set(val) { - return this.quietSet('name', String(val)); - } - }, { - key: 'class', - set: function set(val) { - return this.quietSet('class', String(val)); - } - }, { - key: 'enableCache', - set: function set(val) { - return this.set('enableCache', val); - } - }, { - key: 'anchor', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('anchor', val); - } - }, { - key: 'display', - set: function set(val) { - this.set('display', val); - } - }, { - key: 'layoutX', - set: function set(val) { - this.set('layoutX', val); - } - }, { - key: 'layoutY', - set: function set(val) { - this.set('layoutY', val); - } - }, { - key: 'x', - set: function set(val) { - this.set('x', val); - } - }, { - key: 'y', - set: function set(val) { - this.set('y', val); - } - }, { - key: 'pos', - set: function set(val) { - if (val == null) { - val = [0, 0]; - } - - var _val = val, - _val2 = (0, _slicedToArray3.default)(_val, 2), - x = _val2[0], - y = _val2[1]; - - this.x = x; - this.y = y; - }, - get: function get() { - return [this.x, this.y]; - } - }, { - key: 'bgcolor', - set: function set(val) { - this.set('bgcolor', val); - } - }, { - key: 'opacity', - set: function set(val) { - this.set('opacity', val); - } - }, { - key: 'width', - set: function set(val) { - this.set('width', val); - } - }, { - key: 'height', - set: function set(val) { - this.set('height', val); - } - }, { - key: 'layoutWidth', - set: function set(val) { - this.set('layoutWidth', val); - } - }, { - key: 'layoutHeight', - set: function set(val) { - this.set('layoutHeight', val); - } - }, { - key: 'size', - set: function set(val) { - if (val == null) { - val = ['', '']; - } - - var _val3 = val, - _val4 = (0, _slicedToArray3.default)(_val3, 2), - width = _val4[0], - height = _val4[1]; - - this.width = width; - this.height = height; - }, - get: function get() { - return [this.width, this.height]; - } - }, { - key: 'border', - set: function set(val) { - if (val == null) { - this.set('border', null); - return; - } - if (typeof val === 'number' || typeof val === 'string') { - val = { - width: parseFloat(val) - }; - } else if (Array.isArray(val)) { - val = { - width: parseFloat(val[0]), - color: (0, _utils.parseColorString)(val[1] || '#000') - }; - } else { - val.width = parseFloat(val.width); - val.color = (0, _utils.parseColorString)(val.color || '#000'); - } - val = (0, _assign2.default)({ - width: 1, - color: (0, _utils.parseColorString)('#000'), - style: 'solid' - }, val); - this.set('border', val); - } - }, { - key: 'padding', - set: function set(val) { - this.set('padding', val); - } - }, { - key: 'paddingTop', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('padding'); - margin[0] = val; - this.set('padding', margin); - }, - get: function get() { - return this.get('margin')[0]; - } - }, { - key: 'paddingRight', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('padding'); - margin[1] = val; - this.set('padding', margin); - }, - get: function get() { - return this.get('margin')[1]; - } - }, { - key: 'paddingBottom', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('padding'); - margin[2] = val; - this.set('padding', margin); - }, - get: function get() { - return this.get('margin')[2]; - } - }, { - key: 'paddingLeft', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('padding'); - margin[3] = val; - this.set('padding', margin); - }, - get: function get() { - return this.get('margin')[3]; - } - }, { - key: 'borderRadius', - set: function set(val) { - this.set('borderRadius', val); - } - }, { - key: 'boxSizing', - set: function set(val) { - this.set('boxSizing', val); - } - }, { - key: 'dashOffset', - set: function set(val) { - this.set('dashOffset', val); - } - - // transform attributes - - }, { - key: 'transform', - set: function set(val) { - var _this4 = this; - - /* - rotate: 0, - scale: [1, 1], - translate: [0, 0], - skew: [0, 0], - matrix: [1,0,0,1,0,0], - */ - (0, _assign2.default)(this[_attr], { - rotate: 0, - scale: [1, 1], - translate: [0, 0], - skew: [0, 0] - }); - - if (Array.isArray(val)) { - this.set('transformMatrix', val); - this.set('transform', 'matrix(' + val + ')'); - } else { - this.set('transformMatrix', [1, 0, 0, 1, 0, 0]); - var transformStr = []; - - (0, _entries2.default)(val).forEach(function (_ref7) { - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2), - key = _ref8[0], - value = _ref8[1]; - - if (key === 'matrix' && Array.isArray(value)) { - _this4.set('transformMatrix', new _spriteMath.Matrix(value).m); - } else { - _this4[key] = value; - } - transformStr.push(key + '(' + value + ')'); - }); - - this.set('transform', transformStr.join(' ')); - } - } - }, { - key: 'transformOrigin', - set: function set(val) { - this.set('transformOrigin', val); - } - }, { - key: 'rotate', - set: function set(val) { - var delta = this.get('rotate') - val; - this.set('rotate', val); - var transform = new _spriteMath.Matrix(this.get('transformMatrix')).rotate(-delta); - this.set('transformMatrix', transform.m); - } - }, { - key: 'scale', - set: function set(val) { - val = (0, _utils.oneOrTwoValues)(val).map(function (v) { - if (Math.abs(v) > 0.001) { - return v; - } - return 1 / v > 0 ? 0.001 : -0.001; - }); - var oldVal = this.get('scale') || [1, 1]; - var delta = [val[0] / oldVal[0], val[1] / oldVal[1]]; - this.set('scale', val); - - var offsetAngle = this.get('offsetAngle'); - if (offsetAngle) { - this.rotate -= offsetAngle; - } - - var transform = new _spriteMath.Matrix(this.get('transformMatrix')); - transform.scale.apply(transform, delta); - this.set('transformMatrix', transform.m); - - if (offsetAngle) { - this.rotate += offsetAngle; - } - } - }, { - key: 'translate', - set: function set(val) { - var oldVal = this.get('translate') || [0, 0]; - var delta = [val[0] - oldVal[0], val[1] - oldVal[1]]; - this.set('translate', val); - var transform = new _spriteMath.Matrix(this.get('transformMatrix')); - transform.translate.apply(transform, delta); - this.set('transformMatrix', transform.m); - } - }, { - key: 'skew', - set: function set(val) { - var _ref9, _transform$multiply; - - var oldVal = this.get('skew') || [0, 0]; - var invm = (_ref9 = new _spriteMath.Matrix()).skew.apply(_ref9, (0, _toConsumableArray3.default)(oldVal)).inverse(); - this.set('skew', val); - var transform = new _spriteMath.Matrix(this.get('transformMatrix')); - (_transform$multiply = transform.multiply(invm)).skew.apply(_transform$multiply, (0, _toConsumableArray3.default)(val)); - this.set('transformMatrix', transform.m); - } - }, { - key: 'zIndex', - set: function set(val) { - this.set('zIndex', val); - var subject = this.subject; - if (subject.parent) { - subject.parent.sortedChildNodes = (0, _utils.sortOrderedSprites)(subject.parent.childNodes); - } - } - - /** - linearGradients : { - bgcolor: { - direction: 30, //angle,[0,360) - rect: [x, y, w, h], - vector: [x1, y1, x2, y2], // direction/rect or from/to - colors: [ - {offset: 0, color: 'red'}, - {offset: 1, color: 'black'} - ] - } - } - */ - - }, { - key: 'linearGradients', - set: function set(val) /* istanbul ignore next */{ - this.gradients = val; - }, - get: function get() { - return this.gradients; - } - - /** - gradients : { - bgcolor: { - direction: 30, //angle,[0,360) - rect: [x, y, w, h], // rect + direction or vector - vector: [x1, y1, r1, x2, y2, r2], // vector.length -> linear or radial - colors: [ - {offset: 0, color: 'red'}, - {offset: 1, color: 'black'} - ] - } - } - */ - - }, { - key: 'gradients', - set: function set(val) { - this.set('gradients', val); - } - }, { - key: 'offsetPath', - set: function set(val) { - var offsetPath = new _svgPathToCanvas2.default(val); - - this.set('offsetPath', offsetPath.d); - this.saveObj('offsetPath', offsetPath); - this.resetOffset(); - } - }, { - key: 'offsetDistance', - set: function set(val) { - this.set('offsetDistance', val); - this.resetOffset(); - } - }, { - key: 'offsetRotate', - set: function set(val) { - if (typeof val === 'string' && val !== 'auto' && val !== 'reverse') { - val = parseFloat(val); - } - this.set('offsetRotate', val); - this.resetOffset(); - } - }, { - key: 'filter', - set: function set(val) { - this.set('filter', val); - } - }, { - key: 'shadow', - set: function set(val) { - this.set('shadow', val); - } - }, { - key: 'flexGrow', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('flexGrow', val); - } - }, { - key: 'flexShrink', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('flexShrink', val); - } - }, { - key: 'flexBasis', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - if (val && val !== 'auto') { - val = parseFloat(val); - } - this.set('flexBasis', val); - } - }, { - key: 'flex', - set: function set(val) { - if (val != null && val !== 'initial') { - if (val === 'auto') { - this.flexGrow = 1; - this.flexShrink = 1; - this.flexBasis = 'auto'; - } else if (val === 'none') { - this.flexGrow = 0; - this.flexShrink = 0; - this.flexBasis = 'auto'; - } else if (typeof val === 'string') { - var values = val.trim().split(/\s+/); - this.flexGrow = values[0]; - this.flexShrink = values[1]; - this.flexBasis = values[2]; - } else { - this.flexGrow = val; - this.flexShrink = 1; - this.flexBasis = 'auto'; - } - } else { - this.flexGrow = 0; - this.flexShrink = 1; - this.flexBasis = 'auto'; - } - }, - get: function get() { - return this.flexGrow + ' ' + this.flexShrink + ' ' + this.flexBasis; - } - }, { - key: 'order', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('order', val); - } - }, { - key: 'position', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('position', val); - } - }, { - key: 'alignSelf', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('alignSelf', val); - } - }, { - key: 'margin', - set: function set(val) { - if (this.subject.hasLayout) this.subject.parent.clearLayout(); - this.set('margin', val); - } - }, { - key: 'marginTop', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('margin'); - margin[0] = val; - this.set('margin', margin); - }, - get: function get() { - return this.get('margin')[0]; - } - }, { - key: 'marginRight', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('margin'); - margin[1] = val; - this.set('margin', margin); - }, - get: function get() { - return this.get('margin')[1]; - } - }, { - key: 'marginBottom', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('margin'); - margin[2] = val; - this.set('margin', margin); - }, - get: function get() { - return this.get('margin')[2]; - } - }, { - key: 'marginLeft', - set: function set(val) { - if (val == null) val = 0; - var margin = this.get('margin'); - margin[3] = val; - this.set('margin', margin); - }, - get: function get() { - return this.get('margin')[3]; - } - - /* - { - src: image | url, - display: 'none' | 'repeatX' | 'repeatY' | 'repeat' | 'stretch' | 'center' | '.9', - offset: [x, y], - clip9: [paddingTop, paddingRight, paddingBottom, paddingLeft], - } - */ - - }, { - key: 'bgimage', - set: function set(val) { - if (val && val.clip9) val.clip9 = (0, _utils.fourValuesShortCut)(val.clip9); - if (val && !val.image && this.subject.loadBgImage) { - val = this.subject.loadBgImage(val); - } - this.set('bgimage', val); - } - }, { - key: 'states', - set: function set(val) { - val = (0, _assign2.default)({}, val); - var states = this.get('states'); - // recover __default - (0, _entries2.default)(states).forEach(function (_ref10) { - var _ref11 = (0, _slicedToArray3.default)(_ref10, 2), - key = _ref11[0], - value = _ref11[1]; - - if (value.__default && !(key in val)) { - val[key] = value; - } - }); - this.quietSet('states', val); - } - }, { - key: 'actions', - set: function set(val) { - if (Array.isArray(val)) { - var value = {}; - val.forEach(function (v) { - var key = void 0; - var action = v.action; - if (!action) { - action = (0, _assign2.default)({}, v); - delete action.from; - delete action.to; - delete action.both; - } - if (v.both) { - if (!Array.isArray(v.both)) { - v.both = [v.both]; - } - if (v.both.length > 1) { - key = v.both.join(':'); - value[key] = (0, _assign2.default)({}, action); - key = v.both.reverse().join(':'); - value[key] = (0, _assign2.default)({}, action); - } else { - value[v.both[0] + ':'] = (0, _assign2.default)({}, action); - value[':' + v.both[0]] = (0, _assign2.default)({}, action); - } - } else { - key = (v.from || '') + ':' + (v.to || ''); - value[key] = (0, _assign2.default)({}, action); - } - }); - val = value; - } - var defaultVal = this[_default].actions; - val = (0, _assign2.default)({}, defaultVal, val); - this.quietSet('actions', val); - } - }, { - key: 'state', - set: function set(val) { - if (val == null) val = 'default'; - var oldState = this.state; - if (oldState !== val) { - this.quietSet('state', val); - var states = this.states; - - var action = null; - var toState = states[val] || {}; - var subject = this.subject; - if (!subject.__ignoreAction && subject.layer) { - var fromState = states[oldState], - actions = this.actions; - action = actions[oldState + ':' + val] || actions[':' + val] || actions[oldState + ':']; - if (!action || action === 'none') action = { duration: 0 }; - - var animation = subject.changeState(fromState, toState, action); - var tag = (0, _symbol2.default)('tag'); - animation.tag = tag; - if (animation.__reversed) { - subject.dispatchEvent('state-to-' + oldState, { - from: val, - to: oldState, - action: animation.__reversed, - cancelled: true, - animation: animation }, true, true); - } - subject.dispatchEvent('state-from-' + oldState, { from: oldState, to: val, action: action, animation: animation }, true, true); - animation.finished.then(function () { - if (animation.tag === tag) { - subject.dispatchEvent('state-to-' + val, { from: oldState, to: val, action: action, animation: animation }, true, true); - } - }); - if (oldState === 'afterExit') { - animation.finish(); - } - } else { - subject.dispatchEvent('state-from-' + oldState, { from: oldState, to: val }, true, true); - if (toState) subject.attr(toState); - subject.dispatchEvent('state-to-' + val, { from: oldState, to: val }, true, true); - } - } - } - }, { - key: 'enterMode', - set: function set(val) { - this.set('enterMode', val); - } - }, { - key: 'exitMode', - set: function set(val) { - this.set('exitMode', val); - } - }, { - key: 'clipOverflow', - set: function set(val) { - this.set('clipOverflow', !!val); - } - }]); - return SpriteAttr; -}(), (_applyDecoratedDescriptor(_class.prototype, 'clearCache', [_dec], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'clearCache'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'id', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'id'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'name', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'name'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'class', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'class'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'enableCache', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'enableCache'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'anchor', [_dec2, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'anchor'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'display', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'display'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'layoutX', [_utils.attr, _dec3, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'layoutX'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'layoutY', [_utils.attr, _dec4, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'layoutY'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'x', [_utils.attr, _dec5, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'x'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'y', [_utils.attr, _dec6, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'y'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'pos', [_dec7, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'pos'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'bgcolor', [_dec8, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'bgcolor'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'opacity', [_dec9, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'opacity'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'width', [_utils.attr, _dec10], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'width'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'height', [_utils.attr, _dec11], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'height'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'layoutWidth', [_utils.attr, _dec12], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'layoutWidth'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'layoutHeight', [_utils.attr, _dec13], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'layoutHeight'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'size', [_dec14, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'size'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'border', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'border'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'padding', [_dec15, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'padding'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'paddingTop', [_dec16, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'paddingTop'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'paddingRight', [_dec17, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'paddingRight'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'paddingBottom', [_dec18, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'paddingBottom'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'paddingLeft', [_dec19, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'paddingLeft'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'borderRadius', [_dec20, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'borderRadius'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'boxSizing', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'boxSizing'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'dashOffset', [_dec21, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'dashOffset'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'transform', [_dec22, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'transform'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'transformOrigin', [_dec23, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'transformOrigin'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'rotate', [_dec24, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'rotate'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'scale', [_dec25, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'scale'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'translate', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'translate'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'skew', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'skew'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'zIndex', [_dec26, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'zIndex'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'linearGradients', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'linearGradients'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'gradients', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'gradients'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'offsetPath', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'offsetPath'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'offsetDistance', [_dec27, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'offsetDistance'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'offsetRotate', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'offsetRotate'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'filter', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'filter'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'shadow', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'shadow'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'flexGrow', [_dec28, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'flexGrow'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'flexShrink', [_dec29, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'flexShrink'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'flexBasis', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'flexBasis'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'flex', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'flex'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'order', [_dec30, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'order'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'position', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'position'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'alignSelf', [_utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'alignSelf'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'margin', [_dec31, _utils.attr, _utils.cachable], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'margin'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'marginTop', [_dec32, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'marginTop'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'marginRight', [_dec33, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'marginRight'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'marginBottom', [_dec34, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'marginBottom'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'marginLeft', [_dec35, _utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'marginLeft'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'bgimage', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'bgimage'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'states', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'states'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'actions', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'actions'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'state', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'state'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'enterMode', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'enterMode'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'exitMode', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'exitMode'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'clipOverflow', [_utils.attr], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'clipOverflow'), _class.prototype)), _class)); -exports.default = SpriteAttr; - -/***/ }), -/* 198 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _promise = __webpack_require__(125); - -var _promise2 = _interopRequireDefault(_promise); - -var _keys = __webpack_require__(137); - -var _keys2 = _interopRequireDefault(_keys); - -var _entries = __webpack_require__(142); - -var _entries2 = _interopRequireDefault(_entries); - -var _defineProperty2 = __webpack_require__(178); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _assign = __webpack_require__(2); - -var _assign2 = _interopRequireDefault(_assign); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _toConsumableArray2 = __webpack_require__(99); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _isNan = __webpack_require__(165); - -var _isNan2 = _interopRequireDefault(_isNan); - -var _symbol = __webpack_require__(39); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _set = __webpack_require__(159); - -var _set2 = _interopRequireDefault(_set); - -var _selector = __webpack_require__(199); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var cssWhat = __webpack_require__(221); - -var cssRules = []; -var keyFrames = {}; - -var relatedAttributes = new _set2.default(['__internal_state_hover_', '__internal_state_active_']); - -var _matchedSelectors = (0, _symbol2.default)('matchedSelectors'); -var _transitions = (0, _symbol2.default)('transitions'); -var _animation = (0, _symbol2.default)('animation'); - -function parseTransitionValue(values) { - if (typeof values === 'string') values = values.trim().split(/\s*,\s*/g); - var ret = []; - for (var i = 0; i < values.length; i++) { - var value = values[i].toString(); - if (value === 'initial') { - value = 0; - } else if (/ms$/.test(value)) { - value = parseFloat(value) / 1000; - } else { - value = parseFloat(value); - } - ret.push(value); - } - return ret; -} - -function toPxValue(value, defaultWidth) { - // eslint-disable-line complexity - if (typeof value === 'string') { - var matched = value.match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/); - if (matched) { - // console.log(matched); - var v = parseFloat(matched[1]); - var unit = matched[2]; - if (unit === 'px') { - value = v; - } else if (unit === 'pt') { - value = v / 0.75; - } else if (unit === 'pc') { - value = v * 16; - } else if (unit === 'in') { - value = v * 96; - } else if (unit === 'cm') { - value = v * 96.0 / 2.54; - } else if (unit === 'mm') { - value = v * 96.0 / 25.4; - } else if (unit === 'em' || unit === 'rem' || unit === 'ex') { - if (!defaultWidth && typeof getComputedStyle === 'function' && typeof document !== 'undefined') { - var root = getComputedStyle(document.documentElement).fontSize; - defaultWidth = toPxValue(root, 16); - } - value = v * defaultWidth; - if (unit === 'ex') value /= 2; - } else if (unit === 'q') { - value = v * 96.0 / 25.4 / 4; - } else if (unit === 'vw') { - if (typeof document !== 'undefined') { - var width = document.documentElement.clientWidth; - value = width * v / 100; - } - } else if (unit === 'vh') { - if (typeof document !== 'undefined') { - var height = document.documentElement.clientHeight; - value = height * v / 100; - } - } else if (unit === 'vmax' || unit === 'vmin') { - if (typeof document !== 'undefined') { - var _width = document.documentElement.clientWidth; - var _height = document.documentElement.clientHeight; - if (unit === 'vmax') { - value = Math.max(_width, _height) * v / 100; - } else { - value = Math.min(_width, _height) * v / 100; - } - } - } - } else { - var _v = Number(value); - if (!(0, _isNan2.default)(_v)) { - value = _v; - } - } - } - return value; -} - -var CSSGetter = { - opacity: true, - width: true, - height: true, - backgroundColor: true, - flexGrow: true, - flexShrink: true, - flexBasis: true, - order: true, - position: true, - alignSelf: true, - transform: true, - transformOrigin: true, - borderTopWidth: true, - borderRightWidth: true, - borderBottomWidth: true, - borderLeftWidth: true, - borderTopColor: true, - borderRightColor: true, - borderBottomColor: true, - borderLeftColor: true, - borderTopStyle: true, - borderRightStyle: true, - borderBottomStyle: true, - borderLeftStyle: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - borderBottomRightRadius: true, - borderBottomLeftRadius: true, - boxSizing: true, - display: true, - paddingTop: true, - paddingRight: true, - paddingBottom: true, - paddingLeft: true, - marginTop: true, - marginRight: true, - marginBottom: true, - marginLeft: true, - zIndex: true, - font: true, - fontSize: true, - fontFamily: true, - fontStyle: true, - fontVariantCaps: true, - fontWeight: true, - color: true, - textAlign: true, - lineHeight: true, - lineBreak: true, - wordBreak: true, - letterSpacing: true, - textIndent: true, - transitionDuration: parseTransitionValue, - transitionTimingFunction: function transitionTimingFunction(values) { - if (typeof values === 'string') values = values.trim().split(/\s*,\s*/g); - var ret = []; - for (var i = 0; i < values.length; i++) { - var value = values[i].toString(); - if (value === 'initial') value = 'ease'; - ret.push(value); - } - return ret; - }, - - transitionDelay: parseTransitionValue, - transitionProperty: true, - animationDuration: function animationDuration(value) { - value = value.toString(); - if (value === 'initial') { - value = 0; - } else if (/ms$/.test(value)) { - value = parseFloat(value); - } else { - value = parseFloat(value) * 1000; - } - return value; - }, - animationTimingFunction: function animationTimingFunction(value) { - value = value.toString(); - return value !== 'initial' ? value : 'ease'; - }, - animationDelay: function animationDelay(value) { - value = value.toString(); - if (value === 'initial') { - value = 0; - } else if (/ms$/.test(value)) { - value = parseFloat(value); - } else { - value = parseFloat(value) * 1000; - } - return value; - }, - animationIterationCount: function animationIterationCount(value) { - value = value.toString(); - if (value === 'initial') return 1; - if (value === 'infinity') return Infinity; - return parseFloat(value); - }, - animationDirection: function animationDirection(value) { - value = value.toString(); - return value !== 'initial' ? value : 'normal'; - }, - animationFillMode: function animationFillMode(value) { - value = value.toString(); - if (value === 'initial' || value === 'none') value = 'auto'; - return value; - }, - - animationPlayState: true, - animationName: true -}; - -function parseRuleAttrs(rule) { - var styleAttrs = void 0; - var isStyleMap = !!rule.styleMap; - if (!isStyleMap) { - if (!rule.style) return; - - var props = [].concat((0, _toConsumableArray3.default)(rule.style)).map(function (key) { - return [key, rule.style[key]]; - }).filter(function (_ref) { - var _ref2 = (0, _slicedToArray3.default)(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - - return value != null; - }); - - var matched = rule.cssText.match(/--sprite-[\w-]+\s*:\s*.+?(;|$)/img); - if (matched) { - matched.forEach(function (rule) { - var _rule$split = rule.split(':'), - _rule$split2 = (0, _slicedToArray3.default)(_rule$split, 2), - key = _rule$split2[0], - value = _rule$split2[1]; - - props.push([key, value.trim().replace(/;$/, '')]); - }); - } - var isIgnore = props['--sprite-ignore']; - if (isIgnore && isIgnore !== 'false' && isIgnore !== '0') { - return; - } - - styleAttrs = props; - } - if (rule.styleMap && rule.styleMap.has('--sprite-ignore')) { - var _isIgnore = rule.styleMap.get('--sprite-ignore')[0].trim(); - if (_isIgnore !== 'false' && _isIgnore !== '0' && _isIgnore !== '') { - return; - } - } - if (rule.styleMap) { - styleAttrs = [].concat((0, _toConsumableArray3.default)(rule.styleMap)); - } - var attrs = {}, - reserved = {}; - var border = null; - var transition = null; - var gradient = {}; - - styleAttrs.forEach(function (_ref3) { - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2), - key = _ref4[0], - value = _ref4[1]; - - // eslint-disable-line complexity - if (key === '--sprite-transition') { - throw new Error('Not support --sprite-transition, instead use transition.'); - } - if (key === '--sprite-animation') { - throw new Error('Not support --sprite-animation, instead use animation.'); - } - if (key.indexOf('--sprite-') === 0) { - key = key.replace('--sprite-', ''); - key = toCamel(key); - if (isStyleMap) value = value[0][0].trim(); - if (key === 'gradient') { - // --sprite-gradient: bgcolor,color vector(0, 150, 150, 0) 0,#fff 0.5,rgba(33, 33, 77, 0.7) 1,rgba(128, 45, 88, 0.5) - var _matched = value.match(/(.+?)vector\((.+?)\)(.+)/); - if (_matched) { - var properties = _matched[1].trim().split(/\s*,\s*/g), - vector = _matched[2].split(',').map(function (s) { - return Number(s.trim()); - }), - colors = _matched[3].trim().split(/\s+/).map(function (s) { - var m = s.match(/^([\d.]+),(.*)/); - if (m) { - return { offset: Number(m[1].trim()), color: m[2].trim() }; - } - return null; - }).filter(function (c) { - return c != null; - }); - properties.forEach(function (prop) { - gradient[prop] = { vector: vector, colors: colors }; - }); - } - } else if (key === 'borderStyle') { - border = border || { width: 1, color: 'rgba(0,0,0,0)' }; - border.style = value; - } else if (key === 'borderWidth') { - border = border || { width: 1, color: 'rgba(0,0,0,0)' }; - border.width = toPxValue(value); - } else if (key === 'borderColor') { - border = border || { width: 1, color: 'rgba(0,0,0,0)' }; - border.color = value; - } else if (key === 'border') { - var values = value.split(/\s+/); - - var _values = (0, _slicedToArray3.default)(values, 3), - style = _values[0], - width = _values[1], - color = _values[2]; - - border = border || {}; - border.style = style; - border.width = toPxValue(width); - border.color = color; - } else { - if (key !== 'fontSize' && typeof value === 'string') { - if (/,/.test(value)) { - var _values2 = value.split(','); - value = _values2.map(function (v) { - return toPxValue(v.trim()); - }); - } else { - value = toPxValue(value); - } - } - reserved[key] = value; - } - } else { - key = toCamel(key); - if (key in CSSGetter) { - if (typeof CSSGetter[key] === 'function') { - value = CSSGetter[key](value); - } else { - if (isStyleMap) { - value = value[0].toString(); - } - if (key !== 'fontSize') { - value = toPxValue(value); - } - } - if (/^animation/.test(key)) { - attrs.animation = attrs.animation || {}; - attrs.animation[key] = value; - return; - } - - if (value === 'initial') return; - if (key === 'backgroundColor') key = 'bgcolor'; - if (key === 'fontVariantCaps') key = 'fontVariant'; - if (key === 'lineHeight' && value === 'normal') value = ''; - - if (/^border/.test(key)) { - key = key.replace(/^border(Top|Right|Bottom|Left)/, '').toLowerCase(); - if (key === 'width') value = toPxValue(value); - if (/radius$/.test(key)) { - attrs.borderRadius = toPxValue(value); - } else { - border = border || {}; - border[key] = value; - } - } else if (key === 'transitionDelay') { - transition = transition || {}; - transition.delay = value; - } else if (key === 'transitionDuration') { - transition = transition || {}; - transition.duration = value; - } else if (key === 'transitionTimingFunction') { - transition = transition || {}; - transition.easing = value; - } else if (key === 'transitionProperty') { - transition = transition || {}; - transition.properties = value; - } else { - attrs[key] = value; - } - } - } - }); - if (border) { - (0, _assign2.default)(attrs, { border: border }); - } - (0, _assign2.default)(attrs, reserved, gradient); - if (transition) { - transition.properties = transition.properties || 'all'; - transition.delay = transition.delay || [0]; - transition.duration = transition.duration || [0]; - transition.easing = transition.easing || ['ease']; - attrs.transitions = []; - var properties = transition.properties.split(',').map(function (p) { - return p.trim(); - }); - properties.forEach(function (key, i) { - var _attrs = null; - if (key.indexOf('--sprite-') === 0) { - key = key.replace('--sprite-', ''); - } - key = toCamel(key); - if (key !== 'borderRadius' && /^border/.test(key)) { - key = 'border'; - } - if (key === 'backgroundColor' || key === 'background') key = 'bgcolor'; - if (key === 'fontVariantCaps') key = 'fontVariant'; - if (key === 'all') { - _attrs = (0, _assign2.default)({}, attrs); - delete _attrs.transitions; - delete _attrs.animation; - } else if (key in attrs) { - _attrs = (0, _defineProperty3.default)({}, key, attrs[key]); - } - if (_attrs) { - attrs.transitions.push({ - easing: transition.easing[i], - attrs: _attrs, - delay: transition.delay[i], - duration: transition.duration[i] }); - } - }); - } - if ('fontSize' in attrs || 'fontFamily' in attrs || 'fontStyle' in attrs || 'fontVariant' in attrs || 'fontWeight' in attrs) { - // for font inherit - var parseFont = __webpack_require__(230); - var font = attrs.font || 'normal normal normal 16px Arial'; - - var _parseFont = parseFont(font), - style = _parseFont.style, - variant = _parseFont.variant, - weight = _parseFont.weight, - family = _parseFont.family, - size = _parseFont.size, - unit = _parseFont.unit; - - attrs.font = (attrs.fontStyle || style) + ' ' + (attrs.fontVariant || variant) + ' ' + (attrs.fontWeight || weight) + ' ' + (attrs.fontSize || size + unit) + ' ' + (attrs.fontFamily || family); - - delete attrs.fontSize; - delete attrs.fontFamily; - delete attrs.fontVariant; - delete attrs.fontWeight; - delete attrs.fontStyle; - } - return attrs; -} - -function parseFrames(rule) { - var rules = rule.cssRules || rule.rules; - if (rules && rules.length > 0) { - var frames = []; - for (var i = 0; i < rules.length; i++) { - var _rule = rules[i]; - var offset = parseFloat(_rule.keyText) / 100; - var frame = parseRuleAttrs(_rule); - frame.offset = offset; - frames.push(frame); - } - return frames; - } -} - -function toCamel(str) { - return str.replace(/([^-])(?:-+([^-]))/g, function ($0, $1, $2) { - return $1 + $2.toUpperCase(); - }); -} - -function resolveToken(token) { - // eslint-disable-line complexity - var ret = '', - priority = 0, - valid = true; - - if (token.type === 'tag') { - ret = token.name; - priority = 1; - } else if (token.type === 'universal') { - ret = '*'; - priority = 0; - } else if (token.type === 'pseudo') { - var data = token.data; - if (data != null) { - if (token.name !== 'not') { - ret = ':' + token.name + '(' + token.data + ')'; - } else { - data.forEach(function (rules) { - rules.forEach(function (token) { - var r = resolveToken(token); - ret += r.token; - valid = r.valid; - }); - }); - } - } else { - ret = ':' + token.name; - } - // not support yet - valid = token.name !== 'focus' && token.name !== 'link' && token.name !== 'visited' && token.name !== 'lang'; - priority = token.name !== 'not' ? 1000 : 0; - } else if (token.type === 'pseudo-element') { - ret = '::' + token.name; - priority = 1; - valid = false; // pseudo-element not support - } else if (token.type === 'attribute') { - var name = token.name, - action = token.action, - value = token.value; - - - relatedAttributes.add(name); - - if (action === 'exists') { - ret = '[' + name + ']'; - } else if (action === 'equals') { - if (name === 'id') { - ret = '#' + value; - } else { - ret = '[' + name + '="' + value + '"]'; - } - } else if (action === 'not') { - ret = '[' + name + '!="' + value + '"]'; - } else if (action === 'start') { - ret = '[' + name + '^="' + value + '"]'; - } else if (action === 'end') { - ret = '[' + name + '$="' + value + '"]'; - } else if (action === 'element') { - if (name === 'class') { - ret = '.' + value; - } else { - ret = '[' + name + '~="' + value + '"]'; - } - } else if (action === 'any') { - ret = '[' + name + '*="' + value + '"]'; - } else if (action === 'hyphen') { - ret = '[' + name + '|="' + value + '"]'; - } - if (name === 'id' && action === 'equals') { - priority = 1000000; - } else { - priority = 1000; - } - } else if (token.type === 'child') { - ret = '>'; - priority = 0; - } else if (token.type === 'parent') { - ret = '<'; - priority = 0; - } else if (token.type === 'sibling') { - ret = '~'; - priority = 0; - } else if (token.type === 'adjacent') { - ret = '+'; - priority = 0; - } else if (token.type === 'descendant') { - ret = ' '; - priority = 0; - } else { - throw new Error('unknown token!', token); - } - return { token: ret, priority: priority, valid: valid }; -} - -var order = 0; - -exports.default = { - add: function add(rules) { - var fromDoc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - (0, _entries2.default)(rules).forEach(function (_ref5) { - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2), - rule = _ref6[0], - attributes = _ref6[1]; - - var selectors = cssWhat(rule); - for (var i = 0; i < selectors.length; i++) { - var selector = selectors[i]; - var tokens = selector.map(function (token) { - return resolveToken(token); - }).filter(function (token) { - return token.valid; - }); - - var r = tokens.reduce(function (a, b) { - a.priority += b.priority; - a.tokens.push(b.token); - return a; - }, { tokens: [], priority: 0 }); - - var selectorStr = r.tokens.join(''); - - try { - var compiled = (0, _selector.compile)(selectorStr); - - var _rule2 = { - selector: selectorStr, - compiled: compiled, - priority: r.priority, - attributes: attributes, - order: order++, - fromDoc: fromDoc - }; - cssRules.push(_rule2); - } catch (ex) { - console.warn(ex.message); - } - } - }); - cssRules.sort(function (a, b) { - var d = a.priority - b.priority; - return d !== 0 ? d : a.order - b.order; - }); - }, - fromDocumentCSS: function fromDocumentCSS(stylesheets, override) { - if (override) { - cssRules = cssRules.filter(function (r) { - return !r.fromDoc; - }); - } - if (typeof document === 'undefined') return; - if (!stylesheets) stylesheets = document.styleSheets; - if (stylesheets) { - var styleRules = {}; - for (var i = 0; i < stylesheets.length; i++) { - var rules = null; - try { - rules = stylesheets[i].cssRules || stylesheets[i].rules; - } catch (ex) { - rules = null; - } - - if (!rules) continue; // eslint-disable-line no-continue - for (var j = 0; j < rules.length; j++) { - var rule = rules[j]; - var selectorText = rule.selectorText; - - if (rule.type !== 1 && rule.type !== 7) { - // is not style rule or keyframesrule - continue; // eslint-disable-line no-continue - } - - if (rule.type === 7) { - var frames = parseFrames(rule); - keyFrames[rule.name] = frames; - continue; // eslint-disable-line no-continue - } - - var attrs = parseRuleAttrs(rule); - - if (attrs) { - styleRules[selectorText] = styleRules[selectorText] || {}; - (0, _assign2.default)(styleRules[selectorText], attrs); - } - } - } - this.add(styleRules, true); - } - }, - computeStyle: function computeStyle(el) { - if (!el.layer || !el.attributes) return {}; - var attrs = {}; - var selectors = []; - var transitions = []; - cssRules.forEach(function (rule) { - var compiled = rule.compiled, - selector = rule.selector, - attributes = rule.attributes; - - if ((0, _selector.isMatched)(el, compiled)) { - (0, _assign2.default)(attrs, attributes); - // console.log(JSON.stringify(attrs.transitions)); - if (attrs.transitions) { - transitions.push.apply(transitions, (0, _toConsumableArray3.default)(attrs.transitions)); - attrs.transitions.forEach(function (t) { - (0, _keys2.default)(t.attrs).forEach(function (k) { - // if(k in attrs) delete attrs[k]; - el.attributes.__getStyleTag = true; - if (el.attributes[k]) { - attrs[k] = el.attributes[k]; - } - el.attributes.__getStyleTag = false; - // console.log(el.attributes.style[k]); - }); - }); - delete attrs.transitions; - } - selectors.push(selector); - } - }); - var matchedSelectors = selectors.join(); - if (el[_matchedSelectors] !== matchedSelectors) { - // console.log(transitions); - if (attrs.animation) { - var animation = attrs.animation; - var delay = animation.animationDelay, - direction = animation.animationDirection, - duration = animation.animationDuration, - fill = animation.animationFillMode, - iterations = animation.animationIterationCount, - name = animation.animationName, - playState = animation.animationPlayState, - easing = animation.animationTimingFunction; - - var frames = keyFrames[name]; - if (frames) { - if (el[_animation]) { - el[_animation].cancel(); - } - el[_animation] = el.animate(frames, { duration: duration, delay: delay, fill: fill, iterations: iterations, easing: easing, direction: direction }); - el.setReleaseKey(_animation); - if (playState !== 'running') el[_animation].pause(); - } else { - console.warn('Unknow animation: ' + name); - } - delete attrs.animation; - } - - if (el[_transitions]) { - el[_transitions].forEach(function (t) { - t.cancel(true); - el.attributes.__styleTag = true; - el.attr(t.__attrs); - el.attributes.__styleTag = false; - }); - delete el[_transitions]; - } - - if (transitions.length > 0) { - el[_transitions] = []; - el.setReleaseKey(_transitions); - _promise2.default.all(transitions.map(function (t) { - var attrs = t.attrs, - delay = t.delay, - duration = t.duration, - easing = t.easing; - - var transition = el.transition({ duration: duration, delay: delay }, easing, true); - transition.__attrs = attrs; - el[_transitions].push(transition); - return transition.attr((0, _assign2.default)({}, attrs)); - })).then(function () { - el.dispatchEvent('transitionend', {}, true, true); - }); - } - el.dispatchEvent('stylechange', { oldSelectors: el[_matchedSelectors], newSelectors: matchedSelectors }, true, true); - el[_matchedSelectors] = matchedSelectors; - el.attributes.clearStyle(); - el.attributes.__styleTag = true; - el.attr(attrs); - el.attributes.__styleTag = false; - // if(el.forceUpdate) el.forceUpdate(); - } - }, - - get relatedAttributes() { - return relatedAttributes; - }, - get cssRules() { - return cssRules; - } -}; - -/***/ }), -/* 199 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _slicedToArray2 = __webpack_require__(90); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _from = __webpack_require__(100); - -var _from2 = _interopRequireDefault(_from); - -exports.querySelectorAll = querySelectorAll; -exports.querySelector = querySelector; -exports.isMatched = isMatched; -exports.compile = compile; - -var _utils = __webpack_require__(157); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var CSSselect = __webpack_require__(200); - -CSSselect.pseudos.hover = function (next) { - return !!next.attr('__internal_state_hover_'); -}; - -CSSselect.pseudos.active = function (next) { - return !!next.attr('__internal_state_active_'); -}; - -function isTag(elem) { - return elem.nodeType === 1 || typeof elem.nodeType === 'string'; -} - -function getChildren(elem) { - if (elem.scene_) { - return [elem.scene_]; - } - if (elem.layer_) { - return [elem.layer_]; - } - return (0, _from2.default)(elem.children || []); -} - -function getParent(elem) { - if (elem.nodeType === 1) return elem.parentElement; - if (typeof elem.nodeType === 'string') { - return elem.parent || elem.canvas || elem.container; - } -} - -function removeSubsets(nodes) { - var idx = nodes.length, - node = void 0, - ancestor = void 0, - replace = void 0; - - // Check if each node (or one of its ancestors) is already contained in the - // array. - while (--idx > -1) { - node = ancestor = nodes[idx]; - - // Temporarily remove the node under consideration - nodes[idx] = null; - replace = true; - - while (ancestor) { - if (nodes.indexOf(ancestor) > -1) { - replace = false; - nodes.splice(idx, 1); - break; - } - ancestor = getParent(ancestor); - } - - // If the node has been found to be unique, re-insert it. - if (replace) { - nodes[idx] = node; - } - } - - return nodes; -} - -var adapter = { - isTag: isTag, - existsOne: function existsOne(test, elems) { - return elems.some(function (elem) { - return isTag(elem) ? test(elem) || adapter.existsOne(test, getChildren(elem)) : false; - }); - }, - getSiblings: function getSiblings(elem) { - var parent = getParent(elem); - return parent && getChildren(parent); - }, - - getChildren: getChildren, - getParent: getParent, - getAttributeValue: function getAttributeValue(elem, name) { - if (elem.nodeType === 1 && name === 'class' || name === 'id') { - return elem[name]; - } - if (this.hasAttrib(elem, name)) { - var val = elem.attributes[name]; - if (Array.isArray(val)) { - val = '[' + val.join() + ']'; - } - return val; - } - }, - hasAttrib: function hasAttrib(elem, name) { - return elem.attributes[name] != null; - }, - - removeSubsets: removeSubsets, - getName: function getName(elem) { - return elem.tagName.toLowerCase(); - }, - - findOne: function findOne(test, arr) { - var elem = null; - - for (var i = 0, l = arr.length; i < l && !elem; i++) { - if (test(arr[i])) { - elem = arr[i]; - } else { - var childs = getChildren(arr[i]); - if (childs && childs.length > 0) { - elem = findOne(test, childs); - } - } - } - - return elem; - }, - findAll: function findAll(test, elems) { - var result = []; - for (var i = 0, j = elems.length; i < j; i++) { - if (!isTag(elems[i])) continue; // eslint-disable-line - if (test(elems[i])) result.push(elems[i]); - var childs = getChildren(elems[i]); - if (childs) result = result.concat(findAll(test, childs)); - } - return result; - }, - getText: function getText(elem) { - if (Array.isArray(elem)) return elem.map(getText).join(''); - - if (isTag(elem)) return getText(getChildren(elem)); - - if (elem.nodeType === 3) return elem.nodeValue; - - if (typeof elem.nodeType === 'string') return elem.text; - - return ''; - } -}; - -function resolveQuery(query) { - if (typeof query !== 'string') return query; - var matches = query.match(/\[(bgcolor|fillColor|strokeColor|color)\s*=\s*['"]?\w+['"]?\]/g); - if (matches) { - matches = matches.map(function (matched) { - var kv = matched.slice(1, -1).split('='); - var color = (0, _utils.parseColorString)(kv[1].replace(/['"]/g, '')); - return [matched, '[' + kv[0] + '="' + color + '"]']; - }); - matches.forEach(function (_ref) { - var _ref2 = (0, _slicedToArray3.default)(_ref, 2), - r = _ref2[0], - p = _ref2[1]; - - query = query.replace(r, p); - }); - } - matches = query.match(/\[\w+\s*=\s*['"]\[.+?\]['"]\]/g); - if (matches) { - matches = matches.map(function (matched) { - var kv = matched.slice(1, -1).split('='); - var arr = kv[1].slice(2, -2).split(/,/g).map(function (k) { - return k.trim(); - }); - return [matched, '[' + kv[0] + '="[' + arr + ']"]']; - }); - matches.forEach(function (_ref3) { - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2), - r = _ref4[0], - p = _ref4[1]; - - query = query.replace(r, p); - }); - } - return query; -} - -function querySelectorAll(query, elems) { - return CSSselect.selectAll(resolveQuery(query), elems, { adapter: adapter }); -} - -function querySelector(query, elems) { - return CSSselect.selectOne(resolveQuery(query), elems, { adapter: adapter }); -} - -function isMatched(elem, query) { - return CSSselect.is(elem, resolveQuery(query), { adapter: adapter }); -} - -function compile(query) { - return CSSselect.compile(resolveQuery(query), { adapter: adapter }); -} - -/***/ }), -/* 200 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = CSSselect; - -var DomUtils = __webpack_require__(201); -var falseFunc = __webpack_require__(219).falseFunc; -var compileRaw = __webpack_require__(220); - -function wrapCompile(func) { - return function addAdapter(selector, options, context) { - options = options || {}; - options.adapter = options.adapter || DomUtils; - - return func(selector, options, context); - }; -} - -var compile = wrapCompile(compileRaw); -var compileUnsafe = wrapCompile(compileRaw.compileUnsafe); - -function getSelectorFunc(searchFunc) { - return function select(query, elems, options) { - options = options || {}; - options.adapter = options.adapter || DomUtils; - - if (typeof query !== "function") { - query = compileUnsafe(query, options, elems); - } - if (query.shouldTestNextSiblings) { - elems = appendNextSiblings((options && options.context) || elems, options.adapter); - } - if (!Array.isArray(elems)) elems = options.adapter.getChildren(elems); - else elems = options.adapter.removeSubsets(elems); - return searchFunc(query, elems, options); - }; -} - -function getNextSiblings(elem, adapter) { - var siblings = adapter.getSiblings(elem); - if (!Array.isArray(siblings)) return []; - siblings = siblings.slice(0); - while (siblings.shift() !== elem); - return siblings; -} - -function appendNextSiblings(elems, adapter) { - // Order matters because jQuery seems to check the children before the siblings - if (!Array.isArray(elems)) elems = [elems]; - var newElems = elems.slice(0); - - for (var i = 0, len = elems.length; i < len; i++) { - var nextSiblings = getNextSiblings(newElems[i], adapter); - newElems.push.apply(newElems, nextSiblings); - } - return newElems; -} - -var selectAll = getSelectorFunc(function selectAll(query, elems, options) { - return query === falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems); -}); - -var selectOne = getSelectorFunc(function selectOne(query, elems, options) { - return query === falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems); -}); - -function is(elem, query, options) { - options = options || {}; - options.adapter = options.adapter || DomUtils; - return (typeof query === "function" ? query : compile(query, options))(elem); -} - -/* - the exported interface -*/ -function CSSselect(query, elems, options) { - return selectAll(query, elems, options); -} - -CSSselect.compile = compile; -CSSselect.filters = compileRaw.Pseudos.filters; -CSSselect.pseudos = compileRaw.Pseudos.pseudos; - -CSSselect.selectAll = selectAll; -CSSselect.selectOne = selectOne; - -CSSselect.is = is; - -//legacy methods (might be removed) -CSSselect.parse = compile; -CSSselect.iterate = selectAll; - -//hooks -CSSselect._compileUnsafe = compileUnsafe; -CSSselect._compileToken = compileRaw.compileToken; - - -/***/ }), -/* 201 */ -/***/ (function(module, exports, __webpack_require__) { - -var DomUtils = module.exports; - -[ - __webpack_require__(202), - __webpack_require__(214), - __webpack_require__(215), - __webpack_require__(216), - __webpack_require__(217), - __webpack_require__(218) -].forEach(function(ext){ - Object.keys(ext).forEach(function(key){ - DomUtils[key] = ext[key].bind(DomUtils); - }); -}); - - -/***/ }), -/* 202 */ -/***/ (function(module, exports, __webpack_require__) { - -var ElementType = __webpack_require__(203), - getOuterHTML = __webpack_require__(204), - isTag = ElementType.isTag; - -module.exports = { - getInnerHTML: getInnerHTML, - getOuterHTML: getOuterHTML, - getText: getText -}; - -function getInnerHTML(elem, opts){ - return elem.children ? elem.children.map(function(elem){ - return getOuterHTML(elem, opts); - }).join("") : ""; -} - -function getText(elem){ - if(Array.isArray(elem)) return elem.map(getText).join(""); - if(isTag(elem)) return elem.name === "br" ? "\n" : getText(elem.children); - if(elem.type === ElementType.CDATA) return getText(elem.children); - if(elem.type === ElementType.Text) return elem.data; - return ""; -} - - -/***/ }), -/* 203 */ -/***/ (function(module, exports) { - -//Types of elements found in the DOM -module.exports = { - Text: "text", //Text - Directive: "directive", // - Comment: "comment", // - Script: "script", //