{"version":3,"file":"support.ec8c0719.js","sources":["../../../../composables/support.ts"],"sourcesContent":["import { getHours, getMinutes } from 'date-fns';\nimport { LooseObject } from '~/types/generic';\n\ntype WidgetType = 'classic' | 'chat' | 'talkdesk';\n\nexport const SUPPORT_WIDGET_TYPE: WidgetType = 'talkdesk';\n\nexport const useSupport = () => {\n const getTalkdeskShadowRoot = (): ShadowRoot | null => {\n return document.querySelector('#tdWebchat')?.shadowRoot || null;\n };\n\n const getTalkdeskChatCta = (): HTMLButtonElement | null => {\n const shadowRoot = getTalkdeskShadowRoot();\n if (!shadowRoot) {\n return null;\n }\n const button = shadowRoot.querySelector('.digital-webchat-wrapper button');\n return button ? (button as HTMLButtonElement) : null;\n };\n\n const openTalkdesk = () => {\n if (!window.webchat) {\n return;\n }\n getTalkdeskChatCta()?.click();\n };\n\n const closeTalkdesk = () => {\n if (!window.webchat) {\n return;\n }\n console.log('close talkdesk');\n // const shadowRoot = getTalkdeskShadowRoot();\n // if (shadowRoot) {\n // console.log(shadowRoot.querySelector('#botonic-webchat data-qa[minimize-button]'));\n // }\n };\n\n const openChat = () => {\n if (window.zE) {\n window.zE('messenger', 'open');\n }\n };\n\n const closeChat = () => {\n if (window.zE) {\n window.zE('messenger', 'close');\n }\n };\n\n const hideClassicWidget = () => {\n if (window.zE) {\n window.zE('webWidget', 'close');\n }\n };\n\n const showClassicWidget = () => {\n if (window.zE) {\n window.zE('webWidget', 'open');\n }\n };\n\n const openSupportChat = (type: WidgetType = SUPPORT_WIDGET_TYPE) => {\n if (type === 'chat') {\n return openChat();\n }\n if (type === 'talkdesk') {\n return openTalkdesk();\n }\n return showClassicWidget();\n };\n\n const closeSupportChat = (type: WidgetType = SUPPORT_WIDGET_TYPE) => {\n if (type === 'chat') {\n return closeChat();\n }\n if (type === 'talkdesk') {\n return closeTalkdesk();\n }\n return hideClassicWidget();\n };\n\n const isWithinBusinessHours = () => {\n const workDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n const startHour = 10;\n const endHour = 18;\n\n const isInsideHours = (hour: number) => hour >= startHour && hour < endHour;\n const isWorkingDay = (weekday: any) => workDays.includes(weekday);\n\n const parseDateSegments = (date = new Date()) =>\n new Intl.DateTimeFormat('en-US', {\n timeZone: 'Pacific/Auckland',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n weekday: 'short',\n hour: 'numeric',\n hour12: false,\n minute: 'numeric',\n })\n .formatToParts(date)\n .reduce((acc: LooseObject, part) => {\n const { type, value } = part;\n if (type === 'weekday') {\n acc.weekday = value;\n } else if (type !== 'literal') {\n acc[type] = parseInt(value, 10);\n }\n return acc;\n }, {});\n\n const { weekday, hour } = parseDateSegments(new Date());\n\n return isInsideHours(hour) && isWorkingDay(weekday); // && !isHoliday(day, month);\n };\n\n return {\n openChat,\n closeChat,\n openTalkdesk,\n closeTalkdesk,\n hideClassicWidget,\n showClassicWidget,\n openSupportChat,\n closeSupportChat,\n isWithinBusinessHours,\n };\n};\n"],"names":["SUPPORT_WIDGET_TYPE","useSupport","getTalkdeskShadowRoot","_a","getTalkdeskChatCta","shadowRoot","button","openTalkdesk","closeTalkdesk","openChat","closeChat","hideClassicWidget","showClassicWidget","type","workDays","isInsideHours","hour","isWorkingDay","weekday","parseDateSegments","date","acc","part","value"],"mappings":"AAKO,MAAMA,EAAkC,WAElCC,EAAa,IAAM,CAC9B,MAAMC,EAAwB,IAAyB,CAHlD,IAAAC,EAIH,QAAOA,EAAA,SAAS,cAAc,YAAY,IAAnC,YAAAA,EAAsC,aAAc,IAAA,EAGvDC,EAAqB,IAAgC,CACzD,MAAMC,EAAaH,IACnB,GAAI,CAACG,EACI,OAAA,KAEH,MAAAC,EAASD,EAAW,cAAc,iCAAiC,EACzE,OAAOC,GAAyC,IAAA,EAG5CC,EAAe,IAAM,CAhBtB,IAAAJ,EAiBE,OAAO,WAGZA,EAAAC,EAAA,IAAA,MAAAD,EAAsB,QAAM,EAGxBK,EAAgB,IAAM,CACrB,OAAO,SAGZ,QAAQ,IAAI,gBAAgB,CAAA,EAOxBC,EAAW,IAAM,CACjB,OAAO,IACF,OAAA,GAAG,YAAa,MAAM,CAC/B,EAGIC,EAAY,IAAM,CAClB,OAAO,IACF,OAAA,GAAG,YAAa,OAAO,CAChC,EAGIC,EAAoB,IAAM,CAC1B,OAAO,IACF,OAAA,GAAG,YAAa,OAAO,CAChC,EAGIC,EAAoB,IAAM,CAC1B,OAAO,IACF,OAAA,GAAG,YAAa,MAAM,CAC/B,EA0DK,MAAA,CACL,SAAAH,EACA,UAAAC,EACA,aAAAH,EACA,cAAAC,EACA,kBAAAG,EACA,kBAAAC,EACA,gBA9DsB,CAACC,EAAmBb,IACtCa,IAAS,OACJJ,EAAS,EAEdI,IAAS,WACJN,EAAa,EAEfK,EAAkB,EAwDzB,iBArDuB,CAACC,EAAmBb,IACvCa,IAAS,OACJH,EAAU,EAEfG,IAAS,WACJL,EAAc,EAEhBG,EAAkB,EA+CzB,sBA5C4B,IAAM,CAClC,MAAMG,EAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAIpDC,EAAiBC,GAAiBA,GAAQ,IAAaA,EAAO,GAC9DC,EAAgBC,GAAiBJ,EAAS,SAASI,CAAO,EAE1DC,EAAoB,CAACC,EAAO,IAAI,OACpC,IAAI,KAAK,eAAe,QAAS,CAC/B,SAAU,mBACV,KAAM,UACN,MAAO,UACP,IAAK,UACL,QAAS,QACT,KAAM,UACN,OAAQ,GACR,OAAQ,SAAA,CACT,EACE,cAAcA,CAAI,EAClB,OAAO,CAACC,EAAkBC,IAAS,CAC5B,KAAA,CAAE,KAAAT,EAAM,MAAAU,CAAU,EAAAD,EACxB,OAAIT,IAAS,UACXQ,EAAI,QAAUE,EACLV,IAAS,YAClBQ,EAAIR,CAAI,EAAI,SAASU,EAAO,EAAE,GAEzBF,CACT,EAAG,CAAE,CAAA,EAEH,CAAE,QAAAH,EAAS,KAAAF,CAAA,EAASG,EAAkB,IAAI,IAAM,EAEtD,OAAOJ,EAAcC,CAAI,GAAKC,EAAaC,CAAO,CAAA,CAYlD,CAEJ"}