{"version":3,"file":"static/js/app.ac2cfae9.js","mappings":"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","sources":["webpack://learning-center/./src/api/http.js","webpack://learning-center/./src/api/index.js","webpack://learning-center/./src/enums/api/index.js","webpack://learning-center/./src/enums/components/list.js","webpack://learning-center/./src/enums/plugins/i18n.js","webpack://learning-center/./src/components/modules/svg-icon.vue?80f4","webpack://learning-center/./src/components/modules/svg-icon.vue","webpack://learning-center/./src/components/modules/svg-icon.vue?9a76","webpack://learning-center/./src/components/modules/go-top.vue?5554","webpack://learning-center/./src/components/modules/go-top.vue","webpack://learning-center/./src/components/modules/go-top.vue?509a","webpack://learning-center/./src/components/login.vue?9a76","webpack://learning-center/./src/components/login.vue","webpack://learning-center/./src/components/login.vue?4296","webpack://learning-center/./src/components/sidebar.vue?fcf9","webpack://learning-center/./src/components/sidebar.vue","webpack://learning-center/./src/components/sidebar.vue?3090","webpack://learning-center/./src/components/top-nav.vue?e68d","webpack://learning-center/./src/composables/useTopNavBanner.js","webpack://learning-center/./src/components/top-nav.vue","webpack://learning-center/./src/components/top-nav.vue?80f1","webpack://learning-center/./src/App.vue?e152","webpack://learning-center/./src/App.vue","webpack://learning-center/./src/App.vue?fda1","webpack://learning-center/./src/router/index.js","webpack://learning-center/./src/directives.js","webpack://learning-center/./src/main.js","webpack://learning-center/./src/plugins/i18n/object-data.js","webpack://learning-center/./src/plugins/i18n/index.js","webpack://learning-center/./src/store/member.js","webpack://learning-center/./src/store/sidebar.js","webpack://learning-center/./src/store/searchFilter.js","webpack://learning-center/./src/store/skillPath.js","webpack://learning-center/./src/store/index.js","webpack://learning-center/./src/utils/index.js","webpack://learning-center/./src/components/modules/breadcrumb.vue?3d4b","webpack://learning-center/./src/components/modules/breadcrumb.vue","webpack://learning-center/./src/components/modules/breadcrumb.vue?55a4","webpack://learning-center/./src/components/video-detail.vue?9490","webpack://learning-center/./src/plugins/language-code-name.js","webpack://learning-center/./src/components/video-detail.vue","webpack://learning-center/./src/components/video-detail.vue?29d1","webpack://learning-center/webpack/bootstrap","webpack://learning-center/webpack/runtime/chunk loaded","webpack://learning-center/webpack/runtime/compat get default export","webpack://learning-center/webpack/runtime/define property getters","webpack://learning-center/webpack/runtime/ensure chunk","webpack://learning-center/webpack/runtime/get javascript chunk filename","webpack://learning-center/webpack/runtime/get mini-css chunk filename","webpack://learning-center/webpack/runtime/global","webpack://learning-center/webpack/runtime/hasOwnProperty shorthand","webpack://learning-center/webpack/runtime/load script","webpack://learning-center/webpack/runtime/make namespace object","webpack://learning-center/webpack/runtime/node module decorator","webpack://learning-center/webpack/runtime/publicPath","webpack://learning-center/webpack/runtime/css loading","webpack://learning-center/webpack/runtime/jsonp chunk loading","webpack://learning-center/webpack/startup"],"sourcesContent":["import axios from \"axios\";\r\nimport { ApiReturnCodeEnum } from \"../enums/api\";\r\nimport { UtilityService } from '@/utils';\r\nimport store from '@/store';\r\n\r\nconst CancelToken = axios.CancelToken;\r\n\r\n// request 攔截器\r\naxios.interceptors.request.use((config) => {\r\n return config\r\n},\r\n(error) => {\r\n console.log('request error', error);\r\n return Promise.reject(error);\r\n})\r\n\r\n// response 攔截器\r\naxios.interceptors.response.use((response) => {\r\n if (response.status == 200) {\r\n switch (response.data.apiStatus) {\r\n case ApiReturnCodeEnum.OPERATE_SUCCESS:\r\n return Promise.resolve(UtilityService.parseAndDecode(response.data.result)); \r\n case ApiReturnCodeEnum.NOT_AUTH:\r\n store.member.mutations.setIsNotAuth(true);\r\n return Promise.reject({\r\n data: {\r\n apiStatus: ApiReturnCodeEnum.RESPONSE_INTERCEPT\r\n },\r\n text: \"not auth\"\r\n }); \r\n default:\r\n return Promise.reject(response); \r\n }\r\n } \r\n else {\r\n console.log(`request error, Response = ${response.status}, ReturnCode = ${response.data.apiStatus}`);\r\n return Promise.reject(response);\r\n }\r\n},\r\n(error) => {\r\n if (axios.isCancel(error)) {\r\n return Promise.reject({\r\n data: {\r\n apiStatus: ApiReturnCodeEnum.RESPONSE_INTERCEPT\r\n },\r\n text: \"cancel request\"\r\n }); \r\n } \r\n else {\r\n throw new Error(error);\r\n }\r\n})\r\n\r\nconst instance = (method, url, config) => {\r\n let addition = { cancel: null };\r\n const request = axios({\r\n method,\r\n url,\r\n baseURL: window.rlServerURL.API,\r\n withCredentials: true,\r\n headers: { \"Compress-Output\": true, \"Content-Type\": \"application/json\" },\r\n cancelToken: new CancelToken(function executor(c) {\r\n addition.cancel = c;\r\n }),\r\n ...config\r\n })\r\n\r\n request.cancel = () => {\r\n if (addition.cancel !== null ) {\r\n addition.cancel();\r\n }\r\n }\r\n \r\n return request;\r\n};\r\n\r\nexport default {\r\n get: (url, config = {}) => instance(\"get\", url, config),\r\n post: (url, config = {}) => instance(\"post\", url, config),\r\n} ","import httpService from \"./http\"\r\nimport { ApiSearchTypeEnum, ApiQueryOrderByEnum, ApiQueryTargetTypeEnum } from \"@/enums/api\";\r\n\r\n// member\r\nexport const getloginInfo = () => httpService.get(\"MemberAPI/v2/LoginInfo\"); //依 rl-topnav\r\nexport const postLogout = () => httpService.post(\"MemberAPI/Logout\"); //依 rl-topnav\r\n\r\n// banner\r\nexport const getBannerV3 = params => httpService.get(\"RLResource/v3/Banner\", { params });\r\n\r\n// query\r\nexport const postQuery = (params) => httpService.post(\"LearningCenter/v1/Query\", { data: {\r\n urlName: \"\",\r\n productFamily: \"\",\r\n level: \"\",\r\n productVersion: \"\",\r\n keyword: \"\",\r\n orderBy: ApiQueryOrderByEnum.BACKEND_SORT,\r\n searchType: ApiSearchTypeEnum.GROUP_AND_LINK,\r\n targetType: ApiQueryTargetTypeEnum.ALL,\r\n ...params\r\n}});\r\nexport const getAutoCompleteData = params => httpService.get(\"LearningCenter/KeywordSuggestion\", { params })\r\nexport const getProductFamily = () => httpService.get(\"LearningCenter/ProductFamily\");\r\n\r\n// detail\r\nexport const getVideoDetail = (path, params = {}) => httpService.post('LearningCenter/' + path, { data: params });\r\n\r\n// webinar and webinar detail\r\nexport const postWebinar = (params) => httpService.post(\"LearningCenter/v1/Webinar\", { data: params });\r\nexport const postWebinarDetail = (params) => httpService.post(\"LearningCenter/v1/Webinar/Detail \", { data: params });\r\n\r\n// bookmark\r\nexport const postBookmarkQuery = (params) => httpService.post(\"LearningCenter/v1/Bookmark/Query\", { data: params });\r\nexport const postBookmarkUpdateStatus = (params) => httpService.post(\"LearningCenter/v1/Bookmark/UpdateStatus\", { data: params });\r\n\r\n// Instructors\r\nexport const getInstructors = (urlName) => httpService.get(\"LearningCenter/Instructors/\" + urlName);\r\n\r\n// History\r\nexport const postAddHistory = (params) => httpService.post(\"LearningCenter/v1/History/Add\", { data: params });\r\nexport const postHistoryQuery = (params) => httpService.post(\"LearningCenter/v1/History/Query\", { data: params });\r\nexport const postClearHistory = (params) => httpService.post(\"LearningCenter/v1/History/Clear\", { data: params });\r\n\r\n// Skill path\r\nexport const postSkillPathQuery = (params) => httpService.post(\"LearningCenter/v1/SkillPathQuery\", { data: params });","export const ApiReturnCodeEnum = {\r\n NONE: 0,\r\n DB_ERROR: 1,\r\n OPERATE_SUCCESS: 2,\r\n OPERATE_FAIL: 3,\r\n PARAM_ERROR: 4,\r\n ID_NO_DATA_FOUND: 5,\r\n EXPIRE: 6,\r\n NOT_AUTH: 7,\r\n REPEAT: 8,\r\n PARSE_ERROR: 9,\r\n IO_ERROR: 10,\r\n UNHANDLED: 11,\r\n TOKEN_VERIFY_FAIL: 13,\r\n RESPONSE_INTERCEPT: 99\r\n}\r\n\r\nexport const ApiSearchTypeEnum = {\r\n FIND_SAME_LEVEL: 0,\r\n FIND_LOWER_LEVEL: 1\r\n}\r\n\r\nexport const ApiQueryOrderByEnum = {\r\n BACKEND_SORT : 0, \r\n LATEST: 1,\r\n OLDEST: 2,\r\n RELEVANCE: 3\r\n}\r\n\r\nexport const ApiWebinarSearchTypeEnum = {\r\n ALL: 0, //detail\r\n UPCOMING: 1,\r\n ARCHIVE: 2\r\n}\r\n\r\nexport const videoTypeEnum = {\r\n ALL: 0,\r\n TUTORIAL: 1,\r\n MASTER_CLASS: 2,\r\n WEBINAR: 3,\r\n SKILL_PATH: 4\r\n}\r\n\r\nexport const ApiBookmarkOrderByEnum = {\r\n LATEST: 0,\r\n OLDEST: 1,\r\n}\r\n\r\nexport const ApiQueryTargetTypeEnum = {\r\n ALL: 0,\r\n GROUP_AND_LINK: 1,\r\n ONLY_VIDEO: 2\r\n}\r\n\r\nexport const ApiBannerCategoryIdEnum = {\r\n TEXT_BANNER: 2903,\r\n CAMPAIGN: 2902\r\n}\r\n\r\nexport const SpeakerTypeEnum = {\r\n MAIN: 0,\r\n GUEST: 1\r\n}\r\n\r\nexport const ApiSkillPathOrderByEnum = {\r\n LATEST: 1,\r\n OLDEST: 2,\r\n}\r\n\r\nexport const ApiSkillPathMediaMenuEnum = {\r\n ALL: 0,\r\n TUTORIAL: 1,\r\n MASTER_CLASS: 2\r\n}","export const viewModeEnum = {\r\n ICON: 1,\r\n DETAILS: 2,\r\n};\r\n\r\nexport const itemTypeEnum = {\r\n GROUP: 1,\r\n LINK: 2,\r\n VIDEO: 3,\r\n SKILL_PATH: 5\r\n};","export const languageEnum = {\r\n EN: \"en\",\r\n TW: \"tw\",\r\n CN: \"cn\",\r\n JP: \"jp\",\r\n DE: \"de\",\r\n};\r\n\r\nexport const languageIdEnum = {\r\n EN: 1,\r\n TW: 2,\r\n CN: 3,\r\n JP: 4,\r\n DE: 8,\r\n};\r\n\r\nexport const countryCodeEnum = {\r\n EN: \"english\",\r\n TW: \"zh-tw\",\r\n CN: \"zh-cn\",\r\n JP: \"ja\",\r\n DE: \"german\",\r\n};\r\n\r\nexport const iso639LangCode = {\r\n EN: \"en\",\r\n TW: \"zh-Hant-TW\",\r\n CN: \"zh-Hans-CN\",\r\n JP: \"ja\",\r\n DE: \"de\",\r\n}\r\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"svg-icon\"\n};\nconst _hoisted_2 = {\n id: \"圖層_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 34 34\",\n style: {\n \"enable-background\": \"new 0 0 34 34\"\n },\n \"xml:space\": \"preserve\"\n};\nconst _hoisted_3 = {\n id: \"Omniverse\"\n};\nconst _hoisted_4 = [\"xlink:href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [(_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [_cache[1] || (_cache[1] = _createStaticVNode(\"\", 47)), _createElementVNode(\"g\", _hoisted_3, [_createElementVNode(\"image\", {\n style: {\n \"overflow\": \"visible\",\n \"enable-background\": \"new\"\n },\n width: \"3840\",\n height: \"3840\",\n \"xlink:href\": require('@/assets/images/OV_icon.png'),\n transform: \"matrix(6.331438e-03 0 0 6.331438e-03 4.8751 4.9719)\"\n }, null, 8, _hoisted_4), _cache[0] || (_cache[0] = _createElementVNode(\"g\", null, [_createElementVNode(\"g\", {\n id: \"Iray_00000000224167886402624090000008342717853935772805_\"\n }, [_createElementVNode(\"g\", null, [_createElementVNode(\"path\", {\n class: \"st2\",\n d: \"M34,34H0V0h34V34z M1,33h32V1H1V33z\"\n })])])], -1))]), _cache[2] || (_cache[2] = _createStaticVNode(\"\", 11))]))]);\n}","export default {\n name: \"Icon\"\n};","/* unplugin-vue-components disabled */import { render } from \"./svg-icon.vue?vue&type=template&id=4cfd08e8&scoped=true\"\nimport script from \"./svg-icon.vue?vue&type=script&lang=js\"\nexport * from \"./svg-icon.vue?vue&type=script&lang=js\"\n\nimport \"./svg-icon.vue?vue&type=style&index=0&id=4cfd08e8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4cfd08e8\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"wrapper\", {\n active: $setup.isShow\n }]),\n onClick: _cache[0] || (_cache[0] = (...args) => $setup.goTop && $setup.goTop(...args))\n }, _cache[1] || (_cache[1] = [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#go_to_top\"\n })], -1)]), 2);\n}","import { ref } from '@vue/reactivity';\nimport { onMounted } from '@vue/runtime-core';\nexport default {\n name: \"GoTop\",\n setup() {\n const isShow = ref(false);\n const goTop = () => {\n $(\"html, body\").animate({\n scrollTop: 0\n }, \"slow\");\n };\n const handleScroll = _.debounce(() => {\n isShow.value = window.scrollY > 800;\n }, 300);\n onMounted(() => {\n window.addEventListener(\"scroll\", handleScroll);\n });\n return {\n isShow,\n goTop\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./go-top.vue?vue&type=template&id=5c1199b8&scoped=true\"\nimport script from \"./go-top.vue?vue&type=script&lang=js\"\nexport * from \"./go-top.vue?vue&type=script&lang=js\"\n\nimport \"./go-top.vue?vue&type=style&index=0&id=5c1199b8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5c1199b8\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"rl-text-center\"\n};\nconst _hoisted_2 = {\n class: \"rl-row-bottom-calc-30 rl-text-h3\",\n style: {\n \"margin\": \"0\",\n \"color\": \"#909090\"\n }\n};\nconst _hoisted_3 = [\"href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_row = _resolveComponent(\"el-row\");\n return _openBlock(), _createBlock(_component_el_row, {\n justify: \"center\",\n align: \"middle\",\n style: {\n \"height\": \"calc(100vh - 120px)\"\n }\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t(\"LOGIN.PLEASE_LOG_IN\")), 1), _createElementVNode(\"a\", {\n href: $setup.loginUrl,\n target: \"_self\"\n }, [_createVNode(_component_el_button, {\n class: \"round-button rl-uppercase rl-text-body-2\"\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.LOG_IN\")), 1)]),\n _: 1\n })], 8, _hoisted_3)]), _cache[0] || (_cache[0] = _createElementVNode(\"div\", null, null, -1))]),\n _: 1\n });\n}","import { inject, watch } from '@vue/runtime-core';\nimport { useRoute } from \"vue-router\";\nimport { memberService } from '@/utils';\nexport default {\n name: \"Login\",\n setup() {\n const route = useRoute();\n const {\n member\n } = inject(\"store\");\n const loginUrl = memberService.getRLloginUrl();\n watch(() => route.fullPath, () => {\n member.mutations.setIsNotAuth(false);\n });\n return {\n loginUrl\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./login.vue?vue&type=template&id=f28c681c\"\nimport script from \"./login.vue?vue&type=script&lang=js\"\nexport * from \"./login.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n key: 0\n};\nconst _hoisted_2 = {\n key: 0\n};\nconst _hoisted_3 = {\n key: 0\n};\nconst _hoisted_4 = {\n key: 0\n};\nconst _hoisted_5 = {\n key: 0\n};\nconst _hoisted_6 = {\n key: 0\n};\nconst _hoisted_7 = {\n key: 0\n};\nconst _hoisted_8 = {\n key: 0\n};\nconst _hoisted_9 = [\"href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_menu_item = _resolveComponent(\"el-menu-item\");\n const _component_el_menu = _resolveComponent(\"el-menu\");\n return _openBlock(), _createElementBlock(_Fragment, null, [_createElementVNode(\"div\", {\n id: \"fill-sidebar-gap\",\n class: _normalizeClass({\n 'open': !$setup.sidebar.states.isSidebarClose\n })\n }, null, 2), _createElementVNode(\"div\", {\n id: \"mask\",\n class: _normalizeClass({\n 'open': !$setup.sidebar.states.isSidebarClose\n }),\n onClick: _cache[0] || (_cache[0] = $event => $setup.sidebar.mutations.switchSidebarClose(false))\n }, null, 2), _createElementVNode(\"div\", {\n id: \"sidebar-content\",\n class: _normalizeClass({\n 'open': !$setup.sidebar.states.isSidebarClose\n })\n }, [_createVNode(_component_el_menu, {\n \"default-active\": $setup.state.activeLink,\n class: \"el-menu-vertical-demo\",\n collapse: $setup.sidebar.states.isSidebarClose,\n \"collapse-transition\": false\n }, {\n default: _withCtx(() => [_createVNode(_component_el_menu_item, {\n index: \"home\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.HOME'),\n onClick: _cache[1] || (_cache[1] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-home');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[10] || (_cache[10] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#home\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _toDisplayString(_ctx.$t(\"SIDEBAR.HOME\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n index: \"library\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.LIBRARY'),\n onClick: _cache[2] || (_cache[2] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-library');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[11] || (_cache[11] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#library\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\"SIDEBAR.LIBRARY\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n index: \"skill-paths\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.SKILL_PATH'),\n onClick: _cache[3] || (_cache[3] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-skill-path');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[12] || (_cache[12] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#skill-path\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\"SIDEBAR.SKILL_PATH\")), 1)) : _createCommentVNode(\"\", true), _cache[13] || (_cache[13] = _createElementVNode(\"div\", {\n class: \"label\",\n style: {}\n }, \"New\", -1))]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n index: \"master-class\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.MASTER_CLASS'),\n onClick: _cache[4] || (_cache[4] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-masterclass');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[14] || (_cache[14] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#master-class\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_ctx.$t(\"SIDEBAR.MASTER_CLASS\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n index: \"webinar\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.WEBINAR'),\n onClick: _cache[5] || (_cache[5] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-webinar');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[15] || (_cache[15] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#webinar\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t(\"SIDEBAR.WEBINAR\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _cache[21] || (_cache[21] = _createElementVNode(\"div\", {\n class: \"rl-row-10\"\n }, [_createElementVNode(\"div\", {\n class: \"divide-line\"\n })], -1)), _createVNode(_component_el_menu_item, {\n index: \"bookmark\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.BOOKMARK'),\n onClick: _cache[6] || (_cache[6] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-bookmark');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[16] || (_cache[16] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#bookmark_1_\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(_ctx.$t(\"SIDEBAR.BOOKMARK\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n index: \"history\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.HISTORY'),\n onClick: _cache[7] || (_cache[7] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-history');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[17] || (_cache[17] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#history\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t(\"SIDEBAR.HISTORY\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _cache[22] || (_cache[22] = _createElementVNode(\"div\", {\n class: \"rl-row-10\"\n }, [_createElementVNode(\"div\", {\n class: \"divide-line\"\n })], -1)), _createVNode(_component_el_menu_item, {\n index: \"online-manual\",\n class: \"tooltip\",\n \"data-content\": _ctx.$t('SIDEBAR.ONLINE_MANUAL'),\n onClick: _cache[8] || (_cache[8] = $event => {\n $setup.closeSidebar();\n $setup.gaTrackButtonClick('leftmenu-online-manual');\n $setup.routerPush($event);\n })\n }, {\n default: _withCtx(() => [_cache[18] || (_cache[18] = _createElementVNode(\"div\", null, [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"sidebar-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#manual\"\n })])], -1)), !$setup.sidebar.states.isSidebarClose ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _toDisplayString(_ctx.$t(\"SIDEBAR.ONLINE_MANUAL\")), 1)) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"data-content\"]), _createVNode(_component_el_menu_item, {\n class: \"center-rl-logo\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"a\", {\n href: 'https://www.reallusion.com' + $setup.currentLangPath,\n target: \"_blank\",\n onClick: _cache[9] || (_cache[9] = $event => $setup.gaTrackButtonClick('leftmenu-rl-logo'))\n }, [(_openBlock(), _createElementBlock(\"svg\", {\n viewBox: \"0 0 500 49.987\",\n class: \"rl-logo-l\",\n style: _normalizeStyle({\n 'display': $setup.sidebar.states.isSidebarClose ? 'none' : 'block'\n })\n }, _cache[19] || (_cache[19] = [_createElementVNode(\"use\", {\n \"xlink:href\": \"#rl-logo-l\"\n }, null, -1)]), 4)), (_openBlock(), _createElementBlock(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"rl-logo-s\",\n style: _normalizeStyle({\n 'display': !$setup.sidebar.states.isSidebarClose ? 'none' : 'block'\n })\n }, _cache[20] || (_cache[20] = [_createElementVNode(\"use\", {\n \"xlink:href\": \"#rl-logo-s\"\n }, null, -1)]), 4))], 8, _hoisted_9)]),\n _: 1\n })]),\n _: 1\n }, 8, [\"default-active\", \"collapse\"])], 2)], 64);\n}","import { inject, reactive, watch, nextTick, ref, computed } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { languageService } from '@/utils';\nimport { gaService } from \"@/utils\";\nexport default {\n name: \"sidebar\",\n setup() {\n const {\n gaTrackButtonClick\n } = gaService;\n const {\n getLanguagePath\n } = languageService;\n const currentLangPath = computed(() => getLanguagePath());\n const route = useRoute();\n const router = useRouter();\n const {\n sidebar\n } = inject(\"store\");\n const state = reactive({\n activeLink: null,\n sidebarCloseWidth: 64,\n sidebarOpenWidth: 265\n });\n const getDefaultActiveLink = route => {\n //detail page \n if (route.query.v) {\n return '';\n }\n\n //other page\n let routePath = route.path.replace(currentLangPath.value, \"\").split('/')[0];\n if (routePath && routePath.toLowerCase() !== 'home') {\n return routePath;\n } else {\n return \"home\";\n }\n };\n const routerPush = element => {\n let path = currentLangPath.value;\n if (element.index != \"home\") {\n path += element.index;\n }\n router.push(path);\n };\n const switchWindowScrollbar = () => {\n if ($(window).width() <= 1312 && !sidebar.states.isSidebarClose) {\n $('body').addClass(\"stop-scroll\");\n } else {\n $('body').removeClass(\"stop-scroll\");\n }\n };\n const closeSidebar = () => {\n if ($(window).width() <= 1312) {\n sidebar.mutations.switchSidebarClose(false);\n sidebar.mutations.switchUserClose(false);\n }\n };\n watch(route, to => {\n state.activeLink = getDefaultActiveLink(to);\n bindResize();\n });\n watch(() => sidebar.states.isSidebarClose, () => {\n switchWindowScrollbar();\n });\n nextTick(() => {\n $('#fill-sidebar-gap').css('width', $('#sidebar').width());\n state.activeLink = getDefaultActiveLink(route);\n });\n let originalWidth = $(window).width();\n const checkWindowWidthToSwitchSidebar = () => {\n if (sidebar.states.isUserClose === null) {\n if ($(window).width() <= 1312 && !sidebar.states.isSidebarClose) {\n sidebar.mutations.switchSidebarClose(false);\n } else if ($(window).width() > 1312 && sidebar.states.isSidebarClose) {\n sidebar.mutations.switchSidebarClose(true);\n }\n } else {\n if (sidebar.states.isUserClose) {\n sidebar.mutations.switchSidebarClose(false);\n } else if (originalWidth > 1312 && $(window).width() < 1312) {\n sidebar.mutations.switchSidebarClose(false);\n } else if (originalWidth < 1312 && $(window).width() > 1312) {\n sidebar.mutations.switchSidebarClose(true);\n }\n }\n originalWidth = $(window).width();\n setTimeout(() => {\n switchWindowScrollbar();\n }, 0);\n };\n let checkWindowWidthToCloseSidebarTimer = null;\n const ResizeEvent = function () {\n clearTimeout(checkWindowWidthToCloseSidebarTimer);\n checkWindowWidthToCloseSidebarTimer = setTimeout(() => {\n checkWindowWidthToSwitchSidebar();\n }, 250);\n };\n const bindResize = () => {\n window.removeEventListener(\"resize\", ResizeEvent);\n window.addEventListener(\"resize\", ResizeEvent, false);\n };\n bindResize();\n checkWindowWidthToSwitchSidebar();\n return {\n sidebar,\n state,\n closeSidebar,\n gaTrackButtonClick,\n currentLangPath,\n routerPush\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./sidebar.vue?vue&type=template&id=31c61830&scoped=true\"\nimport script from \"./sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar.vue?vue&type=script&lang=js\"\n\nimport \"./sidebar.vue?vue&type=style&index=0&id=31c61830&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-31c61830\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, createBlock as _createBlock, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n id: \"topnav\"\n};\nconst _hoisted_2 = {\n class: \"left-area\"\n};\nconst _hoisted_3 = {\n class: \"rl-flex-wrap\"\n};\nconst _hoisted_4 = {\n key: 0,\n id: \"top-nav-banner\"\n};\nconst _hoisted_5 = [\"target\", \"href\"];\nconst _hoisted_6 = [\"src\"];\nconst _hoisted_7 = [\"src\"];\nconst _hoisted_8 = [\"href\"];\nconst _hoisted_9 = [\"href\"];\nconst _hoisted_10 = [\"href\"];\nconst _hoisted_11 = [\"href\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = _resolveComponent(\"router-link\");\n const _component_el_menu_item = _resolveComponent(\"el-menu-item\");\n const _component_el_submenu = _resolveComponent(\"el-submenu\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_menu = _resolveComponent(\"el-menu\");\n const _directive_intersectionObserver = _resolveDirective(\"intersectionObserver\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"button\", {\n class: \"switch-button\",\n onClick: _cache[0] || (_cache[0] = (...args) => $setup.clickSwitchButton && $setup.clickSwitchButton(...args))\n }, _cache[7] || (_cache[7] = [_createElementVNode(\"i\", {\n class: \"fa fa-bars\",\n \"aria-hidden\": \"true\"\n }, null, -1)])), _createVNode(_component_router_link, {\n class: \"logo\",\n to: {\n path: $setup.getLanguagePath()\n },\n onClick: _cache[1] || (_cache[1] = $event => $setup.gaTrackButtonClick('top-nav-courses-logo'))\n }, {\n default: _withCtx(() => _cache[8] || (_cache[8] = [_createElementVNode(\"svg\", {\n viewBox: \"0 0 290.5 22.6\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#rl-course-logo\"\n })], -1)])),\n _: 1\n }, 8, [\"to\"])]), _createElementVNode(\"section\", _hoisted_3, [$setup.campaignBanner ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [_withDirectives((_openBlock(), _createElementBlock(\"a\", {\n target: $setup.campaignBanner.Blank ? '_blank' : '_self',\n style: {\n \"text-decoration\": \"none\"\n },\n href: $setup.campaignBanner.Url,\n onClick: _cache[2] || (_cache[2] = $event => $setup.gaTrackEvent('banner-clicks', 'nav-banner', $setup.getEventLabel($setup.campaignBanner.EventLabel)))\n }, [_createElementVNode(\"img\", {\n style: {\n \"max-width\": \"100%\",\n \"height\": \"100%\"\n },\n src: $setup.campaignBanner.BannerUrl + $setup.campaignBanner.ImageFileName\n }, null, 8, _hoisted_6)], 8, _hoisted_5)), [[_directive_intersectionObserver, $setup.gaTrackEvent('banner-impression', 'nav-banner', $setup.getEventLabel($setup.campaignBanner.EventLabel), 1)]])])) : _createCommentVNode(\"\", true), $setup.member.states.loginInfo?.data.login !== undefined ? (_openBlock(), _createBlock(_component_el_menu, {\n key: 1,\n ref: \"elMenu\",\n class: \"right-area\",\n mode: \"horizontal\",\n \"active-text-color\": \"false\",\n \"menu-trigger\": $setup.hasTouchScreen ? 'click' : 'hover',\n router: \"\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_submenu, {\n ref: \"multiLangSwitcher\",\n index: \"1\",\n \"popper-append-to-body\": false\n }, {\n title: _withCtx(() => _cache[9] || (_cache[9] = [_createElementVNode(\"svg\", {\n viewBox: \"0 1 34 34\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#language\"\n })], -1)])),\n default: _withCtx(() => [_createVNode(_component_el_menu_item, {\n index: $setup.getTargetLanguagePath($setup.languageEnum.EN)\n }, {\n default: _withCtx(() => _cache[10] || (_cache[10] = [_createTextVNode(\"English \")])),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: $setup.getTargetLanguagePath($setup.languageEnum.DE)\n }, {\n default: _withCtx(() => _cache[11] || (_cache[11] = [_createTextVNode(\"Deutsch \")])),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: $setup.getTargetLanguagePath($setup.languageEnum.JP)\n }, {\n default: _withCtx(() => _cache[12] || (_cache[12] = [_createTextVNode(\"日本語 \")])),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: $setup.getTargetLanguagePath($setup.languageEnum.TW)\n }, {\n default: _withCtx(() => _cache[13] || (_cache[13] = [_createTextVNode(\"繁體中文\")])),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: $setup.getTargetLanguagePath($setup.languageEnum.CN)\n }, {\n default: _withCtx(() => _cache[14] || (_cache[14] = [_createTextVNode(\"简体中文\")])),\n _: 1\n }, 8, [\"index\"])]),\n _: 1\n }, 512), $setup.member.states.loginInfo?.data.login ? (_openBlock(), _createBlock(_component_el_submenu, {\n key: 0,\n ref: \"loggedInMemberMenu\",\n index: \"2\",\n class: \"avatar\",\n \"popper-append-to-body\": false\n }, {\n title: _withCtx(() => [_createElementVNode(\"img\", {\n src: $setup.member.states.loginInfo.data.avatarUrl || $setup.member.states.loginInfo.data.defaultAvatarUrl\n }, null, 8, _hoisted_7)]),\n default: _withCtx(() => [_createVNode(_component_el_menu_item, {\n index: $setup.getLanguagePath() + 'bookmark'\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.BOOKMARK\")), 1)]),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: $setup.getLanguagePath() + 'history'\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.HISTORY\")), 1)]),\n _: 1\n }, 8, [\"index\"]), _createVNode(_component_el_menu_item, {\n index: null,\n onClick: $setup.logout\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.LOG_OUT\")), 1)]),\n _: 1\n }, 8, [\"onClick\"])]),\n _: 1\n }, 512)) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [_createVNode(_component_el_menu_item, {\n class: \"rl-uppercase rl-hidden-mobile\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"a\", {\n href: $setup.loginUrl,\n onClick: _cache[3] || (_cache[3] = $event => $setup.gaTrackButtonClick('top-nav-login'))\n }, _toDisplayString(_ctx.$t(\"TOP_NAV.LOG_IN\")), 9, _hoisted_8)]),\n _: 1\n }), _createVNode(_component_el_menu_item, {\n class: \"rl-hidden-mobile\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"a\", {\n href: $setup.signupUrl\n }, [_createVNode(_component_el_button, {\n type: \"primary\",\n class: \"rl-uppercase\",\n onClick: _cache[4] || (_cache[4] = $event => $setup.gaTrackButtonClick('top-nav-signup'))\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.SIGN_UP\")), 1)]),\n _: 1\n })], 8, _hoisted_9)]),\n _: 1\n }), _createVNode(_component_el_submenu, {\n ref: \"memberMenu\",\n index: \"3\",\n class: \"rl-hidden-desktop\",\n \"popper-append-to-body\": false\n }, {\n title: _withCtx(() => _cache[15] || (_cache[15] = [_createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#account_1_\"\n })], -1)])),\n default: _withCtx(() => [_createElementVNode(\"a\", {\n href: $setup.loginUrl,\n onClick: _cache[5] || (_cache[5] = $event => $setup.gaTrackButtonClick('top-nav-login'))\n }, [_createVNode(_component_el_menu_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.LOG_IN\")), 1)]),\n _: 1\n })], 8, _hoisted_10), _createElementVNode(\"a\", {\n href: $setup.signupUrl,\n onClick: _cache[6] || (_cache[6] = $event => $setup.gaTrackButtonClick('top-nav-signup'))\n }, [_createVNode(_component_el_menu_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"TOP_NAV.SIGN_UP\")), 1)]),\n _: 1\n })], 8, _hoisted_11)]),\n _: 1\n }, 512)], 64))]),\n _: 1\n }, 8, [\"menu-trigger\"])) : _createCommentVNode(\"\", true)])]);\n}","import { reactive, watch, computed } from 'vue';\r\nimport { useRoute } from \"vue-router\";\r\nimport { ApiBannerCategoryIdEnum } from \"@/enums/api/index\"\r\nimport { getBannerV3 } from '@/api'\r\nimport { languageService } from \"@/utils\";\r\n\r\nexport const useTopNavBanner = () => {\r\n const route = useRoute();\r\n const { getLanguageId } = languageService;\r\n\r\n const bannerData = reactive({\r\n [ApiBannerCategoryIdEnum.TEXT_BANNER]: null,\r\n [ApiBannerCategoryIdEnum.CAMPAIGN]: null\r\n })\r\n\r\n const isShowBanner = computed(() => {\r\n const homePageName = [\"home\", \"home-lang\"];\r\n const productPageName = [\"homeExplorer\", \"homeExplorer-lang\"];\r\n return homePageName.includes(route.name) || (productPageName.includes(route.name) && route.params?.path?.length === 1)\r\n });\r\n\r\n const textBanner = computed(() => {\r\n return isShowBanner.value ? bannerData[ApiBannerCategoryIdEnum.TEXT_BANNER] : null;\r\n })\r\n\r\n const campaignBanner = computed(() => {\r\n return isShowBanner.value ? bannerData[ApiBannerCategoryIdEnum.CAMPAIGN] : null;\r\n })\r\n\r\n const getEventLabel = (bannerEventLabel) => {\r\n const eventLabelPrefixMapping = {\r\n 'home': 'edu-licensing-course',\r\n 'iclone': 'edu-licensing-course_ic',\r\n 'character-creator': 'edu-licensing-course_cc',\r\n 'cartoon-animator': 'edu-licensing-course_cta',\r\n 'actorcore': 'edu-licensing-course_ac',\r\n 'smart-gallery': 'edu-licensing-course_cm'\r\n };\r\n const currentRoute = [\"home\", \"home-lang\"].includes(route.name) ? `home` : `${route.params.path[0]}`;\r\n\r\n return eventLabelPrefixMapping[currentRoute] + `_${bannerEventLabel}`\r\n };\r\n\r\n\r\n const renderTextBanner = (bannerData) => {\r\n window.rlTextBanner.show(\r\n {\r\n messageHtml: ` \r\n \r\n
\r\n \r\n
\r\n ${bannerData.Title}\r\n
\r\n
\r\n
\r\n `,\r\n insertAfter: \"#text-banner\",\r\n bannerClassName: bannerData.BannerClassName,\r\n eventName: getEventLabel(bannerData.EventLabel),\r\n displayFreq: 24,\r\n closeButton: {}\r\n }\r\n )\r\n \r\n };\r\n\r\n const fetchBannerData = async () => {\r\n const data = {\r\n [ApiBannerCategoryIdEnum.TEXT_BANNER]: null,\r\n [ApiBannerCategoryIdEnum.CAMPAIGN]: null\r\n };\r\n Object.assign(bannerData, data);\r\n\r\n try {\r\n const res = await getBannerV3({\r\n CategoryItemIds: [ApiBannerCategoryIdEnum.TEXT_BANNER,ApiBannerCategoryIdEnum.CAMPAIGN],\r\n Lang: getLanguageId()\r\n });\r\n res.forEach(banner => {\r\n bannerData[banner.CategoryItemId] = banner?.BannerList[0] ?? null\r\n });\r\n } \r\n catch (error) {\r\n console.log(`getBannerV3 request error, Response = ${error?.status}, ReturnCode = ${error?.data?.apiStatus}`);\r\n }\r\n }\r\n\r\n fetchBannerData();\r\n\r\n watch(\r\n () => getLanguageId(),\r\n () => {\r\n if (isShowBanner.value) {\r\n fetchBannerData();\r\n }\r\n }\r\n )\r\n\r\n watch(\r\n textBanner,\r\n (val) => {\r\n $('.text-banner-block').remove();\r\n\r\n if (val) {\r\n renderTextBanner(val);\r\n }\r\n }\r\n )\r\n\r\n return {\r\n campaignBanner,\r\n getEventLabel\r\n }\r\n}","import \"core-js/modules/esnext.iterator.constructor.js\";\nimport \"core-js/modules/esnext.iterator.for-each.js\";\nimport { inject, ref, onMounted, watch } from \"vue\";\nimport { memberService, languageService, gaService } from \"@/utils\";\nimport { languageEnum } from \"@/enums/plugins/i18n\";\nimport { useRoute } from 'vue-router';\nimport { useTopNavBanner } from \"@/composables/useTopNavBanner\";\nglobal.$ = $;\nexport default {\n name: \"Topnav\",\n setup() {\n const route = useRoute();\n const {\n sidebar,\n member\n } = inject(\"store\");\n const {\n getRLloginUrl,\n getRLsignupUrl,\n logout\n } = memberService;\n const {\n getLanguagePath,\n getTargetLanguagePath\n } = languageService;\n const {\n gaTrackButtonClick,\n gaTrackEvent\n } = gaService;\n const {\n campaignBanner,\n getEventLabel\n } = useTopNavBanner();\n const elMenu = ref();\n const multiLangSwitcher = ref();\n const memberMenu = ref();\n const loggedInMemberMenu = ref();\n const hasTouchScreen = ref(false);\n const loginUrl = ref(getRLloginUrl());\n const signupUrl = ref(getRLsignupUrl());\n const submenuSettings = {\n refs: [multiLangSwitcher, memberMenu, loggedInMemberMenu],\n ListenEventTypes: ['touchstart', 'scroll', 'touchmove']\n };\n const clickSwitchButton = () => {\n const currentStatus = sidebar.states.isSidebarClose;\n sidebar.mutations.switchUserClose(currentStatus);\n sidebar.mutations.switchSidebarClose(currentStatus);\n gaTrackButtonClick(\"top-nav-hamburger\");\n };\n const closeSubMenu = e => {\n if (e.target.className && e.target.className.includes('el-menu-item')) {\n $(e.target).trigger('click'); // mobile touch event 會點不到 el-menu-item 故觸發 click\n } else {\n submenuSettings.refs.forEach(el => {\n if (el.value?.index) {\n elMenu.value?.close(el.value?.index);\n }\n });\n submenuSettings.ListenEventTypes.forEach(eventType => window.removeEventListener(eventType, closeSubMenu, false));\n }\n };\n const handleSubMenuTouch = e => {\n e.stopPropagation();\n submenuSettings.ListenEventTypes.forEach(eventType => window.addEventListener(eventType, closeSubMenu, false));\n };\n onMounted(() => {\n submenuSettings.refs.forEach(el => {\n watch(el, () => el.value?.$el.addEventListener(\"touchstart\", handleSubMenuTouch, false), {\n immediate: true\n });\n });\n\n // detect mobile device \n if (\"maxTouchPoints\" in navigator) {\n hasTouchScreen.value = navigator.maxTouchPoints > 0;\n } else if (\"msMaxTouchPoints\" in navigator) {\n hasTouchScreen.value = navigator.msMaxTouchPoints > 0;\n } else {\n const mQ = window.matchMedia && matchMedia(\"(pointer:coarse)\");\n if (mQ && mQ.media === \"(pointer:coarse)\") {\n hasTouchScreen.value = !!mQ.matches;\n } else if ('orientation' in window) {\n hasTouchScreen.value = true; // deprecated, but good fallback\n } else {\n // Only as a last resort, fall back to user agent sniffing\n const UA = navigator.userAgent;\n hasTouchScreen.value = /\\b(BlackBerry|webOS|iPhone|IEMobile)\\b/i.test(UA) || /\\b(Android|Windows Phone|iPad|iPod)\\b/i.test(UA);\n }\n }\n });\n watch(() => route.fullPath, () => {\n loginUrl.value = getRLloginUrl();\n signupUrl.value = getRLsignupUrl();\n });\n return {\n member,\n elMenu,\n multiLangSwitcher,\n memberMenu,\n loggedInMemberMenu,\n hasTouchScreen,\n loginUrl,\n signupUrl,\n logout,\n getLanguagePath,\n getTargetLanguagePath,\n languageEnum,\n clickSwitchButton,\n gaTrackButtonClick,\n gaTrackEvent,\n getEventLabel,\n campaignBanner\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./top-nav.vue?vue&type=template&id=33876084&scoped=true\"\nimport script from \"./top-nav.vue?vue&type=script&lang=js\"\nexport * from \"./top-nav.vue?vue&type=script&lang=js\"\n\nimport \"./top-nav.vue?vue&type=style&index=0&id=33876084&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-33876084\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, resolveDirective as _resolveDirective, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"learning-center-container\"\n};\nconst _hoisted_2 = {\n class: \"learning-center-body\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_TopNav = _resolveComponent(\"TopNav\");\n const _component_Sidebar = _resolveComponent(\"Sidebar\");\n const _component_Login = _resolveComponent(\"Login\");\n const _component_VideoDetail = _resolveComponent(\"VideoDetail\");\n const _component_router_view = _resolveComponent(\"router-view\");\n const _component_GoTop = _resolveComponent(\"GoTop\");\n const _component_SvgIcon = _resolveComponent(\"SvgIcon\");\n const _directive_fixed_top_nav = _resolveDirective(\"fixed-top-nav\");\n return _openBlock(), _createElementBlock(\"div\", null, [_withDirectives((_openBlock(), _createElementBlock(\"header\", null, [_createVNode(_component_TopNav)])), [[_directive_fixed_top_nav]]), _cache[1] || (_cache[1] = _createElementVNode(\"div\", {\n id: \"top-nav-height\"\n }, null, -1)), _createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"aside\", null, [_createVNode(_component_Sidebar, {\n id: \"sidebar\"\n })]), _createElementVNode(\"main\", null, [_cache[0] || (_cache[0] = _createElementVNode(\"div\", {\n id: \"text-banner\"\n }, null, -1)), $setup.isNotAuth ? (_openBlock(), _createBlock(_component_Login, {\n key: 0\n })) : $setup.isShowDetail ? (_openBlock(), _createBlock(_component_VideoDetail, {\n key: 1\n })) : (_openBlock(), _createBlock(_component_router_view, {\n key: 2\n }))])]), _createVNode(_component_GoTop), _createVNode(_component_SvgIcon)])]);\n}","import \"core-js/modules/esnext.iterator.constructor.js\";\nimport \"core-js/modules/esnext.iterator.find.js\";\nimport { provide, watch, ref, onBeforeMount, computed, onMounted } from 'vue';\nimport { useRoute } from \"vue-router\";\nimport { useHead } from '@vueuse/head';\nimport store from '@/store';\nimport TopNav from \"@/components/top-nav\";\nimport Sidebar from \"@/components/sidebar\";\nimport VideoDetail from \"@/components/video-detail\";\nimport SvgIcon from \"@/components/modules/svg-icon\";\nimport GoTop from \"@/components/modules/go-top\";\nimport { memberService, languageService } from \"@/utils\";\nimport Login from './components/login.vue';\nimport { UtilityService } from \"@/utils\";\nexport default {\n components: {\n TopNav,\n Sidebar,\n SvgIcon,\n VideoDetail,\n GoTop,\n Login\n },\n setup() {\n provide('store', store);\n const route = useRoute();\n const isShowDetail = ref(false);\n const {\n getLocaleMessege,\n getCountryCode,\n getLanguage\n } = languageService;\n const {\n videoType\n } = UtilityService;\n const isNotAuth = computed(() => store.member.states.isNotAuth);\n const meta = computed(() => {\n const metaTable = {\n \"/home/iclone\": getLocaleMessege(\"HOME_EXPLORER\").META.ICLONE,\n \"/home/character-creator\": getLocaleMessege(\"HOME_EXPLORER\").META.CHARACTER_CREATOR,\n \"/home/cartoon-animator\": getLocaleMessege(\"HOME_EXPLORER\").META.CARTOON_ANIMATOR,\n \"/home/actorcore\": getLocaleMessege(\"HOME_EXPLORER\").META.ACTORCORE,\n \"/home/smart-gallery\": getLocaleMessege(\"HOME_EXPLORER\").META.SMART_GALLERY,\n \"/history\": getLocaleMessege(\"HISTORY\").META,\n \"/library\": getLocaleMessege(\"LIBRARY\").META,\n \"/master-class\": getLocaleMessege(\"PAGE_MASTER_CLASS\").META,\n \"/webinar\": getLocaleMessege(\"WEBINAR\").META,\n \"/online-manual\": getLocaleMessege(\"ONLINE_MANUAL\").META,\n \"/bookmark\": getLocaleMessege(\"BOOKMARK\").META,\n \"/\": getLocaleMessege(\"HOME\").META\n };\n const [path, meta] = Object.entries(metaTable).find(([key, _]) => {\n const regex = new RegExp(`^${key}`);\n return regex.test(route.path);\n });\n return {\n ...meta,\n path\n };\n });\n const currentLang = computed(() => getLanguage());\n memberService.loadLoginInfo();\n useHead({\n title: computed(() => meta.value.TITLE),\n meta: [{\n name: \"description\",\n content: computed(() => meta.value.DESCRIPTION)\n }, {\n name: \"language\",\n content: computed(() => getCountryCode())\n }, {\n property: \"og:title\",\n content: computed(() => meta.value.OG_TITLE)\n }, {\n property: \"og:description\",\n content: computed(() => meta.value.OG_DESCRIPTION)\n }, {\n property: \"og:url\",\n content: process.env.VUE_APP_WEBSITE_URL + computed(() => meta.value.path)\n }]\n });\n const checkDetailDisplayByRoute = () => {\n const routeNameExcludeLang = route.path.toLocaleLowerCase().replace(new RegExp(currentLang.value + \"/\"), \"\").split(\"/\").slice(1);\n isShowDetail.value = route.query.v !== undefined && routeNameExcludeLang[0] !== videoType.skillPath.category;\n };\n const initRlTopnavBanner = () => {\n if (window.rlTopNavBanner) {\n const webTypeRegExp = {\n www: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\//i,\n wwwIC: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/((tw|cn|de|jp)\\/)?iclone\\/.*/i,\n wwwCC: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/((tw|cn|de|jp)\\/)?character-creator\\/.*/i,\n wwwCTA: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/((tw|cn|de|jp)\\/)?cartoon-animator\\/.*/i,\n productDefault: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/((tw|cn|de|jp)\\/)?(default.html)?((#|\\?).*)?$/i,\n apDefault: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/((tw|cn|de|jp)\\/)?((iclone|character-creator|cartoon-animator)\\/)(default.html)?((#|\\?).*)?$/i,\n member: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/member\\//i,\n contentStore: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/contentstore\\//i,\n contentStoreIC: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/contentstore\\/.*\\?.*menuitem=ic_.*$/i,\n contentStoreCC: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/contentstore\\/.*\\?.*menuitem=cc_.*$/i,\n contentStoreCTA: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/contentstore\\/.*\\?.*menuitem=cta_.*$/i,\n apStore: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/store\\//i,\n apStore3D: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/store\\/.*\\?.*p=3d.*$/i,\n apStore2D: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/store\\/.*\\?.*p=cta.*$/i,\n reallusiontv: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/reallusiontv\\//i,\n hub: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/hub\\//i,\n smartgallery: /^https?:\\/\\/(\\w*-)?www\\.reallusion\\.com\\/smartgallery\\//i,\n marketplace: /^https?:\\/\\/(\\w*-)?(marketplace|city)\\.reallusion.com\\//i,\n marketplaceIC: /^https?:\\/\\/(\\w*-)?(marketplace|city)\\.reallusion\\.com\\/iclone\\/.*$/i,\n marketplaceCC: /^https?:\\/\\/(\\w*-)?(marketplace|city)\\.reallusion\\.com\\/character-creator\\/.*$/i,\n marketplaceCTA: /^https?:\\/\\/(\\w*-)?(marketplace|city)\\.reallusion\\.com\\/cartoon-animator\\/.*$/i,\n developer: /^https?:\\/\\/(\\w*-)?developer\\.reallusion.com\\//i,\n store: /^https?:\\/\\/(\\w*-)?(store|storefailover)\\.reallusion\\.com\\//i,\n storeWishList: /^https?:\\/\\/(\\w*-)?(store|storefailover)\\.reallusion\\.com\\/member\\/wishlist\\.html((#|\\?).*)?$/i,\n mocap: /^https?:\\/\\/(\\w*-)?mocap\\.reallusion\\.com\\//i,\n course: /^https?:\\/\\/(\\w*-)?courses\\.reallusion\\.com\\//i\n };\n window.rlTopNavBanner.init(window.rlServerURL, webTypeRegExp);\n }\n };\n watch(() => route.query, () => {\n checkDetailDisplayByRoute();\n });\n watch(() => route.path, () => {\n initRlTopnavBanner();\n });\n onBeforeMount(() => {\n checkDetailDisplayByRoute();\n });\n onMounted(() => {\n initRlTopnavBanner();\n });\n return {\n isNotAuth,\n isShowDetail\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./App.vue?vue&type=template&id=3617b646\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=3617b646&lang=scss\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from \"vue-router\";\r\nimport { languageService } from \"@/utils\";\r\nimport { languageEnum } from \"@/enums/plugins/i18n\";\r\n\r\nconst Home = () => import(/* webpackChunkName: \"home\" */ \"@/components/home.vue\");\r\nconst HomeExplorer = () => import(/* webpackChunkName: \"home-explorer\" */ \"@/components/home-explorer.vue\");\r\nconst Library = () => import(/* webpackChunkName: \"library\" */ \"@/components/library\");\r\nconst MasterClass = () => import(/* webpackChunkName: \"master-class\" */ \"@/components/master-class\");\r\nconst Bookmark = () => import(/* webpackChunkName: \"bookmark\" */ \"@/components/bookmark\");\r\nconst History = () => import(/* webpackChunkName: \"bookmark\" */ \"@/components/history\");\r\nconst OnlineManual = () => import(/* webpackChunkName: \"online-manual\" */ \"@/components/online-manual\");\r\nconst SkillPath = () => import(/* webpackChunkName: \"skill-path\" */ \"@/components/skill-path\");\r\nconst SkillPathDetail = () => import(/* webpackChunkName: \"skill-path\" */ \"@/components/skill-path-detail\");\r\n\r\nconst WebinarUpcoming = () => import(/* webpackChunkName: \"webinar\" */ \"../components/webinar/upcoming.vue\");\r\nconst WebinarArchive = () => import(/* webpackChunkName: \"webinar\" */ \"../components/webinar/archive.vue\");\r\nconst WebinarSpeaker = () => import(/* webpackChunkName: \"webinar\" */ \"../components/webinar/speaker.vue\");\r\nconst WebinarWrapper = () => import(/* webpackChunkName: \"webinar\" */ \"../components/webinar/wrapper.vue\");\r\n\r\nconst createMultiLangRoute = route => {\r\n let copyRouter = _.cloneDeep(route);\r\n if (copyRouter.children) {\r\n copyRouter.children.forEach(child => {\r\n if (child.name != undefined) {\r\n child.name += \"-lang\";\r\n }\r\n if (child.redirect != undefined) {\r\n child.redirect.name += \"-lang\"\r\n }\r\n })\r\n }\r\n return {\r\n ...copyRouter,\r\n path: \"/:lang\" + copyRouter.path,\r\n name: copyRouter.name + \"-lang\",\r\n };\r\n};\r\n\r\nconst routerBeforeEach = (to, from, next) => {\r\n const { setLanguage, getLanguage, getTargetLanguagePath } = languageService;\r\n const lang = to.params.lang?.toLowerCase();\r\n let nextInfo;\r\n\r\n if (lang !== undefined) { \r\n if (lang === languageEnum.EN) {\r\n const { params, query, hash } = to;\r\n\r\n delete params.lang;\r\n setLanguage(languageEnum.EN);\r\n nextInfo = { path: getTargetLanguagePath(languageEnum.EN), params, query, hash };\r\n }\r\n else if (Object.values(languageEnum).includes(lang)) {\r\n setLanguage(lang);\r\n }\r\n else {\r\n nextInfo = { name: \"home\" };\r\n }\r\n }\r\n else if (getLanguage() !== languageEnum.EN) {\r\n setLanguage(languageEnum.EN);\r\n }\r\n\r\n next(nextInfo);\r\n};\r\n\r\nlet routes = [\r\n {\r\n path: \"/\",\r\n name: \"home\",\r\n component: Home,\r\n },\r\n {\r\n path: \"/home/:path+\",\r\n name: \"homeExplorer\",\r\n component: HomeExplorer,\r\n },\r\n {\r\n path: \"/library\",\r\n name: \"library\",\r\n component: Library,\r\n },\r\n {\r\n path: \"/master-class/:tab?/:category?/:path*\",\r\n name: \"masterClass\",\r\n component: MasterClass,\r\n },\r\n {\r\n path: \"/skill-paths\",\r\n name: \"skillPath\",\r\n component: SkillPath,\r\n },\r\n {\r\n path: \"/skill-paths/:urlName\",\r\n name: \"skillPathDetail\",\r\n component: SkillPathDetail,\r\n },\r\n {\r\n path: \"/webinar\",\r\n name: \"webinar\",\r\n component: WebinarWrapper,\r\n children: [\r\n { path: \"\", redirect: { name: 'webinar-upcoming' } },\r\n { path: \"upcoming\", component: WebinarUpcoming, name: \"webinar-upcoming\" },\r\n { path: \"speakerinfo\", component: WebinarSpeaker, name: \"webinar-speakerinfo\" },\r\n { path: \"archive\", component: WebinarArchive, name: \"webinar-archive\" },\r\n { path: \":catchAll(.*)\", redirect: { name: 'webinar-upcoming' } },\r\n ]\r\n },\r\n {\r\n path: \"/bookmark\",\r\n name: \"bookmark\",\r\n component: Bookmark,\r\n },\r\n {\r\n path: \"/history\",\r\n name: \"history\",\r\n component: History,\r\n },\r\n {\r\n path: \"/online-manual\",\r\n name: \"onlineManual\",\r\n component: OnlineManual,\r\n },\r\n {\r\n path: \"/:pathMatch(.*)*\",\r\n name: \"404\",\r\n redirect: { name: \"home\" },\r\n }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes: [...routes, ...routes.map(createMultiLangRoute)],\r\n scrollBehavior (to, from, savedPosition) {\r\n if (savedPosition) { // 當上一頁時回到轉跳前 position\r\n return savedPosition; \r\n }\r\n if (to.hash) {\r\n return {\r\n el: to.hash, \r\n top: 100, // offset\r\n }\r\n }\r\n else {\r\n return { top: 0 }\r\n }\r\n }\r\n})\r\n\r\nrouter.beforeEach(routerBeforeEach);\r\n\r\nexport default router;\r\n","import ResizeObserver from 'resize-observer-polyfill';\r\nconst directive = {\r\n directives: {\r\n \"intersectionObserver\": {\r\n mounted: (el, binding) => {\r\n function hasBrowserIntersection () {\r\n if (('IntersectionObserver' in window) && \r\n ('IntersectionObserverEntry' in window) && \r\n ('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\r\n return true\r\n }\r\n else {\r\n return false\r\n }\r\n }\r\n function executeCallback () {\r\n if (typeof binding.value === 'function') {\r\n binding.value();\r\n }\r\n }\r\n if (hasBrowserIntersection) {\r\n var observer = new IntersectionObserver(function (entries) {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n executeCallback();\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n });\r\n observer.observe(el);\r\n }\r\n else {\r\n executeCallback();\r\n }\r\n }\r\n },\r\n \"fixed-block\": {\r\n mounted: (el) => {\r\n let $copy;\r\n const init = () => {\r\n $copy = $(el).clone();\r\n $copy.addClass(\"fix-block\");\r\n $(el).addClass(\"origin-block\");\r\n $(el).css({\r\n position: \"fixed\",\r\n top: 50,\r\n width: $(el).parent().width(),\r\n \"z-index\": 3,\r\n });\r\n $(el).parent().prepend($copy);\r\n new ResizeObserver( ()=> {\r\n if (window.innerWidth > 767) {\r\n $(el).css(\"width\", $(el).parent().width());\r\n }\r\n else {\r\n $(el).css(\"width\", \"100%\");\r\n }\r\n }).observe($copy[0]);\r\n }\r\n const setCss = () => {\r\n if (window.innerWidth > 767) {\r\n $(el).css({\r\n transition: \"\",\r\n transform: \"\",\r\n left: \"unset\",\r\n width: $(el).parent().width()\r\n });\r\n $(\"header\")[0].dataset.scrollHeight = 0;\r\n }\r\n else {\r\n $(el).css({\r\n transition: \"transform 0.5s linear\",\r\n left: 0,\r\n width: \"100%\"\r\n });\r\n $(\"header\")[0].dataset.scrollHeight = $(el).outerHeight();\r\n }\r\n }\r\n setTimeout(() => {\r\n init();\r\n setCss();\r\n });\r\n let lastScroll = 0;\r\n window.addEventListener('resize', function () {\r\n setCss();\r\n });\r\n window.addEventListener('scroll', function() {\r\n if (window.innerWidth > 767 || $('body').hasClass(\"stop-scroll\")) {\r\n return\r\n }\r\n const elHeight = parseInt($(el).outerHeight());\r\n const currentScroll = window.pageYOffset;\r\n if (currentScroll >= 60 + elHeight && currentScroll > lastScroll) {\r\n $(el).css(\"transform\", \"translate(0, -\"+ (elHeight + 60) + \"px)\");\r\n }\r\n else {\r\n $(el).css(\"transform\", \"\");\r\n }\r\n lastScroll = currentScroll;\r\n });\r\n }\r\n },\r\n \"fixed-top-nav\": {\r\n mounted: (el) => {\r\n const init = () => {\r\n if (window.innerWidth > 767) {\r\n $(el).css({\r\n transition: \"\",\r\n transform: \"\"\r\n });\r\n }\r\n else {\r\n $(el).css(\"transition\", \"transform 0.5s linear\");\r\n }\r\n }\r\n setTimeout(() => {\r\n init();\r\n });\r\n let lastScroll = 0;\r\n window.addEventListener('resize', function () {\r\n init();\r\n });\r\n window.addEventListener('scroll', function() {\r\n if (window.innerWidth > 767 || $('body').hasClass(\"stop-scroll\")) {\r\n return\r\n }\r\n const elHeight = parseInt($(el).outerHeight());\r\n const otherHeight = parseInt($(\"header\")[0].dataset.scrollHeight) || 0;\r\n const currentScroll = window.pageYOffset;\r\n if (currentScroll >= elHeight + otherHeight && currentScroll > lastScroll) {\r\n $(el).css(\"transform\", \"translate(0, -\"+ elHeight + \"px)\");\r\n }\r\n else {\r\n $(el).css(\"transform\", \"\");\r\n }\r\n lastScroll = currentScroll;\r\n });\r\n }\r\n }\r\n },\r\n install: function(Vue) {\r\n for (let directiveName in this.directives) {\r\n Vue.directive(directiveName, this.directives[directiveName]);\r\n }\r\n }\r\n}\r\n\r\nexport default directive;","import { createApp } from \"vue\";\r\nimport { createHead } from '@vueuse/head'\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport i18n from \"./plugins/i18n\";\r\nimport directive from \"./directives\";\r\n\r\nimport \"@/styles/common.scss\"\r\nimport \"@/styles/element-ui/index.scss\";\r\n\r\nconst app = createApp(App);\r\nconst head = createHead();\r\n\r\napp.use(router);\r\napp.use(directive);\r\napp.use(i18n);\r\napp.use(head);\r\n\r\nrouter.isReady().then(() => app.mount('#app'));\r\n","export default {\r\n en: {\r\n UPCOMING_TESTIMONIAL_DATA: [{\r\n content: \"I've enjoyed the most the part where it was explained what PBR does best, what it doesn't do, and how to compensate for them with GI. I would recommend this webinar to anyone who has questions concerning the pros and cons of PBR, and how to get the best of it with iClone 7.\",\r\n author: \"Ken Kawashima\"\r\n },\r\n {\r\n content: \"hough the seminar addressed foundational methods to scene building, there is always something new to learn. I learned a few new tricks. Kai is extremely knowledgeable, entertaining and an excellent presenter. Sometimes though - as a suggestions from someone trying to learn the program - it would be nice to get a webinar that demonstrates the lesson step by step rather than jumping around.\",\r\n author: \"Joce Leger\"\r\n },\r\n {\r\n content: \"I like that it felt personal and that you couldn't see everyone elses questions while the webinar was happening, I like that unlike watching a video you feel part of a lecture or a private lesson, really enjoyed it, would def do another!\",\r\n author: \"Katrina Talbot\"\r\n },\r\n {\r\n content: \"Thanks to this webinar I gained increased knowledge about CT8 blending types as well as the use of image overlay utility for fine tuning in CT8. I also saw a effective workflow utilizing CT8,Character Creator, Sculptris and PhotoShop. I will have to watch the video a few more times so that I can take notes to feel more comfortable with the new knowledge and workflow. I watch as many webinars as I can and do recommend them.\",\r\n author: \"Vicki Wilson\"\r\n },\r\n {\r\n content: \"The specific part I enjoyed the most was the step by step live demo in realtime and seeing the immediate generated results and even witnessing the technical issues encountered along the way by the speaker. Yes, I would like to recommend this webinar because I have an opportunity to hear the questions of other participants and the responses they receive.\",\r\n author: \"Gee Lam\"\r\n }],\r\n SPEAKER_INTRODUCTION_DATA: [{\r\n id: \"Cameron_Hines\", \r\n img: \"Speaker_Cameron.jpg\",\r\n name: \"Cameron Hines\",\r\n intros: [\r\n \"In pre-production in creating a Mobile Video Game Company\",\r\n \"Freelance Animator & 3D Artist at Creating Animated Media (CAM)\",\r\n \"Independent Game Maker 2 and Unity Game Designer\",\r\n \"Animator - Childish Gambino - \\\"Deep Web Tour Vlog\\\"\",\r\n ],\r\n }, {\r\n id: \"Cris_Moras\", \r\n img: \"Speaker_Cris.jpg\",\r\n name: \"Cris Moras (aka Stuckon3D)\",\r\n intros: [\r\n \"3D generalist for more than 25 years\",\r\n \"Lighting and compositing specialist for 15 of those 25 years.\",\r\n \"Worked on TV shows (Star Trek: voyager, Deep Space mine), music videos, commercials, motion rides, and 13 animated feature films (at PDI/Dreamworks and Walt Disney Animation Studios), among those: Shrek 2 , Big Hero 6, Frozen, and Zootopia, all Oscar winning films.\",\r\n \"Director and art director for Westwood Studio Red Alert 2 Franchise and senior lead artist for Disney Interactive\",\r\n ],\r\n }, {\r\n id: \"Francesco_Tammaccaro\",\r\n img: \"Speaker_Francesco.png\",\r\n name: \"Francesco Tammaccaro (aka Frank’s Pencil)\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: YouTuber animation\",\r\n \"Reallusion Certified Content Developer for CrazyTalk Animator\",\r\n \"Indipendent multimedia artist, over 10 years of experience\",\r\n \"Artist - Locogame.co.uk\",\r\n \"Trained in VR/AR applications development at EON Reality\",\r\n ],\r\n }, {\r\n id: \"Julian_Darley\",\r\n img: \"Speaker_Julian.jpg\",\r\n name: \"Julian Darley\",\r\n intros: [\r\n \"Writing and directing films since the early 1980s, including: music videos, documentaries, animated shorts, live action shorts.\",\r\n \"Now in pre-production for a feature film that uses mostly CGI backgrounds and will make heavy use of iClone for previz.\",\r\n ],\r\n }, {\r\n id: \"James_Martin\",\r\n img: \"Speaker_James.jpg\",\r\n name: \"James Martin\",\r\n intros: [\r\n \"Reallusion Certified Trainer - 10+ years training and production\",\r\n \"VFX Artist - REPLICAS (2017) - LOTUS Entertainment\",\r\n \"Character Animator - \\\"Survivor's Remorse\\\" - STARZ network\",\r\n \"Lead Animator - Corporate Executive Board (CEB)\",\r\n \"Lead Animator - \\\"Plato's Reality Machine\\\" (2012)\",\r\n \"Owner / Artist - MobaCap Motion capture On-Demand\",\r\n ],\r\n }, {\r\n id: \"Kai_DeNeve\",\r\n img: \"Speaker_Kai.jpg\",\r\n name: \"Kai DeNeve\",\r\n intros: [\r\n \"Developer Marketing Manager at Reallusion\",\r\n \"Reallusion Marketplace Manager\",\r\n \"Freelance Animator & 3D Artist at Neat Night Productions\",\r\n \"Independent Unreal Engine Game Designer\",\r\n \"Video Game Addict\",\r\n ],\r\n }, {\r\n id: \"Mark_Diaz\",\r\n img: \"Speaker_Mark.jpg\",\r\n name: \"Mark Diaz\",\r\n intros: [\r\n \"Short Film Director and Editor for Autumn Leave Films\",\r\n \"TEDx Speaker\",\r\n \"Teacher and CEO at 2DAnimation101\",\r\n \"Self-Taught Animator\",\r\n ],\r\n }, {\r\n id: \"Mike_Sherwood\",\r\n img: \"Speaker_mike.jpg\",\r\n name: \"Mike Sherwood (aka 3Dtest)\",\r\n intros: [\r\n \"Independent 3D artist and consultant, over 20 years CGI experience\",\r\n \"Specialist in real time character modelling and animation\",\r\n \"Worked as Creative Director at bioVirtual Ltd\",\r\n \"Worked with broadcast and games companies such as the BBC and EA\",\r\n \"Originally trained and worked as a theatre actor/ director\",\r\n ],\r\n }, {\r\n id: \"Tobias_Kolodziey\",\r\n img: \"Speaker_ToKo.jpg\",\r\n name: \"Tobias Kolodziey (aka ToKoMotion)\",\r\n intros: [\r\n \"Reallusion Certified Content Developer for iClone/Character Creator/CrazyTalk\",\r\n \"Owner/Artist - Studio ToKoMotion\",\r\n \"Production of Animation - Visualization - Unity Game Dev / VR\",\r\n ],\r\n }, {\r\n id: \"Viktoriya_Nesterenko\",\r\n img: \"Speaker_Viktoriya.jpg\",\r\n name: \"Viktoriya Nesterenko\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: Business animation\",\r\n \"Reallusion Certified Director (3D animation) 2016\",\r\n \"Independent 3D and 2D artist\",\r\n \"Owner/Artist - Nestergal creative school-studio\",\r\n ],\r\n }],\r\n },\r\n de: {\r\n UPCOMING_TESTIMONIAL_DATA: [{\r\n content: \"I've enjoyed the most the part where it was explained what PBR does best, what it doesn't do, and how to compensate for them with GI. I would recommend this webinar to anyone who has questions concerning the pros and cons of PBR, and how to get the best of it with iClone 7.\",\r\n author: \"Ken Kawashima\"\r\n },\r\n {\r\n content: \"hough the seminar addressed foundational methods to scene building, there is always something new to learn. I learned a few new tricks. Kai is extremely knowledgeable, entertaining and an excellent presenter. Sometimes though - as a suggestions from someone trying to learn the program - it would be nice to get a webinar that demonstrates the lesson step by step rather than jumping around.\",\r\n author: \"Joce Leger\"\r\n },\r\n {\r\n content: \"I like that it felt personal and that you couldn't see everyone elses questions while the webinar was happening, I like that unlike watching a video you feel part of a lecture or a private lesson, really enjoyed it, would def do another!\",\r\n author: \"Katrina Talbot\"\r\n },\r\n {\r\n content: \"Thanks to this webinar I gained increased knowledge about CT8 blending types as well as the use of image overlay utility for fine tuning in CT8. I also saw a effective workflow utilizing CT8,Character Creator, Sculptris and PhotoShop. I will have to watch the video a few more times so that I can take notes to feel more comfortable with the new knowledge and workflow. I watch as many webinars as I can and do recommend them.\",\r\n author: \"Vicki Wilson\"\r\n },\r\n {\r\n content: \"The specific part I enjoyed the most was the step by step live demo in realtime and seeing the immediate generated results and even witnessing the technical issues encountered along the way by the speaker. Yes, I would like to recommend this webinar because I have an opportunity to hear the questions of other participants and the responses they receive.\",\r\n author: \"Gee Lam\"\r\n }],\r\n SPEAKER_INTRODUCTION_DATA: [{\r\n id: \"Cameron_Hines\", \r\n img: \"Speaker_Cameron.jpg\",\r\n name: \"Cameron Hines\",\r\n intros: [\r\n \"In pre-production in creating a Mobile Video Game Company\",\r\n \"Freelance Animator & 3D Artist at Creating Animated Media (CAM)\",\r\n \"Independent Game Maker 2 and Unity Game Designer\",\r\n \"Animator - Childish Gambino - \\\"Deep Web Tour Vlog\\\"\",\r\n ],\r\n }, {\r\n id: \"Cris_Moras\", \r\n img: \"Speaker_Cris.jpg\",\r\n name: \"Cris Moras (aka Stuckon3D)\",\r\n intros: [\r\n \"3D generalist for more than 25 years\",\r\n \"Lighting and compositing specialist for 15 of those 25 years.\",\r\n \"Worked on TV shows (Star Trek: voyager, Deep Space mine), music videos, commercials, motion rides, and 13 animated feature films (at PDI/Dreamworks and Walt Disney Animation Studios), among those: Shrek 2 , Big Hero 6, Frozen, and Zootopia, all Oscar winning films.\",\r\n \"Director and art director for Westwood Studio Red Alert 2 Franchise and senior lead artist for Disney Interactive\",\r\n ],\r\n }, {\r\n id: \"Francesco_Tammaccaro\",\r\n img: \"Speaker_Francesco.png\",\r\n name: \"Francesco Tammaccaro (aka Frank’s Pencil)\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: YouTuber animation\",\r\n \"Reallusion Certified Content Developer for CrazyTalk Animator\",\r\n \"Indipendent multimedia artist, over 10 years of experience\",\r\n \"Artist - Locogame.co.uk\",\r\n \"Trained in VR/AR applications development at EON Reality\",\r\n ],\r\n }, {\r\n id: \"Julian_Darley\",\r\n img: \"Speaker_Julian.jpg\",\r\n name: \"Julian Darley\",\r\n intros: [\r\n \"Writing and directing films since the early 1980s, including: music videos, documentaries, animated shorts, live action shorts.\",\r\n \"Now in pre-production for a feature film that uses mostly CGI backgrounds and will make heavy use of iClone for previz.\",\r\n ],\r\n }, {\r\n id: \"James_Martin\",\r\n img: \"Speaker_James.jpg\",\r\n name: \"James Martin\",\r\n intros: [\r\n \"Reallusion Certified Trainer - 10+ years training and production\",\r\n \"VFX Artist - REPLICAS (2017) - LOTUS Entertainment\",\r\n \"Character Animator - \\\"Survivor's Remorse\\\" - STARZ network\",\r\n \"Lead Animator - Corporate Executive Board (CEB)\",\r\n \"Lead Animator - \\\"Plato's Reality Machine\\\" (2012)\",\r\n \"Owner / Artist - MobaCap Motion capture On-Demand\",\r\n ],\r\n }, {\r\n id: \"Kai_DeNeve\",\r\n img: \"Speaker_Kai.jpg\",\r\n name: \"Kai DeNeve\",\r\n intros: [\r\n \"Developer Marketing Manager at Reallusion\",\r\n \"Reallusion Marketplace Manager\",\r\n \"Freelance Animator & 3D Artist at Neat Night Productions\",\r\n \"Independent Unreal Engine Game Designer\",\r\n \"Video Game Addict\",\r\n ],\r\n }, {\r\n id: \"Mark_Diaz\",\r\n img: \"Speaker_Mark.jpg\",\r\n name: \"Mark Diaz\",\r\n intros: [\r\n \"Short Film Director and Editor for Autumn Leave Films\",\r\n \"TEDx Speaker\",\r\n \"Teacher and CEO at 2DAnimation101\",\r\n \"Self-Taught Animator\",\r\n ],\r\n }, {\r\n id: \"Mike_Sherwood\",\r\n img: \"Speaker_mike.jpg\",\r\n name: \"Mike Sherwood (aka 3Dtest)\",\r\n intros: [\r\n \"Independent 3D artist and consultant, over 20 years CGI experience\",\r\n \"Specialist in real time character modelling and animation\",\r\n \"Worked as Creative Director at bioVirtual Ltd\",\r\n \"Worked with broadcast and games companies such as the BBC and EA\",\r\n \"Originally trained and worked as a theatre actor/ director\",\r\n ],\r\n }, {\r\n id: \"Tobias_Kolodziey\",\r\n img: \"Speaker_ToKo.jpg\",\r\n name: \"Tobias Kolodziey (aka ToKoMotion)\",\r\n intros: [\r\n \"Reallusion Certified Content Developer for iClone/Character Creator/CrazyTalk\",\r\n \"Owner/Artist - Studio ToKoMotion\",\r\n \"Production of Animation - Visualization - Unity Game Dev / VR\",\r\n ],\r\n }, {\r\n id: \"Viktoriya Nesterenko\",\r\n img: \"Speaker_Viktoriya.jpg\",\r\n name: \"Viktoriya Nesterenko\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: Business animation\",\r\n \"Reallusion Certified Director (3D animation) 2016\",\r\n \"Independent 3D and 2D artist\",\r\n \"Owner/Artist - Nestergal creative school-studio\",\r\n ],\r\n }],\r\n },\r\n jp: {\r\n UPCOMING_TESTIMONIAL_DATA: [{\r\n content: \"I've enjoyed the most the part where it was explained what PBR does best, what it doesn't do, and how to compensate for them with GI. I would recommend this webinar to anyone who has questions concerning the pros and cons of PBR, and how to get the best of it with iClone 7.\",\r\n author: \"Ken Kawashima\"\r\n },\r\n {\r\n content: \"hough the seminar addressed foundational methods to scene building, there is always something new to learn. I learned a few new tricks. Kai is extremely knowledgeable, entertaining and an excellent presenter. Sometimes though - as a suggestions from someone trying to learn the program - it would be nice to get a webinar that demonstrates the lesson step by step rather than jumping around.\",\r\n author: \"Joce Leger\"\r\n },\r\n {\r\n content: \"I like that it felt personal and that you couldn't see everyone elses questions while the webinar was happening, I like that unlike watching a video you feel part of a lecture or a private lesson, really enjoyed it, would def do another!\",\r\n author: \"Katrina Talbot\"\r\n },\r\n {\r\n content: \"Thanks to this webinar I gained increased knowledge about CT8 blending types as well as the use of image overlay utility for fine tuning in CT8. I also saw a effective workflow utilizing CT8,Character Creator, Sculptris and PhotoShop. I will have to watch the video a few more times so that I can take notes to feel more comfortable with the new knowledge and workflow. I watch as many webinars as I can and do recommend them.\",\r\n author: \"Vicki Wilson\"\r\n },\r\n {\r\n content: \"The specific part I enjoyed the most was the step by step live demo in realtime and seeing the immediate generated results and even witnessing the technical issues encountered along the way by the speaker. Yes, I would like to recommend this webinar because I have an opportunity to hear the questions of other participants and the responses they receive.\",\r\n author: \"Gee Lam\"\r\n }],\r\n SPEAKER_INTRODUCTION_DATA: [{\r\n id: \"Cameron_Hines\", \r\n img: \"Speaker_Cameron.jpg\",\r\n name: \"Cameron Hines\",\r\n intros: [\r\n \"In pre-production in creating a Mobile Video Game Company\",\r\n \"Freelance Animator & 3D Artist at Creating Animated Media (CAM)\",\r\n \"Independent Game Maker 2 and Unity Game Designer\",\r\n \"Animator - Childish Gambino - \\\"Deep Web Tour Vlog\\\"\",\r\n ],\r\n }, {\r\n id: \"Cris_Moras\", \r\n img: \"Speaker_Cris.jpg\",\r\n name: \"Cris Moras (aka Stuckon3D)\",\r\n intros: [\r\n \"3D generalist for more than 25 years\",\r\n \"Lighting and compositing specialist for 15 of those 25 years.\",\r\n \"Worked on TV shows (Star Trek: voyager, Deep Space mine), music videos, commercials, motion rides, and 13 animated feature films (at PDI/Dreamworks and Walt Disney Animation Studios), among those: Shrek 2 , Big Hero 6, Frozen, and Zootopia, all Oscar winning films.\",\r\n \"Director and art director for Westwood Studio Red Alert 2 Franchise and senior lead artist for Disney Interactive\",\r\n ],\r\n }, {\r\n id: \"Francesco_Tammaccaro\",\r\n img: \"Speaker_Francesco.png\",\r\n name: \"Francesco Tammaccaro (aka Frank’s Pencil)\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: YouTuber animation\",\r\n \"Reallusion Certified Content Developer for CrazyTalk Animator\",\r\n \"Indipendent multimedia artist, over 10 years of experience\",\r\n \"Artist - Locogame.co.uk\",\r\n \"Trained in VR/AR applications development at EON Reality\",\r\n ],\r\n }, {\r\n id: \"Julian_Darley\",\r\n img: \"Speaker_Julian.jpg\",\r\n name: \"Julian Darley\",\r\n intros: [\r\n \"Writing and directing films since the early 1980s, including: music videos, documentaries, animated shorts, live action shorts.\",\r\n \"Now in pre-production for a feature film that uses mostly CGI backgrounds and will make heavy use of iClone for previz.\",\r\n ],\r\n }, {\r\n id: \"James_Martin\",\r\n img: \"Speaker_James.jpg\",\r\n name: \"James Martin\",\r\n intros: [\r\n \"Reallusion Certified Trainer - 10+ years training and production\",\r\n \"VFX Artist - REPLICAS (2017) - LOTUS Entertainment\",\r\n \"Character Animator - \\\"Survivor's Remorse\\\" - STARZ network\",\r\n \"Lead Animator - Corporate Executive Board (CEB)\",\r\n \"Lead Animator - \\\"Plato's Reality Machine\\\" (2012)\",\r\n \"Owner / Artist - MobaCap Motion capture On-Demand\",\r\n ],\r\n }, {\r\n id: \"Kai_DeNeve\",\r\n img: \"Speaker_Kai.jpg\",\r\n name: \"Kai DeNeve\",\r\n intros: [\r\n \"Developer Marketing Manager at Reallusion\",\r\n \"Reallusion Marketplace Manager\",\r\n \"Freelance Animator & 3D Artist at Neat Night Productions\",\r\n \"Independent Unreal Engine Game Designer\",\r\n \"Video Game Addict\",\r\n ],\r\n }, {\r\n id: \"Mark_Diaz\",\r\n img: \"Speaker_Mark.jpg\",\r\n name: \"Mark Diaz\",\r\n intros: [\r\n \"Short Film Director and Editor for Autumn Leave Films\",\r\n \"TEDx Speaker\",\r\n \"Teacher and CEO at 2DAnimation101\",\r\n \"Self-Taught Animator\",\r\n ],\r\n }, {\r\n id: \"Mike_Sherwood\",\r\n img: \"Speaker_mike.jpg\",\r\n name: \"Mike Sherwood (aka 3Dtest)\",\r\n intros: [\r\n \"Independent 3D artist and consultant, over 20 years CGI experience\",\r\n \"Specialist in real time character modelling and animation\",\r\n \"Worked as Creative Director at bioVirtual Ltd\",\r\n \"Worked with broadcast and games companies such as the BBC and EA\",\r\n \"Originally trained and worked as a theatre actor/ director\",\r\n ],\r\n }, {\r\n id: \"Tobias_Kolodziey\",\r\n img: \"Speaker_ToKo.jpg\",\r\n name: \"Tobias Kolodziey (aka ToKoMotion)\",\r\n intros: [\r\n \"Reallusion Certified Content Developer for iClone/Character Creator/CrazyTalk\",\r\n \"Owner/Artist - Studio ToKoMotion\",\r\n \"Production of Animation - Visualization - Unity Game Dev / VR\",\r\n ],\r\n }, {\r\n id: \"Viktoriya Nesterenko\",\r\n img: \"Speaker_Viktoriya.jpg\",\r\n name: \"Viktoriya Nesterenko\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: Business animation\",\r\n \"Reallusion Certified Director (3D animation) 2016\",\r\n \"Independent 3D and 2D artist\",\r\n \"Owner/Artist - Nestergal creative school-studio\",\r\n ],\r\n }],\r\n },\r\n tw: {\r\n UPCOMING_TESTIMONIAL_DATA: [{\r\n content: \"I've enjoyed the most the part where it was explained what PBR does best, what it doesn't do, and how to compensate for them with GI. I would recommend this webinar to anyone who has questions concerning the pros and cons of PBR, and how to get the best of it with iClone 7.\",\r\n author: \"Ken Kawashima\"\r\n },\r\n {\r\n content: \"hough the seminar addressed foundational methods to scene building, there is always something new to learn. I learned a few new tricks. Kai is extremely knowledgeable, entertaining and an excellent presenter. Sometimes though - as a suggestions from someone trying to learn the program - it would be nice to get a webinar that demonstrates the lesson step by step rather than jumping around.\",\r\n author: \"Joce Leger\"\r\n },\r\n {\r\n content: \"I like that it felt personal and that you couldn't see everyone elses questions while the webinar was happening, I like that unlike watching a video you feel part of a lecture or a private lesson, really enjoyed it, would def do another!\",\r\n author: \"Katrina Talbot\"\r\n },\r\n {\r\n content: \"Thanks to this webinar I gained increased knowledge about CT8 blending types as well as the use of image overlay utility for fine tuning in CT8. I also saw a effective workflow utilizing CT8,Character Creator, Sculptris and PhotoShop. I will have to watch the video a few more times so that I can take notes to feel more comfortable with the new knowledge and workflow. I watch as many webinars as I can and do recommend them.\",\r\n author: \"Vicki Wilson\"\r\n },\r\n {\r\n content: \"The specific part I enjoyed the most was the step by step live demo in realtime and seeing the immediate generated results and even witnessing the technical issues encountered along the way by the speaker. Yes, I would like to recommend this webinar because I have an opportunity to hear the questions of other participants and the responses they receive.\",\r\n author: \"Gee Lam\"\r\n }],\r\n SPEAKER_INTRODUCTION_DATA: [{\r\n id: \"Cameron_Hines\", \r\n img: \"Speaker_Cameron.jpg\",\r\n name: \"Cameron Hines\",\r\n intros: [\r\n \"In pre-production in creating a Mobile Video Game Company\",\r\n \"Freelance Animator & 3D Artist at Creating Animated Media (CAM)\",\r\n \"Independent Game Maker 2 and Unity Game Designer\",\r\n \"Animator - Childish Gambino - \\\"Deep Web Tour Vlog\\\"\",\r\n ],\r\n }, {\r\n id: \"Cris_Moras\", \r\n img: \"Speaker_Cris.jpg\",\r\n name: \"Cris Moras (aka Stuckon3D)\",\r\n intros: [\r\n \"3D generalist for more than 25 years\",\r\n \"Lighting and compositing specialist for 15 of those 25 years.\",\r\n \"Worked on TV shows (Star Trek: voyager, Deep Space mine), music videos, commercials, motion rides, and 13 animated feature films (at PDI/Dreamworks and Walt Disney Animation Studios), among those: Shrek 2 , Big Hero 6, Frozen, and Zootopia, all Oscar winning films.\",\r\n \"Director and art director for Westwood Studio Red Alert 2 Franchise and senior lead artist for Disney Interactive\",\r\n ],\r\n }, {\r\n id: \"Francesco_Tammaccaro\",\r\n img: \"Speaker_Francesco.png\",\r\n name: \"Francesco Tammaccaro (aka Frank’s Pencil)\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: YouTuber animation\",\r\n \"Reallusion Certified Content Developer for CrazyTalk Animator\",\r\n \"Indipendent multimedia artist, over 10 years of experience\",\r\n \"Artist - Locogame.co.uk\",\r\n \"Trained in VR/AR applications development at EON Reality\",\r\n ],\r\n }, {\r\n id: \"Julian_Darley\",\r\n img: \"Speaker_Julian.jpg\",\r\n name: \"Julian Darley\",\r\n intros: [\r\n \"Writing and directing films since the early 1980s, including: music videos, documentaries, animated shorts, live action shorts.\",\r\n \"Now in pre-production for a feature film that uses mostly CGI backgrounds and will make heavy use of iClone for previz.\",\r\n ],\r\n }, {\r\n id: \"James_Martin\",\r\n img: \"Speaker_James.jpg\",\r\n name: \"James Martin\",\r\n intros: [\r\n \"Reallusion Certified Trainer - 10+ years training and production\",\r\n \"VFX Artist - REPLICAS (2017) - LOTUS Entertainment\",\r\n \"Character Animator - \\\"Survivor's Remorse\\\" - STARZ network\",\r\n \"Lead Animator - Corporate Executive Board (CEB)\",\r\n \"Lead Animator - \\\"Plato's Reality Machine\\\" (2012)\",\r\n \"Owner / Artist - MobaCap Motion capture On-Demand\",\r\n ],\r\n }, {\r\n id: \"Kai_DeNeve\",\r\n img: \"Speaker_Kai.jpg\",\r\n name: \"Kai DeNeve\",\r\n intros: [\r\n \"Developer Marketing Manager at Reallusion\",\r\n \"Reallusion Marketplace Manager\",\r\n \"Freelance Animator & 3D Artist at Neat Night Productions\",\r\n \"Independent Unreal Engine Game Designer\",\r\n \"Video Game Addict\",\r\n ],\r\n }, {\r\n id: \"Mark_Diaz\",\r\n img: \"Speaker_Mark.jpg\",\r\n name: \"Mark Diaz\",\r\n intros: [\r\n \"Short Film Director and Editor for Autumn Leave Films\",\r\n \"TEDx Speaker\",\r\n \"Teacher and CEO at 2DAnimation101\",\r\n \"Self-Taught Animator\",\r\n ],\r\n }, {\r\n id: \"Mike_Sherwood\",\r\n img: \"Speaker_mike.jpg\",\r\n name: \"Mike Sherwood (aka 3Dtest)\",\r\n intros: [\r\n \"Independent 3D artist and consultant, over 20 years CGI experience\",\r\n \"Specialist in real time character modelling and animation\",\r\n \"Worked as Creative Director at bioVirtual Ltd\",\r\n \"Worked with broadcast and games companies such as the BBC and EA\",\r\n \"Originally trained and worked as a theatre actor/ director\",\r\n ],\r\n }, {\r\n id: \"Tobias_Kolodziey\",\r\n img: \"Speaker_ToKo.jpg\",\r\n name: \"Tobias Kolodziey (aka ToKoMotion)\",\r\n intros: [\r\n \"Reallusion Certified Content Developer for iClone/Character Creator/CrazyTalk\",\r\n \"Owner/Artist - Studio ToKoMotion\",\r\n \"Production of Animation - Visualization - Unity Game Dev / VR\",\r\n ],\r\n }, {\r\n id: \"Viktoriya Nesterenko\",\r\n img: \"Speaker_Viktoriya.jpg\",\r\n name: \"Viktoriya Nesterenko\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: Business animation\",\r\n \"Reallusion Certified Director (3D animation) 2016\",\r\n \"Independent 3D and 2D artist\",\r\n \"Owner/Artist - Nestergal creative school-studio\",\r\n ],\r\n }],\r\n },\r\n cn: {\r\n UPCOMING_TESTIMONIAL_DATA: [{\r\n content: \"I've enjoyed the most the part where it was explained what PBR does best, what it doesn't do, and how to compensate for them with GI. I would recommend this webinar to anyone who has questions concerning the pros and cons of PBR, and how to get the best of it with iClone 7.\",\r\n author: \"Ken Kawashima\"\r\n },\r\n {\r\n content: \"hough the seminar addressed foundational methods to scene building, there is always something new to learn. I learned a few new tricks. Kai is extremely knowledgeable, entertaining and an excellent presenter. Sometimes though - as a suggestions from someone trying to learn the program - it would be nice to get a webinar that demonstrates the lesson step by step rather than jumping around.\",\r\n author: \"Joce Leger\"\r\n },\r\n {\r\n content: \"I like that it felt personal and that you couldn't see everyone elses questions while the webinar was happening, I like that unlike watching a video you feel part of a lecture or a private lesson, really enjoyed it, would def do another!\",\r\n author: \"Katrina Talbot\"\r\n },\r\n {\r\n content: \"Thanks to this webinar I gained increased knowledge about CT8 blending types as well as the use of image overlay utility for fine tuning in CT8. I also saw a effective workflow utilizing CT8,Character Creator, Sculptris and PhotoShop. I will have to watch the video a few more times so that I can take notes to feel more comfortable with the new knowledge and workflow. I watch as many webinars as I can and do recommend them.\",\r\n author: \"Vicki Wilson\"\r\n },\r\n {\r\n content: \"The specific part I enjoyed the most was the step by step live demo in realtime and seeing the immediate generated results and even witnessing the technical issues encountered along the way by the speaker. Yes, I would like to recommend this webinar because I have an opportunity to hear the questions of other participants and the responses they receive.\",\r\n author: \"Gee Lam\"\r\n }],\r\n SPEAKER_INTRODUCTION_DATA: [{\r\n id: \"Cameron_Hines\", \r\n img: \"Speaker_Cameron.jpg\",\r\n name: \"Cameron Hines\",\r\n intros: [\r\n \"In pre-production in creating a Mobile Video Game Company\",\r\n \"Freelance Animator & 3D Artist at Creating Animated Media (CAM)\",\r\n \"Independent Game Maker 2 and Unity Game Designer\",\r\n \"Animator - Childish Gambino - \\\"Deep Web Tour Vlog\\\"\",\r\n ],\r\n }, {\r\n id: \"Cris_Moras\", \r\n img: \"Speaker_Cris.jpg\",\r\n name: \"Cris Moras (aka Stuckon3D)\",\r\n intros: [\r\n \"3D generalist for more than 25 years\",\r\n \"Lighting and compositing specialist for 15 of those 25 years.\",\r\n \"Worked on TV shows (Star Trek: voyager, Deep Space mine), music videos, commercials, motion rides, and 13 animated feature films (at PDI/Dreamworks and Walt Disney Animation Studios), among those: Shrek 2 , Big Hero 6, Frozen, and Zootopia, all Oscar winning films.\",\r\n \"Director and art director for Westwood Studio Red Alert 2 Franchise and senior lead artist for Disney Interactive\",\r\n ],\r\n }, {\r\n id: \"Francesco_Tammaccaro\",\r\n img: \"Speaker_Francesco.png\",\r\n name: \"Francesco Tammaccaro (aka Frank’s Pencil)\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: YouTuber animation\",\r\n \"Reallusion Certified Content Developer for CrazyTalk Animator\",\r\n \"Indipendent multimedia artist, over 10 years of experience\",\r\n \"Artist - Locogame.co.uk\",\r\n \"Trained in VR/AR applications development at EON Reality\",\r\n ],\r\n }, {\r\n id: \"Julian_Darley\",\r\n img: \"Speaker_Julian.jpg\",\r\n name: \"Julian Darley\",\r\n intros: [\r\n \"Writing and directing films since the early 1980s, including: music videos, documentaries, animated shorts, live action shorts.\",\r\n \"Now in pre-production for a feature film that uses mostly CGI backgrounds and will make heavy use of iClone for previz.\",\r\n ],\r\n }, {\r\n id: \"James_Martin\",\r\n img: \"Speaker_James.jpg\",\r\n name: \"James Martin\",\r\n intros: [\r\n \"Reallusion Certified Trainer - 10+ years training and production\",\r\n \"VFX Artist - REPLICAS (2017) - LOTUS Entertainment\",\r\n \"Character Animator - \\\"Survivor's Remorse\\\" - STARZ network\",\r\n \"Lead Animator - Corporate Executive Board (CEB)\",\r\n \"Lead Animator - \\\"Plato's Reality Machine\\\" (2012)\",\r\n \"Owner / Artist - MobaCap Motion capture On-Demand\",\r\n ],\r\n }, {\r\n id: \"Kai_DeNeve\",\r\n img: \"Speaker_Kai.jpg\",\r\n name: \"Kai DeNeve\",\r\n intros: [\r\n \"Developer Marketing Manager at Reallusion\",\r\n \"Reallusion Marketplace Manager\",\r\n \"Freelance Animator & 3D Artist at Neat Night Productions\",\r\n \"Independent Unreal Engine Game Designer\",\r\n \"Video Game Addict\",\r\n ],\r\n }, {\r\n id: \"Mark_Diaz\",\r\n img: \"Speaker_Mark.jpg\",\r\n name: \"Mark Diaz\",\r\n intros: [\r\n \"Short Film Director and Editor for Autumn Leave Films\",\r\n \"TEDx Speaker\",\r\n \"Teacher and CEO at 2DAnimation101\",\r\n \"Self-Taught Animator\",\r\n ],\r\n }, {\r\n id: \"Mike_Sherwood\",\r\n img: \"Speaker_mike.jpg\",\r\n name: \"Mike Sherwood (aka 3Dtest)\",\r\n intros: [\r\n \"Independent 3D artist and consultant, over 20 years CGI experience\",\r\n \"Specialist in real time character modelling and animation\",\r\n \"Worked as Creative Director at bioVirtual Ltd\",\r\n \"Worked with broadcast and games companies such as the BBC and EA\",\r\n \"Originally trained and worked as a theatre actor/ director\",\r\n ],\r\n }, {\r\n id: \"Tobias_Kolodziey\",\r\n img: \"Speaker_ToKo.jpg\",\r\n name: \"Tobias Kolodziey (aka ToKoMotion)\",\r\n intros: [\r\n \"Reallusion Certified Content Developer for iClone/Character Creator/CrazyTalk\",\r\n \"Owner/Artist - Studio ToKoMotion\",\r\n \"Production of Animation - Visualization - Unity Game Dev / VR\",\r\n ],\r\n }, {\r\n id: \"Viktoriya Nesterenko\",\r\n img: \"Speaker_Viktoriya.jpg\",\r\n name: \"Viktoriya Nesterenko\",\r\n intros: [\r\n \"1st prize of Animation@Work 2018 contest: Business animation\",\r\n \"Reallusion Certified Director (3D animation) 2016\",\r\n \"Independent 3D and 2D artist\",\r\n \"Owner/Artist - Nestergal creative school-studio\",\r\n ],\r\n }],\r\n }\r\n}","import { createI18n } from \"vue-i18n\";\r\nimport { languageEnum } from \"@/enums/plugins/i18n\"\r\nimport objectData from \"./object-data\";\r\n\r\n// TO-DO lazy-loading \r\nconst messages = {\r\n en: {\r\n COMMON: {\r\n TUTOTIAL: \"Tutorial\",\r\n VERSION: \"Version\",\r\n PRICE: \"Price\",\r\n DATE: \"Date\",\r\n LEVEL: \"Level\",\r\n lEVEL_FOUNDATIONALl: \"Foundational\",\r\n lEVEL_MEDIUM: \"Medium\",\r\n lEVEL_ADVANCED: \"Advanced\",\r\n SORT_LATEST: \"Latest\",\r\n SORT_OLDEST: \"Oldest\",\r\n SORT_RELEVANCE: \"Relevance\",\r\n HOSTED: \"Hosted\",\r\n LIVE_DEMO_OUTLINE : \"Live Demo Outline\",\r\n UPDATE_BOOKMARK_STATUS_SUCCESS: \"Successfully bookmarked\",\r\n UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS: \"Removed from your bookmark\",\r\n API_ERROR_TITLE: `
Error!
`,\r\n API_ERROR_DESCRIPTION: `
Please wait a few minutes before you try again.
`,\r\n NEW: \"NEW\",\r\n NO_SEARCH_RESULTS_FOUND: \"No search results found.\",\r\n REALLUSION_COURSES: \"Reallusion Courses\",\r\n SKILL_PATH: 'Skill Paths'\r\n },\r\n PAGE_BOOKMARK: {\r\n BOOKMARK: \"Bookmark\",\r\n NO_VIDEO: \"No bookmarked videos yet\",\r\n FILTER_ALL: \"All\",\r\n },\r\n TOP_NAV: {\r\n LOG_IN: \"Log In\",\r\n SIGN_UP: \"Sign Up\",\r\n LOG_OUT: \"Logout\",\r\n BOOKMARK: \"Bookmark\",\r\n HISTORY: \"History\"\r\n },\r\n HOME: {\r\n NAME: \"Home\",\r\n SEARCH_TITLE: \"REALLUSION COURSES\",\r\n SEARCH_DESC: \"A free learning platform that offers stepwise video courses and hands-on webinars.\",\r\n SEARCH_PLACEHOLDER: \"Search free online tutorials\",\r\n GROUP_TITLE: \"CHOOSE A PRODUCT TO LEARN\",\r\n TEXT_BANNER: {\r\n TITLE: \"Save 60% on Reallusion Creative Software - For Students and Teachers\",\r\n URL: \"https://www.reallusion.com/global-training/educational-licensing.html#for-students-and-teachers-disable-scroll\"\r\n },\r\n BANNER_TITLE: \"EXPLORE RECOMMENDED COURSES\",\r\n TITLE_SUPPORT: \"COMMUNITY & SUPPORT\",\r\n MAGAZINE: \"Magazine\",\r\n MAGAZINE_LINK: \"https://magazine.reallusion.com/\",\r\n MAGAZINE_DESC: \"Get the latest Reallusion news, learn from our power users, and find the best showcases.\",\r\n FORUM: \"Forum\",\r\n FORUM_LINK: \"https://discussions.reallusion.com/\",\r\n FORUM_DESC: \"Learn from experienced users, share your creations, and comment on ideas.\",\r\n DEVELOPER_CENTER: \"Developer Center\",\r\n DEVELOPER_CENTER_LINK: \"https://developer.reallusion.com/default.html\",\r\n DEVELOPER_CENTER_DESC: \"Join Reallusion and become a certified developer to create digital content or plug-ins.\",\r\n FAQ: \"FAQ\",\r\n FAQ_LINK: \"https://kb.reallusion.com/Default.aspx?lang=1\",\r\n FAQ_DESC: \"Get quick answers to common questions about installation, membership and purchases.\",\r\n CUSTOMER_SERVICE: \"Customer Service\",\r\n CUSTOMER_SERVICE_LINK: \"https://www.reallusion.com/CustomerSupport/UserEx/QForm.html\",\r\n CUSTOMER_SERVICE_DESC: \"For any problem-solving issues, log into your member account to submit a support ticket.\",\r\n FEEDBACK_TRACKER: \"Feedback Tracker\",\r\n FEEDBACK_TRACKER_LINK: \"https://www.reallusion.com/FeedBackTracker/\",\r\n FEEDBACK_TRACKER_DESC: \"Participate in our product improvement and development cycles by sharing your suggestions.\",\r\n META: {\r\n TITLE: \"Reallusion Courses - Free Online Tutorials for 2D & 3D Animations\",\r\n DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n OG_TITLE: \"Reallusion Courses - Free Online Tutorials for 2D & 3D Animations\",\r\n OG_DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n }\r\n },\r\n HOME_EXPLORER: {\r\n META: {\r\n ICLONE: {\r\n TITLE: \"iClone Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Level up your skills by learning character animation, including animation and mocap editing for iClone.\",\r\n OG_TITLE: \"iClone Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Level up your skills by learning character animation, including animation and mocap editing for iClone.\",\r\n },\r\n CHARACTER_CREATOR: {\r\n TITLE: \"Character Creator Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Learn the complete character creation solution that connects the industry-leading pipelines with one system for 3D character generation and animation rigging in Character Creator.\",\r\n OG_TITLE: \"Character Creator Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Learn the complete character creation solution that connects the industry-leading pipelines with one system for 3D character generation and animation rigging in Character Creator.\",\r\n },\r\n CARTOON_ANIMATOR: {\r\n TITLE: \"Cartoon Animator Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Learn Cartoon Animator, the 2D animation software designed for ease of entry, productivity, and comprehensive pipelines.\",\r\n OG_TITLE: \"Cartoon Animator Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Learn Cartoon Animator, the 2D animation software designed for ease of entry, productivity, and comprehensive pipelines.\",\r\n },\r\n ACTORCORE: {\r\n TITLE: \"ActorCore Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Learn how to use ActorCore, the one-stop platform for 3D motions, characters and rigging on a premium level.\",\r\n OG_TITLE: \"ActorCore Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Learn how to use ActorCore, the one-stop platform for 3D motions, characters and rigging on a premium level.\",\r\n },\r\n SMART_GALLERY: {\r\n TITLE: \"Smart Content Manager Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Instructions on utilizing the Smart Content Manager and managing your assets across Reallusion products.\",\r\n OG_TITLE: \"Smart Content Manager Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Instructions on utilizing the Smart Content Manager and managing your assets across Reallusion products.\",\r\n },\r\n }\r\n },\r\n VIDEO_DETAIL: {\r\n TITLE_DESCRIPTION: \"Description & Reference\",\r\n TITLE_RELEVANCE: \"Relevance\",\r\n SPEAKERS: \"Hosted by\",\r\n TUTORIAL: \"Tutorial\",\r\n FREE: \"Free\",\r\n RESOURCE: \"Resource\",\r\n ONLINE_MANUAL: \"Online Manual\",\r\n TUTORIAL_ARTICLES: \"Tutorial Articles\",\r\n DOWNLOAD_FILES: \"Download Files\",\r\n INSTRUCTOR: \"Instructor\"\r\n },\r\n LIBRARY: {\r\n FILTER_PRODUCT: \"All Product\",\r\n FILTER_VERSION: \"All Version\",\r\n FILTER_LEVEL: \"All Level\",\r\n CLEAN_FILTER: \"CLEAN FILTER\",\r\n RESULTS: \"Results\",\r\n FILTER_TITLE: \"SORTING & FILTER\",\r\n FILTER: \"FILTER\",\r\n SORTING: \"SORTING\",\r\n SORTING_BY: \"Sort by\",\r\n SEARCH_PLACEHOLDER: \"Search\",\r\n META: {\r\n TITLE: \"Search for Tutorials - Reallusion Courses\",\r\n DESCRIPTION: \"Search specific topics for 2D or 3D animation tutorials for iClone, Character Creator and Cartoon Animator in Reallusion Courses.\",\r\n OG_TITLE: \"Search for Tutorials - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Search specific topics for 2D or 3D animation tutorials for iClone, Character Creator and Cartoon Animator in Reallusion Courses.\",\r\n },\r\n },\r\n WEBINAR: {\r\n NAME: \"Webinar\",\r\n UPCOMING: {\r\n NAME: \"Upcoming\",\r\n DESCRIPTION_TITLE: \"Live Webinar: Connect & Interact with Professionals\",\r\n DESCRIPTION_CONTENT: \"Now is your chance to meet our professional trainers, get your questions answered, and observe their workflow live in a real-time interactive environment! This is a learning channel that will keep you updated on the latest news and give you the chance to get guidance on your own projects as well.\",\r\n NOTE: \"Note: If you can't attend the live webinar, register anyway and we'll send you a link to watch the replay.\",\r\n CHECK_YOUR_LOCAL_TIME: \"Check your local time\",\r\n SEE_MORE :\"See More\",\r\n GET_IT_NOW :\"Get it Now\",\r\n REGISTER_NOW: \"Register Now\",\r\n NEXT_WEBINAR_IS_COMING_SOON: \"Next webinar is coming soon. To be announced.\",\r\n TESTIMONIAL: \"Testimonial\",\r\n },\r\n ARCHIVE: \"Archive\",\r\n SPEAKER_INTRODUCTION: \"Speaker Introduction\",\r\n META: {\r\n TITLE: \"Webinar - Reallusion Courses\",\r\n DESCRIPTION: \"Watch Reallusion live webinar to learn tips or connect and interact with our professional instructors. \",\r\n OG_TITLE: \"Webinar - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Watch Reallusion live webinar to learn tips or connect and interact with our professional instructors. \",\r\n },\r\n },\r\n HISTORY: {\r\n CLEAN_ALL_HISTORY: \"CLEAN ALL WATCH HISTORY\",\r\n FILTER_TYPE: \"All Type\",\r\n REMOVE_FROM_WATCH_HISTORY: \"Remove from watch history\",\r\n REMOVE_ALL_HISTORY: \"All views of this video removed from history\",\r\n REMOVE_VIDEO_HISTORY: \"This video is removed from history\",\r\n REMOVE_HISTORY_ERROR: \"Failed to remove this video. Please try again later.\",\r\n META: {\r\n TITLE: \"History - Reallusion Courses\",\r\n DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n OG_TITLE: \"History - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n },\r\n },\r\n PAGE_MASTER_CLASS: {\r\n MASTER_CLASS: \"Master Class\",\r\n EXPLORE_3D_WORLD: \"EXPLORE 3D WORLD\",\r\n EXPLORE_2D_WORLD: \"EXPLORE 2D WORLD\",\r\n EXPLORE_2D_3D_CONVERSION: \"EXPLORE 2D/3D CONVERSION\",\r\n META: {\r\n TITLE: \"Master Class - Reallusion Courses\",\r\n DESCRIPTION: \"Learn from hands-on courses taught by the experts of every aspect of the 2D and 3D animation industry.\",\r\n OG_TITLE: \"Master Class - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Learn from hands-on courses taught by the experts of every aspect of the 2D and 3D animation industry.\",\r\n },\r\n },\r\n ONLINE_MANUAL: {\r\n NAME: \"Online Manual\",\r\n TAB_3D_ANIMATION: \"3D Animation\",\r\n TAB_2D_ANIMATION: \"2D Animation\",\r\n TAB_OTHERS: \"Others\",\r\n OUTLINE_MANUAL: \"Online Manual\",\r\n MAIN_PRODUCT: \"Main Product\",\r\n ICLONE_PLUG_IN: \"iClone Plug-in\",\r\n CHARACTER_PLUG_IN: \"Character Creator Plug-in\",\r\n CARTOON_ANIMATOR_PLUG_IN: \"Cartoon Animator Plug-in\",\r\n LEARN: \"Learn\",\r\n META: {\r\n TITLE: \"Online Manual - Reallusion Courses\",\r\n DESCRIPTION: \"Looking for comprehensive, step-by-step instructions for 2D or 3D animation? Check out the online manual and tutorial links for iClone, Character Creator, Cartoon Animator, and ActorCore.\",\r\n OG_TITLE: \"Online Manual - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Looking for comprehensive, step-by-step instructions for 2D or 3D animation? Check out the online manual and tutorial links for iClone, Character Creator, Cartoon Animator, and ActorCore.\",\r\n },\r\n },\r\n SIDEBAR: {\r\n HOME: \"Home\",\r\n LIBRARY: \"Library\",\r\n MASTER_CLASS: \"Master Class\",\r\n SKILL_PATH: \"Skill Paths\",\r\n WEBINAR: \"Webinar\",\r\n BOOKMARK: \"Bookmark\",\r\n HISTORY: \"History\",\r\n ONLINE_MANUAL: \"Online Manual\"\r\n },\r\n VIEW_MODE: {\r\n CARDS: \"Cards\",\r\n DETAILS: \"Details\",\r\n },\r\n LOGIN: {\r\n PLEASE_LOG_IN: \"Please Log In\",\r\n },\r\n BOOKMARK: {\r\n META: {\r\n TITLE: \"Bookmark - Reallusion Courses\",\r\n DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n OG_TITLE: \"Bookmark - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n }\r\n },\r\n SKILL_PATH: {\r\n FILTER_TYPE: \"All Type\",\r\n LEVEL: 'Skill Level',\r\n LENGTH: 'Length',\r\n SOFTWARE: 'Software',\r\n SKILL_REQUIREMENT: 'Skill Requirement',\r\n VIDEO_OUTLINE: 'Video Series Outline',\r\n VIDEO_LENGTH: {\r\n HOUR: 'hour',\r\n MINUTE: 'min',\r\n SECOND: 's'\r\n },\r\n NO_VIDEO: 'No Skill Path videos yet',\r\n VIEW_MORE: 'View more',\r\n VIEW_LESS: 'View less'\r\n }\r\n },\r\n de: {\r\n COMMON: {\r\n TUTOTIAL: \"Tutorial \",\r\n VERSION: \"Version \",\r\n PRICE: \"Preis \",\r\n DATE: \"Datum \",\r\n LEVEL: \"Stufe \",\r\n lEVEL_FOUNDATIONALl: \"Grundlegend \",\r\n lEVEL_MEDIUM: \"Mittel \",\r\n lEVEL_ADVANCED: \"Fortschrittlich \",\r\n SORT_LATEST: \"Neueste \",\r\n SORT_OLDEST: \"Älteste \",\r\n SORT_RELEVANCE: \"Relevanz \",\r\n HOSTED: \"Veranstaltet von \",\r\n LIVE_DEMO_OUTLINE: \"Live-Demo-Übersicht \",\r\n UPDATE_BOOKMARK_STATUS_SUCCESS: \"Erfolgreich mit einem Lesezeichen versehen \",\r\n UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS: \"Aus Ihrem Lesezeichen entfernt \",\r\n API_ERROR_TITLE: `
Fehler!
`,\r\n API_ERROR_DESCRIPTION: `
Bitte versuchen Sie es später erneut.
`,\r\n NEW: \"NEU \",\r\n NO_SEARCH_RESULTS_FOUND: \"Es wurden keine Suchergebnisse gefunden. \",\r\n REALLUSION_COURSES: \"Reallusion Courses\",\r\n SKILL_PATH: 'Fähigkeitspfad'\r\n },\r\n PAGE_BOOKMARK: {\r\n BOOKMARK: \"Lesezeichen \",\r\n NO_VIDEO: \"Es wurden noch keine Videos mit einem Lesezeichen versehen. \",\r\n FILTER_ALL: \"Alle \",\r\n },\r\n TOP_NAV: {\r\n LOG_IN: \"Einloggen \",\r\n SIGN_UP: \"Anmelden \",\r\n LOG_OUT: \"Ausloggen \",\r\n BOOKMARK: \"Lesezeichen \",\r\n HISTORY: \"Historie \",\r\n },\r\n HOME: {\r\n NAME: \"Home \",\r\n SEARCH_TITLE: \"REALLUSION COURSES \",\r\n SEARCH_DESC: \"Eine kostenlose Lernplattform, die schrittweise Videokurse und praktische Webinare anbietet. \",\r\n SEARCH_PLACEHOLDER: \"Kostenlose Online-Tutorials durchsuchen \",\r\n GROUP_TITLE: \"WÄHLEN SIE EIN PRODUKT ZUM LERNEN AUS. \",\r\n TEXT_BANNER: {\r\n TITLE: \"Exklusiv für Schüler und Lehrer - Sparen Sie 60% bei Reallusion Softwares\",\r\n URL: \"https://www.reallusion.com/de/global-training/educational-licensing.html#for-students-and-teachers-disable-scroll\"\r\n },\r\n BANNER_TITLE: \"ENTDECKEN SIE EMPFOHLENE KURSE. \",\r\n TITLE_SUPPORT: \"COMMUNITY & SUPPORT \",\r\n MAGAZINE: \"Blog \",\r\n MAGAZINE_LINK: \"https://blog-de.reallusion.com/\",\r\n MAGAZINE_DESC: \"Erhalten Sie die Reallusion Neuigkeiten, lernen Sie von unseren Power-Usern und finden Sie die besten Showcases. \",\r\n FORUM: \"Forum \",\r\n FORUM_LINK: \"https://discussions.reallusion.com/\",\r\n FORUM_DESC: \"Lernen Sie von erfahrenen Benutzern und teilen Sie Ihre Ideen mit der Community. \",\r\n DEVELOPER_CENTER: \"Developer Center \",\r\n DEVELOPER_CENTER_LINK: \"https://developer.reallusion.com/default.html\",\r\n DEVELOPER_CENTER_DESC: \"Werden Sie zertifizierter Reallusion Entwickler, um digitale Inhalte oder Plug-Ins zu erstellen. \",\r\n FAQ: \"FAQ \",\r\n FAQ_LINK: \"https://kb.reallusion.com/Default.aspx?lang=8\",\r\n FAQ_DESC: \"Erhalten Sie schnelle Antworten auf häufig gestellte Fragen zu Installation, Mitgliedschaft und Käufen. \",\r\n CUSTOMER_SERVICE: \"Kundendienst \",\r\n CUSTOMER_SERVICE_LINK: \"https://www.reallusion.com/de/CustomerSupport/UserEx/QForm.html\",\r\n CUSTOMER_SERVICE_DESC: \"Melden Sie sich bei Ihrem Mitgliedskonto an, um ein Support-Ticket zur Problemlösung einzureichen. \",\r\n FEEDBACK_TRACKER: \"Feedback Tracker \",\r\n FEEDBACK_TRACKER_LINK: \"https://www.reallusion.com/FeedBackTracker/\",\r\n FEEDBACK_TRACKER_DESC: \"Teilen Sie Ihre Vorschläge zur Produktverbesserung und Entwicklungszyklen. \",\r\n META: {\r\n TITLE: \"Reallusion Courses - Kostenlose Online-Tutorials für 2D- & 3D-Animationen \",\r\n DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren. \",\r\n OG_TITLE: \"Reallusion Courses - Kostenlose Online-Tutorials für 2D- & 3D-Animationen \",\r\n OG_DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren. \",\r\n }\r\n },\r\n HOME_EXPLORER: {\r\n META: {\r\n ICLONE: {\r\n TITLE: \"iClone Tutorials - Reallusion Courses \",\r\n DESCRIPTION: \"Lernen Sie 3D-Animationserstellung in iClone gratis.\",\r\n OG_TITLE: \"iClone Tutorials - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Lernen Sie 3D-Animationserstellung in iClone gratis.\",\r\n },\r\n CHARACTER_CREATOR: {\r\n TITLE: \"Character Creator Tutorials - Reallusion Courses \",\r\n DESCRIPTION: \"Lernen Sie Charaktererstellung in Character Creator gratis. \",\r\n OG_TITLE: \"Character Creator Tutorials - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Lernen Sie Charaktererstellung in Character Creator gratis. \",\r\n },\r\n CARTOON_ANIMATOR: {\r\n TITLE: \"Cartoon Animator Tutorials - Reallusion Courses \",\r\n DESCRIPTION: \"Lernen Sie 2D-Animationserstellung in Cartoon Animator gratis. \",\r\n OG_TITLE: \"Cartoon Animator Tutorials - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Lernen Sie 2D-Animationserstellung in Cartoon Animator gratis. \",\r\n },\r\n ACTORCORE: {\r\n TITLE: \"ActorCore Tutorials - Reallusion Courses \",\r\n DESCRIPTION: \"Erfahren Sie, wie Sie Actorcore, die beste 3D-Mocap-Asset-Plattform, verwenden. \",\r\n OG_TITLE: \"ActorCore Tutorials - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Erfahren Sie, wie Sie Actorcore, die beste 3D-Mocap-Asset-Plattform, verwenden. \",\r\n },\r\n SMART_GALLERY: {\r\n TITLE: \"Smart Content Manager Tutorials - Reallusion Courses \",\r\n DESCRIPTION: \"Erfahren Sie, wie Sie Smart Content Manager verwenden und Ihre Assets kostenlos verwalten. \",\r\n OG_TITLE: \"Smart Content Manager Tutorials - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Erfahren Sie, wie Sie Smart Content Manager verwenden und Ihre Assets kostenlos verwalten. \",\r\n },\r\n }\r\n },\r\n VIDEO_DETAIL: {\r\n TITLE_DESCRIPTION: \"Beschreibung & Referenz \",\r\n TITLE_RELEVANCE: \"Relevanz \",\r\n SPEAKERS: \"Veranstaltet von \",\r\n TUTORIAL: \"Tutorial \",\r\n FREE: \"Kostenlos \",\r\n RESOURCE: \"Ressourcen \",\r\n ONLINE_MANUAL: \"Online-Handbuch \",\r\n TUTORIAL_ARTICLES: \"Tutorial-Artikel \",\r\n DOWNLOAD_FILES: \"Dateien herunterladen \",\r\n INSTRUCTOR: \"Lehrer \",\r\n },\r\n LIBRARY: {\r\n FILTER_PRODUCT: \"Alle Produkte \",\r\n FILTER_VERSION: \"Alle Versionen \",\r\n FILTER_LEVEL: \"Alle Stufen \",\r\n CLEAN_FILTER: \"FILTER ENTFERNEN \",\r\n RESULTS: \"Ergebnisse \",\r\n FILTER_TITLE: \"SORTIEREN & FILTERN \",\r\n FILTER: \"FILTER \",\r\n SORTING: \"SORTIERUNG \",\r\n SORTING_BY: \"Sort by\",\r\n SEARCH_PLACEHOLDER: \"Suche \",\r\n META: {\r\n TITLE: \"Nach Tutorials suchen - Reallusion Courses \",\r\n DESCRIPTION: \"Suchen Sie nach einem Thema? Geben Sie die Schlüsselwörter ein und suchen Sie nach den Tutorials. \",\r\n OG_TITLE: \"Nach Tutorials suchen - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Suchen Sie nach einem Thema? Geben Sie die Schlüsselwörter ein und suchen Sie nach den Tutorials. \",\r\n },\r\n },\r\n WEBINAR: {\r\n NAME: \"Webinar (EN) \",\r\n META: {\r\n TITLE: \"Webinar - Reallusion Courses \",\r\n DESCRIPTION: \"Watch Reallusion live webinar to learn tips or connect and interact with our professional instructors.\",\r\n OG_TITLE: \"Webinar - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Watch Reallusion live webinar to learn tips or connect and interact with our professional instructors.\",\r\n },\r\n },\r\n HISTORY: {\r\n CLEAN_ALL_HISTORY: \"Alle Aufrufe dieses Videos aus dem Verlauf entfernen \",\r\n FILTER_TYPE: \"Alle Arten \",\r\n REMOVE_FROM_WATCH_HISTORY: \"Aus dem Verlauf entfernen \",\r\n REMOVE_ALL_HISTORY: \"Alle Aufrufe dieses Videos aus dem Verlauf entfernen \",\r\n REMOVE_VIDEO_HISTORY: \"Dieses Video wurde aus dem Verlauf entfernt. \",\r\n REMOVE_HISTORY_ERROR: \"Dieses Video konnte nicht entfernt werden. Bitte versuchen Sie es später erneut. \",\r\n META: {\r\n TITLE: \"Historie - Reallusion Courses\",\r\n DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren. \",\r\n OG_TITLE: \"Historie - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren. \",\r\n },\r\n },\r\n PAGE_MASTER_CLASS: {\r\n MASTER_CLASS: \"Master Class \",\r\n EXPLORE_3D_WORLD: \"3D-WELT ERKUNDEN \",\r\n EXPLORE_2D_WORLD: \"2D-WELT ERKUNDEN \",\r\n EXPLORE_2D_3D_CONVERSION: \"2D/3D-KONVERTIERUNG ERKUNDEN \",\r\n META: {\r\n TITLE: \"Master Class - Reallusion Courses \",\r\n DESCRIPTION: \"Lernen Sie praktische Kurse von Meistern. \",\r\n OG_TITLE: \"Master Class - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Lernen Sie praktische Kurse von Meistern. \",\r\n },\r\n },\r\n ONLINE_MANUAL: {\r\n NAME: \"Online-Handbuch \",\r\n TAB_3D_ANIMATION: \"3D-Animation \",\r\n TAB_2D_ANIMATION: \"2D-Animation \",\r\n TAB_OTHERS: \"Andere \",\r\n OUTLINE_MANUAL: \"Online-Handbuch \",\r\n MAIN_PRODUCT: \"Hauptprodukt \",\r\n ICLONE_PLUG_IN: \"iClone Plug-in \",\r\n CHARACTER_PLUG_IN: \"Character Creator Plug-in \",\r\n CARTOON_ANIMATOR_PLUG_IN: \"Cartoon Animator Plug-in \",\r\n LEARN: \"Lernen \",\r\n META: {\r\n TITLE: \"Online Manual - Reallusion Courses \",\r\n DESCRIPTION: \"Suchen Sie nach ausführlichen Anweisungen? Link zum Online-Handbuch für umfassende Einführungen. \",\r\n OG_TITLE: \"Online Manual - Reallusion Courses \",\r\n OG_DESCRIPTION: \"Suchen Sie nach ausführlichen Anweisungen? Link zum Online-Handbuch für umfassende Einführungen. \",\r\n },\r\n },\r\n SIDEBAR: {\r\n HOME: \"Home \",\r\n LIBRARY: \"Bibliothek \",\r\n MASTER_CLASS: \"Master Class \",\r\n SKILL_PATH: \"Fähigkeitspfad\",\r\n WEBINAR: \"Webinar (EN)\",\r\n BOOKMARK: \"Lesezeichen \",\r\n HISTORY: \"Historie \",\r\n ONLINE_MANUAL: \"Online-Handbuch \",\r\n },\r\n VIEW_MODE: {\r\n CARDS: \"Karten \",\r\n DETAILS: \"Details \",\r\n },\r\n LOGIN: {\r\n PLEASE_LOG_IN: \"Bitte loggen Sie sich ein. \",\r\n },\r\n BOOKMARK: {\r\n META: {\r\n TITLE: \"Lesezeichen - Reallusion Courses\",\r\n DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren.\",\r\n OG_TITLE: \"Lesezeichen - Reallusion Courses\",\r\n OG_DESCRIPTION: \"Erweitern Sie Ihre 2D- und 3D-Animationsfähigkeiten in iClone, Character Creator & Cartoon Animator.Lernen Sie jetzt mit dem mit kostenlosen Lehrvideos und Webinaren. \",\r\n }\r\n },\r\n SKILL_PATH: {\r\n FILTER_TYPE: \"Alle Arten\",\r\n LEVEL: 'Skill Level',\r\n LENGTH: 'Length',\r\n SOFTWARE: 'Software',\r\n SKILL_REQUIREMENT: 'Skill Requirement',\r\n VIDEO_OUTLINE: 'Video Series Outline',\r\n VIDEO_LENGTH: {\r\n HOUR: 'hr',\r\n MINUTE: 'min',\r\n SECOND: 's'\r\n },\r\n NO_VIDEO: 'No Skill Path videos yet',\r\n VIEW_MORE: 'View more',\r\n VIEW_LESS: 'View less'\r\n }\r\n },\r\n jp: {\r\n COMMON: {\r\n TUTOTIAL: \"チュートリアル \",\r\n VERSION: \"バージョン \",\r\n PRICE: \"価格 \",\r\n DATE: \"日付 \",\r\n LEVEL: \"レベル \",\r\n lEVEL_FOUNDATIONALl: \"基礎 \",\r\n lEVEL_MEDIUM: \"中級 \",\r\n lEVEL_ADVANCED: \"上級 \",\r\n SORT_LATEST: \"最新 \",\r\n SORT_OLDEST: \"最舊 \",\r\n SORT_RELEVANCE: \"関連チュートリアル \",\r\n HOSTED: \"講師 \",\r\n LIVE_DEMO_OUTLINE: \"内容概要 \",\r\n UPDATE_BOOKMARK_STATUS_SUCCESS: \"ブックマークに追加されました \",\r\n UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS: \"ブックマークから削除されました \",\r\n API_ERROR_TITLE: `
エラー!
`,\r\n API_ERROR_DESCRIPTION: `
数分待ってから再試行してください。
`,\r\n NEW: \"最新 \",\r\n NO_SEARCH_RESULTS_FOUND: \"一致する検索結果がありません。 \",\r\n REALLUSION_COURSES: \"Reallusion コース\",\r\n SKILL_PATH: 'スキルパス'\r\n },\r\n PAGE_BOOKMARK: {\r\n BOOKMARK: \"ブックマーク \",\r\n NO_VIDEO: \"まだブックマークに追加されたビデオはありません \",\r\n FILTER_ALL: \"すべて \",\r\n },\r\n TOP_NAV: {\r\n LOG_IN: \"ログイン \",\r\n SIGN_UP: \"サインアップ \",\r\n LOG_OUT: \"ログアウト \",\r\n BOOKMARK: \"ブックマーク \",\r\n HISTORY: \"履歴 \",\r\n },\r\n HOME: {\r\n NAME: \"ホーム \",\r\n SEARCH_TITLE: \"REALLUSION コース \",\r\n SEARCH_DESC: \"応用的かつ実用的なオンラインコースとウェビナーを提供する無料学習プラットフォーム。 \",\r\n SEARCH_PLACEHOLDER: \"無料オンラインチュートリアルを検索する \",\r\n GROUP_TITLE: \"学習したい製品を選択 \",\r\n TEXT_BANNER: {\r\n TITLE: \"Reallusion クリエイティブソフトウェアが 60% OFF - 学生と教師向け\",\r\n URL: \"https://www.reallusion.com/jp/global-training/educational-licensing.html#for-students-and-teachers-disable-scroll\"\r\n },\r\n BANNER_TITLE: \"おすすめのコースを探す \",\r\n TITLE_SUPPORT: \"コミュニティ & サポート \",\r\n MAGAZINE: \"ブログ \",\r\n MAGAZINE_LINK: \"https://blog-jp.reallusion.com/\",\r\n MAGAZINE_DESC: \"Reallusion に関する最新情報やユーザー事例など役に立つ情報を紹介しています。 \",\r\n FORUM: \"フォーラム (英) \",\r\n FORUM_LINK: \"https://discussions.reallusion.com/\",\r\n FORUM_DESC: \"経験豊富なユーザーから学びます。そして、あなたの作品を共有してコメントをつけましょう。 \",\r\n DEVELOPER_CENTER: \"開発者センター \",\r\n DEVELOPER_CENTER_LINK: \"https://developer.reallusion.com/default.html\",\r\n DEVELOPER_CENTER_DESC: \"Reallusion の認定開発者となり、デジタルコンテンツまたはプラグインを作成して収入を得ることができます。 \",\r\n FAQ: \"よくある質問 \",\r\n FAQ_LINK: \"https://kb.reallusion.com/Default.aspx?lang=4\",\r\n FAQ_DESC: \"インストール、メンバーシップや購入に関するよくある質問への回答を示します。 \",\r\n CUSTOMER_SERVICE: \"カスタマーサービス \",\r\n CUSTOMER_SERVICE_LINK: \"https://www.reallusion.com/jp/CustomerSupport/UserEx/QForm.html\",\r\n CUSTOMER_SERVICE_DESC: \"サポートが必要な場合は、メンバーアカウントにログインして、サポートチケットを送信してください。 \",\r\n FEEDBACK_TRACKER: \"Feedback Tracker (英) \",\r\n FEEDBACK_TRACKER_LINK: \"https://www.reallusion.com/FeedBackTracker/\",\r\n FEEDBACK_TRACKER_DESC: \"当社製品に対するご意見・ご要望をお寄せ下さい。 \",\r\n META: {\r\n TITLE: \"Reallusion コース | 2D & 3D アニメーションの無料オンラインチュートリアル \",\r\n DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"Reallusion コース | 2D & 3D アニメーションの無料オンラインチュートリアル \",\r\n OG_DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n },\r\n },\r\n HOME_EXPLORER: {\r\n META: {\r\n ICLONE: {\r\n TITLE: \"iClone チュートリアル | Reallusion コース \",\r\n DESCRIPTION: \"iClone 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"iClone チュートリアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"iClone 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n },\r\n CHARACTER_CREATOR: {\r\n TITLE: \"Character Creator チュートリアル | Reallusion コース \",\r\n DESCRIPTION: \"Character Creator 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"Character Creator チュートリアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"Character Creator 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n },\r\n CARTOON_ANIMATOR: {\r\n TITLE: \"Cartoon Animator チュートリアル | Reallusion コース \",\r\n DESCRIPTION: \"Cartoon Animator 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"Cartoon Animator チュートリアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"Cartoon Animator 使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n },\r\n ACTORCORE: {\r\n TITLE: \"Actorcore チュートリアル | Reallusion コース \",\r\n DESCRIPTION: \"3D アセットプラットフォームである Actorcore 使い方について詳しくご解説いたします。 \",\r\n OG_TITLE: \"Actorcore チュートリアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"3D アセットプラットフォームである Actorcore 使い方について詳しくご解説いたします。 \",\r\n },\r\n SMART_GALLERY: {\r\n TITLE: \"Smart Content Manager チュートリアル | Reallusion コース \",\r\n DESCRIPTION: \"Smart Content Manager 使い方やアセット管理方法について詳しくご解説いたします。 \",\r\n OG_TITLE: \"Smart Content Manager チュートリアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"Smart Content Manager 使い方やアセット管理方法について詳しくご解説いたします。 \",\r\n },\r\n }\r\n },\r\n VIDEO_DETAIL: {\r\n TITLE_DESCRIPTION: \"説明 & 参考 \",\r\n TITLE_RELEVANCE: \"関連チュートリアル \",\r\n SPEAKERS: \"講師 \",\r\n TUTORIAL: \"チュートリアル \",\r\n FREE: \"無料 \",\r\n RESOURCE: \"学習リソース \",\r\n ONLINE_MANUAL: \"オンラインマニュアル \",\r\n TUTORIAL_ARTICLES: \"チュートリアル記事 \",\r\n DOWNLOAD_FILES: \"ファイルのダウンロード \",\r\n INSTRUCTOR: \"認定トレーナー \",\r\n },\r\n LIBRARY: {\r\n FILTER_PRODUCT: \"すべての製品 \",\r\n FILTER_VERSION: \"すべてのバージョン \",\r\n FILTER_LEVEL: \"すべてのレベル \",\r\n CLEAN_FILTER: \"絞り込みを解除 \",\r\n RESULTS: \"結果 \",\r\n FILTER_TITLE: \"並べ替え & 絞り込み \",\r\n FILTER: \"絞り込み \",\r\n SORTING: \"並べ替え \",\r\n SORTING_BY: \"Sort by\",\r\n SEARCH_PLACEHOLDER: \"検索 \",\r\n META: {\r\n TITLE: \"チュートリアルの検索 | Reallusion コース \",\r\n DESCRIPTION: \"どんなトピックをお探しですか?キーワードを入力し、検索してみてください。 \",\r\n OG_TITLE: \"チュートリアルの検索 | Reallusion コース \",\r\n OG_DESCRIPTION: \"どんなトピックをお探しですか?キーワードを入力し、検索してみてください。 \",\r\n },\r\n },\r\n WEBINAR: {\r\n NAME: \"ウェビナー (英) \",\r\n META: {\r\n TITLE: \"ウェビナー | Reallusion コース \",\r\n DESCRIPTION: \"ウェビナーを通じて専門家と交流できます。 \",\r\n OG_TITLE: \"ウェビナー | Reallusion コース \",\r\n OG_DESCRIPTION: \"ウェビナーを通じて専門家と交流できます。 \",\r\n },\r\n },\r\n HISTORY: {\r\n CLEAN_ALL_HISTORY: \"すべての閲覧履歴を削除 \",\r\n FILTER_TYPE: \"すべてのタイプ \",\r\n REMOVE_FROM_WATCH_HISTORY: \"閲覧履歴から削除する \",\r\n REMOVE_ALL_HISTORY: \"この動画の閲覧データは履歴から削除されました \",\r\n REMOVE_VIDEO_HISTORY: \"この動画は履歴から削除されました \",\r\n REMOVE_HISTORY_ERROR: \"この動画を削除することができませんでした。もう一度やり直してください。 \",\r\n META: {\r\n TITLE: \"履歴 | Reallusion コース \",\r\n DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"履歴 | Reallusion コース \",\r\n OG_DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n },\r\n },\r\n PAGE_MASTER_CLASS: {\r\n MASTER_CLASS: \"上級クラス \",\r\n EXPLORE_3D_WORLD: \"3D 世界を探索 \",\r\n EXPLORE_2D_WORLD: \"2D 世界を探索 \",\r\n EXPLORE_2D_3D_CONVERSION: \"2D/3D 変換を探索 \",\r\n META: {\r\n TITLE: \"上級クラス | Reallusion コース \",\r\n DESCRIPTION: \"達人に学び、上級スキルが身につきます。 \",\r\n OG_TITLE: \"上級クラス | Reallusion コース \",\r\n OG_DESCRIPTION: \"達人に学び、上級スキルが身につきます。 \",\r\n },\r\n },\r\n ONLINE_MANUAL: {\r\n NAME: \"オンラインマニュアル \",\r\n TAB_3D_ANIMATION: \"3D アニメーション \",\r\n TAB_2D_ANIMATION: \"2D アニメーション \",\r\n TAB_OTHERS: \"その他 \",\r\n OUTLINE_MANUAL: \"オンラインマニュアル \",\r\n MAIN_PRODUCT: \"主要製品 \",\r\n ICLONE_PLUG_IN: \"iClone プラグイン \",\r\n CHARACTER_PLUG_IN: \"Character Creator プラグイン \",\r\n CARTOON_ANIMATOR_PLUG_IN: \"Cartoon Animator プラグイン \",\r\n LEARN: \"トレーニングセンター \",\r\n META: {\r\n TITLE: \"オンラインマニュアル | Reallusion コース \",\r\n DESCRIPTION: \"詳細な説明をお探しですか? お客様がご利用中の製品のオンラインマニュアルをご覧いただけます。 \",\r\n OG_TITLE: \"オンラインマニュアル | Reallusion コース \",\r\n OG_DESCRIPTION: \"詳細な説明をお探しですか? お客様がご利用中の製品のオンラインマニュアルをご覧いただけます。 \",\r\n },\r\n },\r\n SIDEBAR: {\r\n HOME: \"ホーム \",\r\n LIBRARY: \"コース一覧 \",\r\n MASTER_CLASS: \"上級クラス \",\r\n SKILL_PATH: \"スキルパス\",\r\n WEBINAR: \"ウェビナー (英) \",\r\n BOOKMARK: \"ブックマーク \",\r\n HISTORY: \"履歴 \",\r\n ONLINE_MANUAL: \"オンラインマニュアル \",\r\n },\r\n VIEW_MODE: {\r\n CARDS: \"アイコン \",\r\n DETAILS: \"詳細 \",\r\n },\r\n LOGIN: {\r\n PLEASE_LOG_IN: \"ログインしてください \",\r\n },\r\n BOOKMARK: {\r\n META: {\r\n TITLE: \"ブックマーク | Reallusion コース \",\r\n DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n OG_TITLE: \"ブックマーク | Reallusion コース \",\r\n OG_DESCRIPTION: \"iClone、Character Creator や Cartoon Animator の使い方について詳しくご解説いたします。オンラインチュートリアルとウェビナーで必要なテクニックを学び始めましょう。 \",\r\n }\r\n },\r\n SKILL_PATH: {\r\n FILTER_TYPE: \"すべてのタイプ\",\r\n LEVEL: 'Skill Level',\r\n LENGTH: 'Length',\r\n SOFTWARE: 'Software',\r\n SKILL_REQUIREMENT: 'Skill Requirement',\r\n VIDEO_OUTLINE: 'Video Series Outline',\r\n VIDEO_LENGTH: {\r\n HOUR: 'hr',\r\n MINUTE: 'min',\r\n SECOND: 's'\r\n },\r\n NO_VIDEO: 'No Skill Path videos yet',\r\n VIEW_MORE: 'View more',\r\n VIEW_LESS: 'View less'\r\n }\r\n },\r\n tw: {\r\n COMMON: {\r\n TUTOTIAL: \"教學影片\",\r\n VERSION: \"版本\",\r\n PRICE: \"價格\",\r\n DATE: \"日期\",\r\n LEVEL: \"等級\",\r\n lEVEL_FOUNDATIONALl: \"基礎\",\r\n lEVEL_MEDIUM: \"中級\",\r\n lEVEL_ADVANCED: \"進階\",\r\n SORT_LATEST: \"最新消息\",\r\n SORT_OLDEST: \"最舊消息\",\r\n SORT_RELEVANCE: \"相關單元\",\r\n HOSTED: \"主講人\",\r\n LIVE_DEMO_OUTLINE: \"直播展示大綱\",\r\n UPDATE_BOOKMARK_STATUS_SUCCESS: \"已成功加入書籤\",\r\n UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS: \"已從您的書籤中刪除\",\r\n API_ERROR_TITLE: `
錯誤!
`,\r\n API_ERROR_DESCRIPTION: `
請等待幾分鐘,然後再試一次。
`,\r\n NEW: \"最新\",\r\n NO_SEARCH_RESULTS_FOUND: \"沒有找到搜尋結果。\",\r\n REALLUSION_COURSES: \"Reallusion 線上課程\",\r\n SKILL_PATH: '系列課程'\r\n },\r\n PAGE_BOOKMARK: {\r\n BOOKMARK: \"書籤\",\r\n NO_VIDEO: \"目前沒有影片被加入書籤中\",\r\n FILTER_ALL: \"全部\",\r\n },\r\n TOP_NAV: {\r\n LOG_IN: \"登入\",\r\n SIGN_UP: \"註冊\",\r\n LOG_OUT: \"登出\",\r\n BOOKMARK: \"書籤\",\r\n HISTORY: \"觀看紀錄\",\r\n },\r\n HOME: {\r\n NAME: \"首頁\",\r\n SEARCH_TITLE: \"REALLUSION 線上課程\",\r\n SEARCH_DESC: \"一個免費的學習平台,提供逐步的教學影片課程和網絡研討會。\",\r\n SEARCH_PLACEHOLDER: \"搜尋線上免費教學影片\",\r\n GROUP_TITLE: \"選擇想學習的產品\",\r\n TEXT_BANNER: {\r\n TITLE: \"為 Reallusion 創意軟體省下 60% - 學生及教師專屬\",\r\n URL: \"https://www.reallusion.com/tw/global-training/educational-licensing.html#for-students-and-teachers-disable-scroll\"\r\n },\r\n BANNER_TITLE: \"探索推薦課程\",\r\n TITLE_SUPPORT: \"社群 & 技術支援\",\r\n MAGAZINE: \"Blog\",\r\n MAGAZINE_LINK: \"https://blog-tw.reallusion.com/\",\r\n MAGAZINE_DESC: \"獲得 Reallusion 最新消息,向專業使用者學習並探索最棒的使用者案例。\",\r\n FORUM: \"論壇\",\r\n FORUM_LINK: \"https://discussions.reallusion.com/\",\r\n FORUM_DESC: \"向有經驗的使用者學習,分享您的創作並發表評論。\",\r\n DEVELOPER_CENTER: \"開發者中心\",\r\n DEVELOPER_CENTER_LINK: \"https://developer.reallusion.com/default.html\",\r\n DEVELOPER_CENTER_DESC: \"加入 Reallusion 並成為認證開發者以創作數位內容及外掛。\",\r\n FAQ: \"常見問題\",\r\n FAQ_LINK: \"https://kb.reallusion.com/Default.aspx?lang=2\",\r\n FAQ_DESC: \"獲得有關安裝、會員資格和購買的常見問題的快速解答。\",\r\n CUSTOMER_SERVICE: \"客戶服務\",\r\n CUSTOMER_SERVICE_LINK: \"https://www.reallusion.com/tw/CustomerSupport/UserEx/QForm.html\",\r\n CUSTOMER_SERVICE_DESC: \"對於任何問題解決的需求,請登錄您的會員帳戶並提交問題表單。\",\r\n FEEDBACK_TRACKER: \"Feedback Tracker\",\r\n FEEDBACK_TRACKER_LINK: \"https://www.reallusion.com/FeedBackTracker/\",\r\n FEEDBACK_TRACKER_DESC: \"透過分享您的建議,參與我們的產品改進和開發週期。\",\r\n META: {\r\n TITLE: \"Reallusion 線上課程 - 免費線上 2D & 3D 動畫教學影片\",\r\n DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 動畫技能。立即透過免費教學影片和網絡研討會開始學習。\",\r\n OG_TITLE: \"Reallusion 線上課程 - 免費線上 2D & 3D 動畫教學影片\",\r\n OG_DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 動畫技能。立即透過免費教學影片和網絡研討會開始學習。\",\r\n },\r\n },\r\n HOME_EXPLORER: {\r\n META: {\r\n ICLONE: {\r\n TITLE: \"iClone 教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"在 iClone 中學習 3D 動畫技巧。\",\r\n OG_TITLE: \"iClone 教學影片 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"在 iClone 中學習 3D 動畫技巧。\",\r\n },\r\n CHARACTER_CREATOR: {\r\n TITLE: \"Character Creator 教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"在 Character Creator 中學習創建角色。\",\r\n OG_TITLE: \"Character Creator 教學影片 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"在 Character Creator 中學習創建角色。\",\r\n },\r\n CARTOON_ANIMATOR: {\r\n TITLE: \"Cartoon Animator 教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"在 Cartoon Animator 中學習 2D 動畫技巧。\",\r\n OG_TITLE: \"Cartoon Animator 教學影片 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"在 Cartoon Animator 中學習 2D 動畫技巧。\",\r\n },\r\n ACTORCORE: {\r\n TITLE: \"ActorCore 教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"了解如何使用世界上最好的人體動作捕捉 3D 運動平台 ActorCore。\",\r\n OG_TITLE: \"ActorCore - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"了解如何使用世界上最好的人體動作捕捉 3D 運動平台 ActorCore。\",\r\n },\r\n SMART_GALLERY: {\r\n TITLE: \"Smart Content Manager 教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"了解如何使用 Smart Content Manager 和管理您的素材資產。\",\r\n OG_TITLE: \"Smart Content Manager 教學影片 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"了解如何使用 Smart Content Manager 和管理您的素材資產。\",\r\n },\r\n },\r\n },\r\n VIDEO_DETAIL: {\r\n TITLE_DESCRIPTION: \"描述和參考\",\r\n TITLE_RELEVANCE: \"相關單元\",\r\n SPEAKERS: \"主講人\",\r\n TUTORIAL: \"教學影片\",\r\n FREE: \"免費\",\r\n RESOURCE: \"學習資源\",\r\n ONLINE_MANUAL: \"線上使用手冊\",\r\n TUTORIAL_ARTICLES: \"教學文章\",\r\n DOWNLOAD_FILES: \"檔案下載\",\r\n INSTRUCTOR: \"講師\",\r\n },\r\n LIBRARY: {\r\n FILTER_PRODUCT: \"所有產品\",\r\n FILTER_VERSION: \"所有版本\",\r\n FILTER_LEVEL: \"所有等級\",\r\n CLEAN_FILTER: \"清空條件\",\r\n RESULTS: \"結果\",\r\n FILTER_TITLE: \"排序與條件\",\r\n FILTER: \"條件\",\r\n SORTING: \"排序與條件\",\r\n SORTING_BY: \"Sort by\",\r\n SEARCH_PLACEHOLDER: \"搜尋\",\r\n META: {\r\n TITLE: \"搜尋教學影片 - Reallusion 線上課程\",\r\n DESCRIPTION: \"正在尋找任何主題嗎?輸入關鍵字並搜尋課程。\",\r\n OG_TITLE: \"搜尋教學影片 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"正在尋找任何主題嗎?輸入關鍵字並搜尋課程。\",\r\n },\r\n },\r\n WEBINAR: {\r\n NAME: \"線上研討會 (英)\",\r\n META: {\r\n TITLE: \"網路研討會 - Reallusion 線上課程\",\r\n DESCRIPTION: \"透過網路研討會,與專家們聯繫、互動\",\r\n OG_TITLE: \"網路研討會 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"透過網路研討會,與專家們聯繫、互動\",\r\n },\r\n },\r\n HISTORY: {\r\n CLEAN_ALL_HISTORY: \"清除所有觀看紀錄\",\r\n FILTER_TYPE: \"所有類型\",\r\n REMOVE_FROM_WATCH_HISTORY: \"從觀看紀錄中移除\",\r\n REMOVE_ALL_HISTORY: \"此視頻中的觀看次數已全數從觀看紀錄中移除\",\r\n REMOVE_VIDEO_HISTORY: \"此視頻已從觀看紀錄中移除\",\r\n REMOVE_HISTORY_ERROR: \"無法移除此視頻,請稍後再試一次\",\r\n META: {\r\n TITLE: \"觀看紀錄 - Reallusion 線上課程\",\r\n DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 動畫技能。立即透過免費教學影片和網絡研討會開始學習。\",\r\n OG_TITLE: \"觀看紀錄 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 動畫技能。立即透過免費教學影片和網絡研討會開始學習。\",\r\n },\r\n },\r\n PAGE_MASTER_CLASS: {\r\n MASTER_CLASS: \"大師課程\",\r\n EXPLORE_3D_WORLD: \"探索 3D 領域\",\r\n EXPLORE_2D_WORLD: \"探索 2D 領域\",\r\n EXPLORE_2D_3D_CONVERSION: \"探索 2D/3D 之間的轉換\",\r\n META: {\r\n TITLE: \"大師課程 - Reallusion 線上課程\",\r\n DESCRIPTION: \"向大師學習實踐課程。\",\r\n OG_TITLE: \"大師課程 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"向大師學習實踐課程。\",\r\n },\r\n },\r\n ONLINE_MANUAL: {\r\n NAME: \"線上指南\",\r\n TAB_3D_ANIMATION: \"3D 動畫\",\r\n TAB_2D_ANIMATION: \"2D 動畫\",\r\n TAB_OTHERS: \"其他\",\r\n OUTLINE_MANUAL: \"線上指南\",\r\n MAIN_PRODUCT: \"主要產品\",\r\n ICLONE_PLUG_IN: \"iClone 外掛\",\r\n CHARACTER_PLUG_IN: \"Character Creator 外掛\",\r\n CARTOON_ANIMATOR_PLUG_IN: \"Cartoon Animator 外掛\",\r\n LEARN: \"學習中心\",\r\n META: {\r\n TITLE: \"線上指南 - Reallusion 線上課程\",\r\n DESCRIPTION: \"正在尋找詳細使用說明?前往線上指南獲得全面介紹。\",\r\n OG_TITLE: \"線上指南 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"正在尋找詳細使用說明?前往線上指南獲得全面介紹。\",\r\n },\r\n },\r\n SIDEBAR: {\r\n HOME: \"首頁\",\r\n LIBRARY: \"資料庫\",\r\n MASTER_CLASS: \"大師課程\",\r\n SKILL_PATH: \"系列課程\",\r\n WEBINAR: \"線上研討會 (英)\",\r\n BOOKMARK: \"書籤\",\r\n HISTORY: \"觀看紀錄\",\r\n ONLINE_MANUAL: \"線上指南\",\r\n },\r\n VIEW_MODE: {\r\n CARDS: \"圖示\",\r\n DETAILS: \"詳細資料\",\r\n },\r\n LOGIN: {\r\n PLEASE_LOG_IN: \"請登錄\",\r\n },\r\n BOOKMARK: {\r\n META: {\r\n TITLE: \"書籤 - Reallusion 線上課程\",\r\n DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n OG_TITLE: \"書籤 - Reallusion 線上課程\",\r\n OG_DESCRIPTION: \"Level up your 2D or 3D animation skills in iClone, Character Creator and Cartoon Animator for free.\",\r\n }\r\n },\r\n SKILL_PATH: {\r\n FILTER_TYPE: \"所有類型\",\r\n LEVEL: 'Skill Level',\r\n LENGTH: 'Length',\r\n SOFTWARE: 'Software',\r\n SKILL_REQUIREMENT: 'Skill Requirement',\r\n VIDEO_OUTLINE: 'Video Series Outline',\r\n VIDEO_LENGTH: {\r\n HOUR: 'hr',\r\n MINUTE: 'min',\r\n SECOND: 's'\r\n },\r\n NO_VIDEO: 'No Skill Path videos yet',\r\n VIEW_MORE: 'View more',\r\n VIEW_LESS: 'View less'\r\n }\r\n },\r\n cn: {\r\n COMMON: {\r\n TUTOTIAL: \"教学视频\",\r\n VERSION: \"版本\",\r\n PRICE: \"价格\",\r\n DATE: \"日期\",\r\n LEVEL: \"等级\",\r\n lEVEL_FOUNDATIONALl: \"基础\",\r\n lEVEL_MEDIUM: \"中级\",\r\n lEVEL_ADVANCED: \"高级\",\r\n SORT_LATEST: \"最新消息\",\r\n SORT_OLDEST: \"最旧消息\",\r\n SORT_RELEVANCE: \"相关单元\",\r\n HOSTED: \"主讲人\",\r\n LIVE_DEMO_OUTLINE: \"直播展示大纲\",\r\n UPDATE_BOOKMARK_STATUS_SUCCESS: \"已成功添加书签\",\r\n UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS: \"已从您的书签中删除\",\r\n API_ERROR_TITLE: `
错误!
`,\r\n API_ERROR_DESCRIPTION: `
请等待几分钟,然后再试一次。
`,\r\n NEW: \"最新\",\r\n NO_SEARCH_RESULTS_FOUND: \"没有找到搜索结果。\",\r\n REALLUSION_COURSES: \"Reallusion 在线课程\",\r\n SKILL_PATH: '系列課程'\r\n },\r\n PAGE_BOOKMARK: {\r\n BOOKMARK: \"书签\",\r\n NO_VIDEO: \"当前没有视频被添加书签中\",\r\n FILTER_ALL: \"全部\",\r\n },\r\n TOP_NAV: {\r\n LOG_IN: \"登录\",\r\n SIGN_UP: \"注册\",\r\n LOG_OUT: \"注销\",\r\n BOOKMARK: \"书签\",\r\n HISTORY: \"观看纪录\",\r\n },\r\n HOME: {\r\n NAME: \"首页\",\r\n SEARCH_TITLE: \"REALLUSION 在线课程\",\r\n SEARCH_DESC: \"一个免费的学习平台,提供逐步的教学视频课程和网络研讨会。\",\r\n SEARCH_PLACEHOLDER: \"搜索在线免费教学视频\",\r\n GROUP_TITLE: \"选择想学习的产品\",\r\n TEXT_BANNER: {\r\n TITLE: \"为 Reallusion 创意软体省下 60% - 学生及教师专属\",\r\n URL: \"https://www.reallusion.com/cn/global-training/educational-licensing.html#for-students-and-teachers-disable-scroll\"\r\n },\r\n BANNER_TITLE: \"探索推荐课程\",\r\n TITLE_SUPPORT: \"社区 & 技术支持\",\r\n MAGAZINE: \"Blog\",\r\n MAGAZINE_LINK: \"https://mp.weixin.qq.com/s/5Gw_Wj35auHJK98vjOr6vg\",\r\n MAGAZINE_DESC: \"获得 Reallusion 最新消息,向专业用户学习并探索最棒的用户案例。\",\r\n FORUM: \"论坛\",\r\n FORUM_LINK: \"https://discussions.reallusion.com/\",\r\n FORUM_DESC: \"向有经验的用户学习,分享您的创作并发表评论。\",\r\n DEVELOPER_CENTER: \"开发者中心\",\r\n DEVELOPER_CENTER_LINK: \"https://developer.reallusion.com/default.html\",\r\n DEVELOPER_CENTER_DESC: \"添加 Reallusion 并成为认证开发者以创作数字内容及外挂。\",\r\n FAQ: \"常见问题\",\r\n FAQ_LINK: \"https://kb.reallusion.com/Default.aspx?lang=2\",\r\n FAQ_DESC: \"获得有关安装、会员资格和购买的常见问题的快速解答。\",\r\n CUSTOMER_SERVICE: \"客户服务\",\r\n CUSTOMER_SERVICE_LINK: \"https://www.reallusion.com/cn/CustomerSupport/UserEx/QForm.html\",\r\n CUSTOMER_SERVICE_DESC: \"对于任何问题解决的需求,请登录您的会员帐户并提交问题表单。\",\r\n FEEDBACK_TRACKER: \"Feedback Tracker\",\r\n FEEDBACK_TRACKER_LINK: \"https://www.reallusion.com/FeedBackTracker/\",\r\n FEEDBACK_TRACKER_DESC: \"透过分享您的建议,参与我们的产品改进和开发周期。\",\r\n META: {\r\n TITLE: \"Reallusion 在线课程 - 免费在线 2D & 3D 动画教学视频\",\r\n DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n OG_TITLE: \"Reallusion 在线课程 - 免费在线 2D & 3D 动画教学视频\",\r\n OG_DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n },\r\n },\r\n HOME_EXPLORER: {\r\n META: {\r\n ICLONE: {\r\n TITLE: \"iClone 教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"在 iClone 中学习 3D 动画技巧。\",\r\n OG_TITLE: \"iClone 教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"在 iClone 中学习 3D 动画技巧。\",\r\n },\r\n CHARACTER_CREATOR: {\r\n TITLE: \"Character Creator 教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"在 Character Creator 中学习创建角色。\",\r\n OG_TITLE: \"Character Creator 教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"在 Character Creator 中学习创建角色。\",\r\n },\r\n CARTOON_ANIMATOR: {\r\n TITLE: \"Cartoon Animator 教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"在 Cartoon Animator 中学习 2D 动画技巧。\",\r\n OG_TITLE: \"Cartoon Animator 教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"在 Cartoon Animator 中学习 2D 动画技巧。\",\r\n },\r\n ACTORCORE: {\r\n TITLE: \"ActorCore 教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"了解如何使用世界上最好的人体动作捕捉 3D 运动平台 ActorCore。\",\r\n OG_TITLE: \"ActorCore 教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"了解如何使用世界上最好的人体动作捕捉 3D 运动平台 ActorCore。\",\r\n },\r\n SMART_GALLERY: {\r\n TITLE: \"Smart Content Manager 教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"了解如何使用 Smart Content Manager 和管理您的素材资产。\",\r\n OG_TITLE: \"Smart Content Manager 教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"了解如何使用 Smart Content Manager 和管理您的素材资产。\",\r\n },\r\n },\r\n },\r\n VIDEO_DETAIL: {\r\n TITLE_DESCRIPTION: \"描述和参考\",\r\n TITLE_RELEVANCE: \"相关单元\",\r\n SPEAKERS: \"主讲人\",\r\n TUTORIAL: \"教学视频\",\r\n FREE: \"免费\",\r\n RESOURCE: \"学习资源\",\r\n ONLINE_MANUAL: \"在线使用手册\",\r\n TUTORIAL_ARTICLES: \"教学文章\",\r\n DOWNLOAD_FILES: \"文档下载\",\r\n INSTRUCTOR: \"讲师\",\r\n },\r\n LIBRARY: {\r\n FILTER_PRODUCT: \"所有产品\",\r\n FILTER_VERSION: \"所有版本\",\r\n FILTER_LEVEL: \"所有等级\",\r\n CLEAN_FILTER: \"清空条件\",\r\n RESULTS: \"结果\",\r\n FILTER_TITLE: \"排序与条件\",\r\n FILTER: \"条件\",\r\n SORTING: \"排序与条件\",\r\n SORTING_BY: \"Sort by\",\r\n SEARCH_PLACEHOLDER: \"搜索\",\r\n META: {\r\n TITLE: \"搜索教学视频 - Reallusion 在线课程\",\r\n DESCRIPTION: \"正在寻找任何主题吗?导入关键字并搜索课程。\",\r\n OG_TITLE: \"搜索教学视频 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"正在寻找任何主题吗?导入关键字并搜索课程。\",\r\n },\r\n },\r\n WEBINAR: {\r\n NAME: \"网络研讨会 (英)\",\r\n META: {\r\n TITLE: \"网络研讨会 - Reallusion 在线课程\",\r\n DESCRIPTION: \"透过网络研讨会,与专家们联系、交互\",\r\n OG_TITLE: \"网络研讨会 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"透过网络研讨会,与专家们联系、交互\",\r\n },\r\n },\r\n HISTORY: {\r\n CLEAN_ALL_HISTORY: \"清除所有观看纪录\",\r\n FILTER_TYPE: \"所有类型\",\r\n REMOVE_FROM_WATCH_HISTORY: \"从观看纪录中删除\",\r\n REMOVE_ALL_HISTORY: \"此视频中的观看次数已全数从观看纪录中删除\",\r\n REMOVE_VIDEO_HISTORY: \"此视频已从观看纪录中删除\",\r\n REMOVE_HISTORY_ERROR: \"无法删除此视频,请稍后再试一次\",\r\n META: {\r\n TITLE: \"观看纪录 - Reallusion 在线课程\",\r\n DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n OG_TITLE: \"观看纪录 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n },\r\n },\r\n PAGE_MASTER_CLASS: {\r\n MASTER_CLASS: \"大师课程\",\r\n EXPLORE_3D_WORLD: \"探索 3D 领域\",\r\n EXPLORE_2D_WORLD: \"探索 2D 领域\",\r\n EXPLORE_2D_3D_CONVERSION: \"探索 2D/3D 之间的转换\",\r\n META: {\r\n TITLE: \"大师课程 - Reallusion 在线课程\",\r\n DESCRIPTION: \"向大师学习实践课程。\",\r\n OG_TITLE: \"大师课程 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"向大师学习实践课程。\",\r\n },\r\n },\r\n ONLINE_MANUAL: {\r\n NAME: \"在线指南\",\r\n TAB_3D_ANIMATION: \"3D 动画\",\r\n TAB_2D_ANIMATION: \"2D 动画\",\r\n TAB_OTHERS: \"其他\",\r\n OUTLINE_MANUAL: \"在线指南\",\r\n MAIN_PRODUCT: \"主要产品\",\r\n ICLONE_PLUG_IN: \"iClone 外挂\",\r\n CHARACTER_PLUG_IN: \"Character Creator 外挂\",\r\n CARTOON_ANIMATOR_PLUG_IN: \"Cartoon Animator 外挂\",\r\n LEARN: \"学习中心\",\r\n META: {\r\n TITLE: \"在线指南 - Reallusion 在线课程\",\r\n DESCRIPTION: \"正在寻找详细使用说明?前往在线指南获得全面介绍。\",\r\n OG_TITLE: \"在线指南 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"正在寻找详细使用说明?前往在线指南获得全面介绍。\",\r\n },\r\n },\r\n SIDEBAR: {\r\n HOME: \"首页\",\r\n LIBRARY: \"数据库\",\r\n MASTER_CLASS: \"大师课程\",\r\n SKILL_PATH: \"系列课程\",\r\n WEBINAR: \"网络研讨会 (英)\",\r\n BOOKMARK: \"书签\",\r\n HISTORY: \"观看纪录\",\r\n ONLINE_MANUAL: \"在线指南\",\r\n },\r\n VIEW_MODE: {\r\n CARDS: \"图标\",\r\n DETAILS: \"详细数据\",\r\n },\r\n LOGIN: {\r\n PLEASE_LOG_IN: \"请登录\",\r\n },\r\n BOOKMARK: {\r\n META: {\r\n TITLE: \"书签 - Reallusion 在线课程\",\r\n DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n OG_TITLE: \"书签 - Reallusion 在线课程\",\r\n OG_DESCRIPTION: \"在 iClone、Character Creator 和 Cartoon Animator 中提升您的 2D 和 3D 动画技能。立即透过免费教学视频和网络研讨会开始学习。\",\r\n }\r\n },\r\n SKILL_PATH: {\r\n FILTER_TYPE: \"所有类型\",\r\n LEVEL: 'Skill Level',\r\n LENGTH: 'Length',\r\n SOFTWARE: 'Software',\r\n SKILL_REQUIREMENT: 'Skill Requirement',\r\n VIDEO_OUTLINE: 'Video Series Outline',\r\n VIDEO_LENGTH: {\r\n HOUR: 'hr',\r\n MINUTE: 'min',\r\n SECOND: 's'\r\n },\r\n NO_VIDEO: 'No Skill Path videos yet',\r\n VIEW_MORE: 'View more',\r\n VIEW_LESS: 'View less'\r\n }\r\n }\r\n};\r\n\r\nconst datetimeFormats = {\r\n en: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric'\r\n }\r\n },\r\n de: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric'\r\n }\r\n },\r\n tw: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true\r\n }\r\n },\r\n cn: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true\r\n }\r\n },\r\n jp: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric'\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true\r\n }\r\n }\r\n}\r\n\r\nconst numberFormats = {\r\n en: {\r\n currency: {\r\n style: 'currency', currency: 'USD', notation: 'standard'\r\n },\r\n },\r\n de: {\r\n currency: {\r\n style: 'currency', currency: 'USD', notation: 'standard'\r\n },\r\n },\r\n jp: {\r\n currency: {\r\n style: 'currency', currency: 'JPY', useGrouping: true, currencyDisplay: 'symbol'\r\n },\r\n },\r\n tw: {\r\n currency: {\r\n style: 'currency', currency: 'NTD', currencyDisplay: 'narrowSymbol', minimumFractionDigits: 0, maximumFractionDigits: 0\r\n },\r\n },\r\n cn: {\r\n currency: {\r\n style: 'currency', currency: 'CNY', currencyDisplay: 'narrowSymbol', minimumFractionDigits: 0, maximumFractionDigits: 0\r\n },\r\n }\r\n}\r\n\r\nconst mergeData = (messages, objectData) => {\r\n const mergedData = {};\r\n const keys = Object.keys(messages);\r\n \r\n for (const key of keys) {\r\n mergedData[key] = { ...messages[key], ...objectData[key] };\r\n }\r\n\r\n return mergedData;\r\n}\r\n\r\nexport default createI18n({\r\n locale: languageEnum.EN, // 設定語言\r\n fallbackLocale: languageEnum.EN, // 若選擇的語言缺少翻譯則退回的語言\r\n messages: mergeData(messages, objectData),\r\n datetimeFormats,\r\n numberFormats\r\n});\r\n","import { reactive } from \"@vue/reactivity\"\r\n\r\nconst states = reactive({\r\n loginInfo: null,\r\n isNotAuth: false,\r\n})\r\n\r\nconst mutations = {\r\n setLoginInfo: data => {\r\n states.loginInfo = data;\r\n },\r\n setIsNotAuth: bool => {\r\n states.isNotAuth = bool;\r\n }\r\n}\r\n\r\nexport default {\r\n states,\r\n mutations\r\n}","import { reactive } from \"@vue/reactivity\"\r\n\r\nconst states = reactive({\r\n isSidebarClose: false,\r\n isUserClose: null,\r\n})\r\n\r\nconst mutations = {\r\n switchSidebarClose: (status) => {\r\n states.isSidebarClose = !status;\r\n },\r\n switchUserClose: (status) => {\r\n states.isUserClose = !status;\r\n }\r\n}\r\n\r\nexport default {\r\n states,\r\n mutations\r\n}","import { reactive } from \"@vue/reactivity\"\r\n\r\nimport { getProductFamily } from \"@/api\";\r\nimport { UtilityService } from '@/utils';\r\nimport { ApiSkillPathMediaMenuEnum } from \"@/enums/api/index\";\r\n\r\nconst states = reactive({\r\n productOptions: [],\r\n levelGroup: [\r\n \"lEVEL_FOUNDATIONALl\",\r\n \"lEVEL_MEDIUM\",\r\n \"lEVEL_ADVANCED\",\r\n ],\r\n typeOptions: [\r\n {\r\n value: ApiSkillPathMediaMenuEnum.TUTORIAL,\r\n labelKey: 'COMMON.TUTOTIAL'\r\n }, \r\n {\r\n value: ApiSkillPathMediaMenuEnum.MASTER_CLASS,\r\n labelKey: 'PAGE_MASTER_CLASS.MASTER_CLASS'\r\n }\r\n ]\r\n})\r\n\r\nconst getters = {\r\n getProductVersion: (filterProduct) => {\r\n let productVersion = [];\r\n states.productOptions.forEach(option => {\r\n if (option.product == filterProduct) {\r\n option.versions.forEach(version => {\r\n if (version != \"\") {\r\n productVersion.push({\r\n label: option.product + \" \" + version,\r\n version\r\n });\r\n }\r\n });\r\n }\r\n });\r\n return productVersion;\r\n }\r\n}\r\n\r\nconst actions = {\r\n fetchProductOptions: async() => {\r\n if (states.productOptions.length !== 0) {\r\n return;\r\n }\r\n try {\r\n const res = await getProductFamily();\r\n UtilityService.sortProduct(res, 'product');\r\n states.productOptions = UtilityService.getShowVersion(res);\r\n } \r\n catch (err) {\r\n states.productOptions = null;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n states,\r\n getters,\r\n actions\r\n}","import { reactive } from \"@vue/reactivity\"\r\nimport { postSkillPathQuery } from \"@/api\";\r\nimport { ApiSkillPathOrderByEnum, ApiSkillPathMediaMenuEnum } from \"@/enums/api/index\";\r\n\r\nconst states = reactive({\r\n list: null,\r\n})\r\n\r\nconst getters = {\r\n currentSkillPathDetail: (urlName) => {\r\n const findItem = states.list?.items?.filter(item => item.urlName === urlName) ?? [];\r\n if (findItem.length === 0) {\r\n return null;\r\n }\r\n return { count: states.list.count, items: findItem };\r\n }\r\n}\r\n\r\nconst mutations = {\r\n updateSkillPathList: data => {\r\n states.list = data;\r\n },\r\n}\r\n\r\nconst actions = {\r\n skillPathQuery: params => {\r\n const apiOptions = {\r\n \"urlName\": \"\",\r\n \"MediaMenu\": ApiSkillPathMediaMenuEnum.ALL,\r\n \"orderBy\": ApiSkillPathOrderByEnum.LATEST,\r\n ...params\r\n }\r\n return postSkillPathQuery(apiOptions)\r\n },\r\n getSkillPathList: (params) => {\r\n return new Promise((resolve,reject) => {\r\n const currentDetail = getters.currentSkillPathDetail(params.urlName);\r\n\r\n if (currentDetail) {\r\n resolve(currentDetail);\r\n } \r\n else {\r\n actions.skillPathQuery(params).then(res => {\r\n mutations.updateSkillPathList(res);\r\n resolve(res)\r\n }).catch((res) => {\r\n reject(res)\r\n })\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default {\r\n states,\r\n getters,\r\n mutations,\r\n actions\r\n}","import member from \"./member\";\r\nimport sidebar from \"./sidebar\";\r\nimport searchFilter from \"./searchFilter\";\r\nimport skillPath from \"./skillPath\"\r\n\r\nexport default {\r\n sidebar,\r\n member,\r\n searchFilter,\r\n skillPath\r\n}","import LZString from \"lz-string\";\r\nimport { ElNotification } from 'element-plus';\r\nimport i18n from \"@/plugins/i18n\";\r\nimport store from '@/store';\r\nimport { getloginInfo, postLogout, postBookmarkUpdateStatus } from \"@/api\";\r\nimport { languageEnum, languageIdEnum, countryCodeEnum } from \"@/enums/plugins/i18n\";\r\nimport { ApiReturnCodeEnum } from \"@/enums/api\";\r\nimport { itemTypeEnum } from \"@/enums/components/list\";\r\n\r\nexport const memberService = {\r\n loadLoginInfo: () => {\r\n getloginInfo().then(data => {\r\n store.member.mutations.setLoginInfo(data);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n },\r\n logout: () => {\r\n postLogout().then(() => {\r\n window.location.reload();\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n },\r\n getRLloginUrl: () => `${window.rlServerURL.MainWeb}member/#/${languageService.getLanguage()}/login;source=105;rurl=${encodeURIComponent(btoa(encodeURIComponent(window.location.href)))}`,\r\n getRLsignupUrl: () => `${window.rlServerURL.MainWeb}member/#/${languageService.getLanguage()}/register;source=105;rurl=${encodeURIComponent(btoa(encodeURIComponent(window.location.href)))}`,\r\n}\r\n\r\nexport const gaService = {\r\n gaTrackEvent: (type, eventAction, eventLabel, isEventNonInteraction = false) => {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({ 'eventCategory': type, 'eventAction': eventAction, 'eventLabel': eventLabel, 'eventNon-interaction': isEventNonInteraction, 'event': 'GAEvent'});\r\n },\r\n gaTrackButtonClick: label => {\r\n gaService.gaTrackEvent(\"rl-courses\", \"button-clicks\", label);\r\n },\r\n gaTrackBannerClick: label => {\r\n gaService.gaTrackEvent(\"rl-courses\", \"banner-clicks\", label);\r\n },\r\n recordProductImpression: (item, listName, position) => {\r\n const data = {\r\n name: item.title,\r\n id: item.category[0] + \"-\" + item.id,\r\n list: listName,\r\n brand: \"\",\r\n category: item.category.join(\"/\"),\r\n variant: item.type,\r\n position: position,\r\n price: \"\",\r\n }\r\n var dataObj = {\r\n \"event\": \"ECEvent\",\r\n \"eventCategory\": \"Ecommerce\",\r\n \"eventAction\": \"product list\",\r\n \"ecommerce\": {\r\n \"impressions\": [data]\r\n }\r\n };\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(dataObj);\r\n },\r\n recordProductClick: (item, listName, position) => {\r\n const data = {\r\n name: item.title,\r\n id: item.category[0] + \"-\" + item.id,\r\n brand: \"\",\r\n category: item.category.join(\"/\"),\r\n variant: item.type,\r\n position: position,\r\n price: \"\",\r\n }\r\n var dataObj = {\r\n \"event\": \"ECEvent\",\r\n \"eventCategory\": \"Ecommerce\",\r\n \"eventAction\": \"product click\",\r\n \"ecommerce\": {\r\n \"click\": {\r\n \"actionField\": {\"list\": listName},\r\n \"products\": [data]\r\n }\r\n }\r\n };\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(dataObj);\r\n },\r\n recordProductDetailImpression: (item, listName) => {\r\n const data = {\r\n name: item.title,\r\n id: item.category[0] + \"-\" + item.id,\r\n brand: \"\",\r\n category: item.category.join(\"/\"),\r\n variant: item.type,\r\n price: \"\",\r\n }\r\n var dataObj = {\r\n \"event\": \"ECEvent\",\r\n \"eventCategory\": \"Ecommerce\",\r\n \"eventAction\": \"product view\",\r\n \"ecommerce\": {\r\n \"detail\": {\r\n \"actionField\": {\"list\": listName},\r\n \"products\": [data]\r\n }\r\n }\r\n };\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(dataObj);\r\n }\r\n};\r\n\r\nexport const languageService = {\r\n setLanguage: (locale) => {\r\n if (i18n.mode === \"legacy\") {\r\n i18n.global.locale = locale;\r\n }\r\n else {\r\n i18n.global.locale.value = locale;\r\n }\r\n },\r\n getLanguage: () => i18n.global.locale,\r\n getLocaleMessege: key => i18n.global.getLocaleMessage(i18n.global.locale)[key],\r\n getLanguagePath: () => i18n.global.locale === languageEnum.EN ? '/' : '/' + i18n.global.locale + '/',\r\n getLanguageId: () => languageIdEnum[i18n.global.locale.toUpperCase()],\r\n getTargetLanguagePath: (lang) => {\r\n const path = window.location.pathname.replace(\"/\" + i18n.global.locale + \"/\", \"/\") + window.location.search + window.location.hash;\r\n if (lang != languageEnum.EN) {\r\n return \"/\" + lang + path;\r\n }\r\n return path;\r\n },\r\n getCountryCode: () => countryCodeEnum[i18n.global.locale.toUpperCase()],\r\n};\r\n\r\nexport const UtilityService = {\r\n getDescriptionAndTimecode: youtubeDescription => {\r\n let removeTimeCodeDescription = youtubeDescription;\r\n let timecode = [];\r\n var regex = /(([0-5]?[0-9]:[0-5]?[0-9])|((2[0-3]|[0-1]?[0-9]):[0-5]?[0-9]:[0-5]?[0-9]))(\\s|\\u200b)+(.+)/g;\r\n var matches;\r\n while ((matches = regex.exec(youtubeDescription))) {\r\n timecode.push({\r\n text: matches[6],\r\n time: matches[1],\r\n });\r\n removeTimeCodeDescription = removeTimeCodeDescription.replace(matches[0],'');\r\n }\r\n\r\n return {\r\n description: removeTimeCodeDescription,\r\n timecode: timecode\r\n }\r\n },\r\n textToHtml: (text, isTransformLinkToHtml = true) => {\r\n /* eslint-disable */\r\n if (!text) {\r\n return \"\";\r\n }\r\n let result = text;\r\n\r\n if (isTransformLinkToHtml) {\r\n result = result.replace(/https?:\\/\\/([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]\\S*)/g, match => `${match}`)\r\n }\r\n\r\n return result.replace(/(\\n{2,})|(\\n)/g, (_match, p1, p2) => p1 || p2 ? p1 ? \"

\" : \"
\" : \"\");\r\n },\r\n parseAndDecode: data => JSON.parse(LZString.decompressFromUTF16(data)),\r\n preprocessData: origialItem => {\r\n if (!origialItem) { \r\n return origialItem;\r\n }\r\n\r\n let item = JSON.parse(JSON.stringify(origialItem));\r\n const productFamilyNotShowVersion = [\"actorcore\", \"smart gallery\", \"smart content manager\"];\r\n item.productVersion = item.productVersion || [];\r\n item.productVersion = item.productVersion.reduce((allVersions, productVersionItem) => {\r\n if (productFamilyNotShowVersion.includes(productVersionItem.productFamily.toLowerCase())) {\r\n if (!allVersions.some(version => productVersionItem.productFamily.toLowerCase() == version.productFamily.toLowerCase())) {\r\n productVersionItem.version = \"\";\r\n allVersions.push(productVersionItem);\r\n }\r\n }\r\n else {\r\n allVersions.push(productVersionItem);\r\n }\r\n return allVersions;\r\n }, []);\r\n\r\n const splittedTitle = item.title.split(/ - (.+)/);\r\n if (splittedTitle.length === 3) {\r\n item.title = splittedTitle[1]\r\n }\r\n\r\n if (item.type === itemTypeEnum.SKILL_PATH && item.category.length === 0) {\r\n item.category = [UtilityService.videoType.skillPath.category];\r\n } else if (item.category && item.category.length > 0 && item.category[0] === UtilityService.videoType.skillPath.category && !item.type) {\r\n item.type = itemTypeEnum.SKILL_PATH;\r\n }\r\n return item;\r\n },\r\n getShowVersion: options => {\r\n const minimumVersionToShow = {\r\n \"iclone\": 4,\r\n \"cartoon animator\": 3,\r\n \"character creator\": 1,\r\n \"actorcore\": 0,\r\n \"smart gallery\": 0\r\n }\r\n options.forEach(item => {\r\n const requireVersion = minimumVersionToShow[item.product.toLowerCase()];\r\n if (requireVersion != undefined) {\r\n item.versions = item.versions.filter((version) => {\r\n if (requireVersion == 0) {\r\n return false;\r\n }\r\n else {\r\n return version >= requireVersion;\r\n }\r\n }).sort((a, b) => b - a);\r\n }\r\n });\r\n return options;\r\n },\r\n updateBookmarkStatusProcess: (id, isBookmarked, dataType) => {\r\n const { getLocaleMessege } = languageService;\r\n\r\n return new Promise((resolve, reject) => {\r\n postBookmarkUpdateStatus({ id, isBookmarked, dataType }).then(_data => {\r\n ElNotification({\r\n title: '',\r\n message: isBookmarked ? \r\n getLocaleMessege(\"COMMON\").UPDATE_BOOKMARK_STATUS_SUCCESS : \r\n getLocaleMessege(\"COMMON\").UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS,\r\n type: 'success',\r\n position:'bottom-left',\r\n })\r\n\r\n resolve();\r\n }, response => {\r\n if (response?.data?.apiStatus !== ApiReturnCodeEnum.RESPONSE_INTERCEPT) {\r\n ElNotification.error({\r\n title: getLocaleMessege(\"COMMON\").API_ERROR_TITLE.replace( /(<([^>]+)>)/ig, ''),\r\n message: getLocaleMessege(\"COMMON\").API_ERROR_DESCRIPTION.replace( /(<([^>]+)>)/ig, ''),\r\n position:'bottom-left',\r\n });\r\n\r\n reject(`request error, Response = ${response?.status}, ReturnCode = ${response?.data?.apiStatus}`);\r\n }\r\n \r\n reject('response intercept');\r\n }).catch(error => {\r\n ElNotification.error({\r\n title: getLocaleMessege(\"COMMON\").API_ERROR_TITLE.replace( /(<([^>]+)>)/ig, ''),\r\n message: getLocaleMessege(\"COMMON\").API_ERROR_DESCRIPTION.replace( /(<([^>]+)>)/ig, ''),\r\n position:'bottom-left',\r\n });\r\n \r\n reject(error);\r\n })\r\n })\r\n },\r\n videoType: {\r\n tutorial: {\r\n category: \"home\",\r\n type: \"tutorial\",\r\n display: \"TUTORIAL\",\r\n apiPath: \"v1/Query/Detail\",\r\n value: 1\r\n },\r\n master: {\r\n category: \"master-class\",\r\n type: \"master\",\r\n display: \"MASTER CLASS\",\r\n apiPath: \"v1/Query/Detail\",\r\n value: 2\r\n },\r\n webinar: {\r\n category: \"webinar\",\r\n type: \"webinar\",\r\n display: \"WEBINAR\",\r\n apiPath: \"v1/Webinar/Detail\",\r\n value: 3\r\n },\r\n skillPath: {\r\n category: \"skill-paths\",\r\n type: \"skillPath\",\r\n display: \"SKILL PATH\",\r\n apiPath: \"v1/Query/Detail\",\r\n value: 4\r\n }\r\n },\r\n getVideoType: (category) => {\r\n const videoType = UtilityService.videoType;\r\n for (const key in videoType) {\r\n if (category == videoType[key].category) {\r\n return videoType[key];\r\n }\r\n }\r\n return null;\r\n },\r\n groupVersion: (productVersion) => {\r\n const group = productVersion.reduce((result, info) => {\r\n result[info.productFamily] = result[info.productFamily] || [];\r\n \r\n if (info.version) {\r\n result[info.productFamily].push(+info.version);\r\n }\r\n\r\n return result;\r\n }, {});\r\n \r\n return Object.keys(group).map(productFamily => {\r\n return {\r\n productFamily,\r\n versions: group[productFamily].sort()\r\n }\r\n }) \r\n },\r\n sortProduct: (productData, key) => {\r\n const order = {\r\n \"iClone\": 1,\r\n \"Character Creator\": 2,\r\n \"Cartoon Animator\": 3\r\n }\r\n productData.sort((a,b) => {\r\n const weightA = order[key ? a[key] : a] || 100;\r\n const weightB = order[key ? b[key] : b] || 100;\r\n\r\n return weightA - weightB;\r\n })\r\n return productData;\r\n },\r\n formatSeconds: (s) => {\r\n const formatTime = new Date(s * 1000)\r\n .toISOString()\r\n .substr(11, 8)\r\n .split(\":\");\r\n if (formatTime.length >= 3 && formatTime[0] == \"00\") {\r\n formatTime.shift();\r\n }\r\n \r\n return formatTime.join(\":\");\r\n }\r\n}","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n class: \"breadcrumb-wrapper\"\n};\nconst _hoisted_2 = {\n key: 0\n};\nconst _hoisted_3 = {\n key: 1,\n class: \"rl-color-gray1\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = _resolveComponent(\"router-link\");\n const _component_el_breadcrumb_item = _resolveComponent(\"el-breadcrumb-item\");\n const _component_el_breadcrumb = _resolveComponent(\"el-breadcrumb\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n class: \"shadow left\",\n style: _normalizeStyle({\n width: $setup.leftShadowWidth\n })\n }, null, 4), _createElementVNode(\"div\", {\n class: \"breadcrumb-viewport\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $setup.startDrag && $setup.startDrag(...args)),\n onMousemove: _cache[1] || (_cache[1] = (...args) => $setup.doDrag && $setup.doDrag(...args)),\n onMouseleave: _cache[2] || (_cache[2] = (...args) => $setup.stopDrag && $setup.stopDrag(...args))\n }, [$props.breadcrumbData.length > 0 ? (_openBlock(), _createBlock(_component_el_breadcrumb, {\n key: 0,\n \"separator-class\": \"el-icon-arrow-right\"\n }, {\n default: _withCtx(() => [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($props.breadcrumbData, (item, index) => {\n return _openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: item.name,\n class: _normalizeClass([\"rl-text-body-2\", index < $props.breadcrumbData.length - 1 ? '' : 'rl-fontweight-medium rl-color-black1 '])\n }, {\n default: _withCtx(() => [index === $props.breadcrumbData.length - 1 ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(item.name), 1)) : item.path === '' ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(item.name), 1)) : (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n to: item.path,\n onmousedown: \"event.preventDefault ? event.preventDefault() : event.returnValue = false\"\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(item.name), 1)]),\n _: 2\n }, 1032, [\"to\"]))]),\n _: 2\n }, 1032, [\"class\"]);\n }), 128))]),\n _: 1\n })) : _createCommentVNode(\"\", true)], 32), _createElementVNode(\"div\", {\n class: \"shadow right\",\n style: _normalizeStyle({\n width: $setup.rightShadowWidth\n })\n }, null, 4)]);\n}","import \"core-js/modules/esnext.iterator.constructor.js\";\nimport \"core-js/modules/esnext.iterator.find.js\";\nimport { computed, nextTick, onMounted, onUnmounted, ref, watch } from \"@vue/runtime-core\";\nexport default {\n name: \"Breadcrumb\",\n props: {\n breadcrumbData: {\n type: Array,\n default: () => [] //ex [{ name: \"home\", path: \"/home\" }];\n }\n },\n setup(props) {\n const leftOffsetPercentage = ref(0);\n const rightOffsetPercentage = ref(0);\n const leftShadowWidth = computed(() => `${leftOffsetPercentage.value * 40}px`);\n const rightShadowWidth = computed(() => `${rightOffsetPercentage.value * 40}px`);\n let dragging = false;\n let startX = 0;\n let viewport;\n let viewportWidth = 0;\n let contentWidth = 0;\n let offset = 0;\n const startDrag = event => {\n dragging = true;\n startX = event.clientX;\n window.addEventListener(\"mouseup\", stopDrag);\n };\n const stopDrag = () => {\n dragging = false;\n window.removeEventListener(\"mouseup\", stopDrag);\n };\n const doDrag = _.throttle(event => {\n if (dragging) {\n viewport.scrollLeft = viewport.scrollLeft - (event.clientX - startX) / 4;\n }\n }, 16);\n const setShadow = () => {\n if (offset > 0) {\n leftOffsetPercentage.value = (viewport.scrollLeft / offset).toFixed(2);\n rightOffsetPercentage.value = 1 - leftOffsetPercentage.value;\n } else {\n leftOffsetPercentage.value = 0;\n rightOffsetPercentage.value = 0;\n }\n };\n const onScoll = e => {\n setShadow();\n };\n const init = () => {\n viewport = document.body.querySelector(\".breadcrumb-viewport\");\n viewport.scrollLeft = 0;\n nextTick(() => {\n setTimeout(() => {\n viewportWidth = $(viewport).width();\n contentWidth = $(viewport).find(\".el-breadcrumb\").width();\n offset = contentWidth - viewportWidth;\n setShadow();\n }, 0);\n });\n };\n watch(props, () => {\n init();\n });\n onMounted(() => {\n init();\n viewport.addEventListener(\"scroll\", onScoll, false);\n window.addEventListener(\"resize\", init);\n });\n onUnmounted(() => {\n viewport.addEventListener(\"scroll\", onScoll, false);\n window.removeEventListener(\"resize\", init);\n });\n return {\n leftShadowWidth,\n rightShadowWidth,\n startDrag,\n stopDrag,\n doDrag\n };\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./breadcrumb.vue?vue&type=template&id=091d1c0a&scoped=true\"\nimport script from \"./breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./breadcrumb.vue?vue&type=script&lang=js\"\n\nimport \"./breadcrumb.vue?vue&type=style&index=0&id=091d1c0a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-091d1c0a\"]])\n\nexport default __exports__","import \"core-js/modules/esnext.iterator.map.js\";\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"rl-row-top-30 rl-row-mobile-bottom-20\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"rl-row-bottom-calc-40 rl-row-mobile-bottom-25\"\n};\nconst _hoisted_3 = {\n class: \"rl-space-left-calc-20\"\n};\nconst _hoisted_4 = {\n class: \"video-detail-container rl-space-calc-40 rl-space-mobile-right-0 rl-space-mobile-left-0\"\n};\nconst _hoisted_5 = {\n class: \"flex-space-between rl-row-bottom-10\"\n};\nconst _hoisted_6 = {\n class: \"video-playback-panel\"\n};\nconst _hoisted_7 = {\n class: \"video\"\n};\nconst _hoisted_8 = {\n class: \"video-description\"\n};\nconst _hoisted_9 = {\n class: \"rl-row-top-20 rl-row-mobile-top-10 rl-row-bottom-calc-50 rl-row-mobile-bottom-30\"\n};\nconst _hoisted_10 = {\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30\"\n};\nconst _hoisted_11 = {\n class: \"rl-row-bottom-25 rl-row-mobile-bottom-10\"\n};\nconst _hoisted_12 = {\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30\"\n};\nconst _hoisted_13 = {\n class: \"rl-row-bottom-25 rl-row-mobile-bottom-10\"\n};\nconst _hoisted_14 = {\n key: 0,\n class: \"relevance\"\n};\nconst _hoisted_15 = {\n class: \"rl-row-bottom-25 rl-row-mobile-bottom-20\"\n};\nconst _hoisted_16 = {\n class: \"relevance-image\"\n};\nconst _hoisted_17 = {\n class: \"relevance-info\"\n};\nconst _hoisted_18 = {\n class: \"relevance-category rl-row-top-20\"\n};\nconst _hoisted_19 = {\n class: \"relevance-bookmark\"\n};\nconst _hoisted_20 = {\n class: \"relevance-time\"\n};\nconst _hoisted_21 = {\n class: \"relevance-bookmark\"\n};\nconst _hoisted_22 = {\n key: 0,\n class: \"rl-row-bottom-calc-40 rl-row-mobile-bottom-25\"\n};\nconst _hoisted_23 = {\n class: \"video-detail-container rl-space-calc-40 rl-space-mobile-right-0 rl-space-mobile-left-0\"\n};\nconst _hoisted_24 = {\n class: \"flex-space-between rl-row-bottom-10\"\n};\nconst _hoisted_25 = {\n class: \"title rl-fontweight-medium rl-text-h5 rl-color-black1\"\n};\nconst _hoisted_26 = {\n key: 0,\n \"xlink:href\": \"#bookmark_1_\"\n};\nconst _hoisted_27 = {\n key: 1,\n \"xlink:href\": \"#bookmark-active\"\n};\nconst _hoisted_28 = {\n class: \"video-playback-panel\"\n};\nconst _hoisted_29 = {\n key: 0,\n class: \"video\"\n};\nconst _hoisted_30 = {\n class: \"video-description\"\n};\nconst _hoisted_31 = {\n key: 0,\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30 rl-color-black1\"\n};\nconst _hoisted_32 = {\n class: \"rl-fontweight-medium rl-text-subtitle-2 rl-row-bottom-25 rl-row-mobile-bottom-10\"\n};\nconst _hoisted_33 = [\"innerHTML\"];\nconst _hoisted_34 = {\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30 rl-color-black1\"\n};\nconst _hoisted_35 = {\n class: \"rl-fontweight-medium rl-text-subtitle-2 rl-row-bottom-25 rl-row-mobile-bottom-10\"\n};\nconst _hoisted_36 = {\n class: \"rl-fontweight-lighter rl-text-body-2\"\n};\nconst _hoisted_37 = [\"innerHTML\"];\nconst _hoisted_38 = {\n key: 0,\n style: {\n \"list-style-position\": \"inside\",\n \"padding-left\": \"0px\",\n \"margin\": \"0px\"\n }\n};\nconst _hoisted_39 = [\"onClick\"];\nconst _hoisted_40 = {\n key: 1,\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30\"\n};\nconst _hoisted_41 = {\n class: \"rl-text-subtitle-2 rl-fontweight-medium rl-row-bottom-25 rl-row-mobile-bottom-20\"\n};\nconst _hoisted_42 = {\n class: \"resource-container\"\n};\nconst _hoisted_43 = [\"href\"];\nconst _hoisted_44 = [\"href\"];\nconst _hoisted_45 = [\"href\"];\nconst _hoisted_46 = {\n key: 2,\n class: \"rl-row-bottom-calc-50 rl-row-mobile-bottom-30\"\n};\nconst _hoisted_47 = {\n class: \"rl-text-subtitle-2 rl-fontweight-medium rl-row-bottom-25 rl-row-mobile-bottom-20\"\n};\nconst _hoisted_48 = {\n class: \"instructors\"\n};\nconst _hoisted_49 = {\n class: \"thumbnail\"\n};\nconst _hoisted_50 = [\"src\", \"onerror\"];\nconst _hoisted_51 = {\n class: \"rl-row-bottom-15 rl-text-body-2 rl-fontweight-medium\"\n};\nconst _hoisted_52 = {\n key: 0\n};\nconst _hoisted_53 = [\"innerHTML\"];\nconst _hoisted_54 = {\n key: 3,\n class: \"relevance rl-color-black1 rl-fontweight-medium\"\n};\nconst _hoisted_55 = {\n class: \"rl-text-subtitle-2 rl-fontweight-medium rl-row-bottom-25 rl-row-mobile-bottom-20\"\n};\nconst _hoisted_56 = [\"onClick\"];\nconst _hoisted_57 = {\n class: \"relevance-image\"\n};\nconst _hoisted_58 = [\"src\"];\nconst _hoisted_59 = {\n class: \"relevance-info\"\n};\nconst _hoisted_60 = {\n class: \"rl-fontweight-medium rl-text-body-1\"\n};\nconst _hoisted_61 = {\n class: \"relevance-category rl-row-top-10\"\n};\nconst _hoisted_62 = {\n class: \"relevance-bookmark rl-space-mobile-right-10\"\n};\nconst _hoisted_63 = [\"onClick\"];\nconst _hoisted_64 = {\n key: 0,\n \"xlink:href\": \"#bookmark_1_\"\n};\nconst _hoisted_65 = {\n key: 1,\n \"xlink:href\": \"#bookmark-active\"\n};\nconst _hoisted_66 = {\n class: \"rl-text-body-2 relevance-time rl-fontweight-regular\"\n};\nconst _hoisted_67 = {\n class: \"relevance-bookmark\"\n};\nconst _hoisted_68 = [\"onClick\"];\nconst _hoisted_69 = {\n key: 0,\n \"xlink:href\": \"#bookmark_1_\"\n};\nconst _hoisted_70 = {\n key: 1,\n \"xlink:href\": \"#bookmark-active\"\n};\nconst _hoisted_71 = {\n key: 0,\n class: \"rl-flex-nowrap rl-justify-content-center rl-align-items-center\",\n style: {\n \"height\": \"100%\"\n }\n};\nconst _hoisted_72 = [\"innerHTML\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_skeleton_item = _resolveComponent(\"el-skeleton-item\");\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\");\n const _component_el_breadcrumb_item = _resolveComponent(\"el-breadcrumb-item\");\n const _component_el_breadcrumb = _resolveComponent(\"el-breadcrumb\");\n const _component_el_skeleton = _resolveComponent(\"el-skeleton\");\n const _directive_intersectionObserver = _resolveDirective(\"intersectionObserver\");\n return _openBlock(), _createElementBlock(_Fragment, null, [_createElementVNode(\"div\", _hoisted_1, [_createVNode(_component_el_skeleton, {\n animated: \"\",\n loading: $setup.loading\n }, {\n template: _withCtx(() => [$setup.currentType !== $setup.videoType.skillPath.type ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [_createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_skeleton_item, {\n variant: \"p\",\n style: {\n \"width\": \"40%\"\n }\n })])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_4, [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_el_skeleton_item, {\n variant: \"h1\",\n style: {\n \"width\": \"40%\"\n }\n }), _createVNode(_component_el_skeleton_item, {\n variant: \"button\",\n style: {\n \"width\": \"50px\",\n \"height\": \"50px\"\n }\n })]), _cache[10] || (_cache[10] = _createElementVNode(\"div\", {\n class: \"space\"\n }, null, -1)), _createElementVNode(\"div\", _hoisted_6, [_createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_el_skeleton_item, {\n variant: \"image\",\n style: {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"height\": \"100%\",\n \"width\": \"100%\"\n }\n })])]), _renderSlot(_ctx.$slots, \"playlist\", {}, undefined, true), _createElementVNode(\"div\", _hoisted_8, [_createElementVNode(\"div\", _hoisted_9, [_createVNode(_component_el_skeleton_item, {\n variant: \"p\",\n style: {\n \"width\": \"40%\"\n }\n })]), _createElementVNode(\"div\", _hoisted_10, [_createVNode(_component_el_skeleton_item, {\n variant: \"h3\",\n style: {\n \"width\": \"30%\"\n }\n }), _createElementVNode(\"div\", _hoisted_11, [_createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"80%\"\n }\n }), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"25%\"\n }\n })]), _createElementVNode(\"div\", null, [_createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"15%\"\n }\n }), _cache[4] || (_cache[4] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"25%\"\n }\n }), _cache[5] || (_cache[5] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"45%\"\n }\n }), _cache[6] || (_cache[6] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"30%\"\n }\n })])]), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"div\", _hoisted_13, [_createVNode(_component_el_skeleton_item, {\n variant: \"h3\",\n style: {\n \"width\": \"25%\"\n }\n })]), _createElementVNode(\"div\", null, [_createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"15%\"\n }\n }), _cache[7] || (_cache[7] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"25%\"\n }\n }), _cache[8] || (_cache[8] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"45%\"\n }\n }), _cache[9] || (_cache[9] = _createElementVNode(\"br\", null, null, -1)), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"30%\"\n }\n })])]), $setup.currentType !== $setup.videoType.skillPath.type ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [_createElementVNode(\"div\", _hoisted_15, [_createVNode(_component_el_skeleton_item, {\n variant: \"h3\",\n style: {\n \"width\": \"25%\"\n }\n })]), (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, item => {\n return _createElementVNode(\"div\", {\n class: \"relevance-item rl-row-bottom-20\",\n key: item\n }, [_createElementVNode(\"div\", _hoisted_16, [_createVNode(_component_el_skeleton_item, {\n variant: \"image\",\n style: {\n \"width\": \"100%\",\n \"height\": \"125px\"\n }\n })]), _createElementVNode(\"div\", _hoisted_17, [_createElementVNode(\"div\", null, [_createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"50%\"\n }\n })]), _createElementVNode(\"div\", _hoisted_18, [_createElementVNode(\"div\", _hoisted_19, [_createVNode(_component_el_skeleton_item, {\n variant: \"button\",\n style: {\n \"width\": \"50px\",\n \"height\": \"50px\"\n }\n })]), _createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"30%\"\n }\n })]), _createElementVNode(\"div\", _hoisted_20, [_createVNode(_component_el_skeleton_item, {\n variant: \"text\",\n style: {\n \"width\": \"10%\"\n }\n })])]), _createElementVNode(\"div\", _hoisted_21, [_createVNode(_component_el_skeleton_item, {\n variant: \"button\",\n style: {\n \"width\": \"50px\",\n \"height\": \"50px\"\n }\n })])]);\n }), 64))])) : _createCommentVNode(\"\", true)])])]),\n default: _withCtx(() => [$setup.videoData ? (_openBlock(), _createElementBlock(_Fragment, {\n key: 0\n }, [$setup.currentType !== $setup.videoType.skillPath.type ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [_createVNode(_component_Breadcrumb, {\n class: \"breadcrumb\",\n breadcrumbData: $setup.breadcrumbData\n }, null, 8, [\"breadcrumbData\"])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_23, [_createElementVNode(\"div\", _hoisted_24, [_createElementVNode(\"div\", _hoisted_25, _toDisplayString($setup.videoData.title), 1), (_openBlock(), _createElementBlock(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: _normalizeClass([\"bookmark\", {\n active: $setup.videoData.isBookmarked\n }]),\n onClick: _cache[0] || (_cache[0] = _withModifiers($event => $setup.bookmarkChange(!$setup.videoData.isBookmarked, $setup.videoData.id, false), [\"prevent\"]))\n }, [!$setup.videoData.isBookmarked ? (_openBlock(), _createElementBlock(\"use\", _hoisted_26)) : (_openBlock(), _createElementBlock(\"use\", _hoisted_27))], 2))]), _cache[17] || (_cache[17] = _createElementVNode(\"div\", {\n class: \"space\"\n }, null, -1)), _createElementVNode(\"div\", _hoisted_28, [$setup.videoData.link ? (_openBlock(), _createElementBlock(\"div\", _hoisted_29, _cache[11] || (_cache[11] = [_createElementVNode(\"div\", {\n id: \"videoPlayer\",\n style: {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"height\": \"100%\",\n \"width\": \"100%\"\n }\n }, null, -1)]))) : _createCommentVNode(\"\", true)]), _renderSlot(_ctx.$slots, \"playlist\", {}, undefined, true), _createElementVNode(\"div\", _hoisted_30, [_createVNode(_component_el_breadcrumb, {\n separator: \"|\",\n class: \"rl-row-top-20 rl-row-mobile-top-10 rl-text-body-2 rl-row-bottom-calc-10 rl-row-mobile-bottom-10 rl-color-black1 video-detail-breadcrumb\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString($setup.getVersion($setup.currentType, $setup.videoData)), 1)]),\n _: 1\n }), _createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"COMMON.LEVEL\")) + \" \", 1), (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, i => {\n return _createElementVNode(\"div\", {\n class: _normalizeClass([\"level-indicator\", {\n 'active': i <= $setup.videoData.level\n }]),\n key: 'level' + i\n }, null, 2);\n }), 64))]),\n _: 1\n }), $setup.videoData.speakers && $setup.videoData.speakers.length ? (_openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: 0\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"VIDEO_DETAIL.SPEAKERS\")) + \": \" + _toDisplayString($setup.videoData.speakers.map(instructor => instructor.name).join(', ')), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true), $setup.videoData.date ? (_openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: 1\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$d($setup.videoData.date, \"short\")) + \" (PDT)\", 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true), $setup.videoData.hasOwnProperty('price') ? (_openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: 2\n }, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"COMMON.PRICE\")) + \": \" + _toDisplayString($setup.getPrice($setup.videoData.price)), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true)]),\n _: 1\n }), _createVNode(_component_el_breadcrumb, {\n separator: \" \",\n class: \"rl-text-body-2 rl-row-bottom-calc-50 rl-row-mobile-bottom-30 rl-color-black1 video-detail-breadcrumb\"\n }, {\n default: _withCtx(() => [$setup.videoData.videoLanguage ? (_openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: 0\n }, {\n default: _withCtx(() => [_cache[12] || (_cache[12] = _createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"language-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#language\"\n })], -1)), _createElementVNode(\"span\", null, _toDisplayString($setup.languageCodeToName([$setup.videoData.videoLanguage], $setup.currentLang)), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true), $setup.videoData.captionLanguages ? (_openBlock(), _createBlock(_component_el_breadcrumb_item, {\n key: 1\n }, {\n default: _withCtx(() => [_cache[13] || (_cache[13] = _createElementVNode(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: \"subtitle-logo\"\n }, [_createElementVNode(\"use\", {\n \"xlink:href\": \"#subtitle\"\n })], -1)), _createElementVNode(\"span\", null, _toDisplayString($setup.languageCodeToName($setup.videoData.captionLanguages, $setup.currentLang)), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true)]),\n _: 1\n }), $setup.videoData.outline ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [_createElementVNode(\"div\", _hoisted_32, _toDisplayString(_ctx.$t(\"COMMON.LIVE_DEMO_OUTLINE\")), 1), _createElementVNode(\"div\", {\n innerHTML: $setup.getOutline($setup.videoData.outline),\n class: \"rl-fontweight-lighter rl-text-body-2\"\n }, null, 8, _hoisted_33)])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_34, [_createElementVNode(\"div\", _hoisted_35, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.TITLE_DESCRIPTION\")), 1), _createElementVNode(\"div\", _hoisted_36, [_createElementVNode(\"div\", {\n class: \"rl-row-bottom-25 description\",\n innerHTML: $setup.videoData.description\n }, null, 8, _hoisted_37), $setup.videoData.timecode.length ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_38, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.timecode, (item, index) => {\n return _openBlock(), _createElementBlock(\"li\", {\n key: 'timecode' + index\n }, [_createElementVNode(\"span\", {\n class: \"timecode\",\n onClick: $event => $setup.changeVideoTime(item.time)\n }, _toDisplayString(item.time), 9, _hoisted_39), _createTextVNode(\" \" + _toDisplayString(item.text), 1)]);\n }), 128))])) : _createCommentVNode(\"\", true)])]), $setup.videoData.onlineManual || $setup.videoData.downloadFiles || $setup.videoData.tutorialArticles ? (_openBlock(), _createElementBlock(\"div\", _hoisted_40, [_createElementVNode(\"div\", _hoisted_41, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.RESOURCE\")), 1), _createElementVNode(\"div\", _hoisted_42, [$setup.videoData.onlineManual && $setup.videoData.onlineManual.length > 0 ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"resource-item\", {\n 'open': $setup.resourceListStatus.showOnlineManual\n }])\n }, [_createElementVNode(\"div\", {\n class: \"resource-title rl-text-body-2 rl-fontweight-medium\",\n onClick: _cache[1] || (_cache[1] = $event => $setup.resourceListStatus.showOnlineManual = !$setup.resourceListStatus.showOnlineManual)\n }, [_cache[14] || (_cache[14] = _createElementVNode(\"div\", {\n class: \"arrow\"\n }, null, -1)), _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.ONLINE_MANUAL\")), 1)]), _createElementVNode(\"ul\", null, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.onlineManual, (list, index) => {\n return _openBlock(), _createElementBlock(\"li\", {\n class: \"rl-row-bottom-10\",\n key: 'Online Manual' + index\n }, [_createElementVNode(\"a\", {\n href: list.link,\n target: \"_blank\"\n }, _toDisplayString(list.title), 9, _hoisted_43)]);\n }), 128))])], 2)) : _createCommentVNode(\"\", true), $setup.videoData.tutorialArticles && $setup.videoData.tutorialArticles.length > 0 ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"resource-item\", {\n 'open': $setup.resourceListStatus.showTutorialArticles\n }])\n }, [_createElementVNode(\"div\", {\n class: \"resource-title rl-text-body-2 rl-fontweight-medium\",\n onClick: _cache[2] || (_cache[2] = $event => $setup.resourceListStatus.showTutorialArticles = !$setup.resourceListStatus.showTutorialArticles)\n }, [_cache[15] || (_cache[15] = _createElementVNode(\"div\", {\n class: \"arrow\"\n }, null, -1)), _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.TUTORIAL_ARTICLES\")), 1)]), _createElementVNode(\"ul\", null, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.tutorialArticles, (list, index) => {\n return _openBlock(), _createElementBlock(\"li\", {\n class: \"rl-row-bottom-10\",\n key: 'Tutorial Articles' + index\n }, [_createElementVNode(\"a\", {\n href: list.link,\n target: \"_blank\"\n }, _toDisplayString(list.title), 9, _hoisted_44)]);\n }), 128))])], 2)) : _createCommentVNode(\"\", true), $setup.videoData.downloadFiles && $setup.videoData.downloadFiles.length > 0 ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([\"resource-item\", {\n 'open': $setup.resourceListStatus.showDownloadFiles\n }])\n }, [_createElementVNode(\"div\", {\n class: \"resource-title rl-text-body-2 rl-fontweight-medium\",\n onClick: _cache[3] || (_cache[3] = $event => $setup.resourceListStatus.showDownloadFiles = !$setup.resourceListStatus.showDownloadFiles)\n }, [_cache[16] || (_cache[16] = _createElementVNode(\"div\", {\n class: \"arrow\"\n }, null, -1)), _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.DOWNLOAD_FILES\")), 1)]), _createElementVNode(\"ul\", null, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.downloadFiles, (list, index) => {\n return _openBlock(), _createElementBlock(\"li\", {\n class: \"rl-row-bottom-10\",\n key: 'Download Files' + index\n }, [_createElementVNode(\"a\", {\n href: list.link,\n target: \"_blank\"\n }, _toDisplayString(list.title), 9, _hoisted_45)]);\n }), 128))])], 2)) : _createCommentVNode(\"\", true)])])) : _createCommentVNode(\"\", true), $setup.videoData.speakers && $setup.videoData.speakers.length ? (_openBlock(), _createElementBlock(\"div\", _hoisted_46, [_createElementVNode(\"div\", _hoisted_47, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.INSTRUCTOR\")), 1), _createElementVNode(\"div\", _hoisted_48, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.speakers, (instructor, index) => {\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"instructor-info\",\n key: instructor.name + index\n }, [_createElementVNode(\"div\", _hoisted_49, [_createElementVNode(\"img\", {\n src: instructor.thumbnail,\n onerror: $setup.handleThumbnailError\n }, null, 8, _hoisted_50)]), _createElementVNode(\"div\", null, [_createElementVNode(\"div\", _hoisted_51, [_createTextVNode(_toDisplayString(instructor.name) + \" \", 1), instructor.type === $setup.SpeakerTypeEnum.GUEST && instructor.title ? (_openBlock(), _createElementBlock(\"span\", _hoisted_52, \"  - \" + _toDisplayString(instructor.title), 1)) : _createCommentVNode(\"\", true)]), _createElementVNode(\"div\", {\n innerHTML: $setup.textToHtml(instructor.description),\n class: \"rl-fontweight-lighter rl-text-body-2\"\n }, null, 8, _hoisted_53)])]);\n }), 128))])])) : _createCommentVNode(\"\", true), $setup.currentType !== $setup.videoType.skillPath.type && $setup.videoData.relevance && $setup.videoData.relevance.length > 0 ? (_openBlock(), _createElementBlock(\"div\", _hoisted_54, [_createElementVNode(\"div\", _hoisted_55, _toDisplayString(_ctx.$t(\"VIDEO_DETAIL.TITLE_RELEVANCE\")), 1), (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.videoData.relevance, (item, index) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: \"relevance-item rl-row-bottom-20\",\n key: item.id,\n onClick: $event => $setup.clickImage(item, index)\n }, [_createElementVNode(\"div\", _hoisted_57, [_createElementVNode(\"img\", {\n src: item.thumbnail,\n class: \"rl-img-response\",\n alt: \"\"\n }, null, 8, _hoisted_58)]), _createElementVNode(\"div\", _hoisted_59, [_createElementVNode(\"div\", _hoisted_60, _toDisplayString(item.title), 1), _createElementVNode(\"div\", _hoisted_61, [_createElementVNode(\"div\", _hoisted_62, [(_openBlock(), _createElementBlock(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: _normalizeClass([\"bookmark\", {\n active: item.isBookmarked\n }]),\n onClick: _withModifiers($event => $setup.bookmarkChange(!item.isBookmarked, item.id, true), [\"prevent\", \"stop\"])\n }, [!item.isBookmarked ? (_openBlock(), _createElementBlock(\"use\", _hoisted_64)) : (_openBlock(), _createElementBlock(\"use\", _hoisted_65))], 10, _hoisted_63))]), _createVNode(_component_el_breadcrumb, {\n separator: \"|\",\n class: \"rl-text-body-3 rl-color-gray2\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"VIDEO_DETAIL.TUTORIAL\")), 1)]),\n _: 1\n }), _createVNode(_component_el_breadcrumb_item, null, {\n default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.$t(\"COMMON.LEVEL\")) + \" \", 1), (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, i => {\n return _createElementVNode(\"div\", {\n class: _normalizeClass([\"level-indicator\", {\n 'active': i <= item.level\n }]),\n key: 'level' + i\n }, null, 2);\n }), 64))]),\n _: 2\n }, 1024)]),\n _: 2\n }, 1024)]), _createElementVNode(\"div\", _hoisted_66, _toDisplayString($setup.getVideoTime(item.videoLength)), 1)]), _createElementVNode(\"div\", _hoisted_67, [(_openBlock(), _createElementBlock(\"svg\", {\n viewBox: \"0 0 34 34\",\n class: _normalizeClass([\"bookmark\", {\n active: item.isBookmarked\n }]),\n onClick: _withModifiers($event => $setup.bookmarkChange(!item.isBookmarked, item.id, true), [\"prevent\", \"stop\"])\n }, [!item.isBookmarked ? (_openBlock(), _createElementBlock(\"use\", _hoisted_69)) : (_openBlock(), _createElementBlock(\"use\", _hoisted_70))], 10, _hoisted_68))])], 8, _hoisted_56)), [[_directive_intersectionObserver, () => $setup.recordProductImpression(item, $setup.videoType[$setup.currentType].category + '-relevance', index)]]);\n }), 128))])) : _createCommentVNode(\"\", true)])])], 64)) : _createCommentVNode(\"\", true)]),\n _: 3\n }, 8, [\"loading\"])]), $setup.isApiError ? (_openBlock(), _createElementBlock(\"div\", _hoisted_71, [_createElementVNode(\"div\", {\n innerHTML: _ctx.$t('COMMON.API_ERROR_TITLE') + _ctx.$t('COMMON.API_ERROR_DESCRIPTION')\n }, null, 8, _hoisted_72)])) : _createCommentVNode(\"\", true)], 64);\n}","const languages = [\r\n {\r\n \"code\": \"af\",\r\n \"tw\": \"南非荷蘭文\",\r\n \"de\": \"Afrikaans\",\r\n \"jp\": \"アフリカーンス語\",\r\n \"cn\": \"南非荷兰语\",\r\n \"en\": \"Afrikaans\"\r\n },\r\n {\r\n \"code\": \"am\",\r\n \"tw\": \"阿姆哈拉文\",\r\n \"de\": \"Amharisch\",\r\n \"jp\": \"アムハラ語\",\r\n \"cn\": \"阿姆哈拉语\",\r\n \"en\": \"Amharic\"\r\n },\r\n {\r\n \"code\": \"ar\",\r\n \"tw\": \"阿拉伯文\",\r\n \"de\": \"Arabisch\",\r\n \"jp\": \"アラビア語\",\r\n \"cn\": \"阿拉伯语\",\r\n \"en\": \"Arabic\"\r\n },\r\n {\r\n \"code\": \"as\",\r\n \"tw\": \"阿薩姆文\",\r\n \"de\": \"Assamesisch\",\r\n \"jp\": \"アッサム語\",\r\n \"cn\": \"阿萨姆语\",\r\n \"en\": \"Assamese\"\r\n },\r\n {\r\n \"code\": \"az\",\r\n \"tw\": \"亞塞拜然文\",\r\n \"de\": \"Aserbaidschanisch\",\r\n \"jp\": \"アゼルバイジャン語\",\r\n \"cn\": \"阿塞拜疆语\",\r\n \"en\": \"Azerbaijani\"\r\n },\r\n {\r\n \"code\": \"be\",\r\n \"tw\": \"白俄羅斯文\",\r\n \"de\": \"Belarussisch\",\r\n \"jp\": \"ベラルーシ語\",\r\n \"cn\": \"白俄罗斯语\",\r\n \"en\": \"Belarusian\"\r\n },\r\n {\r\n \"code\": \"bg\",\r\n \"tw\": \"保加利亞文\",\r\n \"de\": \"Bulgarisch\",\r\n \"jp\": \"ブルガリア語\",\r\n \"cn\": \"保加利亚语\",\r\n \"en\": \"Bulgarian\"\r\n },\r\n {\r\n \"code\": \"bn\",\r\n \"tw\": \"孟加拉文\",\r\n \"de\": \"Bengalisch\",\r\n \"jp\": \"ベンガル語\",\r\n \"cn\": \"孟加拉语\",\r\n \"en\": \"Bangla\"\r\n },\r\n {\r\n \"code\": \"bs\",\r\n \"tw\": \"波士尼亞文\",\r\n \"de\": \"Bosnisch\",\r\n \"jp\": \"ボスニア語\",\r\n \"cn\": \"波斯尼亚语\",\r\n \"en\": \"Bosnian\"\r\n },\r\n {\r\n \"code\": \"ca\",\r\n \"tw\": \"加泰蘭文\",\r\n \"de\": \"Katalanisch\",\r\n \"jp\": \"カタロニア語\",\r\n \"cn\": \"加泰罗尼亚语\",\r\n \"en\": \"Catalan\"\r\n },\r\n {\r\n \"code\": \"cs\",\r\n \"tw\": \"捷克文\",\r\n \"de\": \"Tschechisch\",\r\n \"jp\": \"チェコ語\",\r\n \"cn\": \"捷克语\",\r\n \"en\": \"Czech\"\r\n },\r\n {\r\n \"code\": \"da\",\r\n \"tw\": \"丹麥文\",\r\n \"de\": \"Dänisch\",\r\n \"jp\": \"デンマーク語\",\r\n \"cn\": \"丹麦语\",\r\n \"en\": \"Danish\"\r\n },\r\n {\r\n \"code\": \"de\",\r\n \"tw\": \"德文\",\r\n \"de\": \"Deutsch\",\r\n \"jp\": \"ドイツ語\",\r\n \"cn\": \"德语\",\r\n \"en\": \"German\"\r\n },\r\n {\r\n \"code\": \"el\",\r\n \"tw\": \"希臘文\",\r\n \"de\": \"Griechisch\",\r\n \"jp\": \"ギリシャ語\",\r\n \"cn\": \"希腊语\",\r\n \"en\": \"Greek\"\r\n },\r\n {\r\n \"code\": \"en-US\",\r\n \"tw\": \"英語(美國)\",\r\n \"de\": \"Englisch (USA)\",\r\n \"jp\": \"英語 (アメリカ)\",\r\n \"cn\": \"英语(美国)\",\r\n \"en\": \"English (United States)\"\r\n },\r\n {\r\n \"code\": \"en-GB\",\r\n \"tw\": \"英文(英國)\",\r\n \"de\": \"Englisch (Vereinigtes Königreich)\",\r\n \"jp\": \"英語 (イギリス)\",\r\n \"cn\": \"英语(英国)\",\r\n \"en\": \"English (United Kingdom)\"\r\n },\r\n {\r\n \"code\": \"en-IN\",\r\n \"tw\": \"英文(印度)\",\r\n \"de\": \"Englisch (Indien)\",\r\n \"jp\": \"英語 (インド)\",\r\n \"cn\": \"英语(印度)\",\r\n \"en\": \"English (India)\"\r\n },\r\n {\r\n \"code\": \"en\",\r\n \"tw\": \"英文\",\r\n \"de\": \"Englisch\",\r\n \"jp\": \"英語\",\r\n \"cn\": \"英语\",\r\n \"en\": \"English\"\r\n },\r\n {\r\n \"code\": \"es\",\r\n \"tw\": \"西班牙文\",\r\n \"de\": \"Spanisch\",\r\n \"jp\": \"スペイン語\",\r\n \"cn\": \"西班牙语\",\r\n \"en\": \"Spanish\"\r\n },\r\n {\r\n \"code\": \"es-419\",\r\n \"tw\": \"西班牙文(拉丁美洲)\",\r\n \"de\": \"Spanisch (Lateinamerika)\",\r\n \"jp\": \"スペイン語 (ラテンアメリカ)\",\r\n \"cn\": \"西班牙语(拉丁美洲)\",\r\n \"en\": \"Spanish (Latin America)\"\r\n },\r\n {\r\n \"code\": \"es-US\",\r\n \"tw\": \"西班牙文(美國)\",\r\n \"de\": \"Spanisch (Vereinigte Staaten)\",\r\n \"jp\": \"スペイン語 (アメリカ合衆国)\",\r\n \"cn\": \"西班牙语(美国)\",\r\n \"en\": \"Spanish (United States)\"\r\n },\r\n {\r\n \"code\": \"et\",\r\n \"tw\": \"愛沙尼亞文\",\r\n \"de\": \"Estnisch\",\r\n \"jp\": \"エストニア語\",\r\n \"cn\": \"爱沙尼亚语\",\r\n \"en\": \"Estonian\"\r\n },\r\n {\r\n \"code\": \"eu\",\r\n \"tw\": \"巴斯克文\",\r\n \"de\": \"Baskisch\",\r\n \"jp\": \"バスク語\",\r\n \"cn\": \"巴斯克语\",\r\n \"en\": \"Basque\"\r\n },\r\n {\r\n \"code\": \"fa\",\r\n \"tw\": \"波斯文\",\r\n \"de\": \"Persisch\",\r\n \"jp\": \"ペルシア語\",\r\n \"cn\": \"波斯语\",\r\n \"en\": \"Persian\"\r\n },\r\n {\r\n \"code\": \"fi\",\r\n \"tw\": \"芬蘭文\",\r\n \"de\": \"Finnisch\",\r\n \"jp\": \"フィンランド語\",\r\n \"cn\": \"芬兰语\",\r\n \"en\": \"Finnish\"\r\n },\r\n {\r\n \"code\": \"fil\",\r\n \"tw\": \"菲律賓文\",\r\n \"de\": \"Filipino\",\r\n \"jp\": \"フィリピノ語\",\r\n \"cn\": \"菲律宾语\",\r\n \"en\": \"Filipino\"\r\n },\r\n {\r\n \"code\": \"fr-CA\",\r\n \"tw\": \"法文(加拿大)\",\r\n \"de\": \"Französisch (Kanada)\",\r\n \"jp\": \"フランス語 (カナダ)\",\r\n \"cn\": \"法语(加拿大)\",\r\n \"en\": \"French (Canada)\"\r\n },\r\n {\r\n \"code\": \"fr\",\r\n \"tw\": \"法文\",\r\n \"de\": \"Französisch\",\r\n \"jp\": \"フランス語\",\r\n \"cn\": \"法语\",\r\n \"en\": \"French\"\r\n },\r\n {\r\n \"code\": \"gl\",\r\n \"tw\": \"加利西亞文\",\r\n \"de\": \"Galicisch\",\r\n \"jp\": \"ガリシア語\",\r\n \"cn\": \"加利西亚语\",\r\n \"en\": \"Galician\"\r\n },\r\n {\r\n \"code\": \"gu\",\r\n \"tw\": \"古吉拉特文\",\r\n \"de\": \"Gujarati\",\r\n \"jp\": \"グジャラート語\",\r\n \"cn\": \"古吉拉特语\",\r\n \"en\": \"Gujarati\"\r\n },\r\n {\r\n \"code\": \"hi\",\r\n \"tw\": \"印地文\",\r\n \"de\": \"Hindi\",\r\n \"jp\": \"ヒンディー語\",\r\n \"cn\": \"印地语\",\r\n \"en\": \"Hindi\"\r\n },\r\n {\r\n \"code\": \"hr\",\r\n \"tw\": \"克羅埃西亞文\",\r\n \"de\": \"Kroatisch\",\r\n \"jp\": \"クロアチア語\",\r\n \"cn\": \"克罗地亚语\",\r\n \"en\": \"Croatian\"\r\n },\r\n {\r\n \"code\": \"hu\",\r\n \"tw\": \"匈牙利文\",\r\n \"de\": \"Ungarisch\",\r\n \"jp\": \"ハンガリー語\",\r\n \"cn\": \"匈牙利语\",\r\n \"en\": \"Hungarian\"\r\n },\r\n {\r\n \"code\": \"hy\",\r\n \"tw\": \"亞美尼亞文\",\r\n \"de\": \"Armenisch\",\r\n \"jp\": \"アルメニア語\",\r\n \"cn\": \"亚美尼亚语\",\r\n \"en\": \"Armenian\"\r\n },\r\n {\r\n \"code\": \"id\",\r\n \"tw\": \"印尼文\",\r\n \"de\": \"Indonesisch\",\r\n \"jp\": \"インドネシア語\",\r\n \"cn\": \"印度尼西亚语\",\r\n \"en\": \"Indonesian\"\r\n },\r\n {\r\n \"code\": \"is\",\r\n \"tw\": \"冰島文\",\r\n \"de\": \"Isländisch\",\r\n \"jp\": \"アイスランド語\",\r\n \"cn\": \"冰岛语\",\r\n \"en\": \"Icelandic\"\r\n },\r\n {\r\n \"code\": \"it\",\r\n \"tw\": \"義大利文\",\r\n \"de\": \"Italienisch\",\r\n \"jp\": \"イタリア語\",\r\n \"cn\": \"意大利语\",\r\n \"en\": \"Italian\"\r\n },\r\n {\r\n \"code\": \"iw\",\r\n \"tw\": \"希伯來文\",\r\n \"de\": \"Hebräisch\",\r\n \"jp\": \"ヘブライ語\",\r\n \"cn\": \"希伯来语\",\r\n \"en\": \"Hebrew\"\r\n },\r\n {\r\n \"code\": \"ja\",\r\n \"tw\": \"日文\",\r\n \"de\": \"Japanisch\",\r\n \"jp\": \"日本語\",\r\n \"cn\": \"日语\",\r\n \"en\": \"Japanese\"\r\n },\r\n {\r\n \"code\": \"ka\",\r\n \"tw\": \"喬治亞文\",\r\n \"de\": \"Georgisch\",\r\n \"jp\": \"ジョージア語\",\r\n \"cn\": \"格鲁吉亚语\",\r\n \"en\": \"Georgian\"\r\n },\r\n {\r\n \"code\": \"kk\",\r\n \"tw\": \"哈薩克文\",\r\n \"de\": \"Kasachisch\",\r\n \"jp\": \"カザフ語\",\r\n \"cn\": \"哈萨克语\",\r\n \"en\": \"Kazakh\"\r\n },\r\n {\r\n \"code\": \"km\",\r\n \"tw\": \"高棉文\",\r\n \"de\": \"Khmer\",\r\n \"jp\": \"クメール語\",\r\n \"cn\": \"高棉语\",\r\n \"en\": \"Khmer\"\r\n },\r\n {\r\n \"code\": \"kn\",\r\n \"tw\": \"坎那達文\",\r\n \"de\": \"Kannada\",\r\n \"jp\": \"カンナダ語\",\r\n \"cn\": \"卡纳达语\",\r\n \"en\": \"Kannada\"\r\n },\r\n {\r\n \"code\": \"ko\",\r\n \"tw\": \"韓文\",\r\n \"de\": \"Koreanisch\",\r\n \"jp\": \"韓国語\",\r\n \"cn\": \"韩语\",\r\n \"en\": \"Korean\"\r\n },\r\n {\r\n \"code\": \"ky\",\r\n \"tw\": \"吉爾吉斯文\",\r\n \"de\": \"Kirgisisch\",\r\n \"jp\": \"キルギス語\",\r\n \"cn\": \"柯尔克孜语\",\r\n \"en\": \"Kyrgyz\"\r\n },\r\n {\r\n \"code\": \"lo\",\r\n \"tw\": \"寮文\",\r\n \"de\": \"Laotisch\",\r\n \"jp\": \"ラオ語\",\r\n \"cn\": \"老挝语\",\r\n \"en\": \"Lao\"\r\n },\r\n {\r\n \"code\": \"lt\",\r\n \"tw\": \"立陶宛文\",\r\n \"de\": \"Litauisch\",\r\n \"jp\": \"リトアニア語\",\r\n \"cn\": \"立陶宛语\",\r\n \"en\": \"Lithuanian\"\r\n },\r\n {\r\n \"code\": \"lv\",\r\n \"tw\": \"拉脫維亞文\",\r\n \"de\": \"Lettisch\",\r\n \"jp\": \"ラトビア語\",\r\n \"cn\": \"拉脱维亚语\",\r\n \"en\": \"Latvian\"\r\n },\r\n {\r\n \"code\": \"mk\",\r\n \"tw\": \"馬其頓文\",\r\n \"de\": \"Mazedonisch\",\r\n \"jp\": \"マケドニア語\",\r\n \"cn\": \"马其顿语\",\r\n \"en\": \"Macedonian\"\r\n },\r\n {\r\n \"code\": \"ml\",\r\n \"tw\": \"馬來亞拉姆文\",\r\n \"de\": \"Malayalam\",\r\n \"jp\": \"マラヤーラム語\",\r\n \"cn\": \"马拉雅拉姆语\",\r\n \"en\": \"Malayalam\"\r\n },\r\n {\r\n \"code\": \"mn\",\r\n \"tw\": \"蒙古文\",\r\n \"de\": \"Mongolisch\",\r\n \"jp\": \"モンゴル語\",\r\n \"cn\": \"蒙古语\",\r\n \"en\": \"Mongolian\"\r\n },\r\n {\r\n \"code\": \"mr\",\r\n \"tw\": \"馬拉地文\",\r\n \"de\": \"Marathi\",\r\n \"jp\": \"マラーティー語\",\r\n \"cn\": \"马拉地语\",\r\n \"en\": \"Marathi\"\r\n },\r\n {\r\n \"code\": \"ms\",\r\n \"tw\": \"馬來文\",\r\n \"de\": \"Malaiisch\",\r\n \"jp\": \"マレー語\",\r\n \"cn\": \"马来语\",\r\n \"en\": \"Malay\"\r\n },\r\n {\r\n \"code\": \"my\",\r\n \"tw\": \"緬甸文\",\r\n \"de\": \"Birmanisch\",\r\n \"jp\": \"ミャンマー語\",\r\n \"cn\": \"缅甸语\",\r\n \"en\": \"Burmese\"\r\n },\r\n {\r\n \"code\": \"no\",\r\n \"tw\": \"挪威文\",\r\n \"de\": \"Norwegisch\",\r\n \"jp\": \"ノルウェー語\",\r\n \"cn\": \"挪威语\",\r\n \"en\": \"Norwegian\"\r\n },\r\n {\r\n \"code\": \"ne\",\r\n \"tw\": \"尼泊爾文\",\r\n \"de\": \"Nepalesisch\",\r\n \"jp\": \"ネパール語\",\r\n \"cn\": \"尼泊尔语\",\r\n \"en\": \"Nepali\"\r\n },\r\n {\r\n \"code\": \"nl\",\r\n \"tw\": \"荷蘭文\",\r\n \"de\": \"Niederländisch\",\r\n \"jp\": \"オランダ語\",\r\n \"cn\": \"荷兰语\",\r\n \"en\": \"Dutch\"\r\n },\r\n {\r\n \"code\": \"or\",\r\n \"tw\": \"歐迪亞文\",\r\n \"de\": \"Oriya\",\r\n \"jp\": \"オディア語\",\r\n \"cn\": \"奥里亚语\",\r\n \"en\": \"Odia\"\r\n },\r\n {\r\n \"code\": \"pa\",\r\n \"tw\": \"旁遮普文\",\r\n \"de\": \"Punjabi\",\r\n \"jp\": \"パンジャブ語\",\r\n \"cn\": \"旁遮普语\",\r\n \"en\": \"Punjabi\"\r\n },\r\n {\r\n \"code\": \"pl\",\r\n \"tw\": \"波蘭文\",\r\n \"de\": \"Polnisch\",\r\n \"jp\": \"ポーランド語\",\r\n \"cn\": \"波兰语\",\r\n \"en\": \"Polish\"\r\n },\r\n {\r\n \"code\": \"pt\",\r\n \"tw\": \"葡萄牙文\",\r\n \"de\": \"Portugiesisch\",\r\n \"jp\": \"ポルトガル語\",\r\n \"cn\": \"葡萄牙语\",\r\n \"en\": \"Portuguese\"\r\n },\r\n {\r\n \"code\": \"pt-PT\",\r\n \"tw\": \"葡萄牙文(葡萄牙)\",\r\n \"de\": \"Portugiesisch (Portugal)\",\r\n \"jp\": \"ポルトガル語 (ポルトガル)\",\r\n \"cn\": \"葡萄牙语(葡萄牙)\",\r\n \"en\": \"Portuguese (Portugal)\"\r\n },\r\n {\r\n \"code\": \"ro\",\r\n \"tw\": \"羅馬尼亞文\",\r\n \"de\": \"Rumänisch\",\r\n \"jp\": \"ルーマニア語\",\r\n \"cn\": \"罗马尼亚语\",\r\n \"en\": \"Romanian\"\r\n },\r\n {\r\n \"code\": \"ru\",\r\n \"tw\": \"俄文\",\r\n \"de\": \"Russisch\",\r\n \"jp\": \"ロシア語\",\r\n \"cn\": \"俄语\",\r\n \"en\": \"Russian\"\r\n },\r\n {\r\n \"code\": \"si\",\r\n \"tw\": \"僧伽羅文\",\r\n \"de\": \"Singhalesisch\",\r\n \"jp\": \"シンハラ語\",\r\n \"cn\": \"僧伽罗语\",\r\n \"en\": \"Sinhala\"\r\n },\r\n {\r\n \"code\": \"sk\",\r\n \"tw\": \"斯洛伐克文\",\r\n \"de\": \"Slowakisch\",\r\n \"jp\": \"スロバキア語\",\r\n \"cn\": \"斯洛伐克语\",\r\n \"en\": \"Slovak\"\r\n },\r\n {\r\n \"code\": \"sl\",\r\n \"tw\": \"斯洛維尼亞文\",\r\n \"de\": \"Slowenisch\",\r\n \"jp\": \"スロベニア語\",\r\n \"cn\": \"斯洛文尼亚语\",\r\n \"en\": \"Slovenian\"\r\n },\r\n {\r\n \"code\": \"sq\",\r\n \"tw\": \"阿爾巴尼亞文\",\r\n \"de\": \"Albanisch\",\r\n \"jp\": \"アルバニア語\",\r\n \"cn\": \"阿尔巴尼亚语\",\r\n \"en\": \"Albanian\"\r\n },\r\n {\r\n \"code\": \"sr-Latn\",\r\n \"tw\": \"塞爾維亞文(拉丁文)\",\r\n \"de\": \"Serbisch (Lateinisch)\",\r\n \"jp\": \"セルビア語 (ラテン文字)\",\r\n \"cn\": \"塞尔维亚语(拉丁文)\",\r\n \"en\": \"Serbian (Latin)\"\r\n },\r\n {\r\n \"code\": \"sr\",\r\n \"tw\": \"塞爾維亞文\",\r\n \"de\": \"Serbisch\",\r\n \"jp\": \"セルビア語\",\r\n \"cn\": \"塞尔维亚语\",\r\n \"en\": \"Serbian\"\r\n },\r\n {\r\n \"code\": \"sv\",\r\n \"tw\": \"瑞典文\",\r\n \"de\": \"Schwedisch\",\r\n \"jp\": \"スウェーデン語\",\r\n \"cn\": \"瑞典语\",\r\n \"en\": \"Swedish\"\r\n },\r\n {\r\n \"code\": \"sw\",\r\n \"tw\": \"史瓦希里文\",\r\n \"de\": \"Suaheli\",\r\n \"jp\": \"スワヒリ語\",\r\n \"cn\": \"斯瓦希里语\",\r\n \"en\": \"Swahili\"\r\n },\r\n {\r\n \"code\": \"ta\",\r\n \"tw\": \"坦米爾文\",\r\n \"de\": \"Tamil\",\r\n \"jp\": \"タミル語\",\r\n \"cn\": \"泰米尔语\",\r\n \"en\": \"Tamil\"\r\n },\r\n {\r\n \"code\": \"te\",\r\n \"tw\": \"泰盧固文\",\r\n \"de\": \"Telugu\",\r\n \"jp\": \"テルグ語\",\r\n \"cn\": \"泰卢固语\",\r\n \"en\": \"Telugu\"\r\n },\r\n {\r\n \"code\": \"th\",\r\n \"tw\": \"泰文\",\r\n \"de\": \"Thailändisch\",\r\n \"jp\": \"タイ語\",\r\n \"cn\": \"泰语\",\r\n \"en\": \"Thai\"\r\n },\r\n {\r\n \"code\": \"tr\",\r\n \"tw\": \"土耳其文\",\r\n \"de\": \"Türkisch\",\r\n \"jp\": \"トルコ語\",\r\n \"cn\": \"土耳其语\",\r\n \"en\": \"Turkish\"\r\n },\r\n {\r\n \"code\": \"uk\",\r\n \"tw\": \"烏克蘭文\",\r\n \"de\": \"Ukrainisch\",\r\n \"jp\": \"ウクライナ語\",\r\n \"cn\": \"乌克兰语\",\r\n \"en\": \"Ukrainian\"\r\n },\r\n {\r\n \"code\": \"ur\",\r\n \"tw\": \"烏都文\",\r\n \"de\": \"Urdu\",\r\n \"jp\": \"ウルドゥー語\",\r\n \"cn\": \"乌尔都语\",\r\n \"en\": \"Urdu\"\r\n },\r\n {\r\n \"code\": \"uz\",\r\n \"tw\": \"烏茲別克文\",\r\n \"de\": \"Usbekisch\",\r\n \"jp\": \"ウズベク語\",\r\n \"cn\": \"乌兹别克语\",\r\n \"en\": \"Uzbek\"\r\n },\r\n {\r\n \"code\": \"vi\",\r\n \"tw\": \"越南文\",\r\n \"de\": \"Vietnamesisch\",\r\n \"jp\": \"ベトナム語\",\r\n \"cn\": \"越南语\",\r\n \"en\": \"Vietnamese\"\r\n },\r\n {\r\n \"code\": \"zh\",\r\n \"tw\": \"中文\",\r\n \"de\": \"Chinesisch\",\r\n \"jp\": \"中国語\",\r\n \"cn\": \"中文\",\r\n \"en\": \"Chinese\"\r\n },\r\n {\r\n \"code\": \"zh-CN\",\r\n \"tw\": \"中文(中國)\",\r\n \"de\": \"Chinesisch (China)\",\r\n \"jp\": \"中国語 (中国)\",\r\n \"cn\": \"中文(中国)\",\r\n \"en\": \"Chinese (China)\"\r\n },\r\n {\r\n \"code\": \"zh-HK\",\r\n \"tw\": \"中文(香港)\",\r\n \"de\": \"Chinesisch (Hongkong)\",\r\n \"jp\": \"中国語 (香港)\",\r\n \"cn\": \"中文(香港)\",\r\n \"en\": \"Chinese (Hong Kong)\"\r\n },\r\n {\r\n \"code\": \"zh-TW\",\r\n \"tw\": \"中文(台灣)\",\r\n \"de\": \"Chinesisch (Taiwan)\",\r\n \"jp\": \"中国語 (台湾)\",\r\n \"cn\": \"中文(台湾)\",\r\n \"en\": \"Chinese (Taiwan)\"\r\n },\r\n {\r\n \"code\": \"zh-Hant\",\r\n \"tw\": \"中文(繁體)\",\r\n \"de\": \"Traditionelles Chinesisch\",\r\n \"jp\": \"中国語 (繁体字)\",\r\n \"cn\": \"中文(繁体)\",\r\n \"en\": \"Chinese (Traditional)\"\r\n },\r\n {\r\n \"code\": \"zh-Hans\",\r\n \"tw\": \"中文(簡體)\",\r\n \"de\": \"Vereinfachtes Chinesisch\",\r\n \"jp\": \"中国語 (簡体字)\",\r\n \"cn\": \"中文(简体)\",\r\n \"en\": \"Chinese (Simplified)\"\r\n },\r\n {\r\n \"code\": \"zu\",\r\n \"tw\": \"祖魯文\",\r\n \"de\": \"Zulu\",\r\n \"jp\": \"ズールー語\",\r\n \"cn\": \"祖鲁语\",\r\n \"en\": \"Zulu\"\r\n }\r\n]\r\nexport function languageCodeToName (languageCodeList, lang = \"en\") {\r\n if (!languageCodeList) {\r\n return \"\";\r\n }\r\n return languageCodeList.map(code => languages.find(language => code === language.code)?.[lang]).filter(name => name != undefined).join(\", \");\r\n}","import \"core-js/modules/esnext.iterator.constructor.js\";\nimport \"core-js/modules/esnext.iterator.filter.js\";\nimport \"core-js/modules/esnext.iterator.map.js\";\nimport \"core-js/modules/esnext.iterator.reduce.js\";\nimport \"core-js/modules/esnext.iterator.some.js\";\nimport { computed, onMounted, ref, watch, nextTick, inject, toRefs } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\nimport { languageService, UtilityService, gaService } from '@/utils';\nimport { languageIdEnum } from \"@/enums/plugins/i18n\";\nimport { ApiQueryOrderByEnum, ApiQueryTargetTypeEnum, SpeakerTypeEnum, videoTypeEnum } from \"@/enums/api/index\";\nimport { getVideoDetail, postAddHistory } from \"@/api/index\";\nimport Breadcrumb from \"@/components/modules/breadcrumb.vue\";\nimport { useHead } from '@vueuse/head';\nimport YTPlayer from 'yt-player';\nimport { languageCodeToName } from '../plugins/language-code-name';\nexport default {\n name: \"videoDetail\",\n props: {\n category: {\n type: Array,\n required: false\n },\n autoplay: {\n type: Boolean,\n default: false\n }\n },\n setup(props, {\n emit\n }) {\n const {\n category,\n autoplay\n } = toRefs(props);\n const router = useRouter();\n const route = useRoute();\n let player;\n const mappingRouterName = ref({\n home: \"homeExplorer\",\n webinar: \"\",\n masterClass: \"\"\n });\n const levelGroup = [\"lEVEL_FOUNDATIONALl\", \"lEVEL_MEDIUM\", \"lEVEL_ADVANCED\"];\n const sortType = {\n latest: ApiQueryOrderByEnum.LATEST,\n oldest: ApiQueryOrderByEnum.OLDEST,\n relevance: ApiQueryOrderByEnum.RELEVANCE\n };\n const currentType = ref(\"\");\n const videoData = ref(null);\n const {\n getLanguage,\n getLocaleMessege,\n getLanguagePath\n } = languageService;\n const currentLang = computed(() => getLanguage());\n let langId = computed(() => languageIdEnum[currentLang.value.toUpperCase()]);\n const loading = ref(true);\n const isApiError = ref(false);\n let routeNameExcludeLang;\n const breadcrumbData = ref(null);\n const {\n recordProductDetailImpression,\n recordProductClick,\n recordProductImpression\n } = gaService;\n const {\n getDescriptionAndTimecode,\n textToHtml,\n updateBookmarkStatusProcess,\n videoType,\n preprocessData\n } = UtilityService;\n const resourceListStatus = ref({\n showOnlineManual: false,\n showDownloadFiles: false,\n showTutorialArticles: false\n });\n const apiDataType = computed(() => {\n return currentType.value === videoType.skillPath.type ? videoTypeEnum.TUTORIAL : videoType[currentType.value].value;\n });\n const store = inject('store');\n useHead({\n title: computed(() => videoData.value ? videoData.value.title + ' - ' + getLocaleMessege(\"COMMON\").REALLUSION_COURSES : null)\n });\n\n //API\n const getApiParams = () => {\n if (currentType.value === videoType.tutorial.type) {\n const getLevel = () => {\n const level = route.query.level.split(\",\").filter(item => item != \"\");\n if (level.length == 0 || level.length == levelGroup.length) {\n return \"\";\n } else {\n return level.reduce((data, level) => {\n let index = levelGroup.findIndex(groupItem => groupItem == level);\n if (index != -1) {\n data.push(index + 1);\n }\n return data;\n }, []).join(\",\");\n }\n };\n const hasSearch = route.query.sort && sortType[route.query.sort.toLowerCase()] != undefined ? true : false;\n return {\n \"urlName\": decodeURIComponent(route.query.v),\n \"category\": routeNameExcludeLang.filter(item => item != \"\").map(item => decodeURIComponent(item)),\n \"lang\": langId.value,\n \"targetType\": ApiQueryTargetTypeEnum.ONLY_VIDEO,\n \"level\": hasSearch ? route.query.level ? getLevel() : \"\" : null,\n //Library跳到detail,選的level ,all 帶 \"\",沒有用到帶null\n \"productVersion\": hasSearch ? route.query.version ? route.query.version : \"\" : null,\n //Library跳到detail,選的version,all 帶 \"\",沒有用到帶null\n \"keyword\": hasSearch ? route.query.alltags ? decodeURIComponent(route.query.alltags) : \"\" : null,\n //Library跳到detail,選的keyword,沒有用到帶null\n \"orderBy\": hasSearch ? sortType[route.query.sort.toLowerCase()] : null,\n // Latest(0)、Oldest(1)、Relevance(2), 從home連過來帶null\n \"productFamily\": hasSearch ? route.query.product ? decodeURIComponent(route.query.product) : \"\" : null //all 帶 \"\" ,沒有用到帶null\n };\n } else if (currentType.value === videoType.master.type) {\n return {\n \"urlName\": decodeURIComponent(route.query.v),\n \"category\": routeNameExcludeLang.filter(item => item != \"\").map(item => decodeURIComponent(item)),\n \"lang\": langId.value,\n \"targetType\": ApiQueryTargetTypeEnum.ONLY_VIDEO\n };\n } else if (currentType.value === videoType.webinar.type) {\n return {\n \"urlName\": decodeURIComponent(route.query.v),\n \"searchType\": 0\n };\n } else if (currentType.value === videoType.skillPath.type) {\n return {\n \"urlName\": decodeURIComponent(route.query.v),\n \"category\": category.value\n };\n } else {\n return null;\n }\n };\n const getVideoData = async () => {\n routeNameExcludeLang = route.path.toLocaleLowerCase().replace(new RegExp(currentLang.value + \"/\"), \"\").split(\"/\").slice(1);\n currentType.value = videoType.tutorial.type;\n for (const key in videoType) {\n if (routeNameExcludeLang[0] == videoType[key].category) {\n currentType.value = videoType[key].type;\n }\n }\n loading.value = true;\n getVideoDetail(videoType[currentType.value].apiPath, getApiParams()).then(data => {\n switch (currentType.value) {\n case videoType.tutorial.type:\n case videoType.master.type:\n case videoType.skillPath.type:\n videoData.value = preprocessData(data);\n break;\n case videoType.webinar.type:\n videoData.value = preprocessData(data[0]);\n videoData.value.locationBar = [{\n \"name\": \"Webinar\",\n \"urlName\": \"webinar\"\n }, {\n \"name\": \"Archive\",\n \"urlName\": \"archive\"\n }, {\n \"name\": videoData.value.title,\n \"urlName\": videoData.value.urlName\n }];\n videoData.value.category = ['webinar', \"archive\"];\n videoData.value.date = videoData.value.date.replace(/\\//g, \"-\");\n break;\n }\n if (videoData.value) {\n checkUrlPath();\n const {\n timecode,\n description\n } = getDescriptionAndTimecode(videoData.value.description);\n videoData.value.description = textToHtml(description);\n videoData.value.timecode = timecode;\n breadcrumbData.value = processBreadcrumbData(getLanguagePath(), videoData.value.locationBar);\n nextTick(() => {\n initVideoPlayer(getYoutubeVideoID(videoData.value.link));\n });\n if (!autoplay.value) {\n window.scrollTo({\n top: 0,\n behavior: \"instant\"\n });\n }\n recordProductDetailImpression(videoData.value, videoType[currentType.value].category + \"-detail\");\n if (store.member.states.loginInfo?.data?.login) {\n postAddHistory({\n \"id\": videoData.value.id,\n \"dataType\": apiDataType.value\n }).then(data => {}).catch(err => {\n console.log(err);\n });\n }\n } else {\n isApiError.value = true;\n }\n loading.value = false;\n }, res => {\n loading.value = false;\n isApiError.value = true;\n videoData.value = null;\n }).catch(error => {\n isApiError.value = true;\n loading.value = false;\n videoData.value = null;\n console.log(error);\n });\n };\n const initVideoPlayer = videoID => {\n player = new YTPlayer(\"#videoPlayer\", {\n related: false //show related videos from the same channel\n });\n player.load(videoID);\n if (autoplay.value) {\n player.on('cued', () => {\n player.play();\n });\n }\n player.on('ended', () => {\n emit('videoEnded', decodeURIComponent(route.query.v));\n });\n };\n onMounted(async () => {\n if (route.query.v) {\n await getVideoData();\n }\n });\n watch([() => route.query, () => route.params], ([query, params]) => {\n if (query.v) {\n getVideoData();\n }\n });\n const getYoutubeVideoID = link => {\n var objExp = new RegExp(/^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})/);\n return link.match(objExp) ? link.match(objExp)[1] : \"\";\n };\n const getVersion = function (type, data) {\n if (!type && (!data.productVersion.length || !data.productName)) {\n return \"\";\n }\n if (type == videoType.tutorial.type || type == videoType.master.type || type == videoType.skillPath.type) {\n return getLocaleMessege(\"COMMON\").VERSION + \": \" + UtilityService.groupVersion(data.productVersion).map(item => {\n return item.productFamily + ' ' + item.versions.join('/');\n }).join(\", \");\n } else if (type == videoType.webinar.type) {\n return getLocaleMessege(\"COMMON\").VERSION + \": \" + data.productName;\n } else {\n return \"\";\n }\n };\n const getPrice = function (price) {\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2\n });\n return price != 0 ? formatter.format(price) : getLocaleMessege(\"VIDEO_DETAIL\").FREE;\n };\n const getOutline = function (outline) {\n return outline.reduce((string, item) => {\n return string + `
  • ${item}
  • `;\n }, \"\";\n };\n const getVideoTime = function (videoLength) {\n if (videoLength <= 0) {\n return \"\";\n }\n let hours = parseInt(videoLength / 3600);\n let minutes = parseInt(videoLength % 3600 / 60);\n let seconds = videoLength % 60;\n let time = [hours, minutes, seconds].reduce((all, item) => {\n if (all.length) {\n all.push(item < 10 ? \"0\" + item : item);\n } else if (item > 0) {\n all.push(item);\n }\n return all;\n }, []);\n if (time.length < 2) {\n time.unshift(0);\n }\n return time.join(\":\");\n };\n const bookmarkChange = function (newBookmarkStatus, id, isRelevance) {\n updateBookmarkStatusProcess(id, newBookmarkStatus, apiDataType.value).then(() => {\n if (isRelevance) {\n const foundIndex = videoData.value.relevance.findIndex(element => element.id == id);\n videoData.value.relevance[foundIndex].isBookmarked = newBookmarkStatus;\n } else {\n videoData.value.isBookmarked = newBookmarkStatus;\n }\n }).catch(error => {\n console.log(error);\n });\n };\n const clickImage = function (item, index) {\n router.push({\n path: \"/\" + (currentLang.value != \"en\" ? currentLang.value + \"/\" : \"\") + item.category.join(\"/\"),\n query: Object.assign({}, route.query, {\n v: item.urlName\n })\n });\n recordProductClick(item, videoType[currentType.value].category + \"-relevance\", index);\n };\n const checkUrlPath = () => {\n if (currentType.value === videoType.tutorial.type || currentType.value === videoType.master.type) {\n const isMatchPath = [...videoData.value.alsoDisplay, videoData.value.category].some(category => route.path.includes(category.join(\"/\")));\n if (!videoData.value.category || !isMatchPath) {\n // router.push(\"/\");\n }\n } else if (currentType.value === videoType.webinar.type) {\n if (!route.path.includes(\"/webinar/archive\")) {\n router.push(\"/\");\n }\n }\n };\n const changeVideoTime = time => {\n const videoTime = time.split(\":\").reverse().reduce((total, time, index) => {\n total += parseInt(time) * 60 ** index;\n return total;\n }, 0);\n player.seek(videoTime);\n player.play();\n $('html,body').animate({\n scrollTop: $(\".video-detail-container\").offset().top - 60\n }, 500);\n };\n const processBreadcrumbData = (path, locationBar) => {\n const data = locationBar.map(({\n name,\n urlName\n }) => {\n path += urlName + \"/\";\n return {\n name,\n path\n };\n });\n if (currentType.value === videoType.tutorial.type) {\n data.shift();\n }\n return data;\n };\n const handleThumbnailError = e => {\n const element = e.srcElement;\n element.src = require('@/assets/images/Speaker_Default_Thumbanil.jpg');\n element.onerror = null;\n };\n return {\n route,\n mappingRouterName,\n currentType,\n videoData,\n loading,\n getVersion,\n getPrice,\n getOutline,\n getVideoTime,\n bookmarkChange,\n clickImage,\n changeVideoTime,\n breadcrumbData,\n isApiError,\n recordProductImpression,\n videoType,\n currentLang,\n languageCodeToName,\n resourceListStatus,\n preprocessData,\n textToHtml,\n SpeakerTypeEnum,\n handleThumbnailError\n };\n },\n components: {\n Breadcrumb\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./video-detail.vue?vue&type=template&id=eefa3b0c&scoped=true\"\nimport script from \"./video-detail.vue?vue&type=script&lang=js\"\nexport * from \"./video-detail.vue?vue&type=script&lang=js\"\n\nimport \"./video-detail.vue?vue&type=style&index=0&id=eefa3b0c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-eefa3b0c\"]])\n\nexport default __exports__","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"171\":\"webinar\",\"462\":\"skill-path\",\"618\":\"home-explorer\",\"678\":\"master-class\",\"833\":\"online-manual\",\"920\":\"library\",\"947\":\"bookmark\",\"962\":\"home\"}[chunkId] || chunkId) + \".\" + {\"164\":\"19128e10\",\"171\":\"8bed75b9\",\"327\":\"974a8a5a\",\"408\":\"d9202c6c\",\"457\":\"2e8725c3\",\"462\":\"3c998b37\",\"618\":\"1368e431\",\"678\":\"03a0269d\",\"713\":\"f834d03e\",\"833\":\"1a4f3f10\",\"920\":\"69bd6af5\",\"947\":\"88747668\",\"962\":\"7186d715\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + ({\"171\":\"webinar\",\"462\":\"skill-path\",\"618\":\"home-explorer\",\"678\":\"master-class\",\"833\":\"online-manual\",\"920\":\"library\",\"947\":\"bookmark\",\"962\":\"home\"}[chunkId] || chunkId) + \".\" + {\"164\":\"5630a783\",\"171\":\"82279fc3\",\"462\":\"546e26de\",\"618\":\"9d32c127\",\"678\":\"f4eee1f9\",\"833\":\"c5dce025\",\"920\":\"132e8fcf\",\"947\":\"0c40434e\",\"962\":\"e3ebebe6\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"learning-center:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"164\":1,\"171\":1,\"462\":1,\"618\":1,\"678\":1,\"833\":1,\"920\":1,\"947\":1,\"962\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunklearning_center\"] = self[\"webpackChunklearning_center\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(8999); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["CancelToken","axios","interceptors","request","use","config","error","console","log","Promise","reject","response","status","data","apiStatus","ApiReturnCodeEnum","OPERATE_SUCCESS","resolve","UtilityService","parseAndDecode","result","NOT_AUTH","store","member","mutations","setIsNotAuth","RESPONSE_INTERCEPT","text","isCancel","Error","instance","method","url","addition","cancel","baseURL","window","rlServerURL","API","withCredentials","headers","cancelToken","c","get","post","getloginInfo","httpService","postLogout","getBannerV3","params","postQuery","urlName","productFamily","level","productVersion","keyword","orderBy","ApiQueryOrderByEnum","BACKEND_SORT","searchType","ApiSearchTypeEnum","GROUP_AND_LINK","targetType","ApiQueryTargetTypeEnum","ALL","getAutoCompleteData","getProductFamily","getVideoDetail","path","postWebinar","postWebinarDetail","postBookmarkQuery","postBookmarkUpdateStatus","getInstructors","postAddHistory","postHistoryQuery","postClearHistory","postSkillPathQuery","NONE","DB_ERROR","OPERATE_FAIL","PARAM_ERROR","ID_NO_DATA_FOUND","EXPIRE","REPEAT","PARSE_ERROR","IO_ERROR","UNHANDLED","TOKEN_VERIFY_FAIL","FIND_SAME_LEVEL","FIND_LOWER_LEVEL","LATEST","OLDEST","RELEVANCE","ApiWebinarSearchTypeEnum","UPCOMING","ARCHIVE","videoTypeEnum","TUTORIAL","MASTER_CLASS","WEBINAR","SKILL_PATH","ApiBookmarkOrderByEnum","ONLY_VIDEO","ApiBannerCategoryIdEnum","TEXT_BANNER","CAMPAIGN","SpeakerTypeEnum","MAIN","GUEST","ApiSkillPathOrderByEnum","ApiSkillPathMediaMenuEnum","viewModeEnum","ICON","DETAILS","itemTypeEnum","GROUP","LINK","VIDEO","languageEnum","EN","TW","CN","JP","DE","languageIdEnum","countryCodeEnum","_hoisted_1","class","_hoisted_2","id","xmlns","x","y","viewBox","style","_hoisted_3","_hoisted_4","render","_ctx","_cache","$props","$setup","$data","$options","width","height","transform","d","name","__exports__","active","isShow","onClick","args","goTop","setup","$","animate","scrollTop","handleScroll","_","debounce","value","scrollY","addEventListener","_component_el_button","_component_el_row","justify","align","default","$t","href","loginUrl","target","route","getRLloginUrl","fullPath","key","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_component_el_menu_item","_component_el_menu","sidebar","states","isSidebarClose","$event","switchSidebarClose","state","activeLink","collapse","index","closeSidebar","gaTrackButtonClick","routerPush","currentLangPath","getLanguagePath","router","sidebarCloseWidth","sidebarOpenWidth","getDefaultActiveLink","query","v","routePath","replace","split","toLowerCase","element","push","switchWindowScrollbar","addClass","removeClass","switchUserClose","to","bindResize","css","originalWidth","checkWindowWidthToSwitchSidebar","isUserClose","setTimeout","checkWindowWidthToCloseSidebarTimer","ResizeEvent","clearTimeout","removeEventListener","_hoisted_10","_hoisted_11","_component_router_link","_component_el_submenu","_directive_intersectionObserver","clickSwitchButton","campaignBanner","Blank","Url","gaTrackEvent","getEventLabel","EventLabel","src","BannerUrl","ImageFileName","undefined","loginInfo","login","ref","mode","hasTouchScreen","title","getTargetLanguagePath","avatarUrl","defaultAvatarUrl","logout","signupUrl","type","useTopNavBanner","useRoute","getLanguageId","languageService","bannerData","reactive","isShowBanner","computed","homePageName","productPageName","includes","length","textBanner","bannerEventLabel","eventLabelPrefixMapping","currentRoute","renderTextBanner","rlTextBanner","show","messageHtml","BannerStyle","Title","insertAfter","bannerClassName","BannerClassName","eventName","displayFreq","closeButton","fetchBannerData","async","Object","assign","res","CategoryItemIds","Lang","forEach","banner","CategoryItemId","BannerList","watch","val","remove","g","getRLsignupUrl","elMenu","multiLangSwitcher","memberMenu","loggedInMemberMenu","submenuSettings","refs","ListenEventTypes","currentStatus","closeSubMenu","e","className","trigger","el","close","eventType","handleSubMenuTouch","stopPropagation","$el","immediate","navigator","maxTouchPoints","msMaxTouchPoints","mQ","matchMedia","media","matches","UA","userAgent","test","_component_TopNav","_component_Sidebar","_component_Login","_component_VideoDetail","_component_router_view","_component_GoTop","_component_SvgIcon","_directive_fixed_top_nav","isNotAuth","isShowDetail","components","TopNav","Sidebar","SvgIcon","VideoDetail","GoTop","Login","getLocaleMessege","getCountryCode","getLanguage","videoType","meta","metaTable","META","ICLONE","CHARACTER_CREATOR","CARTOON_ANIMATOR","ACTORCORE","SMART_GALLERY","entries","find","regex","RegExp","currentLang","loadLoginInfo","TITLE","content","DESCRIPTION","property","OG_TITLE","OG_DESCRIPTION","checkDetailDisplayByRoute","routeNameExcludeLang","toLocaleLowerCase","slice","skillPath","category","initRlTopnavBanner","rlTopNavBanner","webTypeRegExp","www","wwwIC","wwwCC","wwwCTA","productDefault","apDefault","contentStore","contentStoreIC","contentStoreCC","contentStoreCTA","apStore","apStore3D","apStore2D","reallusiontv","hub","smartgallery","marketplace","marketplaceIC","marketplaceCC","marketplaceCTA","developer","storeWishList","mocap","course","init","Home","HomeExplorer","Library","MasterClass","Bookmark","History","OnlineManual","SkillPath","SkillPathDetail","WebinarUpcoming","WebinarArchive","WebinarSpeaker","WebinarWrapper","createMultiLangRoute","copyRouter","cloneDeep","children","child","redirect","routerBeforeEach","from","next","setLanguage","lang","nextInfo","hash","values","routes","component","createRouter","history","createWebHistory","process","map","scrollBehavior","savedPosition","top","beforeEach","directive","directives","mounted","binding","hasBrowserIntersection","IntersectionObserverEntry","prototype","executeCallback","observer","IntersectionObserver","entry","isIntersecting","unobserve","observe","$copy","clone","position","parent","prepend","ResizeObserver","innerWidth","setCss","transition","left","dataset","scrollHeight","outerHeight","lastScroll","hasClass","elHeight","parseInt","currentScroll","pageYOffset","otherHeight","install","Vue","directiveName","this","app","createApp","App","head","createHead","i18n","isReady","then","mount","en","UPCOMING_TESTIMONIAL_DATA","author","SPEAKER_INTRODUCTION_DATA","img","intros","de","jp","tw","cn","messages","COMMON","TUTOTIAL","VERSION","PRICE","DATE","LEVEL","lEVEL_FOUNDATIONALl","lEVEL_MEDIUM","lEVEL_ADVANCED","SORT_LATEST","SORT_OLDEST","SORT_RELEVANCE","HOSTED","LIVE_DEMO_OUTLINE","UPDATE_BOOKMARK_STATUS_SUCCESS","UPDATE_CANCEL_BOOKMARK_STATUS_SUCCESS","API_ERROR_TITLE","API_ERROR_DESCRIPTION","NEW","NO_SEARCH_RESULTS_FOUND","REALLUSION_COURSES","PAGE_BOOKMARK","BOOKMARK","NO_VIDEO","FILTER_ALL","TOP_NAV","LOG_IN","SIGN_UP","LOG_OUT","HISTORY","HOME","NAME","SEARCH_TITLE","SEARCH_DESC","SEARCH_PLACEHOLDER","GROUP_TITLE","URL","BANNER_TITLE","TITLE_SUPPORT","MAGAZINE","MAGAZINE_LINK","MAGAZINE_DESC","FORUM","FORUM_LINK","FORUM_DESC","DEVELOPER_CENTER","DEVELOPER_CENTER_LINK","DEVELOPER_CENTER_DESC","FAQ","FAQ_LINK","FAQ_DESC","CUSTOMER_SERVICE","CUSTOMER_SERVICE_LINK","CUSTOMER_SERVICE_DESC","FEEDBACK_TRACKER","FEEDBACK_TRACKER_LINK","FEEDBACK_TRACKER_DESC","HOME_EXPLORER","VIDEO_DETAIL","TITLE_DESCRIPTION","TITLE_RELEVANCE","SPEAKERS","FREE","RESOURCE","ONLINE_MANUAL","TUTORIAL_ARTICLES","DOWNLOAD_FILES","INSTRUCTOR","LIBRARY","FILTER_PRODUCT","FILTER_VERSION","FILTER_LEVEL","CLEAN_FILTER","RESULTS","FILTER_TITLE","FILTER","SORTING","SORTING_BY","DESCRIPTION_TITLE","DESCRIPTION_CONTENT","NOTE","CHECK_YOUR_LOCAL_TIME","SEE_MORE","GET_IT_NOW","REGISTER_NOW","NEXT_WEBINAR_IS_COMING_SOON","TESTIMONIAL","SPEAKER_INTRODUCTION","CLEAN_ALL_HISTORY","FILTER_TYPE","REMOVE_FROM_WATCH_HISTORY","REMOVE_ALL_HISTORY","REMOVE_VIDEO_HISTORY","REMOVE_HISTORY_ERROR","PAGE_MASTER_CLASS","EXPLORE_3D_WORLD","EXPLORE_2D_WORLD","EXPLORE_2D_3D_CONVERSION","TAB_3D_ANIMATION","TAB_2D_ANIMATION","TAB_OTHERS","OUTLINE_MANUAL","MAIN_PRODUCT","ICLONE_PLUG_IN","CHARACTER_PLUG_IN","CARTOON_ANIMATOR_PLUG_IN","LEARN","SIDEBAR","VIEW_MODE","CARDS","LOGIN","PLEASE_LOG_IN","LENGTH","SOFTWARE","SKILL_REQUIREMENT","VIDEO_OUTLINE","VIDEO_LENGTH","HOUR","MINUTE","SECOND","VIEW_MORE","VIEW_LESS","datetimeFormats","short","year","month","day","long","weekday","hour","minute","hour12","numberFormats","currency","notation","useGrouping","currencyDisplay","minimumFractionDigits","maximumFractionDigits","mergeData","objectData","mergedData","keys","createI18n","locale","fallbackLocale","setLoginInfo","bool","productOptions","levelGroup","typeOptions","labelKey","getters","getProductVersion","filterProduct","option","product","versions","version","label","actions","fetchProductOptions","sortProduct","getShowVersion","err","list","currentSkillPathDetail","findItem","items","filter","item","count","updateSkillPathList","skillPathQuery","apiOptions","getSkillPathList","currentDetail","catch","searchFilter","memberService","location","reload","MainWeb","encodeURIComponent","btoa","gaService","eventAction","eventLabel","isEventNonInteraction","dataLayer","gaTrackBannerClick","recordProductImpression","listName","brand","join","variant","price","dataObj","recordProductClick","recordProductDetailImpression","global","getLocaleMessage","toUpperCase","pathname","search","getDescriptionAndTimecode","youtubeDescription","removeTimeCodeDescription","timecode","exec","time","description","textToHtml","isTransformLinkToHtml","match","_match","p1","p2","JSON","parse","LZString","preprocessData","origialItem","stringify","productFamilyNotShowVersion","reduce","allVersions","productVersionItem","some","splittedTitle","options","minimumVersionToShow","requireVersion","sort","a","b","updateBookmarkStatusProcess","isBookmarked","dataType","_data","_ElNotification","message","tutorial","display","apiPath","master","webinar","getVideoType","groupVersion","group","info","productData","order","weightA","weightB","formatSeconds","s","formatTime","Date","toISOString","substr","shift","_component_el_breadcrumb_item","_component_el_breadcrumb","leftShadowWidth","onMousedown","startDrag","onMousemove","doDrag","onMouseleave","stopDrag","breadcrumbData","onmousedown","rightShadowWidth","props","Array","leftOffsetPercentage","rightOffsetPercentage","viewport","dragging","startX","viewportWidth","contentWidth","offset","event","clientX","throttle","scrollLeft","setShadow","toFixed","onScoll","document","body","querySelector","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_component_el_skeleton_item","_component_Breadcrumb","_component_el_skeleton","animated","loading","template","currentType","$slots","videoData","bookmarkChange","link","separator","getVersion","i","speakers","instructor","date","$d","hasOwnProperty","getPrice","videoLanguage","languageCodeToName","captionLanguages","outline","innerHTML","getOutline","changeVideoTime","onlineManual","downloadFiles","tutorialArticles","resourceListStatus","showOnlineManual","showTutorialArticles","showDownloadFiles","thumbnail","onerror","handleThumbnailError","relevance","clickImage","alt","getVideoTime","videoLength","isApiError","languages","languageCodeList","code","language","required","autoplay","Boolean","emit","player","mappingRouterName","home","masterClass","sortType","latest","oldest","langId","apiDataType","getApiParams","getLevel","findIndex","groupItem","hasSearch","decodeURIComponent","alltags","getVideoData","locationBar","checkUrlPath","processBreadcrumbData","initVideoPlayer","getYoutubeVideoID","scrollTo","behavior","videoID","related","load","on","play","objExp","productName","formatter","Intl","NumberFormat","format","string","hours","minutes","seconds","all","unshift","newBookmarkStatus","isRelevance","foundIndex","alsoDisplay","videoTime","reverse","total","seek","srcElement","Breadcrumb","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","definition","o","defineProperty","enumerable","f","chunkId","promises","u","miniCssF","globalThis","Function","obj","prop","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","onload","doneFns","parentNode","removeChild","bind","appendChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}