{"version":3,"sources":["webpack:///board/cartoon-series.js","webpack:///webpack/bootstrap 256843daf2696db2eb91","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./_src/js/utils/util.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./_src/js/board/cartoon-series.js","webpack:///./node_modules/babel-runtime/core-js/number/is-integer.js","webpack:///./node_modules/core-js/library/fn/number/is-integer.js","webpack:///./node_modules/core-js/library/modules/es6.number.is-integer.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_is-integer.js","webpack:///./_src/js/model/model.js","webpack:///./_src/js/utils/service.js","webpack:///./_src/js/model/msg/alert.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","it","a","__webpack_exports__","getObjectHasProperty","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_number_is_integer__","ua","window","navigator","userAgent","existy","test","obj","isDefined","isString","exec","location","hostname","constructor","String","isFunction","Function","not","func","TypeError","each","$ele","length","dataCanLoop","context","_context","Array","isArray","max","arrayHasObjects","propertyKey","result","global","Math","self","__g","core","version","__e","e","value","__WEBPACK_IMPORTED_MODULE_0__utils_util__","__WEBPACK_IMPORTED_MODULE_1__utils_service__","$","getslidesToShow","_categoryIndex","_categorySlideIndex","responsiveObj","breakpoint","innerWidth","slidesToShow","slick","nc","lineage","cartoonSeries","options","setNoData","option","wrap","empty","append","setInstance","data","_data","_currentData","LIVE_boardCategoryMap","에피소드0 시즌2","에피소드0 시즌1","린 글리쉬","축데이","아덴 훌쩍 여행","로드 오브 리니지","리니지 다반사","새트의 아덴 탐험기","신들의 이야기","인간의 이야기","오만의 탑","getBoardCategoryMap","_serviceEnv","_boardCategoryMap","getInitCategory","initCategory","category","items","this","index","current","currentTitle","title","currentSeries","series","tmpl_innerlist","map","item","thumbnail","join","tmpl_list","tmpl_intro","introImg","writer","date","desc","latestUrl","firstUrl","device","ncui","share","snsOrder","dimmed","useNavigatorShare","shareUrl","href","btnShareTrigger","selector","staticDistanceFromBtnToLayer","slidesToScroll","dots","arrows","infinite","responsive","settings","resize","dropdown","activateIndex","activateCallback","btn","find","attr","extend","apiPath","getDatasWithOption","type","url","dataType","contentType","Accept","jsonData","JSON","parse","default","pc","tablet","jQuery","Number","isInteger","$export","S","ctx","hide","source","key","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","target","undefined","C","b","arguments","apply","virtual","R","U","aFunction","fn","that","dP","createDesc","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","isObject","document","is","createElement","val","toString","valueOf","bitmap","writable","floor","isFinite","PET_NECKLACE_ID","jQueryAjaxOptions","resolvedCallback","rejectedCallback","promises","promise","ajax","push","when","then","fail","ALERT","REQUIRE_LOGIN"],"mappings":"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","file":"board/cartoon-series.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(5)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export ua */\n/* unused harmony export locationOriginRegex */\n/* unused harmony export isIE */\n/* unused harmony export isEdge */\n/* unused harmony export isOpera */\n/* unused harmony export isChrome */\n/* unused harmony export isIOS */\n/* unused harmony export isAndroid */\n/* unused harmony export truthy */\n/* unused harmony export falsy */\n/* unused harmony export existy */\n/* unused harmony export isDefined */\n/* unused harmony export isRc */\n/* unused harmony export isInteger */\n/* unused harmony export isString */\n/* unused harmony export isNumber */\n/* unused harmony export isBoolean */\n/* unused harmony export isObject */\n/* unused harmony export isFunction */\n/* unused harmony export isRegExp */\n/* unused harmony export not */\n/* unused harmony export isNotDefined */\n/* unused harmony export parseInt10 */\n/* unused harmony export parseStrIntToInt */\n/* unused harmony export removeElementInArray */\n/* unused harmony export allOf */\n/* unused harmony export anyOf */\n/* unused harmony export getDefined */\n/* unused harmony export notSingleEle */\n/* unused harmony export each */\n/* unused harmony export getFileExtension */\n/* unused harmony export getFirstObjectHasProperty */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getObjectHasProperty; });\n/* unused harmony export overlappedConditionSortByProperty */\n/* unused harmony export getPositionFromTranslateStr */\n/* unused harmony export isIndexInLoop */\n/* unused harmony export getLoopedLastIndex */\n/* unused harmony export getReverseLoopedFirstIndex */\n/* unused harmony export getResolution */\n/* unused harmony export isPhoneResolution */\n/* unused harmony export isTabletResolution */\n/* unused harmony export isMobileResolution */\n/* unused harmony export numberWithCommas */\n/* unused harmony export getUriParams */\n/* unused harmony export getUriCombinedParams */\n/* unused harmony export getHashParams */\n/* unused harmony export getHashCombinedParams */\n/* unused harmony export getObjForPagination */\n/* unused harmony export getDivideIntStrByThousandUnit */\n/* unused harmony export getMarketPriceStr */\n/* unused harmony export getEmphasizedStrByQuery */\n/* unused harmony export getSeparatedDateStr */\n/* unused harmony export namespace */\n/* unused harmony export template */\n/* unused harmony export getUrlAddCategoryIdByArticle */\n/* unused harmony export getChangedStats */\n/* unused harmony export getPlusElixirPointByLevel */\n/* unused harmony export isLevelCanConsumeElixirStat */\n/* unused harmony export isLevelGetElixirPoint */\n/* unused harmony export getStatMaxByLevel */\n/* unused harmony export isWarrior */\n/* unused harmony export getClassName */\n/* unused harmony export removeEquipInEquips */\n/* unused harmony export isPetNecklace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_number_is_integer__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_number_is_integer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_number_is_integer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__model_model__ = __webpack_require__(22);\n\n/*\r\n * common utils\r\n */\n\n\n\nvar ua = window.navigator.userAgent;\n\nvar locationOriginRegex = /^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})/;\n\nvar isIE = function () {\n return (/msie/i.test(ua) || /trident/i.test(ua)\n );\n}();\n\nvar isEdge = function isEdge(userAgent) {\n return (/Gecko/i.test(userAgent) && /Edge/i.test(userAgent)\n );\n};\n\nvar isOpera = function isOpera(userAgent) {\n return (/Opera/i.test(userAgent) || /OPR\\//i.test(userAgent)\n );\n};\n\nvar isChrome = function isChrome(userAgent) {\n return !isEdge(userAgent) && !isOpera(userAgent) && /Chrome/i.test(userAgent);\n};\n\nvar isIOS = function isIOS(userAgent) {\n return (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream\n );\n};\n\nvar isAndroid = function isAndroid(userAgent) {\n return (/android/i.test(userAgent)\n );\n};\n\nvar truthy = function truthy(object) {\n return !!object;\n};\n\nvar falsy = function falsy(object) {\n return !!!object;\n};\n\nvar existy = function existy(obj) {\n return obj != null;\n};\n\nvar isDefined = function isDefined(obj) {\n var flag = true;\n if (obj === null || typeof obj === 'undefined') return false;\n return flag;\n};\n\nvar isRc = function () {\n return isDefined(/^rc-/.exec(location.hostname));\n}();\n\nvar isInteger = function isInteger(obj) {\n if (!isDefined(obj) || obj.constructor !== Number) return false;\n\n // https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n return isFinite(obj) && Math.floor(obj) === obj;\n};\n\nvar isString = function isString(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === String;\n};\n\nvar isNumber = function isNumber(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === Number;\n};\n\nvar isBoolean = function isBoolean(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === Boolean;\n};\n\nvar isObject = function isObject(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === Object;\n};\n\nvar isFunction = function isFunction(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === Function;\n};\n\nvar isRegExp = function isRegExp(obj) {\n if (!isDefined(obj)) return false;\n return obj.constructor === RegExp;\n};\n\nvar not = function not(func) {\n if (!isFunction(func)) throw new TypeError('func parameter type of not() must be Function.');\n\n return function (object) {\n return !func(object);\n };\n};\n\nvar isNotDefined = not(isDefined);\n\nvar parseInt10 = function parseInt10(number) {\n return parseInt(number, 10);\n};\n\nvar parseStrIntToInt = function parseStrIntToInt(strIntOrInt) {\n var val = strIntOrInt;\n\n if (!isDefined(val)) return 0;\n if (typeof val === 'number') return val;\n\n return parseInt10(val.split(',').join(''));\n};\n\nvar removeElementInArray = function removeElementInArray(arr, target) {\n if (!Array.isArray(arr)) throw new TypeError('arr parameter type of removeElementInArray() must be Array.');\n\n var clonedArr = arr.slice(0),\n index = clonedArr.indexOf(target);\n\n if (index >= 0) clonedArr.splice(index, 1);\n\n return clonedArr;\n};\n\nvar allOf = function allOf() /*args*/{\n var args = Array.prototype.slice.call(arguments);\n\n return args.every(function (val) {\n return val === true;\n });\n};\n\nvar anyOf = function anyOf() /*args*/{\n var args = Array.prototype.slice.call(arguments);\n\n return args.some(function (val) {\n return val === true;\n });\n};\n\nvar getDefined = function getDefined(val, defaultVal) {\n return isDefined(val) ? val : defaultVal;\n};\n\nvar notSingleEle = not(function ($ele) {\n return $ele.length === 1;\n});\n\nvar each = function each(dataCanLoop, func, context) {\n var _context = existy(context) ? context : null;\n\n if (!(Array.isArray(dataCanLoop) || isString(dataCanLoop))) throw new TypeError('dataCanLoop parameter type of each() must be Array or String.');\n\n var result = false;\n for (var i = 0, max = dataCanLoop.length; i < max; i++) {\n result = func.call(_context, dataCanLoop[i]);\n if (result === false) break;\n }\n};\n\nvar getFileExtension = function getFileExtension(fileName) {\n if (!isString(fileName)) throw new TypeError('getFileExtension() requires String parameter.');\n\n if (fileName.length <= 0) return '';\n\n var lastDotIndex = fileName.lastIndexOf('.'),\n extension = fileName.substr(lastDotIndex + 1);\n\n return extension;\n};\n\nvar getFirstObjectHasProperty = function getFirstObjectHasProperty(arrayHasObjects, propertyKey, findPropertyValueOrRegex) {\n if (!Array.isArray(arrayHasObjects) || arrayHasObjects.length <= 0) return null;\n if (!isString(propertyKey)) return null;\n\n var obj = void 0,\n result = null;\n for (var i = 0, max = arrayHasObjects.length; i < max; ++i) {\n obj = arrayHasObjects[i];\n if (!obj.hasOwnProperty(propertyKey)) continue;\n\n if (isRegExp(findPropertyValueOrRegex)) {\n if (findPropertyValueOrRegex.test(obj[propertyKey])) {\n result = obj;\n break;\n }\n } else {\n if (obj[propertyKey] === findPropertyValueOrRegex) {\n result = obj;\n break;\n }\n }\n }\n return result;\n};\n\nvar getObjectHasProperty = function getObjectHasProperty(arrayHasObjects, propertyKey) {\n if (!Array.isArray(arrayHasObjects) || arrayHasObjects.length <= 0) return null;\n if (!isString(propertyKey)) return null;\n var obj = void 0,\n result = null;\n\n each(arrayHasObjects, function (obj) {\n if (obj.hasOwnProperty(propertyKey)) result = obj[propertyKey];\n });\n // console.log( '=> util.js getObjectHasProperty() result : ', propertyKey, result );\n return result;\n};\n\nvar overlappedConditionSortByProperty = function sortByProp(_datas, _conditions, _conditionIndex) {\n var datas = Array.prototype.slice.call(_datas);\n\n if (!_conditions || _conditions.constructor !== Array || _conditions.length < 0) return datas;\n\n var conditionIndex = _conditionIndex >= 0 ? _conditionIndex : 0,\n condition = _conditions[conditionIndex];\n\n if (conditionIndex <= 0) datas.sort(condition.func);\n\n if (_conditions.length <= 1) return datas;\n\n if (conditionIndex < _conditions.length - 1) {\n var prevProperty = condition.property,\n nextConditionIndex = conditionIndex + 1,\n nextCondition = _conditions[nextConditionIndex];\n\n var memoObj = {},\n memoArr = [],\n arr = [];\n\n var obj = void 0,\n prop = void 0;\n for (var i = 0, max = datas.length; i < max; i++) {\n obj = datas[i];\n prop = String(obj[prevProperty]);\n\n if (!memoObj[prop]) {\n memoObj[prop] = [];\n memoArr.push(memoObj[prop]);\n }\n\n arr = memoObj[prop];\n arr.push(obj);\n }\n\n for (var j = 0, len = memoArr.length; j < len; j++) {\n arr = memoArr[j];\n arr.sort(nextCondition.func);\n\n memoArr[j] = overlappedConditionSortByProperty(arr, _conditions, nextConditionIndex);\n }\n\n var resultArr = memoArr.reduce(function (acc, curVal, curIndex, array) {\n return acc.concat(curVal);\n });\n\n return resultArr;\n }\n\n return datas;\n};\n\nvar getPositionFromTranslateStr = function getPositionFromTranslateStr(str) {\n var obj = { x: 0, y: 0 };\n if (!isDefined(str)) return obj;\n\n var values = str.match(/[+-]?(\\d*\\.)?\\d+/g);\n if (values.length <= 0) return obj;\n\n if (/translateX/g.test(str)) {\n obj.x = parseFloat(values[0]);\n return obj;\n }\n\n if (/translateY/g.test(str)) {\n obj.y = parseFloat(values[0]);\n return obj;\n }\n\n obj.x = parseFloat(values[0]);\n if (values.length > 1) obj.y = parseFloat(values[1]);\n\n return obj;\n};\n\nvar isIndexInLoop = function isIndexInLoop(totalLength, loopGap, firstIndex, searchIndex) {\n var args = Array.prototype.slice.call(arguments);\n if (args.length < 4) throw Error('isIndexInLoop function requires 4 arguments.');\n\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(firstIndex) || !isInteger(searchIndex)) {\n throw Error('arguments must be Integer Number.');\n }\n if (totalLength < 1 || firstIndex < 1) {\n throw Error('totalLength and startIndex can not smaller than 1.');\n }\n if (loopGap > totalLength) {\n throw Error('loopGap can not bigger than totalLength.');\n }\n\n var index = firstIndex;\n for (var i = 0; i < loopGap; i++) {\n if (index === searchIndex) return true;\n index = index + 1 > totalLength ? 1 : index + 1;\n }\n\n return false;\n};\n\nvar getLoopedLastIndex = function getLoopedLastIndex(totalLength, loopGap, firstIndex) {\n var args = Array.prototype.slice.call(arguments);\n if (args.length < 3) throw Error('getLoopedLastIndex function requires 3 arguments.');\n\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(firstIndex)) {\n throw Error('arguments must be Integer Number.');\n }\n if (totalLength < 1 || firstIndex < 1) {\n throw Error('totalLength and firstIndex can not smaller than 1.');\n }\n if (loopGap > totalLength || firstIndex > totalLength) {\n throw Error('loopGap and firstIndex can not bigger than totalLength.');\n }\n\n var index = firstIndex;\n for (var i = 0; i < loopGap - 1; i++) {\n index++;\n if (index > totalLength) index = 1;\n }\n return index;\n};\n\nvar getReverseLoopedFirstIndex = function getReverseLoopedFirstIndex(totalLength, loopGap, lastIndex) {\n var args = Array.prototype.slice.call(arguments);\n if (args.length < 3) throw Error('getReverseLoopedFirstIndex function requires 3 arguments.');\n\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(lastIndex)) {\n throw Error('arguments must be Integer Number.');\n }\n if (totalLength < 1 || lastIndex < 1) {\n throw Error('totalLength and lastIndex can not smaller than 1.');\n }\n if (loopGap > totalLength || lastIndex > totalLength) {\n throw Error('loopGap and lastIndex can not bigger than totalLength.');\n }\n\n var index = lastIndex;\n for (var i = 0; i < loopGap - 1; i++) {\n index = index - 1 < 1 ? totalLength : index - 1;\n }\n\n return index;\n};\n\nvar getResolution = function getResolution() {\n var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { tablet: 640, pc: 960, max: 1260 };\n var global = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n\n var resolution = '';\n if (breakpoint.max && global.innerWidth >= breakpoint.max) {\n resolution = 'max';\n } else if (breakpoint.pc && global.innerWidth >= breakpoint.pc) {\n resolution = 'pc';\n } else if (breakpoint.tablet && global.innerWidth >= breakpoint.tablet) {\n resolution = 'tablet';\n } else {\n resolution = 'phone';\n }\n\n return resolution;\n};\n\nvar isPhoneResolution = function isPhoneResolution(resolution) {\n return resolution === 'phone';\n};\n\nvar isTabletResolution = function isTabletResolution(resolution) {\n return resolution === 'tablet';\n};\n\nvar isMobileResolution = function isMobileResolution(resolution) {\n return resolution === 'phone' || resolution === 'tablet';\n};\n\n// http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\nvar numberWithCommas = function numberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n};\n\nvar getUriParams = function getUriParams(uri) {\n if (uri.length < 1) return null;\n var str = uri.split('#')[0];\n\n var tmpArr = str.split('?');\n if (tmpArr.length < 2) return null;\n\n var paramStr = tmpArr[1],\n params = paramStr.split('&');\n\n var keyValueArr = void 0,\n obj = {};\n for (var i = 0, max = params.length; i < max; ++i) {\n keyValueArr = params[i].split('=');\n if (keyValueArr.length > 1) obj[keyValueArr[0]] = keyValueArr[1];\n\n // if (keyValueArr.length <= 1) return null;\n // obj[keyValueArr[0]] = keyValueArr[1];\n }\n return obj;\n};\n\nvar getUriCombinedParams = function getUriCombinedParams(uri, params) {\n if (!uri) return '';\n if (!params) return uri;\n\n var str = '';\n for (var key in params) {\n str += '&' + key + '=' + String(params[key]);\n }\n if (str === '') return uri;\n\n var tmpArr = uri.split('#'),\n uri = tmpArr[0],\n hashStr = isDefined(tmpArr[1]) ? '#' + tmpArr[1] : '';\n\n uri = (uri.indexOf('?') >= 0 ? uri + str : uri + '?' + str.substr(1)) + hashStr;\n return uri;\n};\n\nvar getHashParams = function getHashParams(hashStr) {\n var str = hashStr;\n if (str.length < 1) return null;\n\n var tmpArr = str.split('#');\n if (tmpArr.length < 2) return null;\n\n var paramStr = tmpArr[1],\n params = paramStr.split('&');\n\n var keyValueArr = void 0,\n obj = {};\n for (var i = 0, max = params.length; i < max; ++i) {\n keyValueArr = params[i].split('=');\n if (keyValueArr.length <= 1) return null;\n\n obj[keyValueArr[0]] = keyValueArr[1];\n }\n\n return obj;\n};\n\nvar getHashCombinedParams = function getHashCombinedParams(uri, params) {\n if (!params) return uri;\n\n var str = '';\n for (var key in params) {\n str += '&' + key + '=' + String(params[key]);\n }\n if (str === '') return uri;\n\n uri = uri.indexOf('#') >= 0 ? uri + str : uri + '#' + str.substr(1);\n return uri;\n};\n\nvar getObjForPagination = function getObjForPagination(totalPostNum, displayPostNumPerPage, displayPaginationBtnNum, pageIndex) {\n var args = Array.prototype.slice.call(arguments);\n\n if (args.length < 4) throw new Error('getObjForPagination() requires 4 parameters.');\n\n if (!isInteger(totalPostNum) || !isInteger(displayPostNumPerPage) || !isInteger(displayPaginationBtnNum) || !isInteger(pageIndex)) {\n throw new TypeError('getObjForPagination() requires Integer Number parameters.');\n }\n if (totalPostNum <= 0 || displayPostNumPerPage <= 0 || displayPaginationBtnNum <= 0 || pageIndex <= 0) {\n throw new TypeError('getObjForPagination() requires positive Integer Number parameters.');\n }\n\n var totalPageNum = Math.ceil(totalPostNum / displayPostNumPerPage);\n if (pageIndex < 1) pageIndex = 1;\n if (pageIndex > totalPageNum) pageIndex = totalPageNum;\n\n var paginationBtnGroupIndex = Math.floor((pageIndex - 1) / displayPaginationBtnNum),\n prevPageIndex = paginationBtnGroupIndex * displayPaginationBtnNum,\n firstPageIndex = paginationBtnGroupIndex * displayPaginationBtnNum + 1,\n lastPageIndex = firstPageIndex + displayPaginationBtnNum - 1,\n nextPageIndex = lastPageIndex + 1;\n\n if (lastPageIndex > totalPageNum) lastPageIndex = totalPageNum;\n if (nextPageIndex > totalPageNum) nextPageIndex = 0;\n\n return {\n totalPostNum: totalPostNum,\n displayPostNumPerPage: displayPostNumPerPage,\n displayPaginationBtnNum: displayPaginationBtnNum,\n pageIndex: pageIndex,\n\n totalPageNum: totalPageNum,\n prevPageIndex: prevPageIndex,\n firstPageIndex: firstPageIndex,\n lastPageIndex: lastPageIndex,\n nextPageIndex: nextPageIndex\n };\n};\n\nvar getDivideIntStrByThousandUnit = function getDivideIntStrByThousandUnit(intStr_) {\n if (not(isDefined)(intStr_)) return ['0'];\n\n var DIVIDE_UNIT = 4;\n\n var intStr = String(parseStrIntToInt(intStr_)),\n intStrs = [];\n\n if (intStr.length <= DIVIDE_UNIT) return [String(intStr)];\n\n var lastIndex = 0,\n unitStr = '';\n while (intStr.length > DIVIDE_UNIT) {\n lastIndex = intStr.length;\n unitStr = intStr.substr(lastIndex - DIVIDE_UNIT, lastIndex);\n\n intStr = intStr.substr(0, lastIndex - DIVIDE_UNIT);\n intStrs.unshift(unitStr);\n }\n intStrs.unshift(intStr);\n\n return intStrs;\n};\n\nvar getMarketPriceStr = function getMarketPriceStr(str) {\n var UNIT_PRICE = ['', '만', '억'];\n\n var val = isDefined(str) ? str : '0',\n unitValues = getDivideIntStrByThousandUnit(val);\n\n unitValues.reverse();\n\n var priceStr = '',\n unitVal = 0;\n for (var i = 0, max = unitValues.length; i < max; i++) {\n unitVal = parseInt10(unitValues[i]);\n if (unitVal <= 0) continue;\n\n priceStr = numberWithCommas(unitVal) + UNIT_PRICE[i] + priceStr;\n if (i !== unitValues.length) priceStr = ' ' + priceStr;\n }\n priceStr = priceStr.trim();\n\n if (!priceStr) return '0';\n return priceStr;\n};\n\nvar getEmphasizedStrByQuery = function getEmphasizedStrByQuery(str, query) {\n return (str || '').split(query).join('' + query + '');\n};\n\nvar getSeparatedDateStr = function getSeparatedDateStr(moment, dateStr) {\n var DAYS = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n 'Sunday': '일',\n 'Monday': '월',\n 'Tuesday': '화',\n 'Wednesday': '수',\n 'Thursday': '목',\n 'Friday': '금',\n 'Saturday': '토'\n };\n\n var val = '';\n\n var MIN_TO_SEC = 60,\n HOUR_TO_SEC = 3600,\n DAY_TO_SEC = 86400;\n\n var now = new Date(),\n past = new Date(dateStr),\n diffSeconds = Math.floor((now - past) / 1000);\n\n if (diffSeconds < DAY_TO_SEC) {\n if (diffSeconds < HOUR_TO_SEC) {\n if (diffSeconds < MIN_TO_SEC) {\n val = diffSeconds + '\\uCD08 \\uC804';\n } else {\n var diffMinutes = Math.floor(diffSeconds / MIN_TO_SEC);\n val = diffMinutes + '\\uBD84 \\uC804';\n }\n } else {\n var diffHours = Math.floor(diffSeconds / HOUR_TO_SEC);\n val = diffHours + '\\uC2DC\\uAC04 \\uC804';\n }\n } else {\n var date = moment(dateStr),\n day = DAYS[date.format('dddd')] || '';\n\n val = date.format('YYYY-MM-DD');\n // val = date.format(`YYYY.MM.DD. (${day})`);\n }\n\n return val;\n};\n\nvar namespace = function namespace(_namespace, parent) {\n if (!isString(_namespace)) throw new TypeError('namespace parameter type of namespace() must be String.');\n if (!(isObject(parent) || !isDefined(parent))) throw new TypeError('parent parameter type of namespace() must be Object or null or undefined.');\n\n var ns = parent || window;\n\n if (_namespace) {\n var parts = _namespace.split('.');\n\n for (var i = 0, max = parts.length; i < max; i++) {\n if (!ns[parts[i]]) ns[parts[i]] = {};\n ns = ns[parts[i]];\n }\n }\n\n return ns;\n};\n\nvar template = function template(strings) {\n for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals\n return function () {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var dict = values[values.length - 1] || {};\n\n var result = [strings[0]];\n keys.forEach(function (key, i) {\n var value = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_number_is_integer___default()(key) ? values[key] : dict[key];\n result.push(value, strings[i + 1]);\n });\n\n return result.join('');\n };\n};\n\n// board - server list\nvar getUrlAddCategoryIdByArticle = function getUrlAddCategoryIdByArticle(_url, _article, _serverNameMap) {\n var url = _url;\n\n if (url !== '#') {\n var path = url.split('?')[0],\n uriParams = getUriParams(url);\n\n var categoryId = isObject(_article.category) ? _article.category.categoryId : uriParams.categoryId;\n\n if (isNotDefined(categoryId)) {\n // const obj = getFirstObjectHasProperty(_serverNameMap, 'serverId', 1) || _serverNameMap[0];\n // categoryId = obj.categoryId;\n categoryId = 0;\n }\n\n url = getUriCombinedParams(path, $.extend(uriParams, { categoryId: categoryId }));\n }\n\n return url;\n};\n\n// character setting - stat, equip simulator\nvar getChangedStats = function getChangedStats(originalStatObj, newStatObj) {\n var changedStats = {};\n\n var stat, newStat;\n for (var key in originalStatObj) {\n stat = isDefined(originalStatObj[key]) ? originalStatObj[key] : null;\n newStat = isDefined(newStatObj[key]) ? newStatObj[key] : null;\n\n if (allOf(isDefined(newStat), stat !== newStat)) changedStats[key] = newStat;\n }\n\n var changeStatsCount = 0;\n for (var k in changedStats) {\n changeStatsCount++;\n }return changeStatsCount > 0 ? changedStats : null;\n};\n\n// 2021.12 [StatModel.js] STEP_ELIXIR_POINT_BY_LEVEL = [{level: 80, point: 2 }, {level: 90, point: 2}, {level: 100, point: 3 }];\nvar getPlusElixirPointByLevel = function getPlusElixirPointByLevel(level, level_init, plusElixirPointByLevel) {\n var _plusElixirPoint = 0;\n if ((level - level_init) % 2 === 0) {\n _plusElixirPoint = 1;\n }\n each(plusElixirPointByLevel, function (obj) {\n if (parseInt(obj.level) === parseInt(level)) {\n _plusElixirPoint = parseInt(obj.point);\n }\n });\n // console.log( '=> util.js _plusElixirPoint : ', _plusElixirPoint );\n return _plusElixirPoint;\n};\n\n// 2019.11 엘릭서를 사용할 수 없는 레벨 체크 50 이상이면 가능함 _.statData.level - _.model.LEVEL_INIT\nvar isLevelCanConsumeElixirStat = function isLevelCanConsumeElixirStat(level, perLevelPlusElixirPoint) {\n return level >= 0 ? true : false;\n // return (level % perLevelPlusElixirPoint === 0) ? true : false;\n};\n\nvar isLevelGetElixirPoint = function isLevelGetElixirPoint(level, perLevelPlusElixirPoint) {\n // 2019.11\n return level % perLevelPlusElixirPoint === 0 ? true : false;\n};\n\n// STAT_MAX_BY_LEVEL 2021.\nvar getStatMaxByLevel = function getStatMaxByLevel(level, statMaxByLevel) {\n var _statMax = 50;\n each(statMaxByLevel, function (obj) {\n if (parseInt(obj.level) <= level) {\n _statMax = parseInt(obj.max);\n }\n });\n // console.log( '=> util.js getStatMaxByLevel() _statMax : ', _statMax );\n return _statMax;\n};\n\nvar isWarrior = function isWarrior(classId) {\n if (parseInt10(classId) === 7) return true;\n\n return false;\n};\n\nvar getClassName = function getClassName(classId) {\n var CLASS_NAMES_KOR = ['군주', '기사', '요정', '마법사', '다크엘프', '용기사', '환술사', '전사', '검사', '창기사'];\n\n var className = CLASS_NAMES_KOR[parseInt10(classId)];\n if (not(isDefined)(className)) className = '';\n\n return className;\n};\n\nvar removeEquipInEquips = function removeEquipInEquips(equips, equipItemObj) {\n if (!Array.isArray(equips)) throw new TypeError('arr parameter type of removeEquipInEquips() must be Array.');\n\n var clonedEquips = equips.slice();\n\n var equip = void 0;\n for (var i = 0, max = clonedEquips.length; i < max; i++) {\n equip = clonedEquips[i];\n\n if (allOf(isDefined(equip), equip.id === equipItemObj.id, equip.name === equipItemObj.name, equip.slot === equipItemObj.slot)) {\n clonedEquips.splice(i, 1);\n break;\n }\n }\n\n return clonedEquips;\n};\n\nvar isPetNecklace = function isPetNecklace(itemId) {\n return itemId === __WEBPACK_IMPORTED_MODULE_1__model_model__[\"a\" /* PET_NECKLACE_ID */] ? true : false;\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.5.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(7);\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_util__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_service__ = __webpack_require__(23);\n\n\n\n\n(function ($, global) {\n \"use strict\";\n\n nc.lineage.cartoonSeries = function (options) {\n if (!options) return;\n var option = $.extend({\n wrap: null,\n data: null,\n apiPath: '',\n device: '' || 'mobile',\n category: null,\n global: global || window\n }, options);\n var _categoryIndex;\n\n init();\n\n function init() {\n // render by data, condition\n // setInstance(option.data);\n console.log('# cartoon-series.js init');\n\n Object(__WEBPACK_IMPORTED_MODULE_1__utils_service__[\"a\" /* getDatasWithOption */])([{\n type: 'GET',\n url: option.apiPath + '/conti/getContent?service=lineage&alias=cartoon-series&lang=ko-KR',\n dataType: 'json',\n contentType: 'application/json',\n Accept: 'application/json'\n }], function (data) {\n console.log('cartoon-series.js data : ', JSON.parse(data.jsonData));\n if (data.jsonData.length <= 0) {\n setNoData();\n } else {\n setInstance(JSON.parse(data.jsonData));\n }\n }, function (data) {\n console.log('데이터를 불러올 수 없습니다. 잠시 후, 다시 시도해주세요.');\n });\n }\n function setNoData() {\n $(option.wrap[0]).empty().append(\"
-
\");\n }\n\n function setInstance(data) {\n var _data = void 0,\n _currentData = {};\n _data = data;\n\n var LIVE_boardCategoryMap = [{ \"에피소드0 시즌2\": \"5ec50d7c82915c0001ace18c\" }, { \"에피소드0 시즌1\": \"5ec50d7c82915c0001ace18d\" }, { \"린 글리쉬\": \"5ec50d7c82915c0001ace18e\" }, { \"축데이\": \"5ec50d7c82915c0001ace18f\" }, { \"아덴 훌쩍 여행\": \"5ec50d7c82915c0001ace190\" }, { \"로드 오브 리니지\": \"5ec50d7c82915c0001ace191\" }, { \"리니지 다반사\": \"5ec50d7c82915c0001ace192\" }, { \"새트의 아덴 탐험기\": \"5ec50d7c82915c0001ace193\" }, { \"신들의 이야기\": \"5ec50d7c82915c0001ace194\" }, { \"인간의 이야기\": \"5ec50d7c82915c0001ace195\" }, { \"오만의 탑\": \"5ec50d7c82915c0001ace196\" }];\n var getBoardCategoryMap = window._serviceEnv == 'LIVE' ? window._boardCategoryMap : LIVE_boardCategoryMap;\n\n var getInitCategory = Object(__WEBPACK_IMPORTED_MODULE_0__utils_util__[\"a\" /* getObjectHasProperty */])(getBoardCategoryMap, \"축데이\");\n var initCategory = option.category || getInitCategory;\n\n console.log('# board-series.js setInstance() initCategory : ', initCategory);\n\n $.each(data.items, function (i) {\n if (this.category == initCategory) {\n _currentData = this;\n _currentData.index = i;\n }\n });\n\n _data.current = initCategory;\n _categoryIndex = _currentData.index;\n _data.currentTitle = _currentData.title;\n _data.currentSeries = _currentData.series;\n\n console.log('setInstance : initCategory, _data.current ', initCategory, _data.current);\n\n var tmpl_innerlist = data.items.map(function (item, i) {\n return \"\\n
  • \" + item.title + \"
  • \\n \";\n }).join('');\n\n var tmpl_list = \"\\n
    \\n
    \" + _currentData.title + \"
    \\n \\n
    \\n \";\n var tmpl_intro = \"\\n
    \\n
    \\n
    \" + _currentData.title + \"
    \\n
    \" + _currentData.writer + \"\" + _currentData.date + \"
    \\n
    \" + _currentData.desc + \"
    \\n
    \\n \\uCD5C\\uADFC \\uD68C \\uBCF4\\uAE30\\n \\uCCAB \\uD68C \\uBCF4\\uAE30\\n \" + (option.device !== 'ingame' ? '
    ' : '') + \"\\n
    \\n
    \\n \";\n\n $(option.wrap[0]).append(tmpl_list);\n $(option.wrap[1]).append(tmpl_intro);\n\n if (option.device !== 'ingame') {\n var share = new window.ncui.share({\n snsOrder: ['facebook', 'copy', 'twitter'],\n title: '글을 SNS에 공유해보세요.',\n dimmed: true,\n useNavigatorShare: true,\n shareUrl: window.location.href,\n btnShareTrigger: {\n selector: '.btn-share',\n staticDistanceFromBtnToLayer: [-200, 20]\n }\n });\n }\n\n if (option.device === 'pc' || option.device === 'launcher' || option.device === 'ingame') {\n /* 여기부터 */\n responsiveObj.slidesToScroll = 1;\n\n $('#rollCartoonCategory').slick({\n dots: true,\n arrows: true,\n infinite: false,\n slidesToShow: responsiveObj['default'].slidesToShow,\n slidesToScroll: responsiveObj.slidesToScroll,\n // initialSlide: _categoryIndex,\n responsive: [{\n breakpoint: responsiveObj['max'].breakpoint,\n settings: {\n slidesToShow: responsiveObj['max'].slidesToShow\n }\n }, {\n breakpoint: responsiveObj['pc'].breakpoint,\n settings: {\n slidesToShow: responsiveObj['pc'].slidesToShow\n }\n }, {\n breakpoint: responsiveObj['tablet'].breakpoint,\n settings: {\n slidesToShow: responsiveObj['tablet'].slidesToShow\n }\n }]\n });\n\n getslidesToShow(_categoryIndex);\n $(window).resize(function () {\n $('#rollCartoonCategory').slick('setPosition');\n getslidesToShow(_categoryIndex);\n });\n\n /*$(window).resize(function() {\r\n $('#rollCartoonCategory').slick('setPosition');\r\n let current = $('#rollCartoonCategory').slick('slickCurrentSlide');\r\n $('#rollCartoonCategory').slick('slickGoTo', current );\r\n });*/\n } else {\n // mobile device\n\n var dropdownIndex = 0;\n var dropdown = nc.lineage.dropdown({\n wrap: $('.ui-dropdown-cartoon'),\n activateIndex: dropdownIndex,\n activateCallback: function activateCallback(obj) {\n location.href = $(obj.btn).find(\"a\").attr(\"href\");\n }\n });\n }\n }\n function showLoadingBar(flag) {\n if (flag) {\n $('.loading-bar').show();\n } else {\n $('.loading-bar').hide();\n }\n }\n };\n\n var responsiveObj = {\n 'default': {\n breakpoint: 1920,\n slidesToShow: 7\n },\n 'max': {\n breakpoint: 1260,\n slidesToShow: 5\n },\n 'pc': {\n breakpoint: 960,\n slidesToShow: 3\n },\n 'tablet': {\n breakpoint: 640,\n slidesToShow: 1\n }\n };\n var _categorySlideIndex;\n function getslidesToShow(_categoryIndex) {\n if (responsiveObj['max'].breakpoint < window.innerWidth) {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['default'].slidesToShow + 1);\n } else if (responsiveObj['pc'].breakpoint < window.innerWidth && window.innerWidth <= responsiveObj['max'].breakpoint) {\n if (_categoryIndex == 7) {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 1);\n } else if (_categoryIndex == 6) {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 2);\n } else {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 3);\n }\n } else if (responsiveObj['tablet'].breakpoint < window.innerWidth && window.innerWidth <= responsiveObj['pc'].breakpoint) {\n if (_categoryIndex >= 7) {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['pc'].slidesToShow + 1);\n } else {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['pc'].slidesToShow + 2);\n }\n } else {\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['tablet'].slidesToShow + 1);\n }\n $('#rollCartoonCategory').slick('slickGoTo', _categorySlideIndex);\n }\n})(jQuery, window);\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(9), __esModule: true };\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(10);\nmodule.exports = __webpack_require__(4).Number.isInteger;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.3 Number.isInteger(number)\nvar $export = __webpack_require__(11);\n\n$export($export.S, 'Number', { isInteger: __webpack_require__(21) });\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(3);\nvar core = __webpack_require__(4);\nvar ctx = __webpack_require__(12);\nvar hide = __webpack_require__(14);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(13);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(15);\nvar createDesc = __webpack_require__(20);\nmodule.exports = __webpack_require__(1) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(16);\nvar IE8_DOM_DEFINE = __webpack_require__(17);\nvar toPrimitive = __webpack_require__(19);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(1) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(0);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(1) && !__webpack_require__(5)(function () {\n return Object.defineProperty(__webpack_require__(18)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(0);\nvar document = __webpack_require__(3).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(0);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.3 Number.isInteger(number)\nvar isObject = __webpack_require__(0);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export BREAKPOINTS */\n/* unused harmony export DAYS */\n/* unused harmony export API_DOMAIN_DEFAULT */\n/* unused harmony export API_COMMUNITY_DOMAIN */\n/* unused harmony export STATIC_DOMAIN_DEFAULT */\n/* unused harmony export STATIC_CDN_DOMAIN_DEFAULT */\n/* unused harmony export NO_ITEM_IMAGE_URL */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PET_NECKLACE_ID; });\nvar BREAKPOINTS = {\n tablet: 640,\n pc: 960,\n max: 1340\n};\n\nvar DAYS = {\n 'Sunday': '일',\n 'Monday': '월',\n 'Tuesday': '화',\n 'Wednesday': '수',\n 'Thursday': '목',\n 'Friday': '금',\n 'Saturday': '토'\n};\n\nvar API_DOMAIN_DEFAULT = 'https://api-lineage.plaync.com';\n\nvar API_COMMUNITY_DOMAIN = 'https://api-commnity.plaync.com/lineage1';\n\nvar STATIC_DOMAIN_DEFAULT = 'https://assets.playnccdn.com'; // https://wstatic.plaync.co.kr';\n\nvar STATIC_CDN_DOMAIN_DEFAULT = 'https://wstatic-cdn.plaync.com';\n\nvar NO_ITEM_IMAGE_URL = STATIC_DOMAIN_DEFAULT + '/lineage/v1/img/world/item/noimg.gif';\n\nvar PET_NECKLACE_ID = 25668;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export getDatas */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getDatasWithOption; });\n/* unused harmony export handleApiError */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__model_msg_alert__ = __webpack_require__(24);\n\n\nvar getDatas = function getDatas(urls, resolvedCallback, rejectedCallback) {\n var promises = [];\n\n for (var i = 0, max = urls.length; i < max; i++) {\n var promise = $.ajax({\n type: 'GET',\n url: urls[i],\n dataType: 'json'\n });\n promises.push(promise);\n }\n\n $.when.apply($, promises).then(resolvedCallback).fail(rejectedCallback);\n};\n\nvar getDatasWithOption = function getDatasWithOption(jQueryAjaxOptions, resolvedCallback, rejectedCallback) {\n var promises = [];\n\n for (var i = 0, max = jQueryAjaxOptions.length; i < max; i++) {\n var promise = $.ajax(jQueryAjaxOptions[i]);\n promises.push(promise);\n }\n\n $.when.apply($, promises).then(resolvedCallback).fail(rejectedCallback);\n};\n\nvar handleApiError = function handleApiError(apiResultData) {\n var global = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n\n if (apiResultData) {\n if (parseInt(apiResultData.status, 10) === 401) {\n // http://git.korea.ncsoft.corp/projects/FRONTEND_DEVELOP/repos/uikit-nccommunity/browse/_src/js/lang.js\n global.alert(__WEBPACK_IMPORTED_MODULE_0__model_msg_alert__[\"a\" /* ALERT */].REQUIRE_LOGIN);\n\n if (typeof global.GNBLogin === 'function') {\n global.GNBLogin();\n\n return true;\n }\n }\n }\n\n return false;\n};\n\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ALERT; });\nvar ALERT = {\n REQUIRE_LOGIN: '로그인 후 이용하실 수 있습니다.'\n};\n\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// board/cartoon-series.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 256843daf2696db2eb91","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 0\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 1\n// module chunks = 0","/*\r\n * common utils\r\n */\r\n\r\nimport {PET_NECKLACE_ID} from '../model/model';\r\n\r\nexport const ua = window.navigator.userAgent;\r\n\r\nexport const locationOriginRegex = /^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})/;\r\n\r\nexport let isIE = (function () {\r\n return /msie/i.test(ua) || /trident/i.test(ua);\r\n}());\r\n\r\nexport let isEdge = (userAgent) => {\r\n return ( /Gecko/i.test(userAgent) && /Edge/i.test(userAgent) );\r\n};\r\n\r\nexport let isOpera = (userAgent) => {\r\n return ( /Opera/i.test(userAgent) || /OPR\\//i.test(userAgent) );\r\n};\r\n\r\nexport let isChrome = (userAgent) => {\r\n return ( !isEdge(userAgent) && !isOpera(userAgent) && /Chrome/i.test(userAgent) );\r\n};\r\n\r\nexport let isIOS = (userAgent) => {\r\n return /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;\r\n};\r\n\r\nexport let isAndroid = (userAgent) => {\r\n return /android/i.test(userAgent);\r\n};\r\n\r\nexport let truthy = function truthy(object) {\r\n return !!object;\r\n};\r\n\r\nexport let falsy = function falsy(object) {\r\n return !!!object;\r\n};\r\n\r\nexport let existy = (obj) => {\r\n return obj != null;\r\n};\r\n\r\nexport let isDefined = (obj) => {\r\n let flag = true;\r\n if (obj === null || typeof obj === 'undefined') return false;\r\n return flag;\r\n};\r\n\r\nexport let isRc = (function () {\r\n return isDefined(/^rc-/.exec(location.hostname));\r\n}());\r\n\r\nexport let isInteger = (obj) => {\r\n if (!isDefined(obj) || obj.constructor !== Number) return false;\r\n\r\n // https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\r\n return (isFinite(obj) && Math.floor(obj) === obj);\r\n};\r\n\r\nexport let isString = (obj) => {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === String);\r\n};\r\n\r\nexport let isNumber = function isNumber(obj) {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === Number);\r\n};\r\n\r\nexport let isBoolean = (obj) => {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === Boolean);\r\n};\r\n\r\nexport let isObject = (obj) => {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === Object);\r\n};\r\n\r\nexport let isFunction = (obj) => {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === Function);\r\n};\r\n\r\nexport let isRegExp = (obj) => {\r\n if (!isDefined(obj)) return false;\r\n return (obj.constructor === RegExp);\r\n};\r\n\r\nexport let not = (func) => {\r\n if (!isFunction(func)) throw new TypeError('func parameter type of not() must be Function.');\r\n\r\n return (object) => {\r\n return !func(object);\r\n };\r\n};\r\n\r\nexport let isNotDefined = not(isDefined);\r\n\r\nexport let parseInt10 = (number) => {\r\n return parseInt(number, 10);\r\n};\r\n\r\nexport let parseStrIntToInt = (strIntOrInt) => {\r\n let val = strIntOrInt;\r\n\r\n if (!isDefined(val)) return 0;\r\n if (typeof(val) === 'number') return val;\r\n\r\n return parseInt10(val.split(',').join(''));\r\n};\r\n\r\nexport let removeElementInArray = function removeElementInArray(arr, target) {\r\n if (!Array.isArray(arr)) throw new TypeError('arr parameter type of removeElementInArray() must be Array.');\r\n\r\n var clonedArr = arr.slice(0),\r\n index = clonedArr.indexOf(target);\r\n\r\n if (index >= 0) clonedArr.splice(index, 1);\r\n\r\n return clonedArr;\r\n};\r\n\r\nexport let allOf = function allOf(/*args*/) {\r\n const args = Array.prototype.slice.call(arguments);\r\n\r\n return args.every(function (val) {\r\n return (val === true);\r\n });\r\n};\r\n\r\nexport let anyOf = function anyOf(/*args*/) {\r\n const args = Array.prototype.slice.call(arguments);\r\n\r\n return args.some(function (val) {\r\n return (val === true);\r\n });\r\n};\r\n\r\nexport let getDefined = function (val, defaultVal) {\r\n return (isDefined(val)) ? val : defaultVal;\r\n};\r\n\r\nexport let notSingleEle = not(($ele) => {\r\n return $ele.length === 1;\r\n});\r\n\r\nexport let each = (dataCanLoop, func, context) => {\r\n let _context = (existy(context)) ? context : null;\r\n\r\n if (!(Array.isArray(dataCanLoop) || isString(dataCanLoop))) throw new TypeError('dataCanLoop parameter type of each() must be Array or String.');\r\n\r\n let result = false;\r\n for (let i = 0, max = dataCanLoop.length; i < max; i++) {\r\n result = func.call(_context, dataCanLoop[i]);\r\n if (result === false) break;\r\n }\r\n};\r\n\r\nexport let getFileExtension = (fileName) => {\r\n if (!isString(fileName)) throw new TypeError('getFileExtension() requires String parameter.');\r\n\r\n if (fileName.length <= 0) return '';\r\n\r\n var lastDotIndex = fileName.lastIndexOf('.'),\r\n extension = fileName.substr(lastDotIndex + 1);\r\n\r\n return extension;\r\n};\r\n\r\nexport let getFirstObjectHasProperty = function (arrayHasObjects, propertyKey, findPropertyValueOrRegex) {\r\n if (!Array.isArray(arrayHasObjects) || arrayHasObjects.length <= 0) return null;\r\n if (!isString(propertyKey)) return null;\r\n\r\n let obj, result = null;\r\n for (let i = 0, max = arrayHasObjects.length; i < max; ++i) {\r\n obj = arrayHasObjects[i];\r\n if (!obj.hasOwnProperty(propertyKey)) continue;\r\n\r\n if (isRegExp(findPropertyValueOrRegex)) {\r\n if (findPropertyValueOrRegex.test(obj[propertyKey])) {\r\n result = obj;\r\n break;\r\n }\r\n } else {\r\n if (obj[propertyKey] === findPropertyValueOrRegex) {\r\n result = obj;\r\n break;\r\n }\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport let getObjectHasProperty = function getObjectHasProperty(arrayHasObjects, propertyKey ) {\r\n if (!Array.isArray(arrayHasObjects) || arrayHasObjects.length <= 0) return null;\r\n if (!isString(propertyKey)) return null;\r\n let obj, result = null;\r\n\r\n each(arrayHasObjects, (obj) => {\r\n if(obj.hasOwnProperty(propertyKey)) result = obj[propertyKey];\r\n });\r\n // console.log( '=> util.js getObjectHasProperty() result : ', propertyKey, result );\r\n return result;\r\n};\r\n\r\n\r\nexport let overlappedConditionSortByProperty = function sortByProp(_datas, _conditions, _conditionIndex) {\r\n let datas = Array.prototype.slice.call(_datas);\r\n\r\n if (!_conditions || _conditions.constructor !== Array || _conditions.length < 0) return datas;\r\n\r\n let conditionIndex = (_conditionIndex >= 0) ? _conditionIndex : 0,\r\n condition = _conditions[conditionIndex];\r\n\r\n if (conditionIndex <= 0) datas.sort(condition.func);\r\n\r\n if (_conditions.length <= 1) return datas;\r\n\r\n if (conditionIndex < _conditions.length - 1) {\r\n let prevProperty = condition.property,\r\n nextConditionIndex = conditionIndex + 1,\r\n nextCondition = _conditions[nextConditionIndex];\r\n\r\n let memoObj = {},\r\n memoArr = [],\r\n arr = [];\r\n\r\n let obj, prop;\r\n for (let i = 0, max = datas.length; i < max; i++) {\r\n obj = datas[i];\r\n prop = String(obj[prevProperty]);\r\n\r\n if (!memoObj[prop]) {\r\n memoObj[prop] = [];\r\n memoArr.push(memoObj[prop]);\r\n }\r\n\r\n arr = memoObj[prop];\r\n arr.push(obj);\r\n }\r\n\r\n for (let j = 0, len = memoArr.length; j < len; j++) {\r\n arr = memoArr[j];\r\n arr.sort(nextCondition.func);\r\n\r\n memoArr[j] = overlappedConditionSortByProperty(arr, _conditions, nextConditionIndex);\r\n }\r\n\r\n let resultArr = memoArr.reduce((acc, curVal, curIndex, array) => acc.concat(curVal));\r\n\r\n return resultArr;\r\n }\r\n\r\n return datas;\r\n}\r\n\r\n\r\nexport let getPositionFromTranslateStr = (str) => {\r\n let obj = {x: 0, y: 0};\r\n if (!isDefined(str)) return obj;\r\n\r\n let values = str.match(/[+-]?(\\d*\\.)?\\d+/g);\r\n if (values.length <= 0) return obj;\r\n\r\n if (/translateX/g.test(str)) {\r\n obj.x = parseFloat(values[0]);\r\n return obj;\r\n }\r\n\r\n if (/translateY/g.test(str)) {\r\n obj.y = parseFloat(values[0]);\r\n return obj;\r\n }\r\n\r\n obj.x = parseFloat(values[0]);\r\n if (values.length > 1) obj.y = parseFloat(values[1]);\r\n\r\n return obj;\r\n};\r\n\r\nexport let isIndexInLoop = function isIndexInLoop(totalLength, loopGap, firstIndex, searchIndex) {\r\n const args = Array.prototype.slice.call(arguments);\r\n if (args.length < 4) throw Error('isIndexInLoop function requires 4 arguments.');\r\n\r\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(firstIndex) || !isInteger(searchIndex)) {\r\n throw Error('arguments must be Integer Number.');\r\n }\r\n if (totalLength < 1 || firstIndex < 1) {\r\n throw Error('totalLength and startIndex can not smaller than 1.');\r\n }\r\n if (loopGap > totalLength) {\r\n throw Error('loopGap can not bigger than totalLength.');\r\n }\r\n\r\n let index = firstIndex;\r\n for (let i = 0; i < loopGap; i++) {\r\n if (index === searchIndex) return true;\r\n index = (index + 1 > totalLength) ? 1 : index + 1;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport let getLoopedLastIndex = function getLoopedLastIndex(totalLength, loopGap, firstIndex) {\r\n const args = Array.prototype.slice.call(arguments);\r\n if (args.length < 3) throw Error('getLoopedLastIndex function requires 3 arguments.');\r\n\r\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(firstIndex)) {\r\n throw Error('arguments must be Integer Number.');\r\n }\r\n if (totalLength < 1 || firstIndex < 1) {\r\n throw Error('totalLength and firstIndex can not smaller than 1.');\r\n }\r\n if (loopGap > totalLength || firstIndex > totalLength) {\r\n throw Error('loopGap and firstIndex can not bigger than totalLength.');\r\n }\r\n\r\n let index = firstIndex;\r\n for (let i = 0; i < loopGap - 1; i++) {\r\n index++;\r\n if (index > totalLength) index = 1;\r\n }\r\n return index;\r\n};\r\n\r\nexport let getReverseLoopedFirstIndex = function getReverseLoopedFirstIndex(totalLength, loopGap, lastIndex) {\r\n const args = Array.prototype.slice.call(arguments);\r\n if (args.length < 3) throw Error('getReverseLoopedFirstIndex function requires 3 arguments.');\r\n\r\n if (!isInteger(totalLength) || !isInteger(loopGap) || !isInteger(lastIndex)) {\r\n throw Error('arguments must be Integer Number.');\r\n }\r\n if (totalLength < 1 || lastIndex < 1) {\r\n throw Error('totalLength and lastIndex can not smaller than 1.');\r\n }\r\n if (loopGap > totalLength || lastIndex > totalLength) {\r\n throw Error('loopGap and lastIndex can not bigger than totalLength.');\r\n }\r\n\r\n let index = lastIndex;\r\n for (let i = 0; i < loopGap - 1; i++) {\r\n index = (index - 1 < 1) ? totalLength : index - 1;\r\n }\r\n\r\n return index;\r\n};\r\n\r\nexport let getResolution = (breakpoint = {tablet: 640, pc: 960, max: 1260}, global = window) => {\r\n let resolution = '';\r\n if (breakpoint.max && global.innerWidth >= breakpoint.max) {\r\n resolution = 'max';\r\n\r\n } else if (breakpoint.pc && global.innerWidth >= breakpoint.pc) {\r\n resolution = 'pc';\r\n\r\n } else if (breakpoint.tablet && global.innerWidth >= breakpoint.tablet) {\r\n resolution = 'tablet';\r\n\r\n } else {\r\n resolution = 'phone';\r\n }\r\n\r\n return resolution;\r\n};\r\n\r\nexport let isPhoneResolution = (resolution) => {\r\n return resolution === 'phone';\r\n};\r\n\r\nexport let isTabletResolution = (resolution) => {\r\n return resolution === 'tablet';\r\n};\r\n\r\nexport let isMobileResolution = (resolution) => {\r\n return ( resolution === 'phone' || resolution === 'tablet');\r\n};\r\n\r\n// http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\nexport let numberWithCommas = (number) => {\r\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n};\r\n\r\nexport let getUriParams = (uri) => {\r\n if (uri.length < 1) return null;\r\n let str = uri.split('#')[0];\r\n\r\n let tmpArr = str.split('?');\r\n if (tmpArr.length < 2) return null;\r\n\r\n let paramStr = tmpArr[1],\r\n params = paramStr.split('&');\r\n\r\n let keyValueArr, obj = {};\r\n for (let i = 0, max = params.length; i < max; ++i) {\r\n keyValueArr = params[i].split('=');\r\n if (keyValueArr.length > 1) obj[keyValueArr[0]] = keyValueArr[1];\r\n\r\n // if (keyValueArr.length <= 1) return null;\r\n // obj[keyValueArr[0]] = keyValueArr[1];\r\n }\r\n return obj;\r\n};\r\n\r\nexport let getUriCombinedParams = (uri, params) => {\r\n if (!uri) return '';\r\n if (!params) return uri;\r\n\r\n let str = '';\r\n for (let key in params) {\r\n str += '&' + key + '=' + String(params[key]);\r\n }\r\n if (str === '') return uri;\r\n\r\n var tmpArr = uri.split('#'),\r\n uri = tmpArr[0],\r\n hashStr = (isDefined(tmpArr[1])) ? '#' + tmpArr[1] : '';\r\n\r\n uri = ((uri.indexOf('?') >= 0) ? (uri + str) : (uri + '?' + str.substr(1))) + hashStr;\r\n return uri;\r\n};\r\n\r\nexport let getHashParams = (hashStr) => {\r\n let str = hashStr;\r\n if (str.length < 1) return null;\r\n\r\n let tmpArr = str.split('#');\r\n if (tmpArr.length < 2) return null;\r\n\r\n let paramStr = tmpArr[1],\r\n params = paramStr.split('&');\r\n\r\n let keyValueArr, obj = {};\r\n for (let i = 0, max = params.length; i < max; ++i) {\r\n keyValueArr = params[i].split('=');\r\n if (keyValueArr.length <= 1) return null;\r\n\r\n obj[keyValueArr[0]] = keyValueArr[1];\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nexport let getHashCombinedParams = (uri, params) => {\r\n if (!params) return uri;\r\n\r\n let str = '';\r\n for (let key in params) {\r\n str += '&' + key + '=' + String(params[key]);\r\n }\r\n if (str === '') return uri;\r\n\r\n uri = (uri.indexOf('#') >= 0) ? (uri + str) : (uri + '#' + str.substr(1));\r\n return uri;\r\n};\r\n\r\nexport let getObjForPagination = function (totalPostNum, displayPostNumPerPage, displayPaginationBtnNum, pageIndex) {\r\n const args = Array.prototype.slice.call(arguments);\r\n\r\n if (args.length < 4) throw new Error('getObjForPagination() requires 4 parameters.');\r\n\r\n if (!isInteger(totalPostNum) || !isInteger(displayPostNumPerPage) || !isInteger(displayPaginationBtnNum) || !isInteger(pageIndex)) {\r\n throw new TypeError('getObjForPagination() requires Integer Number parameters.');\r\n }\r\n if (totalPostNum <= 0 || displayPostNumPerPage <= 0 || displayPaginationBtnNum <= 0 || pageIndex <= 0) {\r\n throw new TypeError('getObjForPagination() requires positive Integer Number parameters.');\r\n }\r\n\r\n let totalPageNum = Math.ceil(totalPostNum / displayPostNumPerPage);\r\n if (pageIndex < 1) pageIndex = 1;\r\n if (pageIndex > totalPageNum) pageIndex = totalPageNum;\r\n\r\n let paginationBtnGroupIndex = Math.floor((pageIndex - 1) / displayPaginationBtnNum),\r\n prevPageIndex = paginationBtnGroupIndex * displayPaginationBtnNum,\r\n firstPageIndex = (paginationBtnGroupIndex * displayPaginationBtnNum) + 1,\r\n lastPageIndex = firstPageIndex + displayPaginationBtnNum - 1,\r\n nextPageIndex = lastPageIndex + 1;\r\n\r\n if (lastPageIndex > totalPageNum) lastPageIndex = totalPageNum;\r\n if (nextPageIndex > totalPageNum) nextPageIndex = 0;\r\n\r\n return {\r\n totalPostNum: totalPostNum,\r\n displayPostNumPerPage: displayPostNumPerPage,\r\n displayPaginationBtnNum: displayPaginationBtnNum,\r\n pageIndex: pageIndex,\r\n\r\n totalPageNum: totalPageNum,\r\n prevPageIndex: prevPageIndex,\r\n firstPageIndex: firstPageIndex,\r\n lastPageIndex: lastPageIndex,\r\n nextPageIndex: nextPageIndex\r\n };\r\n};\r\n\r\nexport let getDivideIntStrByThousandUnit = (intStr_) => {\r\n if (not(isDefined)(intStr_)) return ['0'];\r\n\r\n const DIVIDE_UNIT = 4;\r\n\r\n let intStr = String(parseStrIntToInt(intStr_)),\r\n intStrs = [];\r\n\r\n if (intStr.length <= DIVIDE_UNIT) return [String(intStr)];\r\n\r\n let lastIndex = 0, unitStr = '';\r\n while (intStr.length > DIVIDE_UNIT) {\r\n lastIndex = intStr.length;\r\n unitStr = intStr.substr(lastIndex - DIVIDE_UNIT, lastIndex);\r\n\r\n intStr = intStr.substr(0, lastIndex - DIVIDE_UNIT);\r\n intStrs.unshift(unitStr);\r\n }\r\n intStrs.unshift(intStr);\r\n\r\n return intStrs;\r\n};\r\n\r\nexport let getMarketPriceStr = (str) => {\r\n const UNIT_PRICE = ['', '만', '억'];\r\n\r\n let val = ( isDefined(str) ) ? str : '0',\r\n unitValues = getDivideIntStrByThousandUnit(val);\r\n\r\n unitValues.reverse();\r\n\r\n let priceStr = '', unitVal = 0;\r\n for (let i = 0, max = unitValues.length; i < max; i++) {\r\n unitVal = parseInt10(unitValues[i]);\r\n if (unitVal <= 0) continue;\r\n\r\n priceStr = (numberWithCommas(unitVal) + UNIT_PRICE[i]) + priceStr;\r\n if (i !== unitValues.length) priceStr = ' ' + priceStr;\r\n }\r\n priceStr = priceStr.trim();\r\n\r\n if (!priceStr) return '0';\r\n return priceStr;\r\n};\r\n\r\nexport let getEmphasizedStrByQuery = (str, query) => {\r\n return (str || '').split(query).join(`${query}`);\r\n};\r\n\r\nexport let getSeparatedDateStr = (moment, dateStr, DAYS = {\r\n 'Sunday': '일',\r\n 'Monday': '월',\r\n 'Tuesday': '화',\r\n 'Wednesday': '수',\r\n 'Thursday': '목',\r\n 'Friday': '금',\r\n 'Saturday': '토'\r\n}) => {\r\n let val = '';\r\n\r\n const MIN_TO_SEC = 60,\r\n HOUR_TO_SEC = 3600,\r\n DAY_TO_SEC = 86400;\r\n\r\n const now = new Date(),\r\n past = new Date(dateStr),\r\n diffSeconds = Math.floor((now - past) / 1000);\r\n\r\n if (diffSeconds < DAY_TO_SEC) {\r\n if (diffSeconds < HOUR_TO_SEC) {\r\n if (diffSeconds < MIN_TO_SEC) {\r\n val = `${diffSeconds}초 전`;\r\n\r\n } else {\r\n const diffMinutes = Math.floor(diffSeconds / MIN_TO_SEC);\r\n val = `${diffMinutes}분 전`;\r\n }\r\n\r\n } else {\r\n const diffHours = Math.floor(diffSeconds / HOUR_TO_SEC);\r\n val = `${diffHours}시간 전`;\r\n }\r\n\r\n } else {\r\n const date = moment(dateStr),\r\n day = (DAYS[date.format('dddd')] || '');\r\n\r\n val = date.format(`YYYY-MM-DD`);\r\n // val = date.format(`YYYY.MM.DD. (${day})`);\r\n }\r\n\r\n return val;\r\n};\r\n\r\nexport let namespace = (namespace, parent) => {\r\n if (!isString(namespace)) throw new TypeError('namespace parameter type of namespace() must be String.');\r\n if (!(isObject(parent) || !isDefined(parent))) throw new TypeError('parent parameter type of namespace() must be Object or null or undefined.');\r\n\r\n let ns = parent || window;\r\n\r\n if (namespace) {\r\n let parts = namespace.split('.');\r\n\r\n for (let i = 0, max = parts.length; i < max; i++) {\r\n if (!ns[parts[i]]) ns[parts[i]] = {};\r\n ns = ns[parts[i]];\r\n }\r\n }\r\n\r\n return ns;\r\n};\r\n\r\nexport let template = function template(strings, ...keys) {\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals\r\n return (function (...values) {\r\n let dict = values[values.length - 1] || {};\r\n\r\n let result = [strings[0]];\r\n keys.forEach(function (key, i) {\r\n let value = Number.isInteger(key) ? values[key] : dict[key];\r\n result.push(value, strings[i + 1]);\r\n });\r\n\r\n return result.join('');\r\n });\r\n};\r\n\r\n// board - server list\r\nexport let getUrlAddCategoryIdByArticle = function(_url, _article, _serverNameMap) {\r\n let url = _url;\r\n\r\n if (url !== '#') {\r\n const path = url.split('?')[0],\r\n uriParams = getUriParams(url);\r\n\r\n let categoryId = (isObject(_article.category)) ? _article.category.categoryId : uriParams.categoryId;\r\n\r\n if (isNotDefined(categoryId)) {\r\n // const obj = getFirstObjectHasProperty(_serverNameMap, 'serverId', 1) || _serverNameMap[0];\r\n // categoryId = obj.categoryId;\r\n categoryId = 0;\r\n }\r\n\r\n url = getUriCombinedParams(path, $.extend(uriParams, {categoryId: categoryId}));\r\n }\r\n\r\n return url;\r\n}\r\n\r\n// character setting - stat, equip simulator\r\nexport let getChangedStats = function (originalStatObj, newStatObj) {\r\n let changedStats = {};\r\n\r\n var stat, newStat;\r\n for (let key in originalStatObj) {\r\n stat = (isDefined(originalStatObj[key])) ? originalStatObj[key] : null;\r\n newStat = (isDefined(newStatObj[key])) ? newStatObj[key] : null;\r\n\r\n if (allOf(isDefined(newStat), stat !== newStat)) changedStats[key] = newStat;\r\n }\r\n\r\n let changeStatsCount = 0;\r\n for (let k in changedStats) changeStatsCount++;\r\n\r\n return (changeStatsCount > 0) ? changedStats : null;\r\n};\r\n\r\n// 2021.12 [StatModel.js] STEP_ELIXIR_POINT_BY_LEVEL = [{level: 80, point: 2 }, {level: 90, point: 2}, {level: 100, point: 3 }];\r\nexport let getPlusElixirPointByLevel = function (level, level_init, plusElixirPointByLevel ) {\r\n let _plusElixirPoint = 0;\r\n if ( (level - level_init) % 2 === 0 ) {\r\n _plusElixirPoint = 1;\r\n }\r\n each(plusElixirPointByLevel, (obj) => {\r\n if( parseInt(obj.level) === parseInt(level) ) {\r\n _plusElixirPoint = parseInt(obj.point);\r\n }\r\n });\r\n // console.log( '=> util.js _plusElixirPoint : ', _plusElixirPoint );\r\n return _plusElixirPoint;\r\n};\r\n\r\n// 2019.11 엘릭서를 사용할 수 없는 레벨 체크 50 이상이면 가능함 _.statData.level - _.model.LEVEL_INIT\r\nexport let isLevelCanConsumeElixirStat = function (level, perLevelPlusElixirPoint) {\r\n return (level >= 0) ? true : false;\r\n // return (level % perLevelPlusElixirPoint === 0) ? true : false;\r\n};\r\n\r\nexport let isLevelGetElixirPoint = function (level, perLevelPlusElixirPoint) { // 2019.11\r\n return (level % perLevelPlusElixirPoint === 0) ? true : false;\r\n};\r\n\r\n// STAT_MAX_BY_LEVEL 2021.\r\nexport let getStatMaxByLevel = function (level, statMaxByLevel ) {\r\n let _statMax = 50;\r\n each(statMaxByLevel, (obj) => {\r\n if (parseInt(obj.level) <= level) {\r\n _statMax = parseInt(obj.max);\r\n }\r\n });\r\n // console.log( '=> util.js getStatMaxByLevel() _statMax : ', _statMax );\r\n return _statMax;\r\n};\r\n\r\nexport let isWarrior = function (classId) {\r\n if (parseInt10(classId) === 7) return true;\r\n\r\n return false;\r\n}\r\n\r\nexport let getClassName = function (classId) {\r\n const CLASS_NAMES_KOR = ['군주', '기사', '요정', '마법사', '다크엘프', '용기사', '환술사', '전사', '검사', '창기사'];\r\n\r\n let className = CLASS_NAMES_KOR[parseInt10(classId)];\r\n if (not(isDefined)(className)) className = '';\r\n\r\n return className;\r\n};\r\n\r\nexport let removeEquipInEquips = function (equips, equipItemObj) {\r\n if (!Array.isArray(equips)) throw new TypeError('arr parameter type of removeEquipInEquips() must be Array.');\r\n\r\n const clonedEquips = equips.slice();\r\n\r\n let equip;\r\n for (let i = 0, max = clonedEquips.length; i < max; i++) {\r\n equip = clonedEquips[i];\r\n\r\n if (allOf(isDefined(equip), equip.id === equipItemObj.id, equip.name === equipItemObj.name, equip.slot === equipItemObj.slot)) {\r\n clonedEquips.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n return clonedEquips;\r\n};\r\n\r\nexport const isPetNecklace = function(itemId) {\r\n return (itemId === PET_NECKLACE_ID) ? true : false;\r\n};\n\n\n// WEBPACK FOOTER //\n// ./_src/js/utils/util.js","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 3\n// module chunks = 0","var core = module.exports = { version: '2.5.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 4\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 5\n// module chunks = 0","import * as util from '../utils/util';\r\nimport {getObjectHasProperty} from \"../utils/util\";\r\nimport {getDatasWithOption} from \"../utils/service\";\r\n\r\n(function ($, global) {\r\n\t\"use strict\";\r\n\tnc.lineage.cartoonSeries = function (options) {\r\n\t\tif (!options) return;\r\n\t\tvar option = $.extend({\r\n\t\t\twrap: null,\r\n\t\t\tdata: null,\r\n apiPath: '',\r\n\t\t\tdevice: '' || 'mobile',\r\n\t\t\tcategory: null,\r\n\t\t\tglobal: global || window\r\n\t\t}, options);\r\n var _categoryIndex;\r\n\r\n\t\tinit();\r\n\r\n\t\tfunction init() {\r\n\t\t\t// render by data, condition\r\n\t\t\t// setInstance(option.data);\r\n console.log('# cartoon-series.js init');\r\n\r\n getDatasWithOption([{\r\n type: 'GET',\r\n url: option.apiPath +'/conti/getContent?service=lineage&alias=cartoon-series&lang=ko-KR',\r\n dataType: 'json',\r\n contentType: 'application/json',\r\n Accept: 'application/json'\r\n }], (data) => {\r\n console.log('cartoon-series.js data : ', JSON.parse(data.jsonData) );\r\n if(data.jsonData.length <= 0) {\r\n setNoData();\r\n } else {\r\n setInstance(JSON.parse(data.jsonData));\r\n }\r\n }, (data) => {\r\n console.log('데이터를 불러올 수 없습니다. 잠시 후, 다시 시도해주세요.');\r\n });\r\n\r\n\t\t}\r\n\t\tfunction setNoData() {\r\n $(option.wrap[0]).empty().append(`
    -
    `);\r\n }\r\n\r\n\t\tfunction setInstance(data) {\r\n\t\t\tlet _data, _currentData = {};\r\n\t\t\t_data = data;\r\n\r\n\t\t\tlet LIVE_boardCategoryMap = [{\"에피소드0 시즌2\":\"5ec50d7c82915c0001ace18c\"},{\"에피소드0 시즌1\":\"5ec50d7c82915c0001ace18d\"},{\"린 글리쉬\":\"5ec50d7c82915c0001ace18e\"},{\"축데이\":\"5ec50d7c82915c0001ace18f\"},{\"아덴 훌쩍 여행\":\"5ec50d7c82915c0001ace190\"},{\"로드 오브 리니지\":\"5ec50d7c82915c0001ace191\"},{\"리니지 다반사\":\"5ec50d7c82915c0001ace192\"},{\"새트의 아덴 탐험기\":\"5ec50d7c82915c0001ace193\"},{\"신들의 이야기\":\"5ec50d7c82915c0001ace194\"},{\"인간의 이야기\":\"5ec50d7c82915c0001ace195\"},{\"오만의 탑\":\"5ec50d7c82915c0001ace196\"}];\r\n\t\t\tlet getBoardCategoryMap = (window._serviceEnv == 'LIVE' ) ? window._boardCategoryMap : LIVE_boardCategoryMap;\r\n\r\n\t\t\tlet getInitCategory = getObjectHasProperty(getBoardCategoryMap , \"축데이\");\r\n\t\t\tlet initCategory = option.category || getInitCategory;\r\n\r\n\t\t\tconsole.log( '# board-series.js setInstance() initCategory : ', initCategory );\r\n\r\n\t\t\t$.each( data.items , function(i){\r\n\t\t\t\tif( this.category == initCategory){\r\n\t\t\t\t\t_currentData = this;\r\n\t\t\t\t\t_currentData.index = i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_data.current = initCategory;\r\n\t\t\t_categoryIndex = _currentData.index;\r\n\t\t\t_data.currentTitle = _currentData.title;\r\n\t\t\t_data.currentSeries = _currentData.series;\r\n\r\n\t\t\tconsole.log( 'setInstance : initCategory, _data.current ' , initCategory, _data.current );\r\n\r\n\r\n let tmpl_innerlist = data.items.map( (item, i) => {\r\n return `\r\n
  • ${item.title}
  • \r\n `;\r\n }).join('');\r\n\r\n let tmpl_list = `\r\n
    \r\n
    ${_currentData.title}
    \r\n \r\n
    \r\n `;\r\n let tmpl_intro = `\r\n
    \r\n
    \r\n
    ${_currentData.title}
    \r\n
    ${_currentData.writer}${_currentData.date}
    \r\n
    ${_currentData.desc}
    \r\n
    \r\n 최근 회 보기\r\n 첫 회 보기\r\n ${(option.device !== 'ingame') ? '
    ' : '' }\r\n
    \r\n
    \r\n `;\r\n\r\n\t\t\t$(option.wrap[0]).append( tmpl_list );\r\n\t\t\t$(option.wrap[1]).append( tmpl_intro );\r\n\r\n if(option.device !== 'ingame') {\r\n var share = new window.ncui.share({\r\n snsOrder: ['facebook', 'copy', 'twitter'],\r\n title: '글을 SNS에 공유해보세요.',\r\n dimmed: true,\r\n useNavigatorShare: true,\r\n shareUrl: window.location.href,\r\n btnShareTrigger: {\r\n selector: '.btn-share',\r\n staticDistanceFromBtnToLayer: [-200, 20]\r\n }\r\n });\r\n }\r\n\r\n\t\t\tif (option.device === 'pc' || option.device === 'launcher' || option.device === 'ingame' ) {\r\n /* 여기부터 */\r\n responsiveObj.slidesToScroll = 1;\r\n\r\n $('#rollCartoonCategory').slick({\r\n dots: true,\r\n arrows: true,\r\n infinite: false,\r\n slidesToShow: responsiveObj['default'].slidesToShow,\r\n slidesToScroll: responsiveObj.slidesToScroll,\r\n // initialSlide: _categoryIndex,\r\n responsive: [\r\n {\r\n breakpoint: responsiveObj['max'].breakpoint,\r\n settings: {\r\n slidesToShow: responsiveObj['max'].slidesToShow\r\n }\r\n },\r\n {\r\n breakpoint: responsiveObj['pc'].breakpoint,\r\n settings: {\r\n slidesToShow: responsiveObj['pc'].slidesToShow\r\n }\r\n },\r\n {\r\n breakpoint: responsiveObj['tablet'].breakpoint,\r\n settings: {\r\n slidesToShow: responsiveObj['tablet'].slidesToShow\r\n }\r\n }\r\n ]\r\n });\r\n\r\n getslidesToShow(_categoryIndex);\r\n $(window).resize(function() {\r\n $('#rollCartoonCategory').slick('setPosition');\r\n getslidesToShow(_categoryIndex);\r\n });\r\n\r\n /*$(window).resize(function() {\r\n $('#rollCartoonCategory').slick('setPosition');\r\n let current = $('#rollCartoonCategory').slick('slickCurrentSlide');\r\n $('#rollCartoonCategory').slick('slickGoTo', current );\r\n });*/\r\n\r\n\t\t\t} else {\r\n\t\t\t // mobile device\r\n\r\n var dropdownIndex = 0;\r\n var dropdown = nc.lineage.dropdown({\r\n wrap: $('.ui-dropdown-cartoon'),\r\n activateIndex: dropdownIndex,\r\n activateCallback: function (obj) {\r\n location.href= $(obj.btn).find(\"a\").attr(\"href\");\r\n }\r\n });\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction showLoadingBar(flag) {\r\n\t\t\tif (flag) {\r\n\t\t\t\t$('.loading-bar').show();\r\n\t\t\t} else {\r\n\t\t\t\t$('.loading-bar').hide();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n var responsiveObj = {\r\n 'default': {\r\n breakpoint: 1920,\r\n slidesToShow : 7\r\n },\r\n 'max': {\r\n breakpoint: 1260,\r\n slidesToShow : 5\r\n },\r\n 'pc': {\r\n breakpoint: 960,\r\n slidesToShow: 3\r\n },\r\n 'tablet': {\r\n breakpoint: 640,\r\n slidesToShow: 1\r\n }\r\n };\r\n var _categorySlideIndex;\r\n function getslidesToShow(_categoryIndex){\r\n if ( responsiveObj['max'].breakpoint < window.innerWidth ) {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['default'].slidesToShow + 1);\r\n } else if ( responsiveObj['pc'].breakpoint < window.innerWidth && window.innerWidth <= responsiveObj['max'].breakpoint ) {\r\n if(_categoryIndex == 7) {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 1);\r\n } else if (_categoryIndex == 6){\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 2);\r\n } else {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['max'].slidesToShow + 3);\r\n }\r\n } else if ( responsiveObj['tablet'].breakpoint < window.innerWidth && window.innerWidth <= responsiveObj['pc'].breakpoint ) {\r\n if(_categoryIndex >= 7) {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['pc'].slidesToShow + 1);\r\n }else {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['pc'].slidesToShow + 2);\r\n }\r\n } else {\r\n _categorySlideIndex = Math.max(0, _categoryIndex - responsiveObj['tablet'].slidesToShow + 1);\r\n }\r\n $('#rollCartoonCategory').slick('slickGoTo', _categorySlideIndex );\r\n }\r\n\r\n\r\n\r\n\r\n}(jQuery, window));\n\n\n// WEBPACK FOOTER //\n// ./_src/js/board/cartoon-series.js","module.exports = { \"default\": require(\"core-js/library/fn/number/is-integer\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/number/is-integer.js\n// module id = 8\n// module chunks = 0","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/number/is-integer.js\n// module id = 9\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.number.is-integer.js\n// module id = 10\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 11\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 12\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 13\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 14\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 15\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 16\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 17\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 18\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 19\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 20\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-integer.js\n// module id = 21\n// module chunks = 0","export const BREAKPOINTS = {\r\n tablet: 640,\r\n pc: 960,\r\n max: 1340\r\n};\r\n\r\nexport const DAYS = {\r\n 'Sunday': '일',\r\n 'Monday': '월',\r\n 'Tuesday': '화',\r\n 'Wednesday': '수',\r\n 'Thursday': '목',\r\n 'Friday': '금',\r\n 'Saturday': '토'\r\n};\r\n\r\nexport const API_DOMAIN_DEFAULT = 'https://api-lineage.plaync.com';\r\n\r\nexport const API_COMMUNITY_DOMAIN = 'https://api-commnity.plaync.com/lineage1';\r\n\r\nexport const STATIC_DOMAIN_DEFAULT = 'https://assets.playnccdn.com'; // https://wstatic.plaync.co.kr';\r\n\r\nexport const STATIC_CDN_DOMAIN_DEFAULT = 'https://wstatic-cdn.plaync.com';\r\n\r\nexport const NO_ITEM_IMAGE_URL = `${STATIC_DOMAIN_DEFAULT}/lineage/v1/img/world/item/noimg.gif`;\r\n\r\nexport const PET_NECKLACE_ID = 25668;\n\n\n// WEBPACK FOOTER //\n// ./_src/js/model/model.js","import { ALERT } from '../model/msg/alert';\r\n\r\nlet getDatas = function (urls, resolvedCallback, rejectedCallback) {\r\n let promises = [];\r\n\r\n for (let i = 0, max = urls.length; i < max; i++) {\r\n const promise = $.ajax({\r\n type: 'GET',\r\n url: urls[i],\r\n dataType: 'json'\r\n });\r\n promises.push(promise);\r\n }\r\n\r\n $.when.apply($, promises)\r\n .then(resolvedCallback)\r\n .fail(rejectedCallback);\r\n};\r\n\r\nlet getDatasWithOption = function (jQueryAjaxOptions, resolvedCallback, rejectedCallback) {\r\n let promises = [];\r\n\r\n for (let i = 0, max = jQueryAjaxOptions.length; i < max; i++) {\r\n const promise = $.ajax(jQueryAjaxOptions[i]);\r\n promises.push(promise);\r\n }\r\n\r\n $.when.apply($, promises)\r\n .then(resolvedCallback)\r\n .fail(rejectedCallback);\r\n};\r\n\r\nlet handleApiError = function (apiResultData, global = window) {\r\n if (apiResultData) {\r\n if (parseInt(apiResultData.status, 10) === 401) {\r\n // http://git.korea.ncsoft.corp/projects/FRONTEND_DEVELOP/repos/uikit-nccommunity/browse/_src/js/lang.js\r\n global.alert(ALERT.REQUIRE_LOGIN);\r\n\r\n if (typeof global.GNBLogin === 'function') {\r\n global.GNBLogin();\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport {\r\n getDatas,\r\n getDatasWithOption,\r\n handleApiError\r\n};\n\n\n// WEBPACK FOOTER //\n// ./_src/js/utils/service.js","const ALERT = {\r\n REQUIRE_LOGIN: '로그인 후 이용하실 수 있습니다.'\r\n};\r\n\r\nexport {\r\n ALERT\r\n};\n\n\n// WEBPACK FOOTER //\n// ./_src/js/model/msg/alert.js"],"sourceRoot":""}