{"version":3,"sources":["webpack:///./src/components/chatbox/BotUI.vue?a0ae","webpack:///./src/components/chatbox/Board/Content.vue?b9e2","webpack:///./src/App.vue?5bd0","webpack:///./src/firebase.js","webpack:///src/App.vue","webpack:///./src/App.vue?4c4f","webpack:///./src/App.vue","webpack:///./src/App.vue?6656","webpack:///./src/global-components.js","webpack:///./src/components/chatbox/_app.scss?0b11","webpack:///./src/i18n.js","webpack:///./src/assets/images/logo/logo.png","webpack:///./src/App.vue?3bca","webpack:///./src/components/chatbox/BotUI.vue?74e2","webpack:///./src/helpers/event-bus.js","webpack:///./src/components/chatbox/Board/Header.vue?a936","webpack:///src/components/chatbox/Board/Header.vue","webpack:///./src/components/chatbox/Board/Header.vue?f8ef","webpack:///./src/components/chatbox/Board/Header.vue","webpack:///./src/components/chatbox/Board/Content.vue?a75c","webpack:///./src/components/chatbox/MessageBubble/Main.vue?d885","webpack:///./src/components/chatbox/MessageBubble/SingleText.vue?e14b","webpack:///src/components/chatbox/MessageBubble/SingleText.vue","webpack:///./src/components/chatbox/MessageBubble/SingleText.vue?3b0b","webpack:///./src/components/chatbox/MessageBubble/SingleText.vue","webpack:///./src/components/chatbox/MessageBubble/ButtonOptions.vue?e90c","webpack:///src/components/chatbox/MessageBubble/ButtonOptions.vue","webpack:///./src/components/chatbox/MessageBubble/ButtonOptions.vue?25c6","webpack:///./src/components/chatbox/MessageBubble/ButtonOptions.vue","webpack:///src/components/chatbox/MessageBubble/Main.vue","webpack:///./src/components/chatbox/MessageBubble/Main.vue?b7d4","webpack:///./src/components/chatbox/MessageBubble/Main.vue","webpack:///./src/components/chatbox/MessageBubble/Typing.vue?15a0","webpack:///./src/components/chatbox/MessageBubble/Typing.vue","webpack:///src/components/chatbox/Board/Content.vue","webpack:///./src/components/chatbox/Board/Content.vue?2816","webpack:///./src/components/chatbox/Board/Content.vue","webpack:///./src/components/chatbox/Board/Action.vue?2273","webpack:///src/components/chatbox/Board/Action.vue","webpack:///./src/components/chatbox/Board/Action.vue?cd46","webpack:///./src/components/chatbox/Board/Action.vue","webpack:///./src/components/chatbox/AppStyle.vue?a537","webpack:///src/components/chatbox/AppStyle.vue","webpack:///./src/components/chatbox/AppStyle.vue?c7f8","webpack:///./src/components/chatbox/AppStyle.vue","webpack:///src/components/chatbox/BotUI.vue","webpack:///./src/components/chatbox/BotUI.vue?2616","webpack:///./src/components/chatbox/BotUI.vue","webpack:///./src/components/chatbox/BotUI.vue?6610"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","class","skinClasses","attrs","layout","key","$i18n","locale","tag","on","$event","updatePopup","model","value","callback","$$v","modalShow","expression","_v","_s","$t","clicked","domProps","user","id","u_app_layout","$route","path","includes","_e","staticRenderFns","firebaseConfig","apiKey","process","VUE_APP_FIREBASE_API_KEY","authDomain","VUE_APP_FIREBASE_AUTH_DOMAIN","databaseURL","VUE_APP_FIREBASE_DATABASE_URL","projectId","VUE_APP_FIREBASE_PROJECT_ID","storageBucket","VUE_APP_FIREBASE_STORAGE_BUCKET","messagingSenderId","VUE_APP_FIREBASE_MESSAGING_SENDER_ID","appId","VUE_APP_FIREBASE_APP_ID","app","initializeApp","components","LayoutHorizontal","LayoutVertical","LayoutFull","ChatBulb","AppTour","computed","mapGetters","console","contentLayoutType","permissions","uhub_user","steps","setup","provideToast","hideProgressBar","closeOnClick","closeButton","icon","timeout","transition","store","watch","connectivityStatus","data","isAtBottom","messaging","clientToken","statusMessage","handler","val","deep","immediate","GET_LANG","localize","setTimeout","beforeCreate","$themeColors","colors","document","trim","$themeBreakpoints","useCssVar","breakpoints","slice","created","window","component","props","title","text","variant","mounted","channel","detail","chat","seen","css","subtitle","res","showCancelButton","confirmButtonText","cancelButtonText","customClass","confirmButton","cancelButton","buttonsStyling","then","caches","names","mapActions","mapMutations","close","subscribeToRefreshChannel","channel_refresh","registerServiceWorker","subscribeToken","reg","vapidKey","getToken","serviceWorkerRegistration","token","unsubscribeToken","deleteToken","listenForegroundMessage","navigator","onMessage","notificationTitle","notificationBody","body","notificationOptions","isSubscribed","setSubscribedToken","localStorage","unsetSubscribedToken","getSubscribedToken","ct","JSON","sendTokenToServer","removeTokenFromServer","Vue","FeatherIcon","name","loadLocaleMessages","locales","require","messages","keys","forEach","matched","match","length","use","VueI18n","VUE_APP_I18N_LOCALE","fallbackLocale","VUE_APP_I18N_FALLBACK_LOCALE","module","exports","Object","assign","uiClasses","active","botActive","inactive","optionsMain","botTitle","botToggle","closeRoom","old","lastRoom","botTyping","chat_started","categ_selected","inputPlaceholder","inputDisablePlaceholder","inputDisable","sendMessage","sendFile","dragStart","dragEnd","closed_by","unseen_message_count","_t","EventBus","type","default","methods","ref","_l","$moment","created_at","format","message","index","agent","created_by","avatar","pending_by","staticStyle","fromNow","mainData","seen_by_receiver","option","disable_btn_categ","selectCateg","zoom","file","url","goToFaq","description","parse","subject","disable_btn","createroom","zoomPic","picToBeZoomed","bubbleClass","componentType","createdAt","item","selectedItem","action","selectOption","SingleText","ButtonOptions","_m","script","MessageBubble","MessageTyping","required","old_messages","newVal","el","msg","disableInput","goTo","replace","params","updateScroll","contentElm","closed_at","addFile","indexOf","_k","keyCode","apply","arguments","emitFocus","messageText","server","actionClass","actionClasses","e","style","colorScheme","textColor","boardContentBg","bubbleBtnSize","inputDisableBg","botAvatarSize","msgBubbleBgBot","msgBubbleColorBot","msgBubbleBgUser","msgBubbleColorUser","BoardHeader","BoardContent","BoardAction","AppStyle","state","options","isOpen","drag","innerHeight","move","defaultOptions","animation","clientY","get","set","mobileCheck","a","check","classes","addEventListener","beforeDestroy","event","initBot"],"mappings":"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,aACAC,gCACAC,4CAEAC,oBACAC,MAAA,YACA,SACAC,gCAAA,IAAI,EAAJ,iBACAC,GADA,IACA,0CAAAD,kBADA,kCAGAtB,4BACA,sBACA,SACAG,sBACAC,UACA,0DAEAhC,eACA6C,aACAC,yCA5BA,8FAAAX,IAuCAA,4CACA,+BACA,oDACA,6CAEA,UACAN,iBACAC,OACAC,uBACAC,yBACAC,0BAGA,+CACAG,oBAEAR,2BAEAO,6CACA,+BACA,oDACA,6CACA,UACAN,iBACAC,OACAC,uBACAC,yBACAC,0BAGA,gDACAG,oBAEAR,2BAEAO,8CACA,+BACA,oDACA,6CACA,UACAN,iBACAC,OACAC,uBACAC,yBACAC,0BAGA,iDACAG,oBAEAR,2BAEAO,iDACA,6BACA,kDACA,2CACA,kEAEA,oDACAC,kBAEAR,2BA9TA,wBAkUA,iCAlUA,gDArKA,uCA4eA,oJACA,wEAEA,gBAHA,gDA5eA,uCAkfA,oJAEA,kBAEA,4CAEA,iCANA,gDAlfA,kNA6fAwB,yCACAA,sBACA,oBACA,mBACA,uBACA,yBAEAC,0DACAA,qDACAD,+CACAA,uBACA,0BACA,8BAEAA,uCACAA,+DACAC,sDACAA,uBACA,YACA,uBACA,eACA,qBAlhBA,IAohBA7G,YAphBA,WAohBA,gBAAI,EAAJ,iJAAA8G,gCAIA,eACA,mBALA,gCAMA,iBANA,8CAQAC,0BA5hBA,WA4hBA,WACA,oCAEAC,yBACA,mBACA,SACAzB,kDACAC,6DACAhC,eACA0C,oBACAC,8BACAC,mCACAC,aACAC,gCACAC,4CAEAC,oBACAC,MAAA,YACA,SACA,gBACAC,gCAAA,IAAI,EAAJ,iBACAC,GADA,IACA,0CAAAD,kBADA,kCAGAtB,4BACA,uBACA,gBACA,SACAG,sBACAC,UACA,0DAEAhC,eACA6C,aACAC,4CAQAM,sDArkBA,IAskBAK,sBAtkBA,WAskBA,oJACA,iBADA,8CAoCAC,eA1mBA,SA0mBAC,GAAA,mKACAC,EAAA9F,sDADA,kBAGA+F,4BACAD,WACAE,8BALA,cAGAC,EAHA,OASA,gBAEA,uBAXA,SAaA,sBAbA,cAkBA,6BAlBA,qDAoBAzE,oBACA,yBArBA,6DAyBA0E,iBAnoBA,WAmoBA,6KAEAC,4BAFA,8BAIA,uCAJA,8BAMA,yBANA,4DAQA3E,oBARA,6DAWA4E,wBA9oBA,SA8oBAP,GAAA,uJACAA,EADA,gCAEAQ,kDACArG,IADA,6BAFA,OAEA6F,EAFA,cAMAS,wCACA,qBAAI,EAAJ,OACA,eACA,cACA,qBACAC,UACAC,UAkBA,OACAC,OACAjE,QAEA,GACAqD,mBACA,cACAa,MArCA,8CAyCAC,aAvrBA,WAwrBA,0CAEA,WAEAC,mBA5rBA,WA6rBAC,sEAGAC,qBAhsBA,WAisBA,sBACAD,wCAGAE,mBArsBA,WAqsBA,kJACAC,EAAAH,qCAEAG,EAHA,yCAGAC,eAHA,gCAIA,MAJA,8CAMAC,kBA3sBA,WA2sBA,oKAEA,oBAAAjB,sBAFA,gCAGA,qBAAAA,uBAHA,8CAMAkB,sBAjtBA,WAitBA,oKAEA,uBAAAlB,sBAFA,uBAGA,wBAAAA,sBAHA,iDAjtBA,GCxG8T,I,kCCS1TlC,EAAY,eACd,EACAvG,EACAqC,GACA,EACA,KACA,KACA,MAIa,OAAAkE,E,sECpBf,W,0ECGAqD,aAAIrD,UAAUsD,OAAYC,KAAMD,S,oCCHhC,W,yICKA,SAASE,IACP,IAAMC,EAAUC,UAKVC,EAAW,GAQjB,OAPAF,EAAQG,OAAOC,SAAQ,SAAAxJ,GACrB,IAAMyJ,EAAUzJ,EAAI0J,MAAM,uBAC1B,GAAID,GAAWA,EAAQE,OAAS,EAAG,CACjC,IAAMzJ,EAASuJ,EAAQ,GACvBH,EAASpJ,GAAUkJ,EAAQpJ,OAGxBsJ,EAhBTN,aAAIY,IAAIC,QAmBO,WAAIA,OAAQ,CACzB3J,OAAQ0B,6CAAYkI,qBAAuB,KAC3CC,eAAgBnI,6CAAYoI,8BAAgC,KAC5DV,SAAUH,O,8CCzBZc,EAAOC,QAAU,IAA0B,yB,yDCA3C,W,kCCAA,IAAI9K,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,6BAA6BC,MAAMuK,OAAOC,OAAO,GAAI/K,EAAIgL,UAAW,CAACC,OAAQjL,EAAIkL,UAAWC,UAAWnL,EAAIkL,YAAYzK,MAAM,CAAC,GAAK,SAAS,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,KAAO,gBAAgB,CAAET,EAAa,UAAEI,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,cAAc,CAACK,MAAM,CAAC,YAAYT,EAAIoL,YAAYC,UAAUtK,GAAG,CAAC,YAAYf,EAAIsL,UAAU,aAAatL,EAAIuL,aAAanL,EAAG,eAAe,CAACK,MAAM,CAAC,IAAMT,EAAIwL,IAAI,YAAYxL,EAAIyL,SAAS,aAAazL,EAAI0L,UAAU,YAAY1L,EAAIiK,UAAUlJ,GAAG,CAAC,aAAef,EAAI2L,aAAa,eAAiB3L,EAAI4L,kBAAkBxL,EAAG,cAAc,CAACK,MAAM,CAAC,YAAYT,EAAIyL,SAAS,oBAAoBzL,EAAIoL,YAAYS,iBAAiB,4BAA4B7L,EAAIoL,YAAYU,wBAAwB,gBAAgB9L,EAAI+L,cAAchL,GAAG,CAAC,WAAWf,EAAIgM,YAAY,YAAYhM,EAAIiM,aAAa,GAAGjM,EAAImC,OAAO/B,EAAG,MAAM,CAACE,YAAY,mCAAmCG,MAAM,CAAC,WAAaT,EAAIkL,WAAWnK,GAAG,CAAC,MAAQf,EAAIsL,UAAU,MAAQtL,EAAIsL,UAAU,KAAOtL,EAAIkM,UAAU,QAAUlM,EAAImM,UAAU,CAAC/L,EAAG,MAAM,CAACA,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,UAAU,MAAQT,EAAIyL,WAAazL,EAAIyL,SAASW,UAChsCpM,EAAIyL,SAASY,qBACb,KAAK,KAAO,OAAO,YAAY,GAAG,gBAAgB,OAAO,eAAe,WAAW,CAACrM,EAAIsM,GAAG,gBAAe,WAAW,MAAO,CAAClM,EAAG,aAAa,CAACK,MAAM,CAAC,KAAO,gBAAgB,CAAGT,EAAIkL,UAA4G9K,EAAG,cAAc,CAACO,IAAI,IAAIL,YAAY,iDAAiDG,MAAM,CAAC,KAAO,eAAtML,EAAG,cAAc,CAACO,IAAI,IAAIL,YAAY,sBAAsBG,MAAM,CAAC,KAAO,wBAA4I,QAAO,IAAI,KAAKL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAUT,EAAIoL,gBAAgB,IAClehJ,EAAkB,G,8CCDhBmK,EAAW,IAAI5C,aAEN4C,I,YCJX,EAAS,WAAa,IAAIvM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,YAAY,uCAAuCG,MAAM,CAAC,WAAa,KAAK,KAAO,QAAQ,QAAU,YAAY,CAACL,EAAG,MAAM,CAACW,GAAG,CAAC,MAAQf,EAAIuL,YAAY,CAACnL,EAAG,WAAW,CAACK,MAAM,CAAC,KAAO,IAAI,QAAU,UAAU,KAAO,SAAS,GAAGL,EAAG,MAAM,CAACW,GAAG,CAAC,MAAQf,EAAI+H,QAAQ,CAAC3H,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,YAAY,CAACL,EAAG,OAAO,CAACE,YAAY,+BAA+B,MACld,EAAkB,GCqBP,GACfiG,OACA8E,UACAmB,YACAC,oBAGAC,SACA3E,MADA,WAEA,yBAEAwD,UAJA,WAKA,4BClC8W,I,YCO1WjF,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAItG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACuM,IAAI,eAAerM,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACuM,IAAI,eAAerM,YAAY,8BAA8B,CAACN,EAAI4M,GAAI5M,EAAgB,cAAE,SAAS8G,GAAM,OAAO1G,EAAG,MAAM,CAACE,YAAY,SAAS,CAAEwG,EAAKmD,SAASK,OAAO,EAAGlK,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,KAAK,CAACE,YAAY,gCAAgC,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQ/F,EAAKgG,YAAYC,OAAO,aAAa/M,EAAImC,KAAKnC,EAAI4M,GAAI9F,EAAa,UAAE,SAASkG,EAAQC,GAAO,OAAO7M,EAAG,MAAM,CAACO,IAAIsM,EAAM3M,YAAY,OAAOC,MAAM,CACzlB,YAA+B,QAAlByM,EAAQE,OAAmBF,EAAQE,QAAUlN,EAAI6B,KAAKC,KAClE,CAAkB,SAAhBkL,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,eAAe,CAAoB,QAAlB0M,EAAQE,MAAiB9M,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACE,YAAY,oCAAqC0M,EAAQE,QAAUlN,EAAI6B,KAAKC,GAAI1B,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,KAAK,IAAMT,EAAIyL,UAAYzL,EAAIyL,SAAS0B,YAAcnN,EAAIyL,SAAS0B,WAAWC,OACrZpN,EAAIyL,SAAS0B,WAAWC,OACxB,QAAQhN,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,KAAK,IAAMT,EAAIyL,UAAYzL,EAAIyL,SAAS4B,YAAcrN,EAAIyL,SAAS4B,WAAWD,OAC9JpN,EAAIyL,SAAS4B,WAAWD,OACxB,SAAS,GAAGpN,EAAImC,KAAsB,SAAhB6K,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,YAAYgN,YAAY,CAAC,gBAAgB,eAAe,CAAkB,QAAhBN,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,cACzUN,GAASjN,EAAIwN,SAASlD,OAAS,GAC/B0C,EAAQS,kBACRT,EAAQG,YAAcnN,EAAI6B,KAAKC,GAC/B1B,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,qCAAqCN,EAAImC,OAAOnC,EAAImC,KAAsB,QAAhB6K,EAAQR,KAAgBpM,EAAG,MAAMJ,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,SAAWT,EAAI2N,mBAAmB5M,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAI4N,YAAYF,MAAW,CAAC1N,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGiM,EAAOjH,MAAM,UAAS,GAAGzG,EAAImC,KAAsB,QAAhB6K,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,eAAeS,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAI6N,KAAKb,EAAQc,KAAKC,QAAQ,CAAC3N,EAAG,QAAQ,CAACkN,YAAY,CAAC,MAAQ,QAAQ7M,MAAM,CAAC,IAAMuM,EAAQc,KAAKC,OAAO3N,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,cACntBN,GAASjN,EAAIwN,SAASlD,OAAS,GAC/B0C,EAAQS,kBACRT,EAAQG,YAAcnN,EAAI6B,KAAKC,GAC/B1B,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,qCAAqCN,EAAImC,MAAM,GAAGnC,EAAImC,KAAsB,SAAhB6K,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,gBAAgBvN,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,MAAMM,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAIgO,QAAQN,EAAOO,gBAAgB,CAACjO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAI0B,GAAG8H,KAAK0E,MAAMR,EAAOO,aAAaE,UAAU,WAAU,GAAoB,QAAhBnB,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,gBAAgBvN,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,SAAWT,EAAIoO,aAAarN,GAAG,CAAC,MAAQf,EAAIqO,aAAa,CAACrO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAI0B,GAAGgM,EAAOjH,OAAO,WAAU,GAAoB,OAAhBuG,EAAQR,KAAepM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAACO,IAAIX,EAAI8B,GAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,MAAMM,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAIgO,QAAQhB,EAAQiB,gBAAgB,CAACjO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAG+H,KAAK0E,MAAMlB,EAAQiB,aAAaE,SAAS,QAAQ,GAAGnO,EAAImC,OAAOnC,EAAImC,WAAU,MAAK/B,EAAG,MAAM,CAACE,YAAY,SAAS,CAAEN,EAAIyL,UAAUzL,EAAIyL,SAASxB,UAAUjK,EAAIyL,SAASxB,SAASK,OAAO,EAAGlK,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,KAAK,CAACE,YAAY,gCAAgC,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQ7M,EAAIyL,SAASqB,YAAYC,OAAO,aAAa/M,EAAImC,KAAKnC,EAAI4M,GAAI5M,EAAY,UAAE,SAASgN,EAAQC,GAAO,OAAO7M,EAAG,MAAM,CAACO,IAAIsM,EAAM3M,YAAY,OAAOC,MAAM,CACzzD,YAA+B,QAAlByM,EAAQE,OAAmBF,EAAQE,QAAUlN,EAAI6B,KAAKC,KAClE,CAAkB,SAAhBkL,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,eAAe,CAAoB,QAAlB0M,EAAQE,MAAiB9M,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACE,YAAY,oCAAqC0M,EAAQE,QAAUlN,EAAI6B,KAAKC,GAAI1B,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,KAAK,IAAMT,EAAIyL,UAAYzL,EAAIyL,SAAS0B,YAAcnN,EAAIyL,SAAS0B,WAAWC,OACrZpN,EAAIyL,SAAS0B,WAAWC,OACxB,QAAQhN,EAAG,WAAW,CAACE,YAAY,+BAA+BG,MAAM,CAAC,KAAO,KAAK,IAAMT,EAAIyL,UAAYzL,EAAIyL,SAAS4B,YAAcrN,EAAIyL,SAAS4B,WAAWD,OAC9JpN,EAAIyL,SAAS4B,WAAWD,OACxB,SAAS,GAAGpN,EAAImC,KAAsB,SAAhB6K,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,YAAYgN,YAAY,CAAC,gBAAgB,eAAe,CAAkB,QAAhBN,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,cACzUN,GAASjN,EAAIwN,SAASlD,OAAS,GAC/B0C,EAAQS,kBACRT,EAAQG,YAAcnN,EAAI6B,KAAKC,GAC/B1B,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,qCAAqCN,EAAImC,OAAOnC,EAAImC,KAAsB,QAAhB6K,EAAQR,KAAgBpM,EAAG,MAAMJ,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,SAAWT,EAAI2N,mBAAmB5M,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAI4N,YAAYF,MAAW,CAAC1N,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAI0B,GAAGgM,EAAOjH,OAAO,UAAS,GAAGzG,EAAImC,KAAsB,QAAhB6K,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,eAAeS,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAI6N,KAAKb,EAAQc,KAAKC,QAAQ,CAAC3N,EAAG,QAAQ,CAACkN,YAAY,CAAC,MAAQ,QAAQ7M,MAAM,CAAC,IAAMuM,EAAQc,KAAKC,OAAO3N,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,cAC3tBN,GAASjN,EAAIwN,SAASlD,OAAS,GAC/B0C,EAAQS,kBACRT,EAAQG,YAAcnN,EAAI6B,KAAKC,GAC/B1B,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,qCAAqCN,EAAImC,MAAM,GAAGnC,EAAImC,KAAsB,SAAhB6K,EAAQR,KAAiBpM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,gBAAgBvN,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,MAAMM,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAIgO,QAAQN,EAAOO,gBAAgB,CAACjO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAI0B,GAAG8H,KAAK0E,MAAMR,EAAOO,aAAaE,UAAU,WAAU,GAAoB,QAAhBnB,EAAQR,KAAgBpM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI0B,GAAGsL,EAAQvG,UAAUrG,EAAG,QAAQ,CAACE,YAAY,mBAAmB,CAACN,EAAIwB,GAAGxB,EAAIyB,GAAGzB,EAAI6M,QAAQG,EAAQF,YAAYS,gBAAgBvN,EAAI4M,GAAII,EAAe,SAAE,SAASU,EAAO5L,GAAI,OAAO1B,EAAG,QAAQ,CAACO,IAAImB,EAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,SAAWT,EAAIoO,aAAarN,GAAG,CAAC,MAAQf,EAAIqO,aAAa,CAACrO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAI0B,GAAGgM,EAAOjH,OAAO,WAAU,GAAoB,OAAhBuG,EAAQR,KAAepM,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAACO,IAAIX,EAAI8B,GAAGxB,YAAY,YAAYG,MAAM,CAAC,QAAU,UAAU,KAAO,MAAMM,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAIgO,QAAQhB,EAAQiB,gBAAgB,CAACjO,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAG+H,KAAK0E,MAAMlB,EAAQiB,aAAaE,SAAS,QAAQ,GAAGnO,EAAImC,OAAOnC,EAAImC,WAAU,GAAG/B,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,gBAAgB,cAAc,GAAG,cAAc,gBAAgB,SAAW,GAAG,KAAO,MAAMS,MAAM,CAACC,MAAOnB,EAAW,QAAEoB,SAAS,SAAUC,GAAMrB,EAAIsO,QAAQjN,GAAKE,WAAW,YAAY,CAACnB,EAAG,UAAU,CAACK,MAAM,CAAC,IAAMT,EAAIuO,cAAc,OAAS,QAAQ,KAAO,SAAS,gBAAkB,OAAO,IAAI,MACzvD,EAAkB,GC7BlB,G,8BAAS,WAAa,IAAIvO,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,iBAAiBC,MAAMP,EAAIwO,aAAa,CAAwB,QAAtBxO,EAAIgN,QAAQE,MAAiB9M,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACN,EAAIwB,GAAG,WAAWxB,EAAImC,KAAMnC,EAAiB,cAAEI,EAAGJ,EAAIyO,cAAc,CAAC3N,IAAI,YAAYL,MAAM,CAAC,YAAYT,EAAIgN,WAAWhN,EAAImC,KAAMnC,EAAIgN,QAAiB,UAAE5M,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACN,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAIgN,QAAQ0B,WAAW,OAAO1O,EAAImC,MAAM,KACjhB,EAAkB,GCDlB,EAAS,WAAa,IAAInC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,kEAAkE,CAAwB,SAAtBN,EAAIwN,SAAShB,KAAiBpM,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACN,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAIwN,SAAS/G,MAAM,OAAOzG,EAAImC,KAAM,CAAC,OAAQ,UAAUD,SAASlC,EAAIwN,SAAShB,MAAOpM,EAAG,MAAM,CAACE,YAAY,iCAAiCsB,SAAS,CAAC,UAAY5B,EAAIyB,GAAGzB,EAAIwN,SAAS/G,SAASzG,EAAImC,QACje,EAAkB,GCeP,GACfoE,OACAiH,UACAhB,eCnBkX,ICO9W,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIxM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,qEAAqE,CAAwB,SAAtBN,EAAIwN,SAAShB,KAAiBpM,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACN,EAAIwB,GAAG,IAAIxB,EAAIyB,GAAGzB,EAAIwN,SAAS/G,MAAM,OAAOzG,EAAImC,KAAM,CAAC,OAAQ,UAAUD,SAASlC,EAAIwN,SAAShB,MAAOpM,EAAG,MAAM,CAACE,YAAY,iCAAiCsB,SAAS,CAAC,UAAY5B,EAAIyB,GAAGzB,EAAIwN,SAAS/G,SAASzG,EAAImC,KAAK/B,EAAG,MAAM,CAACE,YAAY,6CAA6CN,EAAI4M,GAAI5M,EAAIwN,SAAgB,SAAE,SAASmB,EAAK1B,GAAO,OAAO7M,EAAG,MAAM,CAACO,IAAIsM,EAAM3M,YAAY,8BAA8BC,MAAM,CAAE0K,OAAQjL,EAAI4O,eAAiBD,EAAKxN,QAAS,CAAkB,aAAhBwN,EAAKE,OAAuBzO,EAAG,SAAS,CAACE,YAAY,6BAA6BS,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOhB,EAAI8O,aAAaH,MAAS,CAACvO,EAAG,OAAO,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGkN,EAAKlI,WAAWrG,EAAG,IAAI,CAACE,YAAY,wDAAwDG,MAAM,CAAC,OAAS,SAAS,KAAOkO,EAAKxN,QAAQ,CAACf,EAAG,OAAO,CAACJ,EAAIwB,GAAGxB,EAAIyB,GAAGkN,EAAKlI,gBAAe,MAC1jC,EAAkB,GCuCP,GACfF,OACAiH,UACAhB,cAIAzH,KAPA,WAQA,OACA6J,oBAIAlC,SACAoC,aADA,SACA3N,GACA,oBACAoL,qCCxDqX,ICOjX,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCYA,GACfhJ,YACAwL,aACAC,iBAGAzI,OACAyG,SACAR,cAIA3I,UACA2K,YADA,WAEA,iCACA,sBACA,wBAIAC,cARA,WASA,SAEA,0BACA,aACAjC,kBACA,MACA,QACAA,eAGA,YC7D4W,ICOxW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIxM,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAIK,MAAMD,GAAO,OAAOJ,EAAIiP,GAAG,IACnG,EAAkB,CAAC,WAAa,IAAIjP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACN,EAAIwB,GAAG,WAAWpB,EAAG,MAAM,CAACE,YAAY,6DAA6D,CAACF,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,kBCAvd8O,EAAS,GAKT,EAAY,eACdA,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCuTA,GACf3L,YACA4L,gBACAC,iBAGA7I,OACAiF,KACAgB,YAEAgB,UACAhB,WACA6C,aAEA5D,UACAe,aAGAd,WACAc,aACAC,aAGA1H,KAvBA,WAwBA,OACAwJ,mBACAD,WACAF,eACAT,qBACA2B,kBAGAzL,0CACAC,uBAAAjC,6BACAiC,0CAGAe,OACA2I,SADA,SACA+B,GAAA,WACA,2BACA,qBAGA9D,UACArG,QADA,SACAC,GACA,iCACA,wCAEAE,eAIAoB,QApDA,WAoDA,WACA,4CAsBA,OArBA6I,uCACA,sCACAtC,mBACAV,YACA/F,oBACAgJ,GAJA,IAiBAC,qBAGA,KAEA,2BACA,qBASAhD,yCACA7E,mDADA,IAEA+F,YAFA,SAEAF,GACA,+BACA,sCAEAG,KANA,SAMA1M,GACA,gBACA,sBAEAkN,WAVA,WAWA,oBACA,0BAEA,4BAEAsB,KAhBA,SAgBAhB,GACA,mBAAA1M,aAAA2N,cAEA5B,QAnBA,SAmBAW,GACA,mBACA9E,WACAgG,QAAA/N,wBAGAgO,aAzBA,WA0BA,8BACA,uCAEAC,kBC5b+W,ICQ3W,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCnBX,EAAS,WAAa,IAAI/P,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAASF,EAAI+L,aAA40B/L,EAAImC,KAAl0B/B,EAAG,gBAAgB,CAAEJ,EAAIyL,WAAazL,EAAIyL,SAASuE,UAAW5P,EAAG,wBAAwB,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,QAAU,WAAWM,GAAG,CAAC,MAAQf,EAAIiQ,UAAU,CAAC7P,EAAG,eAAe,CAACK,MAAM,CAAC,KAAO,oBAAoB,IAAI,GAAGT,EAAImC,KAAK/B,EAAG,kBAAkB,CAACuM,IAAI,kBAAkBlM,MAAM,CAAC,YAAcT,EAAI6L,iBAAiB,KAAO,IAAI,KAAO,KAAK,YAAY,GAAG,UAAY,IAAI9K,GAAG,CAAC,QAAU,SAASC,GAAQ,OAAIA,EAAOwL,KAAK0D,QAAQ,QAAQlQ,EAAImQ,GAAGnP,EAAOoP,QAAQ,QAAQ,GAAGpP,EAAOL,IAAI,SAAkB,KAAcX,EAAIgM,YAAYqE,MAAM,KAAMC,YAAY,MAAQtQ,EAAIuQ,WAAWrP,MAAM,CAACC,MAAOnB,EAAe,YAAEoB,SAAS,SAAUC,GAAMrB,EAAIwQ,YAAYnP,GAAKE,WAAW,iBAAiBnB,EAAG,uBAAuB,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,QAAU,WAAWM,GAAG,CAAC,MAAQf,EAAIgM,cAAc,CAAC5L,EAAG,eAAe,CAACK,MAAM,CAAC,KAAO,eAAe,IAAI,IAAI,IAC36B,EAAkB,GC2BP,G,WAAA,CACf8F,OACAsF,kBACAW,aAEAf,UACAe,aAGAV,yBACAU,aAGAT,cACAS,aACAC,aAIA1H,KAnBA,WAoBA,OACAyL,iBACAC,cAIA5M,UACA6M,YADA,WAEA,SAYA,OAVA,mBACAC,qCAGA,kBACAA,mCAKA,IAIAhK,QA5CA,WA6CA,wDACA,oCAGA+F,SACA6D,UADA,WAEA,qCACAlK,yBAEA2F,YALA,SAKA4E,GACAA,mBACA,0BACA,uBAAAnK,sBAAA+F,cACA,sBAGAyD,QAZA,WAaA,4BC1F8W,ICO1W,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIjQ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,gBAAgBgN,YAAY,CAAC,QAAU,QAAQ1L,SAAS,CAAC,UAAY5B,EAAIyB,GAAGzB,EAAI6Q,WAClM,EAAkB,GCOP,I,UAAA,CACftK,kBACA1C,UACAgN,MADA,WAEA,iBACA,SAGA,MAWA,aAVAC,EADA,EACAA,YACAC,EAFA,EAEAA,UACAC,EAHA,EAGAA,eACAC,EAJA,EAIAA,cAEAC,GANA,EAKAC,cALA,EAMAD,gBACAE,EAPA,EAOAA,eACAC,EARA,EAQAA,kBACAC,EATA,EASAA,gBACAC,EAVA,EAUAA,mBAGA,iGAGAT,EAHA,uBAIAG,EAJA,0BAKAA,EALA,mDAQAF,EARA,uBASAA,EATA,yCAYAE,EAZA,4DAeAH,EAfA,sDAkBAC,EAlBA,2DAqBAC,EArBA,oFAyBAK,EAzBA,kCA0BAD,EA1BA,sKA+BAC,EA/BA,4EAkCAC,EAlCA,mFAqCAC,EArCA,kCAsCAD,EAtCA,yDAyCAA,EAzCA,8BA0CAA,EA1CA,+DA6CAC,EA7CA,kCA8CAD,EA9CA,4EAiDAJ,EAjDA,0BAqDA,aClFiW,MCO7V,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QCyEA,I,UAAA,CACfrH,gBAEAtG,YACAiO,cACAC,eACAC,cAGAC,aAGApL,OACAqL,OACApF,aACAC,YAEAoF,SACArF,YACAC,mBAAA,WAEAhB,UACAe,YACAC,mBAAA,WAEAjB,KACAgB,YAIAvC,UACAuC,YAGAd,WACAc,aACAC,YAGAV,cACAS,aACAC,YAGAqF,QACAtF,aACAC,aAIA1H,KAlDA,WAmDA,OACAgN,UACAC,iBACAC,QACA/G,aACAgH,gBAEApB,sBACAC,iBACAE,iBACAkB,aACAnB,sBACAG,iBACAC,yBACAC,yBACAC,0BACAC,0BACA1F,2BACAqF,sBACApF,gCAIAjH,OACAkH,aADA,SACA1G,KAIAuM,MALA,SAKAvM,GACA,iBACA,EACA,mBAEA,uBAGAmG,IAbA,SAaAnG,MAKAxB,yDACAC,uBACAjC,6BAEAiC,wCAJA,IAKAsO,SACAC,IADA,WAEA,yBAEAC,IAJA,SAIAjN,GAGA,sBAGA+F,YAfA,WAgBA,4EAEAmH,YAlBA,WAmBA,SAYA,OAXA,aAEA,gUACAC,IAEA,+kDACAA,kBAGAC,MATA,CAUA7J,qDACA,GAGAoC,UAlCA,WAmCA,SAMA,OAJA,4BACA0H,8BAGA,KAIAtM,QAzIA,WA0IA,sCACA,oCACA,IACA,qDACA,oCACA,uCACA,sCAGAU,6CAEA,gBAGAH,QAxJA,WAwJA,WACA,kCACA,IACA,qDACA,oCACA,uCACA,sCAGAG,6CAGAyF,gDACAlG,8DACA,qCACA,sBAIAsM,kDACA,sCACA,iCACA7L,uDAIA8L,cAlLA,WAmLArG,gCAGAG,wDACA5E,wCADA,IAEAoE,UAFA,WAMA,qDACA2G,sCAEA,sBACAA,qCACAA,0CAGA1G,QAdA,WAeA,sCACArF,0DACA,yBAkFAe,wEAnGA,IAoGAiL,QApGA,WAqGA,cACA,mBAGA,oBAEAnH,aA3GA,WA6GA,4BAEAC,eA/GA,SA+GAvG,GAEA,gCAEAkG,UAnHA,WAmHA,WACA,YACA/E,4BACAC,iEACAhC,eACA0C,oBACAC,iCACAC,oCACAC,aACAC,gCACAC,4CAEAC,oBACAC,MAAA,YACA,SACA,cAAA5F,mBAAA,0BAOAwJ,UAzIA,WAyIA,WAGA,+BAEA,sCAEA,gBACAxE,sDACA,mBACA,mDACA,cAAAhF,sBAAA,iBACA,sCAQA,uBAIAkK,YAjKA,SAiKA7K,GACA,0BAEA8K,SApKA,WAqKA,yBAGA6C,aAxKA,SAwKA3N,GACA,8BC1b8V,MCU1V,I,8BAAY,eACd,GACApB,EACAqC,GACA,EACA,KACA,KACA,OAIa,U,+GCrBf","file":"app~06837ae4.7ce4135d.js?version=1779449585882","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BotUI.vue?vue&type=style&index=2&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Content.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"h-100\",class:[_vm.skinClasses],attrs:{\"id\":\"app\"}},[_c(_vm.layout,{key:_vm.$i18n.locale,tag:\"component\"},[_c('router-view',{key:_vm.$i18n.locale})],1),_c('b-modal',{staticClass:\"mx-0 px-0\",attrs:{\"centered\":\"\",\"hide-footer\":\"\"},on:{\"close\":function($event){return _vm.updatePopup(true)}},model:{value:(_vm.modalShow),callback:function ($$v) {_vm.modalShow=$$v},expression:\"modalShow\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('h4',{staticClass:\"text-center my-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('👇 NOUVEAUTÉ chez U-Smile 👇'))+\" \")])]),(_vm.clicked==false)?_c('b-col',{staticClass:\"transition\",attrs:{\"cols\":\"12\"}},[_c('video',{staticClass:\"mx-auto w-100\",attrs:{\"width\":\"400\",\"height\":\"700\",\"controls\":\"\",\"autoplay\":\"\"}},[_c('source',{attrs:{\"src\":\"https://u-smile.fra1.digitaloceanspaces.com/u_mag_popup.mov\",\"type\":\"video/mp4\"}}),_vm._v(\" Your browser does not support the video tag. \")])]):_c('b-col',{staticClass:\"transition\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('Pour recevoir ton U-MAG, c’est très simple:'))}}),_c('p'),_c('ol',[_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('Tous les dimanches, tu envoies un <b>message WhatsApp entre 10h00 et 12h00</b> au numéro mystère +32 471 35 05 57'))}}),_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('Tu mentionnes ton <b>nom et prénom + mention “FR” ou “NL”</b>'))}}),_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('Tu profites des incentives et bonus inédits <b>réservés UNIQUEMENT à nos lecteurs</b>'))}})]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t(\"<u>Note:</u> U-MAG est gratuit sur tout le mois de juin. À partir du 1er juillet, U-MAG sera accessible sous forme d'abonnement et deviendra payant.\"))}})]),_c('b-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('b-btn',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.updatePopup}},[_vm._v(\" U-MAG \")])],1)],1)],1),_c('Can',{attrs:{\"i\":\"mine\",\"a\":\"chat_room\"}},[(\n        _vm.user &&\n        _vm.user.id &&\n        !_vm.u_app_layout &&\n        !_vm.$route.path.includes('/chat') &&\n        !_vm.$route.path.includes('/Sign')\n      )?_c('ChatBulb'):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { initializeApp } from \"firebase/app\";\n\n// Your web app's Firebase configuration\nconst firebaseConfig = {\n  apiKey: process.env.VUE_APP_FIREBASE_API_KEY,\n  authDomain: process.env.VUE_APP_FIREBASE_AUTH_DOMAIN,\n  databaseURL: process.env.VUE_APP_FIREBASE_DATABASE_URL,\n  projectId: process.env.VUE_APP_FIREBASE_PROJECT_ID,\n  storageBucket: process.env.VUE_APP_FIREBASE_STORAGE_BUCKET,\n  messagingSenderId: process.env.VUE_APP_FIREBASE_MESSAGING_SENDER_ID,\n  appId: process.env.VUE_APP_FIREBASE_APP_ID,\n}\n\n// Initialize Firebase\nexport const app = initializeApp(firebaseConfig)\n","<template>\n  <div id=\"app\" class=\"h-100\" :class=\"[skinClasses]\">\n    <!-- <p\n      class=\"bg-danger p-1 px-5 text-center text-white\"\n      style=\"\n        position: fixed;\n        left: 0rem;\n        right: 0rem;\n        bottom: 2rem;\n        z-index: 9999999999999999;\n      \"\n    >\n      THIS is A DEV Environement!\n    </p> -->\n\n    <!-- <app-tour :steps=\"steps\" /> -->\n    <component :is=\"layout\" :key=\"$i18n.locale\">\n      <router-view :key=\"$i18n.locale\" />\n    </component>\n    <b-modal v-model=\"modalShow\" centered  class=\"mx-0 px-0\" hide-footer @close=\"updatePopup(true)\">\n      <b-row>\n        <b-col cols=\"12\">\n          <h4 class=\"text-center my-2\">\n            {{ $t('👇 NOUVEAUTÉ chez U-Smile 👇') }}\n          </h4>\n        </b-col>\n        <!-- <transition\n        type=\"transition\"\n        name=\"fade\"\n      > -->\n        <b-col cols=\"12\" v-if=\"clicked==false\" class=\"transition\">\n          <video class=\"mx-auto w-100\" width=\"400\" height=\"700\" controls autoplay>\n        <source src=\"https://u-smile.fra1.digitaloceanspaces.com/u_mag_popup.mov\" type=\"video/mp4\">\n        Your browser does not support the video tag.\n    </video>        </b-col>\n        <b-col v-else class=\"transition\">\n          <p v-html=\"$t('Pour recevoir ton U-MAG, c’est très simple:')\">\n            \n          </p>\n          <p></p>\n          <ol>\n            <li v-html=\"$t('Tous les dimanches, tu envoies un <b>message WhatsApp entre 10h00 et 12h00</b> au numéro mystère +32 471 35 05 57')\"></li>\n            <li v-html=\"$t('Tu mentionnes ton <b>nom et prénom + mention “FR” ou “NL”</b>')\"></li>\n            <li v-html=\"$t('Tu profites des incentives et bonus inédits <b>réservés UNIQUEMENT à nos lecteurs</b>')\"></li>\n          </ol>\n\n          <p v-html=\"$t(`<u>Note:</u> U-MAG est gratuit sur tout le mois de juin. À partir du 1er juillet, U-MAG sera accessible sous forme d'abonnement et deviendra payant.`)\">\n            \n          </p>\n        </b-col>\n      <!-- </transition> -->\n        <b-col cols=\"12\" class=\"text-center\">\n          <b-btn variant=\"primary\" @click=\"updatePopup\">\n            U-MAG\n          </b-btn>\n        </b-col>\n      </b-row>\n      \n    </b-modal>\n    <Can i=\"mine\" a=\"chat_room\">\n      <ChatBulb\n        v-if=\"\n          user &&\n          user.id &&\n          !u_app_layout &&\n          !$route.path.includes('/chat') &&\n          !$route.path.includes('/Sign')\n        \"\n      />\n    </Can>\n  </div>\n</template>\n\n<script>\n// This will be populated in `beforeCreate` hook\nimport { $themeColors, $themeBreakpoints, $themeConfig } from \"@themeConfig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { app as firebaseApp } from \"./firebase\";\nimport {\n  getToken,\n  getMessaging,\n  onMessage,\n  deleteToken,\n} from \"firebase/messaging\";\nimport { register as registerSW } from \"register-service-worker\";\nimport { provideToast } from \"vue-toastification/composition\";\nimport { watch } from \"@vue/composition-api\";\nimport useAppConfig from \"@core/app-config/useAppConfig\";\nimport ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\nimport { useWindowSize, useCssVar } from \"@vueuse/core\";\n\nimport store from \"@/store\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport { localize } from \"vee-validate\";\nimport { dictionary } from \"@validations\";\nimport ChatBulb from \"@/views/chat/ChatBulb.vue\";\nimport AppTour from \"@core/components/app-tour/AppTour.vue\";\n\nconst LayoutVertical = () => import(\"@/layouts/vertical/LayoutVertical.vue\");\nconst LayoutHorizontal = () =>\n  import(\"@/layouts/horizontal/LayoutHorizontal.vue\");\nconst LayoutFull = () => import(\"@/layouts/full/LayoutFull.vue\");\n\nexport default {\n  components: {\n    // Layouts\n    LayoutHorizontal,\n    LayoutVertical,\n    LayoutFull,\n    ChatBulb,\n    AppTour,\n  },\n  // ! We can move this computed: layout & contentLayoutType once we get to use Vue 3\n  // Currently, router.currentRoute is not reactive and doesn't trigger any change\n  computed: {\n    ...mapGetters(\"lang\", [\"GET_LANG\"]),\n    u_app_layout()\n    {\n      return this.$route.query && this.$route.query.u_app_layout\n    },\n    layout() {\n     console.log('route',this.$route.query)\n      if (this.$route.meta.layout === \"full\" || this.u_app_layout) return \"layout-full\";\n      return `layout-${this.contentLayoutType}`;\n    },\n    contentLayoutType() {\n      return this.$store.state.appConfig.layout.type;\n    },\n    ...mapGetters(\"auth\", {\n      user: \"GET_USER_DATA\",\n      permissions: \"GET_PERMISSIONS\",\n      uhub_user: \"GET_UHUB_USER_DATA\",\n    }),\n    ...mapGetters(\"auth\", [\"HasPermissionTO\"]),\n\n    ...mapGetters(\"steps\", {\n      steps: \"Get_Steps\",\n    }),\n  },\n\n  setup() {\n    const { skin, skinClasses } = useAppConfig();\n\n    // If skin is dark when initialized => Add class to body\n    if (skin.value === \"dark\") document.body.classList.add(\"dark-layout\");\n\n    // Provide toast for Composition API usage\n    // This for those apps/components which uses composition API\n    // Demos will still use Options API for ease\n    provideToast({\n      hideProgressBar: true,\n      closeOnClick: false,\n      closeButton: false,\n      icon: false,\n      timeout: 3000,\n      transition: \"Vue-Toastification__fade\",\n    });\n\n    // Set Window Width in store\n    store.commit(\"app/UPDATE_WINDOW_WIDTH\", window.innerWidth);\n    const { width: windowWidth } = useWindowSize();\n    watch(windowWidth, (val) => {\n      store.commit(\"app/UPDATE_WINDOW_WIDTH\", val);\n    });\n    const connectivityStatus = true;\n    return {\n      skinClasses,\n      connectivityStatus,\n    };\n  },\n  data() {\n    return {\n      isAtBottom: false,\n      messaging: null,\n      clientToken: null,\n      statusMessage: null,\n    \n      modalShow: false,\n      clicked:false\n  \n    };\n  },\n  watch: {\n    \"$route.name\": {\n      handler(val) {\n        // if (val && !this.$route.query.id) this.StartTour(val);\n      },\n      deep: true,\n      immediate: true,\n    },\n    GET_LANG: {\n      immediate: true,\n      handler(val) {\n        this.$i18n.locale = val;\n        localize(val, dictionary);\n        this.$moment.locale(val);\n        // this.$vuetify.lang.current = val;\n      },\n      deep: true,\n    },\n    steps(val) {\n      if (val && val.length > 0) {\n        setTimeout(() => this.$tours.vuexyTour.start(), 2000);\n      }\n    },\n    async user(val) {\n      if (val && val.id) {\n        await this.GET_ALL_STATICS();\n        // this.$store.commit('start',val.email)\n        \n        // Subscribe to refresh channel if not already subscribed\n        if (!this.$pusher.channels.channels['refresh']) {\n          this.subscribeToRefreshChannel();\n        }\n      }\n    },\n  },\n  beforeCreate() {\n    // Set colors in theme\n    const colors = [\n      \"primary\",\n      \"secondary\",\n      \"success\",\n      \"info\",\n      \"warning\",\n      \"danger\",\n      \"light\",\n      \"dark\",\n    ];\n\n    // eslint-disable-next-line no-plusplus\n    for (let i = 0, len = colors.length; i < len; i++) {\n      $themeColors[colors[i]] = useCssVar(\n        `--${colors[i]}`,\n        document.documentElement\n      ).value.trim();\n    }\n\n    // Set Theme Breakpoints\n    const breakpoints = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\n\n    // eslint-disable-next-line no-plusplus\n    for (let i = 0, len = breakpoints.length; i < len; i++) {\n      $themeBreakpoints[breakpoints[i]] = Number(\n        useCssVar(\n          `--breakpoint-${breakpoints[i]}`,\n          document.documentElement\n        ).value.slice(0, -2)\n      );\n    }\n\n    // Set RTL\n    const { isRTL } = $themeConfig.layout;\n    document.documentElement.setAttribute(\"dir\", isRTL ? \"rtl\" : \"ltr\");\n  },\n  created() {\n    window.addEventListener(\"offline\", () => {\n      this.connectivityStatus = false;\n      this.$toast({\n        component: ToastificationContent,\n        props: {\n          title: `${this.$t(\"Attention\")} !!`,\n          text: this.$t(\"Vous êtes hors ligne\"),\n          variant: \"warning\",\n        },\n      });\n    });\n  },\n  async mounted() {\n    //\n    await this.GET_ALL_STATICS()\n\n    if (this.user && this.user.id) {\n\n      // if(this.user.u_mag_popup==false)\n      // {\n      //   this.modalShow = true\n      // }\n\n      this.GET_LEFT_BAR(); //Mooved here to unclock tickets issues\n\n      this.messaging = getMessaging(firebaseApp);\n      if (this.isSubscribed())\n        this.clientToken = await this.getSubscribedToken();\n      await this.registerServiceWorker();\n      if(this.HasPermissionTO(\"read\", \"ticket\"))\n      \n      // this.initFilters();\n      this.$store.commit(\"start\", this.user.email);\n      await this.GET_OFFLINE_NOTIFICATIONS(this.user.id);\n      const channel = this.$pusher.subscribe(\n        `user-notifications.${this.user.email}`\n      );\n\n      // var tickets = this.$pusher.subscribe(\"ticket-notifications\");\n      channel.bind(\"chat_room_seen_event\", (res) => {\n        const e = new CustomEvent(\"chat_room_seen_event\", {\n          detail: res.room,\n        });\n        window.dispatchEvent(e);\n      });\n      channel.bind(\"ticket_created_event\", (res) => {\n        // this.SET_NOTIFICATION(res.contract);\n        // this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        // this.SET_REJECTED(res.contract.is_reject_blocked);\n        // this.$toast({\n        //   component: ToastificationContent,\n        //   props: {\n        //     title: res.contract.title,\n        //     text: res.contract.subtitle,\n        //     variant: res.contract.css,\n        //   },\n        // });\n    \n        this.push_ticket(res.ticket);\n        if (this.uhub_user && res.ticket.created_by.id != this.uhub_user.id) {\n          const swevent = new CustomEvent(\"SW_ticket_created_event\", {\n            detail: res.ticket,\n          });\n          window.dispatchEvent(swevent);\n        }\n        const event = new CustomEvent(\"ticket_created_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n      });\n      channel.bind(\"ticket_reply_created_event\", (res) => {\n        // this.SET_NOTIFICATION(res.contract);\n        // this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        // this.SET_REJECTED(res.contract.is_reject_blocked);\n        // this.$toast({\n        //   component: ToastificationContent,\n        //   props: {\n        //     title: res.contract.title,\n        //     text: res.contract.subtitle,\n        //     variant: res.contract.css,\n        //   },\n        // });\n        const event = new CustomEvent(\"ticket_reply_created_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n      });\n      channel.bind(\"ticket_status_updated_event\", (res) => {\n        // this.SET_NOTIFICATION(res.contract);\n        // this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        // this.SET_REJECTED(res.contract.is_reject_blocked);\n        // this.$toast({\n        //   component: ToastificationContent,\n        //   props: {\n        //     title: res.contract.title,\n        //     text: res.contract.subtitle,\n        //     variant: res.contract.css,\n        //   },\n        // });\n\n        const event = new CustomEvent(\"ticket_status_updated_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n        \n          this.pop_ticket(res.ticket);\n        \n      });\n      const chat = this.$pusher.subscribe(\"chat-notifications\");\n      // var channel_uhub = this.$pusher.subscribe(\n      //   \"user_permissions.\" + this.user.email\n      // );\n      \n      // Subscribe to refresh channel using centralized method\n      this.subscribeToRefreshChannel();\n\n      chat.bind(\"chat_room_pending_event\", (res) => {\n        // this.SET_NOTIFICATION(res.contract);\n        // this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        // this.SET_REJECTED(res.contract.is_reject_blocked);\n        // this.$toast({\n        //   component: ToastificationContent,\n        //   props: {\n        //     title: res.contract.title,\n        //     text: res.contract.subtitle,\n        //     variant: res.contract.css,\n        //   },\n        // });\n        if (res.room.pending_by != this.uhub_user.id) {\n          this.DEC_CHATROOMS();\n        }\n        const event = new CustomEvent(\"chat_room_pending_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n      });\n      chat.bind(\"new_chat_room_event\", (res) => {\n        if (this.uhub_user && res.room.created_by.id != this.uhub_user.id) {\n          if (\n            this.HasPermissionTO(\"all_back_office\", \"chat_room\") ||\n            this.HasPermissionTO(\"all\", \"chat_room\")\n          ) {\n            const obj = {\n              seen: false,\n              css: \"light-success\",\n              id: (Math.random() + 1).toString(36).substring(7),\n              title: \"Demande de Live Chat\",\n              subtitle: \"Une Demande de live chat à été ajouté !\",\n            };\n            this.SET_NOTIFICATION(obj);\n            this.INC_CHATROOMS();\n\n            this.$toast({\n              component: ToastificationContent,\n              props: {\n                title: obj.title,\n                text: obj.subtitle,\n                variant: obj.css,\n              },\n            });\n            const swevent = new CustomEvent(\"SW_chat_created_event\", {\n              detail: res.room,\n            });\n            window.dispatchEvent(swevent);\n          }\n        }\n        const event = new CustomEvent(\"new_chat_room_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n      });\n      chat.bind(\"chat_room_closed_event\", (res) => {\n        // this.SET_NOTIFICATION(res.contract);\n        // this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        // this.SET_REJECTED(res.contract.is_reject_blocked);\n        // this.$toast({\n        //   component: ToastificationContent,\n        //   props: {\n        //     title: res.contract.title,\n        //     text: res.contract.subtitle,\n        //     variant: res.contract.css,\n        //   },\n        // });\n        if (this.uhub_user && res.room.pending_by == this.uhub_user.id) {\n          this.DEC_CHATROOMS();\n        }\n        const event = new CustomEvent(\"chat_room_closed_event\", {\n          detail: res,\n        });\n        window.dispatchEvent(event);\n      });\n\n      channel.bind(\"uhub_permissions_updated_event\", async (res) => {\n        const { user } = res;\n        user.permissions = res.permissions;\n        this.UPDATE_UHUB_PERMISSIONS(user).then(() => {\n          this.$swal({\n            title: this.$t(\"Un nouveau contenu est disponible !\"),\n            text: this.$t(\"Vous êtes sur le point de rafraîchir votre page\"),\n            icon: \"warning\",\n            showCancelButton: true,\n            confirmButtonText: this.$t(\"Oui\"),\n            cancelButtonText: this.$t(\"Plus tard\"),\n            customClass: {\n              confirmButton: \"btn btn-primary\",\n              cancelButton: \"btn btn-outline-danger ml-1\",\n            },\n            buttonsStyling: false,\n          }).then((result) => {\n            if (result.value) {\n              caches.keys().then((names) => {\n                for (const name of names) caches.delete(name);\n              });\n              window.location.reload(true);\n            } else if (result.dismiss === \"cancel\") {\n              this.$swal({\n                title: this.$t(\"Annulée\"),\n                text: this.$t(\n                  \"N'oubliez pas de rafraîchir votre page manuellement :)\"\n                ),\n                icon: \"warning\",\n                customClass: {\n                  confirmButton: \"btn btn-success\",\n                },\n              });\n            }\n          });\n        });\n      });\n\n      channel.bind(\"usell_permissions_updated_event\", async (res) => {\n        this.UPDATE_USELL_PERMISSIONS(res.user).then(() => {\n          this.$swal({\n            title: this.$t(\"Un nouveau contenu est disponible !\"),\n            text: this.$t(\"Vous êtes sur le point de rafraîchir votre page\"),\n            icon: \"warning\",\n            showCancelButton: true,\n            confirmButtonText: this.$t(\"Oui\"),\n            cancelButtonText: this.$t(\"Plus tard\"),\n            customClass: {\n              confirmButton: \"btn btn-primary\",\n              cancelButton: \"btn btn-outline-danger ml-1\",\n            },\n            buttonsStyling: false,\n          }).then((result) => {\n            if (result.value) {\n              caches.keys().then((names) => {\n                for (const name of names) caches.delete(name);\n              });\n              window.location.reload(true);\n            } else if (result.dismiss === \"cancel\") {\n              this.$swal({\n                title: this.$t(\"Annulée\"),\n                text: this.$t(\n                  \"N'oubliez pas de rafraîchir votre page manuellement :)\"\n                ),\n                icon: \"warning\",\n                customClass: {\n                  confirmButton: \"btn btn-success\",\n                },\n              });\n            }\n          });\n        });\n      });\n\n      // channel_uhub.bind(\"user_permissions\", (data) => {\n      //   this.$store.commit(\"update_user_permissions\", data);\n      // });\n      channel.bind(\"contract_signed_event\", (res) => {\n        this.SET_NOTIFICATION(res.contract);\n        this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        this.SET_REJECTED(res.contract.is_reject_blocked);\n\n        this.$toast({\n          component: ToastificationContent,\n          props: {\n            title: res.contract.title,\n            text: res.contract.subtitle,\n            variant: res.contract.css,\n          },\n        });\n        const event = new CustomEvent(\"contract_signed_event\", {\n          detail: res.contract,\n        });\n        window.dispatchEvent(event);\n      });\n      channel.bind(\"contract_encoded_event\", (res) => {\n        this.SET_NOTIFICATION(res.contract);\n        this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        this.SET_REJECTED(res.contract.is_reject_blocked);\n        this.$toast({\n          component: ToastificationContent,\n          props: {\n            title: res.contract.title,\n            text: res.contract.subtitle,\n            variant: res.contract.css,\n          },\n        });\n        const event = new CustomEvent(\"contract_encoded_event\", {\n          detail: res.contract,\n        });\n        window.dispatchEvent(event);\n      });\n      channel.bind(\"contract_rejected_event\", (res) => {\n        this.SET_NOTIFICATION(res.contract);\n        this.SET_MR_REJECT_VALUES(res.contract.mr_reject_values);\n        this.SET_REJECTED(res.contract.is_reject_blocked);\n        this.$toast({\n          component: ToastificationContent,\n          props: {\n            title: res.contract.title,\n            text: res.contract.subtitle,\n            variant: res.contract.css,\n          },\n        });\n        const event = new CustomEvent(\"contract_rejected_event\", {\n          detail: res.contract,\n        });\n        window.dispatchEvent(event);\n      });\n      channel.bind(\"client_solvalibility_event\", (res) => {\n        this.SET_NOTIFICATION(res.client);\n        this.SET_MR_REJECT_VALUES(res.client.mr_reject_values);\n        this.SET_REJECTED(res.client.is_reject_blocked);\n        this.$store.dispatch(\"alerts/CUSTOM_ALERT\", JSON.stringify(res.client));\n\n        const event = new CustomEvent(\"client_solvalibility_event\", {\n          detail: res.client,\n        });\n        window.dispatchEvent(event);\n      });\n\n    } else {\n      this.$store.commit(\"stop\", \"anonym\");\n    }\n  },\n\n  async created()\n  {\n    if(this.user&& this.HasPermissionTO(\"create\",\"proximus\") && this.user.u_mag_popup==false)\n      {\n        this.modalShow = true\n      }\n  },\n  async updated() {\n    \n    if (this.user && this.user.id) {\n     \n      this.$store.commit(\"change_user\", this.user.email);\n    } else {\n      this.$store.commit(\"stop\", \"anonym\");\n    }\n  },\n\n  methods: {\n    ...mapActions(\"uhub\", [\"GET_LEFT_BAR\"]),\n    ...mapActions(\"fcm\", [\n      \"ADD_DEVICE_U_SELL\",\n      \"ADD_DEVICE_U_HUB\",\n      \"REMOVE_DEVICE_U_SELL\",\n      \"REMOVE_DEVICE_U_HUB\",\n    ]),\n    ...mapMutations(\"chat\", [\"INC_CHATROOMS\", \"DEC_CHATROOMS\"]),\n    ...mapMutations(\"uhub\", [\"push_ticket\", \"pop_ticket\"]),\n    ...mapActions(\"statics\", [\"GET_ALL_STATICS\"]),\n    ...mapActions(\"auth\", [\n      \"UPDATE_UHUB_PERMISSIONS\",\n      \"UPDATE_USELL_PERMISSIONS\",\n    ]),\n    ...mapActions(\"steps\", [\"StartTour\"]),\n    ...mapActions(\"notifications\", [\"GET_OFFLINE_NOTIFICATIONS\"]),\n    ...mapMutations(\"notifications\", [\"SET_NOTIFICATION\"]),\n    ...mapMutations(\"auth\", [\n      \"SET_POPUP\",\n      \"SET_MR_REJECT_VALUES\",\n      \"SET_REJECTED\",\n      \"SET_SMS_BALANCE\",\n    ]),\n    async updatePopup(close=false){\n      // this.clicked = !this.clicked\n      // if(!close)\n      // this.clicked = !this.clicked\n      this.GO_TO_UMAG()\n      if(!this.user.u_mag_popup)\n        await this.UPDATE_POPUP()\n    },\n    subscribeToRefreshChannel() {\n      const channel_refresh = this.$pusher.subscribe(\"refresh\");\n      \n      channel_refresh.bind(\"new\", () => {\n        if (this.user && this.user.id) {\n          this.$swal({\n            title: this.$t(\"Un nouveau contenu est disponible !\"),\n            text: this.$t(\"Vous êtes sur le point de rafraîchir votre page\"),\n            icon: \"warning\",\n            showCancelButton: true,\n            confirmButtonText: this.$t(\"Oui\"),\n            cancelButtonText: this.$t(\"Plus tard\"),\n            customClass: {\n              confirmButton: \"btn btn-primary\",\n              cancelButton: \"btn btn-outline-danger ml-1\",\n            },\n            buttonsStyling: false,\n          }).then((result) => {\n            if (result.value) {\n              this.SET_POPUP(false);\n              caches.keys().then((names) => {\n                for (const name of names) caches.delete(name);\n              });\n              window.location.reload(true);\n            } else if (result.dismiss === \"cancel\") {\n              this.SET_POPUP(false);\n              this.$swal({\n                title: this.$t(\"Annulée\"),\n                text: this.$t(\n                  \"N'oubliez pas de rafraîchir votre page manuellement :)\"\n                ),\n                icon: \"warning\",\n                customClass: {\n                  confirmButton: \"btn btn-success\",\n                },\n              });\n            }\n          });\n        }\n      });\n    },\n    ...mapActions(\"auth\", [\"UPDATE_POPUP\",\"GO_TO_UMAG\"]),\n    async registerServiceWorker() {\n      let subscribeToken = this.subscribeToken;\n      // if (\"Notification\" in window && navigator.serviceWorker) {\n      //   registerSW(`${process.env.BASE_URL}firebase-messaging-sw.js`, {\n      //     ready(reg) {\n      //       //console.log(\"Service worker is Ready\");\n      //       // subsctibe to FCM\n      //       subscribeToken(reg);\n      //     },\n      //     registered(reg) {\n      //       //console.log(\"Service worker has been registered.\");\n      //       setInterval(() => {\n      //         reg.update();\n      //       }, 1000 * 60 * 30); // 30 min checks\n      //     },\n      //     cached() {\n      //       //console.log('Content has been cached for offline use.');\n      //     },\n      //     updatefound() {\n      //       //console.log(\"New content is downloading.\");\n      //     },\n      //     updated(reg) {\n      //       //console.log(\"New content is available; please refresh.\");\n      //       document.dispatchEvent(\n      //         new CustomEvent(\"swUpdated\", { detail: reg.waiting })\n      //       );\n      //     },\n      //     offline() {\n      //       //console.log(\"No internet connection found.\");\n      //     },\n      //     error(error) {\n      //       console.error(\"Error during service worker registration:\", error);\n      //     },\n      //   });\n      // }\n    },\n    async subscribeToken(reg) {\n      let vapidKey = process.env.VAPIDKEY;\n      try {\n        let token = await getToken(this.messaging, {\n          vapidKey,\n          serviceWorkerRegistration: reg,\n        });\n\n        //console.log(\"Client token => \", token);\n        this.clientToken=token\n          // store returned uuid with token\n        this.setSubscribedToken();\n        // send token to server\n        let res = await this.sendTokenToServer();\n        //console.log(\"Sent to server\", res.data);\n\n      \n\n        this.listenForegroundMessage(reg);\n      } catch (err) {\n        console.error(err);\n        this.unsetSubscribedToken();\n        //console.log(\"Retry to subscribe\");\n      }\n    },\n    async unsubscribeToken() {\n      try {\n        let unsubscribe = await deleteToken(this.messaging);\n        //console.log(\"Subscribed  \", unsubscribe);\n        let res = await this.removeTokenFromServer(this.clientToken);\n       //console.log(\"Unsubscribed from server\", res.data);\n        await this.unsetSubscribedToken();\n      } catch (err) {\n        console.error(err);\n      }\n    },\n    async listenForegroundMessage(reg) {\n      if (!reg)\n        reg = await navigator.serviceWorker.getRegistration(\n          `${process.env.BASE_URL}firebase-messaging-sw.js`\n        );\n\n      onMessage(this.messaging, (payload) => {\n        let { notification, data } = payload;\n        let notificationTitle = \"Test title\";\n        let notificationBody = \"Test body\";\n        if (notification && notification.title && notification.body) {\n          notificationTitle = notification.title;\n          notificationBody = notification.body;\n        } \n\n        // in window noti\n        // this.$notify({\n        //   group: \"test\",\n        //   title: \"[Foreground] \" + notificationTitle,\n        //   text: notificationBody,\n        //   duration: 10000,\n        // });\n        // this.$toast({\n        //       component: ToastificationContent,\n        //       props: {\n        //         title: \"[Foreground] \" + notificationTitle,\n        //         text: notificationBody,\n        //       },\n        //     });\n\n        const notificationOptions = {\n          body: notificationBody,\n          data:data\n        };\n        if (reg)\n          reg.showNotification(\n            \"[WebApp] \" + notificationTitle,\n            notificationOptions,\n          );\n      });\n    },\n    isSubscribed() {\n      let ct = localStorage.getItem(\"clientToken\");\n      //console.log(\"Subscribed\", !!ct);\n      return !!ct;\n    },\n    setSubscribedToken() {\n      localStorage.setItem(\"clientToken\", JSON.stringify(this.clientToken));\n      //console.log(\"added to localstorage\", this.clientToken);\n    },\n    unsetSubscribedToken() {\n      this.clientToken = null;\n      localStorage.removeItem(\"clientToken\");\n      //console.log(\"removed from localstorage\", this.clientToken);\n    },\n    async getSubscribedToken() {\n      let ct = localStorage.getItem(\"clientToken\");\n\n      if (ct) return JSON.parse(ct);\n      else return null;\n    },\n    async sendTokenToServer() {\n    \n      await this.ADD_DEVICE_U_HUB({token:this.clientToken})\n      return this.ADD_DEVICE_U_SELL({token:this.clientToken})\n      //return axios.post(\"/fcm/token/save\", dataObj);\n    },\n    async removeTokenFromServer() {\n      //return axios.delete(\"/fcm/token/delete/\" + uuid);\n      await this.REMOVE_DEVICE_U_HUB({token:this.clientToken})\n      await this.REMOVE_DEVICE_U_SELL({token:this.clientToken})\n    },\n  },\n};\n</script>\n<style lang=\"scss\">\n@import \"@core/scss/vue/libs/vue-good-table.scss\";\n@import \"@core/scss/vue/libs/tour.scss\";\n</style>\n<style>\n.filepond--credits {\n  display: none !important;\n}\n\n.filepond--file-action-button.filepond--action-revert-item-processing {\n  display: none !important;\n}\n.filepond--file-status-sub\n{\n  display: none !important;;\n}\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=03ac36f1&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import Vue from 'vue'\nimport FeatherIcon from '@core/components/feather-icon/FeatherIcon.vue'\n\nVue.component(FeatherIcon.name, FeatherIcon)\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./_app.scss?vue&type=style&index=0&lang=scss&\"","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nVue.use(VueI18n)\n\nfunction loadLocaleMessages() {\n  const locales = require.context(\n    './locales',\n    true,\n    /[A-Za-z0-9-_,\\s]+\\.json$/i,\n  )\n  const messages = {}\n  locales.keys().forEach(key => {\n    const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n    if (matched && matched.length > 1) {\n      const locale = matched[1]\n      messages[locale] = locales(key)\n    }\n  })\n  return messages\n}\n\nexport default new VueI18n({\n  locale: process.env.VUE_APP_I18N_LOCALE || 'en',\n  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',\n  messages: loadLocaleMessages(),\n})\n","module.exports = __webpack_public_path__ + \"img/logo.2bf45526.png\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-bot-ui chat-app-window\",class:Object.assign({}, _vm.uiClasses, {active: _vm.botActive, inactive: !_vm.botActive}),attrs:{\"id\":\"chat\"}},[_c('transition',{attrs:{\"name\":\"qkb-fadeUp \"}},[(_vm.botActive)?_c('div',{staticClass:\"qkb-board\"},[_c('BoardHeader',{attrs:{\"bot-title\":_vm.optionsMain.botTitle},on:{\"close-bot\":_vm.botToggle,\"close-room\":_vm.closeRoom}}),_c('BoardContent',{attrs:{\"old\":_vm.old,\"last-room\":_vm.lastRoom,\"bot-typing\":_vm.botTyping,\"main-data\":_vm.messages},on:{\"chat_started\":_vm.chat_started,\"categ_selected\":_vm.categ_selected}}),_c('BoardAction',{attrs:{\"last-room\":_vm.lastRoom,\"input-placeholder\":_vm.optionsMain.inputPlaceholder,\"input-disable-placeholder\":_vm.optionsMain.inputDisablePlaceholder,\"input-disable\":_vm.inputDisable},on:{\"msg-send\":_vm.sendMessage,\"file-send\":_vm.sendFile}})],1):_vm._e()]),_c('div',{staticClass:\"qkb-bot-bubble animate__animated\",attrs:{\"draggable\":!_vm.botActive},on:{\"click\":_vm.botToggle,\"close\":_vm.botToggle,\"drag\":_vm.dragStart,\"dragend\":_vm.dragEnd}},[_c('div',[_c('b-avatar',{attrs:{\"variant\":\"primary\",\"badge\":_vm.lastRoom && !_vm.lastRoom.closed_by\n            ? _vm.lastRoom.unseen_message_count\n            : null,\"size\":\"4rem\",\"badge-top\":\"\",\"badge-variant\":\"info\",\"badge-offset\":\"-0.5em\"}},[_vm._t(\"bubbleButton\",function(){return [_c('transition',{attrs:{\"name\":\"qkb-scaleUp\"}},[(!_vm.botActive)?_c('FeatherIcon',{key:\"1\",staticClass:\"qkb-bubble-btn-icon\",attrs:{\"icon\":\"MessageCircleIcon\"}}):_c('FeatherIcon',{key:\"2\",staticClass:\"qkb-bubble-btn-icon qkb-bubble-btn-icon--close\",attrs:{\"icon\":\"MinusIcon\"}})],1)]})],2)],1)]),_c('AppStyle',{attrs:{\"options\":_vm.optionsMain}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\n\nconst EventBus = new Vue()\n\nexport default EventBus\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-navbar',{staticClass:\"d-flex w-100 justify-content-between\",attrs:{\"toggleable\":\"sm\",\"type\":\"light\",\"variant\":\"primary\"}},[_c('div',{on:{\"click\":_vm.closeRoom}},[_c('b-avatar',{attrs:{\"icon\":\"x\",\"variant\":\"primary\",\"size\":\"35\"}})],1),_c('div',{on:{\"click\":_vm.close}},[_c('b-avatar',{attrs:{\"variant\":\"primary\"}},[_c('span',{staticClass:\"mdi mdi-window-minimize\"})])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-navbar\n    toggleable=\"sm\"\n    type=\"light\"\n    variant=\"primary\"\n    class=\"d-flex w-100 justify-content-between\"\n  >\n    <div @click=\"closeRoom\">\n      <b-avatar\n        icon=\"x\"\n        variant=\"primary\"\n        size=\"35\"\n      />\n    </div>\n    <div @click=\"close\">\n      <b-avatar variant=\"primary\">\n        <span class=\"mdi mdi-window-minimize\" ></span>\n    </b-avatar>\n    </div>\n  </b-navbar>\n</template>\n<script>\nexport default {\n  props: {\n    botTitle: {\n      type: String,\n      default: 'Chatbot',\n    },\n  },\n  methods: {\n    close() {\n      this.$emit('close-bot')\n    },\n    closeRoom() {\n      this.$emit('close-room')\n    }\n  },\n}\n</script>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=9ff7b036&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"boardContent\",staticClass:\"qkb-board-content\"},[_c('div',{ref:\"boardBubbles\",staticClass:\"qkb-board-content__bubbles\"},[_vm._l((_vm.old_messages),function(chat){return _c('div',{staticClass:\"chats\"},[(chat.messages.length>1)?_c('div',{staticClass:\"text-center p-2 hr_text\"},[_c('h5',{staticClass:\"text-center w-100 text-muted\"},[_vm._v(_vm._s(_vm.$moment(chat.created_at).format('lll')))])]):_vm._e(),_vm._l((chat.messages),function(message,index){return _c('div',{key:index,staticClass:\"chat\",class:{\n          'chat-left': message.agent === 'bot' || message.agent !== _vm.user.id,\n        }},[(message.type != 'start')?_c('div',{staticClass:\"chat-avatar\"},[(message.agent === 'bot')?_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\"}},[_c('span',{staticClass:\"mdi mdi-robot-excited-outline\"})]):(message.agent === _vm.user.id)?_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\",\"src\":_vm.lastRoom && _vm.lastRoom.created_by && _vm.lastRoom.created_by.avatar\n                ? _vm.lastRoom.created_by.avatar\n                : null}}):_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\",\"src\":_vm.lastRoom && _vm.lastRoom.pending_by && _vm.lastRoom.pending_by.avatar\n                ? _vm.lastRoom.pending_by.avatar\n                : null}})],1):_vm._e(),(message.type != 'start')?_c('div',{staticClass:\"chat-body\",staticStyle:{\"overflow-wrap\":\"break-word\"}},[(message.type == 'text')?_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))]),(\n                index == _vm.mainData.length - 1 &&\n                message.seen_by_receiver &&\n                message.created_by == _vm.user.id\n              )?_c('span',{staticClass:\"ml-1\"},[_c('span',{staticClass:\"mdi mdi-check-circle text-info\"})]):_vm._e()]):_vm._e(),(message.type == 'text')?_c('div',_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"disabled\":_vm.disable_btn_categ},on:{\"click\":function($event){return _vm.selectCateg(option)}}},[_vm._v(\" \"+_vm._s(option.text)+\" \")])}),1):_vm._e(),(message.type == 'file')?_c('div',{staticClass:\"chat-content\",on:{\"click\":function($event){return _vm.zoom(message.file.url)}}},[_c('b-img',{staticStyle:{\"width\":\"100%\"},attrs:{\"src\":message.file.url}}),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))]),(\n                index == _vm.mainData.length - 1 &&\n                message.seen_by_receiver &&\n                message.created_by == _vm.user.id\n              )?_c('span',{staticClass:\"ml-1\"},[_c('span',{staticClass:\"mdi mdi-check-circle text-info\"})]):_vm._e()],1):_vm._e(),(message.type == 'links')?_c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))])]),_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.goToFaq(option.description)}}},[_vm._v(\" \"+_vm._s(_vm.$t(JSON.parse(option.description).subject))+\" \")])})],2):(message.type == 'live')?_c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))])]),_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\",\"disabled\":_vm.disable_btn},on:{\"click\":_vm.createroom}},[_vm._v(\" \"+_vm._s(_vm.$t(option.text))+\" \")])})],2):(message.type == 'faq')?_c('div',{staticClass:\"w-100\"},[_c('b-btn',{key:_vm.id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.goToFaq(message.description)}}},[_vm._v(\" \"+_vm._s(JSON.parse(message.description).subject)+\" \")])],1):_vm._e()]):_vm._e()])})],2)}),_c('div',{staticClass:\"chats\"},[(_vm.lastRoom&&_vm.lastRoom.messages&&_vm.lastRoom.messages.length>1)?_c('div',{staticClass:\"text-center p-2 hr_text\"},[_c('h5',{staticClass:\"text-center w-100 text-muted\"},[_vm._v(_vm._s(_vm.$moment(_vm.lastRoom.created_at).format('lll')))])]):_vm._e(),_vm._l((_vm.mainData),function(message,index){return _c('div',{key:index,staticClass:\"chat\",class:{\n          'chat-left': message.agent === 'bot' || message.agent !== _vm.user.id,\n        }},[(message.type != 'start')?_c('div',{staticClass:\"chat-avatar\"},[(message.agent === 'bot')?_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\"}},[_c('span',{staticClass:\"mdi mdi-robot-excited-outline\"})]):(message.agent === _vm.user.id)?_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\",\"src\":_vm.lastRoom && _vm.lastRoom.created_by && _vm.lastRoom.created_by.avatar\n                ? _vm.lastRoom.created_by.avatar\n                : null}}):_c('b-avatar',{staticClass:\"avatar-border-2 box-shadow-1\",attrs:{\"size\":\"36\",\"src\":_vm.lastRoom && _vm.lastRoom.pending_by && _vm.lastRoom.pending_by.avatar\n                ? _vm.lastRoom.pending_by.avatar\n                : null}})],1):_vm._e(),(message.type != 'start')?_c('div',{staticClass:\"chat-body\",staticStyle:{\"overflow-wrap\":\"break-word\"}},[(message.type == 'text')?_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))]),(\n                index == _vm.mainData.length - 1 &&\n                message.seen_by_receiver &&\n                message.created_by == _vm.user.id\n              )?_c('span',{staticClass:\"ml-1\"},[_c('span',{staticClass:\"mdi mdi-check-circle text-info\"})]):_vm._e()]):_vm._e(),(message.type == 'text')?_c('div',_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"disabled\":_vm.disable_btn_categ},on:{\"click\":function($event){return _vm.selectCateg(option)}}},[_vm._v(\" \"+_vm._s(_vm.$t(option.text))+\" \")])}),1):_vm._e(),(message.type == 'file')?_c('div',{staticClass:\"chat-content\",on:{\"click\":function($event){return _vm.zoom(message.file.url)}}},[_c('b-img',{staticStyle:{\"width\":\"100%\"},attrs:{\"src\":message.file.url}}),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))]),(\n                index == _vm.mainData.length - 1 &&\n                message.seen_by_receiver &&\n                message.created_by == _vm.user.id\n              )?_c('span',{staticClass:\"ml-1\"},[_c('span',{staticClass:\"mdi mdi-check-circle text-info\"})]):_vm._e()],1):_vm._e(),(message.type == 'links')?_c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))])]),_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.goToFaq(option.description)}}},[_vm._v(\" \"+_vm._s(_vm.$t(JSON.parse(option.description).subject))+\" \")])})],2):(message.type == 'live')?_c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"chat-content\"},[_c('p',[_vm._v(_vm._s(_vm.$t(message.text)))]),_c('small',{staticClass:\"time text-muted\"},[_vm._v(_vm._s(_vm.$moment(message.created_at).fromNow()))])]),_vm._l((message.options),function(option,id){return _c('b-btn',{key:id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\",\"disabled\":_vm.disable_btn},on:{\"click\":_vm.createroom}},[_vm._v(\" \"+_vm._s(_vm.$t(option.text))+\" \")])})],2):(message.type == 'faq')?_c('div',{staticClass:\"w-100\"},[_c('b-btn',{key:_vm.id,staticClass:\"m-1 w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.goToFaq(message.description)}}},[_vm._v(\" \"+_vm._s(JSON.parse(message.description).subject)+\" \")])],1):_vm._e()]):_vm._e()])})],2),_c('b-modal',{attrs:{\"id\":\"modal-primary\",\"hide-footer\":\"\",\"modal-class\":\"modal-primary\",\"centered\":\"\",\"size\":\"xl\"},model:{value:(_vm.zoomPic),callback:function ($$v) {_vm.zoomPic=$$v},expression:\"zoomPic\"}},[_c('b-embed',{attrs:{\"src\":_vm.picToBeZoomed,\"aspect\":\"16by9\",\"type\":\"iframe\",\"allowfullscreen\":\"\"}})],1)],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-msg-bubble\",class:_vm.bubbleClass},[(_vm.message.agent === 'bot')?_c('div',{staticClass:\"qkb-msg-avatar\"},[_c('div',{staticClass:\"qkb-msg-avatar__img\"},[_vm._v(\"   \")])]):_vm._e(),(_vm.componentType)?_c(_vm.componentType,{tag:\"component\",attrs:{\"main-data\":_vm.message}}):_vm._e(),(_vm.message.createdAt)?_c('div',{staticClass:\"qkb-msg-bubble__time\"},[_vm._v(\" \"+_vm._s(_vm.message.createdAt)+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-msg-bubble-component qkb-msg-bubble-component--single-text\"},[(_vm.mainData.type === 'text')?_c('div',{staticClass:\"qkb-msg-bubble-component__text\"},[_vm._v(\" \"+_vm._s(_vm.mainData.text)+\" \")]):_vm._e(),(['html', 'button'].includes(_vm.mainData.type))?_c('div',{staticClass:\"qkb-msg-bubble-component__text\",domProps:{\"innerHTML\":_vm._s(_vm.mainData.text)}}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"qkb-msg-bubble-component qkb-msg-bubble-component--single-text\">\n    <div\n      v-if=\"mainData.type === 'text'\"\n      class=\"qkb-msg-bubble-component__text\"\n    >\n      {{ mainData.text }}\n    </div>\n    <div\n      v-if=\"['html', 'button'].includes(mainData.type)\"\n      class=\"qkb-msg-bubble-component__text\"\n      v-html=\"mainData.text\"\n    />\n  </div>\n</template>\n<script>\nexport default {\n  props: {\n    mainData: {\n      type: Object,\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleText.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleText.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SingleText.vue?vue&type=template&id=492ea03a&\"\nimport script from \"./SingleText.vue?vue&type=script&lang=js&\"\nexport * from \"./SingleText.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-msg-bubble-component qkb-msg-bubble-component--button-options\"},[(_vm.mainData.type === 'text')?_c('div',{staticClass:\"qkb-msg-bubble-component__text\"},[_vm._v(\" \"+_vm._s(_vm.mainData.text)+\" \")]):_vm._e(),(['html', 'button'].includes(_vm.mainData.type))?_c('div',{staticClass:\"qkb-msg-bubble-component__text\",domProps:{\"innerHTML\":_vm._s(_vm.mainData.text)}}):_vm._e(),_c('div',{staticClass:\"qkb-msg-bubble-component__options-wrapper\"},_vm._l((_vm.mainData.options),function(item,index){return _c('div',{key:index,staticClass:\"qkb-mb-button-options__item\",class:{ active: _vm.selectedItem === item.value }},[(item.action === 'postback')?_c('button',{staticClass:\"qkb-mb-button-options__btn\",on:{\"click\":function($event){return _vm.selectOption(item)}}},[_c('span',[_vm._v(_vm._s(item.text))])]):_c('a',{staticClass:\"qkb-mb-button-options__btn qkb-mb-button-options__url\",attrs:{\"target\":\"_blank\",\"href\":item.value}},[_c('span',[_vm._v(_vm._s(item.text))])])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"qkb-msg-bubble-component qkb-msg-bubble-component--button-options\"\n  >\n    <div\n      v-if=\"mainData.type === 'text'\"\n      class=\"qkb-msg-bubble-component__text\"\n    >\n      {{ mainData.text }}\n    </div>\n    <div\n      v-if=\"['html', 'button'].includes(mainData.type)\"\n      class=\"qkb-msg-bubble-component__text\"\n      v-html=\"mainData.text\"\n    />\n    <div class=\"qkb-msg-bubble-component__options-wrapper\">\n      <div\n        v-for=\"(item, index) in mainData.options\"\n        :key=\"index\"\n        class=\"qkb-mb-button-options__item\"\n        :class=\"{ active: selectedItem === item.value }\"\n      >\n        <button\n          v-if=\"item.action === 'postback'\"\n          class=\"qkb-mb-button-options__btn\"\n          @click=\"selectOption(item)\"\n        >\n          <span>{{ item.text }}</span></button><a\n          v-else=\"v-else\"\n          class=\"qkb-mb-button-options__btn qkb-mb-button-options__url\"\n          target=\"_blank\"\n          :href=\"item.value\"\n        ><span>{{ item.text }}</span></a>\n      </div>\n    </div>\n  </div>\n</template>\n<script>\nimport EventBus from '@/helpers/event-bus'\n\nexport default {\n  props: {\n    mainData: {\n      type: Object,\n    },\n  },\n\n  data() {\n    return {\n      selectedItem: null,\n    }\n  },\n\n  methods: {\n    selectOption(value) {\n      this.selectedItem = value\n      EventBus.$emit('select-button-option', value)\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonOptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonOptions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ButtonOptions.vue?vue&type=template&id=034d3ed6&\"\nimport script from \"./ButtonOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./ButtonOptions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div\n    class=\"qkb-msg-bubble\"\n    :class=\"bubbleClass\"\n  >\n    <div\n      v-if=\"message.agent === 'bot'\"\n      class=\"qkb-msg-avatar\"\n    >\n      <div class=\"qkb-msg-avatar__img\">\n&nbsp;\n      </div>\n    </div>\n    <component\n      :is=\"componentType\"\n      v-if=\"componentType\"\n      :main-data=\"message\"\n    />\n    <div\n      v-if=\"message.createdAt\"\n      class=\"qkb-msg-bubble__time\"\n    >\n      {{ message.createdAt }}\n    </div>\n  </div>\n</template>\n<script>\nimport SingleText from './SingleText'\nimport ButtonOptions from './ButtonOptions'\n\nexport default {\n  components: {\n    SingleText,\n    ButtonOptions,\n  },\n\n  props: {\n    message: {\n      type: Object,\n    },\n  },\n\n  computed: {\n    bubbleClass() {\n      return this.message.agent === 'bot'\n        ? 'qkb-msg-bubble--bot'\n        : 'qkb-msg-bubble--user'\n    },\n\n    // Define the message type and return the specific component\n    componentType() {\n      let type = ''\n\n      switch (this.message.type) {\n        case 'button':\n          type = 'ButtonOptions'\n          break\n        default:\n          type = 'SingleText'\n      }\n\n      return type\n    },\n  },\n}\n</script>\n<style></style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=03d71315&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-msg-bubble qkb-msg-bubble--bot\"},[_c('div',{staticClass:\"qkb-msg-avatar\"},[_c('div',{staticClass:\"qkb-msg-avatar__img\"},[_vm._v(\"   \")])]),_c('div',{staticClass:\"qkb-msg-bubble-component qkb-msg-bubble-component--typing\"},[_c('div',{staticClass:\"qkb-msg-bubble-component__text\"},[_c('div',{staticClass:\"qkb-msg-bubble__typing-indicator\"},[_c('span')])])])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Typing.vue?vue&type=template&id=dac661fc&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div ref=\"boardContent\" class=\"qkb-board-content\">\n    <div ref=\"boardBubbles\" class=\"qkb-board-content__bubbles\">\n      <div class=\"chats\" v-for=\"chat in old_messages\" >\n        <div class=\"text-center p-2 hr_text\" v-if=\"chat.messages.length>1\">\n          <h5 class=\"text-center w-100 text-muted\">{{$moment(chat.created_at).format('lll')}}</h5>\n        </div>\n        <div\n          v-for=\"(message, index) in chat.messages\"\n          :key=\"index\"\n          class=\"chat\"\n          :class=\"{\n            'chat-left': message.agent === 'bot' || message.agent !== user.id,\n          }\"\n        >\n          <div v-if=\"message.type != 'start'\" class=\"chat-avatar\">\n            <b-avatar\n              v-if=\"message.agent === 'bot'\"\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n            >\n              <span class=\"mdi mdi-robot-excited-outline\" />\n            </b-avatar>\n            <b-avatar\n              v-else-if=\"message.agent === user.id\"\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n              :src=\"\n                lastRoom && lastRoom.created_by && lastRoom.created_by.avatar\n                  ? lastRoom.created_by.avatar\n                  : null\n              \"\n            />\n            <b-avatar\n              v-else\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n              :src=\"\n                lastRoom && lastRoom.pending_by && lastRoom.pending_by.avatar\n                  ? lastRoom.pending_by.avatar\n                  : null\n              \"\n            />\n          </div>\n          <div\n            v-if=\"message.type != 'start'\"\n            class=\"chat-body\"\n            style=\"overflow-wrap: break-word\"\n          >\n            <div v-if=\"message.type == 'text'\" class=\"chat-content\">\n              <p>{{ $t(message.text) }}</p>\n\n              <small class=\"time text-muted\">{{\n                $moment(message.created_at).fromNow()\n              }}</small>\n              <span\n                v-if=\"\n                  index == mainData.length - 1 &&\n                  message.seen_by_receiver &&\n                  message.created_by == user.id\n                \"\n                class=\"ml-1\"\n                ><span class=\"mdi mdi-check-circle text-info\"\n              /></span>\n            </div>\n            <div v-if=\"message.type == 'text'\">\n            <b-btn\n              v-for=\"(option, id) in message.options\"\n              :key=\"id\"\n              variant=\"primary\"\n              size=\"sm\"\n              class=\"m-1 w-100\"\n              :disabled=\"disable_btn_categ\"\n              @click=\"selectCateg(option)\"\n            >\n              {{ option.text }}\n            </b-btn>\n          </div>\n            <div\n              v-if=\"message.type == 'file'\"\n              class=\"chat-content\"\n              @click=\"zoom(message.file.url)\"\n            >\n              <b-img :src=\"message.file.url\" style=\"width: 100%\" />\n              <small class=\"time text-muted\">{{\n                $moment(message.created_at).fromNow()\n              }}</small>\n              <span\n                v-if=\"\n                  index == mainData.length - 1 &&\n                  message.seen_by_receiver &&\n                  message.created_by == user.id\n                \"\n                class=\"ml-1\"\n                ><span class=\"mdi mdi-check-circle text-info\"\n              /></span>\n              <!-- <span>test</span> -->\n            </div>\n\n            <div v-if=\"message.type == 'links'\" class=\"w-100\">\n              <div class=\"chat-content\">\n                <p>{{ $t(message.text) }}</p>\n\n                <small class=\"time text-muted\">{{\n                  $moment(message.created_at).fromNow()\n                }}</small>\n              </div>\n              <b-btn\n                v-for=\"(option, id) in message.options\"\n                :key=\"id\"\n                variant=\"primary\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                @click=\"goToFaq(option.description)\"\n              >\n                {{ $t(JSON.parse(option.description).subject) }}\n              </b-btn>\n            </div>\n            <div v-else-if=\"message.type == 'live'\" class=\"w-100\">\n              <div class=\"chat-content\">\n                <p>{{ $t(message.text) }}</p>\n\n                <small class=\"time text-muted\">{{\n                  $moment(message.created_at).fromNow()\n                }}</small>\n              </div>\n\n              <b-btn\n                v-for=\"(option, id) in message.options\"\n                :key=\"id\"\n                variant=\"success\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                :disabled=\"disable_btn\"\n                @click=\"createroom\"\n              >\n                {{ $t(option.text) }}\n              </b-btn>\n            </div>\n            <div v-else-if=\"message.type == 'faq'\" class=\"w-100\">\n              <b-btn\n                :key=\"id\"\n                variant=\"success\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                @click=\"goToFaq(message.description)\"\n              >\n                {{ JSON.parse(message.description).subject }}\n              </b-btn>\n            </div>\n          </div>\n        </div>\n        \n      </div>\n      <div class=\"chats\">\n        <div class=\"text-center p-2 hr_text\" v-if=\"lastRoom&&lastRoom.messages&&lastRoom.messages.length>1\">\n          <h5 class=\"text-center w-100 text-muted\">{{$moment(lastRoom.created_at).format('lll')}}</h5>\n        </div>\n        <div\n          v-for=\"(message, index) in mainData\"\n          :key=\"index\"\n          class=\"chat\"\n          :class=\"{\n            'chat-left': message.agent === 'bot' || message.agent !== user.id,\n          }\"\n        >\n          <div v-if=\"message.type != 'start'\" class=\"chat-avatar\">\n            <b-avatar\n              v-if=\"message.agent === 'bot'\"\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n            >\n              <span class=\"mdi mdi-robot-excited-outline\" />\n            </b-avatar>\n            <b-avatar\n              v-else-if=\"message.agent === user.id\"\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n              :src=\"\n                lastRoom && lastRoom.created_by && lastRoom.created_by.avatar\n                  ? lastRoom.created_by.avatar\n                  : null\n              \"\n            />\n            <b-avatar\n              v-else\n              class=\"avatar-border-2 box-shadow-1\"\n              size=\"36\"\n              :src=\"\n                lastRoom && lastRoom.pending_by && lastRoom.pending_by.avatar\n                  ? lastRoom.pending_by.avatar\n                  : null\n              \"\n            />\n          </div>\n          <div\n            v-if=\"message.type != 'start'\"\n            class=\"chat-body\"\n            style=\"overflow-wrap: break-word\"\n          >\n            <div v-if=\"message.type == 'text'\" class=\"chat-content\">\n              <p>{{ $t(message.text) }}</p>\n\n              <small class=\"time text-muted\">{{\n                $moment(message.created_at).fromNow()\n              }}</small>\n              <span\n                v-if=\"\n                  index == mainData.length - 1 &&\n                  message.seen_by_receiver &&\n                  message.created_by == user.id\n                \"\n                class=\"ml-1\"\n                ><span class=\"mdi mdi-check-circle text-info\"\n              /></span>\n            </div>\n            <div v-if=\"message.type == 'text'\">\n            <b-btn\n              v-for=\"(option, id) in message.options\"\n              :key=\"id\"\n              variant=\"primary\"\n              size=\"sm\"\n              class=\"m-1 w-100\"\n              :disabled=\"disable_btn_categ\"\n              @click=\"selectCateg(option)\"\n            >\n              {{ $t(option.text) }}\n            </b-btn>\n          </div>\n            <div\n              v-if=\"message.type == 'file'\"\n              class=\"chat-content\"\n              @click=\"zoom(message.file.url)\"\n            >\n              <b-img :src=\"message.file.url\" style=\"width: 100%\" />\n              <small class=\"time text-muted\">{{\n                $moment(message.created_at).fromNow()\n              }}</small>\n              <span\n                v-if=\"\n                  index == mainData.length - 1 &&\n                  message.seen_by_receiver &&\n                  message.created_by == user.id\n                \"\n                class=\"ml-1\"\n                ><span class=\"mdi mdi-check-circle text-info\"\n              /></span>\n              <!-- <span>test</span> -->\n            </div>\n\n            <div v-if=\"message.type == 'links'\" class=\"w-100\">\n              <div class=\"chat-content\">\n                <p>{{ $t(message.text) }}</p>\n\n                <small class=\"time text-muted\">{{\n                  $moment(message.created_at).fromNow()\n                }}</small>\n              </div>\n              <b-btn\n                v-for=\"(option, id) in message.options\"\n                :key=\"id\"\n                variant=\"primary\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                @click=\"goToFaq(option.description)\"\n              >\n                {{ $t(JSON.parse(option.description).subject) }}\n              </b-btn>\n            </div>\n            <div v-else-if=\"message.type == 'live'\" class=\"w-100\">\n              <div class=\"chat-content\">\n                <p>{{ $t(message.text) }}</p>\n\n                <small class=\"time text-muted\">{{\n                  $moment(message.created_at).fromNow()\n                }}</small>\n              </div>\n\n              <b-btn\n                v-for=\"(option, id) in message.options\"\n                :key=\"id\"\n                variant=\"success\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                :disabled=\"disable_btn\"\n                @click=\"createroom\"\n              >\n                {{ $t(option.text) }}\n              </b-btn>\n            </div>\n            <div v-else-if=\"message.type == 'faq'\" class=\"w-100\">\n              <b-btn\n                :key=\"id\"\n                variant=\"success\"\n                size=\"sm\"\n                class=\"m-1 w-100\"\n                @click=\"goToFaq(message.description)\"\n              >\n                {{ JSON.parse(message.description).subject }}\n              </b-btn>\n            </div>\n          </div>\n        </div>\n      </div>\n      <b-modal\n        id=\"modal-primary\"\n        v-model=\"zoomPic\"\n        hide-footer\n        modal-class=\"modal-primary\"\n        centered\n        size=\"xl\"\n      >\n        <b-embed\n          :src=\"picToBeZoomed\"\n          aspect=\"16by9\"\n          type=\"iframe\"\n          allowfullscreen\n        />\n      </b-modal>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from \"vuex\";\nimport MessageBubble from \"../MessageBubble/Main\";\nimport MessageTyping from \"../MessageBubble/Typing\";\n\nexport default {\n  components: {\n    MessageBubble,\n    MessageTyping,\n  },\n\n  props: {\n    old: {\n      type: Array,\n    },\n    mainData: {\n      type: Array,\n      required: true,\n    },\n    lastRoom: {\n      type: Object,\n    },\n\n    botTyping: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      picToBeZoomed: null,\n      zoomPic: false,\n      disable_btn: false,\n      disable_btn_categ: false,\n      old_messages:[]\n    };\n  },\n  computed: {\n    ...mapGetters(\"auth\", { user: \"GET_UHUB_USER_DATA\" }),\n    ...mapGetters(\"chat\", [\"isRoomCreated\"]),\n  },\n\n  watch: {\n    mainData(newVal) {\n      this.$nextTick(() => {\n        this.updateScroll();\n      });\n    },\n    lastRoom: {\n      handler(val) {\n        this.disable_btn = val && !val.closed_at;\n        this.disable_btn_categ=val && !val.closed_at;\n      },\n      immediate: true,\n    },\n  },\n\n  mounted() {\n    this.old_messages=this.old.map(el=>{\n      el.messages=el.messages.map((msg) => {\n         return {\n            agent: msg.created_by,\n            type: msg.type,\n            text: msg.description,\n            ...msg,\n            // options: [\n            //   {\n            //     text: \"Search Suport Articles\",\n            //     value: \"search\",\n            //     action: \"postback\",\n            //   },\n            //   {\n            //     text: \"Submit Support Ticket\",\n            //     value: \"submit_ticket\",\n            //     action: \"postback\",\n            //   },\n            // ],\n            disableInput: true,\n          }\n        });\n        return el\n    })\n    this.$nextTick(() => {\n        this.updateScroll();\n      });\n    // window.addEventListener(\"input-focus\", ()=>{\n    //   this.$nextTick(() => {\n    //     this.updateScroll();\n    //   });\n    // }, false);\n  },\n\n  methods: {\n    ...mapActions(\"chat\", [\"AddRoom\", \"sendMessages\"]),\n    selectCateg(option){\n      this.disable_btn_categ=option.value\n      this.$emit(\"categ_selected\", option.value);\n    },\n    zoom(value) {\n      this.zoomPic = true;\n      this.picToBeZoomed = value;\n    },\n    createroom() {\n      this.disable_btn = true;\n      this.disable_btn_categ=true\n\n            this.$emit(\"chat_started\");\n    },\n    goTo(item) {\n      this.$router.push({ path: item.value, replace: true });\n    },\n    goToFaq(item) {\n      this.$router.push({\n        name: \"faq\",\n        params: { id: JSON.parse(item).id },\n      });\n    },\n    updateScroll() {\n      const contentElm = this.$refs.boardContent;\n      const { offsetHeight } = this.$refs.boardBubbles;\n\n      contentElm.scrollTop = offsetHeight;\n    },\n  },\n};\n</script>\n<style>\n.hr_text h5 {\n  overflow: hidden;\n  text-align: center;\n}\n\n.hr_text h5:before,\n.hr_text h5:after {\n  background-color: #000;\n  content: \"\";\n  display: inline-block;\n  height: 1px;\n  position: relative;\n  vertical-align: middle;\n  width: 50%;\n}\n\n.hr_text h5:before {\n  right: 0.5em;\n  margin-left: -50%;\n}\n\n.hr_text h5:after {\n  left: 0.5em;\n  margin-right: -50%;\n}</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Content.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Content.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Content.vue?vue&type=template&id=368df09c&\"\nimport script from \"./Content.vue?vue&type=script&lang=js&\"\nexport * from \"./Content.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Content.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.inputDisable)?_c('b-input-group',[(_vm.lastRoom && !_vm.lastRoom.closed_at)?_c('b-input-group-prepend',[_c('b-btn',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.addFile}},[_c('feather-icon',{attrs:{\"icon\":\"PaperclipIcon\"}})],1)],1):_vm._e(),_c('b-form-textarea',{ref:\"qkbMessageInput\",attrs:{\"placeholder\":_vm.inputPlaceholder,\"rows\":\"2\",\"size\":\"sm\",\"no-resize\":\"\",\"autofocus\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.sendMessage.apply(null, arguments)},\"focus\":_vm.emitFocus},model:{value:(_vm.messageText),callback:function ($$v) {_vm.messageText=$$v},expression:\"messageText\"}}),_c('b-input-group-append',[_c('b-btn',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.sendMessage}},[_c('feather-icon',{attrs:{\"icon\":\"SendIcon\"}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-input-group v-if=\"!inputDisable\">\n    <b-input-group-prepend v-if=\"lastRoom && !lastRoom.closed_at\">\n      <b-btn variant=\"primary\" @click=\"addFile\">\n        <feather-icon icon=\"PaperclipIcon\" />\n      </b-btn>\n    </b-input-group-prepend>\n\n    <b-form-textarea\n      ref=\"qkbMessageInput\"\n      v-model=\"messageText\"\n      :placeholder=\"inputPlaceholder\"\n      rows=\"2\"\n      size=\"sm\"\n      no-resize\n      autofocus\n      @keydown.enter=\"sendMessage\"\n      @focus=\"emitFocus\"\n    />\n\n    <b-input-group-append>\n      <b-btn variant=\"primary\" @click=\"sendMessage\">\n        <feather-icon icon=\"SendIcon\" />\n      </b-btn>\n    </b-input-group-append>\n  </b-input-group>\n</template>\n<script>\nexport default {\n  props: {\n    inputPlaceholder: {\n      type: String,\n    },\n    lastRoom: {\n      type: Object,\n    },\n\n    inputDisablePlaceholder: {\n      type: String,\n    },\n\n    inputDisable: {\n      type: Boolean,\n      default: false,\n    },\n  },\n\n  data() {\n    return {\n      messageText: null,\n      server: null,\n    };\n  },\n\n  computed: {\n    actionClass() {\n      const actionClasses = [];\n\n      if (this.inputDisable) {\n        actionClasses.push(\"qkb-board-action--disabled\");\n      }\n\n      if (this.messageText) {\n        actionClasses.push(\"qkb-board-aciton--typing\");\n      }\n\n      // TODO: sending\n\n      return actionClasses;\n    },\n  },\n\n  mounted() {\n    if (this.$refs.qkbMessageInput && this.$refs.qkbMessageInput)\n      this.$refs.qkbMessageInput.focus();\n  },\n\n  methods: {\n    emitFocus() {\n      const e = new CustomEvent(\"input-focus\");\n      window.dispatchEvent(e);\n    },\n    sendMessage(e) {\n      e.preventDefault();\n      if (this.messageText.trim()) {\n        this.$emit(\"msg-send\", { text: this.messageText, type: \"text\" });\n        this.messageText = \"\";\n      }\n    },\n    addFile() {\n      this.$emit(\"file-send\");\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Action.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Action.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Action.vue?vue&type=template&id=38796b6d&\"\nimport script from \"./Action.vue?vue&type=script&lang=js&\"\nexport * from \"./Action.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"qkb-bot-style\",staticStyle:{\"display\":\"none\"},domProps:{\"innerHTML\":_vm._s(_vm.style)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    class=\"qkb-bot-style\"\n    style=\"display: none\"\n    v-html=\"style\"\n  />\n</template>\n<script>\nexport default {\n  props: ['options'],\n  computed: {\n    style() {\n      if (!this.options) {\n        return ''\n      }\n\n      const {\n        colorScheme,\n        textColor,\n        boardContentBg,\n        bubbleBtnSize,\n        botAvatarSize,\n        inputDisableBg,\n        msgBubbleBgBot,\n        msgBubbleColorBot,\n        msgBubbleBgUser,\n        msgBubbleColorUser,\n      } = this.options\n\n      const styles = `\n<style type=\"text/css\" id=\"qkb-bot-style\">\n.qkb-bubble-btn {\n  background-color: ${colorScheme};\n  width: ${bubbleBtnSize}px;\n  height: ${bubbleBtnSize}px;\n}\n.qkb-bubble-btn-icon {\n  fill: ${textColor};\n  color: ${textColor};\n}\n.qkb-board {\n  bottom: ${bubbleBtnSize}px;\n}\n.qkb-board-header {\n  background-color: ${colorScheme};\n}\n.qkb-board-header__title {\n  color: ${textColor};\n}\n.qkb-board-content {\n  background-color: ${boardContentBg};\n}\n\n.qkb-msg-bubble--bot .qkb-msg-bubble-component__text {\n  color: ${msgBubbleColorBot};\n  background-color: ${msgBubbleBgBot};\n}\n.qkb-msg-bubble__typing-indicator span,\n.qkb-msg-bubble__typing-indicator::before,\n.qkb-msg-bubble__typing-indicator::after {\n  background-color: ${msgBubbleColorBot};\n}\n.qkb-mb-button-options__btn::before {\n  background-color: ${msgBubbleBgUser};\n}\n.qkb-msg-bubble--user .qkb-msg-bubble-component__text {\n  color: ${msgBubbleColorUser};\n  background-color: ${msgBubbleBgUser};\n}\n.qkb-mb-button-options__btn {\n  color: ${msgBubbleBgUser};\n  border-color: ${msgBubbleBgUser};\n}\n.qkb-mb-button-options__btn:hover {\n  color: ${msgBubbleColorUser};\n  background-color: ${msgBubbleBgUser};\n}\n.qkb-board-action--disabled::before {\n  background-color: ${inputDisableBg};\n}\n</style>\n      `\n      return styles\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStyle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStyle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppStyle.vue?vue&type=template&id=54eccef4&\"\nimport script from \"./AppStyle.vue?vue&type=script&lang=js&\"\nexport * from \"./AppStyle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div\n    id=\"chat\"\n    class=\"qkb-bot-ui chat-app-window\"\n    :class=\"{ ...uiClasses, active: botActive, inactive: !botActive }\"\n  >\n    <transition name=\"qkb-fadeUp \">\n      <div v-if=\"botActive\" class=\"qkb-board\">\n        <BoardHeader\n          :bot-title=\"optionsMain.botTitle\"\n          @close-bot=\"botToggle\"\n          @close-room=\"closeRoom\"\n        />\n        <BoardContent\n          :old=\"old\"\n          :last-room=\"lastRoom\"\n          :bot-typing=\"botTyping\"\n          :main-data=\"messages\"\n          @chat_started=\"chat_started\"\n          @categ_selected=\"categ_selected\"\n        />\n        <!-- :input-disable=\"inputDisable\" -->\n\n        <BoardAction\n          :last-room=\"lastRoom\"\n          :input-placeholder=\"optionsMain.inputPlaceholder\"\n          :input-disable-placeholder=\"optionsMain.inputDisablePlaceholder\"\n          :input-disable=\"inputDisable\"\n\n          @msg-send=\"sendMessage\"\n          @file-send=\"sendFile\"\n        />\n      </div>\n    </transition>\n    <div\n      class=\"qkb-bot-bubble animate__animated\"\n      :draggable=\"!botActive\"\n      @click=\"botToggle\"\n      @close=\"botToggle\"\n      @drag=\"dragStart\"\n      @dragend=\"dragEnd\"\n    >\n      <!-- @touchstart=\"dragTouchDown\"\n      @touchmove=\"elementDragMobile\"\n      @touchend=\"closeTouchElement\" -->\n      <div>\n        <b-avatar\n          variant=\"primary\"\n          :badge=\"\n            lastRoom && !lastRoom.closed_by\n              ? lastRoom.unseen_message_count\n              : null\n          \"\n          size=\"4rem\"\n          badge-top\n          badge-variant=\"info\"\n          badge-offset=\"-0.5em\"\n        >\n          <slot name=\"bubbleButton\">\n            <transition name=\"qkb-scaleUp\">\n              <FeatherIcon\n                v-if=\"!botActive\"\n                key=\"1\"\n                icon=\"MessageCircleIcon\"\n                class=\"qkb-bubble-btn-icon\"\n              />\n              <FeatherIcon\n                v-else\n                key=\"2\"\n                icon=\"MinusIcon\"\n                class=\"qkb-bubble-btn-icon qkb-bubble-btn-icon--close\"\n              />\n            </transition>\n          </slot>\n        </b-avatar>\n      </div>\n    </div>\n    <AppStyle :options=\"optionsMain\" />\n  </div>\n</template>\n<script>\nimport EventBus from \"@/helpers/event-bus\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport BoardHeader from \"./Board/Header\";\nimport BoardContent from \"./Board/Content\";\nimport BoardAction from \"./Board/Action\";\nimport AppStyle from \"./AppStyle\";\n// import BubbleIcon from '../assets/icons/bubble.svg'\n// import CloseIcon from '../assets/icons/close.svg'\nimport \"animate.css\";\n\nexport default {\n  name: \"VueBotUI\",\n\n  components: {\n    BoardHeader,\n    BoardContent,\n    BoardAction,\n    // BubbleIcon,\n    // CloseIcon,\n    AppStyle,\n  },\n\n  props: {\n    state: {\n      type: Boolean,\n      default: false,\n    },\n    options: {\n      type: Object,\n      default: () => ({}),\n    },\n    lastRoom: {\n      type: Object,\n      default: () => ({}),\n    },\n    old: {\n      type: Array\n    },\n\n\n    messages: {\n      type: Array,\n    },\n\n    botTyping: {\n      type: Boolean,\n      default: false,\n    },\n\n    inputDisable: {\n      type: Boolean,\n      default: false,\n    },\n\n    isOpen: {\n      type: Boolean,\n      default: false,\n    },\n  },\n\n  data() {\n    return {\n      drag: null,\n      innerHeight: null,\n      move: false,\n      botActive: false,\n      defaultOptions: {\n        // botTitle: \"Chatbot\",\n        colorScheme: \"#1b53d0\",\n        textColor: \"#fff\",\n        bubbleBtnSize: 56,\n        animation: true,\n        boardContentBg: \"#fff\",\n        botAvatarSize: 32,\n        msgBubbleBgBot: \"#f0f0f0\",\n        msgBubbleColorBot: \"#000\",\n        msgBubbleBgUser: \"#4356e0\",\n        msgBubbleColorUser: \"#fff\",\n        inputPlaceholder: \"Message\",\n        inputDisableBg: \"#fff\",\n        inputDisablePlaceholder: null,\n      },\n    };\n  },\n  watch: {\n    inputDisable(val)\n    {\n      //console.log(\"test\",val)\n    },  \n    state(val) {\n      this.botActive = val;\n      if (val) {\n        this.$emit(\"open\");\n      } else {\n        this.$emit(\"destroy\");\n      }\n    },\n    old(val)\n    {\n      //console.log(val);\n    }\n  },\n  computed: {\n    ...mapGetters(\"auth\", {\n      user: \"GET_UHUB_USER_DATA\",\n    }),\n    ...mapGetters(\"chat\", [\"GET_CLIENTY\"]),\n    clientY: {\n      get() {\n        return this.GET_CLIENTY;\n      },\n      set(val) {\n        // set does not return anything\n\n        this.SET_CLIENTY(val);\n      },\n    },\n    optionsMain() {\n      return { ...this.defaultOptions, ...this.options };\n    },\n    mobileCheck() {\n      let check = false;\n      (function (a) {\n        if (\n          /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(\n            a\n          ) ||\n          /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n            a.substr(0, 4)\n          )\n        )\n          check = true;\n      })(navigator.userAgent || navigator.vendor || window.opera);\n      return check;\n    },\n    // Add class to bot ui wrapper\n    uiClasses() {\n      const classes = [];\n\n      if (this.optionsMain.animation) {\n        classes.push(\"qkb-bot-ui--animate\");\n      }\n\n      return classes;\n    },\n  },\n\n  created() {\n    const chat = document.getElementById(\"chat\");\n    this.innerHeight = window.innerHeight;\n    if (chat) {\n      if (this.innerHeight - this.clientY < (this.innerHeight * 5) / 100) {\n        this.clientY = (this.innerHeight * 5) / 100;\n      } else if (this.clientY < (this.innerHeight * 20) / 100) {\n        this.clientY = (this.innerHeight * 20) / 100;\n      }\n\n      chat.style.bottom = `${this.clientY}px`;\n    }\n    this.initBot();\n  },\n\n  mounted() {\n    const chat = document.getElementById(\"chat\");\n    if (chat) {\n      if (this.innerHeight - this.clientY < (this.innerHeight * 5) / 100) {\n        this.clientY = (this.innerHeight * 5) / 100;\n      } else if (this.clientY < (this.innerHeight * 20) / 100) {\n        this.clientY = (this.innerHeight * 20) / 100;\n      }\n\n      chat.style.bottom = `${this.clientY}px`;\n    }\n\n    EventBus.$on(\"select-button-option\", this.selectOption);\n    window.addEventListener(\"chat_room_closed_event\", (e) => {\n      if (e.detail.room.created_by == this.user.id) {\n        this.$emit(\"destroy\");\n      }\n    });\n\n    addEventListener(\"orientationchange\", (event) => {\n      const chat = document.getElementById(\"chat\");\n      this.innerHeight = window.innerHeight;\n      chat.style.bottom = `${(this.innerHeight * 5) / 100}px`;\n    });\n  },\n\n  beforeDestroy() {\n    EventBus.$off(\"select-button-option\");\n  },\n\n  methods: {\n    ...mapMutations(\"chat\", [\"SET_CLIENTY\"]),\n    dragStart() {\n      // set the element's new position:\n\n      if (\n        this.innerHeight - event.pageY > (this.innerHeight * 5) / 100 &&\n        event.pageY > (this.innerHeight * 20) / 100\n      ) {\n        this.drag = event.pageY;\n        event.dataTransfer.dropEffect = \"move\";\n        event.dataTransfer.effectAllowed = \"move\";\n      }\n    },\n    dragEnd() {\n      const chat = document.getElementById(\"chat\");\n      chat.style.bottom = `${this.innerHeight - this.drag}px`;\n      this.clientY = this.drag;\n    },\n\n    // dragMouseDown: function (event) {\n    //   // event.preventDefault();\n\n    //   // // get the mouse cursor position at startup:\n    //   // if (!this.botActive && !this.mobileCheck) {\n    //   //   this.clientY = event.clientY;\n    //   //   document.onmousemove = this.elementDrag;\n    //   //   document.onmouseup = this.closeDragElement;\n    //   // }\n\n    //   // get the mouse cursor position at startup:\n    //   // if (!this.botActive && !this.mobileCheck) {\n    //   //   this.clientY = event.clientY;\n    //   //   document.onmousemove = this.elementDrag;\n    //   //   document.onmouseup = this.closeDragElement;\n    //   // }\n    // },\n    // dragTouchDown: function (event) {\n    //   event.stopPropagation();\n    //   if (!this.botActive && this.mobileCheck) {\n    //     // get the mouse cursor position at startup:\n    //     this.clientY = event.touches[0].clientY;\n    //   }\n    // },\n    // elementDrag: function (event) {\n    //   event.stopPropagation();\n    //   if (!this.botActive && !this.mobileCheck) {\n    //     this.clientY = event.clientY;\n\n    //     // set the element's new position:\n    //     var chat = document.getElementById(\"chat\");\n    //     if (\n    //       this.innerHeight - this.clientY > (this.innerHeight * 5) / 100 &&\n    //       this.clientY > (this.innerHeight * 20) / 100\n    //     )\n    //       chat.style.bottom = this.innerHeight - this.clientY + \"px\";\n    //   }\n    // },\n    // elementDragMobile: function (event) {\n    //   event.stopPropagation();\n    //   if (!this.botActive && this.mobileCheck) {\n    //     event.preventDefault();\n    //     this.clientY = event.touches[0].clientY;\n\n    //     // set the element's new position:\n    //     var chat = document.getElementById(\"chat\");\n    //     if (\n    //       this.innerHeight - this.clientY > (this.innerHeight * 5) / 100 &&\n    //       this.clientY > (this.innerHeight * 20) / 100\n    //     )\n    //       chat.style.bottom = this.innerHeight - this.clientY + \"px\";\n    //   }\n    // },\n    // closeDragElement() {\n    //   event.stopPropagation();\n    //   if (!this.botActive && !this.mobileCheck) {\n    //     document.onmouseup = null;\n    //     document.onmousemove = null;\n    //     var chat = document.getElementById(\"chat\");\n\n    //     if (\n    //       this.innerHeight - this.clientY > (this.innerHeight * 5) / 100 &&\n    //       this.clientY > (this.innerHeight * 20) / 100\n    //     )\n    //       chat.style.bottom = this.innerHeight - this.clientY + \"px\";\n    //   }\n    // },\n    // closeTouchElement() {\n    //   event.stopPropagation();\n    //   if (!this.botActive && this.mobileCheck) {\n    //     var chat = document.getElementById(\"chat\");\n\n    //     if (\n    //       this.innerHeight - this.clientY > (this.innerHeight * 5) / 100 &&\n    //       this.clientY > (this.innerHeight * 20) / 100\n    //     )\n    //       chat.style.bottom = this.innerHeight - this.clientY + \"px\";\n    //   }\n    // },\n    ...mapActions(\"chat\", [\"FetchRoomsConsultant\", \"getChat\",\"MarkClosed\"]),\n    initBot() {\n      if (this.isOpen) {\n        this.botActive = true;\n      }\n\n      this.$emit(\"init\");\n    },\n    chat_started() {\n     \n      this.$emit(\"chat_started\");\n    },\n    categ_selected(val)\n    {\n      this.$emit(\"categ_selected\", val);\n    },\n    closeRoom() {\n      this.$swal({\n        title: this.$t(\"Close Chat\"),\n        text: this.$t(\"Vous êtes sur le point de fermer la conversation\"),\n        icon: \"warning\",\n        showCancelButton: true,\n        confirmButtonText: this.$t(\"Oui\"),\n        cancelButtonText: this.$t(\"Annuler\"),\n        customClass: {\n          confirmButton: \"btn btn-primary\",\n          cancelButton: \"btn btn-outline-danger ml-1\",\n        },\n        buttonsStyling: false,\n      }).then((result) => {\n        if (result.value) {\n          this.MarkClosed({ id: this.lastRoom.id }).then((res) => {\n            //console.log(res)\n         \n      })\n        } \n      });\n    },\n    botToggle() {\n      // permission control for the botActive\n\n      this.botActive = !this.botActive;\n\n      const chat = document.getElementById(\"chat\");\n\n      if (this.botActive) {\n        chat.style.bottom = `${(this.innerHeight * 5) / 100}px`;\n        this.$emit(\"open\");\n        if (this.lastRoom && this.lastRoom.unseen_message_count) {\n          this.getChat({ id: this.lastRoom.id }).then(() => {\n            this.lastRoom.unseen_message_count = 0;\n          });\n        }\n      } else {\n        // EventBus.$off('select-button-option')\n        //console.log(this.innerHeight);\n        //console.log(this.clientY);\n        // chat.style.bottom = this.innerHeight - this.clientY + \"px\";\n        this.$emit(\"destroy\");\n      }\n    },\n\n    sendMessage(value) {\n      this.$emit(\"msg-send\", value);\n    },\n    sendFile() {\n      this.$emit(\"file-send\");\n    },\n\n    selectOption(value) {\n      this.$emit(\"msg-send\", value);\n    },\n  },\n};\n</script>\n\n<style src=\"./_app.scss\" lang=\"scss\"></style>\n<style lang=\"scss\">\n@import \"~@core/scss/base/pages/app-chat.scss\";\n@import \"~@core/scss/base/pages/app-chat-list.scss\";\n</style>\n<style>\n.qkb-board {\n  height: 70vh !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BotUI.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BotUI.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BotUI.vue?vue&type=template&id=fb8c85e2&\"\nimport script from \"./BotUI.vue?vue&type=script&lang=js&\"\nexport * from \"./BotUI.vue?vue&type=script&lang=js&\"\nimport style0 from \"./_app.scss?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./BotUI.vue?vue&type=style&index=1&lang=scss&\"\nimport style2 from \"./BotUI.vue?vue&type=style&index=2&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BotUI.vue?vue&type=style&index=1&lang=scss&\""],"sourceRoot":""}