{"version":3,"file":"js/819.5d77b116.js","mappings":"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","sources":["webpack://cityu-tiger-wall/./src/components/footer.vue","webpack://cityu-tiger-wall/src/components/footer.vue","webpack://cityu-tiger-wall/./src/components/footer.vue?47b7","webpack://cityu-tiger-wall/./src/components/footer.vue?6cbd","webpack://cityu-tiger-wall/./src/components/main.vue","webpack://cityu-tiger-wall/src/components/main.vue","webpack://cityu-tiger-wall/./src/components/main.vue?12c8","webpack://cityu-tiger-wall/./src/components/main.vue?1791","webpack://cityu-tiger-wall/./src/components/site-map.vue","webpack://cityu-tiger-wall/src/components/site-map.vue","webpack://cityu-tiger-wall/./src/components/site-map.vue?c3dc","webpack://cityu-tiger-wall/./src/components/site-map.vue?f198","webpack://cityu-tiger-wall/./src/pages/front-page/index.vue","webpack://cityu-tiger-wall/./src/utils/index.js","webpack://cityu-tiger-wall/src/pages/front-page/index.vue","webpack://cityu-tiger-wall/./src/pages/front-page/index.vue?ecb7","webpack://cityu-tiger-wall/./src/pages/front-page/index.vue?b489","webpack://cityu-tiger-wall/./src/service/common-service.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('footer',{staticClass:\"cityu-footer footer-color-default\"},[_c('div',{staticClass:\"cityu-footer-inner container\"},[_c('div',{staticClass:\"cityu-footer-bottom d-flex flex-row justify-content-between\"},[_c('div',{staticClass:\"cityu-footer-info align-self-center\"},[_c('div',{staticClass:\"cityu-footer-links\"},[_c('a',{attrs:{\"href\":\"https://www.cityu.edu.hk/web/privacy\",\"rel\":\"noopener\",\"target\":\"_blank\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\" �覉覉溘覉� \"),_c('a',{attrs:{\"href\":\"https://www.cityu.edu.hk/web/copyright\",\"rel\":\"noopener\",\"target\":\"_blank\"}},[_vm._v(\"Copyright\")]),_vm._v(\" �覉覉溘覉� \"),_c('a',{attrs:{\"href\":\"https://www.cityu.edu.hk/web/disclaimer\",\"rel\":\"noopener\",\"target\":\"_blank\"}},[_vm._v(\"Disclaimer\")]),_vm._v(\" �覉覉溘覉� \"),_c('a',{attrs:{\"href\":\"https://www.cityu.edu.hk/web/accessibility\",\"rel\":\"noopener\",\"target\":\"_blank\"}},[_vm._v(\"Accessibility\")]),_vm._v(\" �覉覉溘覉� \"),_c('a',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm._onAction('contact-us')}}},[_vm._v(\"Contact Us\")])]),_c('div',{staticClass:\"cityu-footer-copyright\"},[_vm._v(\" 穢 City University of Hong Kong. All Rights Reserved. \")])]),_vm._m(0)])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"cityu-footer-logo align-self-end\"},[_c('a',{attrs:{\"href\":\"https://www.cityu.edu.hk\",\"rel\":\"noopener\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"loading\":\"lazy\",\"src\":\"//template.cityu.edu.hk/template/logo/CityU/CityU_Vertical_Logo_Reverse.svg\",\"alt\":\"City University of Hong Kong\"}})])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n    <footer class=\"cityu-footer footer-color-default\">\r\n        <div class=\"cityu-footer-inner container\">\r\n\r\n            <!-- Bottom -->\r\n            <div class=\"cityu-footer-bottom d-flex flex-row justify-content-between\">\r\n\r\n                <!-- Info -->\r\n                <div class=\"cityu-footer-info align-self-center\">\r\n\r\n                    <!-- Links -->\r\n                    <div class=\"cityu-footer-links\">\r\n                        <a href=\"https://www.cityu.edu.hk/web/privacy\" rel=\"noopener\" target=\"_blank\">Privacy Policy</a>\r\n                        &nbsp;&nbsp;&middot;&nbsp;&nbsp;\r\n                        <a href=\"https://www.cityu.edu.hk/web/copyright\" rel=\"noopener\" target=\"_blank\">Copyright</a>\r\n                        &nbsp;&nbsp;&middot;&nbsp;&nbsp;\r\n                        <a href=\"https://www.cityu.edu.hk/web/disclaimer\" rel=\"noopener\" target=\"_blank\">Disclaimer</a>\r\n                        &nbsp;&nbsp;&middot;&nbsp;&nbsp;\r\n                        <a href=\"https://www.cityu.edu.hk/web/accessibility\" rel=\"noopener\"\r\n                            target=\"_blank\">Accessibility</a>\r\n                        &nbsp;&nbsp;&middot;&nbsp;&nbsp;\r\n                        <a style=\"cursor: pointer\" @click=\"_onAction('contact-us')\">Contact Us</a>\r\n                    </div>\r\n\r\n                    <!-- Copyright -->\r\n                    <div class=\"cityu-footer-copyright\">\r\n                        &copy; City University of Hong Kong. All Rights Reserved.\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <!-- Logo -->\r\n                <div class=\"cityu-footer-logo align-self-end\">\r\n                    <a href=\"https://www.cityu.edu.hk\" rel=\"noopener\" target=\"_blank\">\r\n                        <img loading=\"lazy\"\r\n                            src=\"//template.cityu.edu.hk/template/logo/CityU/CityU_Vertical_Logo_Reverse.svg\"\r\n                            alt=\"City University of Hong Kong\" />\r\n                    </a>\r\n                </div>\r\n\r\n            </div>\r\n\r\n        </div>\r\n    </footer>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n    methods: {\r\n        _onAction(url) {\r\n            // this.$router.push(url)\r\n            const { href } = this.$router.resolve(url)\r\n            window.open(href, '_blank')\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=0f454b41&\"\nimport script from \"./footer.vue?vue&type=script&lang=js&\"\nexport * from \"./footer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"cityu-main\"},[_c('div',{staticClass:\"cityu-main-inner container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"cityu-content content-color-default\"},[_c('h1',{attrs:{\"data-aos\":\"fade-left\",\"data-aos-duration\":\"1500\"}},[_vm._v(\"About Tiger Wall\")]),_c('p',[_vm._v(\" The Tiger Wall is a cheering celebration and a virtual �乪all of Fame�� for elite students, also known as tiger students, at City University of Hong Kong. With continuous support and expert guidance from the world-class faculty, high-achieving and gifted students have been enriching their knowledge, cultivating their talent in their areas of expertise, and making the best of their university life. \")]),_c('p',[_vm._v(\" The Tiger Wall is an exclusive platform for tiger students to build their professional profiles and showcase their unique stories. The platform offers an opportunity for tiger students to introduce themselves and share their interests, short-term goals, and research areas with the public. High-calibre students can find similar yet different peers and exchange fruitful research ideas, start-up projects, and even future career plans through the Tiger Wall. \")])])])])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n    <main class=\"cityu-main\">\r\n        <div class=\"cityu-main-inner container\">\r\n            <div class=\"row\">\r\n                <!-- Content -->\r\n                <div class=\"col-md-12\">\r\n                    <div class=\"cityu-content content-color-default\">\r\n                        <!-- <h1 data-aos=\"fade-left\" data-aos-duration=\"1500\">HK TECH Tiger Students</h1> -->\r\n                        <h1 data-aos=\"fade-left\" data-aos-duration=\"1500\">About Tiger Wall</h1>\r\n                        \r\n                        <p>\r\n                            The Tiger Wall is a cheering celebration and a virtual �乪all of Fame�� for elite students, also known as tiger students, at City University of Hong Kong. With continuous support and expert guidance from the world-class faculty, high-achieving and gifted students have been enriching their knowledge, cultivating their talent in their areas of expertise, and making the best of their university life.\r\n                        </p>\r\n                        <p>\r\n                            The Tiger Wall is an exclusive platform for tiger students to build their professional profiles and showcase their unique stories. The platform offers an opportunity for tiger students to introduce themselves and share their interests, short-term goals, and research areas with the public. High-calibre students can find similar yet different peers and exchange fruitful research ideas, start-up projects, and even future career plans through the Tiger Wall.\r\n                        </p>                        \r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </main>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\r\n}\r\n</script>\r\n\r\n<style>\r\n\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./main.vue?vue&type=template&id=3b90f1ad&\"\nimport script from \"./main.vue?vue&type=script&lang=js&\"\nexport * from \"./main.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('nav',{staticClass:\"cityu-sitemap sitemap-color-default d-none d-lg-block\"},[_c('div',{staticClass:\"cityu-sitemap-inner container\"},[_c('div',{staticClass:\"cityu-sitemap-list\"},[_c('div',{staticClass:\"list-title\"},[_vm._v(\"Pages:\")]),_c('ul',{staticClass:\"d-flex flex-row flex-wrap justify-content-start\"})])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n    <nav class=\"cityu-sitemap sitemap-color-default d-none d-lg-block\">\r\n        <div class=\"cityu-sitemap-inner container\">\r\n\r\n            <!-- Sitemap list -->\r\n            <div class=\"cityu-sitemap-list\">\r\n                <div class=\"list-title\">Pages:</div>\r\n                <ul class=\"d-flex flex-row flex-wrap justify-content-start\">\r\n\r\n                    <!-- Auto generated when <ul> is empty -->\r\n\r\n                </ul>\r\n            </div>\r\n\r\n        </div>\r\n    </nav>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n    mounted() {\r\n        this.$nextTick(() => {\r\n            this.handleInitPagesList()\r\n        })\r\n    },\r\n    methods: {\r\n        _toAction(e, url) {\r\n            const { href } = this.$router.resolve(url)\r\n            window.open(href, '_blank')\r\n        },\r\n        handleInitPagesList() {\r\n            if ($('.cityu-sitemap-list').length) {\r\n                if (!$('.cityu-sitemap-list > ul > li').length) {\r\n                    $('.cityu-menu-list > ul > li')\r\n                        .clone()\r\n                        .appendTo($('.cityu-sitemap-list > ul'));\r\n                    $('.cityu-sitemap-list .cityu-menu-home').remove();\r\n                    $('.cityu-sitemap-list .dropdown').removeClass('dropdown');\r\n                    $('.cityu-sitemap-list .dropdown-toggle').removeClass('dropdown-toggle');\r\n                    $('.cityu-sitemap-list .dropdown-menu').removeClass('dropdown-menu');\r\n                    $('.cityu-sitemap-list .dropdown-item').removeClass('dropdown-item');\r\n                    $('.cityu-sitemap-list .nav-item').removeClass('nav-item');\r\n                    $('.cityu-sitemap-list .nav-link').removeClass('nav-link');\r\n\r\n                    var n = $('.cityu-sitemap-list > ul > li').length;\r\n                    switch (n) {\r\n                        case 6:\r\n                            $('.cityu-sitemap-list').addClass('sitemap-col-6');\r\n                            break;\r\n                        case 7:\r\n                            $('.cityu-sitemap-list').addClass('sitemap-col-7');\r\n                            break;\r\n                        case 8:\r\n                            $('.cityu-sitemap-list').addClass('sitemap-col-8');\r\n                            break;\r\n                        default:\r\n                    }\r\n\r\n                    console.debug('  > create sitemap: ' + n + ' columns');\r\n                } else {\r\n                    console.debug('  > skip sitemap (has content)');\r\n                }\r\n            } else {\r\n                console.debug('  > skip sitemap (no cityu-sitemap-list)');\r\n            }\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=scss>\r\n    .cityu-sitemap-list > .d-flex > li {\r\n        flex-basis: auto;\r\n    }\r\n    .cityu-sitemap-list {\r\n        display: flex;\r\n\r\n        .list-title {\r\n            height: 100%;\r\n            margin-right: 10px;\r\n            padding-top: 9px;\r\n            font-size: 1.125rem;\r\n        }\r\n        .inner-menu {\r\n            .inner-menu-item {\r\n                height: auto;\r\n                font-size: 0.875rem;\r\n                line-height: 1.1rem;\r\n                margin-top: 0.9rem;\r\n                color: #fff;\r\n\r\n                &:hover {\r\n                    text-decoration: underline;\r\n                    background: none;\r\n                }\r\n                a {\r\n                    color: #fff;\r\n                }\r\n            }\r\n        }\r\n    }\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./site-map.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./site-map.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./site-map.vue?vue&type=template&id=16240802&\"\nimport script from \"./site-map.vue?vue&type=script&lang=js&\"\nexport * from \"./site-map.vue?vue&type=script&lang=js&\"\nimport style0 from \"./site-map.vue?vue&type=style&index=0&id=16240802&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"front-page\"},[_c('input',{staticClass:\"_ani-control-stoped\",attrs:{\"type\":\"checkbox\",\"id\":\"animation-control\"}}),_vm._m(0),_c('div',{staticClass:\"_photo-wall _wall-01\"},[_c('div',{staticClass:\"_photos _layout-01\"},_vm._l(((_vm.displayNum / 6)),function(item,index){return _c('div',{key:index,class:'_p-section _swap-pos _time-' + (index + 1)},_vm._l((_vm.displayStudentsList.slice(index * 6, (index + 1) * 6)),function(ite,idx){return _c('div',{key:idx,staticClass:\"_p-item\"},[[_c('a',{style:((ite.showTigerProfile ? 'cursor: pointer' : 'cursor: default') + `;background-image:url(${ite.image})`),attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){ite.showTigerProfile ? _vm._toAction(ite.tigerUrlSegment) : null}}}),(index % 6 === idx)?_c('a',{class:_vm.showAdditionalImgBg(idx),staticStyle:{\"cursor\":\"default\"},style:(`background-image:url(${_vm.additionalImg[idx]}); background-size: contain;`),attrs:{\"href\":\"javascript:void(0)\"}}):_vm._e()]],2)}),0)}),0)]),_c('Main'),_c('Footer')],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"_ani-control-label\",attrs:{\"for\":\"animation-control\"}},[_c('i',{staticClass:\"far fa-play-circle _play _icon\"}),_c('i',{staticClass:\"far fa-pause-circle _stop _icon\"})])\n}]\n\nexport { render, staticRenderFns }","export function shuffle(arr) {\r\n    let n = arr.length, random;\r\n    while ( 0 !=n ) {\r\n        random = (Math.random() * n--) >>> 0; // ��删泵�噡�𢰧蝘颱�滩�鞟�㛖泵��睲�见�𡝗㟲 \r\n        //��𤥁���㺿�蹱�� random = Math.floor(Math.random() * n--)\r\n        [arr[n], arr[random]] = [arr[random], arr[n]] // ES6��閫��韏见�澆�䂿緵��㗛�譍�埝揢\r\n    }\r\n    return arr;\r\n}","<template>\r\n    <div class=\"front-page\">\r\n        <input type=\"checkbox\" id=\"animation-control\" class=\"_ani-control-stoped\" />\r\n        <label class=\"_ani-control-label\" for=\"animation-control\">\r\n            <i class=\"far fa-play-circle _play _icon\"></i>\r\n            <i class=\"far fa-pause-circle _stop _icon\"></i>\r\n        </label>\r\n\r\n        <div class=\"_photo-wall _wall-01\">\r\n            <!-- <div class=\"_photos _layout-01\">\r\n                <div class=\"_p-section _swap-pos _time-1\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-1.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail-2')\" style=\"background-image:url(images/profile/p-102.png)\" class=\"p-tiger\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-2.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-3.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-5.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-6.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-2\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-7.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-8.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-19.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-9.jpg)\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-11.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-12.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-103.png)\" class=\"p-cityu\"></a>\r\n                    </div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-3\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-13.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-14.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-15.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-16.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-6.jpg)\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-17.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-18.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-4\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-19.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-20.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-21.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-13.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-102.png)\" class=\"p-tiger\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-23.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-24.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-5\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-25.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-26.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-3.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-19.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-101.png)\" class=\"p-tiger\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-5.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-6\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-13.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-24.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-15.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-101.png)\" class=\"p-tiger\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-19.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-7\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-7.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-100.png)\" class=\"p-cityu\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-11.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-10.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-9.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-8.jpg)\"></a></div>\r\n                </div>\r\n                <div class=\"_p-section _swap-pos _time-8\">\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-1.jpg)\"></a></div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-12.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-2.jpg)\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\">\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-22.jpg)\"></a>\r\n                        <a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-100.png)\" class=\"p-cityu\"></a>\r\n                    </div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-4.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-5.jpg)\"></a></div>\r\n                    <div class=\"_p-item\"><a href=\"javascript:void(0)\" @click=\"_toAction($event, 'sDetail')\" style=\"background-image:url(images/profile/p-6.jpg)\"></a></div>\r\n                </div>\r\n            </div> -->\r\n\r\n            <div class=\"_photos _layout-01\">\r\n                <div :class=\"'_p-section _swap-pos _time-' + (index + 1)\" v-for=\"(item, index) in (displayNum / 6)\"\r\n                    :key=\"index\">\r\n                    <div class=\"_p-item\" v-for=\"(ite, idx) in displayStudentsList.slice(index * 6, (index + 1) * 6)\"\r\n                        :key=\"idx\">\r\n                        <template>\r\n                            <a href=\"javascript:void(0)\"\r\n                                @click=\"ite.showTigerProfile ? _toAction(ite.tigerUrlSegment) : null\"\r\n                                :style=\"(ite.showTigerProfile ? 'cursor: pointer' : 'cursor: default') + `;background-image:url(${ite.image})`\"\r\n                                ></a>\r\n                            <a style=\"cursor: default\" href=\"javascript:void(0)\"\r\n                                :style=\"`background-image:url(${additionalImg[idx]}); background-size: contain;`\" :class=\"showAdditionalImgBg(idx)\"\r\n                                v-if=\"index % 6 === idx\"></a>\r\n                        </template>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <!-- Main -->\r\n        <Main></Main>\r\n        <!-- Sitemap -->\r\n        <!-- <Site-Map></Site-Map> -->\r\n        <!-- Footer -->\r\n        <Footer></Footer>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport Header from '@/components/header'\r\nimport Menu from '@/components/menu'\r\nimport Main from '@/components/main'\r\nimport SiteMap from '@/components/site-map'\r\nimport Footer from '@/components/footer'\r\nimport { photosRequest, photosBatchRequest } from '@/service/common-service'\r\nimport { shuffle } from '@/utils'\r\nexport default {\r\n    components: {\r\n        Header,\r\n        Menu,\r\n        Main,\r\n        SiteMap,\r\n        Footer\r\n    },\r\n    data() {\r\n        return {\r\n            displayStudentsList: [],\r\n            restStudentsList: [],\r\n            totalStudentsList: [],\r\n            displayNum: 48, // displaying photos number\r\n            // displayingPhotosList: [], // 48 displaying photos\r\n            timer: null,\r\n            additionalImg: [\r\n                '//template.cityu.edu.hk/template/logo/CityU/CityU_Mini_Logo.svg',\r\n                'images/profile/p-101.png',\r\n                'images/profile/p-102.png',\r\n                '//template.cityu.edu.hk/template/logo/CityU/CityU_Mini_Logo.svg',\r\n                'images/profile/p-101.png',\r\n                'images/profile/p-102.png'\r\n                // 'images/profile/p-100.png',\r\n                // 'images/profile/p-100.png',\r\n                // 'images/profile/p-100.png',\r\n                // 'images/profile/p-100.png',\r\n                // 'images/profile/p-100.png',\r\n                // 'images/profile/p-100.png',\r\n            ]\r\n        }\r\n    },\r\n    computed: {\r\n        // showPicBg() {\r\n        //     return (index, idx) => {\r\n        //         if (this.displayingPhotosList[index * 6 + idx] && typeof (this.displayingPhotosList[index * 6 + idx]) === 'string') {\r\n        //             if (this.displayingPhotosList[index * 6 + idx].includes('p-101') || this.displayingPhotosList[index * 6 + idx].includes('p-102')) {\r\n        //                 return 'p-tiger'\r\n        //             } else {\r\n        //                 return 'p-cityu'\r\n        //             }\r\n        //         } else {\r\n        //             return ''\r\n        //         }\r\n        //     }\r\n        // },\r\n        showAdditionalImgBg() {\r\n            return idx => {\r\n                // return (idx === 1 || idx === 2) ? 'p-tiger' : 'p-cityu'\r\n                return 'p-cityu';\r\n            }\r\n        }\r\n    },\r\n    created () {\r\n            this.$emit('header', true);\r\n    },\r\n    mounted() {\r\n        this.$nextTick(() => {\r\n            this.getPhotoList()\r\n        })\r\n    },\r\n    methods: {\r\n        _toAction(shortUrl) {\r\n            if (!shortUrl) {\r\n                return\r\n            }\r\n            const { href } = this.$router.resolve({ name: 'student-detail', params: { shortUrl: shortUrl } })\r\n            window.open(href, '_blank')\r\n            // this.$router.push({ name: 'student-detail', params: {shortUrl: shortUrl}});\r\n        },\r\n        async getPhotoList() {\r\n            const reqData = {\r\n                criteria: {},\r\n                langCode: 'string',\r\n                userId: 0\r\n            }\r\n            const { returnCode: code, data } = await this.$post('/home/list', reqData)\r\n\r\n            if (code === 0 && data && data.length > 0) {\r\n                // this.displayNum = data.length > 24 ? 48 : 24\r\n                // this.displayNum = 24\r\n                let shuffledData = shuffle(data)\r\n                this.displayStudentsList = shuffledData.slice(0, this.displayNum)\r\n                this.restStudentsList = shuffledData.slice(this.displayNum)\r\n                if (this.displayStudentsList.length < this.displayNum) {\r\n                    const batchIds = this.displayStudentsList.map(item => item.favouritePhotoDocBatchId);\r\n                    this.addAdditionalImg(batchIds)\r\n                    this.batchPhotosRequest(batchIds)\r\n                } else {\r\n                    const batchIds = this.displayStudentsList.map(item => item.favouritePhotoDocBatchId)\r\n                    this.batchPhotosRequest(batchIds)\r\n                }\r\n            } else if (data.length === 0) {\r\n                this.setAnimation()\r\n            }\r\n            // else {\r\n            //     window.alert('DATA NOT FOUND')\r\n            // }\r\n        },\r\n        addAdditionalImg(oriBatchIds) { // �㦛����滩雲 displayNum �𧒄�鍂暺䁅恕�㦛銵亙��\r\n            const insufficientNum = 6 - oriBatchIds.length % 6\r\n            if (insufficientNum > 0) {\r\n                for (let i = insufficientNum - 1; i >= 0; i--) {\r\n                    let sIdx = oriBatchIds.length - 6 * i - 1\r\n                    // ��牐�銝芸����㺭�旿銵亙���遬蝷箇�摮衣�罸鵭摨吒r\n                    this.displayStudentsList.splice(sIdx, 0, { image: this.additionalImg[2 - i % 3] })\r\n                }\r\n            }\r\n        },\r\n        group(array, subNum) {\r\n            let index = 0;\r\n            let newArray = [];\r\n            while(index < array.length) {\r\n                newArray.push(array.slice(index, index += subNum));\r\n            }\r\n            return newArray;\r\n        },\r\n        async batchPhotosRequest(batchIds) {\r\n            if (batchIds.length === 0) {\r\n                return\r\n            }\r\n            let count = 0\r\n            let groupBatchIds = this.group(batchIds, 12);\r\n            for (let i = 0; i < groupBatchIds.length; i++) {\r\n                let payload = groupBatchIds[i].map(m => { return {docBatchId: m }; });\r\n                photosBatchRequest({docNames: payload}).then(res => {\r\n                    for (let j = 0; j < res.data.length; j++) {\r\n                        let idx = this.displayStudentsList.findIndex(f => f.favouritePhotoDocBatchId === res.data[j].docBatchId);\r\n                        this.displayStudentsList[idx].image = `data:image/${res.data[j].docExtension};base64,` + res.data[j].docImageBase64\r\n                        this.$set(this.displayStudentsList, idx, this.displayStudentsList[idx])\r\n                        count++\r\n                        if (count === batchIds.length) {\r\n                            this.setImgChange()\r\n                            _replayAction()\r\n                            this.setAnimation()\r\n                        }\r\n                    }\r\n                })\r\n            }\r\n        },\r\n        setAnimation() {\r\n            setTimeout(() => {\r\n                cityu.addon.initCityUAOS();\r\n                cityu.addon.initAOS();\r\n\r\n                this.getRestStudentList()\r\n            }, 20)\r\n        },\r\n        setImgChange() {\r\n            this.$nextTick(() => {\r\n                let _pItem = $('._p-item a:nth-child(2)');\r\n                let _rand = 0; // randam a delay 15s - 30s\r\n                $(_pItem).each(function (index) {\r\n                    // _rand = Math.floor((Math.random() * 2)) + 0;\r\n                    _rand = Math.floor((Math.random() * 15)) + 10;\r\n                    $(this).css('animation-delay', _rand + 's');\r\n                });\r\n            })\r\n        },\r\n        getRestStudentList() {\r\n            if (this.restStudentsList.length <= 0) {\r\n                return\r\n            }\r\n\r\n            let restIds = this.restStudentsList.map(item => item.favouritePhotoDocBatchId);\r\n            let count = 0;\r\n            let groupBatchIds = this.group(restIds, 12);\r\n            for (let i = 0; i < groupBatchIds.length; i++) {\r\n                let payload = groupBatchIds[i].map(m => { return {docBatchId: m }; });\r\n                photosBatchRequest({docNames: payload}).then(res => {\r\n                    for (let j = 0; j < res.data.length; j++) {\r\n                        let idx = this.restStudentsList.findIndex(f => f.favouritePhotoDocBatchId === res.data[j].docBatchId);\r\n                        this.restStudentsList[idx].image = `data:image/${res.data[j].docExtension};base64,` + res.data[j].docImageBase64\r\n                        this.$set(this.restStudentsList, idx, this.restStudentsList[idx])\r\n                        count++\r\n                        if (count === restIds.length) {\r\n                            let totalStudentsList = [...this.displayStudentsList, ...this.restStudentsList];\r\n                            this.totalStudentsList = totalStudentsList;\r\n                            let refreshTime = 30;          // seconds\r\n                            this.changeDisplayingPhotosList(totalStudentsList, refreshTime);\r\n                        }\r\n                    }\r\n                })\r\n            }\r\n        },\r\n        changeDisplayingPhotosList(stdList, duration = 30) { // list - photos list, duration - seconds\r\n            let iterator = 1;\r\n            this.timer = setInterval(() => {\r\n                this.computedShowingData(stdList, iterator, (stdData, isDone, newStdList) => {\r\n                    setTimeout(() => {\r\n                        this.displayStudentsList = stdData;\r\n                        \r\n                        _replayAction()\r\n                        if (isDone) {\r\n                            iterator = 1;\r\n                            stdList = newStdList;\r\n                        } else {\r\n                            iterator++;\r\n                        }\r\n                    })\r\n                })\r\n            }, duration * 1000);\r\n        },\r\n        computedShowingData(stdList, iterator, fn) { // computed which 48 data shall be displayed\r\n            let completeTimes = Math.floor(stdList.length / this.displayNum),\r\n                originListLen = stdList.length,\r\n                dn = this.displayNum\r\n\r\n            if (iterator < completeTimes) {\r\n                fn(stdList.slice(dn * iterator, dn * (iterator + 1)), false);\r\n            } else if (iterator === completeTimes) {\r\n                const restStdList = stdList.slice(dn * iterator);\r\n\r\n                stdList = [...restStdList, ...stdList.slice(0, originListLen - restStdList.length)];\r\n\r\n                fn(stdList.slice(0, dn), true, stdList);\r\n            }\r\n        }\r\n    },\r\n    destroyed() {\r\n        // console.log('destroyed');\r\n        clearInterval(this.timer);\r\n    }\r\n}\r\n</script>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2cf6b11d&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import { request } from './index'\r\n\r\n/**\r\n * �鸌��讛窈瘙��㦛��䪤r\n * opts嚗䨵r\n *      batchIds - ��霂瑟����㦛��������栄d\r\n *      data - �膄�㦛��𨮹d憭𣇉�����㕑窈瘙��𦻖�藁���������㺭撖寡情\r\n *      url - 霂瑟��曎�𦻖\r\n * \r\n * */\r\nexport const batchPhotosRequest = async opts => {\r\n    const {\r\n        batchIds,\r\n        data = {\r\n            functionKey: \"string\",\r\n            docName: \"string\",\r\n            docDisplayName: \"string\",\r\n            docExtension: \"string\",\r\n            docPath: \"string\",\r\n            langCode: \"string\",\r\n            userId: 0\r\n        },\r\n        url = '/photos/download'\r\n    } = opts\r\n\r\n    if (!batchIds || batchIds.length === 0 || !url) {\r\n        return []\r\n    }\r\n\r\n    const batchPhotos = []\r\n\r\n    for(let i = 0; i < batchIds.length; i++) {\r\n        if (batchIds[i]) {\r\n            let reqOpts = {\r\n                ...data,\r\n                docBatchId: batchIds[i]\r\n            }\r\n            let res = await request({\r\n                method: 'POST',\r\n                url,\r\n                data: reqOpts,\r\n                responseType: 'blob'\r\n            })\r\n            if (res) {\r\n                const urlObj = window.URL.createObjectURL(new Blob([res], {type: 'image/jpg'}))\r\n                batchPhotos.push(urlObj)\r\n            } else {\r\n                batchPhotos.push('')\r\n            }\r\n        } else {\r\n            batchPhotos.push('')\r\n        }\r\n    }\r\n\r\n    return batchPhotos\r\n}\r\n\r\nexport const photosRequest = async opts => {\r\n    const {\r\n        batchId,\r\n        data = {},\r\n        url = '/photos/download'\r\n    } = opts\r\n\r\n    let reqOpts = {\r\n        ...data,\r\n        docBatchId: batchId\r\n    }\r\n    let res = await request({\r\n        method: 'POST',\r\n        url,\r\n        data: reqOpts,\r\n        responseType: 'blob'\r\n    })\r\n\r\n    return res ? window.URL.createObjectURL(new Blob([res], {type: 'image/jpg'})) : null\r\n}\r\n\r\nexport const photosBatchRequest = async opts => {\r\n    const {\r\n        docNames = {},\r\n        url = '/photos/download-multiple'\r\n    } = opts\r\n\r\n    let res = await request({\r\n        method: 'POST',\r\n        url,\r\n        data: { docNames: docNames },\r\n        // responseType: 'blob'\r\n    })\r\n\r\n    // return res ? window.URL.createObjectURL(new Blob([res], {type: 'image/jpg'})) : null\r\n    // return res ? `data:image/${res.data[0].docExtension};base64,` + res.data[0].docImageBase64 : null\r\n    return res;\r\n}\r\n\r\nexport const downloadPhotoByInfo = async opts => {\r\n    const {\r\n        docPath,\r\n        docName,\r\n        url = '/photos/downloadByInfo'\r\n    } = opts\r\n    \r\n    let reqOpts = {\r\n        docPath,\r\n        docName\r\n    }\r\n    \r\n    let res = await request({\r\n        method: 'POST',\r\n        url,\r\n        data: reqOpts,\r\n        responseType: 'blob'\r\n    })\r\n    \r\n    let result = null;\r\n    if (res) {\r\n        result = window.URL.createObjectURL(new Blob([res], {type: 'image/jpg'}))\r\n    }       \r\n\r\n    return result\r\n}\r\n\r\nexport const downloadPhotoByBatchId = async opts => {\r\n    const {\r\n        docBatchId,\r\n        url = '/photos/download'\r\n    } = opts\r\n    \r\n    if (!docBatchId) {\r\n        return null;\r\n    }\r\n\r\n    let reqOpts = {\r\n        docBatchId\r\n    }\r\n    \r\n    let res = await request({\r\n        method: 'POST',\r\n        url,\r\n        data: reqOpts,\r\n        responseType: 'blob'\r\n    })\r\n    \r\n    let result = null;\r\n    if (res) {\r\n        result = window.URL.createObjectURL(new Blob([res], {type: 'image/jpg'}))\r\n    }       \r\n\r\n    return result\r\n}"],"names":["render","_vm","this","_c","_self","staticClass","attrs","_v","staticStyle","on","$event","_onAction","_m","staticRenderFns","methods","href","window","component","mounted","_toAction","handleInitPagesList","console","$","clone","appendTo","_l","displayNum","item","index","key","class","displayStudentsList","slice","ite","idx","style","showTigerProfile","image","tigerUrlSegment","showAdditionalImgBg","additionalImg","_e","shuffle","arr","random","n","length","Math","components","Header","Menu","Main","SiteMap","Footer","data","restStudentsList","totalStudentsList","timer","computed","created","name","params","shortUrl","criteria","langCode","userId","returnCode","addAdditionalImg","group","newArray","docBatchId","photosBatchRequest","docNames","count","_replayAction","setAnimation","setTimeout","cityu","setImgChange","_rand","getRestStudentList","changeDisplayingPhotosList","iterator","stdList","duration","computedShowingData","originListLen","dn","fn","destroyed","clearInterval","async","url","opts","res","request","method","downloadPhotoByInfo","docPath","docName","reqOpts","responseType","result","URL","createObjectURL","Blob","type","downloadPhotoByBatchId"],"sourceRoot":""}