{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./wwwroot/src/view/abstract/AbstractView.ts","webpack:///./wwwroot/src/service/GoogleAnalyticsService.ts","webpack:///./wwwroot/src/config/Config.ts","webpack:///./wwwroot/src/view/tab/TabItem.ts","webpack:///./wwwroot/src/view/tab/TabContainer.ts","webpack:///./wwwroot/src/media/YTPlayer.ts","webpack:///./wwwroot/src/App.ts","webpack:///./wwwroot/src/view/CoolingView.ts","webpack:///./wwwroot/src/view/KVView.ts","webpack:///./wwwroot/src/view/EngineeringView.ts","webpack:///./wwwroot/src/view/SoftwareView.ts","webpack:///./wwwroot/src/view/ExperienceView.ts","webpack:///./wwwroot/src/view/AuraView.ts","webpack:///./wwwroot/src/view/PlayerView.ts","webpack:///./wwwroot/src/view/LoadingView.ts","webpack:///./wwwroot/src/ScrollView.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","GSAP","EventEmitter","AbstractView","template","this","$template","emitter","init","resize","reset","onScroll","top","update","arg","updateEvents","transitionIn","css","TweenMax","to","alpha","ease","Linear","easeOut","onComplete","onTransitionComplete","onCompleteParams","Events","ON_TRANSITION_IN_COMPLETE","transitionOut","id","Circ","ON_TRANSITION_OUT_COMPLETE","type","emit","GoogleAnalyticsService","__instance","Error","instance","sendTracking","hitType","eventCategory","eventAction","eventLabel","eventValue","ga","Config","checkMobileDevice","test","navigator","userAgent","substr","TabItem","_super","__extends","resetContent","createContent","$title","find","$label","$desc","$animateCon","tx","_direction","set","x","y","text_tx","createVideo","_this","$videoCon","$video","$videoCover","load","on","event","removeClass","play","delay","pause","TabContainer","$tabContentCon","height","currentItem","outerHeight","setItems","items","tabItems","item","onItemStatus","changeTabItem","easeInOut","addClass","params","YTPlayer","selector","videoId","loop","autoplay","controls","mute","isPlaying","isLoop","hasControl","isAutoPlay","isMute","videoID","createPlayer","player","YT","Player","width","playerVars","rel","events","onReady","onPlayerReady","onStateChange","onPlayerStateChange","VideoEvent","PLAYER_READY","seekTo","ON_PLAYING","ON_PAUSE","playVideo","pauseVideo","stop","stopVideo","time","changeVideo","loadVideoById","$","app","CoolingView","KVView","EngineeringView","SoftwareView","ExperienceView","PlayerView","LoadingView","ScrollView","onWindowResize","scrollTop","ScrollEvent","ON_SCROLL","onWindowScroll","loadingView","myDoc","document","playerApiScript","createElement","src","body","appendChild","firstScriptTag","getElementsByTagName","parentNode","insertBefore","onYouTubeIframeAPIReady","playerView","loopPlayer","each","index","element","preventDefault","trackingCode","tracking","loadYTApi","createViews","renderChildren","targetX","innerWidth","left","viewData","class","ViewClass","setTimeout","createTimer","fixTimer","clearTimer","fixId","clearTimeout","itemId","createTabNav","createTab","$tabNav","btnOffsetX","tabNavBtns","offset","scrollLeft","tabCon","tabItemData","direction","video","tmpArr","itemTotal","className","itemClass","navTrackingCode","category","action","label","$tabNavOuter","btnTotal","$navBtn","this_1","currentTarget","changeNavStatus","scrollNavCon","targetBtn","animate","$introCon","innerHeight","exploreImage","isExplore","createBg","createTitle","createExplore","fromTo","$bgProduct","$colorBlock","transitionTitle","$name","animateData","allSplit","splitTotal","splitItem","ty","flyItem","AuraView","createCarousel","$carousel","trigger","$prev","$next","owlCarousel","margin","touchDrag","mouseDrag","nav","dots","dotsSpeed","createFilterBtn","filterTrackingCode","currentFilter","$colorpicker","$block","$filterBtn","changeBtn","changeFilter","filter","ytPlayer","$closeBtn","eventObject","currentTracking","$progress","$percentText","onProgress","percent","html","toString","scrollTrigger","scrollContent","$scrollTrigger","$scrollContent","getScrollTemplate","scrollToElement","target","fixH","targetTop"],"mappings":"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","file":"assets/js/app.bundle.2e0545.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([17,3]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import $ = require(\"jquery\");\nimport * as GSAP from 'gsap';\nimport EventEmitter = require(\"eventemitter3\");\n\nabstract class AbstractView {\n\n public $template: JQuery;\n public emitter: EventEmitter;\n protected static Events: any = {\n ON_TRANSITION_IN_COMPLETE: \"onTransitionInComplete\",\n ON_TRANSITION_OUT_COMPLETE: \"onTransitionOutComplete\"\n };\n\n protected constructor(template: JQuery) {\n\n this.$template = template;\n this.emitter = new EventEmitter();\n this.init();\n }\n\n public init(): void {\n\n }\n\n public resize(): void {\n\n }\n\n public reset(): void {\n\n }\n\n public onScroll(top: number): void {\n\n }\n\n public update(arg: T): void {\n\n }\n\n public updateEvents(arg: T): void {\n\n }\n\n public transitionIn(): void {\n\n this.$template.css(\"display\", \"block\");\n this.resize();\n GSAP.TweenMax.to(this.$template, 0.3, {\n alpha: 1,\n ease: GSAP.Linear.easeOut,\n onComplete: this.onTransitionComplete.bind(this),\n onCompleteParams: [AbstractView.Events.ON_TRANSITION_IN_COMPLETE]\n });\n }\n\n public transitionOut(id: number = -1): void {\n\n GSAP.TweenMax.to(this.$template, 0.3, {\n alpha: 0,\n ease: GSAP.Circ.easeOut,\n onComplete: this.onTransitionComplete.bind(this),\n onCompleteParams: [AbstractView.Events.ON_TRANSITION_OUT_COMPLETE, id]\n });\n }\n\n public onTransitionComplete(type: string, id?: number): void {\n\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n this.reset();\n this.$template.css(\"display\", \"none\");\n }\n this.emitter.emit(type, {\n type: type,\n id: id\n });\n\n }\n\n}\n\nexport = AbstractView;","import EventEmitter = require(\"eventemitter3\");\n\nclass GoogleAnalyticsService {\n private static __instance: GoogleAnalyticsService;\n private emitter: EventEmitter;\n\n private constructor() {\n if (GoogleAnalyticsService.__instance) throw new Error('Use ApiService.instance() instead of new.');\n GoogleAnalyticsService.__instance = this;\n }\n\n public static instance(): GoogleAnalyticsService {\n if (!GoogleAnalyticsService.__instance) {\n GoogleAnalyticsService.__instance = new GoogleAnalyticsService();\n }\n return GoogleAnalyticsService.__instance;\n }\n\n public init(): void {\n this.emitter = new EventEmitter();\n }\n\n public sendTracking(\n hitType: string = \"event\",\n eventCategory: string = 'button',\n eventAction: string = 'clicked',\n eventLabel: string = '',\n eventValue: number = -1) {\n\n ga('send', hitType, eventCategory, eventAction, eventLabel);\n }\n}\n\nexport = GoogleAnalyticsService;","class Config {\n\n private static __instance: Config;\n\n constructor() {\n if (Config.__instance) throw new Error('Use Config.instance() instead of new.');\n Config.__instance = this;\n }\n public static instance(): Config {\n if (!Config.__instance) {\n Config.__instance = new Config();\n }\n return Config.__instance;\n }\n\n public init(): void {\n \n }\n\n public static checkMobileDevice(): boolean {\n return (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(navigator.userAgent) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(navigator.userAgent.substr(0, 4)));\n };\n}\n\nexport = Config;","import * as GSAP from 'gsap';\nimport AbstractView = require(\"../abstract/AbstractView\");\nimport Config = require(\"../../config/Config\");\n\n\nclass TabItem extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n }\n\n reset(): void {\n this.resetContent();\n }\n\n\n private $title: JQuery;\n private $label: JQuery;\n private $desc: JQuery;\n private $animateCon: JQuery;\n\n public createContent(): void {\n\n this.$title = this.$template.find(\".info-title\");\n this.$label = this.$template.find(\".info-label\");\n this.$desc = this.$template.find(\".info-desc\");\n\n this.$animateCon = this.$template.find(\".animateCon\");\n this.resetContent();\n }\n\n public resetContent(): void {\n\n let tx: number = 100;\n if (this._direction == \"Row\") {\n tx = -1 * tx;\n }\n\n let text_tx: number = 40;\n GSAP.TweenMax.set(this.$animateCon, {\n x: tx + \"%\",\n alpha: 0\n });\n GSAP.TweenMax.set(this.$title, {\n y: text_tx + \"%\",\n alpha: 0\n });\n GSAP.TweenMax.set(this.$label, {\n y: text_tx + \"%\",\n alpha: 0\n });\n GSAP.TweenMax.set(this.$desc, {\n y: text_tx + \"%\",\n alpha: 0\n });\n }\n\n\n private $video: any;\n private $videoCon: JQuery;\n private $videoCover: JQuery;\n\n public createVideo(): void {\n this.$videoCon = this.$template.find(\".videoCon\");\n this.$video = this.$videoCon.find(\".video\");\n this.$videoCover = this.$videoCon.find(\".cover\");\n this.$video.get(0).load();\n this.$video.on(\"loadedmetadata\", (event: JQuery.Event) => {\n if (!Config.checkMobileDevice()) {\n this.$videoCover.removeClass(\"active\");\n }\n });\n }\n\n\n private _direction: string;\n public set direction(d: string) {\n this._direction = d;\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n\n if (this.$video) {\n if (!Config.checkMobileDevice()) {\n this.$video.get(0).play();\n }\n }\n\n GSAP.TweenMax.to(this.$animateCon, 0.5, {\n x: \"0%\",\n alpha: 1,\n ease: GSAP.Circ.easeOut\n });\n GSAP.TweenMax.to(this.$title, 1, {\n delay: 0.3,\n y: \"0%\",\n alpha: 1,\n ease: GSAP.Circ.easeOut\n });\n GSAP.TweenMax.to(this.$label, 1, {\n delay: 0.3,\n y: \"0%\",\n alpha: 1,\n ease: GSAP.Circ.easeOut\n });\n GSAP.TweenMax.to(this.$desc, 1, {\n delay: 0.5,\n y: \"0%\",\n alpha: 1,\n ease: GSAP.Circ.easeOut\n });\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n if (this.$video) this.$video.get(0).pause();\n }\n super.onTransitionComplete(type, id);\n }\n}\n\nexport = TabItem;","import * as GSAP from 'gsap';\nimport AbstractView = require(\"../abstract/AbstractView\");\nimport TabItem = require(\"./TabItem\");\n\n\nclass TabContainer extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n // this.createContent();\n }\n\n resize(): void {\n if (this.$tabContentCon) {\n this.$tabContentCon.height(this.currentItem.$template.outerHeight());\n }\n }\n\n /*\n * TabContent\n * */\n private $tabContentCon: JQuery;\n private currentItem: TabItem;\n private tabItems: any[];\n\n public setItems(items: any[]): void {\n this.tabItems = items;\n this.createContent();\n }\n\n private createContent(): void {\n this.$tabContentCon = this.$template.find(\".tabcontentCon\");\n for (let i: number = 0; i < this.tabItems.length; i++) {\n let item: any = this.tabItems[i];\n item.emitter.on(TabItem.Events.ON_TRANSITION_IN_COMPLETE, this.onItemStatus.bind(this));\n item.emitter.on(TabItem.Events.ON_TRANSITION_OUT_COMPLETE, this.onItemStatus.bind(this));\n }\n }\n\n public changeTabItem(id: number): void {\n\n if (this.currentItem) {\n this.currentItem.transitionOut(id);\n return;\n }\n this.currentItem = this.tabItems[id];\n GSAP.TweenMax.to(this.$tabContentCon, 0.5, {\n css: {\n height: this.currentItem.$template.outerHeight()\n },\n ease: GSAP.Circ.easeInOut,\n onComplete: () => {\n this.currentItem.$template.addClass(\"active\");\n this.currentItem.transitionIn();\n }\n });\n }\n\n private onItemStatus(params: any): void {\n\n if (params.type == TabItem.Events.ON_TRANSITION_IN_COMPLETE) {\n this.resize();\n }\n\n if (params.type == TabItem.Events.ON_TRANSITION_OUT_COMPLETE) {\n this.currentItem.$template.removeClass(\"active\");\n this.currentItem = null;\n this.changeTabItem(params.id);\n }\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n this.currentItem.transitionIn();\n this.resize();\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n this.currentItem.reset();\n }\n super.onTransitionComplete(type, id);\n }\n}\n\nexport = TabContainer;","import EventEmitter = require(\"eventemitter3\");\n\n// import 'youtube';\n\nclass YTPlayer {\n\n private player: any;\n public isPlaying: boolean;\n public isLoop: number;\n public isMute: number;\n public isAutoPlay: number;\n public hasControl: number;\n public videoID: string;\n public selector: string;\n public emitter: EventEmitter;\n public static VideoEvent: any = {\n PLAYER_READY: \"playerReady\",\n ON_PLAYING: \"onPlaying\",\n ON_PAUSE: \"onPause\"\n };\n\n constructor(selector: string, videoId: string, loop: boolean = false, autoplay: boolean = false, controls: boolean = true, mute: boolean = false) {\n\n this.isPlaying = false;\n this.isLoop = (loop == true) ? 1 : 0;\n this.hasControl = (controls == true) ? 1 : 0;\n this.isAutoPlay = (autoplay == true) ? 1 : 0;\n this.isMute = (mute == true) ? 1 : 0;\n\n this.videoID = videoId;\n this.selector = selector;\n this.emitter = new EventEmitter();\n this.createPlayer();\n }\n\n private createPlayer(): void {\n\n this.player = new (window).YT.Player(this.selector, {\n width: '1920',\n height: '1080',\n videoId: this.videoID,\n playerVars: {\n 'autoplay': this.isAutoPlay,\n 'loop': 0,\n 'controls': this.hasControl,\n 'rel': 0,\n 'mute': this.isMute\n },\n events: {\n 'onReady': this.onPlayerReady.bind(this),\n 'onStateChange': this.onPlayerStateChange.bind(this)\n }\n });\n }\n\n private onPlayerReady(event: any) {\n this.emitter.emit(YTPlayer.VideoEvent.PLAYER_READY);\n }\n\n private onPlayerStateChange(event: any) {\n\n if (event.data == -1) {\n //unstarted\n }\n\n if (event.data == 0) {\n //ended\n this.isPlaying = false;\n if (this.isLoop == 1) {\n this.seekTo(0);\n this.play();\n }\n }\n\n if (event.data == 1) {\n //playing\n this.isPlaying = true;\n this.emitter.emit(YTPlayer.VideoEvent.ON_PLAYING);\n }\n\n if (event.data == 2) {\n //paused\n this.isPlaying = false;\n this.emitter.emit(YTPlayer.VideoEvent.ON_PAUSE);\n }\n\n if (event.data == 3) {\n //buffering\n }\n\n if (event.data == 5) {\n //video cued\n }\n }\n\n public play(): void {\n this.player.playVideo();\n }\n\n public pause(): void {\n this.player.pauseVideo();\n }\n\n public stop(): void {\n this.player.stopVideo();\n }\n\n public seekTo(time: number): void {\n this.player.seekTo(time);\n }\n\n public changeVideo(id: string): void {\n this.videoID = id;\n this.player.loadVideoById(id);\n }\n\n}\n\nexport = YTPlayer;","import $ = require('jquery');\nimport 'preload-js';\nimport Config = require(\"./config/Config\");\nimport CoolingView = require(\"./view/CoolingView\");\nimport KVView = require(\"./view/KVView\");\nimport EngineeringView = require(\"./view/EngineeringView\");\nimport SoftwareView = require(\"./view/SoftwareView\");\nimport ExperienceView = require(\"./view/ExperienceView\");\nimport PlayerView = require(\"./view/PlayerView\");\nimport LoadingView = require(\"./view/LoadingView\");\nimport ScrollView = require(\"./ScrollView\");\nimport GoogleAnalyticsService = require(\"./service/GoogleAnalyticsService\");\nimport YTPlayer = require(\"./media/YTPlayer\");\n\nmodule app {\n\n // declare var $: any;\n\n $(function () {\n let config: Config = Config.instance();\n config.init();\n\n $(window).on(\"resize\", onWindowResize);\n\n createScrollView();\n createLoadingView();\n loadYTApi();\n createViews();\n // loadAssets();\n });\n\n\n /*\n * YoutubeApi\n * */\n function loadYTApi() {\n const myDoc = (window).document;\n let playerApiScript = myDoc.createElement('script');\n playerApiScript.type = 'text/javascript';\n playerApiScript.src = 'https://www.youtube.com/iframe_api';\n myDoc.body.appendChild(playerApiScript);\n let firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(playerApiScript, firstScriptTag);\n (window).onYouTubeIframeAPIReady = () => {\n createPlayerView();\n createLoopPlayer();\n createVideoBtn();\n };\n }\n\n\n let loader: createjs.LoadQueue;\n let assetArr: string[] = [\n \"assets/img/kv/bg-kv.jpg\",\n \"assets/img/kv/product-kv.png\",\n \"assets/img/cooling/parallax-bg-cooling.jpg\",\n \"assets/img/engineering/parallax-bg-engineering.jpg\",\n \"assets/img/software/parallax-bg-software.jpg\",\n ];\n\n function loadAssets() {\n\n let loadArr: any[] = [];\n for (let i: number = 0; i < assetArr.length; i++) {\n loadArr.push({id: assetArr[i], src: assetArr[i]});\n }\n\n loader = new createjs.LoadQueue();\n loader.on(\"progress\", (event: any) => {\n let percent: number = Math.floor(event.loaded * 100);\n loadingView.onProgress(percent);\n });\n loader.on(\"complete\", () => {\n createViews();\n });\n loader.loadManifest(loadArr);\n }\n\n\n let scrollView: ScrollView;\n let scrollTop: number = 0;\n\n function createScrollView(): void {\n scrollTop = 0;\n scrollView = new ScrollView($(window), $(\"body,html\"));\n scrollView.emitter.on(ScrollView.ScrollEvent.ON_SCROLL, onWindowScroll);\n }\n\n function onWindowScroll(result: number): void {\n scrollTop = result;\n for (let key in renderChildren) {\n if (renderChildren.hasOwnProperty(key)) {\n renderChildren[key].onScroll(scrollTop);\n }\n }\n }\n\n\n function onWindowResize(event: JQuery.Event) {\n fixAsusWrapper();\n for (let key in renderChildren) {\n if (renderChildren.hasOwnProperty(key)) {\n renderChildren[key].resize();\n }\n }\n onWindowScroll(scrollTop);\n }\n\n function fixAsusWrapper() {\n let baseW: number = $(\"#special-sectionOverview, #sectionOverview\").width();\n let targetX: number = (baseW - window.innerWidth) * 0.5;\n $(\"#fixASUSWrapper\").css({\n 'left': targetX + 'px',\n 'width': window.innerWidth + 'px'\n });\n }\n\n\n let playerView: PlayerView;\n\n function createPlayerView() {\n playerView = new PlayerView($(\"#youtubeView\"));\n }\n\n let loopPlayer: YTPlayer;\n\n function createLoopPlayer() {\n loopPlayer = new YTPlayer(\"ytPlayer-loop\", \"qtuGvYwVMBs\", true, true, false, true);\n loopPlayer.emitter.on(YTPlayer.VideoEvent.PLAYER_READY, () => {\n });\n loopPlayer.emitter.on(YTPlayer.VideoEvent.ON_PLAYING, () => {\n $(\".coverBtn\").addClass(\"video-playing\");\n });\n }\n\n function createVideoBtn(): void {\n $(\".videoBtn\").each((index, element) => {\n $(element).addClass(\"active\");\n $(element).on(\"click tap\", (event: JQuery.Event) => {\n event.preventDefault();\n let trackingCode: string = $(element).data(\"tracking\");\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n 'videos',\n 'played',\n trackingCode\n );\n playerView.tracking = trackingCode;\n playerView.playVideo($(element).data(\"video\"));\n });\n });\n }\n\n\n let loadingView: LoadingView;\n\n function createLoadingView() {\n loadingView = new LoadingView($(\"#loadingView\"));\n }\n\n\n /*\n * Views\n * */\n let viewData: any[] = [\n {selector: \"#kvView\", class: KVView},\n {selector: \"#coolingView\", class: CoolingView},\n {selector: \"#experienceView\", class: ExperienceView},\n {selector: \"#engineeringView\", class: EngineeringView},\n {selector: \"#softwareView\", class: SoftwareView}\n ];\n let renderChildren: any = {};\n\n function createViews() {\n\n for (let i: number = 0; i < viewData.length; i++) {\n let ViewClass: any = viewData[i][\"class\"];\n renderChildren[viewData[i][\"selector\"]] = new ViewClass($(viewData[i][\"selector\"]));\n }\n setTimeout(() => {\n onWindowResize(null);\n loadingView.transitionOut();\n createTimer();\n }, 1000);\n }\n\n\n let fixId: number = 0;\n let fixTimer: any;\n\n function createTimer() {\n if (fixTimer) clearTimer();\n if (fixId < 3) {\n fixTimer = window.setTimeout(() => {\n fixId++;\n clearTimer();\n onWindowResize(null);\n createTimer();\n }, 500);\n }\n }\n\n function clearTimer() {\n window.clearTimeout(fixTimer);\n fixTimer = null;\n }\n\n}","import AbstractView = require(\"./abstract/AbstractView\");\nimport TabContainer = require(\"./tab/TabContainer\");\nimport TabItem = require(\"./tab/TabItem\");\nimport Config = require(\"../config/Config\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\n\nclass CoolingView extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n this.itemId = 0;\n this.createTabNav();\n this.createTab();\n }\n\n\n resize(): void {\n if (this.$tabNav) {\n let btnOffsetX: number = this.tabNavBtns[this.itemId].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.scrollLeft(targetX);\n }\n if (this.tabCon) this.tabCon.resize();\n }\n\n /*\n * Tab\n * */\n private tabCon: TabContainer;\n private tabItemData: any[];\n\n private createTab(): void {\n this.tabItemData = [\n {selector: \"overview\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"loop\", class: TabItem, direction: \"Row\", video: true},\n {selector: \"spreader\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"fans\", class: TabItem, direction: \"Reverse\", video: true},\n {selector: \"db0\", class: TabItem, direction: \"Row\", video: false}\n ];\n\n let tmpArr: any[] = [];\n let itemTotal: number = this.tabItemData.length;\n for (let i: number = 0; i < itemTotal; i++) {\n\n let className: string = \".\" + this.tabItemData[i][\"selector\"] + \"-item\";\n let itemClass: any = this.tabItemData[i][\"class\"];\n let item: any = new itemClass(this.$template.find(className));\n item.direction = this.tabItemData[i][\"direction\"];\n item.createContent();\n if (this.tabItemData[i][\"video\"]) item.createVideo();\n\n tmpArr.push(item);\n }\n\n this.tabCon = new TabContainer(this.$template.find(\".tabCon\"));\n this.tabCon.setItems(tmpArr);\n this.tabCon.changeTabItem(this.itemId);\n }\n\n\n /*\n * TabNav\n * */\n private itemId: number;\n private $tabNavOuter: JQuery;\n private $tabNav: JQuery;\n private tabNavBtns: JQuery[];\n private navTrackingCode: any[];\n\n private createTabNav(): void {\n\n this.navTrackingCode = [\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-cooling-overview\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-cooling-overview-infinity-loop-cooling\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-cooling-overview-extra-large-heat-spreader\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-cooling-overview-axial-tech-fans\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-cooling-overview-0db\"}\n ];\n\n this.$tabNavOuter = this.$template.find(\".tabnavCon\");\n this.$tabNav = this.$template.find(\".tabnav\");\n\n this.tabNavBtns = [];\n let btnTotal: number = this.$tabNav.find(\".tabnav-item\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n let $navBtn: JQuery = this.$tabNav.find(\".tabnav-item:eq(\" + i + \")\").find(\".tabnav-link\");\n this.tabNavBtns.push($navBtn);\n\n $navBtn.on(\"rollover mouseenter\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if (Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").addClass(\"isover\");\n });\n $navBtn.on(\"rollout mouseleave\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if (Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").removeClass(\"isover\");\n });\n $navBtn.on(\"click tap\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n // @ts-ignore\n this.itemId = event.data[\"id\"];\n this.tabCon.changeTabItem(this.itemId);\n this.changeNavStatus(this.itemId);\n this.scrollNavCon(this.itemId);\n\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n this.navTrackingCode[i][\"category\"],\n this.navTrackingCode[i][\"action\"],\n this.navTrackingCode[i][\"label\"]\n )\n });\n }\n this.changeNavStatus(this.itemId);\n }\n\n private changeNavStatus(id: number): void {\n\n for (let i: number = 0; i < this.tabNavBtns.length; i++) {\n let targetBtn: JQuery = this.tabNavBtns[i];\n if (i == id) {\n targetBtn.addClass(\"active\");\n } else {\n targetBtn.removeClass(\"active\");\n }\n }\n }\n\n private scrollNavCon(id: number): void {\n\n let btnOffsetX: number = this.tabNavBtns[id].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.animate({\n scrollLeft: targetX\n }, 700);\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n if (this.tabCon) this.tabCon.transitionIn();\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n\n }\n super.onTransitionComplete(type, id);\n }\n}\n\nexport = CoolingView;","import * as GSAP from 'gsap';\nimport AbstractView = require(\"./abstract/AbstractView\");\nimport YTPlayer = require(\"../media/YTPlayer\");\n\n\nclass KVView extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n onScroll(top: number): void {\n if (this.$introCon) {\n let t: number = this.$introCon.offset().top - (window.innerHeight / 2 + 100);\n if (top > t) {\n this.exploreImage();\n }\n }\n }\n\n init(): void {\n this.isExplore = false;\n this.createBg();\n // this.createYTVideo();\n this.createTitle();\n this.createExplore();\n\n GSAP.TweenMax.fromTo(this.$bgProduct, 1, {\n delay: 1,\n y: 50,\n alpha: 0,\n }, {\n delay: 1,\n y: 0,\n alpha: 1,\n ease: GSAP.Circ.easeOut,\n onComplete: function () {\n\n this.$colorBlock.addClass(\"kvCycleFilter\");\n GSAP.TweenMax.to(this.$colorBlock, 0.5, {\n alpha: 1,\n });\n this.transitionTitle();\n\n }.bind(this)\n });\n }\n\n /*private ytPlayer: YTPlayer;\n private videoBtn: JQuery;\n\n private createYTVideo(): void {\n\n this.videoBtn = this.$template.find(\".coverBtn\");\n this.ytPlayer = new YTPlayer(\"ytPlayer-loop\", \"VKfDUfansAA\", true, true, false, true);\n this.ytPlayer.emitter.on(YTPlayer.VideoEvent.PLAYER_READY, () => {\n });\n this.ytPlayer.emitter.on(YTPlayer.VideoEvent.ON_PLAYING, () => {\n this.videoBtn.removeClass(\"active\");\n });\n }*/\n\n\n private isTitleShow: boolean;\n private $name: JQuery;\n private $title: JQuery;\n\n private createTitle(): void {\n this.$name = this.$template.find(\".product-name\");\n this.$title = this.$template.find(\".kv-title\");\n }\n\n private transitionTitle(): void {\n GSAP.TweenMax.fromTo(this.$name, 1, {\n alpha: 0\n },\n {\n alpha: 1,\n ease: GSAP.Linear.easeOut\n });\n\n this.$title.addClass(\"active\");\n }\n\n private $bgProduct: JQuery;\n private $colorBlock: JQuery;\n\n private createBg(): void {\n this.$bgProduct = this.$template.find(\".product\");\n this.$colorBlock = this.$template.find(\".colorBlock\");\n }\n\n private animateData: any[];\n private allSplit: JQuery[];\n private $introCon: JQuery;\n\n private createExplore(): void {\n\n this.animateData = [\n {x: -10, y: -30},\n {x: -30, y: -40},\n {x: -50, y: -50},\n {x: -72, y: -60},\n {x: -90, y: -80}\n ];\n this.allSplit = [];\n this.$introCon = this.$template.find(\".introCon\");\n\n let splitTotal: number = this.$template.find(\".splitImg\").length;\n for (let i: number = 0; i < splitTotal; i++) {\n let splitItem: JQuery = this.$template.find(\".split-\" + (i + 1));\n this.allSplit.push(splitItem);\n\n GSAP.TweenMax.set(splitItem, {\n x: \"-50%\",\n y: \"-50%\",\n alpha: 0\n });\n }\n }\n\n private isExplore: boolean;\n\n private exploreImage(): void {\n\n if (this.isExplore) return;\n this.isExplore = true;\n\n for (let i: number = 0; i < this.allSplit.length; i++) {\n let splitItem: JQuery = this.allSplit[i];\n let tx: number = this.animateData[i][\"x\"];\n let ty: number = this.animateData[i][\"y\"];\n GSAP.TweenMax.to(splitItem, 1, {\n x: tx + \"%\",\n y: ty + \"%\",\n alpha: 1,\n ease: GSAP.Circ.easeOut,\n onComplete: function (id: number) {\n if (id == this.allSplit.length - 1) {\n let flyItem: JQuery = this.allSplit[1];\n GSAP.TweenMax.to(flyItem, 0.7, {\n y: \"-55%\",\n ease: GSAP.Circ.easeOut\n });\n }\n }.bind(this),\n onCompleteParams: [i]\n });\n }\n }\n}\n\nexport = KVView;","import AbstractView = require(\"./abstract/AbstractView\");\nimport TabContainer = require(\"./tab/TabContainer\");\nimport TabItem = require(\"./tab/TabItem\");\nimport Config = require(\"../config/Config\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\n\nclass EngineeringView extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n this.itemId = 0;\n this.createTabNav();\n this.createTab();\n }\n\n\n resize(): void {\n if (this.$tabNav) {\n let btnOffsetX: number = this.tabNavBtns[this.itemId].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.scrollLeft(targetX);\n }\n if (this.tabCon) this.tabCon.resize();\n }\n\n /*\n * Tab\n * */\n private tabCon: TabContainer;\n private tabItemData: any[];\n\n private createTab(): void {\n this.tabItemData = [\n {selector: \"overview\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"technology\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"sap2\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"frame\", class: TabItem, direction: \"Reverse\", video: false}\n ];\n\n let tmpArr: any[] = [];\n let itemTotal: number = this.tabItemData.length;\n for (let i: number = 0; i < itemTotal; i++) {\n\n let className: string = \".\" + this.tabItemData[i][\"selector\"] + \"-item\";\n let itemClass: any = this.tabItemData[i][\"class\"];\n let item: any = new itemClass(this.$template.find(className));\n item.direction = this.tabItemData[i][\"direction\"];\n item.createContent();\n if (this.tabItemData[i][\"video\"]) item.createVideo();\n\n tmpArr.push(item);\n }\n\n this.tabCon = new TabContainer(this.$template.find(\".tabCon\"));\n this.tabCon.setItems(tmpArr);\n this.tabCon.changeTabItem(this.itemId);\n }\n\n\n /*\n * TabNav\n * */\n private itemId: number;\n private $tabNavOuter: JQuery;\n private $tabNav: JQuery;\n private tabNavBtns: JQuery[];\n\n private navTrackingCode: any[];\n\n private createTabNav(): void {\n\n this.navTrackingCode = [\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-engineering-overview\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-engineering-overview-auto-extreme\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-engineering-overview-sapii\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-engineering-overview-reinforced-frame\"}\n ];\n\n this.$tabNavOuter = this.$template.find(\".tabnavCon\");\n this.$tabNav = this.$template.find(\".tabnav\");\n\n this.tabNavBtns = [];\n let btnTotal: number = this.$tabNav.find(\".tabnav-item\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n let $navBtn: JQuery = this.$tabNav.find(\".tabnav-item:eq(\" + i + \")\").find(\".tabnav-link\");\n this.tabNavBtns.push($navBtn);\n\n $navBtn.on(\"rollover mouseenter\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if(Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").addClass(\"isover\");\n });\n $navBtn.on(\"rollout mouseleave\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if(Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").removeClass(\"isover\");\n });\n $navBtn.on(\"click tap\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n // @ts-ignore\n this.itemId = event.data[\"id\"];\n this.tabCon.changeTabItem(this.itemId);\n this.changeNavStatus(this.itemId);\n this.scrollNavCon(this.itemId);\n\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n this.navTrackingCode[i][\"category\"],\n this.navTrackingCode[i][\"action\"],\n this.navTrackingCode[i][\"label\"]\n )\n });\n }\n this.changeNavStatus(this.itemId);\n }\n\n private changeNavStatus(id: number): void {\n\n for (let i: number = 0; i < this.tabNavBtns.length; i++) {\n let targetBtn: JQuery = this.tabNavBtns[i];\n if (i == id) {\n targetBtn.addClass(\"active\");\n } else {\n targetBtn.removeClass(\"active\");\n }\n }\n }\n\n private scrollNavCon(id: number): void {\n\n let btnOffsetX: number = this.tabNavBtns[id].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.animate({\n scrollLeft: targetX\n }, 700);\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n if(this.tabCon) this.tabCon.transitionIn();\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n\n }\n super.onTransitionComplete(type, id);\n }\n}\n\nexport = EngineeringView;","import AbstractView = require(\"./abstract/AbstractView\");\nimport TabContainer = require(\"./tab/TabContainer\");\nimport TabItem = require(\"./tab/TabItem\");\nimport Config = require(\"../config/Config\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\n\nclass SoftwareView extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n this.itemId = 0;\n this.createTabNav();\n this.createTab();\n }\n\n\n resize(): void {\n if (this.$tabNav) {\n let btnOffsetX: number = this.tabNavBtns[this.itemId].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.scrollLeft(targetX);\n }\n if (this.tabCon) this.tabCon.resize();\n }\n\n /*\n * Tab\n * */\n private tabCon: TabContainer;\n private tabItemData: any[];\n\n private createTab(): void {\n this.tabItemData = [\n {selector: \"overview\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"gpu\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"quantumcloud\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"xsplit\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"wtfast\", class: TabItem, direction: \"Row\", video: false},\n ];\n\n let tmpArr: any[] = [];\n let itemTotal: number = this.tabItemData.length;\n for (let i: number = 0; i < itemTotal; i++) {\n\n let className: string = \".\" + this.tabItemData[i][\"selector\"] + \"-item\";\n let itemClass: any = this.tabItemData[i][\"class\"];\n let item: any = new itemClass(this.$template.find(className));\n item.direction = this.tabItemData[i][\"direction\"];\n item.createContent();\n if (this.tabItemData[i][\"video\"]) item.createVideo();\n\n tmpArr.push(item);\n }\n\n this.tabCon = new TabContainer(this.$template.find(\".tabCon\"));\n this.tabCon.setItems(tmpArr);\n this.tabCon.changeTabItem(this.itemId);\n }\n\n\n /*\n * TabNav\n * */\n private itemId: number;\n private $tabNavOuter: JQuery;\n private $tabNav: JQuery;\n private tabNavBtns: JQuery[];\n\n private navTrackingCode: any[];\n\n private createTabNav(): void {\n\n this.navTrackingCode = [\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-software-overview\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-software-overview-gtii\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-software-overview-qci\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-software-overview-xsplit\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-software-overview-wtfast\"}\n ];\n\n this.$tabNavOuter = this.$template.find(\".tabnavCon\");\n this.$tabNav = this.$template.find(\".tabnav\");\n /*this.$tabNav.on(\"scroll\", (event: JQueryEventObject) => {\n event.preventDefault();\n });*/\n\n this.tabNavBtns = [];\n let btnTotal: number = this.$tabNav.find(\".tabnav-item\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n let $navBtn: JQuery = this.$tabNav.find(\".tabnav-item:eq(\" + i + \")\").find(\".tabnav-link\");\n this.tabNavBtns.push($navBtn);\n\n $navBtn.on(\"rollover mouseenter\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if (Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").addClass(\"isover\");\n });\n $navBtn.on(\"rollout mouseleave\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if (Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").removeClass(\"isover\");\n });\n $navBtn.on(\"click tap\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n // @ts-ignore\n this.itemId = event.data[\"id\"];\n this.tabCon.changeTabItem(this.itemId);\n this.changeNavStatus(this.itemId);\n this.scrollNavCon(this.itemId);\n\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n this.navTrackingCode[i][\"category\"],\n this.navTrackingCode[i][\"action\"],\n this.navTrackingCode[i][\"label\"]\n )\n });\n }\n this.changeNavStatus(this.itemId);\n }\n\n private changeNavStatus(id: number): void {\n\n for (let i: number = 0; i < this.tabNavBtns.length; i++) {\n let targetBtn: JQuery = this.tabNavBtns[i];\n if (i == id) {\n targetBtn.addClass(\"active\");\n } else {\n targetBtn.removeClass(\"active\");\n }\n }\n }\n\n private scrollNavCon(id: number): void {\n\n let btnOffsetX: number = this.tabNavBtns[id].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.animate({\n scrollLeft: targetX\n }, 700);\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n if (this.tabCon) this.tabCon.transitionIn();\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n\n }\n super.onTransitionComplete(type, id);\n }\n}\n\nexport = SoftwareView;","import 'owl.carousel';\nimport AbstractView = require(\"./abstract/AbstractView\");\nimport TabContainer = require(\"./tab/TabContainer\");\nimport TabItem = require(\"./tab/TabItem\");\nimport AuraView = require(\"./AuraView\");\nimport Config = require(\"../config/Config\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\n\nclass ExperienceView extends AbstractView {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n this.itemId = 0;\n this.createTabNav();\n this.createTab();\n this.createCarousel();\n }\n\n\n resize(): void {\n if (this.$carousel) {\n this.$carousel.trigger('refresh.owl.carousel');\n }\n if (this.$tabNav) {\n let btnOffsetX: number = this.tabNavBtns[this.itemId].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.scrollLeft(targetX);\n }\n if (this.tabCon) this.tabCon.resize();\n }\n\n /*\n * Carousel\n * */\n private $prev: JQuery;\n private $next: JQuery;\n private $carousel: JQuery;\n\n private createCarousel() {\n\n this.$prev = this.$template.find(\".carousel-control-prev\");\n this.$next = this.$template.find(\".carousel-control-next\");\n this.$carousel = this.$template.find(\"#experienceCarousel\");\n\n this.$prev.on(\"click tap\", (event: JQueryEventObject) => {\n event.preventDefault();\n this.$carousel.trigger('prev.owl.carousel');\n });\n this.$next.on(\"click tap\", (event: JQueryEventObject) => {\n event.preventDefault();\n this.$carousel.trigger('next.owl.carousel');\n });\n this.$carousel.owlCarousel({\n items: 1,\n margin: 10,\n touchDrag: true,\n mouseDrag: true,\n nav: false,\n dots: true,\n dotsSpeed: 800\n });\n }\n\n /*\n * Tab\n * */\n private tabCon: TabContainer;\n private tabItemData: any[];\n\n private createTab(): void {\n this.tabItemData = [\n {selector: \"overview\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"aura\", class: AuraView, direction: \"Row\", video: false},\n {selector: \"stealth\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"bios\", class: TabItem, direction: \"Reverse\", video: false},\n {selector: \"fanconnect\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"shroud\", class: TabItem, direction: \"Row\", video: false},\n {selector: \"gsync\", class: TabItem, direction: \"Reverse\", video: false}\n ];\n\n let tmpArr: any[] = [];\n let itemTotal: number = this.tabItemData.length;\n for (let i: number = 0; i < itemTotal; i++) {\n\n let className: string = \".\" + this.tabItemData[i][\"selector\"] + \"-item\";\n let itemClass: any = this.tabItemData[i][\"class\"];\n let item: any = new itemClass(this.$template.find(className));\n item.direction = this.tabItemData[i][\"direction\"];\n item.createContent();\n if (this.tabItemData[i][\"video\"]) item.createVideo();\n\n tmpArr.push(item);\n }\n\n this.tabCon = new TabContainer(this.$template.find(\".tabCon\"));\n this.tabCon.setItems(tmpArr);\n this.tabCon.changeTabItem(this.itemId);\n }\n\n\n /*\n * TabNav\n * */\n private itemId: number;\n private $tabNavOuter: JQuery;\n private $tabNav: JQuery;\n private tabNavBtns: JQuery[];\n\n private navTrackingCode: any[];\n\n private createTabNav(): void {\n\n this.navTrackingCode = [\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-sync\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-stealth-mode\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-dual-bios\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-fanconnectii\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-shroud-design\"},\n {category: \"Tabs\", action: \"clicked\", label: \"matrix2080ti-experience-overview-nvidia-gsync\"}\n ];\n\n this.$tabNavOuter = this.$template.find(\".tabnavCon\");\n this.$tabNav = this.$template.find(\".tabnav\");\n /*this.$tabNav.on(\"scroll\", (event: JQueryEventObject) => {\n event.preventDefault();\n });*/\n\n this.tabNavBtns = [];\n let btnTotal: number = this.$tabNav.find(\".tabnav-item\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n let $navBtn: JQuery = this.$tabNav.find(\".tabnav-item:eq(\" + i + \")\").find(\".tabnav-link\");\n this.tabNavBtns.push($navBtn);\n\n $navBtn.on(\"rollover mouseenter\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if(Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").addClass(\"isover\");\n });\n $navBtn.on(\"rollout mouseleave\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n if(Config.checkMobileDevice()) return;\n $(event.currentTarget).find(\".text\").removeClass(\"isover\");\n });\n $navBtn.on(\"click tap\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n // @ts-ignore\n this.itemId = event.data[\"id\"];\n this.tabCon.changeTabItem(this.itemId);\n this.changeNavStatus(this.itemId);\n this.scrollNavCon(this.itemId);\n\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n this.navTrackingCode[i][\"category\"],\n this.navTrackingCode[i][\"action\"],\n this.navTrackingCode[i][\"label\"]\n )\n });\n }\n this.changeNavStatus(this.itemId);\n }\n\n private changeNavStatus(id: number): void {\n\n for (let i: number = 0; i < this.tabNavBtns.length; i++) {\n let targetBtn: JQuery = this.tabNavBtns[i];\n if (i == id) {\n targetBtn.addClass(\"active\");\n } else {\n targetBtn.removeClass(\"active\");\n }\n }\n }\n\n private scrollNavCon(id: number): void {\n\n let btnOffsetX: number = this.tabNavBtns[id].offset().left;\n let targetX: number = this.$tabNav.scrollLeft() + btnOffsetX - 20;\n this.$tabNav.animate({\n scrollLeft: targetX\n }, 700);\n }\n\n\n onTransitionComplete(type: string, id?: number): void {\n if (type == AbstractView.Events.ON_TRANSITION_IN_COMPLETE) {\n if (this.tabCon) this.tabCon.transitionIn();\n }\n if (type == AbstractView.Events.ON_TRANSITION_OUT_COMPLETE) {\n\n }\n super.onTransitionComplete(type, id);\n }\n\n\n}\n\nexport = ExperienceView;","import TabItem = require(\"./tab/TabItem\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\nclass AuraView extends TabItem {\n\n constructor(template: JQuery) {\n super(template);\n }\n\n\n init(): void {\n this.createFilterBtn();\n }\n\n private currentFilter: string;\n private $colorpicker: JQuery;\n private $filterBtn: JQuery;\n private $block: JQuery;\n private filterTrackingCode: any[];\n\n private createFilterBtn(): void {\n\n this.filterTrackingCode = [\n {category: \"icons\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-static\"},\n {category: \"icons\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-breathing\"},\n {category: \"icons\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-strobing\"},\n {category: \"icons\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-color-cycle\"},\n {category: \"icons\", action: \"clicked\", label: \"matrix2080ti-experience-overview-aura-music-effect\"}\n ];\n\n this.currentFilter = \"cycleFilter\";\n this.$colorpicker = this.$template.find(\".colorPicker\");\n this.$block = this.$template.find(\".colorBlock\");\n\n let btnTotal: number = this.$template.find(\".filterBtn\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n this.$filterBtn = this.$template.find(\".filterBtn:eq(\" + i + \")\");\n this.$filterBtn.on(\"click tap\", {id: i}, (event: JQueryEventObject) => {\n event.preventDefault();\n // @ts-ignore\n let id: number = event.data[\"id\"];\n // @ts-ignore\n this.changeBtn(event.data[\"id\"]);\n this.changeFilter($(event.currentTarget).data(\"filter\"));\n\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n this.filterTrackingCode[id][\"category\"],\n this.filterTrackingCode[id][\"action\"],\n this.filterTrackingCode[id][\"label\"]\n )\n });\n }\n\n this.changeFilter(\"cycle\");\n }\n private changeBtn(id: number): void {\n\n let btnTotal: number = this.$template.find(\".filterBtn\").length;\n for (let i: number = 0; i < btnTotal; i++) {\n this.$filterBtn = this.$template.find(\".filterBtn:eq(\" + i + \")\");\n if (i == id) {\n this.$filterBtn.addClass(\"active\");\n } else {\n this.$filterBtn.removeClass(\"active\");\n }\n }\n\n if (id == 3) {\n this.$colorpicker.removeClass(\"active\");\n } else {\n this.$colorpicker.addClass(\"active\");\n }\n }\n\n private changeFilter(filter: string): void {\n\n this.$block.removeClass(this.currentFilter);\n this.currentFilter = filter + \"Filter\";\n this.$block.addClass(this.currentFilter);\n }\n}\n\nexport = AuraView;","import AbstractView = require(\"./abstract/AbstractView\");\nimport YTPlayer = require(\"../media/YTPlayer\");\nimport GoogleAnalyticsService = require(\"../service/GoogleAnalyticsService\");\n\nclass PlayerView extends AbstractView {\n\n\n private ytPlayer: YTPlayer;\n private $closeBtn: JQuery;\n private currentTracking: string;\n\n constructor(template: JQuery) {\n super(template);\n }\n\n reset(): void {\n if (this.ytPlayer) this.ytPlayer.stop();\n }\n\n init() {\n this.$closeBtn = this.$template.find(\".closeBtn\");\n this.$closeBtn.on(\"click tap\", (eventObject: JQueryEventObject) => {\n eventObject.preventDefault();\n GoogleAnalyticsService.instance().sendTracking(\n 'event',\n 'videos',\n 'stopped',\n this.currentTracking\n );\n this.transitionOut();\n });\n this.ytPlayer = new YTPlayer(\"ytPlayer\", \"\", false, true, true);\n this.ytPlayer.emitter.on(YTPlayer.VideoEvent.ON_PLAYING, () => {\n });\n this.ytPlayer.emitter.on(YTPlayer.VideoEvent.ON_PAUSE, () => {\n });\n }\n\n public playVideo(id: string): void {\n this.ytPlayer.changeVideo(id);\n this.transitionIn();\n }\n\n public stopVideo(): void {\n this.transitionOut();\n }\n\n public set tracking(t: string) {\n this.currentTracking = t;\n }\n\n}\n\nexport = PlayerView;","import AbstractView = require(\"./abstract/AbstractView\");\n\n\nclass LoadingView extends AbstractView{\n constructor(template: JQuery) {\n super(template);\n }\n\n private $progress: JQuery;\n private $percentText: JQuery;\n\n public init(): void {\n this.$progress = this.$template.find(\".progress\");\n this.$percentText = this.$progress.find(\".percent\");\n }\n\n public onProgress(percent: number): void {\n this.$percentText.html(percent.toString() + \"%\");\n }\n\n public reset(): void {\n this.$percentText.html(\"0\");\n }\n}\n\nexport = LoadingView;","import EventEmitter = require(\"eventemitter3\");\n\nclass ScrollView {\n\n private $scrollTrigger: JQuery;\n private $scrollContent: JQuery;\n private scrollTop: number;\n public emitter: EventEmitter;\n\n public static ScrollEvent: any = {\n ON_SCROLL: \"onScroll\"\n };\n\n constructor(scrollTrigger: any, scrollContent?: JQuery) {\n\n this.$scrollTrigger = scrollTrigger;\n this.$scrollContent = scrollContent;\n this.scrollTop = 0;\n this.emitter = new EventEmitter();\n this.init();\n }\n\n\n private init(): void {\n this.$scrollTrigger.on(\"scroll\", this.onScroll.bind(this));\n }\n\n public onScroll(event: JQuery.Event): void {\n \n this.scrollTop = $('html').scrollTop() || $('body').scrollTop();\n this.emitter.emit(ScrollView.ScrollEvent.ON_SCROLL, this.scrollTop);\n }\n\n private getScrollTemplate(): JQuery {\n let target: JQuery = null;\n if (this.$scrollContent) {\n target = this.$scrollContent;\n } else {\n target = this.$scrollTrigger;\n }\n return target;\n }\n\n public scrollToElement(target: JQuery, fixH: number) {\n\n let offsetTop: number = target.offset().top;\n let targetTop: number = offsetTop - fixH;\n\n let scrollTarget: any = this.getScrollTemplate();\n scrollTarget.animate({\n scrollTop: targetTop\n }, 1000);\n }\n}\n\nexport = ScrollView;"],"sourceRoot":""}