{"version":3,"sources":["webpack:///./src/appConfig.ts","webpack:///./src/module/dom.ts","webpack:///./src/image/googleMapMarkerIcon.png","webpack:///./Web/Shared/layout.ts","webpack:///./Web/Shared/Component/SocialMedia/social-media.ts","webpack:///./src/module/facebook-page-and-messager.ts","webpack:///./Web/Branch/branch.ts","webpack:///./src/module/google-map.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","apiKey","googleMapApiKey","languageIsoCode","styles","googleMapStyles","jsButtonElements","jsButtonElem","remove","add","selectedBranch","dataset","jsBranchElem","mapIcon","setupGoogleMap","config","async","defer","initMap","mapElement","markerElements","Array","from","map","google","maps","Map","zoom","center","lat","centerLat","lng","centerLng","scrollwheel","markerElement","marker","Marker","position","positionLat","positionLng","icon","default","url","addListener","open"],"mappings":"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","file":"13.126263b45d591fb2f378.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","export default \"/assets/47bee881316cc24ed9305be7275217fc.png\";","//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 './branch.scss';\r\nimport { appConfig } from '../../src/appConfig';\r\nimport { setupLayout } from '../Shared/layout';\r\nimport { setupGoogleMap } from '../../src/module/google-map';\r\n\r\nsetupLayout();\r\n\r\nsetupGoogleMap({\r\n apiKey: appConfig.googleMapApiKey,\r\n languageIsoCode: (document.getElementById('inputHiddenForPageLanguageIsoCode') as HTMLInputElement).value,\r\n styles: appConfig.googleMapStyles\r\n});\r\n\r\nconst jsButtonElements = document.querySelectorAll('.js-button');\r\n\r\njsButtonElements.forEach(jsButtonElem => {\r\n jsButtonElem.addEventListener('click', () => {\r\n\r\n jsButtonElements.forEach(elem => elem.classList.remove('active'));\r\n jsButtonElem.classList.add('active');\r\n\r\n const selectedBranch = jsButtonElem.dataset.branch;\r\n\r\n document.querySelectorAll('.js-branch').forEach(jsBranchElem => {\r\n const branch = jsBranchElem.dataset.branch;\r\n if (selectedBranch === 'all' || branch === selectedBranch) {\r\n jsBranchElem.style.display = 'block';\r\n }\r\n else {\r\n jsBranchElem.style.display = 'none';\r\n }\r\n });\r\n });\r\n});\r\n\r\n// track\r\ndocument.querySelectorAll('.js-phoneLink').forEach(el => {\r\n const branch = el.dataset.branch;\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: branch\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\r\n });\r\n fbq('track', 'Contact');\r\n });\r\n});\r\n\r\ndocument.querySelectorAll('.js-locationLink').forEach(el => {\r\n const branch = el.dataset.branch;\r\n el.addEventListener('click', () => {\r\n gtag('event', 'find_location', {\r\n send_to: appConfig.googleAnalyticsId,\r\n event_category: 'engagement',\r\n event_label: branch\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\r\n });\r\n fbq('track', 'FindLocation');\r\n });\r\n});\r\n","const mapIcon = require('../image/googleMapMarkerIcon.png');\r\n\r\ndeclare global {\r\n interface Window {\r\n initMap: () => void\r\n }\r\n let google: any\r\n}\r\n\r\nexport function setupGoogleMap(config: {\r\n apiKey: string,\r\n languageIsoCode: string,\r\n //locations: {\r\n // position: {\r\n // lat: number,\r\n // lng: number\r\n // },\r\n // url: string\r\n //}[],\r\n //zoom: number,\r\n //center: {\r\n // lat: number,\r\n // lng: number\r\n //},\r\n styles: any[]\r\n}) {\r\n let script = document.createElement('script') as HTMLScriptElement;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n script.defer = true;\r\n script.src = `https://maps.googleapis.com/maps/api/js?key=${config.apiKey}&callback=initMap&language=${config.languageIsoCode}`;\r\n document.getElementsByTagName('body')[0].appendChild(script);\r\n\r\n window.initMap = () => {\r\n document.querySelectorAll('.sGoogleMap').forEach(mapElement => {\r\n // note ����: ΪʲôҪ��ǰ�ó� element ����Ϊ google map ��ִ��ʱ�Ḳ�� child element\r\n const markerElements = Array.from(mapElement.querySelectorAll('.sGoogleMapMarker')); \r\n\r\n const map = new google.maps.Map(mapElement, {\r\n zoom: +mapElement.dataset.zoom,\r\n center: {\r\n lat: +mapElement.dataset.centerLat,\r\n lng: +mapElement.dataset.centerLng\r\n },\r\n scrollwheel: false,\r\n styles: config.styles\r\n });\r\n\r\n markerElements.forEach(markerElement => {\r\n let marker = new google.maps.Marker({\r\n position: {\r\n lat: +markerElement.dataset.positionLat,\r\n lng: +markerElement.dataset.positionLng\r\n },\r\n map: map,\r\n icon: mapIcon.default,\r\n url: markerElement.dataset.url\r\n });\r\n\r\n marker.addListener('click', () => {\r\n window.open(marker.url, '_blank');\r\n });\r\n });\r\n });\r\n }\r\n}\r\n"],"sourceRoot":""}