{"version":3,"file":"app.min.js","sources":["app.min.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\n},{}],2:[function(require,module,exports){\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\n},{}],3:[function(require,module,exports){\nvar arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\n},{\"./arrayLikeToArray\":1}],4:[function(require,module,exports){\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\n},{}],5:[function(require,module,exports){\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\n},{}],6:[function(require,module,exports){\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\n},{}],7:[function(require,module,exports){\nvar superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;\n},{\"./superPropBase\":18}],8:[function(require,module,exports){\nfunction _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\n},{}],9:[function(require,module,exports){\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\n},{\"./setPrototypeOf\":16}],10:[function(require,module,exports){\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n},{}],11:[function(require,module,exports){\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\n},{}],12:[function(require,module,exports){\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\n},{}],13:[function(require,module,exports){\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\n},{}],14:[function(require,module,exports){\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\n},{}],15:[function(require,module,exports){\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\n},{\"./assertThisInitialized\":4,\"@babel/runtime/helpers/typeof\":20}],16:[function(require,module,exports){\nfunction _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\n},{}],17:[function(require,module,exports){\nvar arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\n},{\"./arrayWithHoles\":2,\"./iterableToArrayLimit\":12,\"./nonIterableRest\":13,\"./unsupportedIterableToArray\":21}],18:[function(require,module,exports){\nvar getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;\n},{\"./getPrototypeOf\":8}],19:[function(require,module,exports){\nvar arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\n},{\"./arrayWithoutHoles\":3,\"./iterableToArray\":11,\"./nonIterableSpread\":14,\"./unsupportedIterableToArray\":21}],20:[function(require,module,exports){\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\n},{}],21:[function(require,module,exports){\nvar arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\n},{\"./arrayLikeToArray\":1}],22:[function(require,module,exports){\nmodule.exports = require(\"regenerator-runtime\");\n\n},{\"regenerator-runtime\":24}],23:[function(require,module,exports){\n/*\n * anime.js v3.2.1\n * (c) 2020 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n'use strict';\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n nil: function (a) { return is.und(a) || a === null; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.ceil((minMax(t, 0.000001, 1)) * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 : \n (easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width,\n h: height,\n vW: viewBox[2],\n vH: viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress, isPathTargetInsideSVG) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;\n var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;\n switch (path.property) {\n case 'x': return (p.x - svg.x) * scaleX;\n case 'y': return (p.y - svg.y) * scaleY;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\n\nvar engine = (function () {\n var raf;\n\n function play() {\n if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {\n raf = requestAnimationFrame(step);\n }\n }\n function step(t) {\n // memo on algorithm issue:\n // dangerous iteration over mutable `activeInstances`\n // (that collection may be updated from within callbacks of `tick`-ed animation instances)\n var activeInstancesLength = activeInstances.length;\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n i++;\n } else {\n activeInstances.splice(i, 1);\n activeInstancesLength--;\n }\n }\n raf = i > 0 ? requestAnimationFrame(step) : undefined;\n }\n\n function handleVisibilityChange() {\n if (!anime.suspendWhenDocumentHidden) { return; }\n\n if (isDocumentHidden()) {\n // suspend ticks\n raf = cancelAnimationFrame(raf);\n } else { // is back to active tab\n // first adjust animations to consider the time that ticks were suspended\n activeInstances.forEach(\n function (instance) { return instance ._onDocumentVisibility(); }\n );\n engine();\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n }\n\n return play;\n})();\n\nfunction isDocumentHidden() {\n return !!document && document.hidden;\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)\n instance._onDocumentVisibility = resetTime;\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n engine();\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n instance.completed = instance.reversed ? false : true;\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.remove = function(targets) {\n var targetsArray = parseTargets(targets);\n removeTargetsFromInstance(targetsArray, instance);\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargetsFromInstance(targetsArray, instance) {\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n}\n\nfunction removeTargetsFromActiveInstances(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n removeTargetsFromInstance(targetsArray, instance);\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.2.1';\nanime.speed = 1;\n// TODO:#review: naming, documentation\nanime.suspendWhenDocumentHidden = true;\nanime.running = activeInstances;\nanime.remove = removeTargetsFromActiveInstances;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nmodule.exports = anime;\n\n},{}],24:[function(require,module,exports){\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n\n},{}],25:[function(require,module,exports){\n/* global window, module */\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.Router = factory()\n}(this, (function () {\n\n /**\n * Router\n *\n * @version: 1.2.7\n * @author Graidenix\n *\n * @constructor\n *\n * @param {object} options\n * @returns {Router}\n */\n function Router(options) {\n var settings = this._getSettings(options);\n\n\n this.notFoundHandler = settings.page404;\n this.mode = (!window.history || !window.history.pushState) ? \"hash\" : settings.mode;\n this.root = settings.root === \"/\" ? \"/\" : \"/\" + this._trimSlashes(settings.root) + \"/\";\n this.beforeHook = settings.hooks.before;\n this.securityHook = settings.hooks.secure;\n\n this.routes = [];\n if (settings.routes && settings.routes.length > 0) {\n var _this = this;\n settings.routes.forEach(function (route) {\n _this.add(route.rule, route.handler, route.options);\n });\n }\n\n this._pageState = null;\n this._currentPage = null;\n this._skipCheck = false;\n this._action = null;\n\n if (this.mode === \"hash\") {\n this._historyStack = [];\n this._historyIdx = 0;\n this._historyState = \"add\"\n }\n\n return this;\n }\n\n /**\n * Define Router Page\n *\n * @param {string} uri\n * @param {object} query\n * @param {Array} params\n * @param {object} state\n * @param {object} options\n *\n * @constructor\n */\n Router.Page = function (uri, query, params, state, options) {\n this.uri = uri || \"\";\n this.query = query || {};\n this.params = params || [];\n this.state = state || null;\n this.options = options || {};\n };\n\n /**\n * Sanitize options and add default values\n *\n * @param {object} options\n * @returns {object}\n * @private\n */\n Router.prototype._getSettings = function (options) {\n var settings = {};\n var defaults = {\n routes: [],\n mode: \"history\",\n root: \"/\",\n hooks: {\n \"before\": function () {\n },\n \"secure\": function () {\n return true;\n }\n },\n page404: function (page) {\n console.error({\n page: page,\n message: \"404. Page not found\"\n });\n }\n };\n\n options = options || {};\n [\"routes\", \"mode\", \"root\", \"page404\"].forEach(function (key) {\n settings[key] = options[key] || defaults[key];\n });\n\n settings.hooks = Object.assign({}, defaults.hooks, options.hooks || {});\n\n return settings;\n };\n\n /**\n * Get URI for Router \"history\" mode\n *\n * @private\n * @returns {string}\n */\n Router.prototype._getHistoryFragment = function () {\n var fragment = decodeURI(window.location.pathname);\n if (this.root !== \"/\") {\n fragment = fragment.replace(this.root, \"\");\n }\n return this._trimSlashes(fragment);\n };\n\n /**\n * Get URI for router \"hash\" mode\n *\n * @private\n * @returns {string}\n */\n Router.prototype._getHashFragment = function () {\n var hash = window.location.hash.substr(1).replace(/(\\?.*)$/, \"\");\n return this._trimSlashes(hash);\n };\n\n /**\n * Get current URI\n *\n * @private\n * @returns {string}\n */\n Router.prototype._getFragment = function () {\n if (this.mode === \"history\") {\n return this._getHistoryFragment();\n } else {\n return this._getHashFragment();\n }\n };\n\n /**\n * Trim slashes for path\n *\n * @private\n * @param {string} path\n * @returns {string}\n */\n Router.prototype._trimSlashes = function (path) {\n if (typeof path !== \"string\") {\n return \"\";\n }\n return path.toString().replace(/\\/$/, \"\").replace(/^\\//, \"\");\n };\n\n /**\n * 404 Page Handler\n *\n * @private\n */\n Router.prototype._page404 = function (path) {\n this._currentPage = new Router.Page(path);\n this.notFoundHandler(path);\n };\n\n /**\n * Convert the string route rule to RegExp rule\n *\n * @param {string} route\n * @returns {RegExp}\n * @private\n */\n Router.prototype._parseRouteRule = function (route) {\n if (typeof route !== \"string\") {\n return route;\n }\n var uri = this._trimSlashes(route);\n var rule = uri\n .replace(/([\\\\\\/\\-\\_\\.])/g, \"\\\\$1\")\n .replace(/\\{[a-zA-Z]+\\}/g, \"(:any)\")\n .replace(/\\:any/g, \"[\\\\w\\\\-\\\\_\\\\.]+\")\n .replace(/\\:word/g, \"[a-zA-Z]+\")\n .replace(/\\:num/g, \"\\\\d+\");\n\n return new RegExp(\"^\" + rule + \"$\", \"i\");\n };\n\n /**\n * Parse query string and return object for it\n *\n * @param {string} query\n * @returns {object}\n * @private\n */\n Router.prototype._parseQuery = function (query) {\n var _query = {};\n if (typeof query !== \"string\") {\n return _query;\n }\n\n if (query[0] === \"?\") {\n query = query.substr(1);\n }\n\n this._queryString = query;\n query.split(\"&\").forEach(function (row) {\n var parts = row.split(\"=\");\n if (parts[0] !== \"\") {\n if (parts[1] === undefined) {\n parts[1] = true;\n }\n _query[decodeURIComponent(parts[0])] = parts[1];\n }\n });\n return _query;\n };\n\n /**\n * Get query for `history` mode\n *\n * @returns {Object}\n * @private\n */\n Router.prototype._getHistoryQuery = function () {\n return this._parseQuery(window.location.search);\n };\n\n /**\n * Get query for `hash` mode\n *\n * @returns {Object}\n * @private\n */\n Router.prototype._getHashQuery = function () {\n var index = window.location.hash.indexOf(\"?\");\n var query = (index !== -1) ? window.location.hash.substr(index) : \"\";\n return this._parseQuery(query);\n };\n\n /**\n * Get query as object\n *\n * @private\n * @returns {Object}\n */\n Router.prototype._getQuery = function () {\n if (this.mode === \"history\") {\n return this._getHistoryQuery();\n } else {\n return this._getHashQuery();\n }\n };\n\n /**\n * Add route to routes list\n *\n * @param {string|RegExp} rule\n * @param {function} handler\n * @param {{}} options\n * @returns {Router}\n */\n Router.prototype.add = function (rule, handler, options) {\n this.routes.push({\n rule: this._parseRouteRule(rule),\n handler: handler,\n options: options\n });\n return this;\n };\n\n /**\n * Remove a route from routes list\n *\n * @param param\n * @returns {Router}\n */\n Router.prototype.remove = function (param) {\n var _this = this;\n if (typeof param === \"string\") {\n param = this._parseRouteRule(param).toString();\n }\n this.routes.some(function (route, i) {\n if (route.handler === param || route.rule.toString() === param) {\n _this.routes.splice(i, 1);\n return true;\n }\n return false;\n });\n\n return this;\n };\n\n /**\n * Reset the state of Router\n *\n * @returns {Router}\n */\n Router.prototype.reset = function () {\n this.routes = [];\n this.mode = null;\n this.root = \"/\";\n this._pageState = {};\n this.removeUriListener();\n\n return this;\n };\n\n /**\n * Add current page in history stack\n * @private\n */\n Router.prototype._pushHistory = function () {\n var _this = this,\n fragment = this._getFragment();\n\n if (this.mode === \"hash\") {\n if (this._historyState === \"add\") {\n if (this._historyIdx !== this._historyStack.length - 1) {\n this._historyStack.splice(this._historyIdx + 1);\n }\n\n this._historyStack.push({\n path: fragment,\n state: _this._pageState\n });\n\n this._historyIdx = this._historyStack.length - 1;\n }\n this._historyState = \"add\";\n }\n };\n\n /**\n *\n * @param asyncRequest boolean\n * @returns {PromiseResult | boolean}\n * @private\n */\n Router.prototype._unloadCallback = function (asyncRequest) {\n var result;\n\n if (this._skipCheck) {\n return asyncRequest ? Promise.resolve(true) : true;\n }\n\n if (this._currentPage && this._currentPage.options && this._currentPage.options.unloadCb) {\n result = this._currentPage.options.unloadCb(this._currentPage, asyncRequest);\n if (!asyncRequest || result instanceof Promise) {\n return result;\n }\n return result ? Promise.resolve(result) : Promise.reject(result);\n } else {\n return asyncRequest ? Promise.resolve(true) : true;\n }\n };\n\n /**\n * Check if router has the action for current path\n *\n * @returns {boolean}\n * @private\n */\n Router.prototype._findRoute = function () {\n var _this = this,\n fragment = this._getFragment();\n\n return this.routes.some(function (route) {\n var match = fragment.match(route.rule);\n if (match) {\n match.shift();\n var query = _this._getQuery();\n var page = new Router.Page(fragment, query, match, _this._pageState, route.options);\n\n if (!_this.securityHook(page)) {\n return false;\n }\n\n _this._currentPage = page;\n if (_this._skipCheck) {\n _this._skipCheck = false;\n return true;\n }\n _this.beforeHook(page);\n route.handler.apply(page, match);\n _this._pageState = null;\n\n window.onbeforeunload = function (ev) {\n if (_this._unloadCallback(false)) {\n return;\n }\n ev.returnValue = true;\n return true;\n };\n\n return true;\n }\n return false;\n });\n };\n\n /**\n *\n */\n Router.prototype._treatAsync = function () {\n var result;\n\n result = this._currentPage.options.unloadCb(this._currentPage, true);\n if (!(result instanceof Promise)) {\n result = result ? Promise.resolve(result) : Promise.reject(result);\n }\n\n result\n .then(this._processUri.bind(this))\n .catch(this._resetState.bind(this));\n };\n\n /**\n *\n * @private\n */\n Router.prototype._resetState = function () {\n this._skipCheck = true;\n this.navigateTo(this._current, this._currentPage.state, true);\n };\n\n /**\n * Replace current page with new one\n */\n Router.prototype._processUri = function () {\n var fragment = this._getFragment(),\n found;\n\n this._current = fragment;\n this._pushHistory();\n\n found = this._findRoute.call(this);\n if (!found) {\n this._page404(fragment);\n }\n };\n\n /**\n * Check the URL and execute handler for its route\n *\n * @returns {Router}\n */\n Router.prototype.check = function () {\n if (this._skipCheck) return this;\n\n // if page has unload cb treat as promise\n if (this._currentPage && this._currentPage.options && this._currentPage.options.unloadCb) {\n this._treatAsync();\n } else {\n this._processUri();\n }\n return this;\n };\n\n /**\n * Add the URI listener\n *\n * @returns {Router}\n */\n Router.prototype.addUriListener = function () {\n if (this.mode === \"history\") {\n window.onpopstate = this.check.bind(this);\n } else {\n window.onhashchange = this.check.bind(this);\n }\n\n return this;\n };\n\n /**\n * Remove the URI listener\n *\n * @returns {Router}\n */\n Router.prototype.removeUriListener = function () {\n window.onpopstate = null;\n window.onhashchange = null;\n return this;\n };\n\n /**\n * Redirect to a page with replace state\n *\n * @param {string} path\n * @param {object} state\n * @param {boolean} silent\n *\n * @returns {Router}\n */\n Router.prototype.redirectTo = function (path, state, silent) {\n path = this._trimSlashes(path) || \"\";\n this._pageState = state || null;\n this._skipCheck = !!silent;\n\n if (this.mode === \"history\") {\n history.replaceState(state, null, this.root + this._trimSlashes(path));\n return this.check();\n } else {\n this._historyIdx--;\n window.location.hash = path;\n }\n return this;\n };\n\n /**\n * Navigate to a page\n *\n * @param {string} path\n * @param {object} state\n * @param {boolean} silent\n *\n * @returns {Router}\n */\n Router.prototype.navigateTo = function (path, state, silent) {\n path = this._trimSlashes(path) || \"\";\n this._pageState = state || null;\n this._skipCheck = !!silent;\n\n if (this.mode === \"history\") {\n history.pushState(state, null, this.root + this._trimSlashes(path));\n return this.check();\n } else {\n window.location.hash = path;\n }\n return this;\n };\n\n /**\n * Refresh page with recall route handler\n * @returns {Router}\n */\n Router.prototype.refresh = function () {\n if (!this._currentPage) {\n return this;\n }\n var path = this._currentPage.uri + \"?\" + this._queryString;\n return this.navigateTo(path, this._currentPage.state);\n };\n\n /**\n * Go Back in browser history\n * Simulate \"Back\" button\n *\n * @returns {Router}\n */\n Router.prototype.back = function () {\n if (this.mode === \"history\") {\n window.history.back();\n return this;\n }\n\n return this.go(this._historyIdx - 1);\n };\n\n /**\n * Go Forward in browser history\n * Simulate \"Forward\" button\n *\n * @returns {Router}\n */\n Router.prototype.forward = function () {\n if (this.mode === \"history\") {\n window.history.forward();\n return this;\n }\n\n return this.go(this._historyIdx + 1);\n };\n\n /**\n * Go to a specific history page\n *\n * @param {number} count\n * @returns {Router}\n */\n Router.prototype.go = function (count) {\n if (this.mode === \"history\") {\n window.history.go(count);\n return this;\n }\n\n var page = this._historyStack[count];\n if (!page) {\n return this;\n }\n\n this._historyIdx = count;\n this._historyState = \"hold\";\n return this.navigateTo(page.path, page.state);\n };\n\n return Router;\n})));\n},{}],26:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.YOIL_CSS = void 0;\nexports.YOIL_CSS = {\n yoil_display_hide: 'yoil_display-hide',\n yoil_display_alpha_hide: 'yoil_display-alpha-hide',\n yoil_ani_alpha_up: 'yoil-alpha-up',\n yoil_ani_alpha_down: 'yoil-alpha-down'\n};\n\n},{}],27:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.YoilEvent = void 0;\n\nvar YoilEvent = function YoilEvent() {\n (0, _classCallCheck2[\"default\"])(this, YoilEvent);\n};\n\nexports.YoilEvent = YoilEvent;\nYoilEvent.SOUND_COMPLETE = 'YOIL_SOUND_COMPLETE';\n\n},{\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/interopRequireDefault\":10}],28:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.YoilSoundPlayerViewer = void 0;\n\nvar media_events_1 = require(\"../../event/media-events\");\n\nvar pc_mobile_1 = require(\"../../pc-mobile\");\n\nvar sound_player_1 = require(\"./sound-player\");\n\nvar YoilSoundPlayerViewer = /*#__PURE__*/function (_sound_player_1$YoilS) {\n (0, _inherits2[\"default\"])(YoilSoundPlayerViewer, _sound_player_1$YoilS);\n\n var _super = _createSuper(YoilSoundPlayerViewer);\n\n function YoilSoundPlayerViewer() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, YoilSoundPlayerViewer);\n _this = _super.apply(this, arguments);\n _this.newSoundBool = false;\n _this.durationTime = 0;\n _this.userRangePress = false;\n return _this;\n }\n\n (0, _createClass2[\"default\"])(YoilSoundPlayerViewer, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var soundPlayer = document.querySelector('.yoil-sound-player'); // soundPlayer.insertAdjacentHTML('afterbegin', this.getTag());\n\n soundPlayer.innerHTML = this.getTag();\n this.player.addEventListener('durationchange', function () {\n _this2.durationTime = _this2.player.duration;\n });\n window.addEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.setSoundComplete.bind(this));\n this.setPlayPauseButton();\n this.setStopButton();\n this.setReplayButton();\n this.setRange();\n this.setSoundOnOffButton();\n }\n }, {\n key: \"getTag\",\n value: function getTag() {\n return \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \";\n }\n }, {\n key: \"setSoundComplete\",\n value: function setSoundComplete() {\n var btnReplay = document.querySelector('.yoil-sound_btn-replay');\n this.resetBtns();\n\n if (btnReplay.classList.contains('off') === false) {\n var btnPlayPause = document.querySelector('.yoil-sound_btn-playPause');\n btnPlayPause.dispatchEvent(new Event(pc_mobile_1.StaticData.CLICK));\n }\n }\n }, {\n key: \"setPlayPauseButton\",\n value: function setPlayPauseButton() {\n var _this3 = this;\n\n var btnPlayPause = document.querySelector('.yoil-sound_btn-playPause');\n btnPlayPause.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n if (btnPlayPause.classList.contains('pause')) {\n _this3.resetBtns();\n } else {\n btnPlayPause.classList.add('pause');\n\n _this3.play();\n }\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n if (this.newSoundBool === true) {\n this.soundPlay(this.soundPath);\n this.newSoundBool = false;\n } else {\n this.player.play();\n }\n }\n }, {\n key: \"resetBtns\",\n value: function resetBtns() {\n var btnPlayPause = document.querySelector('.yoil-sound_btn-playPause');\n btnPlayPause.classList.remove('pause');\n this.player.pause();\n }\n }, {\n key: \"setStopButton\",\n value: function setStopButton() {\n var _this4 = this;\n\n var btnStop = document.querySelector('.yoil-sound_btn-stop');\n btnStop.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this4.resetBtns();\n\n _this4.player.currentTime = 0;\n });\n }\n }, {\n key: \"setReplayButton\",\n value: function setReplayButton() {\n var btnReplay = document.querySelector('.yoil-sound_btn-replay');\n btnReplay.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n if (btnReplay.classList.contains('off')) {\n btnReplay.classList.remove('off');\n } else {\n btnReplay.classList.add('off');\n }\n });\n }\n }, {\n key: \"setRange\",\n value: function setRange() {\n var _this5 = this;\n\n var rangeBar = document.querySelector('#playRange');\n rangeBar.addEventListener(pc_mobile_1.StaticData.PRESS, function () {\n _this5.userRangePress = true;\n });\n rangeBar.addEventListener(pc_mobile_1.StaticData.UP, function () {\n _this5.userRangePress = false;\n var currentTime = _this5.durationTime * +rangeBar.value / 1000.0;\n _this5.player.currentTime = currentTime;\n });\n this.player.addEventListener('timeupdate', function () {\n if (_this5.durationTime === 0) return;\n if (_this5.userRangePress === true) return;\n var currentValue = 1000 * _this5.player.currentTime / _this5.durationTime;\n rangeBar.value = currentValue + '';\n });\n }\n }, {\n key: \"setSoundOnOffButton\",\n value: function setSoundOnOffButton() {\n var _this6 = this;\n\n var btnSoundOnOff = document.querySelector('.yoil-sound-view_soundOnOff');\n btnSoundOnOff.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n if (btnSoundOnOff.classList.contains('off')) {\n btnSoundOnOff.classList.remove('off');\n _this6.player.muted = false;\n } else {\n btnSoundOnOff.classList.add('off');\n _this6.player.muted = true;\n }\n });\n }\n }, {\n key: \"setSound\",\n value: function setSound(soundPath) {\n this.durationTime = 0;\n this.soundStop();\n this.soundPath = soundPath;\n this.newSoundBool = true;\n this.resetBtns();\n var rangeBar = document.querySelector('#playRange');\n rangeBar.value = '0';\n }\n }, {\n key: \"addTag\",\n value: function addTag(tagStr, className) {\n var tagNode = document.createElement(tagStr);\n tagNode.className = className;\n var viewer = document.querySelector('.yoil-sound_view');\n viewer.appendChild(tagNode);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.soundStop();\n this.player = null;\n window.removeEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.setSoundComplete.bind(this));\n }\n }]);\n return YoilSoundPlayerViewer;\n}(sound_player_1.YoilSoundPlayer);\n\nexports.YoilSoundPlayerViewer = YoilSoundPlayerViewer;\n\n},{\"../../event/media-events\":27,\"../../pc-mobile\":31,\"./sound-player\":29,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/getPrototypeOf\":8,\"@babel/runtime/helpers/inherits\":9,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/possibleConstructorReturn\":15}],29:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.YoilSoundPlayer = void 0;\n\nvar media_events_1 = require(\"../../event/media-events\");\n\nvar YoilSoundPlayer = /*#__PURE__*/function () {\n function YoilSoundPlayer() {\n (0, _classCallCheck2[\"default\"])(this, YoilSoundPlayer);\n this.player = new Audio();\n }\n\n (0, _createClass2[\"default\"])(YoilSoundPlayer, [{\n key: \"soundPlay\",\n value: function soundPlay(sndPath) {\n if (this.player.src) {\n this.player.pause();\n this.player.removeEventListener('ended', this.soundPlayComplete);\n }\n\n this.player.addEventListener('ended', this.soundPlayComplete);\n this.player.src = sndPath;\n this.player.play();\n }\n }, {\n key: \"soundPlayComplete\",\n value: function soundPlayComplete() {\n window.dispatchEvent(new Event(media_events_1.YoilEvent.SOUND_COMPLETE));\n }\n }, {\n key: \"soundStop\",\n value: function soundStop() {\n if (this.player.src) {\n this.player.pause();\n }\n\n this.player.src = '';\n }\n }]);\n return YoilSoundPlayer;\n}();\n\nexports.YoilSoundPlayer = YoilSoundPlayer;\n\n},{\"../../event/media-events\":27,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],30:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.YoilVideoPlayer = void 0;\n\nvar pc_mobile_1 = require(\"../../pc-mobile\");\n\nvar css_name_1 = require(\"../../css-name\");\n\nvar YoilVideoPlayer = /*#__PURE__*/function () {\n function YoilVideoPlayer() {\n (0, _classCallCheck2[\"default\"])(this, YoilVideoPlayer);\n this.isBallPress = false;\n }\n\n (0, _createClass2[\"default\"])(YoilVideoPlayer, [{\n key: \"init\",\n value: function init(videoInfo) {\n var videoPlayer = document.querySelector('.yoil-video-player');\n videoPlayer.innerHTML = this.getTag(videoInfo.width, videoInfo.height);\n this.videoViewer = document.querySelector('.yoil-video');\n this.videoViewer.loop = true;\n this.controlBar = document.querySelector('.control_bar');\n\n if (videoInfo.controlBool === false) {\n var controls = document.querySelector('.yoil-video_control');\n controls.style.display = 'none';\n }\n\n var videoCover = document.querySelector('.video-cover');\n videoCover.style.width = \"\".concat(videoInfo.width + 10, \"px\");\n videoCover.style.height = \"\".concat(videoInfo.height + 10, \"px\");\n }\n }, {\n key: \"getVideoViewer\",\n value: function getVideoViewer() {\n return this.videoViewer;\n }\n }, {\n key: \"getTag\",\n value: function getTag(width, height) {\n return \"\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \");\n } //
\n\n }, {\n key: \"startComponent\",\n value: function startComponent() {\n this.setPlayer();\n this.setVideoCheck();\n\n if (!(0, pc_mobile_1.isIphone)() && !(0, pc_mobile_1.isIpad)()) {\n this.videoViewer.requestFullscreen();\n }\n }\n }, {\n key: \"setPlayer\",\n value: function setPlayer() {\n var _this = this;\n\n var playAndPauseBtn = 'control_play';\n var stopBtn = 'control_stop';\n var replayBtn = 'control_replay';\n var captionBtn = 'control_caption';\n var fullScreenBtn = 'control_fulltoggle';\n var soundBtn = 'control_sound';\n var controls = document.querySelectorAll('.yoil-video-controler');\n controls.forEach(function (el) {\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var playerBtn = el.className.split(' ')[0];\n\n switch (playerBtn) {\n case playAndPauseBtn:\n _this.playAndPause();\n\n break;\n\n case stopBtn:\n _this.videoStop();\n\n break;\n\n case replayBtn:\n _this.setReplay();\n\n break;\n\n case captionBtn:\n break;\n\n case fullScreenBtn:\n _this.setFullScreenToggle();\n\n break;\n\n case soundBtn:\n _this.setSoundMute();\n\n break;\n }\n });\n });\n }\n }, {\n key: \"playAndPause\",\n value: function playAndPause() {\n var playPauseBtn = document.querySelector('.control_play');\n\n if (this.videoViewer.paused) {\n this.videoViewer.play();\n playPauseBtn.classList.add('control_play-pause');\n } else {\n this.setPauseStatus();\n }\n }\n }, {\n key: \"setPauseStatus\",\n value: function setPauseStatus() {\n var playPauseBtn = document.querySelector('.control_play');\n this.videoViewer.pause();\n playPauseBtn.classList.remove('control_play-pause');\n }\n }, {\n key: \"videoStop\",\n value: function videoStop() {\n this.setPauseStatus();\n this.videoViewer.currentTime = 0;\n }\n }, {\n key: \"setReplay\",\n value: function setReplay() {\n this.videoViewer.loop = !this.videoViewer.loop;\n var replay = document.querySelector('.control_replay');\n\n if (this.videoViewer.loop) {\n replay.classList.remove('control_replay-off');\n } else {\n replay.classList.add('control_replay-off');\n }\n }\n }, {\n key: \"setVideoCheck\",\n value: function setVideoCheck() {\n var _this2 = this;\n\n var rangeBar = document.querySelector('#playRange');\n rangeBar.addEventListener(pc_mobile_1.StaticData.PRESS, function () {\n _this2.isBallPress = true;\n });\n rangeBar.addEventListener(pc_mobile_1.StaticData.UP, function () {\n _this2.isBallPress = false;\n var currentTime = _this2.videoViewer.duration * +rangeBar.value / 1000.0;\n _this2.videoViewer.currentTime = currentTime;\n });\n this.videoViewer.addEventListener('timeupdate', function () {\n if (_this2.videoViewer.duration) {\n if (_this2.isBallPress === true) return;\n var currentValue = 1000 * _this2.videoViewer.currentTime / _this2.videoViewer.duration;\n rangeBar.value = currentValue + '';\n }\n });\n this.videoViewer.addEventListener('ended', function () {\n var playPauseBtn = document.querySelector('.control_play');\n playPauseBtn.classList.remove('control_play-pause');\n });\n }\n }, {\n key: \"setFullScreenToggle\",\n value: function setFullScreenToggle() {\n this.videoViewer.requestFullscreen();\n }\n }, {\n key: \"setSoundMute\",\n value: function setSoundMute() {\n this.videoViewer.muted = !this.videoViewer.muted;\n var soundBtn = document.querySelector('.control_sound');\n\n if (this.videoViewer.muted) {\n soundBtn.classList.add('control_sound-off');\n } else {\n soundBtn.classList.remove('control_sound-off');\n }\n }\n }, {\n key: \"changeVideo\",\n value: function changeVideo(videoUrl) {\n var source = this.videoViewer.querySelector('source');\n source.setAttribute('src', videoUrl);\n this.videoViewer.load();\n }\n }, {\n key: \"captionHide\",\n value: function captionHide() {\n var controls = document.querySelector('.yoil-video_control');\n var captionBtn = controls.querySelector('.control_caption');\n captionBtn.classList.add(css_name_1.YOIL_CSS.yoil_display_hide);\n }\n }]);\n return YoilVideoPlayer;\n}();\n\nexports.YoilVideoPlayer = YoilVideoPlayer;\n\n},{\"../../css-name\":26,\"../../pc-mobile\":31,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],31:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StaticData = exports.isIpad = exports.isHeightSize = exports.isIphone = exports.pcOrMobile = void 0;\n\nvar pcOrMobile = function pcOrMobile() {\n var filter = 'win16|win32|win64|mac';\n var vWebType = '';\n\n if (navigator.platform) {\n if (filter.indexOf(navigator.platform.toLowerCase()) < 0) {\n vWebType = 'MOBILE';\n } else {\n vWebType = 'PC';\n }\n }\n\n return vWebType;\n};\n\nexports.pcOrMobile = pcOrMobile;\n\nvar isIphone = function isIphone() {\n return navigator.platform === 'iPhone';\n};\n\nexports.isIphone = isIphone;\n\nvar isHeightSize = function isHeightSize() {\n return window.innerHeight < 1200;\n};\n\nexports.isHeightSize = isHeightSize;\n\nvar isIpad = function isIpad() {\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n return platform === 'iPad' || platform === 'MacIntel';\n};\n\nexports.isIpad = isIpad;\nexports.StaticData = {\n CLICK: (0, exports.pcOrMobile)() == 'PC' ? 'click' : 'touchend',\n PRESS: (0, exports.pcOrMobile)() == 'PC' ? 'mousedown' : 'touchstart',\n UP: (0, exports.pcOrMobile)() == 'PC' ? 'mouseup' : 'touchend',\n MOVE: (0, exports.pcOrMobile)() == 'PC' ? 'mousemove' : 'touchmove',\n LEAVE: (0, exports.pcOrMobile)() == 'PC' ? 'mouseleave' : 'touchcancel'\n};\n\n},{}],32:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Quitloading = exports.ViewLoading = exports.getRandomNum = exports.get10Check = void 0;\n\nvar get10Check = function get10Check(num) {\n if (num < 10) {\n return '0' + num;\n }\n\n return num + '';\n};\n\nexports.get10Check = get10Check;\n\nvar getRandomNum = function getRandomNum(startNum, endNum) {\n return Math.floor(Math.random() * (startNum - endNum + 1)) + endNum;\n};\n\nexports.getRandomNum = getRandomNum;\n\nvar ViewLoading = function ViewLoading() {\n var loading = document.createElement('div');\n loading.className = 'lds-dual-ring';\n var loadingPage = document.createElement('div');\n loadingPage.className = 'yoil-loading';\n loadingPage.appendChild(loading);\n var contents = document.querySelector('.contents');\n contents.append(loadingPage);\n};\n\nexports.ViewLoading = ViewLoading;\n\nvar Quitloading = function Quitloading() {\n var contents = document.querySelector('.contents');\n var loadingPage = document.querySelector('.yoil-loading');\n contents.removeChild(loadingPage);\n};\n\nexports.Quitloading = Quitloading;\n\n},{}],33:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentStarter = void 0;\n\nvar bww_main_1 = require(\"./contents/bww/bww-main\");\n\nvar content_select_1 = require(\"./contents/content-select\");\n\nvar audio_common_1 = require(\"./contents/contents-common/audio-common\");\n\nvar comic_common_1 = require(\"./contents/contents-common/comic-common\");\n\nvar ebook_common_1 = require(\"./contents/contents-common/ebook-common\");\n\nvar video_common_1 = require(\"./contents/contents-common/video-common\");\n\nvar contents_index_1 = require(\"./contents/contents-index\");\n\nvar ContentWftaCharacter_1 = require(\"./contents/wfta/character/ContentWftaCharacter\");\n\nvar ContentWftaDictionary_1 = require(\"./contents/wfta/dictionary/ContentWftaDictionary\");\n\nvar ContentWftaMap_1 = require(\"./contents/wfta/map/ContentWftaMap\");\n\nvar ContentWftaPhonics_1 = require(\"./contents/wfta/phonics/ContentWftaPhonics\");\n\nvar wfta_main_1 = require(\"./contents/wfta/wfta-main\");\n\nvar ww_buildingWord_1 = require(\"./contents/ww/building-word/ww-buildingWord\");\n\nvar ww_quiz_1 = require(\"./contents/ww/quiz/ww-quiz\");\n\nvar ww_write_1 = require(\"./contents/ww/write/ww-write\");\n\nvar ww_main_1 = require(\"./contents/ww/ww-main\");\n\nvar data_interface_1 = require(\"./info/data-interface\");\n\nvar ContentStarter = /*#__PURE__*/function () {\n function ContentStarter() {\n (0, _classCallCheck2[\"default\"])(this, ContentStarter);\n }\n\n (0, _createClass2[\"default\"])(ContentStarter, [{\n key: \"getContentObject\",\n value: function getContentObject(contentNameStr) {\n var splitLst = contentNameStr.split('-');\n var typeStr = splitLst[0];\n var content = splitLst[1] === undefined ? typeStr : splitLst[1];\n\n switch (typeStr) {\n case 'content':\n return new content_select_1.ContentSelect();\n\n case 'video':\n return new video_common_1.VideoCommon();\n\n case 'ebook':\n return new ebook_common_1.EbookCommon();\n\n case 'comic':\n return new comic_common_1.ComicCommon();\n\n case 'audio':\n return new audio_common_1.AudioCommon();\n\n case 'wfta':\n return this.getWftaContent(content);\n\n case 'ww':\n return this.getWwContent(content);\n\n case 'bww':\n return this.getBwwContent(content);\n }\n }\n }, {\n key: \"getWftaContent\",\n value: function getWftaContent(contnetName) {\n switch (contnetName) {\n case 'wfta':\n return new contents_index_1.ContentsIndex();\n\n case 'main':\n return new wfta_main_1.ContentWftaMain();\n\n case data_interface_1.WftaContents.Phonics:\n return new ContentWftaPhonics_1.ContentWftaPhonics();\n\n case data_interface_1.WftaContents.Dictionary:\n return new ContentWftaDictionary_1.ContentWftaDictionary();\n\n case data_interface_1.WftaContents.Character:\n return new ContentWftaCharacter_1.ContentWftaCharacter();\n\n case data_interface_1.WftaContents.Map:\n return new ContentWftaMap_1.ContentWftaMap();\n }\n }\n }, {\n key: \"getWwContent\",\n value: function getWwContent(contentName) {\n switch (contentName) {\n case 'ww':\n return new contents_index_1.ContentsIndex();\n\n case 'main':\n return new ww_main_1.ContentWwMain();\n\n case data_interface_1.WwContents.Buildingword:\n return new ww_buildingWord_1.ContentWwBuildingWord();\n\n case data_interface_1.WwContents.Quiz:\n return new ww_quiz_1.ContentWwQuiz();\n\n case data_interface_1.WwContents.Write:\n return new ww_write_1.ContentWwWrite();\n }\n }\n }, {\n key: \"getBwwContent\",\n value: function getBwwContent(contentName) {\n switch (contentName) {\n case 'bww':\n return new contents_index_1.ContentsIndex();\n\n case 'main':\n return new bww_main_1.ContentBwwMain();\n }\n }\n }]);\n return ContentStarter;\n}();\n\nexports.ContentStarter = ContentStarter;\n\n},{\"./contents/bww/bww-main\":34,\"./contents/content-select\":35,\"./contents/contents-common/audio-common\":37,\"./contents/contents-common/comic-common\":38,\"./contents/contents-common/ebook-common\":40,\"./contents/contents-common/video-common\":42,\"./contents/contents-index\":43,\"./contents/wfta/character/ContentWftaCharacter\":44,\"./contents/wfta/dictionary/ContentWftaDictionary\":46,\"./contents/wfta/map/ContentWftaMap\":47,\"./contents/wfta/phonics/ContentWftaPhonics\":51,\"./contents/wfta/wfta-main\":52,\"./contents/ww/building-word/ww-buildingWord\":54,\"./contents/ww/quiz/ww-quiz\":56,\"./contents/ww/write/ww-write\":57,\"./contents/ww/ww-main\":58,\"./info/data-interface\":65,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],34:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentBwwMain = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar info_routerPath_1 = require(\"../../router/info-routerPath\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar router_1 = require(\"../../router/router\");\n\nvar content_common_1 = require(\"../contents-common/content-common\");\n\nvar ContentBwwMain = /*#__PURE__*/function () {\n function ContentBwwMain() {\n (0, _classCallCheck2[\"default\"])(this, ContentBwwMain);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentBwwMain, [{\n key: \"init\",\n value: function init() {\n this.setBackImg();\n (0, content_common_1.setExitBtn)('bww?first=false');\n }\n }, {\n key: \"setBackImg\",\n value: function setBackImg() {\n var _this = this;\n\n var bookNum = this.infoObj.getBookNumber();\n var contentsBtns = document.querySelectorAll('.main_content');\n contentsBtns.forEach(function (el, key) {\n var btnStr = (0, util_1.get10Check)(key + 1);\n el.style.backgroundImage = \"url(\\\"./images/bww/main/\".concat((0, util_1.get10Check)(bookNum), \"/btn_\").concat(btnStr, \".png\\\")\");\n\n _this.setBtnMove(el);\n });\n }\n }, {\n key: \"setBtnMove\",\n value: function setBtnMove(el) {\n var _this2 = this;\n\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var content = el.getAttribute('value');\n var videoName = content;\n\n if (videoName === 'storybook') {\n videoName = 'storybook_AR';\n }\n\n var videoUrl = \"./video/bww/content\".concat(_this2.infoObj.getBookNumber(), \"/\").concat(videoName, \".mp4\");\n\n _this2.infoObj.setVideoUrl(videoUrl);\n\n router.moveContent(\"\".concat(info_routerPath_1.routerPath.bww, \"/\").concat(_this2.infoObj.getBookNumber(), \"/\").concat(content));\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentBwwMain;\n}();\n\nexports.ContentBwwMain = ContentBwwMain;\n\n},{\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../info/program-info\":66,\"../../router/info-routerPath\":67,\"../../router/router\":71,\"../contents-common/content-common\":39,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],35:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentSelect = void 0;\n\nvar pc_mobile_1 = require(\"../common/pc-mobile\");\n\nvar util_1 = require(\"../common/util/util\");\n\nvar data_interface_1 = require(\"../info/data-interface\");\n\nvar program_info_1 = require(\"../info/program-info\");\n\nvar ReactCommnunication_1 = require(\"../info/ReactCommnunication\");\n\nvar router_1 = require(\"../router/router\");\n\nvar ContentSelect = /*#__PURE__*/function () {\n function ContentSelect() {\n (0, _classCallCheck2[\"default\"])(this, ContentSelect);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.reactObj = ReactCommnunication_1.ReactCommunication.getInstance();\n this.reactObj.setReflashObj(this);\n }\n\n (0, _createClass2[\"default\"])(ContentSelect, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var books;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n (0, util_1.ViewLoading)();\n\n if (!(window['testMode'] === true)) {\n _context.next = 4;\n break;\n }\n\n _context.next = 8;\n break;\n\n case 4:\n _context.next = 6;\n return this.reactObj.getBooks();\n\n case 6:\n books = _context.sent;\n this.infoObj.setUserBooks(books);\n\n case 8:\n this.setTopButton();\n this.setBigButton();\n (0, util_1.Quitloading)();\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setTopButton\",\n value: function setTopButton() {\n var _this = this;\n\n var qrCodeBtn = document.querySelector('.right_qrcode');\n\n if (qrCodeBtn.getAttribute('addEvent')) {} else {\n qrCodeBtn.setAttribute('addEvent', 'click');\n qrCodeBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.reactObj.insertUserBook();\n });\n }\n }\n }, {\n key: \"setBigButton\",\n value: function setBigButton() {\n var _this2 = this;\n\n var elementLst = document.querySelectorAll('.selectBig_btn');\n var bookTypes = [data_interface_1.BookType.WFTA, data_interface_1.BookType.WW, data_interface_1.BookType.BWW];\n elementLst.forEach(function (el, value) {\n var books = _this2.infoObj.getUserBooks(bookTypes[value]);\n\n if (books.length > 0) {\n el.classList.remove('yoil_button-disable');\n }\n\n if (window['testMode'] === true) {\n el.classList.remove('yoil_button-disable');\n }\n\n if (el.getAttribute('addEvent')) {} else {\n el.setAttribute('addEvent', 'click');\n el.addEventListener(pc_mobile_1.StaticData.CLICK, _this2.moveMainContent);\n }\n });\n }\n }, {\n key: \"moveMainContent\",\n value: function moveMainContent(event) {\n var target = event.currentTarget;\n var pathStr = target.getAttribute('name');\n var router = router_1[\"default\"].getInstance();\n router.moveContent(pathStr);\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentSelect;\n}();\n\nexports.ContentSelect = ContentSelect;\n\n},{\"../common/pc-mobile\":31,\"../common/util/util\":32,\"../info/ReactCommnunication\":64,\"../info/data-interface\":65,\"../info/program-info\":66,\"../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],36:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AbstractEbook = void 0;\n\nvar media_events_1 = require(\"../../common/event/media-events\");\n\nvar sound_player_1 = require(\"../../common/media/sound/sound-player\");\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar get_data_1 = require(\"../../data/get-data\");\n\nvar data_interface_1 = require(\"../../info/data-interface\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar content_common_1 = require(\"./content-common\");\n\nvar AbstractEbook = /*#__PURE__*/function () {\n function AbstractEbook() {\n (0, _classCallCheck2[\"default\"])(this, AbstractEbook);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.soundPlayer = new sound_player_1.YoilSoundPlayer();\n }\n\n (0, _createClass2[\"default\"])(AbstractEbook, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getContentData();\n\n case 3:\n this.currentBookData = _context.sent;\n this.pageLst = Object.keys(this.currentBookData).reverse();\n this.totalPageNum = this.pageLst.length - 1;\n this.setBookTitle();\n this.setContentTypeData();\n this.addPages();\n this.setSideBtns();\n (0, content_common_1.setExitBtn)();\n window.addEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.soundBtnStyleReset);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setBookTitle\",\n value: function setBookTitle() {\n var titleDiv = document.querySelector('.top_title');\n titleDiv.innerHTML = this.infoObj.getBookTitle();\n }\n }, {\n key: \"soundBtnStyleReset\",\n value: function soundBtnStyleReset() {\n var ebookBtns = document.querySelectorAll('.ebook_sound');\n var comicBtns = document.querySelectorAll('.comic_sound');\n var sndBtns = [].concat((0, _toConsumableArray2[\"default\"])(ebookBtns), (0, _toConsumableArray2[\"default\"])(comicBtns));\n sndBtns.forEach(function (sndEl) {\n sndEl.classList.remove('playing');\n });\n }\n }, {\n key: \"setContentTypeData\",\n value: function setContentTypeData() {\n var contentType = this.infoObj.getContentType();\n var addTypes = document.querySelectorAll('.add_type');\n (0, content_common_1.addElementClass)(addTypes, contentType);\n }\n }, {\n key: \"addPages\",\n value: function addPages() {\n var _this = this;\n\n var contentType = this.infoObj.getContentType();\n this.pageLst.forEach(function (str, key) {\n var pageEl = document.createElement('div');\n pageEl.className = \"\".concat(_this.getCurrentContent(), \"_\") + str;\n pageEl.classList.add(\"\".concat(_this.getCurrentContent(), \"_page\"));\n pageEl.classList.add(contentType);\n var subImgNum = +str.substr(4, 2);\n var pageStr = (0, util_1.get10Check)(subImgNum);\n pageEl.style.backgroundImage = _this.getEbookUrl(pageStr);\n\n _this.addSoundButtons(subImgNum, pageEl);\n });\n }\n }, {\n key: \"getCurrentContent\",\n value: function getCurrentContent() {\n var currentContent = this.infoObj.getCurrentContent();\n\n switch (currentContent) {\n case data_interface_1.WftaContents.Act:\n case data_interface_1.WwContents.ComicBook:\n currentContent = 'comic';\n break;\n }\n\n return currentContent;\n }\n }, {\n key: \"getEbookUrl\",\n value: function getEbookUrl(pageStr) {\n return \"url(\\\"./images/\".concat(this.infoObj.getContentType(), \"/\").concat(this.getCurrentContent(), \"/\").concat((0, util_1.get10Check)(this.infoObj.getBookNumber()), \"/S\").concat(this.infoObj.getContentInnerNumber(), \"/img_\").concat(pageStr, \".jpg\\\")\");\n } // 사운드 버튼 삽입\n\n }, {\n key: \"addSoundButtons\",\n value: function addSoundButtons(subImgNum, pageEl) {\n var _this2 = this;\n\n var bookPageEl = document.querySelector('.content_pages');\n var pageStr = 'page' + subImgNum;\n var sndPlayList = [];\n Object.keys(this.currentBookData[pageStr]).forEach(function (sndObj, key) {\n if (sndObj === 'mp3') {\n sndPlayList = _this2.currentBookData[pageStr][sndObj];\n return;\n }\n\n var _this2$currentBookDat = _this2.currentBookData[pageStr][sndObj],\n x = _this2$currentBookDat.x,\n y = _this2$currentBookDat.y;\n var sndEl = document.createElement('div');\n sndEl.className = \"\".concat(_this2.getCurrentContent(), \"_sound\");\n sndEl.classList.add(\"\".concat(_this2.getCurrentContent(), \"_sound_\") + key);\n sndEl.style.left = \"\".concat(x, \"px\");\n sndEl.style.top = \"\".concat(y, \"px\");\n sndEl.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var sndNameLst = sndEl.className.split('_');\n var sndNum = sndNameLst[sndNameLst.length - 1];\n\n var sndPath = _this2.getSoundPath(sndPlayList[sndNum]);\n\n _this2.soundBtnStyleReset();\n\n sndEl.classList.add('playing');\n\n _this2.soundPlayer.soundPlay(sndPath);\n });\n pageEl.appendChild(sndEl);\n });\n bookPageEl.appendChild(pageEl);\n }\n }, {\n key: \"getSoundPath\",\n value: function getSoundPath(sndName) {\n return \"./sound/\".concat(this.infoObj.getContentType(), \"/\").concat(this.infoObj.getCurrentContent(), \"/\").concat((0, util_1.get10Check)(this.infoObj.getBookNumber()), \"/S\").concat(this.infoObj.getContentInnerNumber(), \"/\").concat(sndName);\n }\n }, {\n key: \"setSideBtns\",\n value: function setSideBtns() {}\n }, {\n key: \"destory\",\n value: function destory() {\n window.removeEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.soundBtnStyleReset);\n }\n }]);\n return AbstractEbook;\n}();\n\nexports.AbstractEbook = AbstractEbook;\n\n},{\"../../common/event/media-events\":27,\"../../common/media/sound/sound-player\":29,\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../data/get-data\":62,\"../../info/data-interface\":65,\"../../info/program-info\":66,\"./content-common\":39,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/toConsumableArray\":19,\"@babel/runtime/regenerator\":22}],37:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AudioCommon = void 0;\n\nvar sound_player_viewer_1 = require(\"../../common/media/sound/sound-player-viewer\");\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar get_data_1 = require(\"../../data/get-data\");\n\nvar data_interface_1 = require(\"../../info/data-interface\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar content_common_1 = require(\"./content-common\");\n\nvar AudioCommon = /*#__PURE__*/function () {\n function AudioCommon() {\n (0, _classCallCheck2[\"default\"])(this, AudioCommon);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(AudioCommon, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var textBoard, firstItem;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this.bookNumber = this.infoObj.getBookNumber();\n this.innerNumber = this.infoObj.getContentInnerNumber();\n this.contentType = this.infoObj.getContentType();\n this.bookData = new get_data_1.BookData();\n this.bookData.setContentType(this.contentType);\n this.soundPlayerViewer = new sound_player_viewer_1.YoilSoundPlayerViewer();\n this.soundPlayerViewer.init();\n this.setImg();\n this.setBoard();\n _context.next = 11;\n return this.setTextBoard();\n\n case 11:\n (0, content_common_1.setExitBtn)();\n textBoard = document.querySelector('.back_textBoard');\n firstItem = textBoard.querySelector('.textBoard_item');\n firstItem.dispatchEvent(new Event(pc_mobile_1.StaticData.CLICK));\n\n if (window['isNativeApp'] === true) {\n textBoard.classList.add('native');\n }\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setImg\",\n value: function setImg() {\n var contentEl = document.querySelector('.content-audio');\n var logo = document.querySelector('.content_top');\n contentEl.classList.add(\"content-\".concat(this.contentType));\n logo.classList.add(this.contentType);\n }\n }, {\n key: \"setBoard\",\n value: function setBoard() {\n var monthImg = document.querySelector('.cover_month');\n var coverImg = document.querySelector('.cover_img');\n var coverTitle = document.querySelector('.cover_title');\n monthImg.style.backgroundImage = \"url(\\\"\".concat(this.getMonthPath(), \"\\\")\");\n coverImg.style.backgroundImage = \"url(\\\"./images/\".concat(this.contentType, \"/list/cover/btn_\").concat(this.getInnerContentPath(), \".jpg\\\")\");\n var bookNumber = this.bookNumber - 1;\n var innerNumber = this.innerNumber - 1;\n var bookStr = this.bookData.getList()[bookNumber][innerNumber];\n coverTitle.innerText = bookStr;\n }\n }, {\n key: \"getMonthPath\",\n value: function getMonthPath() {\n return this.infoObj.getMonthImgPath(this.bookNumber);\n }\n }, {\n key: \"getInnerContentPath\",\n value: function getInnerContentPath() {\n var dividNum = this.contentType === data_interface_1.BookType.WFTA ? 3 : 4;\n var bookCoverNum = this.bookNumber * dividNum + (this.innerNumber - dividNum);\n return (0, util_1.get10Check)(bookCoverNum);\n }\n }, {\n key: \"setTextBoard\",\n value: function setTextBoard() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var _this = this;\n\n var borderDiv;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.getBoardData();\n\n case 2:\n this.textData = _context2.sent;\n borderDiv = document.querySelector('.back_textBoard');\n this.textData.forEach(function (dataStr, value) {\n var itemDiv = _this.createTextItem(dataStr);\n\n itemDiv['mp3'] = value;\n itemDiv.addEventListener(pc_mobile_1.StaticData.CLICK, _this.itemClick.bind(_this));\n borderDiv.appendChild(itemDiv);\n });\n return _context2.abrupt(\"return\", new Promise(function (resolve) {\n resolve(true);\n }));\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n }, {\n key: \"getBoardData\",\n value: function getBoardData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3() {\n var jsonPath, jsonData, start, end, returnData, targetContent;\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n jsonPath = \"./json/\".concat(this.contentType, \"/audio/\").concat(this.contentType, \"-audio.json\");\n _context3.next = 3;\n return this.bookData.getNormalContentData(jsonPath);\n\n case 3:\n jsonData = _context3.sent;\n start = jsonData.start;\n end = jsonData.end;\n\n if (this.contentType === data_interface_1.BookType.WFTA) {\n targetContent = jsonData[\"book\".concat(this.bookNumber)][\"S\".concat(this.innerNumber)];\n returnData = [].concat((0, _toConsumableArray2[\"default\"])(start), (0, _toConsumableArray2[\"default\"])(targetContent), [end]);\n } else if (this.contentType === data_interface_1.BookType.WW) {\n returnData = jsonData['books'];\n }\n\n return _context3.abrupt(\"return\", returnData);\n\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n }\n }, {\n key: \"createTextItem\",\n value: function createTextItem(dataStr) {\n var iconDiv = document.createElement('div');\n iconDiv.className = 'item_icon';\n var itemText = document.createElement('div');\n itemText.className = 'item_text';\n itemText.innerText = dataStr;\n var itemDiv = document.createElement('div');\n itemDiv.className = 'textBoard_item';\n itemDiv.appendChild(iconDiv);\n itemDiv.appendChild(itemText);\n return itemDiv;\n }\n }, {\n key: \"itemClick\",\n value: function itemClick(event) {\n document.querySelectorAll('.textBoard_item').forEach(function (target) {\n target.classList.remove('select');\n });\n var clkTarget = event.currentTarget;\n clkTarget.classList.add('select');\n var selectMonth = (0, util_1.get10Check)(this.bookNumber);\n var audioName = (0, util_1.get10Check)(clkTarget['mp3'] + 1);\n var soundPath = \"./sound/\".concat(this.contentType, \"/audio/\").concat(selectMonth, \"/S\").concat(this.innerNumber, \"/audio\").concat(audioName, \".mp3\");\n this.soundPlayerViewer.setSound(soundPath);\n }\n }, {\n key: \"destory\",\n value: function destory() {\n this.soundPlayerViewer.destroy();\n this.soundPlayerViewer = null;\n }\n }]);\n return AudioCommon;\n}();\n\nexports.AudioCommon = AudioCommon;\n\n},{\"../../common/media/sound/sound-player-viewer\":28,\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../data/get-data\":62,\"../../info/data-interface\":65,\"../../info/program-info\":66,\"./content-common\":39,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/toConsumableArray\":19,\"@babel/runtime/regenerator\":22}],38:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ComicCommon = void 0;\n\nvar css_name_1 = require(\"../../common/css-name\");\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar abstract_ebook_1 = require(\"./abstract-ebook\");\n\nvar ComicCommon = /*#__PURE__*/function (_abstract_ebook_1$Abs) {\n (0, _inherits2[\"default\"])(ComicCommon, _abstract_ebook_1$Abs);\n\n var _super2 = _createSuper(ComicCommon);\n\n function ComicCommon() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ComicCommon);\n _this = _super2.apply(this, arguments);\n _this.comicPages = [];\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ComicCommon, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var _super = Object.create(null, {\n init: {\n get: function get() {\n return (0, _get2[\"default\"])((0, _getPrototypeOf2[\"default\"])(ComicCommon.prototype), \"init\", _this2);\n }\n }\n });\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _super.init.call(this);\n\n this.sideBtns = document.querySelectorAll('.content_side > div');\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setSideBtns\",\n value: function setSideBtns() {\n var _this3 = this;\n\n this.pageLst.forEach(function (_key, value) {\n var targetEl = _this3.sideBtns[value];\n targetEl.classList.remove(css_name_1.YOIL_CSS.yoil_display_hide);\n targetEl.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this3.sideClickRemove();\n\n targetEl.classList.add('side_click');\n\n _this3.pageAllHide();\n\n _this3.showPages(value);\n\n _this3.soundPlayer.soundStop();\n\n _this3.soundBtnStyleReset();\n });\n });\n var el = this.sideBtns[0];\n el.dispatchEvent(new Event(pc_mobile_1.StaticData.CLICK));\n }\n }, {\n key: \"sideClickRemove\",\n value: function sideClickRemove() {\n this.sideBtns.forEach(function (el) {\n el.classList.remove('side_click');\n });\n }\n }, {\n key: \"pageAllHide\",\n value: function pageAllHide() {\n if (this.comicPages.length === 0) {\n this.setPages();\n }\n\n this.comicPages.forEach(function (el) {\n el.classList.add(css_name_1.YOIL_CSS.yoil_display_hide);\n });\n }\n }, {\n key: \"setPages\",\n value: function setPages() {\n var nodes = document.querySelectorAll('.content_pages>div');\n this.comicPages = Array.from(nodes).reverse();\n }\n }, {\n key: \"showPages\",\n value: function showPages(pageNum) {\n var targetPage = this.comicPages[pageNum];\n if (targetPage === undefined) return;\n targetPage.classList.remove(css_name_1.YOIL_CSS.yoil_display_hide);\n }\n }, {\n key: \"destory\",\n value: function destory() {\n (0, _get2[\"default\"])((0, _getPrototypeOf2[\"default\"])(ComicCommon.prototype), \"destory\", this).call(this);\n }\n }]);\n return ComicCommon;\n}(abstract_ebook_1.AbstractEbook);\n\nexports.ComicCommon = ComicCommon;\n\n},{\"../../common/css-name\":26,\"../../common/pc-mobile\":31,\"./abstract-ebook\":36,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/get\":7,\"@babel/runtime/helpers/getPrototypeOf\":8,\"@babel/runtime/helpers/inherits\":9,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/possibleConstructorReturn\":15,\"@babel/runtime/regenerator\":22}],39:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addElementClass = exports.setExitBtn = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar router_1 = require(\"../../router/router\");\n\nvar infoObj = program_info_1.ProgramInfo.getInstance(); // 나가기 버튼 설정\n\nvar setExitBtn = function setExitBtn() {\n var pathStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : infoObj.getBackUrl();\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n router.moveContent(pathStr);\n });\n};\n\nexports.setExitBtn = setExitBtn;\n\nvar addElementClass = function addElementClass(elements, clssName) {\n elements.forEach(function (el) {\n el.classList.add(clssName);\n });\n};\n\nexports.addElementClass = addElementClass;\n\n},{\"../../common/pc-mobile\":31,\"../../info/program-info\":66,\"../../router/router\":71}],40:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EbookCommon = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar abstract_ebook_1 = require(\"./abstract-ebook\");\n\nvar EbookCommon = /*#__PURE__*/function (_abstract_ebook_1$Abs) {\n (0, _inherits2[\"default\"])(EbookCommon, _abstract_ebook_1$Abs);\n\n var _super2 = _createSuper(EbookCommon);\n\n function EbookCommon() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, EbookCommon);\n _this = _super2.apply(this, arguments);\n _this.currentPageNum = 0;\n _this.YOIL_ALPHA_HIDE = 'yoil_display-alpha-hide';\n return _this;\n }\n\n (0, _createClass2[\"default\"])(EbookCommon, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var _super = Object.create(null, {\n init: {\n get: function get() {\n return (0, _get2[\"default\"])((0, _getPrototypeOf2[\"default\"])(EbookCommon.prototype), \"init\", _this2);\n }\n }\n });\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _super.init.call(this);\n\n this.leftBtn = document.querySelector('.content_left');\n this.rightBtn = document.querySelector('.content_right');\n this.setArrow();\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n } // 화살표 체크\n\n }, {\n key: \"setArrow\",\n value: function setArrow() {\n var _this3 = this;\n\n this.leftBtn.classList.add(this.YOIL_ALPHA_HIDE);\n this.leftBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this3.currentPageNum--;\n\n _this3.getCurrentPage().classList.remove(_this3.YOIL_ALPHA_HIDE);\n\n _this3.checkContentArrow();\n\n _this3.soundBtnStyleReset();\n\n _this3.soundPlayer.soundStop();\n });\n this.rightBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this3.getCurrentPage().classList.add(_this3.YOIL_ALPHA_HIDE);\n\n _this3.currentPageNum++;\n\n _this3.checkContentArrow();\n\n _this3.soundBtnStyleReset();\n\n _this3.soundPlayer.soundStop();\n });\n } // 현재 페이지 element를 돌려준다.\n\n }, {\n key: \"getCurrentPage\",\n value: function getCurrentPage() {\n return document.querySelector('.ebook_page' + this.currentPageNum);\n } // 화살표 체크\n\n }, {\n key: \"checkContentArrow\",\n value: function checkContentArrow() {\n this.leftBtn.classList.remove(this.YOIL_ALPHA_HIDE);\n this.rightBtn.classList.remove(this.YOIL_ALPHA_HIDE);\n\n if (this.currentPageNum === 0) {\n this.leftBtn.classList.add(this.YOIL_ALPHA_HIDE);\n } else if (this.currentPageNum === this.totalPageNum) {\n this.rightBtn.classList.add(this.YOIL_ALPHA_HIDE);\n }\n }\n }, {\n key: \"destory\",\n value: function destory() {\n (0, _get2[\"default\"])((0, _getPrototypeOf2[\"default\"])(EbookCommon.prototype), \"destory\", this).call(this);\n this.soundPlayer.soundStop();\n }\n }]);\n return EbookCommon;\n}(abstract_ebook_1.AbstractEbook);\n\nexports.EbookCommon = EbookCommon;\n\n},{\"../../common/pc-mobile\":31,\"./abstract-ebook\":36,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/get\":7,\"@babel/runtime/helpers/getPrototypeOf\":8,\"@babel/runtime/helpers/inherits\":9,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/possibleConstructorReturn\":15,\"@babel/runtime/regenerator\":22}],41:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MainSideSection = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar data_interface_1 = require(\"../../info/data-interface\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar MainSideSection = /*#__PURE__*/function () {\n function MainSideSection(listData) {\n (0, _classCallCheck2[\"default\"])(this, MainSideSection);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.stageNum = 1;\n this.listData = listData;\n this.setSideBtns();\n }\n\n (0, _createClass2[\"default\"])(MainSideSection, [{\n key: \"setSideBtns\",\n value: function setSideBtns() {\n var _this = this;\n\n this.infoObj.setBookNumber(1);\n var btns = document.querySelectorAll('.section_btn');\n btns.forEach(function (el, key) {\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function (event) {\n _this.stageNum = key + 1;\n\n _this.changeMonthText(key);\n\n _this.changeBorderColor(key);\n\n _this.changeBookCover(key);\n\n _this.inputBookTitle(key);\n\n _this.infoObj.setBookNumber(_this.stageNum);\n\n _this.setOpenContents();\n });\n });\n btns[0].dispatchEvent(new Event(pc_mobile_1.StaticData.CLICK));\n }\n }, {\n key: \"changeMonthText\",\n value: function changeMonthText(key) {\n var monthImg = document.querySelector('.title_image');\n this.removeClassPosition(monthImg);\n var titleUrl;\n\n if (this.infoObj.getContentType() == data_interface_1.BookType.BWW) {\n this.bwwContentCheck(monthImg);\n titleUrl = \"url('./images/bww/list/vol_\".concat((0, util_1.get10Check)(++key), \".png')\");\n } else {\n titleUrl = \"url(\\\"\".concat(this.infoObj.getMonthImgPath(++key), \"\\\")\");\n }\n\n monthImg.style.backgroundImage = titleUrl;\n }\n }, {\n key: \"bwwContentCheck\",\n value: function bwwContentCheck(monthImg) {\n if (monthImg.classList.contains(data_interface_1.BookType.BWW)) {} else {\n monthImg.classList.add(data_interface_1.BookType.BWW);\n }\n }\n }, {\n key: \"changeBorderColor\",\n value: function changeBorderColor(key) {\n var border = document.querySelector('.index_board');\n var btnChar = String.fromCharCode(97 + key);\n this.removeClassPosition(border);\n border.classList.add(btnChar);\n } // 책 표지 교체\n\n }, {\n key: \"changeBookCover\",\n value: function changeBookCover(key) {\n var _this2 = this;\n\n var items = document.querySelectorAll('.contents_item');\n items.forEach(function (el, innerKey) {\n if (window['testMode'] === true) {\n el.classList.remove('yoil_button-disable');\n } else {\n if (el.classList.contains('yoil_button-disable')) {} else {\n el.classList.add('yoil_button-disable');\n }\n }\n\n _this2.removeItem(el);\n\n el.classList.add('item' + (key + 1));\n });\n } // 책 제목 넣기\n\n }, {\n key: \"inputBookTitle\",\n value: function inputBookTitle(dataNum) {\n var titles = this.listData[dataNum];\n var inputs = document.querySelectorAll('.item_text');\n inputs.forEach(function (el, key) {\n el.innerHTML = titles[key];\n });\n } // 보드 색 제거\n\n }, {\n key: \"removeClassPosition\",\n value: function removeClassPosition(border) {\n var positionNum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (border.classList.length === 1) {\n return;\n }\n\n var removeClass = border.classList[positionNum];\n border.classList.remove(removeClass);\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(el) {\n var itemNum = 1;\n\n while (itemNum <= 12) {\n el.classList.remove(\"item\".concat(itemNum));\n itemNum++;\n }\n }\n }, {\n key: \"setOpenContents\",\n value: function setOpenContents() {\n var books = this.infoObj.getUserBooks();\n var volumNum = this.infoObj.getBookNumber();\n books.forEach(function (data) {\n if (data.vol === volumNum) {\n var items = Array.from(document.querySelectorAll('.contents_item'));\n var targetItem = items[data.number - 1];\n targetItem.classList.remove('yoil_button-disable');\n }\n });\n }\n }]);\n return MainSideSection;\n}();\n\nexports.MainSideSection = MainSideSection;\n\n},{\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../info/data-interface\":65,\"../../info/program-info\":66,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],42:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VideoCommon = void 0;\n\nvar video_player_1 = require(\"../../common/media/video/video-player\");\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar data_interface_1 = require(\"../../info/data-interface\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar router_1 = require(\"../../router/router\");\n\nvar VideoCommon = /*#__PURE__*/function () {\n function VideoCommon() {\n (0, _classCallCheck2[\"default\"])(this, VideoCommon);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(VideoCommon, [{\n key: \"init\",\n value: function init() {\n this.setImg();\n this.setVideo();\n this.changeVideo();\n this.changeTitle();\n this.setExitContent();\n }\n }, {\n key: \"setImg\",\n value: function setImg() {\n var typeStr = this.infoObj.getContentType();\n var contentEl = document.querySelector('.content-animation');\n var logo = document.querySelector('.content_top');\n contentEl.classList.add(typeStr);\n logo.classList.add(typeStr);\n }\n }, {\n key: \"setVideo\",\n value: function setVideo() {\n this.videoPlayer = new video_player_1.YoilVideoPlayer();\n this.videoPlayer.init(this.getVideoSize());\n this.videoPlayer.startComponent();\n this.videoPlayer.captionHide();\n }\n }, {\n key: \"getVideoSize\",\n value: function getVideoSize() {\n switch (this.infoObj.getContentType()) {\n case data_interface_1.BookType.WFTA:\n return {\n width: 1200,\n height: 900\n };\n\n case data_interface_1.BookType.BWW:\n case data_interface_1.BookType.WW:\n return {\n width: 1760,\n height: 1000\n };\n }\n }\n }, {\n key: \"changeVideo\",\n value: function changeVideo() {\n var videoUrl = this.infoObj.getVideoUrl();\n this.videoPlayer.changeVideo(videoUrl);\n }\n }, {\n key: \"changeTitle\",\n value: function changeTitle() {\n var animationName = this.infoObj.getBookName();\n var titleEl = document.querySelector('.top_title');\n titleEl.textContent = animationName;\n }\n }, {\n key: \"setExitContent\",\n value: function setExitContent() {\n var _this = this;\n\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n router.moveContent(_this.infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return VideoCommon;\n}();\n\nexports.VideoCommon = VideoCommon;\n\n},{\"../../common/media/video/video-player\":30,\"../../common/pc-mobile\":31,\"../../info/data-interface\":65,\"../../info/program-info\":66,\"../../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],43:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentsIndex = void 0;\n\nvar pc_mobile_1 = require(\"../common/pc-mobile\");\n\nvar data_interface_1 = require(\"../info/data-interface\");\n\nvar program_info_1 = require(\"../info/program-info\");\n\nvar router_1 = require(\"../router/router\");\n\nvar main_side_section_1 = require(\"./contents-common/main-side-section\");\n\nvar ContentsIndex = /*#__PURE__*/function () {\n function ContentsIndex() {\n (0, _classCallCheck2[\"default\"])(this, ContentsIndex);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.allView = false;\n }\n\n (0, _createClass2[\"default\"])(ContentsIndex, [{\n key: \"init\",\n value: function init() {\n if (this.infoObj.getVariable('first')) {} else {\n var introEl = document.querySelector('.intro');\n introEl.classList.add('intro_logo');\n introEl.addEventListener('animationend', function () {\n introEl.classList.remove('intro_logo');\n });\n }\n\n this.infoObj.setContentType();\n this.currentContent = this.infoObj.getContentType();\n this.setCommonBtns();\n this.setMoveContents();\n this.setAllContents();\n this.setViewContents();\n this.setContentExit();\n this.checkOpenAllContents();\n var sideSection = new main_side_section_1.MainSideSection(this.infoObj.getBookList());\n }\n }, {\n key: \"setCommonBtns\",\n value: function setCommonBtns() {\n this.allBtn = document.querySelector(\".\".concat(this.currentContent, \"All\"));\n this.indexBoard = document.querySelector(\".\".concat(this.currentContent, \"Index\"));\n } // 컨텐츠로 이동\n\n }, {\n key: \"setMoveContents\",\n value: function setMoveContents() {\n var _this = this;\n\n var contentItems = document.querySelectorAll('.contents_item');\n contentItems.forEach(function (el, key) {\n if (window['testMode'] === true) {} else {\n el.classList.add('yoil_button-disable');\n }\n\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var monthNum = _this.infoObj.getBookNumber();\n\n var innerBookNum = key + 1;\n router_1[\"default\"].getInstance().moveContent(_this.getContentPath(monthNum, innerBookNum));\n\n _this.infoObj.setContentInnerNumber(innerBookNum);\n });\n });\n }\n }, {\n key: \"getContentPath\",\n value: function getContentPath(bookNumber, innerContent) {\n var contentType = this.infoObj.getContentType();\n return contentType === data_interface_1.BookType.BWW ? data_interface_1.BookType.BWW + '/' + bookNumber : \"\".concat(contentType, \"/\").concat(bookNumber, \"/\").concat(innerContent);\n } // 전체 컨텐츠 설정\n\n }, {\n key: \"setAllContents\",\n value: function setAllContents() {\n var _this2 = this;\n\n var boxContent = document.querySelectorAll('.box_content');\n boxContent.forEach(function (el, key) {\n if (window['testMode'] === true) {} else {\n el.classList.add('yoil_button-disable');\n }\n\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var contentInfo = _this2.getAllContentsNumbers(key);\n\n if (_this2.currentContent === data_interface_1.BookType.BWW) {// 베이비 워드월드는 따로 설정해주지 않는다.\n } else {\n _this2.infoObj.setBookNumber(contentInfo.bookNumber);\n\n _this2.infoObj.setContentInnerNumber(contentInfo.innerContent);\n }\n\n router_1[\"default\"].getInstance().moveContent(contentInfo.movePath);\n });\n });\n }\n }, {\n key: \"getAllContentsNumbers\",\n value: function getAllContentsNumbers(key) {\n var allContentsInfo = {\n bookNumber: 0,\n innerContent: 0,\n movePath: ''\n };\n\n switch (this.currentContent) {\n case data_interface_1.BookType.WFTA:\n allContentsInfo = this.getAllInnerData(key, 3);\n break;\n\n case data_interface_1.BookType.WW:\n allContentsInfo = this.getAllInnerData(key, 4);\n break;\n\n case data_interface_1.BookType.BWW:\n allContentsInfo.movePath = \"\".concat(this.currentContent, \"/\").concat(key + 1);\n break;\n }\n\n return allContentsInfo;\n }\n }, {\n key: \"getAllInnerData\",\n value: function getAllInnerData(loopNum, bookLimit) {\n var bookNumber = Math.ceil((loopNum + 1) / bookLimit);\n var innerContent = (loopNum + 1) % bookLimit === 0 ? bookLimit : (loopNum + 1) % bookLimit;\n var movePath = \"\".concat(this.currentContent, \"/\").concat(bookNumber, \"/\").concat(innerContent);\n return {\n bookNumber: bookNumber,\n innerContent: innerContent,\n movePath: movePath\n };\n } // 전체 컨텐츠 보기\n\n }, {\n key: \"setViewContents\",\n value: function setViewContents() {\n var _this3 = this;\n\n var viewAllContent = document.querySelector('.contents_all');\n viewAllContent.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this3.indexBoard.classList.add('yoil_display-hide');\n\n _this3.allBtn.classList.remove('yoil_display-hide');\n\n _this3.allView = true;\n });\n }\n }, {\n key: \"checkOpenAllContents\",\n value: function checkOpenAllContents() {\n if (window['testMode'] === true) {\n return;\n }\n\n var boxContents = document.querySelectorAll('.box_contents');\n var books = this.infoObj.getUserBooks();\n books.forEach(function (data) {\n var targetBoxContent = boxContents[data.vol - 1];\n var targetBooks = targetBoxContent.querySelectorAll('.box_content');\n var targetBook = targetBooks[data.number - 1];\n targetBook.classList.remove('yoil_button-disable');\n });\n } // main 화면으로 이동\n\n }, {\n key: \"setContentExit\",\n value: function setContentExit() {\n var _this4 = this;\n\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n if (_this4.allView === true) {\n _this4.allBtn.classList.add('yoil_display-hide');\n\n _this4.indexBoard.classList.remove('yoil_display-hide');\n\n _this4.allView = false;\n return;\n }\n\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentsIndex;\n}();\n\nexports.ContentsIndex = ContentsIndex;\n\n},{\"../common/pc-mobile\":31,\"../info/data-interface\":65,\"../info/program-info\":66,\"../router/router\":71,\"./contents-common/main-side-section\":41,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],44:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWftaCharacter = void 0;\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar CharacterSong_1 = require(\"./character-song/CharacterSong\");\n\nvar ContentWftaCharacter = /*#__PURE__*/function () {\n function ContentWftaCharacter() {\n (0, _classCallCheck2[\"default\"])(this, ContentWftaCharacter);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.cardTotalLst = [];\n }\n\n (0, _createClass2[\"default\"])(ContentWftaCharacter, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo, charData;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getNormalContentData('./json/wfta/character/wfta-character.json');\n\n case 3:\n charData = _context.sent;\n this.bookNumber = this.infoObj.getBookNumber();\n this.innerContent = this.infoObj.getContentInnerNumber();\n this.cardTotalLst = charData[\"book\".concat(this.bookNumber)][\"S\".concat(this.innerContent)];\n this.characterSong = new CharacterSong_1.ContentSong();\n this.characterSong.init();\n this.contentCard = document.querySelector('.content_card');\n this.contentClip = document.querySelector('.content_clip');\n this.contentSong = document.querySelector('.content_song');\n this.currentStage = 0\n /* STAGE_TYPE.CARD_VIEW */\n ;\n this.backDataCheck();\n this.putCardViewData();\n this.setExitBtn();\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n } // 비디오로 갔다가 되돌아 올 때 화면 처리를 위해서 작성\n\n }, {\n key: \"backDataCheck\",\n value: function backDataCheck() {\n var backData = this.infoObj.getContentBackData();\n console.log('backData', backData);\n\n if (backData) {\n this.putSelectCardData(backData);\n this.turnStage(1\n /* STAGE_TYPE.SELECT_VIEW */\n );\n } else {\n this.userSelectNum = null;\n this.turnStage(0\n /* STAGE_TYPE.CARD_VIEW */\n );\n }\n } // 화면 전환\n\n }, {\n key: \"turnStage\",\n value: function turnStage(stageType) {\n this.contentCard.classList.remove('active');\n this.contentClip.classList.remove('active');\n this.contentSong.classList.remove('active');\n\n switch (stageType) {\n case 0\n /* STAGE_TYPE.CARD_VIEW */\n :\n this.contentCard.classList.add('active');\n break;\n\n case 1\n /* STAGE_TYPE.SELECT_VIEW */\n :\n this.contentClip.classList.add('active');\n break;\n\n case 2\n /* STAGE_TYPE.SONG_VIEW */\n :\n this.contentSong.classList.add('active');\n break;\n }\n\n this.currentStage = stageType;\n } // 첫 화면\n\n }, {\n key: \"putCardViewData\",\n value: function putCardViewData() {\n var _this = this;\n\n var charCards = document.querySelectorAll('.card_cha');\n charCards.forEach(function (cardEl, value) {\n cardEl.style.backgroundImage = \"url(\".concat(_this.getCardImgPath(value), \")\");\n cardEl.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.userSelectNum = value + 1;\n\n _this.infoObj.setContentBackData(_this.userSelectNum);\n\n _this.putSelectCardData(_this.userSelectNum);\n\n _this.turnStage(1\n /* STAGE_TYPE.SELECT_VIEW */\n );\n });\n });\n }\n }, {\n key: \"getCardImgPath\",\n value: function getCardImgPath(value) {\n return \"\".concat(this.getImgPath(), \"/cha_\").concat((0, util_1.get10Check)(value + 1), \".png\");\n }\n }, {\n key: \"getImgPath\",\n value: function getImgPath() {\n var bookNum = (0, util_1.get10Check)(this.bookNumber);\n return \"./images/wfta/character/\".concat(bookNum, \"/S\").concat(this.innerContent);\n } // 카드 선택 후 두번째 화면\n\n }, {\n key: \"putSelectCardData\",\n value: function putSelectCardData(selectNum) {\n this.userSelectNum = selectNum;\n var cardStr = (0, util_1.get10Check)(selectNum);\n var clipCard = document.querySelector('.clip_card');\n var selectImg = \"\".concat(this.getImgPath(), \"/cha_\").concat(cardStr, \".png\");\n clipCard.style.backgroundImage = \"url(\".concat(selectImg, \")\");\n var clipsEl = document.querySelector('.clip_videos');\n this.removeAllClipCard(clipsEl);\n var totalNum = this.cardTotalLst[selectNum - 1];\n this.addCardClip({\n totalNum: totalNum,\n cardStr: cardStr,\n clipsEl: clipsEl\n });\n this.replaceSong(clipCard);\n } // 모든 비디오 클립 삭제\n\n }, {\n key: \"removeAllClipCard\",\n value: function removeAllClipCard(clipsEl) {\n var videosImgs = document.querySelectorAll('.videos_img');\n\n if (videosImgs) {\n videosImgs.forEach(function (el) {\n clipsEl.removeChild(el);\n });\n }\n } // 새로운 비디오 클립 삽입\n\n }, {\n key: \"addCardClip\",\n value: function addCardClip(_ref) {\n var _this2 = this;\n\n var totalNum = _ref.totalNum,\n cardStr = _ref.cardStr,\n clipsEl = _ref.clipsEl;\n\n var _loop = function _loop(imgNum) {\n var clipImgDiv = _this2.getVideoClipDiv({\n cardStr: cardStr,\n imgNum: imgNum\n });\n\n clipsEl.appendChild(clipImgDiv);\n clipImgDiv.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var movePath = \"wfta/\".concat(_this2.bookNumber, \"/\").concat(_this2.innerContent, \"/character/video\");\n\n _this2.infoObj.setVideoUrl(_this2.getVideoUrl(imgNum));\n\n router.moveContent(movePath);\n });\n };\n\n for (var imgNum = 1; imgNum <= totalNum; imgNum++) {\n _loop(imgNum);\n }\n } // 새로운 비디오 클립 생성\n\n }, {\n key: \"getVideoClipDiv\",\n value: function getVideoClipDiv(_ref2) {\n var cardStr = _ref2.cardStr,\n imgNum = _ref2.imgNum;\n var imgPath = \"\".concat(this.getImgPath(), \"/\").concat(cardStr, \"/cha_\").concat(cardStr, \"_0\").concat(imgNum, \".png\");\n var clip = document.createElement('div');\n clip.classList.add('videos_img');\n clip.style.backgroundImage = \"url(\".concat(imgPath, \")\");\n return clip;\n }\n }, {\n key: \"getVideoUrl\",\n value: function getVideoUrl(videoNum) {\n var book = (0, util_1.get10Check)(this.bookNumber);\n var content = \"S\".concat(this.innerContent);\n return \"./video/wfta/\".concat(book, \"/\").concat(content, \"/character\").concat(this.infoObj.getContentBackData(), \"/character-\").concat(videoNum, \".mp4\");\n }\n }, {\n key: \"replaceSong\",\n value: function replaceSong(parentEl) {\n var _this3 = this;\n\n var songBtn = document.querySelector('.card_audio');\n parentEl.removeChild(songBtn);\n var newSongBtn = document.createElement('div');\n newSongBtn.className = 'card_audio';\n parentEl.appendChild(newSongBtn);\n newSongBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n console.log('this.userSelectNum', _this3.userSelectNum);\n\n _this3.characterSong.selectCharcter(_this3.userSelectNum);\n\n _this3.turnStage(2\n /* STAGE_TYPE.SONG_VIEW */\n );\n });\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var _this4 = this;\n\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n switch (_this4.currentStage) {\n case 0\n /* STAGE_TYPE.CARD_VIEW */\n :\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n\n _this4.infoObj.setContentBackData(null);\n\n router.moveContent(infoObj.getBackUrl());\n break;\n\n case 1\n /* STAGE_TYPE.SELECT_VIEW */\n :\n _this4.turnStage(0\n /* STAGE_TYPE.CARD_VIEW */\n );\n\n break;\n\n case 2\n /* STAGE_TYPE.SONG_VIEW */\n :\n _this4.characterSong.reset();\n\n _this4.turnStage(1\n /* STAGE_TYPE.SELECT_VIEW */\n );\n\n break;\n }\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWftaCharacter;\n}();\n\nexports.ContentWftaCharacter = ContentWftaCharacter;\n\n},{\"../../../common/pc-mobile\":31,\"../../../common/util/util\":32,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"./character-song/CharacterSong\":45,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],45:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentSong = void 0;\n\nvar sound_player_viewer_1 = require(\"../../../../common/media/sound/sound-player-viewer\");\n\nvar pc_mobile_1 = require(\"../../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../../info/program-info\");\n\nvar ContentSong = /*#__PURE__*/function () {\n function ContentSong() {\n (0, _classCallCheck2[\"default\"])(this, ContentSong);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.bookNumber = this.infoObj.getBookNumber();\n this.innerContent = this.infoObj.getContentInnerNumber();\n this.player = new sound_player_viewer_1.YoilSoundPlayerViewer();\n this.player.init();\n this.player.addTag('div', 'player_mr');\n this.setMrBtn();\n }\n\n (0, _createClass2[\"default\"])(ContentSong, [{\n key: \"setMrBtn\",\n value: function setMrBtn() {\n var _this = this;\n\n var mrBtn = document.querySelector('.player_mr');\n mrBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var mrArBool;\n\n if (mrBtn.classList.contains('active')) {\n mrBtn.classList.remove('active');\n mrArBool = false;\n } else {\n mrBtn.classList.add('active');\n mrArBool = true;\n }\n\n _this.player.setSound(_this.getSoundPath(_this.soundNum, _this.bookNumber, _this.innerContent, mrArBool));\n });\n }\n }, {\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getNormalContentData('./json/wfta/character/song/wfta-character-song.json');\n\n case 3:\n this.songData = _context.sent;\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"selectCharcter\",\n value: function selectCharcter(charNum) {\n var _this2 = this;\n\n this.charNum = charNum;\n var targetData = this.getTargetData();\n var text = targetData.text,\n sound = targetData.sound;\n this.soundNum = sound;\n var textBoardData = document.querySelector('.textBoard_data');\n this.removeAllLineData(textBoardData);\n text.forEach(function (dataStr, value) {\n if (value === 0) {\n _this2.inputTitle(dataStr);\n } else {\n var dataDiv = _this2.getLineText(dataStr);\n\n textBoardData.appendChild(dataDiv);\n }\n });\n var sndPath = this.getSoundPath(sound, this.bookNumber, this.innerContent);\n this.player.setSound(sndPath);\n }\n }, {\n key: \"getTargetData\",\n value: function getTargetData() {\n return this.songData[\"book\".concat(this.bookNumber)][\"S\".concat(this.innerContent)][\"ch\".concat(this.charNum)];\n }\n }, {\n key: \"removeAllLineData\",\n value: function removeAllLineData(textBoardData) {\n var lineDatas = document.querySelectorAll('.data_line');\n lineDatas.forEach(function (target) {\n textBoardData.removeChild(target);\n });\n }\n }, {\n key: \"inputTitle\",\n value: function inputTitle(titleStr) {\n var titleDiv = document.querySelector('.textBoard_title');\n titleDiv.innerHTML = titleStr;\n }\n }, {\n key: \"getLineText\",\n value: function getLineText(txt) {\n var dataLine = document.createElement('div');\n dataLine.className = 'data_line';\n var lineText = document.createElement('div');\n lineText.className = 'line_text';\n lineText.innerText = txt;\n var lineBottom = document.createElement('div');\n lineBottom.className = 'line_bottom';\n dataLine.appendChild(lineText);\n dataLine.appendChild(lineBottom);\n return dataLine;\n }\n }, {\n key: \"getSoundPath\",\n value: function getSoundPath(sound, bookNumber, innerNumber) {\n var mr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var soundNum = sound;\n soundNum = mr ? soundNum + 1 : soundNum;\n return \"./sound/wfta/audio/\".concat((0, util_1.get10Check)(bookNumber), \"/S\").concat(innerNumber, \"/audio\").concat((0, util_1.get10Check)(soundNum), \".mp3\");\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.player.setSound('');\n var mrBtn = document.querySelector('.player_mr');\n mrBtn.classList.remove('active');\n }\n }]);\n return ContentSong;\n}();\n\nexports.ContentSong = ContentSong;\n\n},{\"../../../../common/media/sound/sound-player-viewer\":28,\"../../../../common/pc-mobile\":31,\"../../../../common/util/util\":32,\"../../../../data/get-data\":62,\"../../../../info/program-info\":66,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],46:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWftaDictionary = void 0;\n\nvar video_player_1 = require(\"../../../common/media/video/video-player\");\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar ContentWftaDictionary = /*#__PURE__*/function () {\n function ContentWftaDictionary() {\n (0, _classCallCheck2[\"default\"])(this, ContentWftaDictionary);\n this.currentPage = 0;\n this.infoData = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentWftaDictionary, [{\n key: \"init\",\n value: function init() {\n this.videoPlayer = new video_player_1.YoilVideoPlayer();\n this.videoPlayer.init({\n width: 600,\n height: 400,\n controlBool: false\n });\n this.videoPlayer.getVideoViewer().loop = false;\n this.getData();\n this.setNextPrev();\n this.setVideoPlayBtn();\n this.setExitBtn();\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getNormalContentData('./json/wfta/dictionary/wfta-dictionary.json');\n\n case 3:\n this.dicData = _context.sent;\n this.bookNumber = this.infoData.getBookNumber();\n this.innerContent = this.infoData.getContentInnerNumber();\n this.dicWords = this.dicData[\"book\".concat(this.bookNumber)][\"S\".concat(this.innerContent)];\n this.totalPage = this.dicWords.length - 1;\n this.putData();\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"putData\",\n value: function putData() {\n var panelImg = document.querySelector('.panel_img');\n panelImg.style.backgroundImage = this.getImagePath();\n var textDiv = document.querySelector('.panel_text');\n var stringData = this.dicWords[this.currentPage];\n textDiv.classList.remove('text-small');\n textDiv.classList.remove('text-small2');\n\n if (stringData.length >= 12) {\n textDiv.classList.add('text-small');\n } else if (stringData.length >= 7) {\n textDiv.classList.add('text-small2');\n }\n\n textDiv.innerText = stringData;\n this.putVideo();\n }\n }, {\n key: \"getImagePath\",\n value: function getImagePath() {\n return \"url(\\\"./images/wfta/dictionary/\".concat((0, util_1.get10Check)(this.bookNumber), \"/S\").concat(this.innerContent, \"/img_\").concat((0, util_1.get10Check)(this.currentPage + 1), \".jpg\\\")\");\n }\n }, {\n key: \"setNextPrev\",\n value: function setNextPrev() {\n var _this = this;\n\n var prevBtn = document.querySelector('.board_left');\n var nextBtn = document.querySelector('.board_right');\n [prevBtn, nextBtn].forEach(function (btn, direction) {\n btn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n if (direction === 0) {\n _this.currentPage--;\n } else {\n _this.currentPage++;\n }\n\n if (_this.currentPage <= 0) {\n // 첫 페이지\n _this.currentPage = 0;\n prevBtn.classList.add('yoil_display-alpha-hide');\n } else if (_this.currentPage >= _this.totalPage) {\n nextBtn.classList.add('yoil_display-alpha-hide');\n _this.currentPage = _this.totalPage;\n } else {\n prevBtn.classList.remove('yoil_display-alpha-hide');\n nextBtn.classList.remove('yoil_display-alpha-hide');\n }\n\n _this.putData();\n });\n });\n }\n }, {\n key: \"putVideo\",\n value: function putVideo() {\n this.videoPlayer.changeVideo(\"./video/wfta/dictionary/\".concat((0, util_1.get10Check)(this.bookNumber), \"/S\").concat(this.innerContent, \"/movie (\").concat(this.currentPage, \").mp4\"));\n this.videoPlayer.getVideoViewer().play();\n }\n }, {\n key: \"setVideoPlayBtn\",\n value: function setVideoPlayBtn() {\n var _this2 = this;\n\n var playBtn = document.querySelector('.video_play');\n playBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.videoPlayer.getVideoViewer().play();\n });\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWftaDictionary;\n}();\n\nexports.ContentWftaDictionary = ContentWftaDictionary;\n\n},{\"../../../common/media/video/video-player\":30,\"../../../common/pc-mobile\":31,\"../../../common/util/util\":32,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],47:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWftaMap = void 0;\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar ContentMapLocal_1 = require(\"./local/ContentMapLocal\");\n\nvar MapLocalView_1 = require(\"./local/MapLocalView\");\n\nvar ContentWftaMap = /*#__PURE__*/function () {\n function ContentWftaMap() {\n (0, _classCallCheck2[\"default\"])(this, ContentWftaMap);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentWftaMap, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo, place, contentData;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getNormalContentData(dataInfo.getJsonPathUrl());\n\n case 3:\n this.currentData = _context.sent;\n this.contentNum = this.infoObj.getContentInnerNumber();\n place = this.currentData.place;\n this.targetData = this.currentData[\"S\".concat(this.infoObj.getContentInnerNumber())];\n contentData = {\n totalData: this.currentData,\n bookNum: this.infoObj.getBookNumber(),\n contentNum: this.infoObj.getContentInnerNumber()\n };\n this.wordMap = document.querySelector('.contents_worldMap');\n this.localObject = new ContentMapLocal_1.ContentMapLocal(contentData);\n this.localObject.init();\n this.setTitle();\n this.setBackground();\n this.setCircle();\n this.setExitBtn();\n\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setTitle\",\n value: function setTitle() {\n var title = document.querySelector('.top_title');\n title.innerHTML = this.infoObj.getBookTitle();\n }\n }, {\n key: \"setBackground\",\n value: function setBackground() {\n this.wordMap.classList.add(\"S\".concat(this.contentNum));\n }\n }, {\n key: \"setCircle\",\n value: function setCircle() {\n var _this = this;\n\n var world = this.targetData.world;\n var circle = document.querySelector('.worldMap_circle');\n circle.style.top = \"\".concat(world.y - 40, \"px\");\n circle.style.left = \"\".concat(world.x - 40, \"px\");\n circle.style.display = 'inline-block';\n circle.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var localMap = document.querySelector('.contents_local');\n _this.wordMap.style.display = 'none';\n localMap.style.display = 'block';\n });\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n (0, MapLocalView_1.localSoundStop)();\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWftaMap;\n}();\n\nexports.ContentWftaMap = ContentWftaMap;\n\n},{\"../../../common/pc-mobile\":31,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"./local/ContentMapLocal\":48,\"./local/MapLocalView\":50,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],48:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentMapLocal = void 0;\n\nvar util_1 = require(\"../../../../common/util/util\");\n\nvar MapLocalBottom_1 = require(\"./MapLocalBottom\");\n\nvar MapLocalView_1 = require(\"./MapLocalView\");\n\nvar ContentMapLocal = /*#__PURE__*/function () {\n function ContentMapLocal(contentData) {\n (0, _classCallCheck2[\"default\"])(this, ContentMapLocal);\n this.contentData = contentData;\n this.totalData = contentData.totalData;\n this.bookPath = (0, util_1.get10Check)(contentData.bookNum);\n this.contentNum = contentData.contentNum;\n this.contentPath = \"S\".concat(this.contentNum);\n }\n\n (0, _createClass2[\"default\"])(ContentMapLocal, [{\n key: \"init\",\n value: function init() {\n this.bottomArea = new MapLocalBottom_1.MapLocalBottom(this.contentData);\n this.bottomArea.init();\n (0, MapLocalView_1[\"default\"])(this.contentData);\n this.setBackground();\n }\n }, {\n key: \"setBackground\",\n value: function setBackground() {\n var local = document.querySelector('.contents_local');\n local.style.backgroundImage = \"url(\\\"./images/wfta/map/\".concat(this.bookPath, \"/\").concat(this.contentPath, \"/map_story0\").concat(this.contentNum, \".png\\\")\");\n }\n }]);\n return ContentMapLocal;\n}();\n\nexports.ContentMapLocal = ContentMapLocal;\n\n},{\"../../../../common/util/util\":32,\"./MapLocalBottom\":49,\"./MapLocalView\":50,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],49:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MapLocalBottom = void 0;\n\nvar pc_mobile_1 = require(\"../../../../common/pc-mobile\");\n\nvar MapLocalBottom = /*#__PURE__*/function () {\n function MapLocalBottom(contentData) {\n (0, _classCallCheck2[\"default\"])(this, MapLocalBottom);\n this.contentData = contentData;\n this.ACTIVE = 'active';\n this.totalData = contentData.totalData;\n this.contentPath = \"S\".concat(contentData.contentNum);\n this.boardText = document.querySelector('.board_text');\n }\n\n (0, _createClass2[\"default\"])(MapLocalBottom, [{\n key: \"init\",\n value: function init() {\n this.setBottomBoard();\n this.setBoardExit();\n }\n }, {\n key: \"setBottomBoard\",\n value: function setBottomBoard() {\n var _this = this;\n\n var boardBtns = document.querySelectorAll('.text_area');\n boardBtns.forEach(function (btn, value) {\n btn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.setBottomIconsHide();\n\n _this.setTextContent(value);\n\n btn.parentElement.classList.add(_this.ACTIVE);\n });\n });\n }\n }, {\n key: \"setBottomIconsHide\",\n value: function setBottomIconsHide() {\n var _this2 = this;\n\n var btns = document.querySelectorAll('.btns_text');\n btns.forEach(function (target) {\n target.classList.remove(_this2.ACTIVE);\n });\n }\n }, {\n key: \"setTextContent\",\n value: function setTextContent(value) {\n var targetData = this.totalData[this.contentPath];\n var targetHtmlTxt;\n\n switch (value) {\n case 0\n /* BottomType.PLACE */\n :\n targetHtmlTxt = this.totalData['place'];\n break;\n\n case 1\n /* BottomType.THEME */\n :\n targetHtmlTxt = targetData['theme'];\n break;\n\n case 2\n /* BottomType.STORY */\n :\n targetHtmlTxt = targetData['story'];\n break;\n }\n\n var textBoard = document.querySelector('.text_content');\n textBoard.innerHTML = targetHtmlTxt;\n this.fontCheck(textBoard);\n this.boardText.classList.add(this.ACTIVE);\n }\n }, {\n key: \"fontCheck\",\n value: function fontCheck(textBoard) {\n if (this.contentData.bookNum === 11 && this.contentData.contentNum === 2) {\n textBoard.classList.add('font29');\n }\n\n if (this.contentData.bookNum === 11 && this.contentData.contentNum === 3) {\n textBoard.classList.add('font31');\n }\n }\n }, {\n key: \"setBoardExit\",\n value: function setBoardExit() {\n var _this3 = this;\n\n var textClose = document.querySelector('.text_close');\n textClose.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this3.boardText.classList.remove(_this3.ACTIVE);\n\n _this3.setBottomIconsHide();\n });\n }\n }]);\n return MapLocalBottom;\n}();\n\nexports.MapLocalBottom = MapLocalBottom;\n\n},{\"../../../../common/pc-mobile\":31,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],50:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.localSoundStop = void 0;\n\nvar sound_player_1 = require(\"../../../../common/media/sound/sound-player\");\n\nvar pc_mobile_1 = require(\"../../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../../common/util/util\");\n\nvar allData = null;\nvar soundPlayer = new sound_player_1.YoilSoundPlayer(); // 모든 보드 숨김\n\nvar hideAllBoard = function hideAllBoard() {\n var boards = document.querySelectorAll('.view_board ');\n boards.forEach(function (el) {\n el.classList.remove('active');\n });\n}; // div 생성\n\n\nvar createDivBox = function createDivBox(clickBox) {\n var clickDiv = document.createElement('div');\n clickDiv.style.width = \"\".concat(clickBox.width, \"px\");\n clickDiv.style.height = \"\".concat(clickBox.height, \"px\");\n clickDiv.style.top = \"\".concat(clickBox.y, \"px\");\n clickDiv.style.left = \"\".concat(clickBox.x, \"px\");\n return clickDiv;\n}; // 클릭 영역 생성\n\n\nvar getClickBox = function getClickBox(boxData, count) {\n var clickBox = boxData['click'];\n var clickDiv = createDivBox(clickBox);\n var bookStr = (0, util_1.get10Check)(allData.bookNum);\n clickDiv.className = 'view_click';\n clickDiv.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n hideAllBoard();\n var targetBoard = document.querySelector(\".board\".concat(count));\n targetBoard.classList.add('active');\n soundPlayer.soundPlay(\"./sound/wfta/map/\".concat(bookStr, \"/image\").concat(count, \".mp3\"));\n });\n return clickDiv;\n};\n\nvar getBoardData = function getBoardData(boardBox, count, seasonNum) {\n if (boardBox.number) {\n return boardBox;\n } else {\n var local = getSeasonLocal(seasonNum - 1);\n var changeBoxData = local[\"textBox\".concat(count)]['board'];\n return getBoardData(changeBoxData, count, seasonNum - 1);\n }\n}; // 화면에 보일 영역 생성\n\n\nvar getBoardBox = function getBoardBox(boxData, count) {\n var boardBox = boxData['board'];\n console.log('boardBox', boardBox);\n var viewBoardDiv = document.createElement('div');\n viewBoardDiv.className = 'view_board';\n viewBoardDiv.style.top = \"\".concat(boardBox.y, \"px\");\n viewBoardDiv.style.left = \"\".concat(boardBox.x, \"px\");\n boardBox = getBoardData(boardBox, count, allData.contentNum);\n viewBoardDiv.classList.add(\"box\".concat(boardBox.number));\n viewBoardDiv.classList.add(\"board\".concat(count));\n var contentDiv = \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \";\n viewBoardDiv.innerHTML = contentDiv;\n var titleText = viewBoardDiv.querySelector('.title_text');\n titleText.innerHTML = boardBox.title;\n var contentText = viewBoardDiv.querySelector('.content_text');\n contentText.innerHTML = boardBox.text;\n return viewBoardDiv;\n}; // 가운데 글자 선택 박스 생성\n\n\nvar getCenterBox = function getCenterBox(contentData, season) {\n var center = contentData.totalData[season].center;\n\n if (!center) {\n return;\n }\n\n var centerBox = createDivBox(center);\n centerBox.className = 'view_center';\n centerBox.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var bookStr = (0, util_1.get10Check)(allData.bookNum);\n soundPlayer.soundPlay(\"./sound/wfta/map/\".concat(bookStr, \"/name0.mp3\"));\n });\n return centerBox;\n};\n\nvar getSeasonLocal = function getSeasonLocal(seasonNumber) {\n var season = \"S\".concat(seasonNumber);\n var local = allData.totalData[season].local;\n return local;\n};\n\nvar localSoundStop = function localSoundStop() {\n soundPlayer.soundStop();\n};\n\nexports.localSoundStop = localSoundStop;\n\nvar LocalView = function LocalView(contentData) {\n allData = contentData;\n var season = \"S\".concat(contentData.contentNum);\n var local = getSeasonLocal(contentData.contentNum);\n var count = 1;\n var localView = document.querySelector('.local_view');\n\n for (var boxName in local) {\n var boxData = local[boxName];\n var clickDiv = getClickBox(boxData, count);\n var boardDiv = getBoardBox(boxData, count);\n localView.appendChild(clickDiv);\n localView.appendChild(boardDiv);\n count++;\n }\n\n var centerDiv = getCenterBox(contentData, season);\n\n if (centerDiv) {\n localView.appendChild(centerDiv);\n }\n};\n\nexports[\"default\"] = LocalView;\n\n},{\"../../../../common/media/sound/sound-player\":29,\"../../../../common/pc-mobile\":31,\"../../../../common/util/util\":32}],51:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWftaPhonics = void 0;\n\nvar video_player_1 = require(\"../../../common/media/video/video-player\");\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar ContentWftaPhonics = /*#__PURE__*/function () {\n function ContentWftaPhonics() {\n (0, _classCallCheck2[\"default\"])(this, ContentWftaPhonics);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentWftaPhonics, [{\n key: \"init\",\n value: function init() {\n this.videoPlayer = new video_player_1.YoilVideoPlayer();\n this.videoPlayer.init({\n width: 822,\n height: 522,\n controlBool: false\n });\n this.inputAlphabet();\n this.setAlphabet();\n this.setExitBtn();\n }\n }, {\n key: \"inputAlphabet\",\n value: function inputAlphabet() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo, counter, plusNum, plusDiv;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getNormalContentData('./json/wfta/phonics/wfta-phonics.json');\n\n case 3:\n this.phonicsData = _context.sent;\n this.bookNum = this.infoObj.getBookNumber();\n this.contentNum = this.infoObj.getContentInnerNumber();\n counter = this.phonicsData[\"book\".concat(this.bookNum)][\"S\".concat(this.contentNum)];\n\n for (plusNum = 1; plusNum <= counter; plusNum++) {\n plusDiv = document.querySelector(\".plus_\".concat(plusNum));\n plusDiv.style.backgroundImage = \"url(\\\"./images/wfta/phonics/\".concat((0, util_1.get10Check)(this.bookNum), \"/S\").concat(this.contentNum, \"/btn_\").concat(26 + plusNum, \".png\\\")\");\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setAlphabet\",\n value: function setAlphabet() {\n var _this = this;\n\n var alphabets = Array.from(document.querySelectorAll(\"div[class^='img'\"));\n var allBtn = document.querySelector('.alphabet-all');\n var plusBtns = document.querySelectorAll(\"div[class^='plus_']\");\n var allBtns = [].concat((0, _toConsumableArray2[\"default\"])(alphabets), [allBtn], (0, _toConsumableArray2[\"default\"])(plusBtns));\n allBtns.forEach(function (btn, index) {\n btn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var selectDiv = document.querySelector('.select');\n\n if (selectDiv) {\n selectDiv.classList.remove('select');\n }\n\n btn.classList.add('select');\n var videoPath = \"./video/wfta/phonics/\".concat(_this.getVideoPath(index), \".mp4\");\n\n _this.videoPlayer.changeVideo(videoPath);\n\n var videoViewer = _this.videoPlayer.getVideoViewer();\n\n videoViewer.play();\n });\n });\n }\n }, {\n key: \"getVideoPath\",\n value: function getVideoPath(index) {\n var videoPath = '';\n\n if (index >= 27) {\n videoPath += \"\".concat((0, util_1.get10Check)(this.bookNum), \"/S\").concat(this.contentNum, \"/txt\").concat(index - 27);\n console.log('index', index);\n } else {\n if (this.contentNum === 1) {\n videoPath += 'common/S1/';\n } else {\n videoPath += 'common/S2S3/';\n }\n\n if (index === 26) {\n videoPath += 'all';\n } else {\n var videoName = String.fromCharCode(97 + index);\n videoPath += videoName;\n }\n }\n\n return videoPath;\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {// throw new Error('Method not implemented.');\n }\n }]);\n return ContentWftaPhonics;\n}();\n\nexports.ContentWftaPhonics = ContentWftaPhonics;\n\n},{\"../../../common/media/video/video-player\":30,\"../../../common/pc-mobile\":31,\"../../../common/util/util\":32,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/toConsumableArray\":19,\"@babel/runtime/regenerator\":22}],52:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWftaMain = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar info_routerPath_1 = require(\"../../router/info-routerPath\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar router_1 = require(\"../../router/router\");\n\nvar ContentWftaMain = /*#__PURE__*/function () {\n function ContentWftaMain() {\n (0, _classCallCheck2[\"default\"])(this, ContentWftaMain);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.router = router_1[\"default\"].getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentWftaMain, [{\n key: \"init\",\n value: function init() {\n this.setBackImg();\n this.setExitBtn();\n }\n }, {\n key: \"setBackImg\",\n value: function setBackImg() {\n var _this = this;\n\n var btnLst = ['.center_animation', '.center_ebook', '.other_mv', '.other_act', '.bottom_map', '.bottom_character', '.bottom_phonics', '.bottom_dictionary', '.other_sound' // '.bottom_nextbook',\n ];\n btnLst.forEach(function (docStr, key) {\n var targetDoc = document.querySelector(docStr);\n\n if (docStr === '.other_sound') {// 오디오 예외 적용\n } else {\n targetDoc.innerHTML = _this.getImgHtml(key + 1);\n }\n\n targetDoc.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var contentName = targetDoc.getAttribute('value');\n var router = router_1[\"default\"].getInstance();\n\n var paramLst = _this.infoObj.getParam();\n\n _this.infoObj.setCurrentContent(contentName);\n\n _this.infoObj.setVideoUrl(_this.getVideoUrl());\n\n router.moveContent(\"wfta/\".concat(paramLst[1], \"/\").concat(paramLst[2], \"/\").concat(contentName));\n });\n });\n } // 각 버튼에 이미지 삽입\n\n }, {\n key: \"getImgHtml\",\n value: function getImgHtml(key) {\n var numStr = (0, util_1.get10Check)(this.infoObj.getBookNumber());\n var contentInnerNumber = this.infoObj.getContentInnerNumber();\n var imgHtml = \"\");\n return imgHtml;\n }\n }, {\n key: \"getVideoUrl\",\n value: function getVideoUrl() {\n var bookNum = this.infoObj.getBookNumber();\n var section = this.infoObj.getContentInnerNumber();\n var content = this.infoObj.getCurrentContent();\n\n switch (content) {\n case 'animation':\n content = 'animation';\n break;\n\n case 'mv':\n content = content + '_AR';\n break;\n }\n\n return \"./video/wfta/\".concat((0, util_1.get10Check)(bookNum), \"/S\").concat(section, \"/\").concat(content, \".mp4\");\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var _this2 = this;\n\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n console.log('exit');\n\n _this2.router.moveContent(info_routerPath_1.wftaRouterPath.wfta + '?first=false');\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWftaMain;\n}();\n\nexports.ContentWftaMain = ContentWftaMain;\n\n},{\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../info/program-info\":66,\"../../router/info-routerPath\":67,\"../../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],53:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BwWordList = void 0;\n\nvar css_name_1 = require(\"../../../common/css-name\");\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar BwWordList = /*#__PURE__*/function () {\n function BwWordList(wordData) {\n (0, _classCallCheck2[\"default\"])(this, BwWordList);\n this.wordList = wordData.word;\n }\n\n (0, _createClass2[\"default\"])(BwWordList, [{\n key: \"init\",\n value: function init() {\n this.wordListBtn = document.querySelector('.list_btn');\n this.listBoard = document.querySelector('.list_board');\n this.boardWords = document.querySelector('.board_words');\n var boardExit = document.querySelector('.board_exit');\n boardExit.addEventListener(pc_mobile_1.StaticData.CLICK, function () {});\n this.inputWords();\n this.setBtns();\n this.setBoard();\n }\n }, {\n key: \"inputWords\",\n value: function inputWords() {\n var _this = this;\n\n if (this.wordList.length <= 4) {\n this.boardWords.style.overflowY = 'hidden';\n }\n\n this.wordList.forEach(function (word, value) {\n var divWord = document.createElement('div');\n divWord.textContent = word;\n divWord.classList.add('words_' + value);\n divWord.addEventListener(pc_mobile_1.StaticData.CLICK, _this.wordClick);\n\n _this.boardWords.appendChild(divWord);\n });\n this.boardWords.scrollTop = 0;\n }\n }, {\n key: \"wordClick\",\n value: function wordClick(e) {\n var clkDiv = e.target;\n var wordNum = parseInt(clkDiv.classList[0].split('_')[1]);\n dispatchEvent(new CustomEvent('wordChange', {\n detail: wordNum\n }));\n }\n }, {\n key: \"setBtns\",\n value: function setBtns() {\n var _this2 = this;\n\n // 보드 보기 버튼 설정\n this.wordListBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var classList = _this2.wordListBtn.classList;\n\n if (classList.contains('click')) {\n _this2.returnDefaultBoard();\n } else {\n _this2.wordListBtn.classList.add('click');\n\n _this2.listBoard.classList.remove(css_name_1.YOIL_CSS.yoil_display_hide);\n }\n }); // 보드에서 나가기 버튼 설정\n\n var boardExitBtn = document.querySelector('.board_exit');\n boardExitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.returnDefaultBoard();\n });\n } // 보드 되돌리기\n\n }, {\n key: \"returnDefaultBoard\",\n value: function returnDefaultBoard() {\n this.wordListBtn.classList.remove('click');\n this.listBoard.classList.add(css_name_1.YOIL_CSS.yoil_display_hide);\n }\n }, {\n key: \"setBoard\",\n value: function setBoard() {}\n }, {\n key: \"setCurrentWord\",\n value: function setCurrentWord(currentNum) {\n var currentWord = this.boardWords.querySelector('.current');\n\n if (currentWord) {\n currentWord.classList.remove('current');\n }\n\n var targetDiv = this.boardWords.querySelectorAll('div')[currentNum];\n targetDiv.classList.add('current');\n }\n }]);\n return BwWordList;\n}();\n\nexports.BwWordList = BwWordList;\n\n},{\"../../../common/css-name\":26,\"../../../common/pc-mobile\":31,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],54:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWwBuildingWord = void 0;\n\nvar css_name_1 = require(\"../../../common/css-name\");\n\nvar media_events_1 = require(\"../../../common/event/media-events\");\n\nvar sound_player_1 = require(\"../../../common/media/sound/sound-player\");\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar BwWordList_1 = require(\"./BwWordList\");\n\nvar ContentWwBuildingWord = /*#__PURE__*/function () {\n function ContentWwBuildingWord() {\n (0, _classCallCheck2[\"default\"])(this, ContentWwBuildingWord);\n this.currentWordNum = 0;\n this.info = program_info_1.ProgramInfo.getInstance();\n this.soundPlayer = new sound_player_1.YoilSoundPlayer();\n this.soundStatus = -1;\n }\n\n (0, _createClass2[\"default\"])(ContentWwBuildingWord, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getContentData();\n\n case 3:\n this.bwData = _context.sent;\n this.textEl = document.querySelector('.text');\n this.textBoard = document.querySelector('.view_text');\n this.currentImg = document.querySelector('.view_image');\n this.currentText = document.querySelector('.view_text');\n this.wordTotal = this.bwData.word.length - 1;\n this.wordList = new BwWordList_1.BwWordList(this.bwData);\n this.wordList.init();\n window.addEventListener('wordChange', this.changeWordList.bind(this));\n window.addEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.soundComplete.bind(this));\n this.setArrow();\n this.setImageEvent();\n this.changeStage();\n this.setExitBtn();\n\n case 17:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"changeWordList\",\n value: function changeWordList(e) {\n this.currentWordNum = e.detail;\n this.changeStage();\n }\n }, {\n key: \"soundComplete\",\n value: function soundComplete() {\n switch (this.soundStatus) {\n case 0\n /* STATUS_SOUND.ClienImg */\n :\n this.soundStatus = 1\n /* STATUS_SOUND.PutWord */\n ;\n var word = this.bwData.word[this.currentWordNum];\n var path = \"./sound/ww/buildingwords/\".concat((0, util_1.get10Check)(this.info.getBookNumber()), \"/S\").concat(this.info.getContentInnerNumber(), \"/\").concat(word, \".mp3\");\n this.soundPlayer.soundPlay(path);\n return;\n\n case 1\n /* STATUS_SOUND.PutWord */\n :\n if (this.currentWordNum === this.wordTotal) {} else {\n this.arrowRight.dispatchEvent(new Event(pc_mobile_1.StaticData.CLICK));\n }\n\n return;\n }\n\n this.soundStatus = -1;\n }\n }, {\n key: \"setArrow\",\n value: function setArrow() {\n var _this = this;\n\n this.arrowLeft = document.querySelector('.board_arrow-left');\n this.arrowRight = document.querySelector('.board_arrow-right');\n this.arrowLeft.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.currentWordNum--;\n\n _this.changeStage();\n });\n this.arrowRight.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.currentWordNum++;\n\n _this.changeStage();\n });\n }\n }, {\n key: \"changeStage\",\n value: function changeStage() {\n this.textBoard.classList.add(css_name_1.YOIL_CSS.yoil_display_alpha_hide);\n this.textBoard.classList.remove(css_name_1.YOIL_CSS.yoil_ani_alpha_up);\n this.currentImg.classList.remove(css_name_1.YOIL_CSS.yoil_ani_alpha_down);\n this.currentImg.style.pointerEvents = 'auto';\n this.wordList.setCurrentWord(this.currentWordNum);\n this.putWord();\n this.checkArrow();\n this.changeImage();\n }\n }, {\n key: \"putWord\",\n value: function putWord() {\n var word = this.bwData.word[this.currentWordNum];\n var color = this.bwData.color[this.currentWordNum];\n this.checkWordSize(word);\n this.textEl.innerText = word;\n this.textEl.style.color = \"#\".concat(color);\n }\n }, {\n key: \"checkArrow\",\n value: function checkArrow() {\n var HIDE_CL = css_name_1.YOIL_CSS.yoil_display_alpha_hide;\n\n if (this.currentWordNum === 0) {\n this.arrowLeft.classList.add(HIDE_CL);\n return;\n }\n\n if (this.currentWordNum === this.wordTotal) {\n this.arrowLeft.classList.remove(HIDE_CL);\n this.arrowRight.classList.add(HIDE_CL);\n return;\n }\n\n this.arrowLeft.classList.remove(HIDE_CL);\n this.arrowRight.classList.remove(HIDE_CL);\n }\n }, {\n key: \"checkWordSize\",\n value: function checkWordSize(word) {\n if (word.length > 4) {\n if (word.length >= 6) {\n this.textEl.style.fontSize = '300px';\n } else {\n this.textEl.style.fontSize = '400px';\n }\n } else {\n this.textEl.style.fontSize = '500px';\n }\n }\n }, {\n key: \"setImageEvent\",\n value: function setImageEvent() {\n var _this2 = this;\n\n this.currentImg.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.currentImg.classList.add(css_name_1.YOIL_CSS.yoil_ani_alpha_down);\n\n _this2.currentText.classList.add(css_name_1.YOIL_CSS.yoil_ani_alpha_up);\n\n _this2.currentImg.style.pointerEvents = 'none';\n var eventSoundPath = './sound/ww/effect/eff03.mp3';\n _this2.soundStatus = 0\n /* STATUS_SOUND.ClienImg */\n ;\n\n _this2.soundPlayer.soundPlay(eventSoundPath);\n });\n }\n }, {\n key: \"changeImage\",\n value: function changeImage() {\n this.currentImg.style.backgroundImage = \"URL('./images/ww/buildingword/\".concat((0, util_1.get10Check)(this.info.getBookNumber()), \"/S\").concat(this.info.getContentInnerNumber(), \"/img_\").concat((0, util_1.get10Check)(this.currentWordNum + 1), \".jpg')\");\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {\n window.removeEventListener('wordChange', this.changeWordList.bind(this));\n }\n }]);\n return ContentWwBuildingWord;\n}();\n\nexports.ContentWwBuildingWord = ContentWwBuildingWord;\n\n},{\"../../../common/css-name\":26,\"../../../common/event/media-events\":27,\"../../../common/media/sound/sound-player\":29,\"../../../common/pc-mobile\":31,\"../../../common/util/util\":32,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"./BwWordList\":53,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],55:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QuizSound = void 0;\n\nvar sound_player_1 = require(\"../../../common/media/sound/sound-player\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar QuizSound = /*#__PURE__*/function () {\n function QuizSound(bookNumberStr, innerNumber) {\n (0, _classCallCheck2[\"default\"])(this, QuizSound);\n this.bookNumberStr = bookNumberStr;\n this.innerNumber = innerNumber;\n this.sndPlayer = new sound_player_1.YoilSoundPlayer();\n }\n\n (0, _createClass2[\"default\"])(QuizSound, [{\n key: \"btnClk\",\n value: function btnClk() {\n this.sndPlayer.soundPlay(this.getEffSoundPath('eff02.mp3'));\n }\n }, {\n key: \"playQuizSound\",\n value: function playQuizSound(currentQuiz) {\n var sndNameStr = \"quizDirection_\".concat(currentQuiz, \".mp3\");\n var QUIZ_PATH = \"\".concat(this.getInnerSndPath(), \"/\").concat(sndNameStr);\n this.sndPlayer.soundPlay(QUIZ_PATH);\n }\n }, {\n key: \"soundStop\",\n value: function soundStop() {\n this.sndPlayer.soundStop();\n }\n }, {\n key: \"tryAgain\",\n value: function tryAgain() {\n this.sndPlayer.soundPlay(this.getEffSoundPath('tryAgain.mp3'));\n }\n }, {\n key: \"good\",\n value: function good() {\n var soundLst = ['good', 'goodjob', 'great'];\n var targetSnd = soundLst[(0, util_1.getRandomNum)(0, 2)];\n var gooPath = this.getEffSoundPath(\"\".concat(targetSnd, \".mp3\"));\n this.sndPlayer.soundPlay(gooPath);\n }\n }, {\n key: \"endQuizAnswer\",\n value: function endQuizAnswer(quizNum) {\n var END_PATH = \"\".concat(this.getInnerSndPath(), \"/quizWord_\").concat(quizNum, \".mp3\");\n this.sndPlayer.soundPlay(END_PATH);\n }\n }, {\n key: \"endAllQuiz\",\n value: function endAllQuiz() {\n var endAllQuiz = this.getEffSoundPath('excellent.mp3');\n this.sndPlayer.soundPlay(endAllQuiz);\n }\n }, {\n key: \"getInnerSndPath\",\n value: function getInnerSndPath() {\n return \"./sound/ww/quiz/\".concat(this.bookNumberStr, \"/S\").concat(this.innerNumber);\n }\n }, {\n key: \"getEffSoundPath\",\n value: function getEffSoundPath(sndName) {\n return \"./sound/ww/effect/\".concat(sndName);\n }\n }]);\n return QuizSound;\n}();\n\nexports.QuizSound = QuizSound;\n\n},{\"../../../common/media/sound/sound-player\":29,\"../../../common/util/util\":32,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],56:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWwQuiz = void 0;\n\nvar anime = require(\"animejs\");\n\nvar media_events_1 = require(\"../../../common/event/media-events\");\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar util_1 = require(\"../../../common/util/util\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar quiz_sound_1 = require(\"./quiz-sound\");\n\nvar ContentWwQuiz = /*#__PURE__*/function () {\n function ContentWwQuiz() {\n (0, _classCallCheck2[\"default\"])(this, ContentWwQuiz);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.bookNumberStr = (0, util_1.get10Check)(this.infoObj.getBookNumber());\n this.innerNumber = this.infoObj.getContentInnerNumber();\n this.currentQuiz = 0;\n }\n\n (0, _createClass2[\"default\"])(ContentWwQuiz, [{\n key: \"init\",\n value: function init() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var dataInfo, quizData;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n dataInfo = new get_data_1.BookData();\n _context.next = 3;\n return dataInfo.getContentData();\n\n case 3:\n quizData = _context.sent;\n this.soundPlayer = new quiz_sound_1.QuizSound(this.bookNumberStr, this.innerNumber);\n this.quizLst = quizData.quiz;\n this.stageStatus = 0\n /* STAGE_STATUS.PutQuiz */\n ;\n this.addEvent();\n this.putQuiz();\n this.putExampleCard();\n this.setExitBtn();\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"getImagePath\",\n value: function getImagePath(imgNameStr) {\n return \"url('./images/ww/quiz/\".concat(this.bookNumberStr, \"/S\").concat(this.innerNumber, \"/\").concat(imgNameStr, \"')\");\n }\n }, {\n key: \"getCurrentQuiz\",\n value: function getCurrentQuiz() {\n return this.currentQuiz + 1;\n }\n }, {\n key: \"addEvent\",\n value: function addEvent() {\n var _this = this;\n\n window.addEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.soundComplete.bind(this));\n var btns = this.getAnswerList();\n btns.forEach(function (el) {\n el.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.soundPlayer.btnClk();\n\n var clkValue = +el.querySelector('.list_inner').getAttribute('value');\n\n _this.answerCheck(clkValue, el);\n });\n });\n }\n }, {\n key: \"getAnswerList\",\n value: function getAnswerList() {\n if (this.answerList) {} else {\n this.answerList = document.querySelectorAll('.answers_list');\n }\n\n return this.answerList;\n }\n }, {\n key: \"answerCheck\",\n value: function answerCheck(clkValue, targetEl) {\n var answerNum = this.getCurrentQuiz();\n this.noneEventBtns();\n\n if (clkValue === answerNum) {\n this.putAnswer(targetEl);\n this.soundPlayer.good();\n } else {\n this.putNotAnswer();\n }\n }\n }, {\n key: \"noneEventBtns\",\n value: function noneEventBtns() {\n var btns = this.getAnswerList();\n btns.forEach(function (el) {\n el.style.pointerEvents = 'none';\n });\n }\n }, {\n key: \"putAnswer\",\n value: function putAnswer(targetEl) {\n var _this2 = this;\n\n this.stageStatus = 2\n /* STAGE_STATUS.EndQuiz */\n ;\n this.currentAni = anime({\n targets: targetEl,\n rotateY: '90deg',\n easing: 'linear',\n duration: 300,\n complete: function complete() {\n var answerEl = targetEl.querySelector('.list_answer');\n answerEl.style.opacity = '1';\n _this2.currentAni = anime({\n targets: targetEl,\n rotateY: '0deg',\n easing: 'linear',\n duration: 300\n });\n }\n });\n }\n }, {\n key: \"putNotAnswer\",\n value: function putNotAnswer() {\n this.soundPlayer.tryAgain();\n this.stageStatus = 1\n /* STAGE_STATUS.QuizFalse */\n ;\n var targetImg = document.querySelector('.content_tryagain');\n targetImg.style.opacity = '1';\n var animeTarget = document.querySelector('.tryagain_img');\n animeTarget.style.transform = 'translateX(0)';\n this.currentAni = anime({\n targets: animeTarget,\n translateX: 30,\n easing: 'spring(1, 80, 0, 0)'\n });\n }\n }, {\n key: \"activeEventBtns\",\n value: function activeEventBtns() {\n var btns = this.getAnswerList();\n btns.forEach(function (el) {\n el.style.pointerEvents = 'auto';\n });\n }\n }, {\n key: \"putQuiz\",\n value: function putQuiz() {\n this.putQuizTitle();\n this.putQuizImage();\n this.putQuizCard();\n }\n }, {\n key: \"putQuizTitle\",\n value: function putQuizTitle() {\n var quizTitle = document.querySelector('.content_title');\n quizTitle.innerHTML = this.quizLst[this.currentQuiz];\n }\n }, {\n key: \"putQuizImage\",\n value: function putQuizImage() {\n var quizDiv = document.querySelector('.quiz');\n quizDiv.style.backgroundImage = this.getImagePath(\"q_0\".concat(this.getCurrentQuiz(), \".jpg\"));\n }\n }, {\n key: \"putQuizCard\",\n value: function putQuizCard() {\n var _this3 = this;\n\n var quizBox = document.querySelector('.content_quiz');\n quizBox.style.transform;\n this.currentAni = anime({\n targets: quizBox,\n translateY: 238,\n opacity: 1,\n duration: 2000,\n delay: 500,\n complete: function complete() {\n _this3.stageStatus = 0\n /* STAGE_STATUS.PutQuiz */\n ;\n\n _this3.soundPlayer.playQuizSound(_this3.getCurrentQuiz());\n }\n });\n }\n }, {\n key: \"putExampleCard\",\n value: function putExampleCard() {\n var _this4 = this;\n\n var exampleNumbers = [1, 2, 3];\n exampleNumbers.sort(function () {\n return Math.random() - 0.5;\n });\n var cardLsts = document.querySelectorAll('.list_inner');\n var answerCards = document.querySelectorAll('.list_answer');\n cardLsts.forEach(function (el, value) {\n var targetImgNum = exampleNumbers[value];\n el.setAttribute('value', \"\".concat(targetImgNum));\n el.style.backgroundImage = _this4.getImagePath(\"ex_0\".concat(targetImgNum, \".jpg\"));\n var answerCard = answerCards[value];\n var answerImgNum = exampleNumbers[value];\n answerCard.style.backgroundImage = _this4.getImagePath(\"answer_0\".concat(answerImgNum, \".jpg\"));\n });\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"soundComplete\",\n value: function soundComplete() {\n console.log('this.stageStatus', this.stageStatus);\n\n switch (this.stageStatus) {\n case 0\n /* STAGE_STATUS.PutQuiz */\n :\n this.quitQuizWindow();\n break;\n\n case 1\n /* STAGE_STATUS.QuizFalse */\n :\n this.currentAni.pause();\n this.quizFalse();\n this.activeEventBtns();\n break;\n\n case 2\n /* STAGE_STATUS.EndQuiz */\n :\n this.stageStatus = 3\n /* STAGE_STATUS.NextQuiz */\n ;\n this.soundPlayer.endQuizAnswer(this.getCurrentQuiz());\n return;\n\n case 3\n /* STAGE_STATUS.NextQuiz */\n :\n this.nextQuiz();\n break;\n }\n\n this.stageStatus = -1;\n }\n }, {\n key: \"nextQuiz\",\n value: function nextQuiz() {\n var _this5 = this;\n\n this.currentQuiz++;\n\n if (this.currentQuiz === 3) {\n var answerLst = this.getAnswerList();\n answerLst.forEach(function (el) {\n var answerCard = el.querySelector('.list_answer');\n\n if (answerCard.style.opacity !== '1') {\n _this5.putAnswer(el);\n }\n });\n this.soundPlayer.endAllQuiz();\n } else {\n var answerCards = document.querySelectorAll('.list_answer');\n answerCards.forEach(function (el) {\n el.style.opacity = '0';\n });\n var exampleCards = document.querySelectorAll('.list_inner');\n exampleCards.forEach(function (el) {\n el.style.opacity = '0';\n });\n var maskSp = document.querySelector('.content_mask');\n maskSp.style.pointerEvents = 'auto';\n maskSp.style.opacity = '1';\n this.putQuiz();\n this.putExampleCard();\n }\n }\n }, {\n key: \"quitQuizWindow\",\n value: function quitQuizWindow() {\n var _this6 = this;\n\n this.currentAni = anime({\n targets: document.querySelector('.content_quiz'),\n easing: 'linear',\n duration: 300,\n translateY: -100,\n opacity: 0,\n complete: function complete() {\n maskOut();\n }\n });\n\n var maskOut = function maskOut() {\n var maskSp = document.querySelector('.content_mask');\n maskSp.style.pointerEvents = 'none';\n _this6.currentAni = anime({\n targets: maskSp,\n easing: 'linear',\n opacity: 0,\n duration: 100,\n complete: function complete() {\n _this6.viewExamples();\n }\n });\n };\n }\n }, {\n key: \"quizFalse\",\n value: function quizFalse() {\n var targetImg = document.querySelector('.content_tryagain');\n targetImg.style.opacity = '0';\n }\n }, {\n key: \"viewExamples\",\n value: function viewExamples() {\n this.activeEventBtns();\n var examples = document.querySelectorAll('.list_inner');\n examples.forEach(function (el) {\n anime({\n targets: el,\n opacity: 1,\n easing: 'linear',\n duration: 500\n });\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {\n if (this.currentAni) {\n this.currentAni.pause();\n }\n\n this.stageStatus = -1;\n this.soundPlayer.soundStop();\n window.removeEventListener(media_events_1.YoilEvent.SOUND_COMPLETE, this.soundComplete.bind(this));\n }\n }]);\n return ContentWwQuiz;\n}();\n\nexports.ContentWwQuiz = ContentWwQuiz;\n\n},{\"../../../common/event/media-events\":27,\"../../../common/pc-mobile\":31,\"../../../common/util/util\":32,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"./quiz-sound\":55,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22,\"animejs\":23}],57:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWwWrite = void 0;\n\nvar pc_mobile_1 = require(\"../../../common/pc-mobile\");\n\nvar program_info_1 = require(\"../../../info/program-info\");\n\nvar get_data_1 = require(\"../../../data/get-data\");\n\nvar router_1 = require(\"../../../router/router\");\n\nvar BwWordList_1 = require(\"../building-word/BwWordList\");\n\nvar css_name_1 = require(\"../../../common/css-name\");\n\nvar ContentWwWrite = /*#__PURE__*/function () {\n function ContentWwWrite() {\n (0, _classCallCheck2[\"default\"])(this, ContentWwWrite);\n this.painting = false;\n this.SIZE_WIDTH = 1804;\n this.SIZE_HEIGHT = 1054;\n this.currentWordNum = 0;\n }\n\n (0, _createClass2[\"default\"])(ContentWwWrite, [{\n key: \"init\",\n value: function init() {\n this.listBoard = document.querySelector('.list_board');\n window.addEventListener('wordChange', this.changeWordList.bind(this));\n this.getData();\n this.setBtns();\n this.setupBoard();\n this.setArrow();\n this.setExitBtn();\n }\n }, {\n key: \"changeWordList\",\n value: function changeWordList(e) {\n this.currentWordNum = e.detail;\n this.changeStage();\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var infoObj, bookNumber, innerContent, dataInfo, writeData;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n infoObj = program_info_1.ProgramInfo.getInstance();\n bookNumber = infoObj.getBookNumber();\n innerContent = infoObj.getContentInnerNumber();\n dataInfo = new get_data_1.BookData();\n _context.next = 6;\n return dataInfo.getNormalContentData('./json/ww/write/ww-write.json');\n\n case 6:\n writeData = _context.sent;\n this.wordData = writeData[\"book\".concat(bookNumber)][\"S\".concat(innerContent)];\n this.wordTotal = this.wordData.length - 1;\n this.wordList = new BwWordList_1.BwWordList({\n word: this.wordData,\n color: []\n });\n this.wordList.init();\n this.changeStage();\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"setBtns\",\n value: function setBtns() {\n this.setEraserBtn();\n }\n }, {\n key: \"clickClassChecker\",\n value: function clickClassChecker(targetBtn) {\n if (targetBtn.classList.contains('click')) {\n targetBtn.classList.remove('click');\n } else {\n targetBtn.classList.add('click');\n\n if (this.ctx) {\n this.ctx.globalCompositeOperation = 'source-over';\n }\n }\n }\n }, {\n key: \"setEraserBtn\",\n value: function setEraserBtn() {\n var _this = this;\n\n var eraserBtn = document.querySelector('.btns_erase');\n eraserBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this.resetCanvas();\n });\n }\n }, {\n key: \"resetCanvas\",\n value: function resetCanvas() {\n this.ctx.globalCompositeOperation = 'destination-out';\n this.ctx.fillStyle = '#ffffff';\n this.ctx.fillRect(0, 0, this.SIZE_WIDTH, this.SIZE_HEIGHT);\n this.ctx.globalCompositeOperation = 'source-over';\n }\n }, {\n key: \"setupBoard\",\n value: function setupBoard() {\n this.canvas = document.querySelector('.canvas');\n this.ctx = this.canvas.getContext('2d');\n this.canvas.width = this.SIZE_WIDTH;\n this.canvas.height = this.SIZE_HEIGHT;\n this.ctx.strokeStyle = '#1f74c1';\n this.ctx.lineWidth = 20;\n this.ctx.fillStyle = 'rgba(0, 0, 0, 0)'; // this.ctx.fillRect(0, 0, this.SIZE_WIDTH, this.SIZE_HEIGHT);\n\n this.canvas.addEventListener(pc_mobile_1.StaticData.MOVE, this.onMouseMove.bind(this));\n this.canvas.addEventListener(pc_mobile_1.StaticData.PRESS, this.startPainting.bind(this));\n this.canvas.addEventListener(pc_mobile_1.StaticData.UP, this.stopPainting.bind(this));\n this.canvas.addEventListener(pc_mobile_1.StaticData.LEAVE, this.stopPainting.bind(this));\n }\n }, {\n key: \"stopPainting\",\n value: function stopPainting() {\n this.painting = false;\n }\n }, {\n key: \"startPainting\",\n value: function startPainting(event) {\n if ((0, pc_mobile_1.pcOrMobile)() === 'MOBILE') {\n var rect = {\n left: event.target.offsetLeft,\n top: event.target.offsetTop\n };\n var x = event.touches[0].pageX;\n var y = event.touches[0].pageY;\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n }\n\n this.painting = true;\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var x = event.offsetX;\n var y = event.offsetY;\n\n if ((0, pc_mobile_1.pcOrMobile)() === 'MOBILE') {\n event.preventDefault();\n var rect = {\n left: event.target.offsetLeft,\n top: event.target.offsetTop\n };\n x = event.touches[0].pageX;\n y = event.touches[0].pageY;\n }\n\n if (this.painting) {\n this.ctx.lineTo(x, y);\n this.ctx.stroke();\n } else {\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n }\n }\n }, {\n key: \"setArrow\",\n value: function setArrow() {\n var _this2 = this;\n\n this.arrowLeft = document.querySelector('.board_arrow-left');\n this.arrowRight = document.querySelector('.board_arrow-right');\n this.arrowLeft.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.currentWordNum--;\n\n _this2.changeStage();\n });\n this.arrowRight.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.currentWordNum++;\n\n _this2.changeStage();\n });\n }\n }, {\n key: \"changeStage\",\n value: function changeStage() {\n this.wordList.setCurrentWord(this.currentWordNum);\n this.resetCanvas();\n this.putWord();\n this.checkArrow();\n }\n }, {\n key: \"putWord\",\n value: function putWord() {\n var textDiv = document.querySelector('.text');\n textDiv.innerHTML = this.wordData[this.currentWordNum];\n }\n }, {\n key: \"checkArrow\",\n value: function checkArrow() {\n var HIDE_CL = css_name_1.YOIL_CSS.yoil_display_alpha_hide;\n\n if (this.currentWordNum === 0) {\n this.arrowLeft.classList.add(HIDE_CL);\n this.arrowRight.classList.remove(HIDE_CL);\n return;\n }\n\n if (this.currentWordNum === this.wordTotal) {\n this.arrowLeft.classList.remove(HIDE_CL);\n this.arrowRight.classList.add(HIDE_CL);\n return;\n }\n\n this.arrowLeft.classList.remove(HIDE_CL);\n this.arrowRight.classList.remove(HIDE_CL);\n }\n }, {\n key: \"handleCM\",\n value: function handleCM(event) {\n event.preventDefault();\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var router = router_1[\"default\"].getInstance();\n var infoObj = program_info_1.ProgramInfo.getInstance();\n router.moveContent(infoObj.getBackUrl());\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWwWrite;\n}();\n\nexports.ContentWwWrite = ContentWwWrite;\n\n},{\"../../../common/css-name\":26,\"../../../common/pc-mobile\":31,\"../../../data/get-data\":62,\"../../../info/program-info\":66,\"../../../router/router\":71,\"../building-word/BwWordList\":53,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/regenerator\":22}],58:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ContentWwMain = void 0;\n\nvar pc_mobile_1 = require(\"../../common/pc-mobile\");\n\nvar util_1 = require(\"../../common/util/util\");\n\nvar info_routerPath_1 = require(\"../../router/info-routerPath\");\n\nvar program_info_1 = require(\"../../info/program-info\");\n\nvar router_1 = require(\"../../router/router\");\n\nvar ContentWwMain = /*#__PURE__*/function () {\n function ContentWwMain() {\n (0, _classCallCheck2[\"default\"])(this, ContentWwMain);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n this.router = router_1[\"default\"].getInstance();\n }\n\n (0, _createClass2[\"default\"])(ContentWwMain, [{\n key: \"init\",\n value: function init() {\n this.setBackImg();\n this.setExitBtn();\n }\n }, {\n key: \"setBackImg\",\n value: function setBackImg() {\n var _this = this;\n\n var btnLst = document.querySelectorAll('.main_content');\n var router = router_1[\"default\"].getInstance();\n var paramLst = this.infoObj.getParam();\n btnLst.forEach(function (targetDoc, key) {\n targetDoc.innerHTML = _this.getImgHtml(key + 1);\n targetDoc.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n var contentName = targetDoc.getAttribute('value');\n\n _this.infoObj.setCurrentContent(contentName);\n\n _this.infoObj.setVideoUrl(_this.getVideoUrl());\n\n router.moveContent(\"ww/\".concat(paramLst[1], \"/\").concat(paramLst[2], \"/\").concat(contentName));\n });\n });\n var audioBtn = document.querySelector('.other_sound');\n audioBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n router.moveContent(\"ww/\".concat(paramLst[1], \"/\").concat(paramLst[2], \"/audio\"));\n });\n } // 각 버튼에 이미지 삽입\n\n }, {\n key: \"getImgHtml\",\n value: function getImgHtml(key) {\n var numStr = (0, util_1.get10Check)(this.infoObj.getBookNumber());\n var contentInnerNumber = this.infoObj.getContentInnerNumber();\n var imgHtml = \"\");\n return imgHtml;\n }\n }, {\n key: \"getVideoUrl\",\n value: function getVideoUrl() {\n var bookNum = this.infoObj.getBookNumber();\n var section = this.infoObj.getContentInnerNumber();\n var content = this.infoObj.getCurrentContent();\n\n switch (content) {\n case 'animation':\n content = 'animation';\n break;\n\n case 'song':\n case 'rhymeBook':\n case 'storyBook':\n case 'chant':\n content = content + '_AR';\n break;\n }\n\n return \"./video/ww/\".concat((0, util_1.get10Check)(bookNum), \"/S\").concat(section, \"/\").concat(content, \".mp4\");\n }\n }, {\n key: \"setExitBtn\",\n value: function setExitBtn() {\n var _this2 = this;\n\n var exitBtn = document.querySelector('.top_exit');\n exitBtn.addEventListener(pc_mobile_1.StaticData.CLICK, function () {\n _this2.router.moveContent(info_routerPath_1.wwRouterpath.ww + '?first=false');\n });\n }\n }, {\n key: \"destory\",\n value: function destory() {}\n }]);\n return ContentWwMain;\n}();\n\nexports.ContentWwMain = ContentWwMain;\n\n},{\"../../common/pc-mobile\":31,\"../../common/util/util\":32,\"../../info/program-info\":66,\"../../router/info-routerPath\":67,\"../../router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],59:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bwwBookList = void 0;\nexports.bwwBookList = {\n vol1: {\n book: ['mmm...mmm...milk']\n },\n vol2: {\n book: ['Caterpillar Gets a Home']\n },\n vol3: {\n book: ['Duck at Bat']\n },\n vol4: {\n book: ['Bear_s Sled']\n },\n vol5: {\n book: ['Duck Plays the Piano']\n },\n vol6: {\n book: ['Totally Terrific Duck']\n },\n vol7: {\n book: ['A String is the Thing']\n },\n vol8: {\n book: ['You Can Never Have Too Many OOs']\n },\n vol9: {\n book: ['X Marks the Spot']\n },\n vol10: {\n book: [\"Duck Saves Spider's Web\"]\n },\n vol11: {\n book: [\"Dog's Having a Party\"]\n },\n vol12: {\n book: ['J-J-Jelly']\n },\n vol13: {\n book: ['Kite Flight']\n }\n};\n\n},{}],60:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wftaBookList = void 0;\nexports.wftaBookList = {\n vol1: {\n book: ['The White Lamb', 'The Three Wishes', 'The Vinegar Boy']\n },\n vol2: {\n book: ['The Horse Chase', 'The Chocolate Thief', 'Boots and the Giant']\n },\n vol3: {\n book: ['A Wise Judge', 'The White Cat', \"The Minotaur's Maze\"]\n },\n vol4: {\n book: ['The Sphinx', 'The Fisherman and the Genie', 'The Wizard Khizr']\n },\n vol5: {\n book: [\"Who's There\", 'The Flying Tortoise', 'How the Crocodile Got a Bumpy Back']\n },\n vol6: {\n book: ['Mayrah', 'How the Kangaroo Got a Pouch', 'Bamapama']\n },\n vol7: {\n book: ['The Smiling Rabbit', 'The Frog and the Condors Girl', 'Looking for the Magic Lake']\n },\n vol8: {\n book: ['The Fly and the River', 'The Rabbit and the Hare', 'Wind Horse']\n },\n vol9: {\n book: ['The Colobok', 'The Snow Girl', 'Masha and the Bear']\n },\n vol10: {\n book: ['The Salmon Boy', \"Ayvek's Magical Friend\", 'The Polar Bear Cub']\n },\n vol11: {\n book: ['The Boy and the Cat', \"The Emperor's Flowers\", 'The White Tiger']\n },\n vol12: {\n book: ['The Tricky Tiger', 'The Magic Bowl', 'The Missing Treasure']\n }\n};\n\n},{}],61:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wwBookList = void 0;\nexports.wwBookList = {\n vol1: {\n book: ['Catch that C!', 'Shuffleword', 'Who Can Read?', 'Playing Spies']\n },\n vol2: {\n book: ['Bit by Bit', \"Pig's Present\", 'Happy Birthday, Dog!', 'The Rainbow Birthday Cake']\n },\n vol3: {\n book: ['Chef Sheep', 'Superhero Sheep', 'Snug as a Bug', 'Robots to the Rescue']\n },\n vol4: {\n book: ['Wee Little Whale', 'The Birds', \"Dog's Camping Adventure\", 'Pie, Pie, Pie!']\n },\n vol5: {\n book: ['W Drought', 'Back on Track', \"Pig\\u2019s Big Moonlight Feast\", 'Castle in the Sea']\n },\n vol6: {\n book: ['Runaway O', 'Flying Ant', 'Rocket to the Moon', 'Waterlogged']\n },\n vol7: {\n book: ['The Lost Letter L', 'Play Ball!', 'Get Your Coat', 'Pl-Pl-Plane']\n },\n vol8: {\n book: ['One Hat Fits All', 'A Kooky Spooky Halloween', 'The Race to Mystery Island', \"Sheep's Halloween Custume\"]\n },\n vol9: {\n book: ['M is for Map', 'Sh-Sh-Shark!', 'Princess Sheep', 'Mail Mix Up']\n },\n vol10: {\n book: ['V is for Vacation', 'The Christmas Star', 'A Christmas Present for Dog', 'Tick Tock Space Clock']\n },\n vol11: {\n book: [\"Duck's First Sleepover Party\", 'Nightlight', 'Dancing Dog', \"Boppin\\u2019 with the Bug Band\"]\n },\n vol12: {\n book: ['Dog Wants To Play Ball', 'A Star Is Born', 'The Daning Duck Show', 'Pirate Ship']\n }\n};\n\n},{}],62:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BookData = void 0;\n\nvar data_interface_1 = require(\"../info/data-interface\");\n\nvar program_info_1 = require(\"../info/program-info\");\n\nvar bww_book_list_1 = require(\"./book-data/bww-book-list\");\n\nvar wfta_book_list_1 = require(\"./book-data/wfta-book-list\");\n\nvar ww_book_list_1 = require(\"./book-data/ww-book-list\");\n\nvar BookData = /*#__PURE__*/function () {\n function BookData() {\n (0, _classCallCheck2[\"default\"])(this, BookData);\n this.infoObj = program_info_1.ProgramInfo.getInstance();\n }\n\n (0, _createClass2[\"default\"])(BookData, [{\n key: \"setContentType\",\n value: function setContentType(contentTypeStr) {\n this.contentTypeStr = contentTypeStr;\n }\n }, {\n key: \"getList\",\n value: function getList() {\n switch (this.contentTypeStr) {\n case data_interface_1.BookType.WFTA:\n return this.bookList(wfta_book_list_1.wftaBookList);\n\n case data_interface_1.BookType.WW:\n return this.bookList(ww_book_list_1.wwBookList);\n\n case data_interface_1.BookType.BWW:\n return this.bookList(bww_book_list_1.bwwBookList);\n }\n }\n }, {\n key: \"bookList\",\n value: function bookList(bookData) {\n var dataBook = [];\n\n for (var _i = 0, _Object$entries = Object.entries(bookData); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = (0, _slicedToArray2[\"default\"])(_Object$entries[_i], 2),\n _key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n var book = value.book;\n dataBook.push(book);\n }\n\n return dataBook;\n }\n }, {\n key: \"getContentData\",\n value: function getContentData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var currentContent, jsonData, json;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n currentContent = this.infoObj.getContentInnerNumber();\n _context.next = 3;\n return fetch(this.getJsonPathUrl());\n\n case 3:\n jsonData = _context.sent;\n _context.next = 6;\n return jsonData.json();\n\n case 6:\n json = _context.sent;\n return _context.abrupt(\"return\", json['S' + currentContent]);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"getNormalContentData\",\n value: function getNormalContentData(pathUrl) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var jsonData, json;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return fetch(pathUrl);\n\n case 2:\n jsonData = _context2.sent;\n _context2.next = 5;\n return jsonData.json();\n\n case 5:\n json = _context2.sent;\n return _context2.abrupt(\"return\", json);\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n }\n }, {\n key: \"getJsonPathUrl\",\n value: function getJsonPathUrl() {\n var contentType = this.infoObj.getContentType();\n var currentContent = this.infoObj.getCurrentContent();\n return \"./json/\".concat(contentType, \"/\").concat(currentContent, \"/\").concat(contentType, \"-\").concat(currentContent, \"-\").concat(this.infoObj.getBookNumber(), \".json\");\n }\n }]);\n return BookData;\n}();\n\nexports.BookData = BookData;\n\n},{\"../info/data-interface\":65,\"../info/program-info\":66,\"./book-data/bww-book-list\":59,\"./book-data/wfta-book-list\":60,\"./book-data/ww-book-list\":61,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/slicedToArray\":17,\"@babel/runtime/regenerator\":22}],63:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar css_name_1 = require(\"./common/css-name\");\n\nvar pc_mobile_1 = require(\"./common/pc-mobile\");\n\nvar content_starter_1 = require(\"./content-starter\");\n\nvar router_1 = require(\"./router/router\");\n\nvar Index = /*#__PURE__*/function () {\n function Index() {\n var _this = this;\n\n (0, _classCallCheck2[\"default\"])(this, Index);\n window['testMode'] = true;\n window.addEventListener('resize', function (event) {\n _this.resizeCheck();\n });\n this.router = router_1[\"default\"].getInstance();\n this.router.init(this);\n this.resizeCheck();\n this.contentStarter = new content_starter_1.ContentStarter();\n }\n\n (0, _createClass2[\"default\"])(Index, [{\n key: \"resizeCheck\",\n value: function resizeCheck() {\n // y:1200 = x: 1\n // y*1 / 1200x\n // x = y * 1 / 1200\n var percent = window.innerWidth / 2000;\n\n if ((0, pc_mobile_1.pcOrMobile)() === 'PC' || (0, pc_mobile_1.isIphone)() || (0, pc_mobile_1.isHeightSize)()) {\n percent = window.innerHeight / 1200;\n }\n\n if ((0, pc_mobile_1.isIpad)() === true) {\n percent = window.innerWidth / 2000;\n }\n\n var contentsTag = document.querySelector('.contents');\n contentsTag.style.transform = \"scale(\".concat(percent, \")\");\n contentsTag.style.transformOrigin = 'top center';\n var copyWriter = document.querySelector('.copywriter');\n copyWriter.style.transform = \"scale(\".concat(percent, \")\");\n var afterScaleHeight = contentsTag.getBoundingClientRect().height;\n var topMargin = (window.innerHeight - afterScaleHeight) / 2.0;\n console.log(topMargin);\n contentsTag.style.marginTop = \"\".concat(topMargin, \"px\");\n }\n }, {\n key: \"startContent\",\n value: function startContent(contentStr) {\n if (this.contentObj) {\n this.contentObj.destory();\n }\n\n var copyWriter = document.querySelector('.copywriter');\n copyWriter.classList.remove(css_name_1.YOIL_CSS.yoil_display_hide);\n\n if (this.isCoptyWriteHide(contentStr)) {\n copyWriter.classList.add(css_name_1.YOIL_CSS.yoil_display_hide);\n }\n\n this.contentObj = this.contentStarter.getContentObject(contentStr);\n this.contentObj.init();\n }\n /**\r\n * 카피라이트 보여줄지 말지 구분\r\n * @param {string} contentNameStr 컨텐츠 이름\r\n * @returns {boolean} 카피라이트를 감출지 말지를 결정\r\n */\n\n }, {\n key: \"isCoptyWriteHide\",\n value: function isCoptyWriteHide(contentNameStr) {\n return contentNameStr === 'video-common' || contentNameStr === 'ebook-common' || contentNameStr === 'comic-common' || contentNameStr === 'audio-common' || contentNameStr === 'ww-buildingword' || contentNameStr === 'ww-quiz' || contentNameStr === 'ww-write' || contentNameStr === 'wfta-phonics' || contentNameStr === 'wfta-dictionary' || contentNameStr === 'wfta-character' || contentNameStr === 'wfta-map';\n }\n }]);\n return Index;\n}();\n\nexports[\"default\"] = Index;\nwindow.addEventListener('DOMContentLoaded', function () {\n var runProgram = new Index();\n});\n\n},{\"./common/css-name\":26,\"./common/pc-mobile\":31,\"./content-starter\":33,\"./router/router\":71,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],64:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCommunication = void 0;\n\nvar ReactCommunication = /*#__PURE__*/function () {\n function ReactCommunication(singleton) {// this.react = window['ReactNativeWebView'];\n // if (this.react === undefined) {\n // this.react = window.parent;\n // }\n // window.addEventListener('react', this.fromReact.bind(this));\n // window.addEventListener('message', (userData) => {\n // if (userData.data.type) {\n // this.fromReact(\n // new CustomEvent('react', {\n // detail: {\n // dataType: 'books',\n // data: userData.data.userBooks,\n // },\n // })\n // );\n // }\n // });\n\n (0, _classCallCheck2[\"default\"])(this, ReactCommunication);\n }\n\n (0, _createClass2[\"default\"])(ReactCommunication, [{\n key: \"fromReact\",\n value: function fromReact(event) {\n var dataType = event.detail.dataType;\n var data;\n\n switch (dataType) {\n case 'books':\n data = Array.from(event.detail.data);\n console.log('data', data);\n this.resolve(data);\n break;\n\n case 'reflash':\n this.reflashObj.init();\n break;\n }\n }\n }, {\n key: \"getBooks\",\n value: function getBooks() {\n var _this = this;\n\n if (!this.react) return;\n\n if (window['isNativeApp']) {\n this.react.postMessage('getUser');\n } else {\n this.react.postMessage('getUser', '*');\n }\n\n return new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n }\n }, {\n key: \"insertUserBook\",\n value: function insertUserBook() {// this.react.postMessage('addBook');\n }\n }, {\n key: \"getReact\",\n value: function getReact() {\n return this.react;\n }\n }, {\n key: \"setReflashObj\",\n value: function setReflashObj(reflashObj) {\n this.reflashObj = reflashObj;\n }\n }], [{\n key: \"getInstance\",\n value: function getInstance() {\n if (this.instance) {\n return this.instance;\n }\n\n this.instance = new ReactCommunication(new Singleton());\n return this.instance;\n }\n }]);\n return ReactCommunication;\n}();\n\nexports.ReactCommunication = ReactCommunication;\n\nvar Singleton = function Singleton() {\n (0, _classCallCheck2[\"default\"])(this, Singleton);\n};\n\n},{\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],65:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WwContents = exports.BwwContents = exports.WftaContents = exports.CommonContents = exports.BookType = void 0;\nvar BookType;\n\n(function (BookType) {\n BookType[\"WFTA\"] = \"wfta\";\n BookType[\"WW\"] = \"ww\";\n BookType[\"BWW\"] = \"bww\";\n})(BookType = exports.BookType || (exports.BookType = {}));\n\nvar CommonContents;\n\n(function (CommonContents) {\n CommonContents[\"Ebook\"] = \"ebook\";\n})(CommonContents = exports.CommonContents || (exports.CommonContents = {}));\n\nvar WftaContents;\n\n(function (WftaContents) {\n WftaContents[\"Animation\"] = \"animation\";\n WftaContents[\"Mv\"] = \"mv\";\n WftaContents[\"Act\"] = \"act\";\n WftaContents[\"Map\"] = \"map\";\n WftaContents[\"Character\"] = \"character\";\n WftaContents[\"Phonics\"] = \"phonics\";\n WftaContents[\"Dictionary\"] = \"dictionary\";\n WftaContents[\"NextBook\"] = \"nextbook\";\n WftaContents[\"Audio\"] = \"audio\";\n})(WftaContents = exports.WftaContents || (exports.WftaContents = {}));\n\nvar BwwContents;\n\n(function (BwwContents) {\n BwwContents[\"Word\"] = \"word\";\n BwwContents[\"Talking\"] = \"talking\";\n BwwContents[\"Story\"] = \"story\";\n BwwContents[\"Song\"] = \"song\";\n BwwContents[\"StoryBook\"] = \"storybook\";\n BwwContents[\"Movie\"] = \"movie\";\n})(BwwContents = exports.BwwContents || (exports.BwwContents = {}));\n\nvar WwContents;\n\n(function (WwContents) {\n WwContents[\"Animation\"] = \"animation\";\n WwContents[\"ComicBook\"] = \"comicbook\";\n WwContents[\"Quiz\"] = \"quiz\";\n WwContents[\"Write\"] = \"write\";\n WwContents[\"Buildingword\"] = \"buildingword\";\n WwContents[\"Song\"] = \"song\";\n WwContents[\"Chant\"] = \"chant\";\n WwContents[\"Storybook\"] = \"storybook\";\n WwContents[\"Rhymebook\"] = \"rhymebook\";\n WwContents[\"Audio\"] = \"audio\";\n})(WwContents = exports.WwContents || (exports.WwContents = {}));\n\n},{}],66:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProgramInfo = void 0;\n\nvar util_1 = require(\"../common/util/util\");\n\nvar get_data_1 = require(\"../data/get-data\");\n\nvar data_interface_1 = require(\"./data-interface\");\n\nvar ProgramInfo = /*#__PURE__*/function () {\n function ProgramInfo(singleton) {\n (0, _classCallCheck2[\"default\"])(this, ProgramInfo);\n this.userBooks = {\n wfta: [],\n ww: [],\n bww: []\n };\n }\n\n (0, _createClass2[\"default\"])(ProgramInfo, [{\n key: \"setContentType\",\n // 책 종류 설정\n value: function setContentType() {\n if (this.contentType) {\n this.contentType = null;\n }\n\n this.contentType = this.getContentType();\n this.bookData = new get_data_1.BookData();\n this.bookData.setContentType(this.contentType);\n } // 컨텐츠 종류를 돌려준다.\n\n }, {\n key: \"getContentType\",\n value: function getContentType() {\n if (this.contentType) {\n return this.contentType;\n }\n\n var param = this.getParam()[0].split('#')[1];\n var paramLst = param.split('?');\n\n if (paramLst.length > 1) {\n param = paramLst[0];\n }\n\n return data_interface_1.BookType[param.toUpperCase()];\n } // 책 번호 설정\n\n }, {\n key: \"setBookNumber\",\n value: function setBookNumber(monthNum) {\n this.bookNumber = monthNum;\n } // 책 번호 돌려준다.\n\n }, {\n key: \"getBookNumber\",\n value: function getBookNumber() {\n var params = +this.getParam()[1];\n\n if (isNaN(params)) {\n return this.bookNumber;\n }\n\n this.bookNumber = +params;\n return this.bookNumber;\n } // 내부 컨텐츠 번호 설정\n\n }, {\n key: \"setContentInnerNumber\",\n value: function setContentInnerNumber(num) {\n if (this.getContentType() === data_interface_1.BookType.BWW) {\n this.contentInnerNumber = this.getBookNumber();\n return;\n }\n\n this.contentInnerNumber = num;\n } //내부 컨텐츠 번호를 돌려준다.\n\n }, {\n key: \"getContentInnerNumber\",\n value: function getContentInnerNumber() {\n var params = this.getParam();\n var innerNumber = params[2];\n this.setContentInnerNumber(+innerNumber);\n return this.contentInnerNumber;\n } // 현재의 컨텐츠 설정\n\n }, {\n key: \"setCurrentContent\",\n value: function setCurrentContent(content) {\n this.currentContent = content;\n } // 현재 컨텐츠 돌려준다.\n\n }, {\n key: \"getCurrentContent\",\n value: function getCurrentContent() {\n if (this.currentContent) {\n return this.currentContent;\n }\n\n var params = this.getParam();\n var content = params[params.length - 1];\n this.setCurrentContent(content);\n return content;\n } // url 파라미터 돌려준다.\n\n }, {\n key: \"getParam\",\n value: function getParam() {\n var url = new URL(location.href);\n return url.hash.split('/');\n }\n }, {\n key: \"getVariable\",\n value: function getVariable(word) {\n var variable = location.href.split('?')[1];\n var urlParams = new URLSearchParams(variable);\n return urlParams.get(word);\n } // 재생 비디오 설정\n\n }, {\n key: \"setVideoUrl\",\n value: function setVideoUrl(url) {\n this.videoUrl = url;\n } // 재생 비디오 돌려준다.\n\n }, {\n key: \"getVideoUrl\",\n value: function getVideoUrl() {\n if (this.videoUrl) {\n return this.videoUrl;\n }\n\n var videoUrl = \"./video/\".concat(this.getContentType());\n\n if (this.getContentType() === data_interface_1.BookType.BWW) {\n videoUrl = \"\".concat(videoUrl, \"/content\").concat(this.getBookNumber(), \"/\").concat(this.getCurrentContent(), \".mp4\");\n }\n\n if (this.getContentType() === data_interface_1.BookType.WW || this.getContentType() === data_interface_1.BookType.WFTA) {\n videoUrl = \"\".concat(videoUrl, \"/\").concat((0, util_1.get10Check)(this.getBookNumber()), \"/S\").concat(this.getContentInnerNumber(), \"/\").concat(this.getCurrentContent(), \".mp4\");\n }\n\n return videoUrl;\n }\n }, {\n key: \"getVideoName\",\n value: function getVideoName() {\n if (this.videoUrl) {\n var nameLst = this.videoUrl.split('/');\n var fileName = nameLst[nameLst.length - 1].split('.')[0];\n return fileName;\n }\n\n return '';\n }\n }, {\n key: \"getMrArCheck\",\n value: function getMrArCheck() {\n var fileStr = this.getVideoName();\n var mrAr = fileStr.split('_')[1];\n return mrAr;\n }\n }, {\n key: \"getBackUrl\",\n value: function getBackUrl() {\n var params = this.getParam();\n params.splice(params.length - 1, 1);\n var backUrl = params.join('/');\n return backUrl;\n } // 책의 이름을 돌려준다.\n\n }, {\n key: \"getBookName\",\n value: function getBookName() {\n if (this.bookData === undefined) {\n this.setContentType();\n }\n\n var bookList = this.bookData.getList();\n var bookVolume = this.getBookNumber() - 1;\n var bookInnverNumber = this.getContentInnerNumber() - 1;\n console.log('bookList', bookList);\n\n if (isNaN(bookInnverNumber)) {\n return bookList[bookVolume];\n }\n\n return bookList[bookVolume][bookInnverNumber];\n }\n }, {\n key: \"getBookList\",\n value: function getBookList() {\n if (this.bookData === undefined) {\n this.setContentType();\n }\n\n return this.bookData.getList();\n }\n }, {\n key: \"getBookTitle\",\n value: function getBookTitle() {\n return this.getBookList()[this.getBookNumber() - 1][this.getContentInnerNumber() - 1];\n }\n }, {\n key: \"setContentBackData\",\n value: function setContentBackData(select) {\n this.contentBackBool = select;\n }\n }, {\n key: \"getContentBackData\",\n value: function getContentBackData() {\n return this.contentBackBool;\n }\n }, {\n key: \"setUserBooks\",\n value: function setUserBooks(books) {\n var _this = this;\n\n books.forEach(function (bookData) {\n var bookTypeStr = bookData.bookType;\n\n _this.userBooks[bookTypeStr].push(bookData);\n });\n }\n }, {\n key: \"getUserBooks\",\n value: function getUserBooks() {\n var targetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (targetType) {\n return this.userBooks[targetType];\n }\n\n return this.userBooks[this.getContentType().toLowerCase()];\n }\n }, {\n key: \"getMonthImgPath\",\n value: function getMonthImgPath(bookNumber) {\n var monthLst = ['01_March', '02_April', '03_May', '04_June', '05_July', '06_August', '07_September', '08_October', '09_November', '10_December', '11_January', '12_February'];\n return \"./images/common/list/\".concat(monthLst[bookNumber - 1], \".jpg\");\n }\n }], [{\n key: \"getInstance\",\n value: function getInstance() {\n if (this.instance) {\n return this.instance;\n }\n\n this.instance = new ProgramInfo(new Singleton());\n return this.instance;\n }\n }]);\n return ProgramInfo;\n}();\n\nexports.ProgramInfo = ProgramInfo;\n\nvar Singleton = function Singleton() {\n (0, _classCallCheck2[\"default\"])(this, Singleton);\n};\n\n},{\"../common/util/util\":32,\"../data/get-data\":62,\"./data-interface\":65,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10}],67:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.routerPath = exports.wwRouterpath = exports.bwwRouterPath = exports.wftaRouterPath = void 0;\n\nvar data_interface_1 = require(\"../info/data-interface\");\n\nexports.wftaRouterPath = {\n wfta: 'wfta',\n wftaContent: 'wfta/:num/:num',\n wftaAni: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Animation),\n wftaEbook: \"wfta/:num/:num/\".concat(data_interface_1.CommonContents.Ebook),\n wftaMv: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Mv),\n wftaAct: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Act),\n wftaMap: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Map),\n wftaCharacter: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Character),\n wftaCharacter_video: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Character, \"/video\"),\n wftaPhonics: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Phonics),\n wftaDictionary: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Dictionary),\n wftaNextBook: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.NextBook),\n wftaAudio: \"wfta/:num/:num/\".concat(data_interface_1.WftaContents.Audio)\n};\nexports.bwwRouterPath = {\n bww: \"bww\",\n bwwContent: \"bww/:num\",\n bwwWord: \"bww/:num/\".concat(data_interface_1.BwwContents.Word),\n bwwTalking: \"bww/:num/\".concat(data_interface_1.BwwContents.Talking),\n bwwStory: \"bww/:num/\".concat(data_interface_1.BwwContents.Story),\n bwwSong: \"bww/:num/\".concat(data_interface_1.BwwContents.Song),\n bwwStoryBook: \"bww/:num/\".concat(data_interface_1.BwwContents.StoryBook),\n bwwMovie: \"bww/:num/\".concat(data_interface_1.BwwContents.Movie)\n};\nexports.wwRouterpath = {\n ww: 'ww',\n wwContent: 'ww/:num/:num',\n wwAni: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Animation),\n wwEbook: \"ww/:num/:num/\".concat(data_interface_1.CommonContents.Ebook),\n wwComicBook: \"ww/:num/:num/\".concat(data_interface_1.WwContents.ComicBook),\n wwQuiz: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Quiz),\n wwWrite: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Write),\n wwBuildingWord: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Buildingword),\n wwSong: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Song),\n wwChant: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Chant),\n wwStoryBook: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Storybook),\n wwRhymeBook: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Rhymebook),\n wwAudio: \"ww/:num/:num/\".concat(data_interface_1.WwContents.Audio)\n};\nexports.routerPath = Object.assign(Object.assign(Object.assign({\n index: ''\n}, exports.wftaRouterPath), exports.wwRouterpath), exports.bwwRouterPath);\n\n},{\"../info/data-interface\":65}],68:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bwwRouterPage = void 0;\n\nvar info_routerPath_1 = require(\"../info-routerPath\");\n\nvar bwwRouterPage = function bwwRouterPage() {\n return [{\n path: info_routerPath_1.routerPath.bww,\n content: './contents/bww/bww.html'\n }, {\n path: info_routerPath_1.routerPath.bwwContent,\n content: './contents/bww/bww-content/bww-main.html'\n }, {\n path: info_routerPath_1.routerPath.bwwWord,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.bwwTalking,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.bwwStory,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.bwwSong,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.bwwStoryBook,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.bwwMovie,\n content: './contents/common/video-common.html'\n }];\n};\n\nexports.bwwRouterPage = bwwRouterPage;\n\n},{\"../info-routerPath\":67}],69:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wftaRouterPage = void 0;\n\nvar info_routerPath_1 = require(\"../info-routerPath\");\n\nvar wftaRouterPage = function wftaRouterPage() {\n return [{\n path: info_routerPath_1.routerPath.wfta,\n content: './contents/wfta/wfta.html'\n }, {\n path: info_routerPath_1.routerPath.wftaContent,\n content: './contents/wfta/wfta-content/wfta-main.html'\n }, {\n path: info_routerPath_1.routerPath.wftaAni,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wftaEbook,\n content: './contents/common/ebook-common.html'\n }, {\n path: info_routerPath_1.routerPath.wftaMv,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wftaAct,\n content: './contents/common/comic-common.html'\n }, {\n path: info_routerPath_1.routerPath.wftaMap,\n content: './contents/wfta/wfta-content/wfta-map.html'\n }, {\n path: info_routerPath_1.routerPath.wftaCharacter,\n content: './contents/wfta/wfta-content/wfta-character.html'\n }, {\n path: info_routerPath_1.routerPath.wftaCharacter_video,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wftaPhonics,\n content: './contents/wfta/wfta-content/wfta-phonics.html'\n }, {\n path: info_routerPath_1.routerPath.wftaDictionary,\n content: './contents/wfta/wfta-content/wfta-dictionary.html'\n }, {\n path: info_routerPath_1.routerPath.wftaAudio,\n content: './contents/common/audio-common.html'\n }];\n};\n\nexports.wftaRouterPage = wftaRouterPage;\n\n},{\"../info-routerPath\":67}],70:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wwRouterPage = void 0;\n\nvar info_routerPath_1 = require(\"../info-routerPath\");\n\nvar wwRouterPage = function wwRouterPage() {\n return [{\n path: info_routerPath_1.routerPath.ww,\n content: './contents/ww/ww.html'\n }, {\n path: info_routerPath_1.routerPath.wwContent,\n content: './contents/ww/ww-main.html'\n }, {\n path: info_routerPath_1.routerPath.wwAni,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwEbook,\n content: './contents/common/ebook-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwComicBook,\n content: './contents/common/comic-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwQuiz,\n content: './contents/ww/ww-content/ww-quiz.html'\n }, {\n path: info_routerPath_1.routerPath.wwWrite,\n content: './contents/ww/ww-content/ww-write.html'\n }, {\n path: info_routerPath_1.routerPath.wwBuildingWord,\n content: './contents/ww/ww-content/ww-buildingword.html'\n }, {\n path: info_routerPath_1.routerPath.wwSong,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwChant,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwStoryBook,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwRhymeBook,\n content: './contents/common/video-common.html'\n }, {\n path: info_routerPath_1.routerPath.wwAudio,\n content: './contents/common/audio-common.html'\n }];\n};\n\nexports.wwRouterPage = wwRouterPage;\n\n},{\"../info-routerPath\":67}],71:[function(require,module,exports){\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Router = require(\"vanilla-router\");\n\nvar info_routerPath_1 = require(\"./info-routerPath\");\n\nvar router_page_bww_1 = require(\"./router-paths/router-page-bww\");\n\nvar router_page_wfta_1 = require(\"./router-paths/router-page-wfta\");\n\nvar router_page_ww_1 = require(\"./router-paths/router-page-ww\");\n\nvar VanillaRouter = /*#__PURE__*/function () {\n function VanillaRouter(singleton) {\n (0, _classCallCheck2[\"default\"])(this, VanillaRouter);\n }\n\n (0, _createClass2[\"default\"])(VanillaRouter, [{\n key: \"init\",\n value: function init(indexObj) {\n this.indexObj = indexObj;\n this.router = new Router({\n mode: 'hash',\n page404: function page404(path) {\n console.log('\"/' + path + '\" Page not found');\n }\n });\n this.addRouter(this.getPathObject());\n this.router.addUriListener();\n this.router.check();\n }\n }, {\n key: \"moveContent\",\n value: function moveContent(pathStr) {\n this.router.navigateTo(pathStr);\n }\n }, {\n key: \"addRouter\",\n value: function addRouter(urls) {\n var _this = this;\n\n var contentsTag = document.querySelector('.contents');\n urls.forEach(function (contentPathObj) {\n _this.router.add(contentPathObj.path, function () {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var contentpath, htmlText;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n contentpath = contentPathObj.content;\n _context.next = 3;\n return this.getTargetHtmlData(contentpath);\n\n case 3:\n htmlText = _context.sent;\n contentsTag.innerHTML = htmlText;\n this.indexObj.startContent(this.getStartContent(contentpath));\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n });\n });\n }\n }, {\n key: \"getPathObject\",\n value: function getPathObject() {\n return [{\n path: info_routerPath_1.routerPath.index,\n content: './contents/content-select.html'\n }].concat((0, _toConsumableArray2[\"default\"])((0, router_page_wfta_1.wftaRouterPage)()), (0, _toConsumableArray2[\"default\"])((0, router_page_bww_1.bwwRouterPage)()), (0, _toConsumableArray2[\"default\"])((0, router_page_ww_1.wwRouterPage)()));\n }\n }, {\n key: \"getStartContent\",\n value: function getStartContent(contentpath) {\n var splitLst = contentpath.split('/');\n var targetStr = splitLst[splitLst.length - 1];\n return targetStr.split('.')[0];\n }\n }, {\n key: \"getTargetHtmlData\",\n value: function getTargetHtmlData(targetHtml) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var response;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return fetch(targetHtml);\n\n case 2:\n response = _context2.sent;\n _context2.next = 5;\n return response.text();\n\n case 5:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n }\n }], [{\n key: \"getInstance\",\n value: function getInstance() {\n if (this.thisObj) {\n return this.thisObj;\n }\n\n this.thisObj = new VanillaRouter(new Singleton());\n return this.thisObj;\n }\n }]);\n return VanillaRouter;\n}();\n\nexports[\"default\"] = VanillaRouter;\n\nvar Singleton = function Singleton() {\n (0, _classCallCheck2[\"default\"])(this, Singleton);\n};\n\n},{\"./info-routerPath\":67,\"./router-paths/router-page-bww\":68,\"./router-paths/router-page-wfta\":69,\"./router-paths/router-page-ww\":70,\"@babel/runtime/helpers/classCallCheck\":5,\"@babel/runtime/helpers/createClass\":6,\"@babel/runtime/helpers/interopRequireDefault\":10,\"@babel/runtime/helpers/toConsumableArray\":19,\"@babel/runtime/regenerator\":22,\"vanilla-router\":25}]},{},[63]);\n"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","arr","len","arr2","Array","2","isArray","3","arrayLikeToArray","./arrayLikeToArray","4","self","ReferenceError","5","instance","Constructor","TypeError","6","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","7","superPropBase","_get","property","receiver","Reflect","get","base","desc","getOwnPropertyDescriptor","value","./superPropBase","8","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","9","subClass","superClass","create","constructor","./setPrototypeOf","10","obj","__esModule","default","11","iter","Symbol","iterator","from","12","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","13","14","15","_typeof","assertThisInitialized","./assertThisInitialized","@babel/runtime/helpers/typeof","16","_setPrototypeOf","17","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","./arrayWithHoles","./iterableToArrayLimit","./nonIterableRest","./unsupportedIterableToArray","18","object","hasOwnProperty","./getPrototypeOf","19","arrayWithoutHoles","iterableToArray","nonIterableSpread","./arrayWithoutHoles","./iterableToArray","./nonIterableSpread","20","21","minLen","toString","slice","name","test","22","regenerator-runtime","23","defaultInstanceSettings","update","begin","loopBegin","changeBegin","change","changeComplete","loopComplete","complete","loop","direction","autoplay","timelineOffset","defaultTweenSettings","duration","delay","endDelay","easing","round","validTransforms","cache","CSS","springs","minMax","val","min","max","Math","stringContains","str","text","indexOf","applyArguments","func","args","apply","is","pth","svg","SVGElement","inp","HTMLInputElement","dom","nodeType","fnc","und","nil","hex","rgb","hsl","col","parseEasingParameters","string","match","exec","split","map","parseFloat","spring","params","mass","stiffness","damping","velocity","w0","sqrt","zeta","wd","b","solver","progress","exp","cos","sin","cached","elapsed","rest","steps","ceil","bezier","mX1","mY1","mX2","mY2","sampleValues","Float32Array","calcBezier","x","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","getSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","abs","binarySubdivide","A","aA1","aA2","aT","eases","functionEasings","penner","linear","Sine","PI","Circ","Back","Bounce","pow2","pow","Elastic","amplitude","period","asin","forEach","keys","easeIn","parseEasings","ease","selectString","document","querySelectorAll","filterArray","callback","thisArg","arguments","result","flattenArray","reduce","concat","toArray","NodeList","HTMLCollection","arrayContains","some","cloneObject","clone","replaceObjectProps","o1","o2","mergeObjects","colorToRgb","rgbValue","hexValue","replace","m","g","parseInt","hslValue","h","s","l","hue2rgb","q","getUnit","getFunctionValue","animatable","id","total","getAttribute","el","prop","convertPxToUnit","unit","tempEl","createElement","tagName","parentEl","parentNode","body","appendChild","style","position","width","factor","offsetWidth","removeChild","convertedUnit","getCSSValue","uppercasePropName","toLowerCase","getComputedStyle","getPropertyValue","getAnimationType","getElementTransforms","transform","reg","transforms","Map","set","getTransformValue","propName","defaultVal","list","getOriginalTargetValue","getRelativeValue","to","operator","y","validateValue","originalUnit","unitLess","substr","getDistance","p1","p2","getPolylineLength","previousPos","points","totalLength","numberOfItems","currentPos","getItem","getTotalLength","getParentSvg","pathEl","svgData","parentSvgEl","getParentSvgEl","rect","getBoundingClientRect","viewBoxAttr","height","viewBox","w","vW","vH","decomposeValue","rgx","original","numbers","Number","strings","parseTargets","targets","item","pos","getAnimatables","parsed","flattenKeyframes","keyframes","propertyNames","properties","newKey","getProperties","tweenSettings","tweens","settings","propArray","v","k","normalizePropertyTweens","normalizeTweens","previousTween","tween","normalizeTweenValues","tweenValue","toUnit","originalValue","previousValue","fromUnit","start","end","isPath","isPathTargetInsideSVG","isColor","setProgressValue","css","attribute","setAttribute","manual","last","setTargetsValue","valueUnit","animType","getAnimations","animatables","lastTween","type","createAnimation","getInstanceTimings","animations","getTlOffset","anim","animLength","timings","instanceID","raf","activeInstances","engine","addEventListener","anime","suspendWhenDocumentHidden","isDocumentHidden","cancelAnimationFrame","_onDocumentVisibility","requestAnimationFrame","step","activeInstancesLength","activeInstance","paused","splice","tick","hidden","children","startTime","lastTime","now","childrenLength","resolve","makePromise","promise","window","Promise","_resolve","finished","instanceSettings","toggleInstanceDirection","reversed","child","adjustTime","time","resetTime","currentTime","speed","seekChild","seek","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","isNaN","toNumbersLength","toNumber","fromNumber","path","point","offset","getPointAtLength","p0","scaleX","scaleY","atan2","getPathProgress","stringsLength","n$1","currentValue","setCallback","cb","passThrough","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","reversePlayback","i$1","syncInstanceChildren","began","loopBegan","changeBegan","changeCompleted","remaining","completed","reset","pause","play","reverse","restart","remove","removeTargetsFromInstance","removeTargetsFromAnimations","targetsArray","childAnimations","version","running","convertPx","percent","setDashoffset","pathLength","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","values","maxValue","distanceX","distanceY","index","fromX","fromY","floor","timeline","tl","add","instanceParams","tlIndex","ins","insParams","tlDuration","random","24","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","context","state","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","record","tryCatch","info","resultName","nextLoc","sent","_sent","dispatchException","abrupt","GenStateSuspendedYield","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","reject","invoke","__await","then","unwrapped","error","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","25","global","factory","Router","options","_this","_getSettings","notFoundHandler","page404","mode","history","pushState","root","_trimSlashes","beforeHook","hooks","before","securityHook","secure","routes","route","rule","handler","_pageState","_currentPage","_skipCheck","_action","_historyStack","_historyIdx","_historyState","Page","uri","query","defaults","page","console","message","assign","_getHistoryFragment","fragment","decodeURI","location","pathname","_getHashFragment","hash","_getFragment","_page404","_parseRouteRule","RegExp","_parseQuery","_query","_queryString","row","parts","decodeURIComponent","_getHistoryQuery","search","_getHashQuery","_getQuery","param","removeUriListener","_pushHistory","_unloadCallback","asyncRequest","unloadCb","_findRoute","shift","onbeforeunload","ev","returnValue","_treatAsync","_processUri","bind","_resetState","navigateTo","_current","check","addUriListener","onpopstate","onhashchange","redirectTo","silent","replaceState","refresh","back","go","forward","count","amd","26","YOIL_CSS","yoil_display_hide","yoil_display_alpha_hide","yoil_ani_alpha_up","yoil_ani_alpha_down","27","_classCallCheck2","_interopRequireDefault","YoilEvent","SOUND_COMPLETE","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/interopRequireDefault","28","_createClass2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Date","_isNativeReflectConstruct","NewTarget","Super","YoilSoundPlayerViewer","media_events_1","pc_mobile_1","_sound_player_1$YoilS","_super","newSoundBool","durationTime","userRangePress","_this2","querySelector","innerHTML","getTag","player","setSoundComplete","setPlayPauseButton","setStopButton","setReplayButton","setRange","setSoundOnOffButton","btnReplay","resetBtns","classList","contains","dispatchEvent","Event","StaticData","CLICK","_this3","btnPlayPause","soundPlay","soundPath","_this4","_this5","rangeBar","PRESS","UP","_this6","btnSoundOnOff","muted","soundStop","tagStr","className","tagNode","removeEventListener","YoilSoundPlayer","../../event/media-events","../../pc-mobile","./sound-player","@babel/runtime/helpers/createClass","@babel/runtime/helpers/getPrototypeOf","@babel/runtime/helpers/inherits","@babel/runtime/helpers/possibleConstructorReturn","29","Audio","sndPath","src","soundPlayComplete","30","YoilVideoPlayer","css_name_1","isBallPress","videoInfo","videoViewer","controlBar","controlBool","display","videoCover","setPlayer","setVideoCheck","isIphone","isIpad","requestFullscreen","playAndPause","videoStop","setReplay","setFullScreenToggle","setSoundMute","playPauseBtn","setPauseStatus","replay","soundBtn","videoUrl","load","../../css-name","31","isHeightSize","pcOrMobile","vWebType","navigator","platform","innerHeight","userAgent","MOVE","LEAVE","32","Quitloading","ViewLoading","getRandomNum","get10Check","num","startNum","endNum","loading","loadingPage","append","contents","33","ContentStarter","bww_main_1","content_select_1","audio_common_1","comic_common_1","ebook_common_1","video_common_1","contents_index_1","ContentWftaCharacter_1","ContentWftaDictionary_1","ContentWftaMap_1","ContentWftaPhonics_1","wfta_main_1","ww_buildingWord_1","ww_quiz_1","ww_write_1","ww_main_1","data_interface_1","contentNameStr","splitLst","typeStr","content","ContentSelect","VideoCommon","EbookCommon","ComicCommon","AudioCommon","getWftaContent","getWwContent","getBwwContent","contnetName","ContentsIndex","ContentWftaMain","WftaContents","Phonics","ContentWftaPhonics","Dictionary","ContentWftaDictionary","Character","ContentWftaCharacter","ContentWftaMap","contentName","ContentWwMain","WwContents","Buildingword","ContentWwBuildingWord","Quiz","ContentWwQuiz","Write","ContentWwWrite","ContentBwwMain","./contents/bww/bww-main","./contents/content-select","./contents/contents-common/audio-common","./contents/contents-common/comic-common","./contents/contents-common/ebook-common","./contents/contents-common/video-common","./contents/contents-index","./contents/wfta/character/ContentWftaCharacter","./contents/wfta/dictionary/ContentWftaDictionary","./contents/wfta/map/ContentWftaMap","./contents/wfta/phonics/ContentWftaPhonics","./contents/wfta/wfta-main","./contents/ww/building-word/ww-buildingWord","./contents/ww/quiz/ww-quiz","./contents/ww/write/ww-write","./contents/ww/ww-main","./info/data-interface","34","util_1","info_routerPath_1","program_info_1","router_1","content_common_1","infoObj","ProgramInfo","getInstance","setBackImg","setExitBtn","bookNum","getBookNumber","btnStr","backgroundImage","setBtnMove","router","videoName","setVideoUrl","moveContent","routerPath","bww","../../common/pc-mobile","../../common/util/util","../../info/program-info","../../router/info-routerPath","../../router/router","../contents-common/content-common","35","_regenerator","__awaiter","_arguments","P","fulfilled","rejected","ReactCommnunication_1","reactObj","ReactCommunication","setReflashObj","_callee","books","_context","getBooks","setUserBooks","setTopButton","setBigButton","qrCodeBtn","insertUserBook","elementLst","bookTypes","BookType","WFTA","WW","BWW","getUserBooks","moveMainContent","event","pathStr","currentTarget","../common/pc-mobile","../common/util/util","../info/ReactCommnunication","../info/data-interface","../info/program-info","../router/router","@babel/runtime/regenerator","36","_toConsumableArray2","AbstractEbook","sound_player_1","get_data_1","soundPlayer","dataInfo","BookData","getContentData","currentBookData","pageLst","totalPageNum","setBookTitle","setContentTypeData","addPages","setSideBtns","soundBtnStyleReset","getBookTitle","ebookBtns","comicBtns","sndEl","contentType","getContentType","addTypes","addElementClass","pageEl","getCurrentContent","subImgNum","pageStr","getEbookUrl","addSoundButtons","currentContent","Act","ComicBook","getContentInnerNumber","bookPageEl","sndPlayList","sndObj","_this2$currentBookDat","left","top","sndNameLst","sndNum","getSoundPath","sndName","../../common/event/media-events","../../common/media/sound/sound-player","../../data/get-data","../../info/data-interface","./content-common","@babel/runtime/helpers/toConsumableArray","37","sound_player_viewer_1","textBoard","bookNumber","innerNumber","bookData","setContentType","soundPlayerViewer","init","setImg","setBoard","setTextBoard","contentEl","logo","monthImg","coverImg","coverTitle","getMonthPath","getInnerContentPath","bookStr","getList","innerText","getMonthImgPath","dividNum","bookCoverNum","_callee2","borderDiv","_context2","getBoardData","textData","dataStr","itemDiv","createTextItem","itemClick","_callee3","jsonData","targetContent","_context3","jsonPath","getNormalContentData","returnData","iconDiv","itemText","clkTarget","selectMonth","audioName","setSound","destroy","../../common/media/sound/sound-player-viewer","38","_get2","_abstract_ebook_1$Abs","_super2","comicPages","sideBtns","_key","targetEl","sideClickRemove","pageAllHide","showPages","setPages","nodes","pageNum","targetPage","../../common/css-name","./abstract-ebook","@babel/runtime/helpers/get","39","getBackUrl","elements","clssName","40","currentPageNum","YOIL_ALPHA_HIDE","leftBtn","rightBtn","setArrow","getCurrentPage","checkContentArrow","41","MainSideSection","listData","stageNum","setBookNumber","btns","changeMonthText","changeBorderColor","changeBookCover","inputBookTitle","setOpenContents","removeClassPosition","titleUrl","bwwContentCheck","border","btnChar","String","fromCharCode","innerKey","removeItem","dataNum","titles","positionNum","removeClass","itemNum","volumNum","data","vol","number","42","video_player_1","setVideo","changeVideo","changeTitle","setExitContent","videoPlayer","getVideoSize","startComponent","captionHide","getVideoUrl","animationName","getBookName","textContent","../../common/media/video/video-player","43","main_side_section_1","allView","introEl","getVariable","setCommonBtns","setMoveContents","setAllContents","setViewContents","setContentExit","checkOpenAllContents","getBookList","allBtn","indexBoard","monthNum","innerBookNum","getContentPath","setContentInnerNumber","innerContent","contentInfo","getAllContentsNumbers","movePath","allContentsInfo","getAllInnerData","loopNum","bookLimit","boxContents","./contents-common/main-side-section","44","CharacterSong_1","cardTotalLst","charData","characterSong","ContentSong","contentCard","contentClip","contentSong","currentStage","backDataCheck","putCardViewData","backData","getContentBackData","log","putSelectCardData","turnStage","userSelectNum","stageType","cardEl","getCardImgPath","setContentBackData","getImgPath","selectNum","cardStr","clipCard","selectImg","clipsEl","removeAllClipCard","totalNum","addCardClip","replaceSong","videosImgs","_ref","imgNum","clipImgDiv","getVideoClipDiv","_loop","_ref2","imgPath","clip","videoNum","book","songBtn","newSongBtn","selectCharcter","../../../common/pc-mobile","../../../common/util/util","../../../data/get-data","../../../info/program-info","../../../router/router","./character-song/CharacterSong","45","addTag","setMrBtn","mrBtn","mrArBool","soundNum","songData","charNum","targetData","getTargetData","sound","textBoardData","removeAllLineData","inputTitle","dataDiv","getLineText","titleStr","txt","dataLine","lineText","lineBottom","../../../../common/media/sound/sound-player-viewer","../../../../common/pc-mobile","../../../../common/util/util","../../../../data/get-data","../../../../info/program-info","46","currentPage","infoData","getVideoViewer","getData","setNextPrev","setVideoPlayBtn","dicData","dicWords","totalPage","putData","getImagePath","textDiv","stringData","putVideo","prevBtn","nextBtn","btn","../../../common/media/video/video-player","47","ContentMapLocal_1","MapLocalView_1","contentData","getJsonPathUrl","currentData","contentNum","place","totalData","wordMap","localObject","ContentMapLocal","setTitle","setBackground","setCircle","world","circle","localMap","localSoundStop","./local/ContentMapLocal","./local/MapLocalView","48","MapLocalBottom_1","bookPath","contentPath","bottomArea","MapLocalBottom","./MapLocalBottom","./MapLocalView","49","ACTIVE","boardText","setBottomBoard","setBoardExit","setBottomIconsHide","setTextContent","parentElement","targetHtmlTxt","fontCheck","50","createDivBox","clickBox","clickDiv","getClickBox","boxData","allData","boardBox","seasonNum","getSeasonLocal","seasonNumber","season","local","boxName","localView","boardDiv","viewBoardDiv","title","getBoardBox","centerDiv","center","centerBox","getCenterBox","../../../../common/media/sound/sound-player","51","inputAlphabet","setAlphabet","counter","plusNum","phonicsData","alphabets","plusBtns","selectDiv","videoPath","getVideoPath","52","docStr","targetDoc","getImgHtml","paramLst","getParam","setCurrentContent","numStr","contentInnerNumber","section","wftaRouterPath","wfta","53","BwWordList","wordData","wordList","word","wordListBtn","listBoard","boardWords","inputWords","setBtns","overflowY","divWord","wordClick","scrollTop","clkDiv","wordNum","CustomEvent","detail","returnDefaultBoard","currentNum","currentWord","../../../common/css-name","54","BwWordList_1","currentWordNum","soundStatus","bwData","textEl","currentImg","currentText","wordTotal","changeWordList","soundComplete","setImageEvent","changeStage","arrowRight","arrowLeft","pointerEvents","setCurrentWord","putWord","checkArrow","changeImage","color","checkWordSize","HIDE_CL","fontSize","../../../common/event/media-events","../../../common/media/sound/sound-player","./BwWordList","55","QuizSound","bookNumberStr","sndPlayer","getEffSoundPath","currentQuiz","sndNameStr","QUIZ_PATH","getInnerSndPath","targetSnd","gooPath","quizNum","END_PATH","endAllQuiz","56","quiz_sound_1","quizData","quizLst","quiz","stageStatus","addEvent","putQuiz","putExampleCard","imgNameStr","getAnswerList","btnClk","clkValue","answerCheck","answerList","answerNum","getCurrentQuiz","noneEventBtns","putAnswer","good","putNotAnswer","currentAni","rotateY","opacity","tryAgain","animeTarget","translateX","putQuizTitle","putQuizImage","putQuizCard","quizBox","translateY","playQuizSound","exampleNumbers","sort","cardLsts","answerCards","targetImgNum","answerCard","answerImgNum","quitQuizWindow","quizFalse","activeEventBtns","endQuizAnswer","nextQuiz","maskSp","maskOut","viewExamples","./quiz-sound","animejs","57","painting","SIZE_WIDTH","SIZE_HEIGHT","setupBoard","writeData","setEraserBtn","targetBtn","ctx","globalCompositeOperation","resetCanvas","fillStyle","fillRect","canvas","getContext","strokeStyle","lineWidth","onMouseMove","startPainting","stopPainting","offsetLeft","offsetTop","touches","pageX","pageY","beginPath","moveTo","offsetX","offsetY","preventDefault","lineTo","stroke","../building-word/BwWordList","58","btnLst","wwRouterpath","ww","59","bwwBookList","vol1","vol2","vol3","vol4","vol5","vol6","vol7","vol8","vol9","vol10","vol11","vol12","vol13","60","wftaBookList","61","wwBookList","62","_slicedToArray2","bww_book_list_1","wfta_book_list_1","ww_book_list_1","contentTypeStr","bookList","dataBook","_Object$entries","entries","_Object$entries$_i","json","fetch","pathUrl","./book-data/bww-book-list","./book-data/wfta-book-list","./book-data/ww-book-list","@babel/runtime/helpers/slicedToArray","63","content_starter_1","Index","resizeCheck","contentStarter","innerWidth","contentsTag","transformOrigin","afterScaleHeight","topMargin","marginTop","contentStr","contentObj","destory","copyWriter","isCoptyWriteHide","getContentObject","./common/css-name","./common/pc-mobile","./content-starter","./router/router","64","singleton","dataType","reflashObj","react","postMessage","Singleton","65","BwwContents","CommonContents","66","userBooks","toUpperCase","URL","href","variable","URLSearchParams","url","nameLst","getVideoName","join","bookVolume","bookInnverNumber","select","contentBackBool","bookTypeStr","bookType","targetType","../data/get-data","./data-interface","67","bwwRouterPath","wftaContent","wftaAni","Animation","wftaEbook","Ebook","wftaMv","Mv","wftaAct","wftaMap","wftaCharacter","wftaCharacter_video","wftaPhonics","wftaDictionary","wftaNextBook","NextBook","wftaAudio","bwwContent","bwwWord","Word","bwwTalking","Talking","bwwStory","Story","bwwSong","Song","bwwStoryBook","StoryBook","bwwMovie","Movie","wwContent","wwAni","wwEbook","wwComicBook","wwQuiz","wwWrite","wwBuildingWord","wwSong","wwChant","Chant","wwStoryBook","Storybook","wwRhymeBook","Rhymebook","wwAudio","68","bwwRouterPage","../info-routerPath","69","wftaRouterPage","70","wwRouterPage","71","router_page_bww_1","router_page_wfta_1","router_page_ww_1","VanillaRouter","indexObj","addRouter","getPathObject","urls","contentPathObj","contentpath","htmlText","getTargetHtmlData","startContent","getStartContent","targetHtml","response","thisObj","./info-routerPath","./router-paths/router-page-bww","./router-paths/router-page-wfta","./router-paths/router-page-ww","vanilla-router"],"mappings":"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"}