{"version":3,"sources":["webpack:///sports/sports-EPT.bundle.06fe9ce.js","webpack:///webpack/bootstrap 0439df57cc885d7e4413","webpack:///./src/sports/EPT/index.js","webpack:///external \"jQuery\"","webpack:///./src/sports/core/realtimeWatch.js","webpack:///./src/sports/core/storage.js","webpack:///./src/sports/core/useTimeMachine.js","webpack:///./src/sports/core/videoClip/index.js","webpack:///./src/sports/core/videoClip/clip.hbs","webpack:///./src/sports/core/videoClip/clipInnerListType.hbs"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","moreScoreView","sliceNum","sliceElem","clickToggleClass","$scoreNum","addClass","displaySelector","removeClass","startCurrentNum","startIdx","whenTargetLowerSliceNum","start","end","endIdx","slice","length","changeBtnClass","inningAllScore","$prevBtn","$nextBtn","$innigScore","eq","hasClass","moreViewPrev","moreViewNext","lastTargetDoneMove","last","on","$tblBaseBall","$ctx","find","$inning","$homeInnig","$awayInnig","$homeScoreNum","$awayScoreNum","setState","newState","_jquery2","extend","state","trigger","setInitialState","tabIdx","$listTabItems","filter","index","togglePanelsOnTabClick","$listTab","$this","this","render","_len","arguments","fns","Array","_key","forEach","fn","timeMachine","storage","set","setVClipList","$highlightListType","_videoClip2","listSelector","$context","rendingType","rowCount","vclipSelector","removeSelector","setVClip","initCountDownTimer","$target","startTime","data","$timeIndicator","countdownWatch","_realtimeWatch2","diff","reduce","a","b","stop","text","map","addZero","join","setToolTip","$toolTip","toggleClass","MainTab","MainPanel","$mainPanels","_jquery","_videoClip","_useTimeMachine","_useTimeMachine2","_realtimeWatch","storedState","$mainTabWrap","children","tabName","check","jQuery","RealTimeWatch","gameStartsAt","callback","parse","getTime","serverTime","getClientTime","toRemainingTimeArr","timer","window","ServerTime","yyyyMMddHHmmss","y","mIdx","Number","d","h","s","Date","num","getYMDLongArray","ms","getFullYear","getMonth","getDay","getHours","getMinutes","getSeconds","toYMDLongString","toYMDShortString","prototype","updateServerTime","setSeconds","getDiff","min","sec","Math","floor","clearInterval","_this","setInterval","onTick","_typeof","Symbol","iterator","constructor","Storage","key","get","JSON","sessionStorage","getItem","value","val","stringify","setItem","useTimeMachine","displayCode","onBack","clearSession","Object","keys","indexOf","removeItem","performance","nav","navigation","isBackButton","type","_storage2","utf8Query","hasHistory","_storage","VideoClip","options","_options","DEF_OPTS","_$context","init","_clip","_clip2","_clipInnerListType","_clipInnerListType2","itemSelector","exceptClassName","eventType","eventClassName","dataSelector","date","hit","vid","link","desc","onEventClass","$currentItem","siblings","offEventClass","loadKTP","SF","loadModule","status","getVClipData","vClipData","number","addComma","renderVClip","rendingIdx","tmplMap","basic","inner-list","tmpl","html","templates","after","$targetList","createVClip","selectId","playerContainer","document","getElementById","clipLinkId","profile","playerConfig","service","kakaotv","wmode","fs","player","KTP","Player","create","load","removeVClip","parents","remove","bindEvents","that","clipData","setRowData","not","rowIdx","each","i","$el","setAttribute"],"mappings":"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","file":"sports/sports-EPT.bundle.06fe9ce.js","sourcesContent":["/*!\n * 6/18/2018, 11:14:12 AM\n * Copyright 2018 FT, DK Techin Corp \n */\n/******/ (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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _jquery = __webpack_require__(1);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _videoClip = __webpack_require__(5);\n\t\n\tvar _videoClip2 = _interopRequireDefault(_videoClip);\n\t\n\tvar _useTimeMachine = __webpack_require__(4);\n\t\n\tvar _useTimeMachine2 = _interopRequireDefault(_useTimeMachine);\n\t\n\tvar _realtimeWatch = __webpack_require__(2);\n\t\n\tvar _realtimeWatch2 = _interopRequireDefault(_realtimeWatch);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tvar timeMachine = (0, _useTimeMachine2[\"default\"])('EPT', function (storedState) {\n\t setState(storedState);\n\t});\n\t\n\tvar $ctx = (0, _jquery2[\"default\"])('#eptColl');\n\tvar $mainTabWrap = $ctx.find('.tab_rwd.tab_rwd_box');\n\tvar $listTab = $mainTabWrap.find('.list_tab');\n\tvar $listTabItems = $listTab.children(); // li\n\tvar $mainPanels = $ctx.find('.coll_cont .tab_body .cont_wrap');\n\t\n\tvar state = {\n\t tabIdx: 0,\n\t tabName: ''\n\t};\n\t\n\trender(MainTab(state), MainPanel(state));\n\tsetToolTip();\n\tsetInitialState();\n\tinitCountDownTimer($ctx);\n\ttogglePanelsOnTabClick();\n\tmoreScoreView();\n\tsetVClip();\n\tsetVClipList();\n\ttimeMachine.check();\n\t\n\t/**\n\t * 야구에서만 사용됩니다.\n\t * 경기결과가 9회차 이상인 경우에만 페이지를 넘기도록 하는 함수.\n\t * 담당자 : @rain\n\t * > 테이블의 td 를 넘길 수 있다.\n\t * > 스포츠 1차 개편의 시안과 2차 개변의 시안이 상이하여 사용될지는 미지수.\n\t */\n\tfunction moreScoreView() {\n\t var $tblBaseBall = $ctx.find('.tbl_baseball');\n\t var $nextBtn = $tblBaseBall.find('.btn_score_r');\n\t var $prevBtn = $tblBaseBall.find('.btn_score_l');\n\t var $innigScore = $tblBaseBall.find('thead th');\n\t var inningAllScore = $innigScore.length - 4; //allScore - R/H/S\n\t var $inning = $tblBaseBall.find('tbody tr');\n\t var $homeInnig = $inning.eq(0).find('td');\n\t var $awayInnig = $inning.eq(1).find('td');\n\t var $scoreNum = $innigScore.slice(1, inningAllScore + 1); // slice tit,R/H/s\n\t var $homeScoreNum = $homeInnig.slice(1, inningAllScore + 1); // slice tit,R/H/s\n\t var $awayScoreNum = $awayInnig.slice(1, inningAllScore + 1); // slice tit,R/H/s\n\t\n\t function sliceNum(sliceElem) {\n\t var sliceNum = 9; //chunk num = show\n\t var startCurrentNum = -9; //start idx (-n : start lastNum)\n\t var displaySelector = void 0; //selector.slice( startIdx, endIdx )\n\t var startIdx = void 0;\n\t var endIdx = void 0;\n\t var $scoreNum = sliceElem;\n\t\n\t function clickToggleClass() {\n\t $scoreNum.addClass('hide');\n\t displaySelector.removeClass('hide');\n\t startCurrentNum = startIdx;\n\t }\n\t\n\t function whenTargetLowerSliceNum(start, end) {\n\t endIdx = startIdx + sliceNum;\n\t displaySelector = $scoreNum.slice(startIdx, endIdx);\n\t\n\t if (displaySelector.length < sliceNum) {\n\t startIdx = start;\n\t endIdx = end;\n\t displaySelector = $scoreNum.slice(start, end);\n\t }\n\t }\n\t\n\t function changeBtnClass() {\n\t if (inningAllScore === sliceNum) {\n\t $prevBtn.addClass('left_off');\n\t $nextBtn.addClass('right_off');\n\t }\n\t\n\t if (!$innigScore.eq(1).hasClass('hide')) {\n\t $prevBtn.addClass('left_off');\n\t $nextBtn.removeClass('right_off');\n\t } else if (!$innigScore.eq(inningAllScore).hasClass('hide')) {\n\t $nextBtn.addClass('right_off');\n\t $prevBtn.removeClass('left_off');\n\t } else {\n\t $nextBtn.removeClass('right_off');\n\t $prevBtn.removeClass('left_off');\n\t }\n\t }\n\t\n\t changeBtnClass();\n\t\n\t function moreViewPrev() {\n\t startIdx = startCurrentNum - sliceNum;\n\t\n\t whenTargetLowerSliceNum(0, sliceNum);\n\t clickToggleClass();\n\t changeBtnClass();\n\t }\n\t\n\t function moreViewNext() {\n\t var lastTargetDoneMove = $scoreNum.last().hasClass('hide');\n\t if (!lastTargetDoneMove) {\n\t $prevBtn.removeClass('left_off');\n\t return false;\n\t }\n\t startIdx = startCurrentNum + sliceNum;\n\t whenTargetLowerSliceNum(-sliceNum, $scoreNum.length);\n\t clickToggleClass();\n\t changeBtnClass();\n\t }\n\t\n\t $prevBtn.on('click', moreViewPrev);\n\t $nextBtn.on('click', moreViewNext);\n\t }\n\t\n\t sliceNum($scoreNum);\n\t sliceNum($homeScoreNum);\n\t sliceNum($awayScoreNum);\n\t}\n\t\n\tfunction setState(newState) {\n\t _jquery2[\"default\"].extend(state, newState);\n\t (0, _jquery2[\"default\"])(state).trigger('update');\n\t}\n\t\n\tfunction setInitialState() {\n\t setState({ tabIdx: $listTabItems.filter('.on').index() });\n\t}\n\t\n\tfunction togglePanelsOnTabClick() {\n\t $listTab.on('click', 'li', function () {\n\t var $this = (0, _jquery2[\"default\"])(this);\n\t setState({ tabIdx: $this.index() });\n\t });\n\t}\n\t\n\tfunction render() {\n\t for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n\t fns[_key] = arguments[_key];\n\t }\n\t\n\t (0, _jquery2[\"default\"])(state).on('update', function () {\n\t fns.forEach(function (fn) {\n\t return fn();\n\t });\n\t timeMachine.storage.set(state);\n\t });\n\t}\n\t\n\tfunction setVClipList() {\n\t var $highlightListType = $ctx.find('.highlight_cont.list_type');\n\t if ($highlightListType.length > 0) {\n\t new _videoClip2[\"default\"]({\n\t listSelector: '.highlight_cont.list_type',\n\t $context: $ctx,\n\t rendingType: 'inner-list', //외부 렌더링시 basic 내부 삽입시 inner-list\n\t rowCount: 3,\n\t vclipSelector: '_vClipBox_list', // 이것으로 아이디가 생성됩니다 # 포함 금지\n\t removeSelector: '.video_player'\n\t });\n\t }\n\t}\n\tfunction setVClip() {\n\t var $highlightListType = $ctx.find('.highlight_cont:not(.list_type)');\n\t if ($highlightListType.length > 0) {\n\t new _videoClip2[\"default\"]({\n\t listSelector: '.highlight_cont:not(.list_type)',\n\t $context: $ctx\n\t });\n\t }\n\t}\n\t\n\tfunction initCountDownTimer($ctx) {\n\t if (!($ctx.find('.cont_worldcup').length > 0)) {\n\t return;\n\t }\n\t if (!($ctx.find('.play_season .match_score').length > 0)) {\n\t return;\n\t }\n\t var $target = $ctx.find('.match_score');\n\t var startTime = ('' + $target.data('starttime')).slice(0, 14);\n\t var $timeIndicator = $target.find('.txt_time');\n\t\n\t if (typeof startTime !== 'string' || startTime.length !== 14) {\n\t return;\n\t }\n\t\n\t var countdownWatch = new _realtimeWatch2[\"default\"](startTime, function (diff) {\n\t if (diff.reduce(function (a, b) {\n\t return a + b;\n\t }) <= 0) {\n\t countdownWatch.stop();\n\t $timeIndicator.text('00:00:00');\n\t } else {\n\t $timeIndicator.text(diff.map(_realtimeWatch2[\"default\"].addZero).join(':'));\n\t }\n\t });\n\t\n\t countdownWatch.start();\n\t\n\t return countdownWatch;\n\t}\n\t\n\tfunction setToolTip() {\n\t if (!($ctx.find('.info_adsch.info_fairtrade').length > 0)) {\n\t return;\n\t }\n\t var $toolTip = $ctx.find('.info_adsch.info_fairtrade');\n\t\n\t $toolTip.on('click', '.ico_rwd.ico_help', function () {\n\t $toolTip.find('.layer_ad').toggleClass('on');\n\t });\n\t\n\t $toolTip.on('click', '.btn_close', function () {\n\t $toolTip.find('.layer_ad.on').removeClass('on');\n\t });\n\t}\n\t\n\t// UI Components\n\tfunction MainTab(state) {\n\t return function () {\n\t $listTabItems.removeClass('on');\n\t $listTabItems.eq(state.tabIdx).addClass('on');\n\t };\n\t}\n\t\n\tfunction MainPanel(state) {\n\t return function () {\n\t $mainPanels.addClass('hide');\n\t $mainPanels.eq(state.tabIdx).removeClass('hide');\n\t };\n\t}\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = jQuery;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _jquery = __webpack_require__(1);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction RealTimeWatch(gameStartsAt, callback) {\n\t this.gameStartsAt = RealTimeWatch.parse(gameStartsAt).getTime();\n\t this.serverTime = RealTimeWatch.getClientTime();\n\t this.callback = callback;\n\t this.diff = this.toRemainingTimeArr();\n\t this.timer = -1;\n\t}\n\t\n\t// Static Methods\n\t_jquery2['default'].extend(RealTimeWatch, {\n\t getClientTime: function getClientTime() {\n\t return RealTimeWatch.parse(window.ServerTime);\n\t },\n\t parse: function parse(yyyyMMddHHmmss) {\n\t var y = yyyyMMddHHmmss.slice(0, 4);\n\t var mIdx = Number(yyyyMMddHHmmss.slice(4, 6)) - 1;\n\t var d = yyyyMMddHHmmss.slice(6, 8);\n\t var h = yyyyMMddHHmmss.slice(8, 10);\n\t var m = yyyyMMddHHmmss.slice(10, 12);\n\t var s = yyyyMMddHHmmss.slice(12);\n\t return new Date(y, mIdx, d, h, m, s);\n\t },\n\t addZero: function addZero(num) {\n\t return '' + (num < 10 ? '0' + num : num);\n\t },\n\t getYMDLongArray: function getYMDLongArray(ms) {\n\t var d = new Date(ms);\n\t return [d.getFullYear(), d.getMonth() + 1, d.getDay(), d.getHours(), d.getMinutes(), d.getSeconds()];\n\t },\n\t toYMDLongString: function toYMDLongString(ms) {\n\t return RealTimeWatch.getYMDLongArray(ms).map(RealTimeWatch.addZero).join('');\n\t },\n\t toYMDShortString: function toYMDShortString(ms) {\n\t return RealTimeWatch.getYMDLongArray(ms).slice(0, 3).map(RealTimeWatch.addZero).join('');\n\t }\n\t});\n\t\n\tRealTimeWatch.prototype = {\n\t updateServerTime: function updateServerTime() {\n\t this.serverTime.setSeconds(this.serverTime.getSeconds() + 1);\n\t },\n\t getDiff: function getDiff() {\n\t return this.gameStartsAt - this.serverTime.getTime();\n\t },\n\t toRemainingTimeArr: function toRemainingTimeArr() {\n\t var min = 1000 * 60 * 60;\n\t var sec = 1000 * 60;\n\t var diff = this.getDiff();\n\t\n\t var h = diff % (min * 24) / min;\n\t var m = diff % min / sec;\n\t var s = diff % sec / 1000;\n\t\n\t return [h, m, s].map(Math.floor);\n\t },\n\t stop: function stop() {\n\t clearInterval(this.timer);\n\t this.timer = -1;\n\t },\n\t start: function start() {\n\t var _this = this;\n\t\n\t if (this.timer > -1) {\n\t return;\n\t }\n\t this.timer = setInterval(function () {\n\t _this.onTick();\n\t }, 1000);\n\t },\n\t onTick: function onTick() {\n\t this.updateServerTime();\n\t this.diff = this.toRemainingTimeArr();\n\t this.callback(this.diff);\n\t }\n\t};\n\t\n\texports['default'] = RealTimeWatch;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar Storage = function Storage(key) {\n\t return {\n\t get: function get() {\n\t return JSON.parse(sessionStorage.getItem(key));\n\t },\n\t set: function set(value) {\n\t var val = value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' ? JSON.stringify(value) : value;\n\t sessionStorage.setItem(key, val);\n\t }\n\t };\n\t};\n\t\n\texports['default'] = Storage;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _storage = __webpack_require__(3);\n\t\n\tvar _storage2 = _interopRequireDefault(_storage);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction useTimeMachine(displayCode, onBack) {\n\t var performance = window.performance || {};\n\t var nav = performance.navigation || {};\n\t var isBackButton = nav.type === 2;\n\t var storage = (0, _storage2['default'])(displayCode + '_' + window.utf8Query);\n\t var hasHistory = !!storage.get();\n\t\n\t function clearSession() {\n\t Object.keys(sessionStorage).filter(function (key) {\n\t return key.indexOf(displayCode) !== -1;\n\t }).forEach(function (key) {\n\t sessionStorage.removeItem(key);\n\t });\n\t }\n\t return {\n\t check: function check() {\n\t hasHistory && isBackButton ? onBack(storage.get()) : clearSession();\n\t },\n\t\n\t storage: storage\n\t };\n\t}\n\t\n\texports['default'] = useTimeMachine;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _jquery = __webpack_require__(1);\n\t\n\tvar _jquery2 = _interopRequireDefault(_jquery);\n\t\n\tvar _clip = __webpack_require__(6);\n\t\n\tvar _clip2 = _interopRequireDefault(_clip);\n\t\n\tvar _clipInnerListType = __webpack_require__(7);\n\t\n\tvar _clipInnerListType2 = _interopRequireDefault(_clipInnerListType);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * vClip 함수의 기본 옵션값\n\t * !필독 : $context 의 기본값이 빈 스트링으로 지정되어 있으므로 기입이 되지 않는 다면 문제가 발생 할 수 있습니다.\n\t * 반드시 입력받을 것 (변수명의 접두사로 $ 를 가지고 있다면 제이쿼리 객체 이어야 합니다)\n\t * listSelector 의 클래스명이 필요함, (ex 하이라이트 리스트의 ul className)\n\t * @type {{$context : string, listSelector : string, itemSelector : string, eventType : string, eventClassName : string,\n\t * vclipSelector : string, dataSelector : {date : string, hit : string, vid : string, link : string, desc : string}}}\n\t */\n\t\n\t/**\n\t * vClip 에 동적으로 그려질 템플릿 임폴트\n\t * !필독 : - 확장자명은 hbs로 되어있으나, 통검에서는 jsRender 로 그려짐으로 jsRender 로직을 사용하세요.\n\t */\n\tvar DEF_OPTS = {\n\t $context: '', //필수\n\t listSelector: '', //필수\n\t itemSelector: 'li',\n\t exceptClassName: '_no_vclip', // vclip 이 동작하지 않게 할 아이템의 클래스명\n\t eventType: 'click',\n\t eventClassName: 'on',\n\t removeSelector: '.vclip_sports',\n\t vclipSelector: '_vClipBox', // 아이디만 입력, #빼고 명칭만 기입\n\t dataSelector: {\n\t date: 'date',\n\t hit: 'hit',\n\t vid: 'vid',\n\t link: 'link',\n\t desc: 'title'\n\t },\n\t rendingType: 'basic', // 기본형 외부 랜더링 : basic & 확장됨 리스트내부 랜더링은 inner-list\n\t rowCount: 0 // 한 열의 개수\n\t};\n\t\n\t/**\n\t * VideoClip 생성자 함수\n\t * 용도 : 하이라이트 영상 리스트 클릭시 발동되어 하이라이트 리스트 하단에 선택한 영상을 어팬드 해주는 모듈로 개발 되었습니다.\n\t * !필독 : 해당 모듈은 jQuery, jsRender, SF, KTP 가 사용됩니다. 참조 - http://hehet.dev.daum.net\n\t */\n\tfunction VideoClip(options) {\n\t this._options = _jquery2['default'].extend({}, DEF_OPTS, options);\n\t this._$context = this._options.$context;\n\t this.init();\n\t}\n\t\n\t/**\n\t * 하이라이트 리스트에서 영상 아이탬 클릭시 해당 itemSelector 에 eventClassName 를 달아 주는 매서드\n\t * (다른 형제 요소들은 eventClassName 제거)\n\t * @param $currentItem\n\t */\n\tVideoClip.prototype.onEventClass = function ($currentItem) {\n\t $currentItem.addClass(this._options.eventClassName).siblings().removeClass(this._options.eventClassName);\n\t};\n\t/**\n\t * 하이라이트 리스트에서 영상 아이템 클릭시 해당 itemSelector 에 걸려있는 eventClassName 제거\n\t * @param $currentItem\n\t */\n\tVideoClip.prototype.offEventClass = function ($currentItem) {\n\t $currentItem.removeClass(this._options.eventClassName);\n\t};\n\t/**\n\t * kakao tv player 모듈을 로드해 주기 위한 모듈\n\t * 로드가 진행 되어야 동영상 재생이 가능합니다.\n\t * 참조 - http://hehet.dev.daum.net/modules/outapi/loadModule/kakaotv/index.html\n\t */\n\tVideoClip.prototype.loadKTP = function () {\n\t SF.loadModule('kakaotv', function (status, module) {});\n\t};\n\t/**\n\t * 동적으로 뿌려지는 동영상 영역 (vClip) 의 jsRender 탬플릿에 넘겨줄 데이터를 만들어 줍니다.\n\t * 백앤드 개발자와 해당 하는 부분의 데이터를 어떤식으로 전달 받을 것인지 협의가 필요합니다.\n\t * 동적인 부분으로 그려저야 할 데이터가 날짜,조회수,동영상 아이디,링크주소,설명 라고 했을경우\n\t * 하이라이트 리스트 itemSelector 부분에 data-hit,data-vid,data-link 등으로 전달 받는 것을 가정하고\n\t * desc 와 date 부분은 이미 하이라이트 영상 리스트에 노출이 됨으로 해당 부분에서 가져오는것으로 설정 되어 있습니다.\n\t * @param $target\n\t * @returns {{date, hit : string|*|void, vid, link, desc}}\n\t */\n\tVideoClip.prototype.getVClipData = function ($target) {\n\t var dataSelector = this._options.dataSelector;\n\t // data 는 data-attr 를 참조하세요\n\t var vClipData = {\n\t date: $target.data(dataSelector.date),\n\t hit: _jquery2['default'].number.addComma($target.data(dataSelector.hit)),\n\t vid: $target.data(dataSelector.vid),\n\t link: $target.data(dataSelector.link),\n\t desc: $target.data(dataSelector.desc)\n\t };\n\t return vClipData;\n\t};\n\t\n\t/**\n\t * jsRender 탬플릿과 getVClipData 를 통해서 지정된 데이터를 listSelector 즉 하이라이트 리스트의\n\t * 하단 부분에 붙혀주는 랜딩 메서드 입니다.\n\t *\n\t * 랜딩 타입이 추가되었습니다. 기본은 basic ( basic, inner-list ) = 현재까지는 두가지 종류가 있습니다.\n\t * @param data\n\t * @param rendingType\n\t * @param rendingIdx\n\t */\n\tVideoClip.prototype.renderVClip = function (data, rendingType, rendingIdx) {\n\t var type = rendingType || 'basic';\n\t var tmplMap = {\n\t 'basic': _clip2['default'],\n\t 'inner-list': _clipInnerListType2['default']\n\t };\n\t var tmpl = tmplMap[rendingType] || _clip2['default'];\n\t\n\t if (type === 'basic') {\n\t var html = _jquery2['default'].templates(tmpl).render(data);\n\t this._$context.find(this._options.listSelector).after(html);\n\t }\n\t\n\t if (type === 'inner-list') {\n\t var _html = _jquery2['default'].templates(tmpl).render(data);\n\t var index = rendingIdx || 0;\n\t var $targetList = this._$context.find(this._options.listSelector).find(this._options.itemSelector + ('[data-row=\\'' + index + '\\']'));\n\t var $target = $targetList.eq($targetList.length - 1 || 0);\n\t $target.after(_html);\n\t }\n\t};\n\t/**\n\t * renderVClip 을 통해서 vClip 의 동적인 부분이 랜딩 되었다면,\n\t * KTP 모듈에 해당하는 video-id 를 넘겨서 영상을 생성해 주는 메서드입니다.\n\t * 참조 - http://wiki.daumkakao.com/display/keron/Player+IFrame+API\n\t * @param selectId\n\t * @param vid\n\t */\n\tVideoClip.prototype.createVClip = function (selectId, vid) {\n\t var playerContainer = document.getElementById(selectId);\n\t var clipLinkId = vid;\n\t var profile = 'HIGH';\n\t var playerConfig = {\n\t type: 'VOD',\n\t service: 'daum_searchview',\n\t id: clipLinkId + '@my',\n\t profile: profile,\n\t kakaotv: 0,\n\t wmode: 'opaque',\n\t fs: 1\n\t };\n\t var player = KTP.Player.create(playerContainer, playerConfig);\n\t player.load(clipLinkId, profile);\n\t};\n\t/**\n\t * 동적으로 생성된 영역 (vClip) 부분을 제거 하는 메서드 입니다.\n\t */\n\tVideoClip.prototype.removeVClip = function () {\n\t this._$context.find('#' + this._options.vclipSelector).parents(this._options.removeSelector).remove();\n\t};\n\t/**\n\t * 하이라이트 리스트의 이벤트 메서드 입니다.\n\t */\n\tVideoClip.prototype.bindEvents = function () {\n\t var that = this;\n\t that._$context.find(that._options.listSelector).on(that._options.eventType, that._options.itemSelector, function () {\n\t var $this = (0, _jquery2['default'])(this);\n\t if ($this.hasClass(that._options.exceptClassName)) {\n\t return;\n\t }\n\t that.removeVClip();\n\t if ($this.hasClass(that._options.eventClassName)) {\n\t that.offEventClass($this);\n\t } else {\n\t var clipData = that.getVClipData($this);\n\t var vid = $this.data(that._options.dataSelector.vid);\n\t that.onEventClass($this);\n\t that.renderVClip(clipData, that._options.rendingType, $this.data('row'));\n\t that.createVClip(that._options.vclipSelector, vid);\n\t }\n\t });\n\t};\n\t\n\t/**\n\t * data-row 라는 어트리뷰트를 삽입해 주는 함수이다.\n\t * rendingType = inner-list 인 상태에서만 사용\n\t * rendingType 이 inner-list 라면, 즉 리스트 내부로 클립이 삽입 되는 경우라면\n\t * 몇 번째 열 하단에 넣어야 하는지 몇번째 열인지 구분할 필요가 있다.\n\t * 여기서 data-row 는 해당하는 열의 가장 마지막에 있는 인덱스를 넣어준다.\n\t */\n\tVideoClip.prototype.setRowData = function () {\n\t var that = this;\n\t var $targetList = that._$context.find(that._options.listSelector).find(that._options.itemSelector).not('#' + that._options.vclipSelector);\n\t\n\t var rowIdx = 0;\n\t\n\t $targetList.each(function (i, $el) {\n\t if (i % that._options.rowCount === 0) {\n\t rowIdx += that._options.rowCount - 1;\n\t }\n\t $el.setAttribute('data-row', rowIdx);\n\t });\n\t};\n\t/**\n\t * 인스턴스 초기화 메서드입니다.\n\t */\n\tVideoClip.prototype.init = function () {\n\t this.setRowData();\n\t this.loadKTP();\n\t this.bindEvents();\n\t};\n\t\n\texports['default'] = VideoClip;\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
{{:desc}}
재생횟수{{:hit}} {{:date}}
\";\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"
  • {{:desc}}
    재생횟수{{:hit}} {{:date}}
  • \";\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** sports/sports-EPT.bundle.06fe9ce.js\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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0439df57cc885d7e4413\n **/","import $ from 'jquery';\nimport VideoClip from \"../core/videoClip\";\nimport useTimeMachine from \"../core/useTimeMachine\";\nimport RealTimeWatch from \"../core/realtimeWatch\";\n\nconst timeMachine = useTimeMachine('EPT', (storedState) =>{\n setState(storedState);\n});\n\nconst $ctx = $('#eptColl');\nconst $mainTabWrap = $ctx.find('.tab_rwd.tab_rwd_box');\nconst $listTab = $mainTabWrap.find('.list_tab');\nconst $listTabItems = $listTab.children(); // li\nconst $mainPanels = $ctx.find('.coll_cont .tab_body .cont_wrap');\n\nconst state = {\n tabIdx:0,\n tabName:''\n};\n\nrender(\n MainTab(state),\n MainPanel(state)\n);\nsetToolTip();\nsetInitialState();\ninitCountDownTimer($ctx);\ntogglePanelsOnTabClick();\nmoreScoreView();\nsetVClip();\nsetVClipList();\ntimeMachine.check();\n\n/**\n * 야구에서만 사용됩니다.\n * 경기결과가 9회차 이상인 경우에만 페이지를 넘기도록 하는 함수.\n * 담당자 : @rain\n * > 테이블의 td 를 넘길 수 있다.\n * > 스포츠 1차 개편의 시안과 2차 개변의 시안이 상이하여 사용될지는 미지수.\n */\nfunction moreScoreView(){\n const $tblBaseBall = $ctx.find('.tbl_baseball');\n const $nextBtn = $tblBaseBall.find('.btn_score_r');\n const $prevBtn = $tblBaseBall.find('.btn_score_l');\n const $innigScore = $tblBaseBall.find('thead th');\n const inningAllScore = $innigScore.length - 4; //allScore - R/H/S\n const $inning = $tblBaseBall.find('tbody tr');\n const $homeInnig = $inning.eq(0).find('td');\n const $awayInnig = $inning.eq(1).find('td');\n let $scoreNum = $innigScore.slice(1, inningAllScore + 1); // slice tit,R/H/s\n const $homeScoreNum = $homeInnig.slice(1, inningAllScore + 1); // slice tit,R/H/s\n const $awayScoreNum = $awayInnig.slice(1, inningAllScore + 1); // slice tit,R/H/s\n\n function sliceNum(sliceElem){\n let sliceNum = 9; //chunk num = show\n let startCurrentNum = -9; //start idx (-n : start lastNum)\n let displaySelector; //selector.slice( startIdx, endIdx )\n let startIdx;\n let endIdx;\n let $scoreNum = sliceElem;\n\n function clickToggleClass(){\n $scoreNum.addClass('hide');\n displaySelector.removeClass('hide');\n startCurrentNum = startIdx;\n }\n\n function whenTargetLowerSliceNum(start, end){\n endIdx = startIdx + sliceNum;\n displaySelector = $scoreNum.slice(startIdx, endIdx);\n\n if(displaySelector.length < sliceNum){\n startIdx = start;\n endIdx = end;\n displaySelector = $scoreNum.slice(start, end);\n }\n }\n\n function changeBtnClass(){\n if(inningAllScore === sliceNum){\n $prevBtn.addClass('left_off');\n $nextBtn.addClass('right_off');\n }\n\n if(!$innigScore.eq(1).hasClass('hide')){\n $prevBtn.addClass('left_off');\n $nextBtn.removeClass('right_off');\n }else if(!$innigScore.eq(inningAllScore).hasClass('hide')){\n $nextBtn.addClass('right_off');\n $prevBtn.removeClass('left_off');\n }else{\n $nextBtn.removeClass('right_off');\n $prevBtn.removeClass('left_off');\n }\n }\n\n changeBtnClass();\n\n function moreViewPrev(){\n startIdx = startCurrentNum - sliceNum;\n\n whenTargetLowerSliceNum(0, sliceNum);\n clickToggleClass();\n changeBtnClass();\n }\n\n function moreViewNext(){\n const lastTargetDoneMove = $scoreNum.last().hasClass('hide');\n if(!lastTargetDoneMove){\n $prevBtn.removeClass('left_off');\n return false;\n }\n startIdx = startCurrentNum + sliceNum;\n whenTargetLowerSliceNum(-sliceNum, $scoreNum.length);\n clickToggleClass();\n changeBtnClass();\n\n\n }\n\n $prevBtn.on('click', moreViewPrev);\n $nextBtn.on('click', moreViewNext);\n }\n\n sliceNum($scoreNum);\n sliceNum($homeScoreNum);\n sliceNum($awayScoreNum);\n\n\n}\n\nfunction setState(newState){\n $.extend(state, newState);\n $(state).trigger('update');\n}\n\nfunction setInitialState(){\n setState({ tabIdx:$listTabItems.filter('.on').index() });\n}\n\nfunction togglePanelsOnTabClick(){\n $listTab.on('click', 'li', function(){\n const $this = $(this);\n setState({ tabIdx:$this.index() }\n );\n });\n}\n\nfunction render(...fns){\n $(state).on('update', function(){\n fns.forEach(fn => fn());\n timeMachine.storage.set(state);\n });\n}\n\nfunction setVClipList(){\n const $highlightListType = $ctx.find('.highlight_cont.list_type');\n if($highlightListType.length > 0){\n new VideoClip({\n listSelector:'.highlight_cont.list_type',\n $context:$ctx,\n rendingType:'inner-list', //외부 렌더링시 basic 내부 삽입시 inner-list\n rowCount:3,\n vclipSelector:'_vClipBox_list', // 이것으로 아이디가 생성됩니다 # 포함 금지\n removeSelector:'.video_player'\n });\n }\n}\nfunction setVClip(){\n const $highlightListType = $ctx.find('.highlight_cont:not(.list_type)');\n if($highlightListType.length > 0){\n new VideoClip({\n listSelector:'.highlight_cont:not(.list_type)',\n $context:$ctx\n });\n }\n}\n\nfunction initCountDownTimer($ctx) {\n if(!($ctx.find('.cont_worldcup').length > 0)){\n return;\n }\n if(!($ctx.find('.play_season .match_score').length > 0)){\n return;\n }\n const $target = $ctx.find('.match_score');\n const startTime = ('' + $target.data('starttime')).slice(0, 14);\n const $timeIndicator = $target.find('.txt_time');\n\n if (typeof startTime !== 'string' || startTime.length !== 14) {\n return;\n }\n\n const countdownWatch = new RealTimeWatch(startTime, (diff) => {\n if (diff.reduce((a, b) => a + b) <= 0) {\n countdownWatch.stop();\n $timeIndicator.text('00:00:00');\n } else {\n $timeIndicator.text(diff.map(RealTimeWatch.addZero).join(':'));\n }\n });\n\n countdownWatch.start();\n\n return countdownWatch;\n}\n\nfunction setToolTip(){\n if(!($ctx.find('.info_adsch.info_fairtrade').length > 0)){\n return;\n }\n const $toolTip = $ctx.find('.info_adsch.info_fairtrade');\n\n $toolTip.on('click','.ico_rwd.ico_help', function(){\n $toolTip.find('.layer_ad').toggleClass('on');\n });\n\n $toolTip.on('click','.btn_close', function(){\n $toolTip.find('.layer_ad.on').removeClass('on');\n });\n\n}\n\n// UI Components\nfunction MainTab(state){\n return () =>{\n $listTabItems.removeClass('on');\n $listTabItems.eq(state.tabIdx).addClass('on');\n };\n}\n\nfunction MainPanel(state){\n return () =>{\n $mainPanels.addClass('hide');\n $mainPanels.eq(state.tabIdx).removeClass('hide');\n };\n}\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/sports/EPT/index.js\n **/","module.exports = jQuery;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"jQuery\"\n ** module id = 1\n ** module chunks = 0\n **/","import $ from 'jquery';\n\nfunction RealTimeWatch(gameStartsAt, callback) {\n this.gameStartsAt = RealTimeWatch.parse(gameStartsAt).getTime();\n this.serverTime = RealTimeWatch.getClientTime();\n this.callback = callback;\n this.diff = this.toRemainingTimeArr();\n this.timer = -1;\n}\n\n// Static Methods\n$.extend(RealTimeWatch, {\n getClientTime() {\n return RealTimeWatch.parse(window.ServerTime);\n },\n\n parse(yyyyMMddHHmmss) {\n const y = yyyyMMddHHmmss.slice(0, 4);\n const mIdx = Number(yyyyMMddHHmmss.slice(4, 6)) - 1;\n const d = yyyyMMddHHmmss.slice(6, 8);\n const h = yyyyMMddHHmmss.slice(8, 10);\n const m = yyyyMMddHHmmss.slice(10, 12);\n const s = yyyyMMddHHmmss.slice(12);\n return new Date(y, mIdx, d, h, m, s);\n },\n addZero(num) {\n return '' + (num < 10 ? '0' + num : num);\n },\n getYMDLongArray(ms) {\n const d = new Date(ms);\n return [d.getFullYear(), d.getMonth() + 1, d.getDay(), d.getHours(), d.getMinutes(), d.getSeconds()];\n },\n toYMDLongString(ms) {\n return RealTimeWatch.getYMDLongArray(ms).map(RealTimeWatch.addZero).join('');\n },\n toYMDShortString(ms) {\n return RealTimeWatch.getYMDLongArray(ms).slice(0, 3).map(RealTimeWatch.addZero).join('');\n }\n});\n\nRealTimeWatch.prototype = {\n updateServerTime() {\n this.serverTime.setSeconds(this.serverTime.getSeconds() + 1);\n },\n\n getDiff() {\n return this.gameStartsAt - this.serverTime.getTime();\n },\n\n toRemainingTimeArr() {\n const min = 1000 * 60 * 60;\n const sec = 1000 * 60;\n const diff = this.getDiff();\n\n const h = (diff % (min * 24)) / min;\n const m = (diff % min) / sec;\n const s = (diff % sec) / 1000;\n\n return [h, m, s].map(Math.floor);\n },\n\n stop() {\n clearInterval(this.timer);\n this.timer = -1;\n },\n\n start() {\n if (this.timer > -1) {\n return;\n }\n this.timer = setInterval(() => {\n this.onTick();\n }, 1000);\n },\n\n onTick() {\n this.updateServerTime();\n this.diff = this.toRemainingTimeArr();\n this.callback(this.diff);\n }\n};\n\nexport default RealTimeWatch;\n\n\n/** WEBPACK FOOTER **\n ** ./src/sports/core/realtimeWatch.js\n **/","const Storage = (key) => ({\n get() {\n return JSON.parse(sessionStorage.getItem(key));\n },\n set(value) {\n const val = value !== null && typeof value === 'object' ? JSON.stringify(value) : value;\n sessionStorage.setItem(key, val);\n }\n});\n\nexport default Storage;\n\n\n/** WEBPACK FOOTER **\n ** ./src/sports/core/storage.js\n **/","import Storage from './storage';\n\nfunction useTimeMachine(displayCode, onBack) {\n const performance = window.performance || {};\n const nav = performance.navigation || {};\n const isBackButton = nav.type === 2;\n const storage = Storage(`${displayCode}_${window.utf8Query}`);\n const hasHistory = !!storage.get();\n\n function clearSession() {\n Object.keys(sessionStorage).filter((key) => key.indexOf(displayCode) !== -1).forEach(key => {\n sessionStorage.removeItem(key);\n });\n }\n return {\n check() {\n (hasHistory && isBackButton) ? onBack(storage.get()) : clearSession();\n },\n storage\n };\n}\n\nexport default useTimeMachine;\n\n\n/** WEBPACK FOOTER **\n ** ./src/sports/core/useTimeMachine.js\n **/","import $ from 'jquery';\n/**\n * vClip 에 동적으로 그려질 템플릿 임폴트\n * !필독 : - 확장자명은 hbs로 되어있으나, 통검에서는 jsRender 로 그려짐으로 jsRender 로직을 사용하세요.\n */\nimport basicTypeTmpl from \"./clip.hbs\";\nimport innerListTypeTmpl from './clipInnerListType.hbs';\n\n/**\n * vClip 함수의 기본 옵션값\n * !필독 : $context 의 기본값이 빈 스트링으로 지정되어 있으므로 기입이 되지 않는 다면 문제가 발생 할 수 있습니다.\n * 반드시 입력받을 것 (변수명의 접두사로 $ 를 가지고 있다면 제이쿼리 객체 이어야 합니다)\n * listSelector 의 클래스명이 필요함, (ex 하이라이트 리스트의 ul className)\n * @type {{$context : string, listSelector : string, itemSelector : string, eventType : string, eventClassName : string,\n * vclipSelector : string, dataSelector : {date : string, hit : string, vid : string, link : string, desc : string}}}\n */\nconst DEF_OPTS = {\n $context:'', //필수\n listSelector:'', //필수\n itemSelector:'li',\n exceptClassName:'_no_vclip', // vclip 이 동작하지 않게 할 아이템의 클래스명\n eventType:'click',\n eventClassName:'on',\n removeSelector:'.vclip_sports',\n vclipSelector:'_vClipBox', // 아이디만 입력, #빼고 명칭만 기입\n dataSelector:{\n date:'date',\n hit:'hit',\n vid:'vid',\n link:'link',\n desc:'title',\n },\n rendingType:'basic', // 기본형 외부 랜더링 : basic & 확장됨 리스트내부 랜더링은 inner-list\n rowCount:0 // 한 열의 개수\n};\n\n/**\n * VideoClip 생성자 함수\n * 용도 : 하이라이트 영상 리스트 클릭시 발동되어 하이라이트 리스트 하단에 선택한 영상을 어팬드 해주는 모듈로 개발 되었습니다.\n * !필독 : 해당 모듈은 jQuery, jsRender, SF, KTP 가 사용됩니다. 참조 - http://hehet.dev.daum.net\n */\nfunction VideoClip(options){\n this._options = $.extend({}, DEF_OPTS, options);\n this._$context = this._options.$context;\n this.init();\n}\n\n\n/**\n * 하이라이트 리스트에서 영상 아이탬 클릭시 해당 itemSelector 에 eventClassName 를 달아 주는 매서드\n * (다른 형제 요소들은 eventClassName 제거)\n * @param $currentItem\n */\nVideoClip.prototype.onEventClass = function($currentItem){\n $currentItem.addClass(this._options.eventClassName).siblings().removeClass(this._options.eventClassName);\n};\n/**\n * 하이라이트 리스트에서 영상 아이템 클릭시 해당 itemSelector 에 걸려있는 eventClassName 제거\n * @param $currentItem\n */\nVideoClip.prototype.offEventClass = function($currentItem){\n $currentItem.removeClass(this._options.eventClassName);\n};\n/**\n * kakao tv player 모듈을 로드해 주기 위한 모듈\n * 로드가 진행 되어야 동영상 재생이 가능합니다.\n * 참조 - http://hehet.dev.daum.net/modules/outapi/loadModule/kakaotv/index.html\n */\nVideoClip.prototype.loadKTP = function(){\n SF.loadModule('kakaotv', function(status, module){});\n};\n/**\n * 동적으로 뿌려지는 동영상 영역 (vClip) 의 jsRender 탬플릿에 넘겨줄 데이터를 만들어 줍니다.\n * 백앤드 개발자와 해당 하는 부분의 데이터를 어떤식으로 전달 받을 것인지 협의가 필요합니다.\n * 동적인 부분으로 그려저야 할 데이터가 날짜,조회수,동영상 아이디,링크주소,설명 라고 했을경우\n * 하이라이트 리스트 itemSelector 부분에 data-hit,data-vid,data-link 등으로 전달 받는 것을 가정하고\n * desc 와 date 부분은 이미 하이라이트 영상 리스트에 노출이 됨으로 해당 부분에서 가져오는것으로 설정 되어 있습니다.\n * @param $target\n * @returns {{date, hit : string|*|void, vid, link, desc}}\n */\nVideoClip.prototype.getVClipData = function($target){\n const dataSelector = this._options.dataSelector;\n // data 는 data-attr 를 참조하세요\n const vClipData = {\n date:$target.data(dataSelector.date),\n hit:$.number.addComma($target.data(dataSelector.hit)),\n vid:$target.data(dataSelector.vid),\n link:$target.data(dataSelector.link),\n desc:$target.data(dataSelector.desc),\n };\n return vClipData;\n};\n\n/**\n * jsRender 탬플릿과 getVClipData 를 통해서 지정된 데이터를 listSelector 즉 하이라이트 리스트의\n * 하단 부분에 붙혀주는 랜딩 메서드 입니다.\n *\n * 랜딩 타입이 추가되었습니다. 기본은 basic ( basic, inner-list ) = 현재까지는 두가지 종류가 있습니다.\n * @param data\n * @param rendingType\n * @param rendingIdx\n */\nVideoClip.prototype.renderVClip = function(data, rendingType, rendingIdx){\n const type = rendingType || 'basic';\n const tmplMap = {\n 'basic':basicTypeTmpl,\n 'inner-list':innerListTypeTmpl\n };\n const tmpl = tmplMap[rendingType] || basicTypeTmpl;\n\n if(type === 'basic'){\n const html = $.templates(tmpl).render(data);\n this._$context.find(this._options.listSelector).after(html);\n }\n\n if(type === 'inner-list'){\n const html = $.templates(tmpl).render(data);\n const index = rendingIdx || 0;\n const $targetList = this._$context.find(this._options.listSelector).find(this._options.itemSelector+`[data-row='${index}']`);\n const $target = $targetList.eq($targetList.length-1 || 0);\n $target.after(html);\n }\n\n};\n/**\n * renderVClip 을 통해서 vClip 의 동적인 부분이 랜딩 되었다면,\n * KTP 모듈에 해당하는 video-id 를 넘겨서 영상을 생성해 주는 메서드입니다.\n * 참조 - http://wiki.daumkakao.com/display/keron/Player+IFrame+API\n * @param selectId\n * @param vid\n */\nVideoClip.prototype.createVClip = function(selectId, vid){\n const playerContainer = document.getElementById(selectId);\n const clipLinkId = vid;\n const profile = 'HIGH';\n const playerConfig = {\n type:'VOD',\n service:'daum_searchview',\n id:clipLinkId + '@my',\n profile:profile,\n kakaotv:0,\n wmode:'opaque',\n fs:1\n };\n const player = KTP.Player.create(playerContainer, playerConfig);\n player.load(clipLinkId, profile);\n};\n/**\n * 동적으로 생성된 영역 (vClip) 부분을 제거 하는 메서드 입니다.\n */\nVideoClip.prototype.removeVClip = function(){\n this._$context.find(`#${this._options.vclipSelector}`).parents(this._options.removeSelector).remove();\n};\n/**\n * 하이라이트 리스트의 이벤트 메서드 입니다.\n */\nVideoClip.prototype.bindEvents = function(){\n const that = this;\n that._$context.find(that._options.listSelector).on(that._options.eventType, that._options.itemSelector, function(){\n const $this = $(this);\n if($this.hasClass(that._options.exceptClassName)){\n return;\n }\n that.removeVClip();\n if($this.hasClass(that._options.eventClassName)){\n that.offEventClass($this);\n }else{\n const clipData = that.getVClipData($this);\n const vid = $this.data(that._options.dataSelector.vid);\n that.onEventClass($this);\n that.renderVClip(clipData, that._options.rendingType, $this.data('row'));\n that.createVClip(that._options.vclipSelector, vid);\n }\n });\n};\n\n/**\n * data-row 라는 어트리뷰트를 삽입해 주는 함수이다.\n * rendingType = inner-list 인 상태에서만 사용\n * rendingType 이 inner-list 라면, 즉 리스트 내부로 클립이 삽입 되는 경우라면\n * 몇 번째 열 하단에 넣어야 하는지 몇번째 열인지 구분할 필요가 있다.\n * 여기서 data-row 는 해당하는 열의 가장 마지막에 있는 인덱스를 넣어준다.\n */\nVideoClip.prototype.setRowData = function(){\n const that = this;\n const $targetList = that._$context.find(that._options.listSelector).find(that._options.itemSelector).not('#' + that._options.vclipSelector);\n\n let rowIdx = 0;\n\n $targetList.each(function(i, $el){\n if(i % that._options.rowCount === 0){\n rowIdx += (that._options.rowCount - 1);\n }\n $el.setAttribute('data-row', rowIdx);\n });\n};\n/**\n * 인스턴스 초기화 메서드입니다.\n */\nVideoClip.prototype.init = function(){\n this.setRowData();\n this.loadKTP();\n this.bindEvents();\n};\n\nexport default VideoClip;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/sports/core/videoClip/index.js\n **/","module.exports = \"
    {{:desc}}
    재생횟수{{:hit}} {{:date}}
    \";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/sports/core/videoClip/clip.hbs\n ** module id = 6\n ** module chunks = 0\n **/","module.exports = \"
  • {{:desc}}
    재생횟수{{:hit}} {{:date}}
  • \";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/sports/core/videoClip/clipInnerListType.hbs\n ** module id = 7\n ** module chunks = 0\n **/"],"sourceRoot":""}