1import{R as Xe,V as Qe,bm as we,U as qe,bn as He,d as j,a0 as ne,c as oe,P as Je,au as Ke,aa as $e,_ as L,a as d,b as o,e as p,f as D,s as O,g as r,t as y,n as N,v as ue,a5 as et,q as xe,o as l,ak as ge,x as me,af as ee,a$ as pe,h as te,y as R,r as g,F as M,E as k,ac as $,A as he,p as K,bo as ke,L as ie,a4 as Ce,aK as tt,av as ot,a3 as de,S as Ae,aB as nt,b0 as st,u as at,w as rt,a7 as lt,aH as it,ai as dt,I as ct,J as ut}from"./index-DKueJ56C.js";import{i as Se,c as gt}from"./outlook-calendar-DbjwD_Om.js";import{_ as Ue}from"./exchange-B5hJtnm5.js";import{_ as mt}from"./heyreach-BfNjVk8u.js";import{_ as pt,a as ft}from"./Instantly-7JWLozZz.js";import{_ as Ee,a as Ie,b as We}from"./ga4-int-Caz2_Ip9.js";import{C as yt}from"./calendar-DSulLOP0.js";import{C as bt}from"./code-xml-BWKfXY5e.js";import{F as vt}from"./footprints-DLUrijlo.js";import{U as J}from"./UiButton-D4rLGMnN.js";import{U as se}from"./UiDropdown-BTMuH8wV.js";import{_ as xt}from"./linkedin-Bo966_Xo.js";import{U as Te}from"./UiCheckbox-DuCOVXTG.js";import{U as re}from"./UiTextField-ROeT5wsN.js";import{U as le}from"./UiToggle-C2y38EVh.js";import{C as ht}from"./chevron-down-Cv72UE4P.js";import{E as ce}from"./ellipsis-Cl43hUwk.js";import{L as _t}from"./list-ChWf0oi8.js";import{C as wt}from"./copy-Bs70Mwbo.js";import{E as kt}from"./eye-off-C9E8x7pN.js";import{S as _e}from"./star-BvNtmnwX.js";import{A as Ct}from"./arrow-left-B5JPKvKM.js";/** 2 * @license @lucide/vue v1.18.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const At=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],St=Xe("square-pen",At),De="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAYAAACPZlfNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkRBMzgwQjNDOTg1MTFFREEzOTA4RTNDNTk4OEZDMTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkRBMzgwQjRDOTg1MTFFREEzOTA4RTNDNTk4OEZDMTYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyREEzODBCMUM5ODUxMUVEQTM5MDhFM0M1OTg4RkMxNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyREEzODBCMkM5ODUxMUVEQTM5MDhFM0M1OTg4RkMxNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PieO7NgAAAptSURBVHja7F0LbBTH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",ze="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkZFOUY5OUZENUMwMTFFQ0E3RTk5QjBBOUVGODRGOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkZFOUY5QTBENUMwMTFFQ0E3RTk5QjBBOUVGODRGOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2RkU5Rjk5REQ1QzAxMUVDQTdFOTlCMEE5RUY4NEY4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2RkU5Rjk5RUQ1QzAxMUVDQTdFOTlCMEE5RUY4NEY4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlKN5o8AAAhCSURBVHja7FtbbFzV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",Re="/assets/teams-C21Sjzs6.png",Be="/assets/google-calendar-BbaJA2_s.png",Me="/assets/hubspot-B-a9j61g.png",Ge="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowM0Y4MDYxQTcwOEVFRTExOEMyQUQ4QzZFRDc2RkM3NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NzMxOEZFMjhFNzAxMUVFQjY2QURCN0YyNDNDQzA1OSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NzMxOEZFMThFNzAxMUVFQjY2QURCN0YyNDNDQzA1OSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAzRjgwNjFBNzA4RUVFMTE4QzJBRDhDNkVENzZGQzc3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAzRjgwNjFBNzA4RUVFMTE4QzJBRDhDNkVENzZGQzc3Ii8+IDwvcmRmOkRlc2NyaXB0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",Pe="/assets/wordpress-BMRyFc7R.png",Ve="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDNGRjI2NzZFQTU2MTFFREEyODNBRjcwNzg1RDY3NUYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDNGRjI2NzdFQTU2MTFFREEyODNBRjcwNzg1RDY3NUYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEM0ZGMjY3NEVBNTYxMUVEQTI4M0FGNzA3ODVENjc1RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEM0ZGMjY3NUVBNTYxMUVEQTI4M0FGNzA3ODVENjc1RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu1/RDkAAAk3SURBVHja7F17sFdTFD6XXI/cENczZEIeeZRH5XLdymtMhQmDyCPUDCLyHv7hj5hiDDURBg0qryiq6UWhl5RkInp5TjTcokiPn73m7jPz83PO2d9+nNsvfd/Mmu7cu9dae5/97dfa65wqCoVCRGy/2IGPgAQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgygwVSqYqOUTJaiU/KJmlZKKShf/TNjdRcoGSWiXHKdlHye5KHlUyLEWnhZLuStoraalkXyWTlPQrKtNcyQQlO2uR7+/VK/lRyTwlk5XM2QoDXOpdo9taraSprttGJTOl0HT9i1KRxpz0P+v8W5V8m9Lebik6DyjZkPJ8SgfTqym2Y/lYSadGauvNSlYa6tNTCvY2FLoupwrKCLxbyTNKRioZpH0dmZO/dzPaWJ+yHA7O0Bma4udLw/Ms6M7JEy8DdRgcFz4UKHxuwMoNULLU4G+CnrZCYbzB35gEnRMMOgNSfB0OPE+RG3Pq/JGA75WlSksMCuuUVAao3FTw4YR8SFcBfvol6A036Byd4fN+sH3nBO78x0C/x5cqDgWU7vSs3GuWnR9Le0+/vwA+jknQW5xR/m3A7yKwfS0CdX4v0N/AJOWLAcWlHpU7y7HzC/pk4oqzAfvfJ+g1S9n4FfSOfmfA92Fg+5YE6Hx02VmWZmBv0MBhjhX8xoMAItc4+n0csP1igt5RKWWfsvR/F9i+pz0JsBz0c0yWkbmAgd4Olavz7PxM5howH7B9dYJeu6K/b1IyQskpJWVO1TEFExbkvB8YAtp/yGRoIGBkhEMFRwcgQCGhA0yo9liDL9N/e1IHyZKOWQv02d+EQ8B6rAOXFpfBBS0zyHppux430Q0LQYBBlr4vAWwuzniwlyb8/mR9RC3ouAKK/mAbx1o+2zWg3daIwV2V/Om7juQw/cfyeQ5T45OgrZqEmewVy/p8ArbzStDe66C9B20qORkweJOFvYcBe8vB4IXIARa+FwP2LjTYaF804ktllCUBDrQge3WA2S1rhkvFvYDR1y3szbQ4WTwHlO0J+m0B2NqiZM8MGxcZ9G0JEMfnkY6bmWFD6rwZtNPKtoKnAkZ/AW3tAVR0fsn6avL9bMDo36wM/SpA34UA6KDICjV/AOrf61I52dX+ChhvB9i6ALDzSFH5HZWsBZYLBMhs8nCG/pk5EmA/i6XgcMc
6ZBL7KL70BE+VpgB5ypdkZKPN+0c8yW8wwlG+Z8FBcfU/J+NsuUX5YpaQvWPa9krajm9buPhW8CWDYuACx8L+jhkSMYtwJ+O5j8NsqwJm7S44zQIwZ4Gh+UXfoCs+lA0ZrwMlaQxTsAMBG0mg/JcCDvwGwMdFgozEIsE/AI3Isn9pWIikJ4isl3xn0qvSG0WcKnp7wO7loqfdcfuo8p//GwmrH0Lpp3+VNgDge4LMPcCWAHM0+BEK8bT33J5Oj8sDz4J4LwW3AwIUJMNWTAF0MupKQ+JEFMVD7xwLBotUuU2WO6KGnbx/IRd4TLoo+BKhJ2S0fETWkmZkq/EfGOdeVfMjMMy0qL/wWJd9I5jr1mwggqcxfGHSl809zGP2mUS77gDUGfUko3clx+p8SlR/klnWSo67EBn4KTQCffUAnTwJszlgeYsjxsUNCEKt2G1r/S3FeZJ91JWnoQ3ycZhEAWQY6OxBgE9DBLvsAeYdhb4PO8sgvtS1PyAb4L4eTRG5opjsr69y5SR8JY7SN/C46YnR0iCMgQaThYNsbIw5QiuGR29n//LxmAAn2zDbo71gy7fqu/8WbxLWGMu2jf0cSkaVnapmOfrl7uN5RV7KtK/MgALphqgtw/ndZJnYqIp/8fMY2TIA3PXR3ixryKbYaAYo73dQJW4COtSFK7LtD9N97hVJ8FjVcxJQbXogaXiz1wUWuR0ETAeRlxnWGMvHVcCugEyQtqj4HAnTcRnf/XQLEAGKMihxuMU0E2Ah2hGTgHB+oU5FgUYwT9b9ttsHpX/ZPbwS0J7ebo0MTAF0GegXcABaTz7RcyNlfLlSODERkG1R46kvwZw+gnDyDu8Ajorzi3iM0U0+MsDQxUyaRrP97Wfq+D/At6/p6Q5kPLP0ix8DRHs/0PPCIV19EtFpQR/IsmoYmwarI/656roPf06Mw9+QPlhEBJI/id7DedSW66Nu/40MT4JUAnTDYwW+l3gf4+q4pIwKgb0mnhXiXgvqXhyTADQE6wfXGaqKn3zV6w1UOBOgK1vnbDButQRsSS2kWYhMY4giVlgKGYIanb1n/N5fBrt9ml54V3pWMrXu2winD6xVvnwSMWs8Z4DbH83noGWBM4P3KHNBer1AEGObRCY97jpz1Hr7b5ESA1ywjdUhdF1jYRN8vyDx92Xwo0ieQMslDd4PDMS6GJEosymlK3wKWk5du0Vh9V8uT2TVgvOKtEA12TWP+Wz8EH/R39D3C0R8yA7wM2hoH1rWPY13fA+0HyUCe59AJ4wL4belIgGtzJADynuKlYD190tQk/o9+g6HaZwmIHCs6IgABVkT/fpE0z/qiMOUtVoGzhIR4fV7l+ktHFhF4LwXnWo7A9RH2HR0EvSx9f+XhC5kB7ggUv6gL9HwGgP76+jjZLUr/fFqS9A886n628D0kZwJkZSD1BOt4e+Dn8zzod38fJ+jXPufnMO3WWBCgR44E+D1jZkM/4DA4ygdjAd+zfRwgn0GVxM+mOTXwCvDs2zxHAnT1HCADc446Ih+LvsXVeIcMo79pguQN+VDVOzmt/4JuUfrXUrtl6D1keOjTI88sXgtIptFCQ33OdElq2EFPMzLVSaKF3NZ9raf8sZoEjYW2erRKtO/gqOH2UNr0QoR/TiYJ7XTks1Lv9qV98tLqSxkBoCp96thTl5Evrsl9/jId4Xs/sv/SWQjIgJWsY8nrOEhHBSt1hHVcRaFQiIjtF/w/g0gAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAggQgSACCBCBIAIIEIEgAotzwjwADABoyrZ2CYPJkAAAAAElFTkSuQmCC",Ne="/assets/squarespace-Chy_YDl8.png",je="/assets/unbounce-C7_urtz8.png",Le="data:image/png;base64,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",Ye="/assets/shopify-D3fWt0Y8.png",Oe="/assets/webhooks-CA4-23KL.png",Fe="/assets/zapier-Bh15HE8W.png",Ze="/assets/pabbly-3EXsnzpH.png",Ut=[{icon:Qe,name:"Video conferencing",items:[{id:"zoom",name:"Zoom",description:"text.int_zoom_msg",image:De},{id:"google_meet",name:"Google Meet",description:"text.int_google_meet_msg",image:ze},{id:"microsoft_teams",name:"Microsoft Teams",description:"text.int_teams_msg",image:Re}]},{icon:yt,name:"Calendars",items:[{id:"google_calendar",name:"Google Calendar",description:"text.int_google_calendar_msg",image:Be},{id:"outlook_calendar",name:"Outlook Calendar",description:"text.int_outlook_meet_msg",image:Se}
6,{id:"exchange_calendar",name:"Exchange",description:"text.int_exchange_msg",image:Ue}]},{icon:we,name:"Native integrations",items:[{id:"heyreach",name:"Heyreach",description:"Create & Send AI videos from Heyreach, and book meetings with your leads all directly from Heyreach",image:mt,external_link:"https://app.weezly.com/tutorials/category-11/video-27"},{id:"lagrowthmachine",name:"Lagrowthmachine",description:"Effortlessly create and send AI-powered videos, and schedule meetings with your leads, all seamlessly within La Growth Machine.",image:pt,external_link:""},{id:"instantly",name:"Instantly",description:"Easily create and share AI-sales videos while booking meetings with your leads, all directly through Instantly.",image:ft,external_link:"https://weezly.com/solutions/instantly/"}]},{icon:qe,name:"Sales and CRM",items:[{id:"hubspot",name:"HubSpot",description:"text.int_hubspot_msg",image:Me},{id:"pipedrive",name:"Pipedrive",description:"text.int_pipedrive_msg",image:Ge}]},{icon:bt,name:"Embed",items:[{id:"wordpress",name:"Wordpress",description:"text.int_wordpress_msg",image:Pe},{id:"wix",name:"Wix",description:"text.int_wix_msg",image:Ve},{id:"squarespace",name:"Squarespace",description:"text.int_squarespace_msg",image:Ne},{id:"unbounce",name:"Unbounce",description:"text.int_unbounce_msg",image:je},{id:"weebly",name:"Weebly",description:"text.int_weebly_msg",image:Le},{id:"shopify",name:"Shopify",description:"text.int_shopify_meet_msg",image:Ye}]},{icon:He,name:"Extensions",items:[{id:"chrome",name:"Weezly for Chrome",description:"Get access to all your schedulings & meetings instantly in Chrome.",image:gt,external_link:"https://chromewebstore.google.com/detail/screen-recorder-schedulin/kijbihhjhdiipiljfhboknmdipgphoel"}]},{icon:we,name:"API and connectors",items:[{id:"webhooks",name:"Webhooks",description:"text.int_webhooks_msg",image:Oe},{id:"zapier",name:"Zapier",description:"text.int_zapier_msg",image:Fe},{id:"pabbly_connect",name:"Pabbly Connect",description:"text.int_pabbly_msg",image:Ze}]},{icon:vt,name:"Tracking",items:[{id:"fpixel",name:"Facebook Pixel",description:"Use Facebook Pixel to track video views with triggers",
6image:Ee},{id:"gtag",name:"Google Tag Manager",description:"Use Google Tag Manager to track video views with triggers",image:Ie},{id:"ga4",name:"Google Analytics 4",description:"Use Google Analytics 4 to track video views with triggers",image:We}]}],Et=j({__name:"IntegrationCard",props:{item:{type:Object,required:!0},groupName:{type:String,required:!0},connected:{type:Boolean,required:!1}},emits:["select"],setup(i,{expose:t,emit:a}){t();const e=i,u=a,{t:f,te:n}=ne(),s={"Video conferencing":{tile:"#eff6ff",text:"#2563eb"},Calendars:{tile:"#eef2ff",text:"#4f46e5"},"Native integrations":{tile:"#ecfdf5",text:"#059669"},"Sales and CRM":{tile:"#fff7ed",text:"#ea580c"},Embed:{tile:"#faf5ff",text:"#9333ea"},Extensions:{tile:"#ecfeff",text:"#0891b2"},"API and connectors":{tile:"#fdf2f8",text:"#db2777"},Tracking:{tile:"#f0fdfa",text:"#0d9488"}},b=oe(()=>{const U=s[e.groupName]||{tile:"#f8fafc",text:"#475569"};return{"--cat":U.text,"--cat-tile":U.tile}}),h=oe(()=>!!e.item.external_link);function w(U){return n(U)?f(U):U}const A={props:e,emit:u,t:f,te:n,CATEGORY_COLORS:s,vars:b,isExternal:h,describe:w,get ArrowRight(){return $e},get ExternalLink(){return Ke},get Check(){return Je}};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}}),It={class:"int-card-top"},Wt={class:"int-icon"},Tt=["src","alt"],Dt={key:0,class:"int-status"},zt={class:"int-name"},Rt={class:"int-desc"},Bt={class:"int-foot"};function Mt(i,t,a,e,u,f){return l(),d("div",{class:"int-card",style:xe(e.vars),role:"button",tabindex:"0",onClick:t[0]||(t[0]=n=>e.emit("select",a.item)),onKeydown:t[1]||(t[1]=et(n=>e.emit("select",a.item),["enter"]))},[o("div",It,[o("span",Wt,[o("img",{src:a.item.image,alt:a.item.name},null,8,Tt)]),a.connected?(l(),d("span",Dt,[p(e.Check,{size:12,"stroke-width":3}),t[2]||(t[2]=D(" Connected",-1))])):e.isExternal?(l(),O(e.ExternalLink,{key:1,size:15,class:"int-ext"})):r("v-if",!0)]),o("h3",zt,y(a.item.name),1),o("p",Rt,y(e.describe(a.item.description)),1),o("div",Bt,[o("span",{class:N(["int-connect",{"is-connected":a.connected}])},[D(y(a.connected?"Manage":e.isExternal?"Open":"Connect")+" ",1),(l(),O(ue(e.isExternal&&!a.connected?e.ExternalLink:e.ArrowRight),{size:14}))],2)])],36)}const Gt=L(Et,[["render",Mt],["__scopeId","data-v-dee745b6"],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/IntegrationCard.vue"]]),Pt=j({__name:"Zoom",setup(i,{expose:t}){t();const{me:a}=ge(me()),e=ee(),u=pe(),{t:f}=ne(),n=g(!1),s=g(!1),b=g(null),h=g(null);te(()=>{w()});async function w(){s.value=!0;const _=await R("GET","integrations/getIntegrations?type=zoom");_!=null&&_.data&&_.data.length>0?b.value=_.data[0]:b.value=null,s.value=!1}function A(){var T,G;if(n.value)return;n.value=!0;const _=`https://app.weezly.com/api/v1/integrations/zoomSync?id=${Str
6ing((T=a.value)==null?void 0:T.userID)}&code=${String((G=a.value)==null?void 0:G.tokenCode)}`;u.open(_,{success:"/integrations?v=",onSuccess:()=>{e.success(f("alert.your_are_connected_to_zoom")),w()},onDone:()=>{n.value=!1}})}async function U(){var T;(T=h.value)==null||T.close(),await R("POST","meetings/editSyncCalendar",{id:b.value.id,is_delete:1})&&w()}const S={me:a,toast:e,oauth:u,t:f,loading:n,loadingData:s,integration:b,ddDisconnect:h,loadData:w,sync:A,unsync:U,get UiButton(){return J},get UiDropdown(){return se},get icon(){return De}};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),Vt={class:"rounded-2xl border border-gray-200 bg-white p-8"},Nt=["src"],jt={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},Lt={class:"mt-6 flex flex-col items-center"},Yt={key:0,class:"flex items-center justify-center py-4"},Ot={class:"flex flex-col items-center gap-2"},Ft={class:"text-sm font-semibold text-gray-900"},Zt={class:"p-4 text-center",style:{width:"240px"}},Xt={class:"flex items-center justify-between gap-2"},Qt=["onClick"];function qt(i,t,a,e,u,f){return l(),d("div",Vt,[o("img",{src:e.icon,alt:"Zoom",class:"h-14 w-14 mx-auto mb-3"},null,8,Nt),t[3]||(t[3]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Zoom",-1)),o("p",jt,y(i.$t("text.int_zoom_msg")),1),o("div",Lt,[r(" Loading overlay "),e.loadingData?(l(),d("div",Yt,[...t[0]||(t[0]=[o("span",{class:"animate-spin inline-block w-5 h-5 border-2 border-blue-600 border-t-transparent rounded-full"},null,-1)])])):e.integration?(l(),d(M,{key:2},[r(" Connected "),o("div",Ot,[t[2]||(t[2]=o("p",{class:"text-sm text-gray-400"},"Connected by",-1)),o("p",Ft,y(e.integration.integration_email),1),p(e.UiDropdown,{ref:"ddDisconnect",position:"top-middle",width:"240px"},{toggle:k(()=>[p(e.UiButton,{variant:"danger",size:"sm",loading:e.loading},{default:k(()=>[D(y(i.$t("button.disconnect")),1)]),_:1},8,["loading"])]),default:k(({close:n})=>[o("div",Zt,[t[1]||(t[1]=o("p",{class:"text-sm text-gray-700 mb-4"},"Do you want to disconnect this account?",-1)),o("div",Xt,[o("button",{class:"px-4 py-2 rounded-lg border border-gray-300 text-sm font-medium hover:bg-gray-50",onClick:s=>n()},y(i.$t("button.cancel")),9,Qt),o("button",{class:"px-4 py-2 rounded-lg bg-red-600 text-white text-sm font-medium hover:bg-red-700",onClick:e.unsync},y(i.$t("button.disconnect")),1)])])]),_:1},512)])],2112)):(l(),d(M,{key:1},[r(" Not connected "),p(e.UiButton,{loading:e.loading,onClick:e.sync},{default:k(()=>[D(y(i.$t("button.integrate_zoom")),1)]),_:1},8,["loading"])],2112))])])}const Ht=L(Pt,[["render",qt],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Zoom.vue"]]),Jt=j({__name:"GoogleMeet",emits:["goToConnections"],setup(i,{expose:t,emit:a}){t();const u={emit:a,get UiButton(){return J},get icon(){return ze}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),Kt={class:"rounded-2xl border border-gray-200 bg-white p-8"},$t=["src"],eo={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},to={class:"flex justify-center mt-6"};function oo(i,t,a,e,u,f){return l(),d("div",Kt,[o("img",{src:e.icon,alt:"Google Meet",class:"h-14 w-14 mx-auto mb-3"},null,8,$t),t[1]||(t[1]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Google Meet",-1)),o("p",eo,y(i.$t("text.int_google_meet_msg")),1),o("div",to,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.emit("goToConnections"))},{default:k(()=>[D(y(i.$t("button.manage_calendar_connection")),1)]),_:1})])])}const no=L(Jt,[["render",oo],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/GoogleMeet.vue"]]),so=j({__name:"Teams",setup(i,{expose:t}){t();const{me:a}=ge(me()),e=ee(),u=pe(),{t:f}=ne(),n=g(!1),s=g(!1),b=g(null),h=g(null);te(()=>{w()});async function w(){s.value=!0;const _=await R("GET","integrations/getIntegrations?type=teams");_!=null&&_.data&&_.data.length>0?b.value=_.data[0]:b.value=null,s.value=!1}function A(){var T,G;if(n.value)return;n.value=!0;const _=`https://app.weezly.com/api/v1/integrations/teamSync?id=${Str
6ing((T=a.value)==null?void 0:T.userID)}&code=${String((G=a.value)==null?void 0:G.tokenCode)}`;u.open(_,{success:"/integrations?v=",error:"?action=errorIntegrationTeams",onSuccess:()=>{e.success(f("alert.you_are_connected_with_teams")),w()},onError:()=>{e.alert(f("alert.create_teams_or_office"),"error")},onDone:()=>{n.value=!1}})}async function U(){var T;(T=h.value)==null||T.close(),await R("POST","meetings/editSyncCalendar",{id:b.value.id,is_delete:1})&&w()}const S={me:a,toast:e,oauth:u,t:f,loading:n,loadingData:s,integration:b,ddDisconnect:h,loadData:w,sync:A,unsync:U,get UiButton(){return J},get UiDropdown(){return se},get icon(){return Re}};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),ao={class:"rounded-2xl border border-gray-200 bg-white p-8"},ro=["src"],lo={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},io={class:"text-xs text-gray-400 text-center mt-1 italic"},co={class:"mt-6 flex flex-col items-center"},uo={key:0,class:"flex items-center justify-center py-4"},go={class:"flex flex-col items-center gap-2"},mo={class:"text-sm text-gray-400"},po={class:"text-sm font-semibold text-gray-900"},fo={class:"p-4 text-center",style:{width:"240px"}},yo={class:"text-sm text-gray-700 mb-4"},bo={class:"flex items-center justify-between gap-2"},vo=["onClick"];function xo(i,t,a,e,u,f){return l(),d("div",ao,[o("img",{src:e.icon,alt:"Microsoft Teams",class:"h-14 w-14 mx-auto mb-3"},null,8,ro),t[1]||(t[1]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Microsoft Teams",-1)),o("p",lo,y(i.$t("text.int_teams_msg")),1),o("p",io,y(i.$t("text.need_365_account_msg")),1),o("div",co,[r(" Loading overlay "),e.loadingData?(l(),d("div",uo,[...t[0]||(t[0]=[o("span",{class:"animate-spin inline-block w-5 h-5 border-2 border-blue-600 border-t-transparent rounded-full"},null,-1)])])):e.integration?(l(),d(M,{key:2},[r(" Connected "),o("div",go,[o("p",mo,y(i.$t("text.connected_by")),1),o("p",po,y(e.integration.integration_email),1),p(e.UiDropdown,{ref:"ddDisconnect",position:"top-middle",width:"240px"},{toggle:k(()=>[p(e.UiButton,{variant:"danger",size:"sm",loading:e.loading},{default:k(()=>[D(y(i.$t("button.disconnect")),1)]),_:1},8,["loading"])]),default:k(({close:n})=>[o("div",fo,[o("p",yo,y(i.$t("text.do_you_want_disconnect_account")),1),o("div",bo,[o("button",{class:"px-4 py-2 rounded-lg border border-gray-300 text-sm font-medium hover:bg-gray-50",onClick:s=>n()},y(i.$t("button.cancel")),9,vo),o("button",{class:"px-4 py-2 rounded-lg bg-red-600 text-white text-sm font-medium hover:bg-red-700",onClick:e.unsync},y(i.$t("button.disconnect")),1)])])]),_:1},512)])],2112)):(l(),d(M,{key:1},[r(" Not connected "),p(e.UiButton,{loading:e.loading,onClick:e.sync},{default:k(()=>[D(y(i.$t("button.integrate_teams")),1)]),_:1},8,["loading"])],2112))])])}const ho=L(so,[["render",xo],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Teams.vue"]]),_o=j({__name:"GoogleCalendar",emits:["goToConnections"],setup(i,{expose:t,emit:a}){t();const u={emit:a,get UiButton(){return J},get icon(){return Be}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),wo={class:"rounded-2xl border border-gray-200 bg-white p-8"},ko=["src"],Co={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},Ao={class:"flex justify-center mt-6"};function So(i,t,a,e,u,f){return l(),d("div",wo,[o("img",{src:e.icon,alt:"Google Calendar",class:"h-14 w-14 mx-auto mb-3"},null,8,ko),t[1]||(t[1]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Google Calendar",-1)),o("p",Co,y(i.$t("text.int_google_calendar_msg")),1),o("div",Ao,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.emit("goToConnections"))},{default:k(()=>[D(y(i.$t("button.manage_calendar_connection")),1)]),_:1})])])}const Uo=L(_o,[["render",So],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/GoogleCalendar.vue"]]),Eo=j({__name:"OutlookCalendar",emits:["goToConnections"],setup(i,{expose:t,emit:a}){t();const u={emit:a,get UiButton(){return J},get icon(){return Se}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),Io={class:"rounded-2xl border border-gray-200 bg-white p-8"},Wo=["src"],To={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},Do={class:"flex justify-center mt-6"};function zo(i,t,a,e,u,f){return l(),d("div",Io,[o("img",{src:e.icon,alt:"Outlook Calendar",class:"h-14 w-14 mx-auto mb-3"},null,8,Wo),t[1]||(t[1]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Outlook Calendar",-1)),o("p",To,y(i.$t("text.int_outlook_meet_msg")),1),o("div",Do,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.emit("goToConnections"))},{default:k(()=>[D(y(i.$t("button.manage_calendar_connection")),1)]),_:1})])])}const Ro=L(Eo,[["render",zo],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/OutlookCalendar.vue"]]),Bo=j({__name:"ExchangeCalendar",emits:["goToConnections"],setup(i,{expose:t,emit:a}){t();const u={emit:a,get UiButton(){return J},get icon(){return Ue}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),Mo={class:"rounded-2xl border border-gray-200 bg-white p-8"},Go=["src"],Po={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},Vo={class:"flex justify-center mt-6"};function No(i,t,a,e,u,f){return l(),d("div",Mo,[o("img",{src:e.icon,alt:"Exchange Calendar",class:"h-14 w-14 mx-auto mb-3"},null,8,Go),t[1]||(t[1]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Exchange Calendar",-1)),o("p",Po,y(i.$t("text.int_exchange_msg")),1),o("div",Vo,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.emit("goToConnections"))},{default:k(()=>[D(y(i.$t("button.manage_calendar_connection")),1)]),_:1})])])}const jo=L(Bo,[["render",No],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/ExchangeCalendar.vue"]]),Lo=j({__name:"HubSpot",setup(i,{expose:t}){t();const a=ee(),e=pe(),{t:u}=ne(),f=g(!1),n=g(!1),s=g(null),b=g(null);te(()=>{h()});async function h(){n.value=!0;const S=await R("GET","integrations/getIntegrations?type=hubspot");S!=null&&S.data&&S.data.length>0?s.value=S.data[0]:s.value=null,n.value=!1}async function w(){if(f.value)return;f.value=!0;const S=await R("GET","integrations/hubspotSync");if(!S){f.value=!1;return}const _=S.data.url;e.open(_,{error:"error",success:"success",onError:()=>{a.alert("Please grant all requested permissions on your HubSpot account to continue.","error")},onSuccess:()=>{a.success(u("alert.your_are_connected_to_hubspot")),h()},onDone:()=>{f.value=!1}})}async function A(){var _;(_=b.value)==null||_.close(),await R("POST","meetings/editSyncCalendar",{id:s.value.id,is_delete:1}
6)&&h()}const U={toast:a,oauth:e,t:u,loading:f,loadingData:n,integration:s,ddDisconnect:b,loadData:h,sync:w,unsync:A,get UiButton(){return J},get UiDropdown(){return se},get icon(){return Me}};return Object.defineProperty(U,"__isScriptSetup",{enumerable:!1,value:!0}),U}}),Yo={class:"rounded-2xl border border-gray-200 bg-white p-8"},Oo=["src"],Fo={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},Zo={class:"mt-6 flex flex-col items-center"},Xo={key:0,class:"flex items-center justify-center py-4"},Qo={class:"flex flex-col items-center gap-2"},qo={class:"text-sm font-semibold text-gray-900"},Ho={class:"p-4 text-center",style:{width:"240px"}},Jo={class:"flex items-center justify-between gap-2"},Ko=["onClick"];function $o(i,t,a,e,u,f){return l(),d("div",Yo,[o("img",{src:e.icon,alt:"HubSpot",class:"h-14 w-14 mx-auto mb-3"},null,8,Oo),t[4]||(t[4]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"HubSpot",-1)),o("p",Fo,y(i.$t("text.int_hubspot_msg")),1),o("div",Zo,[r(" Loading overlay "),e.loadingData?(l(),d("div",Xo,[...t[0]||(t[0]=[o("span",{class:"animate-spin inline-block w-5 h-5 border-2 border-blue-600 border-t-transparent rounded-full"},null,-1)])])):e.integration?(l(),d(M,{key:2},[r(" Connected "),o("div",Qo,[t[3]||(t[3]=o("p",{class:"text-sm text-gray-400"},"Connected by",-1)),o("p",qo,y(e.integration.integration_email),1),p(e.UiDropdown,{ref:"ddDisconnect",position:"top-middle",width:"240px"},{toggle:k(()=>[p(e.UiButton,{variant:"danger",size:"sm",loading:e.loading},{default:k(()=>[D(y(i.$t("button.disconnect")),1)]),_:1},8,["loading"])]),default:k(({close:n})=>[o("div",Ho,[t[2]||(t[2]=o("p",{class:"text-sm text-gray-700 mb-4"},"Do you want to disconnect this account?",-1)),o("div",Jo,[o("button",{class:"px-4 py-2 rounded-lg border border-gray-300 text-sm font-medium hover:bg-gray-50",onClick:s=>n()},y(i.$t("button.cancel")),9,Ko),o("button",{class:"px-4 py-2 rounded-lg bg-red-600 text-white text-sm font-medium hover:bg-red-700",onClick:e.unsync},y(i.$t("button.disconnect")),1)])])]),_:1},512)])],2112)):(l(),d(M,{key:1},[r(" Not connected "),p(e.UiButton,{loading:e.loading,onClick:e.sync},{default:k(()=>[...t[1]||(t[1]=[D(" Integrate HubSpot ",-1)])]),_:1},8,["loading"])],2112))])])}const en=L(Lo,[["render",$o],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/HubSpot.vue"]]),tn=j({__name:"Pipedrive",setup(i,{expose:t}){t();const{me:a}=ge(me()),e=ee(),u=pe(),{t:f}=ne(),n=g(!1),s=g(!1),b=g(null),h=g(null);te(()=>{w()});async function w(){s.value=!0;const _=await R("GET","integrations/getIntegrations?type=pipedrive");_!=null&&_.data&&_.data.length>0?b.value=_.data[0]:b.value=null,s.value=!1}function A(){var T,G;if(n.value)return;n.value=!0;const _=`https://app.weezly.com/api/v1/integrations/pipedriveSync?id=${Str
6ing((T=a.value)==null?void 0:T.userID)}&code=${String((G=a.value)==null?void 0:G.tokenCode)}`;u.open(_,{success:"/integrations?v=",onSuccess:()=>{e.success(f("alert.your_are_connected_to_pipedrive")),w()},onDone:()=>{n.value=!1}})}async function U(){var T;(T=h.value)==null||T.close(),await R("POST","meetings/editSyncCalendar",{id:b.value.id,is_delete:1})&&w()}const S={me:a,toast:e,oauth:u,t:f,loading:n,loadingData:s,integration:b,ddDisconnect:h,loadData:w,sync:A,unsync:U,get UiButton(){return J},get UiDropdown(){return se},get icon(){return Ge}};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),on={class:"rounded-2xl border border-gray-200 bg-white p-8"},nn=["src"],sn={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},an={class:"mt-6 flex flex-col items-center"},rn={key:0,class:"flex items-center justify-center py-4"},ln={class:"flex flex-col items-center gap-2"},dn={class:"text-sm font-semibold text-gray-900"},cn={class:"p-4 text-center",style:{width:"240px"}},un={class:"flex items-center justify-between gap-2"},gn=["onClick"];function mn(i,t,a,e,u,f){return l(),d("div",on,[o("img",{src:e.icon,alt:"Pipedrive",class:"h-14 w-14 mx-auto mb-3"},null,8,nn),t[4]||(t[4]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Pipedrive",-1)),o("p",sn,y(i.$t("text.int_pipedrive_msg")),1),o("div",an,[r(" Loading overlay "),e.loadingData?(l(),d("div",rn,[...t[0]||(t[0]=[o("span",{class:"animate-spin inline-block w-5 h-5 border-2 border-blue-600 border-t-transparent rounded-full"},null,-1)])])):e.integration?(l(),d(M,{key:2},[r(" Connected "),o("div",ln,[t[3]||(t[3]=o("p",{class:"text-sm text-gray-400"},"Connected by",-1)),o("p",dn,y(e.integration.integration_email),1),p(e.UiDropdown,{ref:"ddDisconnect",position:"top-middle",width:"240px"},{toggle:k(()=>[p(e.UiButton,{variant:"danger",size:"sm",loading:e.loading},{default:k(()=>[D(y(i.$t("button.disconnect")),1)]),_:1},8,["loading"])]),default:k(({close:n})=>[o("div",cn,[t[2]||(t[2]=o("p",{class:"text-sm text-gray-700 mb-4"},"Do you want to disconnect this account?",-1)),o("div",un,[o("button",{class:"px-4 py-2 rounded-lg border border-gray-300 text-sm font-medium hover:bg-gray-50",onClick:s=>n()},y(i.$t("button.cancel")),9,gn),o("button",{class:"px-4 py-2 rounded-lg bg-red-600 text-white text-sm font-medium hover:bg-red-700",onClick:e.unsync},y(i.$t("button.disconnect")),1)])])]),_:1},512)])],2112)):(l(),d(M,{key:1},[r(" Not connected "),p(e.UiButton,{loading:e.loading,onClick:e.sync},{default:k(()=>[...t[1]||(t[1]=[D(" Integrate Pipedrive ",-1)])]),_:1},8,["loading"])],2112))])])}const pn=L(tn,[["render",mn],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Pipedrive.vue"]]),fn="/assets/wp-1-C32D48Oy.png",yn="/assets/wp-2-DJDSV_tr.png",bn="/assets/wp-3-DmzgPYry.png",vn=j({__name:"Wordpress",setup(i,{expose:t}){t();const a={get icon(){return Pe},get wp1(){return fn},get wp2(){return yn},get wp3(){return bn}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),xn={class:"rounded-2xl border border-gray-200 bg-white p-8"},hn={class:"flex flex-col items-center"},_n=["src"],wn={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},kn={class:"text-sm text-gray-600 leading-relaxed"},Cn={class:"flex justify-center"},An=["src"],Sn={class:"flex justify-center"},Un=["src"],En={class:"flex justify-center"},In=["src"];function Wn(i,t,a,e,u,f){return l(),d("div",xn,[r(" Header "),o("div",hn,[o("img",{src:e.icon,alt:"Wordpress",class:"h-14 w-14 mx-auto mb-3"},null,8,_n),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Wordpress",-1)),o("p",wn,y(i.$t("text.int_wordpress_msg")),1)]),t[9]||(t[9]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),o("div",kn,[t[1]||(t[1]=o("p",{class:"my-3"},[o("strong",{class:"font-semibold text-gray-900"},"To get started:")],-1)),t[2]||(t[2]=o("p",{class:"my-3"}," Determine which version of WordPress you're using - wordpress.com or wordpress.org. To find out, follow these steps: ",-1)),t[3]||(t[3]=o("ul",{class:"list-disc pl-5 space-y-1 my-3"},[o("li",null,"Log in to your WordPress account and go to the admin dashboard."),o("li",null,"Hover your cursor over the WordPress logo in the top left corner of the page:"),o("li",null,"WordPress.org users will see a drop-down menu appear with options."),o("li",null,"WordPress.com users will not see a menu.")],-1)),o("div",Cn,[o("img",{src:e.wp1,alt:"",class:"rounded-lg border border-gray-200 my-4 mx-auto"},null,8,An)]),t[4]||(t[4]=o("p",{class:"my-3"}," Generate the Weezly embed code for the event type or booking page you want to use. Weezly's three embed options (inline, pop-up text, and pop-up widget) are supported on WordPress.org. ",-1)),t[5]||(t[5]=o("p",{class:"my-3"},[o("strong",{class:"font-semibold text-gray-900"},"To embed Weezly on WordPress.org:")],-1)),t[6]||(t[6]=o("p",{class:"my-3"},' To embed Weezly on a single page of your site, sign in to WordPress and go to the admin area. Choose the page you want to edit, add a new block by selecting the "+" icon, choose Custom HTML from the Formatting drop-down menu, and paste your Weezly embed code. Preview the changes and click Update to save. ',-1)),o("div",Sn,[o("img",{src:e.wp2,alt:"",class:"rounded-lg border border-gray-200 my-4 mx-auto"}
6,null,8,Un)]),t[7]||(t[7]=o("p",{class:"my-3"}," To apply the pop-up widget embed across your entire site, go to the Appearance section and open the Editor. Find the Theme Footer in the Theme Files sidebar, locate the </body> tag at the bottom of the footer, and paste the pop-up widget code from your Weezly account just above the tag. ",-1)),o("div",En,[o("img",{src:e.wp3,alt:"",class:"rounded-lg border border-gray-200 my-4 mx-auto"},null,8,In)]),t[8]||(t[8]=$('<p class="my-3"><strong class="font-semibold text-gray-900">For WordPress.com:</strong></p><p class="my-3"> Weezly's embedded widgets are not compatible, so you'll need to add a hyperlink to your Weezly page directly on your WordPress.com site. To do this: </p><ul class="list-disc pl-5 space-y-1 my-3"><li> While editing a page, highlight the text you want to link and select the Insert/edit link button from the toolbar. </li><li>Paste the URL to your personal Weezly page, an event type page, or a team page.</li></ul><p class="my-3"> If you're using the third-party plugin Elementor to build a custom theme for your WordPress site, you can add the Weezly embed code to any WordPress page. Copy the embed code from your Weezly account and paste it into the Elementor Shortcode Widget. </p>',4))])])}const Tn=L(vn,[["render",Wn],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Wordpress.vue"]]),Dn=j({__name:"Wix",setup(i,{expose:t}){t();const a={get icon(){return Ve}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),zn={class:"rounded-2xl border border-gray-200 bg-white p-8"},Rn={class:"flex flex-col items-center"},Bn=["src"],Mn={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"};function Gn(i,t,a,e,u,f){return l(),d("div",zn,[r(" Header "),o("div",Rn,[o("img",{src:e.icon,alt:"Wix",class:"h-14 w-14 mx-auto mb-3"},null,8,Bn),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Wix",-1)),o("p",Mn,y(i.$t("text.int_wix_msg")),1)]),t[1]||(t[1]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),t[2]||(t[2]=$('<div class="text-sm text-gray-600 leading-relaxed"><p class="my-3"> This guide is for all users, and it's applicable to all plans. Follow these steps to add Weezly to your Wix site: </p><p class="my-3">1. <strong class="font-semibold text-gray-900">Sign in</strong> to your Wix account.</p><p class="my-3">2. Choose the "<strong class="font-semibold text-gray-900">Edit Site</strong>" option to open the site editor.</p><p class="my-3">3. Click on the "<strong class="font-semibold text-gray-900">+</strong>" icon and select "<strong class="font-semibold text-gray-900">Embed</strong>" from the drop-down menu.</p><p class="my-3"> 4. From there, choose "<strong class="font-semibold text-gray-900">Custom Embeds</strong>" and then select "<strong class="font-semibold text-gray-900">Embed a site</strong>". You'll notice that an adjustable widget is added to your page. </p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/25m2H0UG3x.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3"> 5. Next, click on "<strong class="font-semibold text-gray-900">Enter Website Address</strong>" and <strong class="font-semibold text-gray-900">paste the link to your Weezly landing</strong>, scheduling, or team page. </p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/share_wix-1.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3"> You can obtain this link directly from your Weezly Home Page or by selecting "<strong class="font-semibold text-gray-900">Copy Link</strong>" from the specific event type. </p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/9BqWhhWvoa-1.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3"> 6. You now have the freedom to adjust the size and location of the widget to fit your site design. All of this customization is done within Wix. </p><p class="my-3">7. Once you're satisfied with how things look, publish your site to make the changes live!</p><p class="my-3">If you want to add links or buttons that direct to your Weezly page:</p><ul class="list-disc pl-5 space-y-1 my-3"><li>To paste your Weezly URL, select any image or text on your site, then choose the "Link" option.</li><li> To add a customizable button that links to Weezly, click on the "+", select "Button", choose a button that suits your site design, then edit the button text accordingly. </li></ul><p class="my-3"> With these steps, you should have successfully integrated Weezly into your <a href="https://wix.com/" target="_blank" class="text-blue-600 hover:underline">Wix</a> site. </p></div>',1))])}const Pn=L(Dn,[["render",Gn],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Wix.vue"]]),Vn=j({__name:"Squarespace",setup(i,{expose:t}){t();const a={get icon(){return Ne}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Nn={class:"rounded-2xl border border-gray-200 bg-white p-8"},jn={class:"flex flex-col items-center"},Ln=["src"],Yn={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"};function On(i,t,a,e,u,f){return l(),d("div",Nn,[r(" Header "),o("div",jn,[o("img",{src:e.icon,alt:"Squarespace",class:"h-14 w-14 mx-auto mb-3"},null,8,Ln),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Squarespace",-1)),o("p",Yn,y(i.$t("text.int_squarespace_msg")),1)]),t[1]||(t[1]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),t[2]||(t[2]=$('<div class="text-sm text-gray-600 leading-relaxed"><p class="my-3"><a href="https://squarespace.com/" target="_blank" class="text-blue-600 hover:underline">Squarespace</a> is a popular online website building and hosting platform. It's known for its user-friendly interface and sleek, professional templates, making it an ideal choice for businesses and individuals who want to create attractive, functional websites without needing to code. </p><p class="my-3"> Integrating a scheduling tool like Weezly into a Squarespace website can greatly enhance its functionality. Weezly is an appointment scheduling software that allows businesses to
6streamline their booking process. By integrating Weezly with Squarespace, users can easily set up and manage appointments directly on their websites. This makes the process more efficient and convenient for both the business and its clients, saving time and reducing the potential for scheduling errors or miscommunications. </p><h6 class="font-semibold text-gray-900 my-3">How to integrate Weezly in Squarespace</h6><p class="my-3">1. Sign in to Squarespace.</p><p class="my-3">2. Navigate to the page you would like to edit.</p><p class="my-3">3. Hover over page content and select <strong class="font-semibold text-gray-900">Edit</strong>.</p><p class="my-3"> 4. Add a code block. To do so, follow the steps in Squarespace's <a href="https://support.squarespace.com/hc/en-us/articles/206543167-Code-blocks" target="_blank" class="text-blue-600 hover:underline">Add a code block</a>. </p><p class="my-3"> 5. In Weezly, retrieve your embed code by following the steps in <a href="https://weezly.com/docs/integrations/integrate-callendo-on-your-website/" target="_blank" class="text-blue-600 hover:underline">Embedding Weezly on your site</a>. </p><p class="my-3">6. In Squarespace, paste the code snippet you copied from Weezly.</p><p class="my-3">7. Select <strong class="font-semibold text-gray-900">Apply</strong>.</p></div>',1))])}const Fn=L(Vn,[["render",On],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Squarespace.vue"]]),Zn=j({__name:"Unbounce",setup(i,{expose:t}){t();const a={get icon(){return je}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Xn={class:"rounded-2xl border border-gray-200 bg-white p-8"},Qn={class:"flex flex-col items-center"},qn=["src"],Hn={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"};function Jn(i,t,a,e,u,f){return l(),d("div",Xn,[r(" Header "),o("div",Qn,[o("img",{src:e.icon,alt:"Unbounce",class:"h-14 w-14 mx-auto mb-3"},null,8,qn),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Unbounce",-1)),o("p",Hn,y(i.$t("text.int_unbounce_msg")),1)]),t[1]||(t[1]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),t[2]||(t[2]=$('<div class="text-sm text-gray-600 leading-relaxed"><p class="my-3"> This feature is accessible to all users across all plans. Please note that during the setup process, you will need to switch between Weezly and Unbounce. It's recommended to keep each platform open in a separate browser window for ease of use. </p><p class="my-3">To integrate <strong class="font-semibold text-gray-900">Weezly</strong> into an <strong class="font-semibold text-gray-900">Unbounce</strong> site, follow the steps below:</p><p class="my-3">1. <strong class="font-semibold text-gray-900">Sign in</strong> to your Unbounce account.</p><p class="my-3"> 2. Navigate to the page you want to edit by selecting the gear icon next to the page name, then choose "<strong class="font-semibold text-gray-900">Edit Champion Variant</strong>". </p><p class="my-3"> 3. Look for "<strong class="font-semibold text-gray-900">Custom HTML</strong>" in the menu options to the left of the window, click, and drag the button onto your page. </p><p class="my-3"> 4. To get the embed code for your booking page, go to your Home page, click on the gear icon on the right side to expand the menu, then select "<strong class="font-semibold text-gray-900">Add to Website</strong>". </p><div class="pl-6 my-3"><p class="my-3">Step 1.</p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/BQzZpJNVFI-1.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3">Step 2.</p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/chrome_85GCtbvBrA-2.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3"> Alternatively, if you want to copy the embed code for a specific event type, find your preferred event type, click <strong class="font-semibold text-gray-900">Share</strong>, and then <strong class="font-semibold text-gray-900">Add to Website</strong>. </p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/lzeww8fkFc.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div></div><p class="my-3">5. Decide on how you want to add Weezly to your site.</p><p class="my-3">6. After adjusting your embed settings, click on "<strong class="font-semibold text-gray-900">Copy Code</strong>".</p><p class="my-3"> 7. Go back to <a href="https://unbounce.com/" target="_blank" class="text-blue-600 hover:underline">Unbounce</a>, paste your copied code into the blank field, and click on "<strong class="font-semibold text-gray-900">Save Code</strong>". </p><p class="my-3">8. You can then click and drag or resize the placeholder to position it as you want.</p><p class="my-3"> 9. Click on "<strong class="font-semibold text-gray-900">Preview</strong>" to ensure that <strong class="font-semibold text-gray-900">Weezly</strong> is working as expected on your site. </p><p class="my-3"> Please note that if you've applied an Unbounce theme to your website, it could alter how Weezly appears on your site. </p></div>',1))])}const Kn=L(Zn,[["render",Jn],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Unbounce.vue"]]),$n=j({__name:"Weebly",setup(i,{expose:t}){t();const a={get icon(){return Le}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),es={class:"rounded-2xl border border-gray-200 bg-white p-8"},ts={class:"flex flex-col items-center"},os=["src"],ns={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"};function ss(i,t,a,e,u,f){return l(),d("div",es,[r(" Header "),o("div",ts,[o("img",{src:e.icon,alt:"Weebly",class:"h-14 w-14 mx-auto mb-3"},null,8,os),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Weebly",-1)),o("p",ns,y(i.$t("text.int_weebly_msg")),1)]),t[1]||(t[1]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),t[2]||(t[2]=$('<div class="text-sm text-gray-600 leading-relaxed"><p class="my-3"> 1. Log into your <a href="https://www.weebly.com/" target="_blank" class="text-blue-600 hover:underline">Weebly</a> account and choose "<strong class="font-semibold text-gray-900">Edit Site</strong>". </p><p class="my-3"> 2. Navigate to the "Build" tab, select the page you intend to modify, and utilize the Basic toolbar located on the left side of the screen. </p><p class="my-3">3. Find the option to add an embed code, then drag and drop it to the desired location on your page.</p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/weebly_embed.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3"> 4. <a href="https://weezly.com/docs/integrations/integrate-callendo-on-your-website/" target="_blank" class="text-blue-600 hover:underline">Paste the embed code from your Weezly</a> account into the custom HTML box. Make your changes live by publishing your website. </p></div>',1))])}const as=L($n,[["render",ss],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Weebly.vue"]]),rs=j({__name:"Shopify",setup(i,{expose:t}){t();const a={get icon(){return Ye}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),ls={class:"rounded-2xl border border-gray-200 bg-white p-8"},is={class:"flex flex-col items-center"},ds=["src"],cs={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"};function us(i,t,a,e,u,f){return l(),d("div",ls,[r(" Header "),o("div",is,[o("img",{src:e.icon,alt:"Shopify",class:"h-14 w-14 mx-auto mb-3"},null,8,ds),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Shopify",-1)),o("p",cs,y(i.$t("text.int_shopify_meet_msg")),1)]),t[1]||(t[1]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),t[2]||(t[2]=$('<div class="text-sm text-gray-600 leading-relaxed"><p class="my-3"> This feature is accessible to all users across all plans. You can embed your Weezly booking page directly onto your Shopify site by utilizing one of our embed options. To find your Weezly embed code, follow the appropriate steps for embedding Weezly on your site before adding the code to your Shopify site. </p><p class="my-3"> To add the widget popup, the Shopify community provides instructions to insert your co
6de directly below the <code class="bg-gray-100 rounded px-1 py-0.5 font-mono text-xs"><head></code> tag in your theme's code: </p><p class="my-3">1. Navigate to "<strong class="font-semibold text-gray-900">Online Store</strong>", then "<strong class="font-semibold text-gray-900">Themes</strong>".</p><p class="my-3">2. From the "<strong class="font-semibold text-gray-900">Actions</strong>" dropdown, select "<strong class="font-semibold text-gray-900">Edit code</strong>".</p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/V5Fa2GDINx-1.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3">3. From the left-hand menu, select "<strong class="font-semibold text-gray-900">theme.liquid</strong>".</p><p class="my-3"> 4. Create a space below the <code class="bg-gray-100 rounded px-1 py-0.5 font-mono text-xs"><head></code> tag, and paste your <a href="https://weezly.com/docs/integrations/integrate-callendo-on-your-website/" target="_blank" class="text-blue-600 hover:underline">Weezly embed code</a>. To find your embed code, follow the steps in the guide for embedding Weezly on your site. </p><div class="flex justify-center"><img src="https://weezly.com/wp-content/uploads/2023/06/ttX3oqJlgW-1.jpg" alt="" class="rounded-lg border border-gray-200 my-4 mx-auto"></div><p class="my-3">5. To preview the changes, select "<strong class="font-semibold text-gray-900">Preview</strong>".</p><p class="my-3"> You also have the option to add the Weezly embed code in a "Snippet" file and then reference it in the file for your website page. You can learn more about using our embed code on their platform by checking out a community forum post from Shopify. </p></div>',1))])}const gs=L(rs,[["render",us],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Shopify.vue"]]),ms='{"id":58,"booking":{"date":"2023/07/05","time":"10:00","timezone":"Asia/Ho_Chi_Minh","status":"active","location_type":null,"location_value":null,"cancel_reason":null,"cancel_time":null,"rescheduled_reason":null,"rescheduled_time":null},"event":{"name":"Lunch with me","type":"One-to-One","duration":"60_m"},"invitee":{"name":"Quang Minh","email":"[email protected]"},"question_and_answers":"What is your phone number?: +84123456789"}',ps=j({__name:"Webhook_events",setup(i,{expose:t}){t();const a=he(),e=ee(),{t:u}=ne(),f=g(!1),n=g(""),s=g(!1),b=g(!1),h=g(""),w=g(!1),A=g(!1),U=g("all"),S=g([]),_=oe(()=>a.allEvents);te(()=>{T(),_.value.length===0&&a.fetchAllEvents()});function T(){const c=a.settings;c.webhook_created_url!=null&&(f.value=!0,n.value=c.webhook_created_url),c.webhook_canceled_url!=null&&(b.value=!0,h.value=c.webhook_canceled_url),c.webhook_event_ids&&(S.value=JSON.parse(c.webhook_event_ids),U.value="selected")}function G(){n.value===""||n.value.startsWith("http")?s.value=!1:s.value=!0}function F(){h.value===""||h.value.startsWith("http")?w.value=!1:w.value=!0}const H=g(null),Z=g(null);function X(c){f.value=c}function Q(c){b.value=c}async function m(){if(A.value||f.value&&s.value||b.value&&w.value)return;const c=f.value?n.value:null,v=b.value?h.value:null;let V=null;U.value==="selected"&&S.value.length>0&&(V=JSON.stringify(S.value)),A.value=!0;const B=await R("POST","scheduling/settings",{data:{webhook_created_url:c,webhook_canceled_url:v,webhook_event_ids:V}});B?(a.updateSettings(B.data),T(),e.success(u("alert.your_settings_saved"))):e.alert(u("alert.something_wrong"),"error"),A.value=!1}function C(c){return!!S.value.find(v=>v.id==c.id&&v.type==c.type)}function E(c){S.value.find(V=>V.id==c.id&&V.type==c.type)?S.value=S.value.filter(V=>V.id!=c.id||V.type!=c.type):S.value.push({id:c.id,type:c.type})}const z={schedulingStore:a,toast:e,t:u,created_enable:f,created_url:n,created_url_error:s,canceled_enable:b,canceled_url:h,canceled_url_error:w,saving:A,trigger_type:U,trigger_ids:S,exdata:ms,all_events:_,loadData:T,checkCreatedURL:G,checkCanceledURL:F,createdUrlRef:H,canceledUrlRef:Z,enableCreate:X,enableCancel:Q,save:m,isEventSelected:C,toggleEvent:E,get UiButton(){return J}
6,get UiToggle(){return le},get UiTextField(){return re},get UiCheckbox(){return Te}};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}}),fs={class:"text-sm leading-relaxed"},ys={class:"trig-head"},bs={class:"trig-info"},vs={class:"trig-title"},xs={class:"trig-sub"},hs={key:0,class:"trig-body"},_s={class:"trig-head"},ws={class:"trig-info"},ks={class:"trig-title"},Cs={class:"trig-sub"},As={key:0,class:"trig-body"},Ss={class:"mb-5"},Us={class:"seg"},Es={key:0,class:"mt-3 space-y-1.5"},Is=["onClick"],Ws={class:"flex-1 truncate text-gray-800"},Ts={key:0,class:"shrink-0 px-2 py-0.5 rounded text-xs font-medium bg-blue-100 text-blue-700"},Ds={key:1,class:"shrink-0 px-2 py-0.5 rounded text-xs font-medium bg-violet-100 text-violet-700"},zs={key:2,class:"shrink-0 px-2 py-0.5 rounded text-xs font-medium bg-amber-100 text-amber-700"},Rs={key:3,class:"shrink-0 px-2 py-0.5 rounded text-xs font-medium bg-emerald-100 text-emerald-700"},Bs={class:"my-5"},Ms={class:"mt-8 space-y-2 text-gray-600"},Gs={class:"font-medium text-gray-700"},Ps={class:"mt-2 rounded-xl border border-gray-200 bg-gray-50 p-4 text-xs overflow-x-auto leading-5"};function Vs(i,t,a,e,u,f){return l(),d("div",fs,[r(" Invitee created "),o("div",{class:N(["trig",{on:e.created_enable}])},[o("div",ys,[o("div",bs,[o("p",vs,y(i.$t("text.invite_created")),1),o("p",xs,y(i.$t("text.triggers_when_invitee_schedules")),1)]),p(e.UiToggle,{modelValue:e.created_enable,"onUpdate:modelValue":e.enableCreate},null,8,["modelValue"])]),e.created_enable?(l(),d("div",hs,[p(e.UiTextField,{ref:"createdUrlRef",modelValue:e.created_url,"onUpdate:modelValue":[t[0]||(t[0]=n=>e.created_url=n),e.checkCreatedURL],placeholder:"https://your-endpoint.com/webhook",class:"block w-full",error:e.created_url_error?i.$t("text.invalid_url"):""},null,8,["modelValue","error"])])):r("v-if",!0)],2),r(" Invitee canceled "),o("div",{class:N(["trig",{on:e.canceled_enable}])},[o("div",_s,[o("div",ws,[o("p",ks,y(i.$t("text.invitee_canceled")),1),o("p",Cs,y(i.$t("text.triggers_when_invitee_cancels")),1)]),p(e.UiToggle,{modelValue:e.canceled_enable,"onUpdate:modelValue":e.enableCancel},null,8,["modelValue"])]),e.canceled_enable?(l(),d("div",As,[p(e.UiTextField,{ref:"canceledUrlRef",modelValue:e.canceled_url,"onUpdate:modelValue":[t[1]||(t[1]=n=>e.canceled_url=n),e.checkCanceledURL],placeholder:"https://your-endpoint.com/webhook",class:"block w-full",error:e.canceled_url_error?i.$t("text.invalid_url"):""},null,8,["modelValue","error"])])):r("v-if",!0)],2),r(" Event trigger filter "),o("div",Ss,[t[4]||(t[4]=o("h6",{class:"font-semibold text-gray-900 mb-3"},[o("strong",null,"What events should have webhook triggered:")],-1)),o("div",Us,[o("button",{type:"button",class:N(["seg-btn",{active:e.trigger_type==="all"}]),onClick:t[2]||(t[2]=n=>e.trigger_type="all")},"All events",2),o("button",{type:"button",class:N(["seg-btn",{active:e.trigger_type==="selected"}]),onClick:t[3]||(t[3]=n=>e.trigger_type="selected")},"Selected events",2)]),e.trigger_type==="selected"?(l(),d("div",Es,[(l(!0),d(M,null,K(e.all_events,n=>(l(),d("div",{key:`${n.type}-${n.id}`,class:N(["flex items-center gap-3 rounded-lg border p-3 cursor-pointer transition-colors",e.isEventSelected(n)?"border-blue-400 bg-blue-50":"border-gray-200 hover:border-blue-300"]),onClick:s=>e.toggleEvent(n)},[p(e.UiCheckbox,{isChecked:e.isEventSelected(n)},null,8,["isChecked"]),o("span",Ws,y(n.name),1),n.type==="event"?(l(),d("span",Ts,"Booking page")):r("v-if",!0),n.type==="oneoff"?(l(),d("span",Ds,"Timeslot picker")):r("v-if",!0),n.type==="poll"?(l(),d("span",zs,"Group invite")):r("v-if",!0),n.type==="embed"?(l(),d("span",Rs,"Website widget")):r("v-if",!0)],10,Is))),128))])):r("v-if",!0)]),r(" Save "),o("div",Bs,[p(e.UiButton,{loading:e.saving,onClick:e.save},{default:k(()=>[D(y(i.$t("button.save")),1)]),_:1},8,["loading"])]),r(" Reference info "),o("div",Ms,[o("p",Gs,y(i.$t("text.a_request_will_sent_webhook"))+":",1),t[5]||(t[5]=o("p",null,[D("Method: "),o("strong",{class:"text-gray-900"},"POST")],-1)),t[6]||(t[6]=o("p",null,[D("Content-Type: "),o("strong",{class:"text-gray-900"}
6,"application/json")],-1)),t[7]||(t[7]=o("p",null,"Example JSON data:",-1)),o("pre",Ps,y(JSON.stringify(JSON.parse(e.exdata),null,2)),1)])])}const Ns=L(ps,[["render",Vs],["__scopeId","data-v-36a2fdc2"],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Webhook_events.vue"]]),js=j({__name:"Webhook_dynamics",setup(i,{expose:t}){t();const a=ee(),e=g([]),u=g([]),f=g(!1),n=g(0),s=g(!1),b=g(!1),h=g(""),w=g(""),A=g(""),U=g(""),S=g(0),_=g(0),T=g({}),G=g({}),F=g(null),H=g(null),Z=oe(()=>{let x=[],W=[];for(let I=0;I<e.value.length;I++)if(e.value[I].id===n.value){const P=e.value[I].campaign_video_created?JSON.parse(e.value[I].campaign_video_created):[];P.includes(0)?(W.push({id:0}),x.push(0)):P.forEach(Y=>{const q=u.value.find(fe=>fe.id===Y);q&&(x.push(q.id),W.push(q))});break}return{list_id:x,list:W}}),X=oe(()=>{let x=[],W=[];for(let I=0;I<e.value.length;I++)if(e.value[I].id===n.value){const P=e.value[I].campaign_video_viewed?JSON.parse(e.value[I].campaign_video_viewed):[];P.includes(0)?(W.push({id:0}),x.push(0)):P.forEach(Y=>{const q=u.value.find(fe=>fe.id===Y);q&&(x.push(q.id),W.push(q))});break}return{list_id:x,list:W}});te(()=>{Q()});async function Q(){if(f.value)return;f.value=!0;const x=await R("GET","dynamic/getWebhooks");x?(e.value=x.data.webhooks,u.value=x.data.campaigns,f.value=!1):a.alert("Could not load webhooks. Please try again.","error")}function m(){s.value||(h.value="",w.value="",A.value="",U.value="",b.value=!1,S.value=0)}async function C(){if(s.value)return;let x=!1;const W=h.value.trim();W===""&&(w.value="Name should not be empty",x=!0);const I=A.value.trim();if(ke(I)||(U.value="Url is not valid",x=!0),x)return;s.value=!0;const P={name:W,url:I};if(S.value){const Y=await ae(S.value,P);s.value=!1,Y&&m()}else{const Y=await R("POST","dynamic/createWebhook",P);s.value=!1,Y?(e.value.unshift(Y.data),a.success("A webhook has been created."),m()):a.alert("Could not create webhook. Please try again.","error")}}function E(x){S.value=x.id,h.value=x.name,A.value=x.url,w.value="",U.value="",b.value=!0}async function z(x){_.value=x.id;const W=await R("DELETE","dynamic/deleteWebhook",{id:x.id});_.value=0,W?e.value=e.value.filter(I=>I.id!==x.id):a.alert("Could not delete webhook. Please try again.","error")}function c(x){n.value=x.id===n.value?0:x.id}function v(x){const W=e.value.find(P=>P.id===n.value);if(!W)return;let I=W.campaign_video_created?JSON.parse(W.campaign_video_created):[];I.includes(x)?I=I.filter(P=>P!==x):x===0?I=[0]:(I.push(x),I=I.filter(P=>P!==0)),ae(W.id,{campaign_video_created:JSON.stringify(I)})}function V(x){const W=e.value.find(P=>P.id===n.value);if(!W)return;let I=W.campaign_video_viewed?JSON.parse(W.campaign_video_viewed):[];I.includes(x)?I=I.filter(P=>P!==x):x===0?I=[0]:(I.push(x),I=I.filter(P=>P!==0)),ae(W.id,{campaign_video_viewed:JSON.stringify(I)})}async function ae(x,W){const I={};for(let Y=0;Y<e.value.length;Y++)if(e.value[Y].id===x){for(const q in W)I[q]=e.value[Y][q],e.value[Y][q]=W[q];break}const P=await R("POST","dynamic/updateWebhook",{id:x,...W});if(P){a.success("The webhook has been updated.");for(let Y=0;Y<e.value.length;Y++)if(e.value[Y].id===P.data.id){for(const q in W)e.value[Y][q]=P.data[q];break}return!0}else{for(let Y=0;Y<e.value.length;Y++)if(e.value[Y].id===x){for(const q in I)e.value[Y][q]=I[q];break}return a.alert("Could not update webhook. Please try again.","error"),!1}}const B={toast:a,webhooks:e,campaigns:u,loading:f,select_id:n,creating:s,open_create:b,name:h,error_name:w,url:A,error_url:U,edit_id:S,delete_id:_,ddCampaignCreated:T,ddCampaignViewed:G,nameInputRef:F,urlInputRef:H,selectedCampaigns:Z,selectedCampaignsViewed:X,loadData:Q,closeCreateWebhook:m,createWebhook:C,editWebhook:E,removeWebhook:z,toggleSelect:c,toggleCampaign:v,toggleCampaignViewed:V,updateWebhook:ae,get UiButton(){return J},get UiToggle(){return le},get UiTextField(){return re},get UiModal(){return de},get UiDropdown(){return se},get UiCheckbox(){return Te},get MoreHorizontal(){return ce},get ChevronDown(){return ht},get ChevronRight(){return ot},get Plus(){return tt},get Eye(){return Ce},get PenSquare(){return St},get Loader2(){return ie}};return Object.defineProperty(B,"__isScriptSetup",{enumerable:!1,value:!0}),B}}),Ls={key:0,class:"flex justify-center py-10"},Ys={key:1},Os={class:"flex justify-end mb-4"},Fs={key:0},Zs={class:"flex items-center"},Xs={class:"flex-1 overflow-hidden"},Qs=["onClick"],qs={class:"truncate"},Hs={class:"flex-[2] px-4 text-sm text-gray-500 truncate"},Js={class:"w-20 flex justify-center"},Ks={class:"w-8 flex justify-center"},$s={key:0},ea={class:"p-1.5 rounded-lg hover:bg-gray-100 text-gray-500 transition-colors"},ta={class:"py-1 min-w-[120px]"},oa=["onClick"],na=["onClick"],sa={key:0,class:"mt-3 rounded-xl border border-gray-200 p-4 space-y-1"},aa={class:"flex items-center gap-3 border-b border-gray-100 py-2.5"},ra={class:"flex items-center gap-3 border-b border-gray-100 py-2.5"},la={class:"flex-1 mx-2 flex flex-wrap gap-1"},ia=["onClick"],da={class:"p-1.5 rounded-lg hover:bg-gray-100 text-gray-500 transition-colors"},ca={class:"py-1 min-w-[160px]"},ua=["onClick"],ga={class:"flex items-center gap-3 border-b border-gray-100 py-2.5"},ma={class:"flex items-center gap-3 border-b border-gray-100 py-2.5"},pa={class:"flex-1 mx-2 flex flex-wrap gap-1"},fa=["onClick"],ya={class:"p-1.5 rounded-lg hover:bg-gray-100 text-gray-500 transition-colors"},ba={class:"py-1 min-w-[160px]"},va=["onClick"],xa={class:"space-y-4"};function ha(i,t,a,e,u,f){return l(),d(M,null,[r(" Loading "),e.loading?(l(),d("div",Ls,[p(e.Loader2,{class:"animate-spin text-blue-600",size:28})])):(l(),d("div",Ys,[r(" Header row "),o("div",Os,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.open_create=!0)},{default:k(()=>[...t[8]||(t[8]=[D("New Webhook",-1)])]),_:1})]),r(" List "),e.webhooks.length?(l(),d("div",Fs,[r(" Column headers "),t[17]||(t[17]=$('<div class="flex items-center text-xs font-semibold text-gray-500 uppercase tracking-wide pb-2 px-1 border-b border-gray-100"><div class="flex-1">Name</div><div class="flex-[2] px-4">URL</div><div class="w-20 text-center">Status</div><div class="w-8"></div></div>',1)),r(" Webhook rows "),(l(!0),d(M,null,K(e.webhooks,n=>(l(),d("div",{key:n.id,class:"border-b border-gray-100 py-4"},[o("div",Zs,[r(" Name with expand toggle "),o("div",Xs,[o("button",{class:"inline-flex items-center gap-1 text-sm font-medium text-gray-800 hover:text-blue-600 transition-colors truncate max-w-full",onClick:s=>e.toggleSelect(n)},[o("span",qs,y(n.name),1),n.id===e.select_id?(l(),O(e.ChevronDown,{key:0,size:14,class:"shrink-0 text-blue-600"})):(l(),O(e.ChevronRight,{key:1,size:14,class:"shrink-0 text-blue-500"}))],8,Qs)]),r(" URL "),o("div",Hs,y(n.url),1),r(" Status toggle "),o("div",Js,[p(e.UiToggle,{modelValue:!!n.status,"onUpdate:modelValue":s=>e.updateWebhook(n.id,{status:s?1:0})},null,8,["modelValue","onUpdate:modelValue"])]),r(" Options "),o("div",Ks,[e.delete_id===n.id?(l(),d("div",$s,[p(e.Loader2,{size:18,class:"animate-spin text-red-500"})])):(l(),O(e.UiDropdown,{key:1,position:"bottom-right"},{toggle:k(()=>[o("button",ea,[p(e.MoreHorizontal,{size:16})])]),default:k(({close:s})=>[o("div",ta,[o("button",{class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg transition-colors",onClick:b=>{e.editWebhook(n),s()}},"Edit",8,oa),o("button",{class:"w-full text-left px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg transition-colors",onClick:b=>{e.removeWebhook(n),s()}},"Remove",8,na)])]),_:2},1024))])]),r(" Expanded events panel "),n.id===e.select_id?(l(),d("div",sa,[t[15]||(t[15]=o("p",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-3"},"Events",-1)),r(" Single video created "),o("div",aa,[p(e.PenSquare,{size:16,class:"text-gray-400 shrink-0"}),t[9]||(t[9]=o("span",{class:"text-sm text-gray-700 flex-1"},"Single Video Created",-1)),p(e.UiCheckbox,{isChecked:!!n.single_video_created,onCheckboxChange:s=>e.updateWebhook(n.id,{single_video_created:s?1:0})},null,8,["isChecked","onCheckboxChange"])]),r(" Campaign video created "),o("div",ra,[p(e.PenSquare,{size:16,class:"text-gray-400 shrink-0"}),t[11]||(t[11]=o("span",{class:"text-sm text-gray-700 shrink-0"},"Campaign Video Created",-1)),o("div",la,[(l(!0),d(M,null,K(e.selectedCampaigns.list,s=>(l(),d("span",{key:s.id,class:N(["inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium cursor-pointer",s.id===0?"bg-emerald-100 text-emerald-700 hover:bg-emerald-200":"bg-blue-100 text-blue-700 hover:bg-blue-200"]),onClick:b=>e.toggleCampaign(s.id)}
6,[D(y(s.id===0?"All campaigns":s.name)+" ",1),t[10]||(t[10]=o("span",{class:"text-current opacity-60"},"x",-1))],10,ia))),128))]),p(e.UiDropdown,{ref_for:!0,ref:s=>{e.ddCampaignCreated[n.id]=s},position:"bottom-right",maxHeight:"calc(50vh - 60px)"},{toggle:k(()=>[o("button",da,[p(e.Plus,{size:15})])]),default:k(()=>[o("div",ca,[o("button",{class:N(["w-full text-left px-3 py-2 text-sm rounded-lg transition-colors",e.selectedCampaigns.list_id.includes(0)?"bg-emerald-100 text-emerald-700 hover:bg-red-50":"hover:bg-emerald-50 text-gray-700"]),onClick:t[1]||(t[1]=s=>e.toggleCampaign(0))},"All campaigns",2),(l(!0),d(M,null,K(e.campaigns,s=>(l(),d("button",{key:s.id,class:N(["w-full text-left px-3 py-2 text-sm rounded-lg transition-colors",e.selectedCampaigns.list_id.includes(s.id)?"bg-blue-100 text-blue-700 hover:bg-red-50":"hover:bg-blue-50 text-gray-700"]),onClick:b=>e.toggleCampaign(s.id)},y(s.name),11,ua))),128))])]),_:1},512)]),r(" Single video viewed "),o("div",ga,[p(e.Eye,{size:16,class:"text-gray-400 shrink-0"}),t[12]||(t[12]=o("span",{class:"text-sm text-gray-700 flex-1"},"Single Video Viewed",-1)),p(e.UiCheckbox,{isChecked:!!n.single_video_viewed,onCheckboxChange:s=>e.updateWebhook(n.id,{single_video_viewed:s?1:0})},null,8,["isChecked","onCheckboxChange"])]),r(" Campaign video viewed "),o("div",ma,[p(e.Eye,{size:16,class:"text-gray-400 shrink-0"}),t[14]||(t[14]=o("span",{class:"text-sm text-gray-700 shrink-0"},"Campaign Video Viewed",-1)),o("div",pa,[(l(!0),d(M,null,K(e.selectedCampaignsViewed.list,s=>(l(),d("span",{key:s.id,class:N(["inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium cursor-pointer",s.id===0?"bg-emerald-100 text-emerald-700 hover:bg-emerald-200":"bg-blue-100 text-blue-700 hover:bg-blue-200"]),onClick:b=>e.toggleCampaignViewed(s.id)},[D(y(s.id===0?"All campaigns":s.name)+" ",1),t[13]||(t[13]=o("span",{class:"text-current opacity-60"},"x",-1))],10,fa))),128))]),p(e.UiDropdown,{ref_for:!0,ref:s=>{e.ddCampaignViewed[n.id]=s},position:"bottom-right",maxHeight:"calc(50vh - 60px)"},{toggle:k(()=>[o("button",ya,[p(e.Plus,{size:15})])]),default:k(()=>[o("div",ba,[o("button",{class:N(["w-full text-left px-3 py-2 text-sm rounded-lg transition-colors",e.selectedCampaignsViewed.list_id.includes(0)?"bg-emerald-100 text-emerald-700 hover:bg-red-50":"hover:bg-emerald-50 text-gray-700"]),onClick:t[2]||(t[2]=s=>e.toggleCampaignViewed(0))},"All campaigns",2),(l(!0),d(M,null,K(e.campaigns,s=>(l(),d("button",{key:s.id,class:N(["w-full text-left px-3 py-2 text-sm rounded-lg transition-colors",e.selectedCampaignsViewed.list_id.includes(s.id)?"bg-blue-100 text-blue-700 hover:bg-red-50":"hover:bg-blue-50 text-gray-700"]),onClick:b=>e.toggleCampaignViewed(s.id)},y(s.name),11,va))),128))])]),_:1},512)]),r(" Video played (coming soon) "),t[16]||(t[16]=o("div",{class:"flex items-center py-2.5 text-sm text-gray-400"},[o("span",{class:"flex-1"},"Video played"),o("span",{class:"text-blue-500 text-xs font-medium"},"Coming soon")],-1))])):r("v-if",!0)]))),128))])):(l(),d(M,{key:1},[r(" Empty state "),t[18]||(t[18]=o("div",{class:"text-center py-10 text-gray-400 text-sm"},[o("p",null,"You do not have any webhooks yet.")],-1))],2112)),r(" Create / Edit modal "),p(e.UiModal,{open:e.open_create,title:e.edit_id?"Update Webhook":"Create Webhook","onUpdate:open":t[7]||(t[7]=n=>{n||e.closeCreateWebhook()}),onClose:e.closeCreateWebhook},{default:k(()=>[o("div",xa,[o("div",null,[p(e.UiTextField,{ref:"nameInputRef",modelValue:e.name,"onUpdate:modelValue":[t[3]||(t[3]=n=>e.name=n),t[4]||(t[4]=n=>e.error_name="")],placeholder:"Name *",error:e.error_name},null,8,["modelValue","error"])]),o("div",null,[p(e.UiTextField,{ref:"urlInputRef",modelValue:e.url,"onUpdate:modelValue":[t[5]||(t[5]=n=>e.url=n),t[6]||(t[6]=n=>e.error_url="")],placeholder:"URL *",error:e.error_url},null,8,["modelValue","error"])]),p(e.UiButton,{loading:e.creating,block:"",onClick:e.createWebhook},{default:k(()=>[D(y(e.edit_id?"Update":"Create")+" Webhook ",1)]),_:1},8,["loading"])])]),_:1},8,["open","title"])]))],2112)}const _a=L(js,[["render",ha],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Webhook_dynamics.vue"]]),wa=j({__name:"Webhook_linkedin",setup(i,{expose:t}){t();const a=["#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#34495e","#e91e63","#00bcd4","#8bc34a","#ff5722","#795548","#607d8b","#2196f3","#673ab7","#f44336","#4caf50","#ff9800","#9c27b0"],e=ee(),u=g([]),f=g(!1),n=g(!1),s=g(!1),b=g(""),h=g(""),w=g(""),A=g(""),U=g(0),S=g(0),_=g({});te(()=>{T()});async function T(){if(f.value)return;f.value=!0;const m=await R("GET","integrations/getLinkedinWebhooks");m?(u.value=m.data,f.value=!1):e.alert("Could not load webhooks. Please try again.","error")}function G(){n.value||(b.value="",h.value="",w.value="",A.value="",s.value=!1,U.value=0)}async function F(){if(n.value)return;let m=!1;const C=b.value.trim();C===""&&(h.value="Name should not be empty",m=!0);const E=w.value.trim();
6if(ke(E)||(A.value="Url is not valid",m=!0),m)return;n.value=!0;const z={name:C,url:E};if(U.value){const c=await X(U.value,z);n.value=!1,c&&G()}else{const c=await R("POST","integrations/addLinkedinWebhook",z);n.value=!1,c?(u.value.unshift(c.data),e.success("A webhook has been created."),G()):e.alert("Could not create webhook. Please try again.","error")}}function H(m){U.value=m.id,b.value=m.name,w.value=m.url,h.value="",A.value="",s.value=!0}async function Z(m){S.value=m.id;const C=await R("DELETE","integrations/deleteLinkedinWebhook",{id:m.id});S.value=0,C?u.value=u.value.filter(E=>E.id!==m.id):e.alert("Could not delete webhook. Please try again.","error")}async function X(m,C){var c;C.color&&_.value[m]&&((c=_.value[m])==null||c.close());const E={};for(let v=0;v<u.value.length;v++)if(u.value[v].id===m){for(const V in C)E[V]=u.value[v][V],u.value[v][V]=C[V];break}const z=await R("POST","integrations/updateLinkedinWebhook",{id:m,...C});if(z){e.success("The webhook has been updated.");for(let v=0;v<u.value.length;v++)if(u.value[v].id===z.data.id){for(const V in C)u.value[v][V]=z.data[V];break}return!0}else{for(let v=0;v<u.value.length;v++)if(u.value[v].id===m){for(const V in E)u.value[v][V]=E[V];break}return e.alert("Could not update webhook. Please try again.","error"),!1}}const Q={PALETTE:a,toast:e,webhooks:u,loading:f,creating:n,open_create:s,name:b,error_name:h,url:w,error_url:A,edit_id:U,delete_id:S,ddColorRefs:_,loadData:T,closeCreateWebhook:G,createWebhook:F,editWebhook:H,removeWebhook:Z,updateWebhook:X,get UiButton(){return J},get UiToggle(){return le},get UiTextField(){return re},get UiModal(){return de},get UiDropdown(){return se},get MoreHorizontal(){return ce},get Loader2(){return ie}};return Object.defineProperty(Q,"__isScriptSetup",{enumerable:!1,value:!0}),Q}}),ka={key:0,class:"flex justify-center py-10"},Ca={key:1},Aa={class:"flex justify-end mb-4"},Sa={key:0},Ua={class:"truncate block"},Ea={class:"w-20 flex justify-center"},Ia=["title"],Wa={class:"p-2",style:{width:"168px"}},Ta={class:"grid grid-cols-5 gap-1.5"},Da=["onClick"],za={class:"w-20 flex justify-center"},Ra={class:"w-8 flex justify-center"},Ba={key:0},Ma={class:"p-1.5 rounded-lg hover:bg-gray-100 text-gray-500 transition-colors"},Ga={class:"py-1 min-w-[120px]"},Pa=["onClick"],Va=["onClick"],Na={class:"space-y-4"};function ja(i,t,a,e,u,f){return l(),d(M,null,[r(" Loading "),e.loading?(l(),d("div",ka,[p(e.Loader2,{class:"animate-spin text-blue-600",size:28})])):(l(),d("div",Ca,[r(" Header row "),o("div",Aa,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.open_create=!0)},{default:k(()=>[...t[6]||(t[6]=[D("New Webhook",-1)])]),_:1})]),r(" List "),e.webhooks.length?(l(),d("div",Sa,[r(" Column headers "),t[7]||(t[7]=$('<div class="flex items-center text-xs font-semibold text-gray-500 uppercase tracking-wide pb-2 px-1 border-b border-gray-100"><div class="flex-1">Name</div><div class="flex-[2] px-4">URL</div><div class="w-20 text-center">Color</div><div class="w-20 text-center">Status</div><div class="w-8"></div></div>',1)),r(" Webhook rows "),(l(!0),d(M,null,K(e.webhooks,n=>(l(),d("div",{key:n.id,class:"flex items-center border-b border-gray-100 py-4"},[r(" Name "),o("div",{class:N(["flex-1 overflow-hidden text-sm font-medium",n.status?"text-gray-800":"text-gray-400"])},[o("span",Ua,y(n.name),1)],2),r(" URL "),o("div",{class:N(["flex-[2] px-4 text-sm truncate",n.status?"text-gray-500":"text-gray-400"])},y(n.url),3),r(" Color picker "),o("div",Ea,[p(e.UiDropdown,{ref_for:!0,ref:s=>{e.ddColorRefs[n.id]=s},position:"bottom-right"},{toggle:k(()=>[o("button",{class:"w-7 h-7 rounded-full shadow border-2 border-white ring-1 ring-gray-200 hover:ring-blue-400 transition-all",style:xe({backgroundColor:n.color||"#3498db"}),title:`Color: ${n.color}`},null,12,Ia)]),default:k(()=>[o("div",Wa,[o("div",Ta,[(l(),d(M,null,K(e.PALETTE,s=>o("button",{key:s,class:N(["w-7 h-7 rounded-full border-2 transition-all hover:scale-110",n.color===s?"border-gray-800 ring-2 ring-offset-1 ring-gray-400":"border-white"]),style:xe({backgroundColor:s}),onClick:b=>e.updateWebhook(n.id,{color:s})},null,14,Da)),64))])])]),_:2},1536)]),r(" Status toggle "),o("div",za,[p(e.UiToggle,{modelValue:!!n.status,"onUpdate:modelValue":s=>e.updateWebhook(n.id,{status:s?1:0})},null,8,["modelValue","onUpdate:modelValue"])]),r(" Options "),o("div",Ra,[e.delete_id===n.id?(l(),d("div",Ba,[p(e.Loader2,{size:18,class:"animate-spin text-red-500"})])):(l(),O(e.UiDropdown,{key:1,position:"bottom-right"},{toggle:k(()=>[o("button",Ma,[p(e.MoreHorizontal,{size:16})])]),default:k(({close:s})=>[o("div",Ga,[o("button",{class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg transition-colors",onClick:b=>{e.editWebhook(n),s()}},"Edit",8,Pa),o("button",{class:"w-full text-left px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg transition-colors",onClick:b=>{e.removeWebhook(n),s()}},"Remove",8,Va)])]),_:2},1024))])]))),128))])):(l(),d(M,{key:1},[r(" Empty state "),t[8]||(t[8]=o("div",{class:"text-center py-10 text-gray-400 text-sm"},[o("p",null,"You do not have any webhooks yet.")],-1))],2112)),r(" Create / Edit modal "),p(e.UiModal,{open:e.open_create,title:e.edit_id?"Update Webhook":"Create Webhook","onUpdate:open":t[5]||
6(t[5]=n=>{n||e.closeCreateWebhook()}),onClose:e.closeCreateWebhook},{default:k(()=>[o("div",Na,[o("div",null,[p(e.UiTextField,{modelValue:e.name,"onUpdate:modelValue":[t[1]||(t[1]=n=>e.name=n),t[2]||(t[2]=n=>e.error_name="")],placeholder:"Name *",error:e.error_name},null,8,["modelValue","error"])]),o("div",null,[p(e.UiTextField,{modelValue:e.url,"onUpdate:modelValue":[t[3]||(t[3]=n=>e.url=n),t[4]||(t[4]=n=>e.error_url="")],placeholder:"URL *",error:e.error_url},null,8,["modelValue","error"])]),p(e.UiButton,{loading:e.creating,block:"",onClick:e.createWebhook},{default:k(()=>[D(y(e.edit_id?"Update":"Create")+" Webhook ",1)]),_:1},8,["loading"])])]),_:1},8,["open","title"])]))],2112)}const La=L(wa,[["render",ja],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Webhook_linkedin.vue"]]),Ya=j({__name:"Webhooks",setup(i,{expose:t}){t();const u={tab:g("events"),tabs:[{key:"events",label:"Webhook Events",desc:"Triggers when a booking is created or canceled.",icon:_t},{key:"dynamics",label:"Webhook Automated Videos",desc:"Fires as your automated video campaigns generate.",icon:Ae},{key:"linkedin",label:"Linkedin Profile Webhook",desc:"Sends a webhook with the lead's LinkedIn profile.",img:xt}],get icon(){return Oe},WebhookEvents:Ns,WebhookDynamics:_a,WebhookLinkedin:La};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),Oa={class:"rounded-2xl border border-gray-200 bg-white px-8 py-7 text-center"},Fa=["src"],Za={class:"text-sm text-gray-500 mt-1 max-w-md mx-auto"},Xa={class:"wh-cols"},Qa={class:"wh-menu rounded-2xl border border-gray-200 bg-white p-3"},qa=["onClick"],Ha={class:"wh-ico"},Ja=["src"],Ka={class:"wh-text"},$a={class:"wh-title"},er={class:"wh-desc"},tr={class:"wh-content rounded-2xl border border-gray-200 bg-white p-6 sm:p-7"};function or(i,t,a,e,u,f){return l(),d("div",null,[r(" Header card "),o("div",Oa,[o("img",{src:e.icon,alt:"Webhooks",class:"h-14 w-14 mx-auto mb-3"},null,8,Fa),t[0]||(t[0]=o("h3",{class:"text-lg font-bold text-gray-900"},"Webhooks",-1)),o("p",Za,y(i.$t("text.int_webhooks_msg")),1)]),r(" Menu + content "),o("div",Xa,[r(" Left descriptive menu card "),o("nav",Qa,[(l(),d(M,null,K(e.tabs,n=>o("button",{key:n.key,type:"button",class:N(["wh-item",{active:e.tab===n.key}]),onClick:s=>e.tab=n.key},[o("span",Ha,[n.img?(l(),d("img",{key:0,src:n.img,alt:"",class:"w-[18px] h-[18px] object-contain"},null,8,Ja)):(l(),O(ue(n.icon),{key:1,size:17}))]),o("span",Ka,[o("span",$a,y(n.label),1),o("span",er,y(n.desc),1)])],10,qa)),64))]),r(" Right content card "),o("div",tr,[e.tab==="events"?(l(),O(e.WebhookEvents,{key:0})):e.tab==="dynamics"?(l(),O(e.WebhookDynamics,{key:1})):e.tab==="linkedin"?(l(),O(e.WebhookLinkedin,{key:2})):r("v-if",!0)])])])}const nr=L(Ya,[["render",or],["__scopeId","data-v-f5cd482c"],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Webhooks.vue"]]),sr=j({__name:"Zapier",setup(i,{expose:t}){t();const{t:a}=ne(),e=ee(),{me:u}=ge(me()),f=g(!1);function n(){var b;nt((b=u.value)==null?void 0:b.zapier_api_key),e.success(a("alert.copied_api_key"))}const s={t:a,toast:e,me:u,showKey:f,copyKey:n,get Eye(){return Ce},get EyeOff(){return kt},get Copy(){return wt},get Info(){return st},get UiButton(){return J},get icon(){return Fe}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),ar={class:"rounded-2xl border border-gray-200 bg-white p-8"},rr=["src"],lr={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},ir={class:"space-y-5"},dr={class:"text-sm font-semibold text-gray-800"},cr={class:"flex flex-col gap-3 sm:flex-row sm:items-center"},ur={class:"flex flex-1 items-center rounded-lg border border-dashed border-gray-300 px-3 py-2"},gr=["type","value"],mr={class:"bg-blue-50 text-blue-900 text-sm rounded-lg px-3 py-2 flex items-center gap-2"};function pr(i,t,a,e,u,f){var n;return l(),d("div",ar,[r(" Header "),o("img",{src:e.icon,alt:"Zapier",class:"h-14 w-14 mx-auto mb-3"},null,8,rr),t[2]||(t[2]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Zapier",-1)),o("p",lr,y(i.$t("text.int_zapier_msg")),1),t[3]||(t[3]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),o("div",ir,[o("h4",dr,y(i.$t("text.your_unique_api_key")),1),r(" API key row "),o("div",cr,[o("div",ur,[o("input",{class:"flex-1 min-w-0 bg-transparent font-mono tracking-wider text-sm text-gray-800 focus:outline-none disabled:text-gray-500",disabled:"",type:e.showKey?"text":"password",value:((n=e.me)==null?void 0:n.zapier_api_key)??""},null,8,gr),o("button",{type:"button",class:"ml-2 text-gray-400 hover:text-gray-600 transition-colors",onClick:t[0]||(t[0]=s=>e.showKey=!e.showKey)},[e.showKey?(l(),O(e.EyeOff,{key:0,class:"h-4 w-4"})):(l(),O(e.Eye,{key:1,class:"h-4 w-4"}))])]),p(e.UiButton,{onClick:e.copyKey},{default:k(()=>[p(e.Copy,{class:"h-4 w-4 mr-1.5"}),D(" "+y(i.$t("button.copy_to_clipboard")),1)]),_:1})]),r(" Info note "),o("div",mr,[p(e.Info,{class:"h-4 w-4 shrink-0"}),D(" "+y(i.$t("text.your_api_key_zapier_access")),1)]),r(" Setup steps "),t[1]||(t[1]=o("ol",{class:"text-sm text-gray-600 leading-relaxed space-y-1 list-none"},[o("li",null,"1. Log into your Zapier account and create a new Zap."),o("li",null,"2. Select Weezly as your Trigger app. Also choose the Trigger."),o("li",null,"3. Select the corresponding Action a
6pp and Action."),o("li",null,"4. Click Continue. When prompted, name your connection and then enter your Unique API Key."),o("li",null,"5. You're set!")],-1))])])}const fr=L(sr,[["render",pr],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Zapier.vue"]]),yr=j({__name:"Pabbly_Connect",setup(i,{expose:t}){t();const{t:a}=ne(),e=ee(),u=he(),f=g(!1),n=g(""),s=g(!1),b=g(!1),h=g(""),w=g(!1),A=g(!1);te(()=>{U()});function U(){const F=u.settings;F.pabbly_webhook_created_url!=null&&(f.value=!0,n.value=F.pabbly_webhook_created_url),F.pabbly_webhook_canceled_url!=null&&(b.value=!0,h.value=F.pabbly_webhook_canceled_url)}function S(){n.value===""||n.value.startsWith("https://connect.pabbly.com/")?s.value=!1:s.value=!0}function _(){h.value===""||h.value.startsWith("https://connect.pabbly.com/")?w.value=!1:w.value=!0}async function T(){if(A.value||f.value&&s.value||b.value&&w.value)return;const F=f.value?n.value:null,H=b.value?h.value:null;A.value=!0;const X=await R("POST","scheduling/settings",{data:{pabbly_webhook_created_url:F,pabbly_webhook_canceled_url:H}});X?(u.updateSettings(X.data),U(),e.success(a("alert.your_settings_saved"))):e.error(a("alert.something_wrong")),A.value=!1}const G={t:a,toast:e,schedulingStore:u,createdEnable:f,createdUrl:n,createdUrlError:s,canceledEnable:b,canceledUrl:h,canceledUrlError:w,saving:A,loadData:U,checkCreatedURL:S,checkCanceledURL:_,save:T,get Loader2(){return ie},get UiButton(){return J},get UiToggle(){return le},get UiTextField(){return re},get icon(){return Ze}};return Object.defineProperty(G,"__isScriptSetup",{enumerable:!1,value:!0}),G}}),br={class:"rounded-2xl border border-gray-200 bg-white p-8"},vr=["src"],xr={class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"},hr={class:"space-y-6"},_r={class:"text-sm font-semibold text-gray-800 mb-2"},wr={class:"flex items-center gap-3"},kr={class:"flex-1"},Cr={key:0,class:"text-xs text-gray-400 text-right mt-1"},Ar={class:"text-sm font-semibold text-gray-800 mb-2"},Sr={class:"flex items-center gap-3"},Ur={class:"flex-1"},Er={key:0,class:"text-xs text-gray-400 text-right mt-1"};function Ir(i,t,a,e,u,f){return l(),d("div",br,[r(" Header "),o("img",{src:e.icon,alt:"Pabbly Connect",class:"h-14 w-14 mx-auto mb-3"},null,8,vr),t[5]||(t[5]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Pabbly Connect",-1)),o("p",xr,y(i.$t("text.int_pabbly_msg")),1),t[6]||(t[6]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Body "),o("div",hr,[r(" Invitee Created webhook "),o("div",null,[o("p",_r,[o("strong",null,y(i.$t("text.invite_created"))+":",1),D(" "+y(i.$t("text.triggers_when_invitee_schedules")),1)]),o("div",wr,[p(e.UiToggle,{modelValue:e.createdEnable,"onUpdate:modelValue":t[0]||(t[0]=n=>e.createdEnable=n)},null,8,["modelValue"]),o("div",kr,[p(e.UiTextField,{modelValue:e.createdUrl,"onUpdate:modelValue":t[1]||(t[1]=n=>e.createdUrl=n),disabled:!e.createdEnable,error:e.createdEnable&&e.createdUrlError?i.$t("text.invalid_url"):"",placeholder:"Pabbly webhook URL",onInput:e.checkCreatedURL},null,8,["modelValue","disabled","error"])])]),e.createdUrlError?r("v-if",!0):(l(),d("p",Cr," Ex: https://connect.pabbly.com/workflow/sendwebhookdata/mykey_pc "))]),r(" Invitee Canceled webhook "),o("div",null,[o("p",Ar,[o("strong",null,y(i.$t("text.invitee_canceled"))+":",1),D(" "+y(i.$t("text.triggers_when_invitee_cancels")),1)]),o("div",Sr,[p(e.UiToggle,{modelValue:e.canceledEnable,"onUpdate:modelValue":t[2]||(t[2]=n=>e.canceledEnable=n)},null,8,["modelValue"]),o("div",Ur,[p(e.UiTextField,{modelValue:e.canceledUrl,"onUpdate:modelValue":t[3]||(t[3]=n=>e.canceledUrl=n),disabled:!e.canceledEnable,error:e.canceledEnable&&e.canceledUrlError?i.$t("text.invalid_url"):"",placeholder:"Pabbly webhook URL",onInput:e.checkCanceledURL},null,8,["modelValue","disabled","error"])])]),e.canceledUrlError?r("v-if",!0):(l(),d("p",Er," Ex: https://connect.pabbly.com/workflow/sendwebhookdata/mykey_pc "))]),r(" Save button "),o("div",null,[p(e.UiButton,{onClick:e.save,disabled:e.saving},{default:k(()=>[e.saving?(l(),O(e.Loader2,{key:0,class:"h-4 w-4 mr-1.5 animate-spin"})):r("v-if",!0),D(" "+y(i.$t("button.save")),1)]),_:1},8,["disabled"])]),r(" Setup steps "),t[4]||(t[4]=o("ol",{class:"text-sm text-gray-600 leading-relaxed space-y-1 list-none"},[o("li",null,"1. Log into your Pabbly account and create a new Workflow."),o("li",null,"2. Select Weezly as your Trigger app. Also choose the Trigger."),o("li",null,"3. Copy corresponding Webhook URL and paste in fields above then Save."),o("li",null,"4. Set your Action."),o("li",null,"5. You're set!")],-1))])])}const Wr=L(yr,[["render",Ir],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Pabbly_Connect.vue"]]),ye="fpixel",Tr=j({__name:"MetaIntegration",setup(i,{expose:t}){t();const a=ee(),e=g([]),u=g(!1),f=g(!1),n=g(!1),s=g(""),b=g(""),h=g(""),w=g(""),A=g(0),U=g(0),S=g({});te(()=>{_()});async function _(){if(u.value)return;u.value=!0;const m=await R("GET","integrations/getTrackingCodes?platform="+ye);m?(e.value=m.data,u.value=!1):a.alert("Could not load tracking codes. Please try again.","error")}function T(){f.value||(s.value="",b.value="",h.value="",w.value="",n.value=!1,A.value=0)}async function G(){if(f.value)return;let m=!1;const C=s.value.trim();C===""&&(b.value="Name should not be empty",m=!0);const E=h.value.trim();if(E===""&&(w.value="Code should not be empty",m=!0),m)return;f.value=!0;const z={platform:ye,name:C,code:E};if(A.value){const c=await Z(A.value,z);f.value=!1,c&&T()}else{const c=await R("POST","integrations/addTrackingCode",z);f.value=!1,c?(e.value.unshift(c.data),a.success("A tracking code has been created."),T()):a.alert("Could not create tracking code. Please try again.","error")}}function F(m){A.value=m.id,s.value=m.name,h.value=m.code,b.value="",w.value="",n.value=!0}async function H(m){U.value=m.id;const C=await R("DELETE","integrations/deleteTrackingCode",{id:m.id});U.value=0,C?e.value=e.value.filter(E=>E.id!==m.id):a.alert("Could not delete tracking code. Please try again.","error")}
6async function Z(m,C){const E={};for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in C)E[v]=e.value[c][v],e.value[c][v]=C[v];break}const z=await R("POST","integrations/updateTrackingCode",{id:m,...C});if(z){a.success("The tracking code has been updated.");for(let c=0;c<e.value.length;c++)if(e.value[c].id===z.data.id){for(const v in C)e.value[c][v]=z.data[v];break}return!0}else{for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in E)e.value[c][v]=E[v];break}return a.alert("Could not update tracking code. Please try again.","error"),!1}}async function X(m,C){var c;(c=S.value[m])==null||c.close();const E=e.value.find(v=>v.id===m);if(!E)return;await R("POST","integrations/updateTrackingCode",{id:E.id,is_default:C})?(a.success("The tracking code has been updated."),_()):a.alert("Could not update tracking code. Please try again.","error")}const Q={platform:ye,toast:a,codes:e,loading:u,creating:f,openCreate:n,name:s,errorName:b,code:h,errorCode:w,editId:A,deleteId:U,ddRefs:S,loadData:_,closeCreateCode:T,createCode:G,editCode:F,deleteCode:H,updateCode:Z,setDefault:X,get Star(){return _e},get EllipsisIcon(){return ce},get Loader2(){return ie},get UiButton(){return J},get UiDropdown(){return se},get UiModal(){return de},get UiTextField(){return re},get UiToggle(){return le},get icon(){return Ee}};return Object.defineProperty(Q,"__isScriptSetup",{enumerable:!1,value:!0}),Q}}),Dr={class:"rounded-2xl border border-gray-200 bg-white p-8"},zr=["src"],Rr={key:0,class:"flex items-center justify-center py-10"},Br={key:1},Mr={class:"flex justify-end mb-4"},Gr={key:0},Pr={class:"w-10 shrink-0 flex justify-center"},Vr={class:"block truncate text-sm font-medium text-gray-900"},Nr={class:"w-16 flex justify-center"},jr={class:"w-8 flex justify-center"},Lr={class:"p-1 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100 transition-colors"},Yr={class:"py-1"},Or=["onClick"],Fr=["onClick"],Zr=["onClick"],Xr=["onClick"],Qr={class:"space-y-5"};function qr(i,t,a,e,u,f){return l(),d("div",Dr,[r(" Header "),o("img",{src:e.icon,alt:"Facebook Pixel",class:"h-14 w-14 mx-auto mb-3"},null,8,zr),t[11]||(t[11]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Facebook Pixel",-1)),t[12]||(t[12]=o("p",{class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"}," Use Facebook Pixel to track video views with triggers ",-1)),t[13]||(t[13]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Loading "),e.loading?(l(),d("div",Rr,[p(e.Loader2,{size:24,class:"animate-spin text-blue-600"})])):(l(),d("div",Br,[r(" New Code button "),o("div",Mr,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.openCreate=!0)},{default:k(()=>[...t[6]||(t[6]=[D("New Code",-1)])]),_:1})]),r(" Code list "),e.codes.length?(l(),d("div",Gr,[r(" Column headers "),t[7]||(t[7]=$('<div class="flex items-center text-xs font-semibold text-gray-500 uppercase tracking-wide pb-3 border-b border-gray-100"><div class="w-10 shrink-0 text-center">Default</div><div class="flex-1 pl-3">Name</div><div class="flex-1 px-3">Code</div><div class="w-16 text-center">Status</div><div class="w-8"></div></div>',1)),(l(!0),d(M,null,K(e.codes,n=>(l(),d("div",{key:n.id,class:"flex items-center py-4 border-b border-gray-100 last:border-0"},[r(" Default star "),o("div",Pr,[p(e.Star,{size:18,class:N(n.is_default?"text-amber-400 fill-amber-400":"text-gray-300")},null,8,["class"])]),r(" Name "),o("div",{class:N(["flex-1 pl-3 overflow-hidden",{"opacity-40":!n.status}])},[o("span",Vr,y(n.name),1)],2),r(" Code "),o("div",{class:N(["flex-1 px-3 text-sm text-gray-600 truncate",{"opacity-40":!n.status}])},y(n.code),3),r(" Status toggle "),o("div",Nr,[p(e.UiToggle,{"model-value":!!n.status,"onUpdate:modelValue":s=>e.updateCode(n.id,{status:s?1:0})},null,8,["model-value","onUpdate:modelValue"])]),r(" Actions "),o("div",jr,[r(" Deleting spinner "),e.deleteId===n.id?(l(),O(e.Loader2,{key:0,size:18,class:"animate-spin text-red-500"})):(l(),O(e.UiDropdown,{key:1,ref_for:!0,ref:s=>{e.ddRefs[n.id]=s},position:"bottom-right",width:"160px"},{toggle:k(()=>[o("button",Lr,[p(e.EllipsisIcon,{size:18})])]),default:k(({close:s})=>[o("div",Yr,[o("button",{class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>{e.editCode(n),s()}}," Edit ",8,Or),n.is_default?(l(),d("button",{key:0,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,0)}," Remove default ",8,Fr)):(l(),d("button",{key:1,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,1)}," Set as default ",8,Zr)),o("button",{class:"w-full text-left px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg",onClick:b=>{e.deleteCode(n),s()}}," Delete ",8,Xr)])]),_:2},1536))])]))),128))])):(l(),d(M,{key:1},[r(" Empty state "),t[8]||(t[8]=o("div",{class:"flex flex-col items-center justify-center py-10 text-sm text-gray-400"}
6,[o("p",null,"You do not have any codes yet.")],-1))],2112))])),r(" Create / Edit modal "),p(e.UiModal,{open:e.openCreate,title:e.editId?"Update Code":"Create Code","onUpdate:open":t[5]||(t[5]=n=>!n&&e.closeCreateCode()),onClose:e.closeCreateCode},{default:k(()=>[o("div",Qr,[o("div",null,[t[9]||(t[9]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Name "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.name,"onUpdate:modelValue":[t[1]||(t[1]=n=>e.name=n),t[2]||(t[2]=n=>e.errorName="")],error:e.errorName},null,8,["modelValue","error"])]),o("div",null,[t[10]||(t[10]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Code "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.code,"onUpdate:modelValue":[t[3]||(t[3]=n=>e.code=n),t[4]||(t[4]=n=>e.errorCode="")],placeholder:"YOUR_PIXEL_ID",error:e.errorCode},null,8,["modelValue","error"])]),p(e.UiButton,{loading:e.creating,block:!0,size:"lg",onClick:e.createCode},{default:k(()=>[D(y(e.editId?"Update":"Create")+" Code ",1)]),_:1},8,["loading"])])]),_:1},8,["open","title"]),r(" Instructions "),t[14]||(t[14]=$('<div class="mt-8 rounded-xl border border-gray-200 bg-gray-50 p-5 text-sm text-gray-600"><p class="font-semibold text-gray-900 mb-3">* To find your Facebook Pixel ID on Facebook</p><ol class="list-decimal list-inside space-y-1"><li> Go to <a href="https://www.facebook.com/events_manager2/" target="_blank" class="text-blue-600 underline">Meta Events Manager</a>. </li><li>Select the <strong>correct Business Account</strong> (if you have multiple).</li><li>Under <strong>Data Sources</strong>, find your <strong>Pixel</strong>.</li><li>Your <strong>Pixel ID</strong> is displayed under the Pixel name.</li></ol></div>',1))])}const Hr=L(Tr,[["render",qr],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/MetaIntegration.vue"]]),be="gtag",Jr=j({__name:"GtmIntegration",setup(i,{expose:t}){t();const a=ee(),e=g([]),u=g(!1),f=g(!1),n=g(!1),s=g(""),b=g(""),h=g(""),w=g(""),A=g(0),U=g(0),S=g({});te(()=>{_()});async function _(){if(u.value)return;u.value=!0;const m=await R("GET","integrations/getTrackingCodes?platform="+be);m?(e.value=m.data,u.value=!1):a.alert("Could not load tracking codes. Please try again.","error")}function T(){f.value||(s.value="",b.value="",h.value="",w.value="",n.value=!1,A.value=0)}async function G(){if(f.value)return;let m=!1;const C=s.value.trim();C===""&&(b.value="Name should not be empty",m=!0);const E=h.value.trim();if(E===""&&(w.value="Code should not be empty",m=!0),m)return;f.value=!0;const z={platform:be,name:C,code:E};if(A.value){const c=await Z(A.value,z);f.value=!1,c&&T()}else{const c=await R("POST","integrations/addTrackingCode",z);f.value=!1,c?(e.value.unshift(c.data),a.success("A tracking code has been created."),T()):a.alert("Could not create tracking code. Please try again.","error")}}function F(m){A.value=m.id,s.value=m.name,h.value=m.code,b.value="",w.value="",n.value=!0}async function H(m){U.value=m.id;const C=await R("DELETE","integrations/deleteTrackingCode",{id:m.id});U.value=0,C?e.value=e.value.filter(E=>E.id!==m.id):a.alert("Could not delete tracking code. Please try again.","error")}async function Z(m,C){const E={};for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in C)E[v]=e.value[c][v],e.value[c][v]=C[v];break}const z=await R("POST","integrations/updateTrackingCode",{id:m,...C});if(z){a.success("The tracking code has been updated.");for(let c=0;c<e.value.length;c++)if(e.value[c].id===z.data.id){for(const v in C)e.value[c][v]=z.data[v];break}return!0}else{for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in E)e.value[c][v]=E[v];break}return a.alert("Could not update tracking code. Please try again.","error"),!1}}async function X(m,C){var c;(c=S.value[m])==null||c.close();const E=e.value.find(v=>v.id===m);if(!E)return;await R("POST","integrations/updateTrackingCode",{id:E.id,is_default:C})?(a.success("The tracking code has been updated."),_()):a.alert("Could not update tracking code. Please try again.","error")}const Q={platform:be,toast:a,codes:e,loading:u,creating:f,openCreate:n,name:s,errorName:b,code:h,errorCode:w,editId:A,deleteId:U,ddRefs:S,loadData:_,closeCreateCode:T,createCode:G,editCode:F,deleteCode:H,updateCode:Z,setDefault:X,get Star(){return _e},get EllipsisIcon(){return ce},get Loader2(){return ie},get UiButton(){return J},get UiDropdown(){return se},get UiModal(){return de},get UiTextField(){return re}
6,get UiToggle(){return le},get icon(){return Ie}};return Object.defineProperty(Q,"__isScriptSetup",{enumerable:!1,value:!0}),Q}}),Kr={class:"rounded-2xl border border-gray-200 bg-white p-8"},$r=["src"],el={key:0,class:"flex items-center justify-center py-10"},tl={key:1},ol={class:"flex justify-end mb-4"},nl={key:0},sl={class:"w-10 shrink-0 flex justify-center"},al={class:"block truncate text-sm font-medium text-gray-900"},rl={class:"w-16 flex justify-center"},ll={class:"w-8 flex justify-center"},il={class:"p-1 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100 transition-colors"},dl={class:"py-1"},cl=["onClick"],ul=["onClick"],gl=["onClick"],ml=["onClick"],pl={class:"space-y-5"};function fl(i,t,a,e,u,f){return l(),d("div",Kr,[r(" Header "),o("img",{src:e.icon,alt:"Google Tag Manager",class:"h-14 w-14 mx-auto mb-3"},null,8,$r),t[11]||(t[11]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Google Tag Manager",-1)),t[12]||(t[12]=o("p",{class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"}," Use Google Tag Manager to track video views with triggers ",-1)),t[13]||(t[13]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Loading "),e.loading?(l(),d("div",el,[p(e.Loader2,{size:24,class:"animate-spin text-blue-600"})])):(l(),d("div",tl,[r(" New Code button "),o("div",ol,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.openCreate=!0)},{default:k(()=>[...t[6]||(t[6]=[D("New Code",-1)])]),_:1})]),r(" Code list "),e.codes.length?(l(),d("div",nl,[r(" Column headers "),t[7]||(t[7]=$('<div class="flex items-center text-xs font-semibold text-gray-500 uppercase tracking-wide pb-3 border-b border-gray-100"><div class="w-10 shrink-0 text-center">Default</div><div class="flex-1 pl-3">Name</div><div class="flex-1 px-3">Code</div><div class="w-16 text-center">Status</div><div class="w-8"></div></div>',1)),(l(!0),d(M,null,K(e.codes,n=>(l(),d("div",{key:n.id,class:"flex items-center py-4 border-b border-gray-100 last:border-0"},[r(" Default star "),o("div",sl,[p(e.Star,{size:18,class:N(n.is_default?"text-amber-400 fill-amber-400":"text-gray-300")},null,8,["class"])]),r(" Name "),o("div",{class:N(["flex-1 pl-3 overflow-hidden",{"opacity-40":!n.status}])},[o("span",al,y(n.name),1)],2),r(" Code "),o("div",{class:N(["flex-1 px-3 text-sm text-gray-600 truncate",{"opacity-40":!n.status}])},y(n.code),3),r(" Status toggle "),o("div",rl,[p(e.UiToggle,{"model-value":!!n.status,"onUpdate:modelValue":s=>e.updateCode(n.id,{status:s?1:0})},null,8,["model-value","onUpdate:modelValue"])]),r(" Actions "),o("div",ll,[r(" Deleting spinner "),e.deleteId===n.id?(l(),O(e.Loader2,{key:0,size:18,class:"animate-spin text-red-500"})):(l(),O(e.UiDropdown,{key:1,ref_for:!0,ref:s=>{e.ddRefs[n.id]=s},position:"bottom-right",width:"160px"},{toggle:k(()=>[o("button",il,[p(e.EllipsisIcon,{size:18})])]),default:k(({close:s})=>[o("div",dl,[o("button",{class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>{e.editCode(n),s()}}," Edit ",8,cl),n.is_default?(l(),d("button",{key:0,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,0)}," Remove default ",8,ul)):(l(),d("button",{key:1,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,1)}," Set as default ",8,gl)),o("button",{class:"w-full text-left px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg",onClick:b=>{e.deleteCode(n),s()}}," Delete ",8,ml)])]),_:2},1536))])]))),128))])):(l(),d(M,{key:1},[r(" Empty state "),t[8]||(t[8]=o("div",{class:"flex flex-col items-center justify-center py-10 text-sm text-gray-400"},[o("p",null,"You do not have any codes yet.")],-1))],2112))])),r(" Create / Edit modal "),p(e.UiModal,{open:e.openCreate,title:e.editId?"Update Code":"Create Code","onUpdate:open":t[5]||(t[5]=n=>!n&&e.closeCreateCode()),onClose:e.closeCreateCode},{default:k(()=>[o("div",pl,[o("div",null,[t[9]||(t[9]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Name "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.name,"onUpdate:modelValue":[t[1]||(t[1]=n=>e.name=n),t[2]||(t[2]=n=>e.errorName="")],error:e.errorName},null,8,["modelValue","error"])]),o("div",null,[t[10]||(t[10]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Code "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.code,"onUpdate:modelValue":[t[3]||(t[3]=n=>e.code=n),t[4]||(t[4]=n=>e.errorCode="")],placeholder:"GTM-XXXXXX",error:e.errorCode},null,8,["modelValue","error"])]),p(e.UiButton,{loading:e.creating,block:!0,size:"lg",onClick:e.createCode},{default:k(()=>[D(y(e.editId?"Update":"Create")+" Code ",1)]),_:1},8,["loading"])])]),_:1}
6,8,["open","title"]),r(" Instructions "),t[14]||(t[14]=$('<div class="mt-8 rounded-xl border border-gray-200 bg-gray-50 p-5 text-sm text-gray-600"><p class="font-semibold text-gray-900 mb-3">* To find your Google Tag Manager (GTM) ID</p><ol class="list-decimal list-inside space-y-1"><li> Go to <a href="https://tagmanager.google.com/" target="_blank" class="text-blue-600 underline">Google Tag Manager</a>. </li><li>Select the <strong>correct account</strong> (if you have multiple).</li><li>Under <strong>Admin</strong>, find the <strong>Container ID</strong>.</li><li> Your <strong>GTM ID</strong> is displayed in the format <code class="bg-gray-100 px-1 rounded text-xs">GTM-XXXXXXX</code> at the top of the workspace. </li></ol></div>',1))])}const yl=L(Jr,[["render",fl],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/GtmIntegration.vue"]]),ve="ga4",bl=j({__name:"Ga4Integration",setup(i,{expose:t}){t();const a=ee(),e=g([]),u=g(!1),f=g(!1),n=g(!1),s=g(""),b=g(""),h=g(""),w=g(""),A=g(0),U=g(0),S=g({});te(()=>{_()});async function _(){if(u.value)return;u.value=!0;const m=await R("GET","integrations/getTrackingCodes?platform="+ve);m?(e.value=m.data,u.value=!1):a.alert("Could not load tracking codes. Please try again.","error")}function T(){f.value||(s.value="",b.value="",h.value="",w.value="",n.value=!1,A.value=0)}async function G(){if(f.value)return;let m=!1;const C=s.value.trim();C===""&&(b.value="Name should not be empty",m=!0);const E=h.value.trim();if(E===""&&(w.value="Code should not be empty",m=!0),m)return;f.value=!0;const z={platform:ve,name:C,code:E};if(A.value){const c=await Z(A.value,z);f.value=!1,c&&T()}else{const c=await R("POST","integrations/addTrackingCode",z);f.value=!1,c?(e.value.unshift(c.data),a.success("A tracking code has been created."),T()):a.alert("Could not create tracking code. Please try again.","error")}}function F(m){A.value=m.id,s.value=m.name,h.value=m.code,b.value="",w.value="",n.value=!0}async function H(m){U.value=m.id;const C=await R("DELETE","integrations/deleteTrackingCode",{id:m.id});U.value=0,C?e.value=e.value.filter(E=>E.id!==m.id):a.alert("Could not delete tracking code. Please try again.","error")}async function Z(m,C){const E={};for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in C)E[v]=e.value[c][v],e.value[c][v]=C[v];break}const z=await R("POST","integrations/updateTrackingCode",{id:m,...C});if(z){a.success("The tracking code has been updated.");for(let c=0;c<e.value.length;c++)if(e.value[c].id===z.data.id){for(const v in C)e.value[c][v]=z.data[v];break}return!0}else{for(let c=0;c<e.value.length;c++)if(e.value[c].id===m){for(const v in E)e.value[c][v]=E[v];break}return a.alert("Could not update tracking code. Please try again.","error"),!1}}async function X(m,C){var c;(c=S.value[m])==null||c.close();const E=e.value.find(v=>v.id===m);if(!E)return;await R("POST","integrations/updateTrackingCode",{id:E.id,is_default:C})?(a.success("The tracking code has been updated."),_()):a.alert("Could not update tracking code. Please try again.","error")}const Q={platform:ve,toast:a,codes:e,loading:u,creating:f,openCreate:n,name:s,errorName:b,code:h,errorCode:w,editId:A,deleteId:U,ddRefs:S,loadData:_,closeCreateCode:T,createCode:G,editCode:F,deleteCode:H,updateCode:Z,setDefault:X,get Star(){return _e},get EllipsisIcon(){return ce},get Loader2(){return ie},get UiButton(){return J},get UiDropdown(){return se},get UiModal(){return de},get UiTextField(){return re},get UiToggle(){return le},get icon(){return We}};return Object.defineProperty(Q,"__isScriptSetup",{enumerable:!1,value:!0}),Q}}),vl={class:"rounded-2xl border border-gray-200 bg-white p-8"},xl=["src"],hl={key:0,class:"flex items-center justify-center py-10"},_l={key:1},wl={class:"flex justify-end mb-4"},kl={key:0},Cl={class:"w-10 shrink-0 flex justify-center"},Al={class:"block truncate text-sm font-medium text-gray-900"},Sl={class:"w-16 flex justify-center"},Ul={class:"w-8 flex justify-center"},El={class:"p-1 rounded-lg text-gray-400 hover:text-gray-700 hover:bg-gray-100 transition-colors"},Il={class:"py-1"},Wl=["onClick"],Tl=["onClick"],Dl=["onClick"],zl=["onClick"],Rl={class:"space-y-5"};function Bl(i,t,a,e,u,f){return l(),d("div",vl,[r(" Header "),o("img",{src:e.icon,alt:"Google Analytics 4",class:"h-14 w-14 mx-auto mb-3"},null,8,xl),t[11]||(t[11]=o("h3",{class:"text-lg font-bold text-gray-900 text-center"},"Google Analytics 4",-1)),t[12]||(t[12]=o("p",{class:"text-sm text-gray-500 text-center mt-1 max-w-md mx-auto"}," Use Google Analytics 4 to track video views with triggers ",-1)),t[13]||(t[13]=o("hr",{class:"my-6 border-gray-100"},null,-1)),r(" Loading "),e.loading?(l(),d("div",hl,[p(e.Loader2,{size:24,class:"animate-spin text-blue-600"})])):(l(),d("div",_l,[r(" New Code button "),o("div",wl,[p(e.UiButton,{onClick:t[0]||(t[0]=n=>e.openCreate=!0)},{default:k(()=>[...t[6]||(t[6]=[D("New Code",-1)])]),_:1})]),r(" Code list "),e.codes.length?(l(),d("div",kl,[r(" Column headers "),t[7]||(t[7]=$('<div class="flex items-center text-xs font-semibold text-gray-500 uppercase tracking-wide pb-3 border-b border-gray-100"><div class="w-10 shrink-0 text-center">Default</div><div class="flex-1 pl-3">Name</div><div class="flex-1 px-3">Code</div><div class="w-16 text-center">Status</div><div class="w-8"></div></div>',1)),(l(!0),d(M,null,K(e.codes,n=>(l(),d("div",{key:n.id,class:"flex items-center py-4 border-b border-gray-100 last:border-0"},[r(" Default star "),o("div",Cl,[p(e.Star,{size:18,class:N(n.is_default?"text-amber-400 fill-amber-400":"text-gray-300")},null,8,["class"])]),r(" Name "),o("div",{class:N(["flex-1 pl-3 overflow-hidden",{"opacity-40":!n.status}])},[o("span",Al,y(n.name),1)],2),r(" Code "),o("div",{class:N(["flex-1 px-3 text-sm text-gray-600 truncate",{"opacity-40":!n.status}])},y(n.code),3),r(" Status toggle "),o("div",Sl,[p(e.UiToggle,{"model-value":!!n.status,"onUpdate:modelValue":s=>e.updateCode(n.id,{status:s?1:0})},null,8,["model-value","onUpdate:modelValue"])]),r(" Actions "),o("div",Ul,[r(" Deleting spinner "),e.deleteId===n.id?(l(),O(e.Loader2,{key:0,size:18,class:"animate-spin text-red-500"})):(l(),O(e.UiDropdown,{key:1,ref_for:!0,ref:s=>{e.ddRefs[n.id]=s},position:"bottom-right",width:"160px"},{toggle:k(()=>[o("button",El,[p(e.EllipsisIcon,{size:18})])]),default:k(({close:s})=>[o("div",Il,[o("button",{class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>{e.editCode(n),s()}}," Edit ",8,Wl),n.is_default?(l(),d("button",{key:0,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,0)}," Remove default ",8,Tl)):(l(),d("button",{key:1,class:"w-full text-left px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-lg",onClick:b=>e.setDefault(n.id,1)}," Set as default ",8,Dl)),o("button",{class:"w-full text-left px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg",onClick:b=>{e.deleteCode(n),s()}}," Delete ",8,zl)])]),_:2},1536))])]))),128))])):(l(),d(M,{key:1},[r(" Empty state "),t[8]||(t[8]=o("div",{class:"flex flex-col items-center justify-center py-10 text-sm text-gray-400"}
6,[o("p",null,"You do not have any codes yet.")],-1))],2112))])),r(" Create / Edit modal "),p(e.UiModal,{open:e.openCreate,title:e.editId?"Update Code":"Create Code","onUpdate:open":t[5]||(t[5]=n=>!n&&e.closeCreateCode()),onClose:e.closeCreateCode},{default:k(()=>[o("div",Rl,[o("div",null,[t[9]||(t[9]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Name "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.name,"onUpdate:modelValue":[t[1]||(t[1]=n=>e.name=n),t[2]||(t[2]=n=>e.errorName="")],error:e.errorName},null,8,["modelValue","error"])]),o("div",null,[t[10]||(t[10]=o("label",{class:"block text-sm font-medium text-gray-700 mb-1.5"},[D(" Code "),o("span",{class:"text-red-500"},"*")],-1)),p(e.UiTextField,{modelValue:e.code,"onUpdate:modelValue":[t[3]||(t[3]=n=>e.code=n),t[4]||(t[4]=n=>e.errorCode="")],placeholder:"G-XXXXXXXXXX",error:e.errorCode},null,8,["modelValue","error"])]),p(e.UiButton,{loading:e.creating,block:!0,size:"lg",onClick:e.createCode},{default:k(()=>[D(y(e.editId?"Update":"Create")+" Code ",1)]),_:1},8,["loading"])])]),_:1},8,["open","title"]),r(" Instructions "),t[14]||(t[14]=$('<div class="mt-8 rounded-xl border border-gray-200 bg-gray-50 p-5 text-sm text-gray-600"><p class="font-semibold text-gray-900 mb-3">* To find your Google Analytics 4 (GA4) Measurement ID</p><ol class="list-decimal list-inside space-y-1"><li> Go to <a href="https://analytics.google.com/" target="_blank" class="text-blue-600 underline">Google Analytics</a>. </li><li>Select the <strong>correct GA4 property</strong> (if you have multiple).</li><li>Click on <strong>Admin</strong> (bottom left).</li><li>Under <strong>Data Streams</strong>, click on your website data stream.</li><li> Your <strong>GA4 Measurement ID</strong> is displayed in the format <code class="bg-gray-100 px-1 rounded text-xs">G-XXXXXXXXXX</code>. </li></ol></div>',1))])}const Ml=L(bl,[["render",Bl],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/components/integrations/Ga4Integration.vue"]]),Gl=j({__name:"IntegrationsView",setup(i,{expose:t}){t();const a=at(),e=rt(),{t:u,te:f}=ne(),{upgradeWall:n}=it(),s=Ut,b={zoom:Ht,google_meet:no,microsoft_teams:ho,google_calendar:Uo,outlook_calendar:Ro,exchange_calendar:jo,hubspot:en,pipedrive:pn,wordpress:Tn,wix:Pn,squarespace:Fn,unbounce:Kn,weebly:as,shopify:gs,webhooks:nr,zapier:fr,pabbly_connect:Wr,fpixel:Hr,gtag:yl,ga4:Ml},h=g(null),w=oe(()=>h.value&&b[h.value]||null),A=g(""),U=g("all"),S=oe(()=>{const B=A.value.trim().toLowerCase();return s.filter(x=>U.value==="all"||x.name===U.value).map(x=>({...x,items:x.items.filter(W=>B?W.name.toLowerCase().includes(B)||E(W.description).toLowerCase().includes(B):!0)})).filter(x=>x.items.length>0)}),_=oe(()=>S.value.length>0),T=["webhooks","google_calendar","gtag","outlook_calendar"],G=oe(()=>{const B=[];for(const x of T)for(const W of s){const I=W.items.find(P=>P.id===x);if(I){B.push({item:I,group:W.name});break}}return B}),F=oe(()=>U.value==="all"&&A.value.trim()===""),H=he(),Z=g(new Set),X={zoom:["zoom"],microsoft_teams:["teams","microsoft_teams"],hubspot:["hubspot"],pipedrive:["pipedrive"],google_calendar:["google","google_calendar"],outlook_calendar:["outlook","outlook_calendar"],exchange_calendar:["exchange","exchange_calendar"]};function Q(B){const x=X[B];return!!x&&x.some(W=>Z.value.has(W))}async function m(){const B=new Set;for(const W of H.integrations||[]){const I=String(W.type||"").toLowerCase();I&&B.add(I)}const x=await R("GET","scheduling/integrations");if(x)for(const W of x.data){const I=String(W.integration_type||"").toLowerCase();I&&B.add(I)}Z.value=B}function C(B){for(const x of s){const W=x.items.find(I=>I.id===B);if(W)return W}}function E(B){return f(B)?u(B):B}async function z(B){var x;if(B.id==="webhooks"){if(!await n("webhooks-integration")){a.path!=="/integrations"&&e.push("/integrations").catch(()=>!1);return}}else if(B.id==="exchange_calendar"&&!await n("exchange-integration")){a.path!=="/integrations"&&e.push("/integrations").catch(()=>!1);return}if(B.external_link){B.external_link!=="..."&&((x=window.open(B.external_link,"_blank"))==null||x.focus());return}
6h.value=B.id,e.push("/integrations/"+B.id).catch(()=>!1),window.scrollTo({top:0})}function c(){h.value=null,e.push("/integrations").catch(()=>!1)}function v(){e.push("/calendar-connections").catch(()=>!1)}function V(B){const x=B||"";if(!x){h.value=null;return}if(x===h.value)return;const W=C(x);W?z(W):e.push("/integrations").catch(()=>!1)}te(()=>{V(a.params.appID),m()}),lt(()=>a.params.appID,V);const ae={route:a,router:e,t:u,te:f,upgradeWall:n,types:s,panels:b,selected_type:h,activePanel:w,search:A,activeCategory:U,visibleGroups:S,hasResults:_,RECOMMENDED_IDS:T,recommended:G,showRecommended:F,scheduling:H,connectedTypes:Z,CONNECT_MAP:X,isConnected:Q,loadConnected:m,findItem:C,describe:E,selectItem:z,goBack:c,goToConnections:v,syncFromRoute:V,get ArrowLeft(){return Ct},get Search(){return dt},get Sparkles(){return Ae},IntegrationCard:Gt};return Object.defineProperty(ae,"__isScriptSetup",{enumerable:!1,value:!0}),ae}}),Pl={class:"integrations-page"},Vl={class:"mx-auto max-w-[1100px]"},Nl={class:"int-hero"},jl={class:"text-[26px] font-bold text-gray-900 mb-1 tracking-tight"},Ll={class:"int-search"},Yl={key:0,class:"mb-11"},Ol={class:"int-grp-head"},Fl={class:"grp-icon grp-icon--rec"},Zl={class:"int-grid"},Xl={class:"int-grp-head"},Ql={class:"grp-icon"},ql={class:"int-grp-count"},Hl={class:"int-grid"},Jl={key:2,class:"int-empty"},Kl={class:"text-sm text-gray-500"},$l={class:"mx-auto max-w-[960px]"};function ei(i,t,a,e,u,f){return l(),d("div",Pl,[o("div",Vl,[r(" Hub: grouped catalogue "),e.selected_type?(l(),d(M,{key:1},[r(" Selected integration panel "),o("div",$l,[o("button",{type:"button",class:"back-btn",onClick:e.goBack},[p(e.ArrowLeft,{size:16}),D(" "+y(i.$t("nav.integrations")),1)]),e.activePanel?(l(),O(ue(e.activePanel),{key:0,onGoToConnections:e.goToConnections},null,32)):r("v-if",!0)])],64)):(l(),d(M,{key:0},[o("header",Nl,[o("div",null,[o("h1",jl,y(i.$t("nav.integrations")),1),t[1]||(t[1]=o("p",{class:"text-sm text-gray-500"},"Connect Weezly to the tools you already use.",-1))]),o("div",Ll,[p(e.Search,{size:16,class:"int-search-ico"}),ct(o("input",{"onUpdate:modelValue":t[0]||(t[0]=n=>e.search=n),type:"text",placeholder:"Search integrationsâ¦",spellcheck:"false"},null,512),[[ut,e.search]])])]),r(" Recommended "),e.showRecommended&&e.recommended.length?(l(),d("section",Yl,[o("div",Ol,[o("span",Fl,[p(e.Sparkles,{size:15})]),t[2]||(t[2]=o("h2",null,"Recommended",-1)),t[3]||(t[3]=o("div",{class:"int-grp-line"},null,-1))]),o("div",Zl,[(l(!0),d(M,null,K(e.recommended,n=>(l(),O(e.IntegrationCard,{key:"rec-"+n.item.id,item:n.item,"group-name":n.group,connected:e.isConnected(n.item.id),onSelect:e.selectItem},null,8,["item","group-name","connected"]))),128))])])):r("v-if",!0),e.hasResults?(l(!0),d(M,{key:1},K(e.visibleGroups,n=>(l(),d("section",{key:n.name,class:"mb-10 last:mb-0"},[o("div",Xl,[o("span",Ql,[(l(),O(ue(n.icon),{size:15}))]),o("h2",null,y(n.name),1),o("span",ql,y(n.items.length),1),t[4]||(t[4]=o("div",{class:"int-grp-line"},null,-1))]),o("div",Hl,[(l(!0),d(M,null,K(n.items,s=>(l(),O(e.IntegrationCard,{key:s.id,item:s,"group-name":n.name,connected:e.isConnected(s.id),onSelect:e.selectItem},null,8,["item","group-name","connected"]))),128))])]))),128)):(l(),d("div",Jl,[p(e.Search,{size:26,class:"text-gray-300 mb-3"}),o("p",Kl,"No integrations match â"+y(e.search)+"â.",1)]))],64))])])}const ki=L(Gl,[["render",ei],["__scopeId","data-v-e06c2090"],["__file","/home/gitlab-runner/weezly-v3/callendo-frontend-v3/src/views/IntegrationsView.vue"]]);export{ki as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.