// 전역 변수 import {talkEvent} from "./talkEvent.js"; const global = { /*스톰프*/ stomp: null, /*사용자 정보 */ user: null, /*현페이지 업무정보*/ work: null, /*api url정의*/ apiUrl: '', /*헬프톡 생성 옵션*/ option: {}, /*헬프톡 content 루트 */ shadowRoot: null, /*헬프톨 주요 엘리먼트 */ element: {}, /*채팅 날짜 정의*/ currDay: '', /*채팅 상태글 이전 날짜*/ yourOldDate: '', /*채팅 본인글 이전 날짜*/ mineOldDate: '', /*톡방 메시지 스크롤 위치*/ oldScrollPosition: 0, /*스크롤 top < 300 페이징 데이터 호출 여부*/ scrollMoreFlag: true, /*채팅방 엘리먼트 변화 감지 하여 자동 스크롤 사용여부*/ scrollObserveFlag:true, /* 불필요 변수 */ allVNode: [], /* 채팅방 데이터 */ talkData: [], /* 소켓 커넥션 및 브로드 캐스드 관리*/ channel: null, /* 현재 접속 서버 */ currentServer: '', /*시스템 강제 종료 여부*/ forceKill: false, /* 채팅글 호출 파라미터 */ messageParams: { 'talkId': '', 'week': 1, 'row': 50, 'start': 0, }, /* 현재 접속 url 파리미터 정보 */ requestParams: {}, /* 구독 목록 */ subscribeList : {}, // 파일 구독 목록 fileSubscribeList: {}, /* 현재 사이트 URL*/ currentUrl: '', /* 에러 메시지 함수 */ notifier: null, /* 브라우저 탭 아이디 */ tabId: '', /* 방 생성자 */ chatCreator: null, hub: null, /*클립보드 정보*/ clipboardData: null, clipboardObjectUrl: null, // 서비스워커 연결 여부 serviceWorkerConnect: false, // 소켓연결 제어 reConnect: false, /* 로딩 여부 (새로고침시 reconnect 방지용)*/ init: false, checker : {flag: false, inDate: ''}, talkParams : (obj) => { return { type: obj.type, insSabun: global.user.sabun, insName : global.user.name, insDate : obj.insDate || '', message: obj.message || '', talkId: obj.talkId, workId: obj.workId, workNm: obj.workNm || '', introOwner: obj.introOwner || '', talkAttachDtos: obj.talkAttachDtos === undefined ? [] : obj.talkAttachDtos, talkMessages: obj.talkMessages, attach: obj.attach, tabId: global.tabId } }, /*특정 파라미터 초기화(채팅방 나가기시)*/ reset: () => { // 인포 메시지 삭제 const systemMessages = global.shadowRoot.querySelectorAll('.system-message'); Array.from(systemMessages).forEach((sm) => sm.remove()); // 사이드바 원위치 global.element.chatSidebar.style.left = 0; // // 채팅 내용 호출 파라미터 초기화 global.currDay = '' global.yourOldDate = ''; global.mineOldDate = ''; // global.messageParams.talkId = ''; // global.messageParams.week = 1; global.scrollMoreFlag = true; global.scrollObserveFlag = true; // 검색 비활성화 global.searchClose(); /*작성된 메시지 제거*/ const msg = global.element.chatEditor.innerText.trim(); if(msg !== '') { const talkId = localStorage.getItem(global.tabId) const _this = global.shadowRoot.querySelector(`div[data-talk-id="${talkId}"]`) const workId = _this.dataset.workId; const workNm = _this.dataset.workNm; talkEvent.send(global.talkParams({ type: "UNTYPED", talkId: talkId, workId: workId, workNm: workNm })) global.element.chatEditor.innerHTML = ''; } talkEvent.messageClean(); // localstorage 정보 제거 localStorage.removeItem(global.tabId) localStorage.removeItem('workId') localStorage.removeItem('workNm') }, talkClean: () => { // console.log('clean') global.currDay = '' global.yourOldDate = ''; global.mineOldDate = ''; global.messageParams.talkId = ''; global.messageParams.week = 1; global.scrollMoreFlag = true; global.scrollObserveFlag = true; }, searchClose: () => { const searchCloseBtn = global.shadowRoot.querySelector('#chat-option.bi-x-lg'); if(searchCloseBtn) { searchCloseBtn.click() } } } export {global}