text: /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId]) {
  /******/ 			return installedModules[moduleId].exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// define __esModule on exports
  /******/ 	__webpack_require__.r = function(exports) {
  /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 		}
  /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 	};
  /******/
  /******/ 	// create a fake namespace object
  /******/ 	// mode & 1: value is a module id, require it
  /******/ 	// mode & 2: merge all properties of value into the ns
  /******/ 	// mode & 4: return value when already ns object
  /******/ 	// mode & 8|1: behave like require
  /******/ 	__webpack_require__.t = function(value, mode) {
  /******/ 		if(mode & 1) value = __webpack_require__(value);
  /******/ 		if(mode & 8) return value;
  /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  /******/ 		var ns = Object.create(null);
  /******/ 		__webpack_require__.r(ns);
  /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  /******/ 		return ns;
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = "./script.js");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "./carouselview.js":
  /*!*************************!*\
    !*** ./carouselview.js ***!
    \*************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Carousel; });\n/* harmony import */ var _gesture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gesture */ \"./gesture.js\");\n/* harmony import */ var _teacher_animation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./teacher/animation.js */ \"./teacher/animation.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar PROPERTY_SYMBOL = Symbol('property');\nvar ATTRIBUTE_SYMBOL = Symbol('attribute');\nvar EVENT_SYMBOL = Symbol('event');\nvar STATE_SYMBOL = Symbol('state');\n\nvar Carousel =\n/*#__PURE__*/\nfunction () {\n  function Carousel(config) {\n    _classCallCheck(this, Carousel);\n\n    this[ATTRIBUTE_SYMBOL] = Object.create(null); // attribute类型使用此类型创建\n\n    this[PROPERTY_SYMBOL] = Object.create(null); // property类型使用此类型创建\n\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this[ATTRIBUTE_SYMBOL].container = document.createElement(\"div\");\n    this.init(config);\n  }\n\n  _createClass(Carousel, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this[ATTRIBUTE_SYMBOL].container);\n      this.mounted();\n    }\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this[ATTRIBUTE_SYMBOL].container);\n    }\n  }, {\n    key: \"init\",\n    value: function init(config) {\n      var container = this[ATTRIBUTE_SYMBOL].container;\n      this[ATTRIBUTE_SYMBOL].position = 0; // 私有属性\n\n      this[ATTRIBUTE_SYMBOL].offsetTimeStart = 0; // 私有属性\n\n      this[ATTRIBUTE_SYMBOL].nextPictureTimer = null; // 私有属性\n\n      this[ATTRIBUTE_SYMBOL].timeline = new _teacher_animation_js__WEBPACK_IMPORTED_MODULE_1__[\"Timeline\"](); // 私有属性\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this = this;\n\n      this[ATTRIBUTE_SYMBOL].nextPictureTimer = setTimeout(function () {\n        return _this.nextPicture();\n      }, 3000);\n    }\n  }, {\n    key: \"nextPicture\",\n    value: function nextPicture() {\n      var _this2 = this;\n\n      var children = this[ATTRIBUTE_SYMBOL].children;\n      var tl = this[ATTRIBUTE_SYMBOL].timeline;\n      var nextPosition = this[ATTRIBUTE_SYMBOL].position + 1;\n      nextPosition = nextPosition % children.length;\n      var current = children[this[ATTRIBUTE_SYMBOL].position],\n          next = children[nextPosition]; //把next摆到正确的位置\n      //next.style.transition = \"ease 0s\";\n\n      next.style.transform = \"translate(\".concat(100 - 100 * nextPosition, \"%)\");\n      this[ATTRIBUTE_SYMBOL].offsetTimeStart = Date.now();\n      tl.addAnimation(new _teacher_animation_js__WEBPACK_IMPORTED_MODULE_1__[\"DOMElementStyleNumberAnimation\"](current, \"transform\", 0, -this.parentWidth * this[ATTRIBUTE_SYMBOL].position, 1000, -this.parentWidth - this.parentWidth * this[ATTRIBUTE_SYMBOL].position, function (v) {\n        return \"translateX(\".concat(v, \"px)\");\n      }));\n      tl.addAnimation(new _teacher_animation_js__WEBPACK_IMPORTED_MODULE_1__[\"DOMElementStyleNumberAnimation\"](next, \"transform\", 0, this.parentWidth - this.parentWidth * nextPosition, 1000, -this.parentWidth * nextPosition, function (v) {\n        return \"translateX(\".concat(v, \"px)\");\n      }));\n      tl.restart();\n      this[ATTRIBUTE_SYMBOL].position = nextPosition;\n      this[ATTRIBUTE_SYMBOL].nextPictureTimer = setTimeout(function () {\n        return _this2.nextPicture();\n      }, 3000);\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"addPan\",\n    value: function addPan() {\n      var _this3 = this;\n\n      var startTransform;\n      var offset = 0;\n      this[ATTRIBUTE_SYMBOL].container.addEventListener(\"mousedown\", function (event) {\n        var tl = _this3[ATTRIBUTE_SYMBOL].timeline;\n        tl.pause();\n        var currentTime = Date.now();\n\n        if (currentTime - _this3[ATTRIBUTE_SYMBOL].offsetTimeStart < 1000) {\n          offset = _this3.parentWidth - Object(_teacher_animation_js__WEBPACK_IMPORTED_MODULE_1__[\"ease\"])((currentTime - _this3[ATTRIBUTE_SYMBOL].offsetTimeStart) / 1000) * _this3.parentWidth;\n          console.log(offset);\n        } else {\n          offset = 0;\n        }\n\n        clearTimeout(_this3[ATTRIBUTE_SYMBOL].nextPictureTimer);\n      });\n      this[ATTRIBUTE_SYMBOL].container.addEventListener(\"pan\", function (event) {\n        var children = _this3[ATTRIBUTE_SYMBOL].children;\n        var current = children[_this3[ATTRIBUTE_SYMBOL].position];\n        var nextPosition = (_this3[ATTRIBUTE_SYMBOL].position + 1) % children.length;\n        var next = children[nextPosition];\n        var lastPosition = (children.length + _this3[ATTRIBUTE_SYMBOL].position - 1) % children.length;\n        var last = children[lastPosition];\n        last.style.transition = \"ease 0s\";\n        last.style.transform = \"translate(\".concat(-_this3.parentWidth - _this3.parentWidth * lastPosition + event.dx + offset, \"px)\");\n        next.style.transition = \"ease 0s\";\n        next.style.transform = \"translate(\".concat(_this3.parentWidth - _this3.parentWidth * nextPosition + event.dx + offset, \"px)\");\n        current.style.transition = \"ease 0s\";\n        current.style.transform = \"translate(\".concat(-_this3.parentWidth * _this3[ATTRIBUTE_SYMBOL].position + event.dx + offset, \"px)\");\n        /*// TODO: 比较 lou 的方式，后续需要优化\r\n        window['is_carousel'] = true;*/\n      });\n      this[ATTRIBUTE_SYMBOL].container.addEventListener(\"panend\", function (event) {\n        var children = _this3[ATTRIBUTE_SYMBOL].children;\n        var isLeft;\n\n        if (event.isFlick) {\n          if (event.dx > 0) {\n            _this3[ATTRIBUTE_SYMBOL].position--;\n            isLeft = true;\n          }\n\n          if (event.dx < 0) {\n            _this3[ATTRIBUTE_SYMBOL].position++;\n            isLeft = false;\n          }\n        } else {\n          if (event.dx > _this3.parentWidth / 2) {\n            _this3[ATTRIBUTE_SYMBOL].position--;\n            isLeft = true;\n          } else if (event.dx < -_this3.parentWidth / 2) {\n            _this3[ATTRIBUTE_SYMBOL].position++;\n            isLeft = false;\n          } else {\n            isLeft = event.dx <= 0;\n          }\n        }\n\n        _this3[ATTRIBUTE_SYMBOL].position = (children.length + _this3[ATTRIBUTE_SYMBOL].position) % children.length;\n        var current = children[_this3[ATTRIBUTE_SYMBOL].position];\n        var nextPosition = (_this3[ATTRIBUTE_SYMBOL].position + 1) % children.length;\n        var next = children[nextPosition];\n        var lastPosition = (children.length + _this3[ATTRIBUTE_SYMBOL].position - 1) % children.length;\n        var last = children[lastPosition];\n\n        if (!isLeft) {\n          last.style.transition = \"\";\n        } else {\n          last.style.transition = \"ease 0s\";\n        }\n\n        last.style.transform = \"translate(\".concat(-_this3.parentWidth - _this3.parentWidth * lastPosition, \"px)\");\n\n        if (isLeft) {\n          next.style.transition = \"\";\n        } else {\n          next.style.transition = \"ease 0s\";\n        }\n\n        next.style.transform = \"translate(\".concat(_this3.parentWidth - _this3.parentWidth * nextPosition, \"px)\");\n        current.style.transition = \"\";\n        current.style.transform = \"translate(\".concat(-_this3.parentWidth * _this3[ATTRIBUTE_SYMBOL].position, \"px)\");\n        /*// TODO: 比较 lou 的方式，后续需要优化\r\n        setTimeout(function () {\r\n            window['is_carousel'] = false;\r\n        }, 1200);*/\n      });\n      this[ATTRIBUTE_SYMBOL].container.addEventListener(\"mousedown\", function (event) {\n        return event.preventDefault();\n      });\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) {\n        this[EVENT_SYMBOL][type] = new Set();\n      }\n\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) {\n        return;\n      }\n\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call(this);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name === \"style\") {\n        return this[ATTRIBUTE_SYMBOL].container.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name === \"style\") {\n        this[ATTRIBUTE_SYMBOL].container.setAttribute(\"style\", value);\n      }\n\n      if (name === 'pictures') {\n        var data = value || [];\n        var i = data.length;\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = data[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var d = _step2.value;\n            var e = document.createElement(\"img\");\n            e.src = d;\n            this[ATTRIBUTE_SYMBOL].container.appendChild(e);\n            e.style.zIndex = i++;\n            e.style.width = '100%';\n            e.style.height = '100%';\n            e.style.display = 'inline-block';\n            e.style.borderRadius = '36px';\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n              _iterator2[\"return\"]();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n\n        this[ATTRIBUTE_SYMBOL].children = Array.prototype.slice.call(this[ATTRIBUTE_SYMBOL].container.children);\n        Object(_gesture__WEBPACK_IMPORTED_MODULE_0__[\"enableGesture\"])(this[ATTRIBUTE_SYMBOL].container);\n        this.addPan();\n        this.render();\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }, {\n    key: \"parentWidth\",\n    get: function get() {\n      var parentWidth = window.getComputedStyle(this[ATTRIBUTE_SYMBOL].container, null).width;\n      return parseInt(parentWidth.replace(/px/g, ''), 10);\n    }\n  }]);\n\n  return Carousel;\n}();\n\n\n\n//# sourceURL=webpack:///./carouselview.js?");
  
  /***/ }),
  
  /***/ "./gesture.js":
  /*!********************!*\
    !*** ./gesture.js ***!
    \********************/
  /*! exports provided: enableGesture */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enableGesture\", function() { return enableGesture; });\nfunction enableGesture(main) {\n  var start = function start(point, context) {\n    //console.log(\"start\")\n    context.startX = point.clientX;\n    context.startY = point.clientY;\n    context.startTime = Date.now();\n    context.isTap = true; // 轻点击\n\n    context.isPan = false; // 拖动\n\n    context.isPress = false; // 长按\n\n    context.pressHandler = setTimeout(function () {\n      context.isPress = true;\n      context.isTap = false;\n      var e = new Event(\"pressstart\");\n      main.dispatchEvent(e);\n      context.pressHandler = null;\n    }, 500);\n  };\n\n  var move = function move(point, context) {\n    //console.log(context.startX,context.startY);\n    var dx = point.clientX - context.startX,\n        dy = point.clientY - context.startY;\n\n    if (dx * dx + dy * dy > 100) {\n      if (context.pressHandler !== null) {\n        clearTimeout(context.pressHandler);\n        context.pressHandler = null;\n        context.isPress = false;\n      } else if (context.isPress) {\n        context.isPress = false;\n        var e = new Event(\"presscancel\");\n        main.dispatchEvent(e);\n      }\n\n      context.isTap = false;\n\n      if (context.isPan === false) {\n        if (Math.abs(dx) > Math.abs(dy)) {\n          context.isVertical = false;\n          context.isHorizontal = true;\n        } else {\n          context.isVertical = true;\n          context.isHorizontal = false;\n        }\n\n        var _e = new Event(\"panstart\");\n\n        _e.startX = context.startX;\n        _e.startY = context.startY;\n        main.dispatchEvent(_e);\n        context.isPan = true;\n      }\n    }\n\n    if (context.isPan) {\n      var _e2 = new Event(\"pan\");\n\n      _e2.dx = dx;\n      _e2.dy = dy;\n      _e2.isHorizontal = context.isHorizontal;\n      _e2.isVertical = context.isVertical;\n      main.dispatchEvent(_e2);\n    } //console.log(dx , dy);\n\n  };\n\n  var end = function end(point, context) {\n    //console.log(\"end\")\n    if (context.pressHandler !== null) {\n      clearTimeout(context.pressHandler);\n    }\n\n    if (context.isPress) {\n      var e = new Event(\"pressend\");\n      main.dispatchEvent(e);\n    }\n\n    if (context.isTap) {\n      var _e3 = new Event(\"tap\");\n\n      main.dispatchEvent(_e3);\n    }\n\n    var dx = point.clientX - context.startX,\n        dy = point.clientY - context.startY;\n    var v = Math.sqrt(dx * dx + dy * dy) / (Date.now() - context.startTime); //console.log(v);\n    // 判断是否为：迅速离开\n\n    if (context.isPan && v > 0.3) {\n      context.isFlick = true;\n\n      var _e4 = new Event(\"flick\");\n\n      _e4.dx = dx;\n      _e4.dy = dy;\n      main.dispatchEvent(_e4);\n    } else {\n      context.isFlick = false;\n    }\n\n    if (context.isPan) {\n      var _e5 = new Event(\"panend\");\n\n      _e5.dx = dx;\n      _e5.dy = dy;\n      _e5.isFlick = context.isFlick;\n      _e5.isHorizontal = context.isHorizontal;\n      _e5.isVertical = context.isVertical;\n      main.dispatchEvent(_e5);\n    }\n  };\n\n  var cancel = function cancel(point, context) {\n    if (context.isPan) {\n      var e = new Event(\"pancancel\");\n      main.dispatchEvent(e);\n    }\n\n    if (context.isPress) {\n      var _e6 = new Event(\"presscancel\");\n\n      main.dispatchEvent(_e6);\n    }\n\n    if (context.pressHandler !== null) {\n      var _e7 = new Event(\"pancancel\");\n\n      main.dispatchEvent(_e7);\n      clearTimeout(context.pressHandler);\n    }\n  };\n  /*\r\n  Object.create(null)\r\n  1.你需要一个非常干净且高度可定制的对象当作数据字典的时候；\r\n  2.想节省hasOwnProperty带来的一丢丢性能损失并且可以偷懒少些一点代码的时候\r\n   */\n\n\n  var contexts = Object.create(null);\n  var mouseSymbol = Symbol(\"mouse\");\n\n  var mousedown = function mousedown(event) {\n    document.addEventListener(\"mousemove\", mousemove);\n    document.addEventListener(\"mouseup\", mouseup);\n    contexts[mouseSymbol] = Object.create(null);\n    start(event, contexts[mouseSymbol]);\n  };\n\n  var mousemove = function mousemove(event) {\n    move(event, contexts[mouseSymbol]);\n  };\n\n  var mouseup = function mouseup(event) {\n    document.removeEventListener(\"mousemove\", mousemove);\n    document.removeEventListener(\"mouseup\", mouseup);\n    end(event, contexts[mouseSymbol]);\n    delete contexts[mouseSymbol];\n  };\n\n  main.addEventListener(\"mousedown\", mousedown);\n\n  var touchstart = function touchstart(event) {\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n      for (var _iterator = event.changedTouches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n        var touch = _step.value;\n        contexts[touch.identifier] = Object.create(null);\n        start(touch, contexts[touch.identifier]);\n      }\n    } catch (err) {\n      _didIteratorError = true;\n      _iteratorError = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n          _iterator[\"return\"]();\n        }\n      } finally {\n        if (_didIteratorError) {\n          throw _iteratorError;\n        }\n      }\n    }\n  };\n\n  var touchmove = function touchmove(event) {\n    event.stopImmediatePropagation();\n    var _iteratorNormalCompletion2 = true;\n    var _didIteratorError2 = false;\n    var _iteratorError2 = undefined;\n\n    try {\n      for (var _iterator2 = event.changedTouches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n        var touch = _step2.value;\n        move(touch, contexts[touch.identifier]);\n      }\n    } catch (err) {\n      _didIteratorError2 = true;\n      _iteratorError2 = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n          _iterator2[\"return\"]();\n        }\n      } finally {\n        if (_didIteratorError2) {\n          throw _iteratorError2;\n        }\n      }\n    }\n  };\n\n  var touchend = function touchend(event) {\n    var _iteratorNormalCompletion3 = true;\n    var _didIteratorError3 = false;\n    var _iteratorError3 = undefined;\n\n    try {\n      for (var _iterator3 = event.changedTouches[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n        var touch = _step3.value;\n        end(touch, contexts[touch.identifier]);\n        delete contexts[touch.identifier];\n      }\n    } catch (err) {\n      _didIteratorError3 = true;\n      _iteratorError3 = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion3 && _iterator3[\"return\"] != null) {\n          _iterator3[\"return\"]();\n        }\n      } finally {\n        if (_didIteratorError3) {\n          throw _iteratorError3;\n        }\n      }\n    }\n  };\n\n  var touchcancel = function touchcancel(event) {\n    var _iteratorNormalCompletion4 = true;\n    var _didIteratorError4 = false;\n    var _iteratorError4 = undefined;\n\n    try {\n      for (var _iterator4 = event.changedTouches[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n        var touch = _step4.value;\n        cancel(touch, contexts[touch.identifier]);\n        delete contexts[touch.identifier];\n      }\n    } catch (err) {\n      _didIteratorError4 = true;\n      _iteratorError4 = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion4 && _iterator4[\"return\"] != null) {\n          _iterator4[\"return\"]();\n        }\n      } finally {\n        if (_didIteratorError4) {\n          throw _iteratorError4;\n        }\n      }\n    }\n  };\n\n  main.addEventListener(\"touchstart\", touchstart);\n  main.addEventListener(\"touchmove\", touchmove);\n  main.addEventListener(\"touchend\", touchend);\n  main.addEventListener(\"touchcancel\", touchcancel);\n}\n\n//# sourceURL=webpack:///./gesture.js?");
  
  /***/ }),
  
  /***/ "./script.js":
  /*!*******************!*\
    !*** ./script.js ***!
    \*******************/
  /*! no exports provided */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _teacher_tabview_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./teacher/tabview.js */ \"./teacher/tabview.js\");\n/* harmony import */ var _teacher_scrollview_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./teacher/scrollview.js */ \"./teacher/scrollview.js\");\n/* harmony import */ var _teacher_listview__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./teacher/listview */ \"./teacher/listview.js\");\n/* harmony import */ var _teacher_create_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./teacher/create.js */ \"./teacher/create.js\");\n/* harmony import */ var _carouselview_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./carouselview.js */ \"./carouselview.js\");\n\n\n\n // import tree from './my.component';\n\n\n/*\r\n* 禁用系统的scroll\r\n* */\n\nfunction loadMore() {\n  var _this = this;\n\n  this.setAttribute('placeHolderText', '加载中......');\n  setTimeout(function () {\n    _this.setAttribute('placeHolderText', '没有更多了');\n\n    console.log('end', Date.now());\n\n    _this.setAttribute('triggered', false);\n  }, 2500);\n}\n\nwindow.render = function (data, root) {\n  var cardView3 = JSON.parse(JSON.stringify(data));\n  cardView3.dataType = 'cardview3';\n  var pictures = [\"https://img.alicdn.com/imgextra/i4/739179444/O1CN01WomSRa2JdOw1a4KAa_!!739179444.jpg_430x430q90.jpg\", \"https://img.alicdn.com/imgextra/i1/3954877919/O1CN01pQ18Jj28MwxyqWBXe_!!3954877919.jpg_430x430q90.jpg\", \"https://img.alicdn.com/imgextra/i3/3954877919/O1CN01V0UUen28Mwy1c9xR1_!!0-item_pic.jpg_430x430q90.jpg\", \"https://img.alicdn.com/imgextra/i4/2274338009/O1CN01vC8AkK292AdnMTgq5_!!2274338009.jpg_430x430q90.jpg\"];\n  var c =\n  /*<div>\r\n  <div style=\"height: 279px; background-color: #9e48ff;\">\r\n  <div style=\"display: flex; align-items: center; height: 100%;\">\r\n      <div style=\"width: 33.33%;\">\r\n        </div>\r\n      <div\r\n          style=\"display: flex; align-items: center;width: 33.33%; font-family: PingFangSC-Medium; font-size: 64px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #FFFFFF;\">\r\n          每日好店\r\n      </div>\r\n      <div style=\"width: 33.33%;\"></div>\r\n  </div>\r\n  </div>*/\n  Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_tabview_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n    style: \"width:100%;height:100%;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_scrollview_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n    \"tab-title\": \"推荐\",\n    placeHolderText: \"加载更多\",\n    \"on-scrolltobottom\": loadMore,\n    style: \"-webkit-overflow-scrolling:touch;overflow:scroll;background-color:#f8f8f9;white-space:normal;font-size:50px\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_carouselview_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n    style: \"margin: 28px; height: 492px; width: 924px;; overflow: hidden; white-space: nowrap;\",\n    pictures: pictures\n  }), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 69px 34px 40px; height: 43px; font-family: PingFangSC-Medium; font-size: 46px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #333333;\"\n  }, \"\\u8D85\\u591A\\u4EBA\\u6C14\\u6536\\u85CF\\u7684\\u5E97\"), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 0 28px 35px; display: flex; width: 924px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"height: 361px; width: 450px; margin-right: 24px; border-radius: 18px; background-color: #fefefe;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 27px 35px; display: flex;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"width: 78px; height: 78px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"width: 100%; height: 100%; border-radius: 50%;\",\n    src: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573301646402&di=610f315e87317c7fdb4c3c55ee04a65a&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01f0305548ff320000019ae937d7f2.jpg%401280w_1l_2o_100sh.jpg\",\n    alt: \"\"\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \" height: 78px; display: flex; flex-flow: column;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin-left: 18px; height: 34px; font-family: PingFangSC-Regular; font-size: 36px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #333333;\"\n  }, \"\\u6781\\u5BA2\\u65F6\\u95F4\\u65D7\\u8230\\u5E97\"), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin:18px 0 0 18px; width: 63px; height: 30px; font-family: PingFangSC-Regular; font-size: 26px; line-height: 25px; background-color: #ee0507; border-radius: 15px; color: #FFFFFF;\"\n  }, \"\\u5929\\u732B\"))), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 0 35px 30px 35px; height: 199px; display: flex;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"border-radius: 18px; height: 100%; width: 199px; margin-right: 28px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"border-radius: 18px; width:100%; height:100%\",\n    src: \"https://img.alicdn.com/imgextra/i1/3954877919/O1CN01pQ18Jj28MwxyqWBXe_!!3954877919.jpg_430x430q90.jpg\",\n    alt: \"\"\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"border-radius: 18px; height: 100%; width: 199px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"border-radius: 18px; width:100%; height:100%\",\n    src: \"https://img.alicdn.com/imgextra/i3/2191160435/TB19WqyqASWBuNjSszdXXbeSpXa_!!0-item_pic.jpg_430x430q90.jpg\",\n    alt: \"\"\n  })))), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"height: 361px; width: 450px; border-radius: 18px; background-color: #fefefe;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 27px 35px; display: flex;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"width: 78px; height: 78px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"width: 100%; height: 100%; border-radius: 50%;\",\n    src: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573301792809&di=3912196aacf69dd84d60d5aaf9c0adc8&imgtype=0&src=http%3A%2F%2Fpic2.16pic.com%2F00%2F27%2F11%2F16pic_2711338_b.jpg\",\n    alt: \"\"\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \" height: 78px; display: flex; flex-flow: column;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin-left: 18px; height: 34px; font-family: PingFangSC-Regular; font-size: 36px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #333333;\"\n  }, \"\\u5F53\\u5F53\\u65D7\\u8230\\u5E97\"), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin:18px 0 0 18px; width: 63px; height: 30px; font-family: PingFangSC-Regular; font-size: 26px; line-height: 25px; background-color: #ee0507; border-radius: 15px; color: #FFFFFF;\"\n  }, \"\\u5929\\u732B\"))), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"margin: 0 35px 30px 35px; height: 199px; display: flex;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"border-radius: 18px; height: 100%; width: 199px; margin-right: 28px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"border-radius: 18px; width:100%; height:100%\",\n    src: \"https://img.alicdn.com/imgextra/i1/2406931838/O1CN01WjXfUV1PRqWaM5Au0_!!2406931838.jpg_1152x1920Q50s50.jpg\",\n    alt: \"\"\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", {\n    style: \"border-radius: 18px; height: 100%; width: 199px;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"img\", {\n    style: \"border-radius: 18px; width:100%; height:100%\",\n    src: \"https://img.alicdn.com/imgextra/i4/2274338009/O1CN01vC8AkK292AdnMTgq5_!!2274338009.jpg_430x430q90.jpg\",\n    alt: \"\"\n  }))))), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_listview__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n    data: data\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_scrollview_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n    \"tab-title\": \"有趣的店\",\n    placeHolderText: \"load more\",\n    \"on-scrolltobottom\": loadMore,\n    style: \"-webkit-overflow-scrolling:touch;overflow:scroll;background-color:lightgreen;white-space:normal;font-size:50px\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_listview__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n    data: data\n  })), Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_scrollview_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n    \"tab-title\": \"品牌新店\",\n    placeHolderText: \"load more\",\n    \"on-scrolltobottom\": loadMore,\n    style: \"-webkit-overflow-scrolling:touch;overflow:scroll;background-color:#FFFFFF;\"\n  }, Object(_teacher_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_teacher_listview__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n    data: cardView3\n  }))); // </div>;\n  // let c = tree;\n  // c = <div>\n  //     <span class=\"x\">000</span>\n  //     <br/><br/>\n  //     <ListView data={[{abc: 123 * 123}]}></ListView>\n  // </div>;\n\n  c.appendTo(document.body);\n};\n\n//# sourceURL=webpack:///./script.js?");
  
  /***/ }),
  
  /***/ "./teacher/animation.js":
  /*!******************************!*\
    !*** ./teacher/animation.js ***!
    \******************************/
  /*! exports provided: ease, Timeline, DOMElementStyleNumberAnimation, DomElementStyleVectorAnimation */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ease\", function() { return ease; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timeline\", function() { return Timeline; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DOMElementStyleNumberAnimation\", function() { return DOMElementStyleNumberAnimation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DomElementStyleVectorAnimation\", function() { return DomElementStyleVectorAnimation; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction cubicBezier(p1x, p1y, p2x, p2y) {\n  var ZERO_LIMIT = 1e-6; // Calculate the polynomial coefficients,\n  // implicit first and last control points are (0,0) and (1,1).\n\n  var ax = 3 * p1x - 3 * p2x + 1;\n  var bx = 3 * p2x - 6 * p1x;\n  var cx = 3 * p1x;\n  var ay = 3 * p1y - 3 * p2y + 1;\n  var by = 3 * p2y - 6 * p1y;\n  var cy = 3 * p1y;\n\n  function sampleCurveDerivativeX(t) {\n    // `ax t^3 + bx t^2 + cx t' expanded using Horner 's rule.\n    return (3 * ax * t + 2 * bx) * t + cx;\n  }\n\n  function sampleCurveX(t) {\n    return ((ax * t + bx) * t + cx) * t;\n  }\n\n  function sampleCurveY(t) {\n    return ((ay * t + by) * t + cy) * t;\n  } // Given an x value, find a parametric value it came from.\n\n\n  function solveCurveX(x) {\n    var t2 = x;\n    var derivative;\n    var x2; // https://trac.webkit.org/browser/trunk/Source/WebCore/platform/animation\n    // First try a few iterations of Newton's method -- normally very fast.\n    // http://en.wikipedia.org/wiki/Newton's_method\n\n    for (var i = 0; i < 8; i++) {\n      // f(t)-x=0\n      x2 = sampleCurveX(t2) - x;\n\n      if (Math.abs(x2) < ZERO_LIMIT) {\n        return t2;\n      }\n\n      derivative = sampleCurveDerivativeX(t2); // == 0, failure\n\n      /* istanbul ignore if */\n\n      if (Math.abs(derivative) < ZERO_LIMIT) {\n        break;\n      }\n\n      t2 -= x2 / derivative;\n    } // Fall back to the bisection method for reliability.\n    // bisection\n    // http://en.wikipedia.org/wiki/Bisection_method\n\n\n    var t1 = 1;\n    /* istanbul ignore next */\n\n    var t0 = 0;\n    /* istanbul ignore next */\n\n    t2 = x;\n    /* istanbul ignore next */\n\n    while (t1 > t0) {\n      x2 = sampleCurveX(t2) - x;\n\n      if (Math.abs(x2) < ZERO_LIMIT) {\n        return t2;\n      }\n\n      if (x2 > 0) {\n        t1 = t2;\n      } else {\n        t0 = t2;\n      }\n\n      t2 = (t1 + t0) / 2;\n    } // Failure\n\n\n    return t2;\n  }\n\n  function solve(x) {\n    return sampleCurveY(solveCurveX(x));\n  }\n\n  return solve;\n}\n\nvar linear = cubicBezier(0, 0, 1, 1);\nvar ease = cubicBezier(.25, .1, .25, 1);\nvar easeIn = cubicBezier(.42, 0, 1, 1);\nvar easeOut = cubicBezier(0, 0, .58, 1);\nvar easeInOut = cubicBezier(.42, 0, .58, 1);\nvar myCB = cubicBezier(.69, -0.85, .25, 1);\nvar myEase = cubicBezier(.42, -0.6, .83, .67);\n/*\r\n=========================================================================================================\r\n */\n\nvar Timeline =\n/*#__PURE__*/\nfunction () {\n  // 添加状态是解决重复点击按钮后，动画轨迹不正确的问题\n  //inited, started, paused,\n  function Timeline() {\n    _classCallCheck(this, Timeline);\n\n    this._animations = [];\n    this.status = \"inited\";\n    this._rate = 1;\n    this._startPoint = 0;\n  }\n\n  _createClass(Timeline, [{\n    key: \"pause\",\n    value: function pause() {\n      if (this.status !== \"started\") return;\n      this.status = \"paused\";\n      this._resumeTick = this._tick; // 清除 requestAnimationFrame\n\n      this._tick = null;\n      this._pauseStart = Date.now();\n    }\n  }, {\n    key: \"resume\",\n    value: function resume() {\n      if (this.status !== \"paused\") return;\n      this.status = \"started\";\n      this.pauseTime += Date.now() - this._pauseStart;\n      this._tick = this._resumeTick;\n      requestAnimationFrame(this._tick);\n    }\n  }, {\n    key: \"start\",\n    value: function start() {\n      var _this = this;\n\n      if (this.status === \"started\") return;\n      this.status = \"started\";\n      var startTime = Date.now();\n      this.pauseTime = 0;\n\n      this._tick = function () {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = _this._animations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var animation = _step.value;\n            if (!animation.finished) // rate 速率\n              animation.tick((Date.now() - _this.pauseTime - startTime) * _this._rate + _this._startPoint);\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n              _iterator[\"return\"]();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        if (_this._tick) requestAnimationFrame(_this._tick);\n      };\n\n      requestAnimationFrame(this._tick);\n    }\n  }, {\n    key: \"addAnimation\",\n    value: function addAnimation(animation) {\n      this._animations.push(animation);\n    }\n  }, {\n    key: \"removeAnimation\",\n    value: function removeAnimation(animation) {}\n  }, {\n    key: \"restart\",\n    value: function restart() {\n      var _this2 = this;\n\n      if (this._tick) {\n        this._tick = null;\n        this._resumeTick = null;\n      }\n\n      this.status = \"inited\";\n      requestAnimationFrame(function () {\n        _this2.start();\n      });\n    }\n  }, {\n    key: \"startPoint\",\n    set: function set(value) {\n      this._startPoint = value;\n    },\n    get: function get() {\n      return this._startPoint;\n    }\n  }, {\n    key: \"rate\",\n    set: function set(value) {\n      this._rate = value;\n    },\n    get: function get() {\n      return this._rate;\n    }\n  }]);\n\n  return Timeline;\n}(); // 蜚蠊\n\nvar DOMElementStyleNumberAnimation =\n/*#__PURE__*/\nfunction () {\n  function DOMElementStyleNumberAnimation(element, property, startTime, startValue, endTime, endValue, converter) {\n    _classCallCheck(this, DOMElementStyleNumberAnimation);\n\n    this._element = element;\n    this._property = property;\n    this._startTime = startTime;\n    this._startValue = startValue;\n    this._endTime = endTime;\n    this._endValue = endValue;\n    this._converter = converter; // 解决最后一帧没有绘制成功的问题\n\n    this._fixKeyFrame = false;\n  }\n\n  _createClass(DOMElementStyleNumberAnimation, [{\n    key: \"tick\",\n    value: function tick(t) {\n      if (t > this._endTime) {\n        if (!this._fixKeyFrame) return;else {\n          t = this._endTime;\n          this._fixKeyFrame = false;\n        }\n      } else if (t < this._startTime) {\n        if (!this._fixKeyFrame) return;else {\n          t = this._startTime;\n          this._fixKeyFrame = false;\n        }\n      } else {\n        this._fixKeyFrame = true;\n      }\n\n      var progress = (t - this._startTime) / (this._endTime - this._startTime);\n\n      var displacement = easeIn(progress) * (this._endValue - this._startValue);\n\n      var currentValue = this._startValue + displacement;\n      this._element.style[this._property] = this._converter(currentValue);\n    }\n  }]);\n\n  return DOMElementStyleNumberAnimation;\n}();\nvar DomElementStyleVectorAnimation =\n/*#__PURE__*/\nfunction () {\n  function DomElementStyleVectorAnimation(element, property, startTime, startValue, endTime, endValue, converter) {\n    _classCallCheck(this, DomElementStyleVectorAnimation);\n\n    // 真正的私有要用Symbol\n    this._element = element;\n    this._property = property;\n    this._startTime = startTime;\n    this._startValue = startValue;\n    this._endTime = endTime;\n    this._endValue = endValue;\n    this._converter = converter; // 非关键帧\n\n    this._fixKeyFrame = false;\n  } // 接收时间线上的时间点 然后做一些操作\n\n\n  _createClass(DomElementStyleVectorAnimation, [{\n    key: \"tick\",\n    value: function tick(t) {\n      // 只有2个点(start end) 所以只能用线性插值\n      // 线性插值:\n      // (t - startTime) /(endTime - startTime) :当前时间过去的比例\n      if (t > this._endTime) {\n        //如果不是关键帧\n        if (!this._fixKeyFrame) {\n          return;\n        } else {\n          t = this._endTime;\n        }\n      } else if (t < this._startTime) {\n        if (!this._fixKeyFrame) {\n          return;\n        } else {\n          t = this._startTime;\n          this._fixKeyFrame = false;\n        }\n      } else {\n        // 关键帧\n        this._fixKeyFrame = true;\n      }\n\n      var progress = (t - this._startTime) / (this._endTime - this._startTime);\n      var displacement = [];\n      var currentValue = [];\n\n      for (var i = 0; i < this._endValue.length; i++) {\n        displacement[i] = myCB(progress) * (this._endValue[i] - this._startValue[i]);\n        currentValue[i] = this._startValue[i] + displacement[i];\n      }\n\n      this._element.style[this._property] = this._converter(currentValue);\n    }\n  }]);\n\n  return DomElementStyleVectorAnimation;\n}();\n\n//# sourceURL=webpack:///./teacher/animation.js?");
  
  /***/ }),
  
  /***/ "./teacher/cardview1.js":
  /*!******************************!*\
    !*** ./teacher/cardview1.js ***!
    \******************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CardView1; });\n/* harmony import */ var _listview_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listview.css */ \"./teacher/listview.css\");\n/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create.js */ \"./teacher/create.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\nvar styleElement = document.createElement('style');\nstyleElement.innerHTML = _listview_css__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nstyleElement.setAttribute('scoped', '');\ndocument.getElementsByTagName('head')[0].appendChild(styleElement);\n\nvar CardView1 =\n/*#__PURE__*/\nfunction () {\n  function CardView1(config) {\n    _classCallCheck(this, CardView1);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this.created();\n  }\n\n  _createClass(CardView1, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      this.root = document.createElement(\"div\");\n      this.render().appendTo(this.root);\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"render\",\n    value: function render() {\n      var data = this[ATTRIBUTE_SYMBOL]['data'] || [];\n      return Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", null, data.map(function (item) {\n        return Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 924px; height: 960px; margin: 28px; background-color: #fefefe; border-radius: 36px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"display: flex; height: 164px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 70%; margin: 40px; height: 105px; display: flex;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 105px; height: 105px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: item.logo,\n          alt: \"\",\n          style: \"width: 100%; height: 100%; border-radius: 50%;\"\n        })), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"height: 105px; display: flex; flex-flow: column; margin-left: 5px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"height: 50%;width: 400px; height: 44px; font-family: PingFangSC-Medium; font-size: 46px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #333333;\"\n        }, item.title), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"height: 50%;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"display: flex; align-items: center; margin:18px 0 0 18px; width: 63px; height: 30px; font-family: PingFangSC-Regular; font-size: 26px; line-height: 25px; background-color: #ee0507; border-radius: 15px; color: #FFFFFF;\"\n        }, \"\\u5929\\u732B\")))), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 30%;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"font-size: 40px; margin: 43px; float: right; text-align: center; color: #FFFFFF; width: 160px; height: 72px; line-height: 68px; background-image: linear-gradient(90deg, #fec900 0%, #feac00 100%), linear-gradient(#ffffff, #ffffff); background-blend-mode: normal, normal; border-radius: 36px;\"\n        }, \"\\u8FDB\\u5E97>\"))), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"padding-left:34px; display: flex; align-items: center; font-size:36px; height:98px; background:rgba(245,245,245,1); border-radius:16px; margin: 0 35px;\"\n        }, \"\\u597D\\u5E97\\u541B\\uFF1A\\u8BE5\\u5E97\\u5DF2\\u88AB1.3\\u4E07\\u4EBA\\u5173\\u6CE8\\uFF0C\\u5FEB\\u6765\\u5173\\u6CE8\\u5427\\uFF01\"), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"display: flex; margin: 25px 34px 0px 34px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 626px; height: 626px;  margin-right: 15px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: item.pictures[0],\n          alt: \"\",\n          style: \"width: 100%; height: 563.67px; border-radius: 36px;\"\n        })), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 308px; height: 626px; display: flex; flex-direction: column;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 100%; height: 50%; margin-bottom: 5px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: item.pictures[1],\n          alt: \"\",\n          style: \"width: 100%; height: 277.33px; border-radius: 36px;\"\n        })), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 100%; height: 50%;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: item.pictures[2],\n          alt: \"\",\n          style: \"width: 100%; height: 277.33px; border-radius: 36px;\"\n        })))), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-right: 35px;text-align: right; height: 31px; font-family: PingFangSC-Light; font-size: 32px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #888888;\"\n        }, \"\\u76F8\\u4F3C\\u597D\\u5E97>\"));\n      }));\n    }\n  }, {\n    key: \"addStyle\",\n    value: function addStyle() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this.root);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name === \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name === \"style\") {\n        this.root.setAttribute(\"style\", value);\n      }\n\n      if (name === 'data') {\n        this[ATTRIBUTE_SYMBOL][name] = value;\n        this.root.innerHTML = \"\";\n        this.render().appendTo(this.root);\n        this.addStyle();\n        return value;\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) {\n        return;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call.apply(event, [this].concat(args));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return CardView1;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/cardview1.js?");
  
  /***/ }),
  
  /***/ "./teacher/cardview3.js":
  /*!******************************!*\
    !*** ./teacher/cardview3.js ***!
    \******************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CardView3; });\n/* harmony import */ var _listview_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listview.css */ \"./teacher/listview.css\");\n/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create.js */ \"./teacher/create.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\nvar styleElement = document.createElement('style');\nstyleElement.innerHTML = _listview_css__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nstyleElement.setAttribute('scoped', '');\ndocument.getElementsByTagName('head')[0].appendChild(styleElement);\n\nvar CardView3 =\n/*#__PURE__*/\nfunction () {\n  function CardView3(config) {\n    _classCallCheck(this, CardView3);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this.created();\n  }\n\n  _createClass(CardView3, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      this.root = document.createElement(\"div\");\n      this.render().appendTo(this.root);\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"render\",\n    value: function render() {\n      var data = this[ATTRIBUTE_SYMBOL]['data'] || [];\n      return Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", null, data.map(function (item) {\n        return Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin: 28px; width: 924px; background-color: #523b26;border-radius: 36px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 100%; height: 793px;  \"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-left: 35px; display: flex;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 50%;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 116px; height: 116px; margin-top: 33px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: \"https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3117799872,2369415256&fm=26&gp=0.jpg\",\n          alt: \"\",\n          style: \"border-radius: 50%; width: 100%; height: 100%;\"\n        })), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-top: 31px; width: 319px; height: 44px; font-family: PingFangSC-Medium; font-size: 46px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #ffffff;\"\n        }, \"\\u6781\\u5BA2\\u65F6\\u95F4\\u65D7\\u8230\\u5E97\"), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"opacity: 0.7; margin: 22px 0px; width: 233px; height: 30px; font-family: PingFangSC-Light; font-size: 32px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #ffffff;\"\n        }, \"\\u79D1\\u6280\\u98CE \\u884C\\u4E1A\\u4F18\\u8D28\")), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 50%;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-top: 57px; display: flex; align-items: center; width: 440px; height: 69px; background-color: #000000; border-radius: 35px 0px 0px 35px; opacity: 0.3;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-left: 20px; width: 333px; height: 31px; font-family: PingFangSC-Light; font-size: 32px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #ffffff;\"\n        }, \"\\u8BE5\\u5E97\\u5DF2\\u88AB3.9\\u4E07\\u4EBA\\u5173\\u6CE8\\u5566\\uFF01\")), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin: 58px 35px 43px 0; float: right;display: flex; align-items: center;width: 160px; height: 72px; background-color:#8B5742;  border-radius: 36px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin-left: 25px;width: 76px; height: 37px; font-family: PingFangSC-Regular; font-size: 40px; font-weight: normal; font-stretch: normal; line-height: 35px; letter-spacing: 0px; color: #ffffff;\"\n        }, \"\\u8FDB\\u5E97>\")))), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"margin: 35px; display: flex;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 50%; height: 414px; margin-right: 26px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: \"https://img.alicdn.com/imgextra/i4/1761455088/O1CN01KGXlyL1nSLiMaTtIr_!!1761455088.jpg_430x430q90.jpg\",\n          alt: \"\",\n          style: \"border-radius: 18px; width: 100%; height: 100%;\"\n        })), Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"div\", {\n          style: \"width: 50%; height: 414px;\"\n        }, Object(_create_js__WEBPACK_IMPORTED_MODULE_1__[\"create\"])(\"img\", {\n          src: \"https://img.alicdn.com/imgextra/i2/1761455088/O1CN01g0lV1x1nSLjsd5W81_!!1761455088.jpg_430x430q90.jpg\",\n          alt: \"\",\n          style: \"border-radius: 18px; width: 100%; height: 100%;\"\n        })))));\n      }));\n    }\n  }, {\n    key: \"addStyle\",\n    value: function addStyle() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this.root);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name === \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name === \"style\") {\n        this.root.setAttribute(\"style\", value);\n      }\n\n      if (name === 'data') {\n        this[ATTRIBUTE_SYMBOL][name] = value;\n        this.root.innerHTML = \"\";\n        this.render().appendTo(this.root);\n        this.addStyle();\n        return value;\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) {\n        return;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call.apply(event, [this].concat(args));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return CardView3;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/cardview3.js?");
  
  /***/ }),
  
  /***/ "./teacher/create.js":
  /*!***************************!*\
    !*** ./teacher/create.js ***!
    \***************************/
  /*! exports provided: create */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"create\", function() { return create; });\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../text.js */ \"./text.js\");\n/* harmony import */ var _wrapper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wrapper.js */ \"./teacher/wrapper.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n // myCreate 拆分到文件里面\n\nfunction create(Class, attributes) {\n  var object = typeof Class === 'string' ? new _wrapper_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](Class) : new Class();\n\n  for (var name in attributes) {\n    if (name.match(/^on-([\\s\\S]+)$/)) {\n      object.addEventListener(RegExp.$1, attributes[name]);\n    } else {\n      object.setAttribute(name, attributes[name]);\n    }\n  }\n\n  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n\n  for (var _i = 0, _children = children; _i < _children.length; _i++) {\n    var child = _children[_i];\n\n    if (Array.isArray(child)) {\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = child[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var c = _step.value;\n\n          if (typeof c === 'string') {\n            object.appendChild(new _text_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](c));\n          } else {\n            object.appendChild(c);\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    } else if (_typeof(child) === \"object\") {\n      object.appendChild(child);\n    } else {\n      object.appendChild(new _text_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child.toString()));\n    }\n  }\n\n  return object;\n}\n\n//# sourceURL=webpack:///./teacher/create.js?");
  
  /***/ }),
  
  /***/ "./teacher/listview.css":
  /*!******************************!*\
    !*** ./teacher/listview.css ***!
    \******************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"/*abc*/\\n\\n.listview .x {\\n  color: #ba3cf9;\\n}\");\n\n//# sourceURL=webpack:///./teacher/listview.css?");
  
  /***/ }),
  
  /***/ "./teacher/listview.js":
  /*!*****************************!*\
    !*** ./teacher/listview.js ***!
    \*****************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ListView; });\n/* harmony import */ var _listview_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listview.css */ \"./teacher/listview.css\");\n/* harmony import */ var _cardview1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardview1.js */ \"./teacher/cardview1.js\");\n/* harmony import */ var _cardview3_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cardview3.js */ \"./teacher/cardview3.js\");\n/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./create.js */ \"./teacher/create.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\nvar styleElement = document.createElement('style');\nstyleElement.innerHTML = _listview_css__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nstyleElement.setAttribute('scoped', '');\ndocument.getElementsByTagName('head')[0].appendChild(styleElement);\n\nvar ListView =\n/*#__PURE__*/\nfunction () {\n  function ListView(config) {\n    _classCallCheck(this, ListView);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this.created();\n  }\n\n  _createClass(ListView, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      this.root = document.createElement(\"div\");\n      this.root.classList.add('listview');\n      this.render().appendTo(this.root);\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"render\",\n    value: function render() {\n      var data = this[ATTRIBUTE_SYMBOL]['data'] || [];\n\n      if (this[ATTRIBUTE_SYMBOL]['cardType'] === 'cardview1') {\n        return Object(_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_cardview1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n          data: data\n        });\n      }\n\n      if (this[ATTRIBUTE_SYMBOL]['cardType'] === 'cardview3') {\n        return Object(_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(_cardview3_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n          data: data\n        });\n      }\n\n      return Object(_create_js__WEBPACK_IMPORTED_MODULE_3__[\"create\"])(\"div\", null);\n    }\n  }, {\n    key: \"addStyle\",\n    value: function addStyle() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this.root);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name === \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name === \"style\") {\n        this.root.setAttribute(\"style\", value);\n      }\n\n      if (name === 'data') {\n        this[ATTRIBUTE_SYMBOL][name] = value.dataList;\n        this[ATTRIBUTE_SYMBOL]['cardType'] = value.dataType;\n        this.root.innerHTML = \"\";\n        this.render().appendTo(this.root);\n        this.addStyle();\n        return value;\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) {\n        return;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call.apply(event, [this].concat(args));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return ListView;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/listview.js?");
  
  /***/ }),
  
  /***/ "./teacher/scrollview.js":
  /*!*******************************!*\
    !*** ./teacher/scrollview.js ***!
    \*******************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ScrollView; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\n\nvar ScrollView =\n/*#__PURE__*/\nfunction () {\n  function ScrollView(config) {\n    _classCallCheck(this, ScrollView);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this.created();\n  }\n\n  _createClass(ScrollView, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      var _this = this;\n\n      this.root = document.createElement(\"div\");\n      this.placeHolder = document.createElement('div');\n      this.placeHolder.style.backgroundColor = '#adadad';\n      this.placeHolder.style.fontSize = '50px';\n      this.placeHolder.style.textAlign = 'center';\n      this.placeHolder.style.lineHeight = '52px';\n      this.root.appendChild(this.placeHolder);\n      this[STATE_SYMBOL]['triggered'] = false;\n      this.root.addEventListener('scroll', function (event) {\n        event.preventDefault();\n        var triggered = _this[STATE_SYMBOL]['triggered'];\n\n        var cliRect = _this.root.getBoundingClientRect();\n\n        var placeHolderRect = _this.placeHolder.getBoundingClientRect();\n\n        if (cliRect.bottom < placeHolderRect.top) {\n          if (!triggered) {\n            console.log('begin', Date.now());\n\n            _this.triggerEvent('scrolltobottom');\n\n            triggered = true;\n          }\n        }\n      });\n      this[STATE_SYMBOL].h = 0;\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this.root);\n      this.root.appendChild(this.placeHolder);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name === \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name === \"style\") {\n        this.root.setAttribute(\"style\", value);\n      }\n\n      if (name === 'placeHolderText') {\n        this.placeHolder.innerText = value;\n      }\n\n      if (name === 'triggered') {\n        return this[STATE_SYMBOL][name] = value;\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) {\n        return;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call.apply(event, [this].concat(args));\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return ScrollView;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/scrollview.js?");
  
  /***/ }),
  
  /***/ "./teacher/tabview.js":
  /*!****************************!*\
    !*** ./teacher/tabview.js ***!
    \****************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TabView; });\n/* harmony import */ var _gesture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../gesture */ \"./gesture.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\n\nvar TabView =\n/*#__PURE__*/\nfunction () {\n  function TabView(config) {\n    _classCallCheck(this, TabView);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this[PROPERTY_SYMBOL].headers = [];\n    this.created();\n  }\n\n  _createClass(TabView, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      var _this = this;\n\n      this.root = document.createElement(\"div\");\n      this.root.style.display = \"flex\";\n      this.headerContainer = document.createElement(\"div\");\n      this.contentContainer = document.createElement(\"div\");\n      this.contentContainer.style.whiteSpace = \"nowrap\";\n      this.contentContainer.style.overflow = \"hidden\";\n      this.contentContainer.style.flex = \"1\";\n      this.headerContainer.style.height = \"93px\";\n      this.headerContainer.style.backgroundColor = \"#9e48ff\";\n      this.root.appendChild(this.headerContainer);\n      this.root.appendChild(this.contentContainer);\n      this[STATE_SYMBOL].position = 0;\n      Object(_gesture__WEBPACK_IMPORTED_MODULE_0__[\"enableGesture\"])(this.contentContainer);\n      this.root.addEventListener(\"touchmove\", function (e) {\n        e.cancelBubble = true;\n        e.stopImmediatePropagation();\n      }, {\n        passive: false\n      });\n      this.contentContainer.addEventListener(\"pan\", function (event) {\n        if (event.isVertical) return;\n        event.preventDefault();\n\n        var width = _this.contentContainer.getBoundingClientRect().width;\n\n        var dx = event.dx;\n        if (_this[STATE_SYMBOL].position === 0 && event.dx > 0) dx = dx / 2;\n        if (_this[STATE_SYMBOL].position === _this.contentContainer.children.length - 1 && event.dx < 0) dx = dx / 2;\n\n        for (var i = 0; i < _this.contentContainer.children.length; i++) {\n          _this.contentContainer.children[i].style.transition = 'transform ease 0s';\n          _this.contentContainer.children[i].style.transform = \"translateX(\".concat(dx - width * _this[STATE_SYMBOL].position, \"px)\");\n        }\n      });\n      this.contentContainer.addEventListener(\"panend\", function (event) {\n        if (event.isVertical) return;\n        event.preventDefault();\n\n        var width = _this.contentContainer.getBoundingClientRect().width;\n\n        if (event.isFlick) {\n          if (event.dx > 0) {\n            _this[STATE_SYMBOL].position--;\n          }\n\n          if (event.dx < 0) {\n            _this[STATE_SYMBOL].position++;\n          }\n        } else {\n          if (event.dx > width / 2) {\n            _this[STATE_SYMBOL].position--;\n          } else if (event.dx < -width / 2) {\n            _this[STATE_SYMBOL].position++;\n          } else {}\n        }\n\n        if (_this[STATE_SYMBOL].position < 0) {\n          _this[STATE_SYMBOL].position = 0;\n        } else if (_this[STATE_SYMBOL].position >= _this.contentContainer.children.length) {\n          _this[STATE_SYMBOL].position = _this.contentContainer.children.length - 1;\n        }\n\n        for (var i = 0; i < _this.contentContainer.children.length; i++) {\n          _this.contentContainer.children[i].style.transition = 'transform ease 0.5s';\n          _this.contentContainer.children[i].style.transform = \"translateX(\".concat(-width * _this[STATE_SYMBOL].position, \"px)\");\n        }\n\n        for (var _i = 0; _i < _this.headerContainer.children.length; _i++) {\n          if (_i === _this[STATE_SYMBOL].position) {\n            _this.headerContainer.children[_i].style.opacity = \"inherit\";\n            _this.headerContainer.children[_i].style.textDecoration = \"underline\";\n          } else {\n            _this.headerContainer.children[_i].style.opacity = \"0.5\";\n            _this.headerContainer.children[_i].style.textDecoration = \"none\";\n          }\n        }\n      });\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      var _this2 = this;\n\n      this.children.push(child);\n      var n = this.children.length - 1;\n      var title = child.getAttribute(\"tab-title\") || \"\";\n      this[PROPERTY_SYMBOL].headers.push(title);\n      var header = document.createElement(\"div\");\n      header.innerText = title;\n      header.style.display = \"inline-block\";\n      header.style.height = \"93px\";\n      header.style.lineHeight = \"35px\";\n      header.style.fontFamily = \"PingFang SC\";\n      header.style.fontSize = \"46px\";\n      header.style.margin = \"20px 35px 0 35px\";\n      header.style.letterSpacing = \"0px\";\n      header.style.color = \"#FFFFFF\";\n\n      if (n > 0) {\n        header.style.opacity = \"0.5\";\n      } else {\n        header.style.textDecoration = \"underline\";\n      }\n\n      this.headerContainer.appendChild(header);\n      header.addEventListener('click', function (event) {\n        _this2[STATE_SYMBOL].position = n;\n\n        for (var i = 0; i < _this2.contentContainer.children.length; i++) {\n          _this2.contentContainer.children[i].style.transition = 'transform ease 0.5s';\n          _this2.contentContainer.children[i].style.transform = \"translateX(\".concat(-n * 100, \"%)\");\n\n          if (i !== n) {\n            _this2.headerContainer.children[i].style.opacity = \"0.5\";\n            _this2.headerContainer.children[i].style.textDecoration = \"none\";\n          } else {\n            _this2.headerContainer.children[i].style.opacity = \"inherit\";\n            _this2.headerContainer.children[i].style.textDecoration = \"underline\";\n          }\n        }\n      });\n      child.appendTo(this.contentContainer);\n\n      for (var i = 0; i < this.contentContainer.children.length; i++) {\n        this.contentContainer.children[i].style.width = \"100%\";\n        this.contentContainer.children[i].style.height = \"100%\";\n        this.contentContainer.children[i].style.verticalAlign = \"top\";\n        this.contentContainer.children[i].style.display = \"inline-block\";\n      }\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name == \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name == \"style\") {\n        this.root.setAttribute(\"style\", value);\n        this.root.style.display = \"flex\";\n        this.root.style.flexDirection = \"column\";\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call(this);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"style\",\n    get: function get() {\n      return this.root.style;\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return TabView;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/tabview.js?");
  
  /***/ }),
  
  /***/ "./teacher/wrapper.js":
  /*!****************************!*\
    !*** ./teacher/wrapper.js ***!
    \****************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Wrapper; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PROPERTY_SYMBOL = Symbol('property');\nvar ATTRIBUTE_SYMBOL = Symbol('attribute');\nvar EVENT_SYMBOL = Symbol('event');\nvar STATE_SYMBOL = Symbol('state');\n\nvar Wrapper =\n/*#__PURE__*/\nfunction () {\n  function Wrapper(type) {\n    _classCallCheck(this, Wrapper);\n\n    this[ATTRIBUTE_SYMBOL] = Object.create(null); // attribute类型使用此类型创建\n\n    this[PROPERTY_SYMBOL] = Object.create(null); // property类型使用此类型创建\n\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this[PROPERTY_SYMBOL].children = [];\n    this.root = document.createElement(type);\n  }\n\n  _createClass(Wrapper, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n    }\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this[PROPERTY_SYMBOL].children.push(child);\n      child.appendTo(this.root);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      return this.root.getAttribute(name);\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      return this.root.setAttribute(name, value);\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      var _this$root;\n\n      (_this$root = this.root).addEventListener.apply(_this$root, arguments);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      var _this$root2;\n\n      (_this$root2 = this.root).removeEventListener.apply(_this$root2, arguments);\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return Wrapper;\n}();\n\n\n\n//# sourceURL=webpack:///./teacher/wrapper.js?");
  
  /***/ }),
  
  /***/ "./text.js":
  /*!*****************!*\
    !*** ./text.js ***!
    \*****************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Text; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PROPERTY_SYMBOL = Symbol(\"property\");\nvar ATTRIBUTE_SYMBOL = Symbol(\"attribute\");\nvar EVENT_SYMBOL = Symbol(\"event\");\nvar STATE_SYMBOL = Symbol(\"state\");\n\nvar Text =\n/*#__PURE__*/\nfunction () {\n  function Text(config) {\n    _classCallCheck(this, Text);\n\n    this[PROPERTY_SYMBOL] = Object.create(null);\n    this[ATTRIBUTE_SYMBOL] = Object.create(null);\n    this[EVENT_SYMBOL] = Object.create(null);\n    this[STATE_SYMBOL] = Object.create(null);\n    this.text = config || \"\";\n    this[PROPERTY_SYMBOL].children = [];\n    this.created();\n  }\n\n  _createClass(Text, [{\n    key: \"appendTo\",\n    value: function appendTo(element) {\n      element.appendChild(this.root);\n      this.mounted();\n    }\n  }, {\n    key: \"created\",\n    value: function created() {\n      this.root = document.createElement(\"span\");\n      this.root.innerText = this.text;\n      this[STATE_SYMBOL].h = 0;\n    }\n  }, {\n    key: \"mounted\",\n    value: function mounted() {}\n  }, {\n    key: \"unmounted\",\n    value: function unmounted() {}\n  }, {\n    key: \"update\",\n    value: function update() {}\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(child) {\n      this.children.push(child);\n      child.appendTo(this.root);\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(name) {\n      if (name == \"style\") {\n        return this.root.getAttribute(\"style\");\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name];\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(name, value) {\n      if (name == \"style\") {\n        this.root.setAttribute(\"style\", value);\n      }\n\n      return this[ATTRIBUTE_SYMBOL][name] = value;\n    }\n  }, {\n    key: \"addEventListener\",\n    value: function addEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) this[EVENT_SYMBOL][type] = new Set();\n      this[EVENT_SYMBOL][type].add(listener);\n    }\n  }, {\n    key: \"removeEventListener\",\n    value: function removeEventListener(type, listener) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      this[EVENT_SYMBOL][type][\"delete\"](listener);\n    }\n  }, {\n    key: \"triggerEvent\",\n    value: function triggerEvent(type) {\n      if (!this[EVENT_SYMBOL][type]) return;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = this[EVENT_SYMBOL][type][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var event = _step.value;\n          event.call(this);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n            _iterator[\"return\"]();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"children\",\n    get: function get() {\n      return this[PROPERTY_SYMBOL].children;\n    }\n  }]);\n\n  return Text;\n}();\n\n\n\n//# sourceURL=webpack:///./text.js?");
  
  /***/ })
  
  /******/ });