{"version":3,"sources":["webpack:///./src/appConfig.ts","webpack:///./src/module/dom.ts","webpack:///./Web/Shared/layout.ts","webpack:///./Web/Shared/Component/SocialMedia/social-media.ts","webpack:///./src/module/facebook-page-and-messager.ts","webpack:///./Web/Programme/Cambridge/Certificate/certificate.ts"],"names":["appConfig","JSON","parse","document","getElementById","value","slideDown","element","style","overflow","display","animate","height","offsetHeight","duration","easing","addEventListener","removeProperty","slideToggle","window","getComputedStyle","slideUp","setupLayout","querySelector","gtag","send_to","googleAnalyticsId","event_category","googleAnalytics4Id","fbq","facebookAppId","fbAsyncInit","FB","init","appId","autoLogAppEvents","xfbml","version","Event","subscribe","script","createElement","type","src","crossOrigin","getElementsByTagName","appendChild","setupFacebookPageAndMessager","location","host","startsWith","querySelectorAll","forEach","elem","innerWidth","classList","contains","nextElementSibling","el","event_label","branch"],"mappings":"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","file":"9.f9bbb48d651bb87c35cb.bundle.js","sourcesContent":["export const appConfig: {\r\n facebookAppId: string;\r\n facebookPixelId: string;\r\n googleAnalyticsId: string;\r\n googleAnalytics4Id: string;\r\n sessionRecordId: string;\r\n googleAdsId: string;\r\n googleMapApiKey: string;\r\n googleMapStyles: any[];\r\n addThisId: string;\r\n} = {\r\n ...JSON.parse((document.getElementById('inputHiddenForAppConfig') as HTMLInputElement).value)\r\n}\r\n\r\n","export function scrollToTop() {\r\n const c = document.documentElement.scrollTop || document.body.scrollTop;\r\n if (c > 0) {\r\n window.requestAnimationFrame(scrollToTop);\r\n window.scrollTo(0, c - c / 8);\r\n }\r\n}\r\n\r\nexport function slideUp(element: HTMLElement) {\r\n element.style.overflow = 'hidden';\r\n\r\n const elemAnimation = element.animate([\r\n { height: `${element.offsetHeight}px` },\r\n { height: 0 }\r\n ], {\r\n duration: 500,\r\n easing: 'ease'\r\n });\r\n\r\n elemAnimation.addEventListener('finish', () => {\r\n element.style.display = 'none';\r\n element.style.removeProperty('overflow');\r\n });\r\n}\r\n\r\nexport function slideDown(element: HTMLElement) {\r\n element.style.overflow = 'hidden';\r\n element.style.display = 'block';\r\n\r\n const elemAnimation = element.animate([\r\n { height: 0 },\r\n { height: `${element.offsetHeight}px` }\r\n ], {\r\n duration: 500,\r\n easing: 'ease'\r\n });\r\n\r\n elemAnimation.addEventListener('finish', () => {\r\n element.style.removeProperty('overflow');\r\n });\r\n}\r\n\r\nexport function slideToggle(element: HTMLElement) {\r\n window.getComputedStyle(element).display === 'none' ? slideDown(element) : slideUp(element);\r\n}\r\n\r\n","//import { setupGA } from '../../src/module/google-analytics';\r\nimport { appConfig } from '../../src/appConfig';\r\nimport { setupFacebookPageAndMessager } from '../../src/module/facebook-page-and-messager';\r\n//import { setupPixel } from '../../src/module/facebook-pixel';\r\nimport { setTimeout } from 'timers';\r\nimport { slideToggle, slideDown } from '../../src/module/dom';\r\nimport './Component/SocialMedia/social-media';\r\n//import { setupSessionRecord } from '../../src/module/session-record';\r\nimport { setupSocialMedia } from './Component/SocialMedia/social-media';\r\n\r\ndeclare global {\r\n let fbq: (...args: any[]) => void\r\n}\r\n\r\nexport function setupLayout() {\r\n\r\n setupSocialMedia();\r\n\r\n //setupGA(appConfig.googleAnalyticsId, {\r\n // Id: appConfig.googleAdsId,\r\n // convertor: {\r\n // 'phoneLink': 'ffOKCPeL7tIBEKWb9voC',\r\n // 'whatsAppLink': '1n0yCMyN7tIBEKWb9voC',\r\n // 'mapLink': 'Ss2cCMzojtMBEKWb9voC',\r\n // 'emailLink': 'UaQfCM3w_tIBEKWb9voC',\r\n // 'liveChat': 'LBmQCMvqjtMBEKWb9voC',\r\n // 'careerOpportunityApplicationForm': 'W9csCNbn_tIBEKWb9voC',\r\n // 'generalEnquiry': 't1rSCJGHj9MBEKWb9voC', \r\n // 'courseEnquiry': 'KeGoCO2l7tIBEKWb9voC',\r\n // 'franchiseEnquiry': 'n2InCLe4htQBEKWb9voC',\r\n // 'campEnquiry': 'JbyxCPHJ0tQBEKWb9voC'\r\n // }\r\n //});\r\n //setupPixel(appConfig.facebookPixelId);\r\n\r\n // delay facebook page due to google speed score \r\n setTimeout(() => {\r\n setupFacebookPageAndMessager(appConfig.facebookAppId);\r\n }, 2000);\r\n\r\n if (location.host.startsWith('192.168') || location.host.startsWith('localhost')) {\r\n // skip\r\n }\r\n else {\r\n // setupSessionRecord(appConfig.sessionRecordId);\r\n }\r\n\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n document.querySelectorAll('.parentNav').forEach(elem => {\r\n if (window.innerWidth <= 1024) {\r\n if (elem.classList.contains('active')) {\r\n slideDown(elem.nextElementSibling as HTMLElement)\r\n }\r\n }\r\n elem.addEventListener('click', () => {\r\n if (window.innerWidth <= 1024) {\r\n slideToggle(elem.nextElementSibling as HTMLElement);\r\n }\r\n });\r\n });\r\n });\r\n\r\n document.getElementById('js-menuButton').addEventListener('click', () => {\r\n slideToggle(document.getElementById('js-navList'));\r\n });\r\n\r\n document.querySelectorAll('#js-headerPhoneLink, #js-footerPhoneLink').forEach(el => {\r\n el.addEventListener('click', () => {\r\n gtag('event', 'call', {\r\n send_to: appConfig.googleAnalyticsId,\r\n event_category: 'engagement',\r\n event_label: 'Taman Molek'\r\n });\r\n gtag('event', 'generate_lead', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n gtag('event', 'call', {\r\n send_to: appConfig.googleAnalytics4Id,\r\n branch: 'Taman Molek'\r\n });\r\n fbq('track', 'Contact');\r\n });\r\n });\r\n\r\n document.querySelectorAll('#js-headerEmailLink, #js-footerEmailLink').forEach(el => {\r\n el.addEventListener('click', () => {\r\n gtag('event', 'email', {\r\n send_to: appConfig.googleAnalyticsId,\r\n event_category: 'engagement'\r\n });\r\n gtag('event', 'generate_lead', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n gtag('event', 'email', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n fbq('track', 'Contact');\r\n });\r\n });\r\n document.querySelector('#js-footerLocationLink').addEventListener('click', () => {\r\n gtag('event', 'find_location', {\r\n send_to: appConfig.googleAnalyticsId,\r\n event_category: 'engagement',\r\n event_label: 'Taman Molek'\r\n });\r\n gtag('event', 'generate_lead', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n gtag('event', 'find_location', {\r\n send_to: appConfig.googleAnalytics4Id,\r\n branch: 'Taman Molek'\r\n });\r\n fbq('track', 'FindLocation');\r\n });\r\n\r\n \r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import '@fancyapps/fancybox';\r\nimport { appConfig } from '../../../../src/appConfig';\r\n\r\nexport function setupSocialMedia() {\r\n document.querySelector('#js-whatsAppLink').addEventListener('click', () => {\r\n gtag('event', 'whatsapp', {\r\n send_to: appConfig.googleAnalyticsId,\r\n event_category: 'engagement'\r\n });\r\n gtag('event', 'generate_lead', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n gtag('event', 'whatsapp', {\r\n send_to: appConfig.googleAnalytics4Id\r\n });\r\n fbq('track', 'Contact');\r\n });\r\n}\r\n\r\n\r\n","\r\ndeclare global {\r\n interface Window {\r\n fbAsyncInit: any\r\n }\r\n}\r\ndeclare let FB: any;\r\n\r\nexport function setupFacebookPageAndMessager(facebookAppId : string) {\r\n window.fbAsyncInit = () => {\r\n FB.init({\r\n appId: facebookAppId,\r\n autoLogAppEvents: true,\r\n xfbml: true,\r\n version: 'v7.0'\r\n });\r\n // TODO now: \r\n // Ŀǰÿһ�δ򿪶��ᴥ��, ��Ӱ�� tracking, ֮�� fixed\r\n FB.Event.subscribe('customerchat.dialogShow', () => {\r\n // tracking\r\n gtag('event', 'live_chat', {\r\n event_category: 'engagement'\r\n });\r\n fbq('track', 'Contact');\r\n });\r\n };\r\n\r\n let script = document.createElement('script') as HTMLScriptElement;\r\n script.type = 'text/javascript'; \r\n script.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';\r\n script.crossOrigin = 'anonymous'; \r\n document.getElementsByTagName('body')[0].appendChild(script);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import './certificate.scss';\r\nimport { setupLayout } from '../../../Shared/layout';\r\nimport '@fancyapps/fancybox';\r\n\r\nsetupLayout();"],"sourceRoot":""}