PageSourceSearch

https://flow.team/signin.act

html flow.team collected 2026-10-01 15:47:56 UTC 100,553 bytes, 2,044 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ko" data-product='flow'>
3<head>
4    <meta charset="UTF-8">
5<meta name="robots" content="noindex, nofollow">
6<meta http-equiv="Cache-Control" content="No-Cache">
7<meta http-equiv="Pragma" content="No-Cache">
8<meta http-equiv="X-UA-Compatible" content="IE=Edge">
9<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width">
10<meta name="format-detection" content="telephone=no">
11<meta name="url" content="https://flow.team/signin.act">
12<title>플로우(flow) - 대한민국 No.1 AI Work OS</title>
13<meta name="description" content="메신저에 업무관리를 더하다! 쉽고 빠른 대한민국 No.1 AI Work OS 플로우(flow)">
14<meta name="keywords" content="협업툴, 업무용협업툴, 프로젝트관리툴, 협업관리툴, 무료협업툴, 업무협업툴, 협업, 프로젝트관리, 일정관리, 업무용툴, 업무툴, 성과관리, 스케줄관리, 협업도구, 협업프로그램, 협업프로젝트, AI툴, AI협업툴, AI업무비서">
15
16<meta property="og:url" content="https://flow.team/signin.act">
17<meta property="og:title" content="플로우(flow) - 대한민국 No.1 AI Work OS">
18<meta property="og:type" content="website">
19<meta property="og:description" content="메신저에 업무관리를 더하다! 쉽고 빠른 대한민국 No.1 AI Work OS 플로우(flow)">
20<meta property="og:image" content="https://flow.team/design2/img/flow_meta_v4.png">
21
22<meta name="author" content="Madras check">
23<meta name="subject" content="work tool">
24<meta name="copyright" content="Madras check">
25<meta name="content-language" content="ko">
26<meta property="og:locale" content="ko_KR"/>
27
28<link rel="canonical" href="https://flow.team/signin.act">
29<link rel="SHORTCUT ICON" href="/favicon.ico">
30<link rel="icon" type="image/x-icon" href="/favicon.ico">
31
32<meta name="twitter:card" content="summary">
33<meta name="twitter:url" content="https://flow.team/signin.act">
34<meta name="twitter:title" content="플로우(flow) - 대한민국 No.1 AI Work OS">
35<meta name="twitter:description" content="메신저에 업무관리를 더하다! 쉽고 빠른 대한민국 No.1 AI Work OS 플로우(flow)">
36<meta name="twitter:image" content="https://flow.team/design2/img/flow_meta_v4.png">
37
38<meta name="google-play-app" content="app-id=com.webcash.bizplay.collabo">
39<meta name="apple-itunes-app" content="app-id=939143477">
40<meta name="apple-mobile-web-app-capable" content="yes">
41<meta name="apple-mobile-web-app-status-bar-style" content="black">
42<meta name="format-detection" content="telephone=no">
43<meta itemprop="image" content="https://flow.team/design2/img/flow_meta_v4.png">
44<meta property="og:site_name" content="플로우(flow) - 대한민국 No.1 AI Work OS">
45<meta property="fb:app_id" content="1491712834464733">
46<meta name="google-signin-client_id" content="37387137807-39m3vmoo1o6ktlm4k0d1cmajamm2gkhi.apps.googleusercontent.com">
47<script>
48    var basePath = '';
49    var langPack_basePath = '';
50    var version = '8.12727.3507.96053';
51    var langPack_version = '20261002244787353';
52    var isMinify = true;
53    var _ENTER_YN = "N";
54    var _IS_EXTERNAL_LIB = true;
55    var _IS_INNER_NETWORK = false;
56    var _GUBUN = "WEB";
57    var _SUB_PATH_BY_TINY_URL = ""
58    var _SUB_PATH_BY_PROJECT_URL = ""
59    var _IS_APPLE_LOGIN = true;
60    var _IS_GOOGLE_LOGIN = false;
61    var _IS_KAKAO_LOGIN = false;
62    var googleApiAvailable = false;
63    var googlePlatFormAvailable = false;
64    var kakaoApiAvailable = false
65    var appleApiAvailable = false;
66    var _IS_PORTAL_APP_DETAIL_LINK = false;
67    var CONNECT_INVITED_COMPANY_NAME = "";
68    // 요청 파라미터를 JS 문자열에 넣으므로 JS 문자열용으로 이스케이프한다(주소를 직접 조작한 반사형 XSS 방지)
69    var CONNECT_INVITED_PROJECT_NAME = "";
70    if ("WEB" !== _GUBUN && !_IS_PORTAL_APP_DETAIL_LINK) MobileApp.goPostByTinyUrl(_SUB_PATH_BY_TINY_URL);
71</script>
71
72
73<script>
74    window._ENTER = window._ENTER || {};
75    window.getEnterConfig = window.getEnterConfig || (function () {
76        const warned = new Set();
77        return function (enterKey, configKey) {
78            const bucket = window._ENTER && window._ENTER[enterKey];
79            // 해당 기업 테넌트가 아닌 경우 — 공유 번들이 참조해도 조용히 '' 반환
80            if (!bucket) return '';
81            const value = bucket[configKey];
82            if (!value) {
83                // 해당 기업 테넌트인데 key 가 비어있음 — 진짜 설정 누락
84                const tag = enterKey + '.' + configKey;
85                if (!warned.has(tag)) {
86                    warned.add(tag);
87                    console.error('[Enterprise Config] window._ENTER.' + tag + ' is not set');
88                }
89                return '';
90            }
91            return value;
92        };
93    })();
94</script>
94
95<link rel="stylesheet" href="/flow-renewal/assets/css/reset.css?ver=8.12727.3507.96053">
96<link rel="stylesheet" href="/flow-renewal/dist/css/flowHomepage.css?v=85ee946430279627"/>
97<link rel="stylesheet" href="/flow-renewal/dist/css/common.min.css?v=01dc6d50ce5fb6b4">
98<link rel="stylesheet" href="/flow-renewal/assets/scss/css/main.css?ver=8.12727.3507.96053">
99
100<link rel="stylesheet" href="/flow-renewal/dist/css/mini.min.css?v=bb75b128265845c6">
101<link rel="stylesheet" href="/flow-renewal/dist/css/module.min.css?v=573108eb5c997786">
102<link rel="stylesheet" href="/flow-renewal/dist/css/tail.min.css?v=188d3ea3eb853ed5">
103<script>
104	var ServerChecker = {"get":{"isSamsungLife":false,"isHec":false,"isGuest":false,"isMiraeAsset":false,"isHiib":false,"isHansol":false,"isJoins":false,"isEmro":false,"isKsd":false,"isGware":false,"isSsds":false,"isKtWorks":false,"isZoomok":false,"isKrx":false,"isMobile":false,"isUtlz":false,"isWebcash":false,"isSeco":false,"isSsgi":false,"isKnb":false,"isDbfi":false,"isNabo":false,"isSem":false,"isMadras":false,"isTaeKwang":false,"isFlowtest":false,"isSec":false,"isMobis":false,"isReal":true,"isOutsiders":false,"isGKtWorks":false,"isDgb":false,"isKsfc":false,"isBgf":false,"isSamsungFire":false,"isKnto":false,"isKbcapital":false,"isPoscoDX":false,"isBlockSnsInCloud":false,"isKimchang":false,"isFlowCloud":true,"isKyowon":false,"isHyundaicar":false,"isSoil":false,"isNewMini":false,"isEnter":false,"isBnk":false,"isPsnm":false,"isKogas":false,"isEland":false,"isInnerNetwork":false,"isDgbc":false,"isWCB":false,"isHwaseung":false,"isSafeNet":false,"isLotte":false,"isDev":false,"isImLife":false,"isGlobal":false,"isFastBox":false,"isHdmf":false,"isBmw":false}}["get"];
105	var SUB_DOM = "";
106	var googleApiAvailable = false;
107	var googlePlatFormAvailable = false;
108	var kakaoApiAvailable = false
109	var appleApiAvailable = false;
110	var isAdLogin = false;
111	var acceptLanguage = 'ko';
112	var _CF_LANG = 'en_uk';
113	var _CLIENT_REGION = 'AM'
114	var isNewSignup =true
115	var isNewFinalStep =true
116	var isShowdesktopGuide = true;
117	var isRenewalSignUp =true
118	var isGptTrainer = false;
119    var isHubspotChatbot = true;
120    var isFuncConnServerLoc = false
121    var isJoinCancel = true
122    var isSignupStepOnLogin = false;
123	var surveySrno = "";
124	var isAdminUserPage = false;
125	var isHideBasic = true;
126	var isUserTracker = true;
127	var inputUserId = "";
128	var utmSource = "";
129	var utmMedium = "";
130	var utmCampaign = "";
131	var utmContent = "";
132	var utmTerm = "";
133	var isAzureLogin = false;
134    var isOpenProB = true;
135</script>
135
136
137</head>
138<body style="overflow-y: auto">
139
140
141
142
143
144
145
146
147
148
149<div id="memberItem" style="display:none">
150    <li class="js-participant-item {centrex-style-class}" data-id={rcvr-cd} rcvr_cd={rcvr-cd} rcvr_gb={rcvr-gb} id="{id}"
151        sendience_gb="{sendience-gb}" profile-image="{profile-image}" out_auth="{out_auth}" clph-no={CLPH_NO} cmpn-tlph-no={CMPN_TLPH_NO}>
152        <div class="post-author">
153            <span class="js-profile thumbnail size40 radius16" {profile}></span>
154            <dl class="post-author-info">
155                
156                <dt>
157                    <strong id="name" class="author">{name}</strong>
158                    <em class="position">{position}</em>
159                </dt>
160                
161                <dd {personal-yn}>
162                    <strong class="company" {company_display}>{company}</strong>
163                    <span class="team">{team}</span>
164                </dd>
165                
166            </dl>
167        </div>
168        <div id="selectMemberBtn" class="my-check-2"></div>
169        <button type="button" class="js-participant-chat participant-chat-button d-none" {btn_tmr_chat_display}>
170            <i class="ic-ic-015"><span class="blind">채팅</span></i>
171        </button>
172        <button type="button" class="js-centrex-call-button org-ph-no-button" {call_button_display}>
173            <i class="ic-ic-072"><span class="blind">전화</span></i>
174        </button>
175        <a id="plusBtn" href="#" class="project-invite-plus-1 d-none">
176            <div class="project-invite-plus-circle-1"></div>
177            <div class="project-invite-plus-circle-2"></div>
178            <div></div>
179        </a>
180        <div id="plusPopup" class="project-invite-sub-popup-1 plus-popup" style="display:none">
181            <a id="export" href="#">
182                <div class="invite-active-type-1">내보내기</div>
183            </a>
184            <a id="managerBtn" href="#">
185                <div class="invite-active-type-1">관리자로 지정</div>
186            </a>
187        </div>
188    </li>
189</div>
190<div class="login-header">
191<div class="signup-area">
192        <span class="signup-text">아직 회원이 아니신가요?</span>
193        <a class="js-signup-btn signup-btn BasicL_LineB">회원가입</a>
194    </div>
195</div>
196<div class="auth-section after-contents">
197    <div class="login-wrap">
198
199        <!-- 로그인 레이어 -->
200        <div id="loginLayer" class="login-layer">
201            <div class="login-text">
202<a href="https://flow.team/">
203                    <img src="/flow-renewal/assets/images/logo/flow-logo.svg" alt="">
204                </a>
205            </div>
206            <form id="loginForm" class="login-form">
207                <div class="InputXL">
208                    <input
209                            id="userId"
210                            type="text"
211                            placeholder="아이디"
212                            autocomplete="off"
213                            data-required-yn="Y"
214                            maxlength="50"
215                            data-empty-msg="아이디를 입력해주세요."
216                            data-over-msg="50자 이내로 작성해주세요"
217                            data-login-err-msg="존재하지 않은 사용자입니다"
218                    />
219                </div>
220                <div class="InputXL">
221                    <input
222                            id="password"
223                            type="password"
224                            class="js-join-input"
225                            placeholder="비밀번호"
226                            data-valid="login-password"
227                            data-required-yn="Y"
228                            autocomplete="current-password"
229                            maxlength="20"
230                            data-empty-msg="비밀번호를 입력해주세요."
231                            data-over-msg="20자 이내로 작성해주세요"
232                            data-un-valid-msg="6자 이상의 영문,숫자를 입력하세요"
233                            data-login-err-msg="비밀번호를 확인해 주세요."
234                    />
235
236                    <button id="pwdViewBtn" type="button" class="password-view-button 
236js-view-button" style="display:none">
237                        <i class="ic-ic-048"></i>
238                    </button>
239
240                </div>
241                <p class="error-text"></p>
242            </form>
243            <div id="autoCheck" class="auto-login-label">
244                <a class="cursor-pointer">
245                    <i class="SelectCircleM"></i>
246                </a>
247                자동 로그인</div>
248
249            <div class="login-find-section"></div>
250
251            <p class="error-text d-none">
252                팀 가입 대기</p>
253            <a id="normalLoginButton" class="normal-login-btn BasicL_Face cursor-pointer">
254                로그인</a>
255
256            <div id="bottomSection" class="login__sub">
257                <a href="#">
258                    <span class="js-password-find login__sub-btn">
259                        비밀번호 찾기</span>
260                </a>
261                <a class="js-signup-btn login__sub-btn">
262                    <span>
263                        회원가입 하기
264                    </span>
265                </a>
266            </div>
267
268            <div class="guest-or">
269                또는</div>
270            <div class="platform-login-wrap">
271
272                <a id="googleLoginButton" class="BasicL_LineA-icon cursor-pointer">
273                    <i class="svg-sb-012"></i>
274                    <span>
275                        Google 계정으로 로그인</span>
276                </a>
277                <a id="kakaoLoginButton" class="BasicL_LineA-icon cursor-pointer">
278                    <i class="svg-sb-008"></i>
279                    <span>
280                        Kakao 계정으로 로그인</span>
281                </a>
282                <a id="appleLoginButton" style="display:flex;" class="BasicL_LineA-icon cursor-pointer">
283                    <i class="svg-sb-003"></i>
284                    <span>
285                        Apple 계정으로 로그인</span>
286                </a>
287                </div>
288
289            </div>
290
291        <!-- 비밀번호 찾기 레이어 -->
292        <div id="findPassword" style="display: none">
293            <div class="password-text">
294                비밀번호 찾기</div>
295            <div class="password-sub-text">
296                기존에 가입하신 이메일을 입력하시면, 비밀번호 변경 메일을 발송해드립니다.</div>
297            <div class="InputXL">
298                <input
299                        id="findEmailInput"
300                        type="text"
301                        placeholder="이메일"
302                        autocomplete="off"
303                        maxlength="50"
304                        data-required-yn="Y"
305                        data-valid="email"
306                        data-empty-msg="이메일을 입력해주세요."
307                        data-over-msg="50자 이내로 작성해주세요"
308                        data-un-valid-msg="이메일 형식이 올바르지 않습니다."
309                />
310            </div>
311            <div class="js-password-alert password-alert-text"></div>
312            <a id="findSubmit" href="#" class="BasicL_Face find-submit-btn">
313                비밀번호 변경 이메일 받기</a>
314        </div>
315
316    </div>
317</div>
318
319<script>
320    window._CHANNEL_TALK_CONFIG = {
321        pluginKey: 'b7b0733e-2d03-4a38-95bd-85982cbd6101',
322        language: 'ko',
323        anonymous: true
324    };
325</script>
325
326<!--enterprise-->
327<!-- Enterprise -->
328<script>
329    const noopFunc = () => {
330    }
331    const emptyFunc = () => '';
332    // ENTER_CUSTOM.BgfConfig.get() 이런 형태로 사용하는 것이 더 좋을 것 같음.
333    // var ENTER_CUSTOM =
334    (function (w) {
335        // common
336        
337        w.EnterConfig = {isMadrascheck: () => w._USER_ID === 'madrascheck'};
338        w.EnterCommonConfig = {
339            isInnerNetwork: noopFunc,
340            enterLogout: noopFunc,
341            getDefaultTmplType: emptyFunc,
342            getTmplType: emptyFunc,
343            isExternalLogin: () => false
344        };
345
346        
347
348        // init
349        
350        w.BgfConfig = {get: emptyFunc};
351        
352        w.DbfiConfig = {get: emptyFunc};
353        
354        w.DgbConfig = {};
355        
356        w.DgbcConfig = {isDgbc: noopFunc, checkUploadExtension: noopFunc};
357        
358        w.ElandConfig = {openMessengerChatBot: noopFunc}
359        
360        w.EmroConfig = {emroLogout: noopFunc, emroIpBandCheck: noopFunc}
361        
362        w.FastboxConfig = {};
363        
364        w.HecConfig = {isHec: noopFunc, sendScheduleToHecGroupware: noopFunc};
365        
366        w.HyundaicarConfig = {get: emptyFunc}
367        
368        w.KbcapitalConfig = {};
369        
370        w.KimchangConfig = {};
371        
372        w.KyowonConfig = {};
373        
374        w.MobisConfig = {LOCK_MODE_YN: 'N', isMobis: noopFunc, checkInnerIp: noopFunc};
375        
376        w.SecoConfig = {is: emptyFunc};
377        
378        w.SemConfig = {};
379        
380        w.SoilConfig = {openDocViewer: noopFunc};
381        
382        w.SsgiConfig = {};
383        
384        w.ZoomokConfig = {get: emptyFunc};
385        
386        w.PsnmConfig = {};
387        
388        w.HiibConfig = {};
389        
390        w.PoscoDXConfig = {};
391        
392
393    })(window)
394</script>
vendor: 1 bytes, line 394
394
395<script>window.html2canvasLibVersion = 'e87e550794322e57';</script>
395
396
397<script src="/flow-renewal/dist/js/mutil.min.js?v=d6e213f8fcca949b"></script>
vendor: 1 bytes, line 397
397
398<script src="/flow-renewal/dist/js/commonLib.min.js?v=e5be300e748cbc8c"></script>
398
399    
399<script src="/flow-renewal/dist/js/common.min.js?v=5a3fe772ff10df8b"></script>
399
400    
400<script src="/flow-renewal/dist/js/secret.min.js?v=72b4b03799086a99"></script>
400
401    
401<script>
402    dayjs.extend(window.dayjs_plugin_utc);
403    dayjs.extend(window.dayjs_plugin_timezone);
404    dayjs.extend(window.dayjs_plugin_relativeTime);
405    dayjs.extend(window.dayjs_plugin_duration);
406    dayjs.extend(window.dayjs_plugin_isToday);
407    dayjs.extend(window.dayjs_plugin_isYesterday);
408    dayjs.extend(window.dayjs_plugin_isoWeek);
409    dayjs.extend(window.dayjs_plugin_weekOfYear);
410    window.$dayjs = dayjs;
411
412    var _COUNTRY_CODE = "ko";
413    window._VERSION = '8.12727.3507.96053';
414
415    var _CHAT_URL = 'https://chat.flow.team:7820';
416    var _IPT_URL = "";
417    var _STATUS_URL = "https://chat.flow.team:8820";
418    var _DASHBOARD_SOCKET_URL = "https://chat.flow.team:8920";
419    var _AI_CHAT_ASSISTANT_URL = "";
420    var _INNER_NETWORK_YN = 'N';
421    var _CLIENT_IP = "81.16.3.32, 18.68.8.87";
422
423    var _JSESSION_ID = "D2C9436CD34D25E542652DBFEA28E390.flow11"
424    var _PTL_ID = "";
425    var _CHNL_ID = "";
426    var _USE_INTT_ID = "";
427    var _USE_INTT_NM = "";
428    var _USER_ID = "";
429    var _USER_NM = "";
430    var _USER_EMAIL = "";
431    var _RGSN_DTTM = "";
432    var _PRFL_PHTG = "";
433    var _BSNN_NM = "";
434    var _DVSN_NM = "";
435    var _JBCL_NM = "";
436    var _RSPT_NM = "";
437    var _DVSN_CD = "";
438    var _ONE_COLABO_SRNO = "";
439    var _BUY_YN = "";
440    var _CLPH_NO = "";
441    var _ENTER_ID = ""
442    var _REGISTER_REGION = ""
443    var _ANONYMOUS_Id = "";
444    var _ANONYMOUS_PRFL_PHTG = "";
445    var _MNGR_DSNC = "";
446    var _PHONE_STATUS = "";
447    window._GROUP_CD = ""
448    window._WINDOW_UUID = Often.getUUID();
449    
450
451    // 위키(flowiki) 진입용 rToken 쿠키 선발급 — **유일한 발급 지점**.
452    // 원래는 main.act/miniMain.act 의 generateMonoJwt 가 발급했는데, portal.act·딥링크 착지나 7일 만료
453    // 후에는 쿠키가 없어 위키를 새 탭으로 열면 재발급할 rToken 이 없어 flow.team 으로 튕겼다. 그래서 모든
454    // 인증 페이지가 include 하는 이 지점이 갭을 메웠고, 이제 그쪽 중복 발급은 제거해 여기로 일원화했다
455    // (둘이 병렬로 나가면 한쪽 실패의 쿠키 만료가 다른 쪽이 심은 새 토큰을 지운다).
456    // 모든 인증 페이지가 include 하는 이 공통 지점에서 rToken 이 지금 사용자의 것이 아니면 세션으로 재발급해 그 갭을 메운다.
457    // (ES 모듈 Ajax 는 이 인라인 스크립트에서 못 쓰므로 fetch 로 호출하고, 실패는 조용히 무시해 세션에 영향 주지 않는다.)
458    (function () {
459        if (!_USER_ID || !Often.isFunc('NEST_JWT')) return;
460
461        // 쿠키가 "있는가" 가 아니라 "지금 이 사용자의 것인가" 로 판정한다.
462        // 존재만 보면 직전 계정의 rToken 이 남아 있을 때 선발급이 통째로 skip 되고, 위키는 남은 그 옛
463        // 토큰으로 직전 계정·직전 기관 세션을 만든다(로그아웃 실패든 로그아웃 없는 계정 전환이든 결과가 같다).
464        // 서명은 검증하지 않는다 — 여기서 위조로 얻는 것은 "선발급 1회 더" 뿐이고 실제 신원 판정은 위키가
465        // 서명 검증으로 한다. 파싱 실패·형태 불일치는 "내 것이 아님" 으로 본다(아래 만료+재발급 경로).
466        // payload 는 ASCII 전제다(위키 발급 claim = sub·role·useInttId·duid·ip). 비ASCII 필드가 추가되면
467        // atob 가 latin1 바이트열을 돌려줘 파싱이 깨지는데, 그때도 "내 것 아님" 으로 떨어져 안전하다.
468        function rTokenClaims(token) {
469            try {
470                var seg = token.split('.')[1];
471                if (!seg) return null;
472                seg = seg.replace(/-/g, '+').replace(/_/g, '/');
473                seg += '==='.slice((seg.length + 3) % 4);
474                var claims = JSON.parse(atob(seg));
475                if (typeof claims.sub !== 'string' || typeof claims.useInttId !== 'string') return null;
476                return claims;
477            } catch (e) {
478                return null;
479            }
480        }
481
482        var cookieDomain = location.hostname.includes('flowtest') ? 'flowtest.info' : location.hostname;
483        var existing = Often.getCookie('rToken');
484        if (existing) {
485            var claims = rTokenClaims(existing);
486            if (claims && claims.sub === _USER_ID && claims.useInttId === _USE_INTT_ID) return;
487
488            // 남의 토큰으로 확정됐으면 재발급 성공을 기다리지 말고 **먼저 지운다**(fail-closed).
489            // 재발급은 실패할 수 있다 — 네트워크 실패, 플랜 게이트로 빈 토큰(ACT_GET_JWT 는 위키 4xx 에도
490            // 200+빈 값). 지우지 않으면 그 실패가 전부 "남의 계정으로 위키 진입" 으로 남는다.
491            // 지워두면 최악이 "위키 재로그인 유도" 다.
492            // 굽는 경로가 스코프별로 갈리므로 JS 가 보는 두 변형(host-only · JS 규칙 도메인)을 모두 만료시킨다.
493            // httpOnly 변형은 JS 가 못 지운다 — 그쪽은 위키가 중복 rToken 중 iat 최신을 고르는 규칙이 덮고,
494            // 그래도 남는 창(httpOnly stale 단독 + 발급 실패)은 이 변경 이전부터 있던 선행 결함이라 별건으로 둔다.
495            document.cookie = 'rToken=; path=/; max-age=0';
496            Often.setDomainCookie('rToken', '', cookieDomain, -1, '', !Often.isServerModeByHost());
497        }
498
499        // 발급 시도 빈도 제한 — 실패(auth 지연/장애) 시에도 쿠키 게이트가 계속 열려 매 페이지 진입마다
500        // ACT_GET_JWT 를 재호출하는 증폭을 막는다.
501        //
502        // "탭당 1회" 가 아니라 **쿨다운**인 이유: 이제 이 지점이 유일한 발급 경로다(main/mini 의
503        // generateMonoJwt 는 병렬 발급 레이스 때문에 제거했다). 1회로 잠그면 일시 장애로 한 번 실패한 탭이
504        // 로그인으로 마커가 리셋될 때까지 위키에 영영 못 들어간다. 쿨다운을 두면 복구 경로가 남는다.
505        // 실패가 지속돼도 60초당 1회라, 제거한 generateMonoJwt(페이지 진입마다 무조건 1회)보다 엄격하다.
506        //
507        // 신원은 **키가 아니라 값**에 싣는다. 키를 쪼개면 로그인 성공 시 이 마커를 리셋하는
508        // CommonLogin.moveMainPage 의 removeItem('flowRtokenProvisionTried') 이 no-op 이 되어,
509        // 같은 계정으로 재로그인한 같은 탭에서 선발급이 영구 skip 된다(커밋 7ebe05c363a 회귀).
510        // 신원이 바뀌면 접두가 어긋나 쿨다운을 건너뛴다 — 계정 전환은 기다리게 하면 안 된다.
511        var identity = _USER_ID + ':' + _USE_INTT_ID;
512        var now = new Date().getTime();
513        var lastTried = 0;
514        try {
515            var marker = sessionStorage.getItem('flowRtokenProvisionTried');
516            if (marker && marker.indexOf(identity + '@') === 0) {
517                lastTried = parseInt(marker.slice(identity.length + 1), 10) || 0;
518            }
519        } catch (e) {
520            // sessionStorage 불가(예: Safari Private) → 쿨다운 없이 진행한다. 페이지 로드당 1회라
521            // 제거 전 generateMonoJwt 와 같은 빈도이고, 여기서 막으면 그 환경은 발급 경로가 0이 된다.
522        }
523        if (now - lastTried < 60000) return;
524        try {
525            sessionStorage.setItem('flowRtokenProvisionTried', identity + '@' + now);
526        } catch (e) {
527            // 기록 실패는 쿨다운만 못 걸 뿐 발급을 막을 이유가 아니다.
528        }
529        var payload = encodeURIComponent(JSON.stringify({ USER_ID: _USER_ID, RGSN_DTTM: _RGSN_DTTM }));
530        fetch('/ACT_GET_JWT.jct', {
531            method: 'POST',
532            credentials: 'include',
533            headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest' },
534            body: '_JSON_=' + encodeURIComponent(payload),
535        })
536            .then(function (res) { return res.json(); })
537            .then(function (data) {
538                if (!data || !data.REFRESH_TOKEN || (data.COMMON_HEAD && data.COMMON_HEAD.ERROR)) return;
539                Often.setDomainCookie('rToken', data.REFRESH_TOKEN, cookieDomain, 7, '', !Often.isServerModeByHost());
540            })
541            .catch(function () { /* best-effort: 실패해도 기존 동선 유지 */ });
542    })();
543
544    var CONNECT_PROJECT_SRNO = "";
545    var CONNECT_POST_SRNO = "";
546    var CONNECT_REMARK_SRNO = "";
547    var _POST_LINK = "";
548    var _CHAT_TOKEN = "";
549    var roomSrnoByToken = "";
550
551    var CONNECT_INVITE_KEY = "";
552    var CONNECT_REPORT_INVITE_KEY = "";
553
554    var _CURRENT_PROJECT_USER_INFO = {};
555    var _CURRENT_PROJECT_INFO = {};
556    
557
558    var _IsMini = Often.isAct("mini") || Often.isAct("Mini");
559    var _FLOW_DRIVE_UUID = "";
560
561    //SentryMonitor.setExtraUserInfo();
562    if(Often.isFunc("SENTRY_MONITOR") && !ServerChecker.isEnter){
563        SentryMonitor.setExtraUserInfo();
564    }
565    if (!_ENTER_YN && !Often.isServerModeByHost("REAL") && !Often.isServerModeByHost("REAL_TEST")) Often.setCookie("MINIFY_YN", "N");
566
567    LocalUtil.setLocal("ONLY_ENTER_YN", _ENTER_YN);
568
569    //browser tab id 생성
570    if (!sessionStorage.tabID || sessionStorage.isTab === 'ON') {
571        sessionStorage.tabID = Often.getRandomDeviceId();
572    }
573    sessionStorage.isTab = 'ON';
574    var _TAB_ID = sessionStorage.tabID;
575    Often.session2local();
576
577    var _SET_DOMAIN = "";
578
579    //case1. 탭이 종료될때 , 로컬에서 세션 옮겼다가 탭 종료되면 세션 데이터 날아감
580    //case2. 탭이 리로드될때, 로컬에서 세션 옮겼다가 탭 리로드되면 세션에서 로컬로 데이터 옮김
581    //main.act에서 beforeunload를 사용하는 부분이 있어서 해당 부분 체크하고 진짜로 벗어날때만(unload시에만) 동작하도록 처리
582    $(window).on('unload', function () {
583        sessionStorage.isTab = 'OFF';
584        Often.local2session();
585    });
586
587    $(document).ready(function () {
588        $('body').attr("data-enter-id", "");
589
590        if (Mutil.isFunc('DEV_TITLE') && Mutil.isServerOn('ALL_TEST')) {
591            setTimeout(() => {
592                const tag2 = isMinify ? '' : '(raw)';
593                let tag1, tag3;
594                if (location.host.includes('localhost')) {
595                    tag1 = '로컬';
596                } else if (location.host.includes('flowtest')) {
597                    tag1 = '플테';
598                } else if (location.host.includes('staging')) {
599                    tag1 = '스테이징';
600                } else if (location.host.includes('hotfix')) {
601                    tag1 = '핫섭';
602                } else if (location.host.includes('develop')) {
603                    tag1 = '디벨롭';
604                } else if (location.host.includes('release')) {
605                    tag1 = '릴섭';
606                } else {
607                    tag1 = 'etc';
608                }
609                const title = '[' + tag1 + tag2 +'] ' + document.title;
610                document.title = title;
611            }, 2000)
612        }
613    });
614</script>
vendor: 1 bytes, line 614
614
615<script onload="googleApiAvailable = true" onerror="googleApiAvailable = false" src="https://apis.google.com/js/api:client.js"></script>
vendor: 1 bytes, line 615
615
616<script onload="googlePlatFormAvailable = true" onerror="googlePlatFormAvailable = false" src="https://apis.google.com/js/platform.js"></script>
vendor: 1 bytes, line 616
616
617<script onload="googlePlatFormAvailable = true" onerror="googlePlatFormAvailable = false" src="https://accounts.google.com/gsi/client"></script>
vendor: 1 bytes, line 617
617
618<script onload="kakaoApiAvailable = true" onerror="kakaoApiAvailable = false" src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
vendor: 1 bytes, line 618
618
619<script onload="appleApiAvailable = true" onerror="appleApiAvailable = false" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
vendor: 1 bytes, line 619
619
620<script onload="azureApiAvailable = true" onerror="azureApiAvailable = false" src="https://cdn.jsdelivr.net/npm/@azure/[email protected]/lib/msal-browser.min.js"></script>
vendor: 1 bytes, line 620
620
621<script src="/flow-renewal/dist/js/sign.min.js?v=51a6111a4272fcae"></script>
vendor: 1 bytes, line 621
621
622<script>
623    Often.setCookie("LAST_SUB_PATH", "", 30 * 12);
624    if(!window.ElectronProcessApi && window?._ENTER_YN !== 'Y'){
625        PartnerStack.load();
626    }
627    if(window.isFuncConnServerLoc) {
628        ServerLocation.consoleLocation();
629    }
630
631    if(window.utmSource || window.utmMedium || window.utmCampaign || window.utmContent || window.utmTerm) {
632        const trackJson = {
633            utm_source: window.utmSource,
634            utm_medium: window.utmMedium,
635            utm_campaign: window.utmCampaign,
636            utm_content: window.utmContent,
637            utm_term: window.utmTerm,
638        }
639
640        Often.setCookie("hubspotTrackJson", JSON.stringify(trackJson), 7);
641    }
642</script>
642
643
644<script src="/flow-renewal/js/signinview/header/SignHeaderNFooter.js?ver=8.12727.3507.96053"></script>
644
645        
645<script src="/flow-renewal/js/signinview/header/FlowHeaderNFooter202307.js?ver=8.12727.3507.96053"></script>
645
646    
646<script>HeaderNFooter.addEvent();</script>
646
647<div class="pop-type-basic type-confirm" style="display: none">
648  <h1>지식 공유를 위한 프로젝트를 생성하시겠습니까?</h1>
649  <div class="cont">
650    프로젝트명과 설정 옵션은<br>
651    지식 공간 정책에 따라 정해집니다
652  </div>
653  <footer class="btn-wrap">
654    <button class="type-bd small">취소</button>
655    <button class="type-bg small">확인</button>
656  </footer>
657</div>
658<div class="pop-type-basic knowledge-space-popup" style="display: none;">
659  <header>
660    <h1><button class="ic-ic-052"></button>지식공간</h1>
661    <div class="btns-wrap">
662      <a href="#">프로젝트로 이동</a>
663      <button class="btn-close-x"></button>
664    </div>
665  </header>
666  <div class="cont__header">
667    <div class="js-registration js-registration-list all-seach-section-wrap-2" profile-data="https://flow.team/flowImg/FLOW_202310313838218_89a93569-5a97-4374-97ab-0c5b1f2c9a48.jpeg?width=400&amp;height=400" data-worker-id="dltmdwls5124" data-project-list="" data-use-intt-id="UTLZ_1608261809693" data-group-cd="" data-dvsn-nm="" data-all-cnt="" data-empl-cnt="">
668      <div class="js-worker-profile all-seach-popup-write-2" style="background-image: url('https://flow.team/flowImg/FLOW_202310313838218_89a93569-5a97-4374-97ab-0c5b1f2c9a48.jpeg?width=400&amp;height=400'), url('https://flow.team/flowImg/FLOW_202310313838218_89a93569-5a97-4374-97ab-0c5b1f2c9a48.jpeg'), url('/flow-renewal/assets/images/profile-default.svg');" data="" data-profile="https://flow.team/flowImg/FLOW_202310313838218_89a93569-5a97-4374-97ab-0c5b1f2c9a48.jpeg?width=400&amp;height=400"></div>
669      <div class="all-seach-popup-write-all-wrap">
670        <div class="all-seach-popup-write-wrap">
671          <div class="js-registration-name all-seach-popup-write-3 notranslate">이승진(현대해상)</div>
672          <span class="js-registration-position">팀장</span>
673        </div>
674        <div class="all-seach-popup-write-wrap-2">
675          <div class="js-registration-company all-seach-popup-write-5">마드라스체크(주)</div>
676          <div class="js-registration-team all-seach-popup-write-6">Enterprise구축개발2팀</div>
677        </div>
678      </div>
679    </div>
680  </div>
681  <div class="cont__header">
682    <strong>총 <span>nnn</span>개</strong>
683    <label class="labelSelectSquareS">
684      <input type="checkbox">
685      <i></i><span>전체공개 게시물만</span>
686    </label>
687  </div>
688  <ul class="pj-post__list list scroll--thin">
689    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
690      <i class="ic-ic-019"></i>
691      <div class="post__info">
692        <div class="post__header">
693          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
694            [QA] 조직도 트리 UI 변경건
695          </h5>
696          <i class="ic-ic-042"></i>
697          <i class="ic-ic-026"></i>
698        </div>
699        <div class="post__meta">
700          <span class="post__author">김원모</span>
701          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
702        </div>
703      </div>
704      <div class="ic-ic-079"><ul class="dropdown-menu on">
705          <li>전체 공개로 전환</li>
706        </ul>
707      </div>
708    </li>
709    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
710      <i class="ic-ic-019"></i>
711      <div class="post__info">
712        <div class="post__header">
713          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
714            [QA] 조직도 트리 UI 변경건
715          </h5>
716          <i class="ic-ic-042"></i>
717          <i class="ic-ic-026"></i>
718        </div>
719        <div class="post__meta">
720          <span class="post__author">김원모</span>
721          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
722        </div>
723      </div>
724      <div class="ic-ic-079">
725        <ul class="dropdown-menu">
726          <li>전체 공개로 전환</li>
727        </ul>
728      </div>
729    </li>
730    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
731      <i class="ic-ic-019"></i>
732      <div class="post__info">
733        <div class="post__header">
734          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
735            [QA] 조직도 트리 UI 변경건
736          </h5>
737          <i class="ic-ic-042"></i>
738          <i class="ic-ic-026"></i>
739        </div>
740        <div class="post__meta">
741          <span class="post__author">김원모</span>
742          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
743        </div>
744      </div>
745      <div class="ic-ic-079">
746        <ul class="dropdown-menu">
747          <li>전체 공개로 전환</li>
748        </ul>
749      </div>
750    </li>
751    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
752      <i class="ic-ic-019"></i>
753      <div class="post__info">
754        <div class="post__header">
755          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
756            [QA] 조직도 트리 UI 변경건
757          </h5>
758          <i class="ic-ic-042"></i>
759          <i class="ic-ic-026"></i>
760        </div>
761        <div class="post__meta">
762          <span class="post__author">김원모</span>
763          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
764        </div>
765      </div>
766      <div class="ic-ic-079">
767        <ul class="dropdown-menu">
768          <li>전체 공개로 전환</li>
769        </ul>
770      </div>
771    </li>
772    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
773      <i class="ic-ic-019"></i>
774      <div class="post__info">
775        <div class="post__header">
776          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
777            [QA] 조직도 트리 UI 변경건
778          </h5>
779          <i class="ic-ic-042"></i>
780          <i class="ic-ic-026"></i>
781        </div>
782        <div class="post__meta">
783          <span class="post__author">김원모</span>
784          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
785        </div>
786      </div>
787      <div class="ic-ic-079">
788        <ul class="dropdown-menu">
789          <li>전체 공개로 전환</li>
790        </ul>
791      </div>
792    </li>
793    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
794      <i class="ic-ic-019"></i>
795      <div class="post__info">
796        <div class="post__header">
797          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
798            [QA] 조직도 트리 UI 변경건
799          </h5>
800          <i class="ic-ic-042"></i>
801          <i class="ic-ic-026"></i>
802        </div>
803        <div class="post__meta">
804          <span class="post__author">김원모</span>
805          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
806        </div>
807      </div>
808      <div class="ic-ic-079">
809        <ul class="dropdown-menu">
810          <li>전체 공개로 전환</li>
811        </ul>
812      </div>
813    </li>
814    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
815      <i class="ic-ic-019"></i>
816      <div class="post__info">
817        <div class="post__header">
818          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
819            [QA] 조직도 트리 UI 변경건
820          </h5>
821          <i class="ic-ic-042"></i>
822          <i class="ic-ic-026"></i>
823        </div>
824        <div class="post__meta">
825          <span class="post__author">김원모</span>
826          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
827        </div>
828      </div>
829      <div class="ic-ic-079">
830        <ul class="dropdown-menu">
831          <li>전체 공개로 전환</li>
832        </ul>
833      </div>
834    </li>
835    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
836      <i class="ic-ic-019"></i>
837      <div class="post__info">
838        <div class="post__header">
839          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
840            [QA] 조직도 트리 UI 변경건
841          </h5>
842          <i class="ic-ic-042"></i>
843          <i class="ic-ic-026"></i>
844        </div>
845        <div class="post__meta">
846          <span class="post__author">김원모</span>
847          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
848        </div>
849      </div>
850      <div class="ic-ic-079">
851        <ul class="dropdown-menu">
852          <li>전체 공개로 전환</li>
853        </ul>
854      </div>
855    </li>
856    <li id="" class="js-popup-before detail-item js-post-nav pj-post__item" data-status-category="" data-read-yn="Y" data-project-srno="1380979" data-post-srno="68585434" data-remark-srno="-1" data-section-srno="" data-vote-srno="" pin-yn="" anoymous-yn="N" style="min-height: 1px;">
857      <i class="ic-ic-019"></i>
858      <div class="post__info">
859        <div class="post__header">
860          <h5 class="post__tit js-post-title js-mouseover " mouseover-text="[QA] 조직도 트리 UI 변경건">
861            [QA] 조직도 트리 UI 변경건
862          </h5>
863          <i class="ic-ic-042"></i>
864          <i class="ic-ic-026"></i>
865        </div>
866        <div class="post__meta">
867          <span class="post__author">김원모</span>
868          <span class="js-schedule-stat post__date">2025-11-04 11:35</span>
869        </div>
870      </div>
871      <div class="ic-ic-079">
872        <ul class="dropdown-menu">
873          <li>전체 공개로 전환</li>
874        </ul>
875      </div>
876    </li>
877    <li>
878      <div class="illust-wrap">
879        <div class="illust-item error-B"></div>
880        <p class="txt">게시글이 없습니다</p>
881      </div>
882    </li>
883  </ul>
884</div>
885<section id ="dlpPopup" class="dimmed" style="display: none;">
886    <div class="pop-type-basic type-confirm dlp-alert-wrap">
887        <div class="cont">
888            <h2 id="detectedDescription">
889            </h2>
890            <p>확인 후 다시 업로드 부탁드립니다.</p>
891            <button id="dlpDetail" class="open-list-btn"></button><ul id="dlpUl" class="scroll-mask thin">
892
893            </ul>
894        </div>
895        <footer class="btn-wrap">
896            <button id="dlpConfirm" class="type-bg">확인</button>
897        </footer>
898    </div>
899</section>
900<div id="popupDraw" class="d-none">
901    <div id="popupWrap">
902        <div class="flow-all-background-1 back-area" tabindex="0">
903            <div class="flow-project-make-1 back-area minify-profile"><div class="flow-project-make-2 back-area contents">{contents}</div>
904            </div>
905        </div>
906    </div>
907    <div id="toastWrap" class="d-none">
908        <div class="alert-wrap d-none">
909            <div class="alert-type">
910                <div class="text"></div>
911            </div>
912        </div>
913    </div>
914    <div id="colorPopup">
915        <div class="color-popup flow-project-popup-3 d-none">
916            <div class="flow-project-header-1">프로젝트 색상<a class="cursor-pointer close-event flow-close-type-1"></a>
917            </div>
918            <div class="flow-content">
919                <div class="flow-category-option-3">
920                    <ul id="selectColorTypes" class="select-color-group">
921                        <li class="color-item Pj_Mint" color-code="5">
922                            <label class="labelRadioM">
923                                <input type="radio">
924                                <i></i>
925                            </label>
926                        </li>
927                        <li class="color-item Pj_Green" color-code="11">
928                            <label class="labelRadioM">
929                                <input type="radio">
930                                <i></i>
931                            </label>
932                        </li>
933                        <li class="color-item Pj_Yellow" color-code="1">
934                            <label class="labelRadioM">
935                                <input type="radio">
936                                <i></i>
937                            </label>
938                        </li>
939                        <li class="color-item Pj_Orange" color-code="10">
940                            <label class="labelRadioM">
941                                <input type="radio">
942                                <i></i>
943                            </label>
944                        </li>
945                        <li class="color-item Pj_Red" color-code="2">
946                            <label class="labelRadioM">
947                                <input type="radio">
948                                <i></i>
949                            </label>
950                        </li>
951                        <li class="color-item Pj_Pink" color-code="7">
952                            <label class="labelRadioM">
953                                <input type="radio">
954                                <i></i>
955                            </label>
956                        </li>
957                        <li class="color-item Pj_Sky" color-code="9">
958                            <label class="labelRadioM">
959                                <input type="radio">
960                                <i></i>
961                            </label>
962                        </li>
963                        <li class="color-item Pj_Blue" color-code="
9636">
964                            <label class="labelRadioM">
965                                <input type="radio">
966                                <i></i>
967                            </label>
968                        </li>
969                        <li class="color-item Pj_Purple" color-code="3">
970                            <label class="labelRadioM">
971                                <input type="radio">
972                                <i></i>
973                            </label>
974                        </li>
975                        <li class="color-item Pj_Gray" color-code="4">
976                            <label class="labelRadioM">
977                                <input type="radio">
978                                <i></i>
979                            </label>
980                        </li>
981                        <li class="color-item Pj_Black" color-code="8">
982                            <label class="labelRadioM">
983                                <input type="radio">
984                                <i></i>
985                            </label>
986                        </li>
987                        <li class="color-item Pj_White" color-code="0">
988                            <label class="labelRadioM">
989                                <input type="radio">
990                                <i></i>
991                            </label>
992                        </li>
993                        </ul>
994                </div>
995                <div class="flow-pop-button-type-1 margin-bottom-20">
996                    <button type="button" class="flow-pop-sub-button-1 cancel-event"></button>
997                    <button type="button" class="flow-pop-sub-button-2 submit-event"></button>
998                </div>
999            </div>
1000        </div>
1001    </div>
1002    <div id="confirmPopup">
1003        <div class="input-popup flow-project-popup-4 d-none">
1004            <div class="flow-project-header-1"><span class="popup-title"></span>
1005                <a class="cursor-pointer close-event flow-close-type-1"></a>
1006            </div>
1007            <div class="flow-content">
1008                <div class="flow-content-input-1">
1009                    <input class="popup-input"
1010                           type="text"
1011                           placeholder=""
1012                           maxlength="50"
1013                           data-required-yn="Y"
1014                           data-empty-msg="프로젝트 폴더명을 입력해주세요."
1015                           data-over-msg="50자 이내로 입력하세요.">
1016                </div>
1017                <div class="flow-pop-button-type-1">
1018                    <a class="cursor-pointer">
1019                        <div class="flow-pop-sub-button-1 cancel-event"></div>
1020                    </a>
1021                    <a class="cursor-pointer">
1022                        <div class="flow-pop-sub-button-2 submit-event"></div>
1023                    </a>
1024                </div>
1025            </div>
1026        </div>
1027        <div class="marketing-agreement-popup flow-project-popup-4 d-none">
1028            <div class="flow-project-header-1"><span class="popup-title">혜택 알림 동의</span>
1029                <a class="cursor-pointer close-event flow-close-type-1"></a>
1030            </div>
1031            <br>
1032
1033            <div class="flow-content marketing-agree-case">
1034                <p>
1035                    플로우와 관련된 새로운 소식, 이벤트 및 혜택 알림을 빠르게 받아볼 수 있습니다!<br>
1036                </p>
1037                <div class="flow-pop-button-type-2">
1038                    <a class="cursor-pointer">
1039                        <div class="flow-pop-sub-button-2 submit-event">동의하고 혜택 알림 받기</div>
1040                    </a>
1041                </div>
1042                <a class="cursor-pointer marketing-disagree-button cancel-event">동의하지 않습니다.</a>
1043            </div>
1044        </div>
1045    </div>
1046    <div id="bigBlockPopup">
1047        <div class="big-block-popup experience-popup d-none">
1048            <dl class="experience-content">
1049                <dt class="popup-title"></dt>
1050                <dd class="popup-cont"></dd>
1051            </dl>
1052            <a class="limit-link-button submit-event"></a>
1053            <button type="button" class="limit-close-button close-event">
1054                <span class="blind">닫기</span>
1055            </button>
1056        </div>
1057    </div>
1058    <div id="blockPopup">
1059        <div class="limit-popup d-none">
1060            <dl class="limit-content">
1061                <dt class="popup-title"></dt>
1062                <dd class="popup-cont"></dd>
1063                <dd class="popup-cont-verInfo"></dd>
1064            </dl>
1065            <button id="detailLinkBtn" class="btn-detail-link d-none">자세히 알아보기</button>
1066            <a class="limit-link-button submit-event"></a>
1067            <button type="button" class="limit-close-button close-event">
1068                <span class="blind">닫기</span>
1069            </button>
1070            <div class="popup-input-wrap">
1071                <input type="checkbox" id="hide_chk" class="chk-hide"><label for="hide_chk">다시 보지 않기</label>
1072            </div>
1073            <button type="button" id="bottomBtn" class="btn-limit-bottom bottom-event">추가 체험 기간 요청</button>
1074        </div>
1075    </div>
1076    <div id="consultPopup">
1077        <div class="consult-popup" style="display: none;">
1078            <div class="flow-apps-portal popup banner-notice-wrap">
1079                <div class="portal-popup qna" style="width: 400px;min-width: unset;">
1080                    <div class="portal-popup-header">
1081                        <b class="popup-title"></b>
1082                        <button type="button" class="js-close-button btn-close-x limit-close-button close-event">
1083                            <span class="blind">닫기</span>
1084                        </button>
1085                    </div>
1086                    <div class="popup-qna">
1087                        <p class="popup-cont"></p>
1088                        <textarea id="popupTextArea" name="popupTextArea" class="popup-input" placeholder=""></textarea>
1089                        <div class="flow-pop-button-type-1">
1090                            <button id= "js-consult-submit" class="agree-use bg-pp submit-event"
1091                                    style=" max-width: 100%;width: 100%;margin: auto;"></button>
1092                        </div>
1093                    </div>
1094                </div>
1095            </div>
1096        </div>
1097    </div>
1098    <div>
1099        <div class="limit-popup chat-limit-popup collect">
1100            <dl class="limit-content">
1101                <dt>모아보기</dt>
1102                <dd>
1103                    서비스 업그레이드를 통해<br>
1104                    자유롭게 모아보기 기능을 이용해 보세요!
1105                </dd>
1106            </dl>
1107            <a href="/" class="limit-link-button">서비스 업그레이드 <span class="d-none">버전이 되어야 하는거 아닌지?</span></a>
1108            <button type="button" class="limit-close-button">
1109                <span class="blind">닫기</span>
1110            </button>
1111        </div>
1112    </div>
1113    <div id="miniAlertPopup">
1114        <div class="mini-confirm-popup flow-project-popup-3 popup-quit d-none">
1115            <p class="popup-cont contents"></p>
1116            <div class="flow-pop-button-type-1">
1117                <a class="cursor-pointer">
1118                    <div class="flow-pop-sub-button-1 cancel-event"></div>
1119                </a>
1120                <a class="cursor-pointer">
1121                    <div class="flow-pop-sub-button-2 submit-event"></div>
1122                </a>
1123            </div>
1124        </div>
1125    </div>
1126    <div id="templateConfirmPopup">
1127        <div class="template-input-popup template-confirm-popup d-none">
1128            <div class="flow-project-header-1"><span class="popup-title"></span>
1129                <a class="cursor-pointer close-event flow-close-type-1"></a>
1130            </div>
1131            <div class="flow-content">
1132                <div class="flow-content-input-1">
1133                    <input class="template-popup-input"
1134                           type="text"
1135                           placeholder=""
1136                           maxlength="50"
1137                           data-required-yn="Y"
1138                           data-empty-msg="템플릿 제목을 입력하세요."
1139                           data-over-msg="50자 이내로 입력하세요.">
1140                </div>
1141                <div class="flow-content-input-1">
1142                     <input class="template-popup-description"
1143                            type="text"
1144                            placeholder=""
1145                            maxlength="100"
1146                            data-required-yn="Y"
1147                            data-empty-msg="템플릿 설명을 입력하세요."
1148                            data-over-msg="100자 이내로 입력하세요.">
1149                </div>
1150                <div class="flow-pop-button-type-1">
1151                    <a class="cursor-pointer">
1152                        <div class="flow-pop-sub-button-1 cancel-event"></div>
1153                    </a>
1154                    <a class="cursor-pointer">
1155                        <div class="flow-pop-sub-button-2 submit-event"></div>
1156                    </a>
1157                </div>
1158            </div>
1159        </div>
1160    </div>
1161    <div id="alertPopup">
1162        <div class="confirm-popup flow-project-popup-6 d-none">
1163            <div class="flow-content">
1164                <div class="flow-content-text">
1165                    <dt class="popup-title"></dt>
1166                    <p class="popup-cont"></p>
1167                </div>
1168                <div class="flow-pop-button-type-1">
1169                    <a class="cursor-pointer">
1170                        <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1171                    </a>
1172                    <a class="cursor-pointer">
1173                        <div class="flow-pop-sub-button-2 submit-event">확인</div>
1174                    </a>
1175                </div>
1176                <a class="cursor-pointer">
1177                    <div class="flow-secondary-submit secondary-submit-event"></div>
1178                </a>
1179            </div>
1180        </div>
1181    </div>
1182    <div id="labelWrap" class="d-none">
1183        <div class="label-popup allProjLabel-popup flow-project-popup-8" style="display: none">
1184            <div class="flow-project-header-1">
1185                <span>프로젝트 폴더 설정</span>
1186                <a class="cursor-pointer close-event flow-close-type-1"></a>
1187            </div>
1188            <ul class="js-label-ul label-set-group scroll-mask"></ul>
1189            <div class="flow-pop-button-type-2">
1190                <a class="cursor-pointer">
1191                    <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1192                </a>
1193                <a class="cursor-pointer">
1194                    <div class="flow-pop-sub-button-2 submit-event">확인</div>
1195                </a>
1196            </div>
1197        </div>
1198    </div>
1199    <div id="projectTemplatePopup" class="d-none">
1200        <div class="regist-template-popup" style="display:none">
1201            <div class="flow-project-header-1">
1202                <span>본 프로젝트 템플릿으로 설정하기</span>
1203                <a class="cursor-pointer close-event flow-close-type-1"></a>
1204            </div>
1205            <div class="main-regist-template-popup">
1206                <dl class="dl-setting-wrap">
1207                    <dt style="display: none">템플릿명</dt>
1208                    <dd style="display: none">
1209                        <input id="projectTemplateTitle"
1210                               type="text"
1211                               class="input-template-name"
1212                               placeholder="템플릿명을 입력해주세요." disabled>
1213                    </dd>
1214
1215                    <dt>카테고리</dt>
1216                    <dd>
1217                        <div class="select-wrap">
1218                            <select name="" id="categoryBox">
1219                                <option value="">카테고리 선택</option>
1220                            </select>
1221                            <i class="icon-template-small-arrow"></i>
1222                        </div>
1223                    </dd>
1224
1225                    <dt>템플릿 소개 문구</dt>
1226                    <dd>
1227                        <textarea id="projectTemplateDescription"
1228                               type="text"
1229                               class="input-template-name"
1230                               maxlength="50"
1231                                  placeholder="소개 문구 입력 (*최대 50자)"></textarea>
1232                    </dd>
1233
1234                    <dt><span>이미지 <span>(첫번째 이미지가 대표로 노출 됩니다.)</span></span> <i id="addThumbnailButton" class="icon-template-plus"></i></dt>
1235                    <dd class="dd-regist-template-img">
1236                        <ul id="templateThumbnailUl" class="ul-regist-template-img"></ul>
1237                    </dd>
1238                    <dd class="dd-regist-template-img">
1239                         <ul id="emptyTemplateThumbnailUl" class="ul-regist-template-img">
1240                            <li class="js-empty-template-thumbnail-li li-empty">
1241                                <div class="input-file-wrap">
1242                                    <div>
1243                                        <label><span class="span-file-empty">아이콘을 클릭해 업로드 하세요</span></label>
1244                                    </div>
1245                                    <i class="js-add-template-thumbnail-icon icon-template-file"><span class="path1"></span><span class="path2"></span><span class="path3"></span></i>
1246                                </div>
1247                            </li>
1248                             <li class="js-empty-template-thumbnail-li li-empty">
1249                                <div class="input-file-wrap">
1250                                    <div>
1251                                        <label><span class="span-file-empty">아이콘을 클릭해 업로드 하세요</span></label>
1252                                    </div>
1253                                    <i class="js-add-template-thumbnail-icon icon-template-file"><span class="path1"></span><span class="path2"></span><span class="path3"></span></i>
1254                                </div>
1255                            </li>
1256                             <li class="js-empty-template-thumbnail-li li-empty">
1257                                <div class="input-file-wrap">
1258                                    <div>
1259                                        <label><span class="span-file-empty">아이콘을 클릭해 업로드 하세요</span></label>
1260                                    </div>
1261                                    <i class="js-add-template-thumbnail-icon icon-template-file"><span class="path1"></span><span class="path2"></span><span class="path3"></span></i>
1262                                </div>
1263                            </li>
1264                        </ul>
1265
1266                    </dd>
1267                </dl>
1268                <dl class="dl-caution-wrap">
1269                    <dt>주의 사항</dt>
1270                    <dd>
1271                        <ul>
1272                            <li>프로젝트 만들 시, 템플릿 목록에서 선택 할 수 있습니다.</li>
1273                            <li>등록된 게시글이 모두 템플릿화 됩니다.</li>
1274                            <li>댓글/프로젝트 채팅방은 템플릿화되지 않습니다.</li>
1275                            <li>최대 50개의 게시글만 템플릿화 됩니다.</li>
1276                        </ul>
1277                    </dd>
1278                </dl>
1279            </div>
1280            <div class="flow-pop-button-type-2">
1281                <a class="cursor-pointer">
1282                    <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1283                </a>
1284                <a class="cursor-pointer">
1285                    <div class="flow-pop-sub-button-2 submit-event">확인</div>
1286                </a>
1287            </div>
1288        </div>
1289    </div>
1290    <div id="pushWrap" class="d-none">
1291        <div class="push-alarm-popup allProjPushAlarm-popup flow-project-popup" style="display:none">
1292            <div class="flow-project-header-1">
1293                알림 설정<button class="js-service-helper js-mouseover button-service-helper" service-code="NOTIFICATION"> <i class="icons-help"></i></button>
1294                <a class="cursor-pointer close-event flow-close-type-1"></a>
1295            </div>
1296            <div class="flow-content push-alarm-content"></div>
1297            <div class="flow-pop-button-type-1">
1298                <a class="cursor-pointer">
1299                    <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1300                </a>
1301                <a class="cursor-pointer">
1302                    <div class="flow-pop-sub-button-2 submit-event">확인</div>
1303                </a>
1304            </div>
1305        </div>
1306    </div>
1307
1308    <div id="profileWrap" class="d-none">
1309        <div class="profile-popup d-none"></div>
1310    </div>
1311    <div id="draggableForElectron">
1312        <div class="window_top rigVer"><!-- 우측정렬 class="rigVer" 추가 -->
1313            <div id="test" class="drag-part" style="display: list-item; -webkit-app-region: drag; height: 40px; width: 300px;"></div>
1314        </div>
1315    </div>
1316    <div id="profilePopup">
1317        <div class="profile-header">
1318            <div class="profile-header-dimmed-layer"></div>
1319            <button class="btn-close icons-close-1">
1320</button>
1321        </div>
1322        <div class="name-card name-badge">
1323            <i class="profile-image js-profile-image {IMG_DEFAULT}" {profile_image}></i>
1324            <!--프로필 사진 미설정 시 .default 클스 추가-->
1325            <div class="info profile-badge">
1326                <p class="info-box">
1327                    <span class="info-badge" {info_badge_display}>
1328                                 <i class="k-talk-icon13"></i>
1329                            </span>
1330                        <span class="name ellipsis">{USER_NAME}</span>
1331                        <span class="position">{USER_POSITION}</span>
1332                    </p>
1333                <p class="info-box">
1334                    <span class="company">{USER_COMPANY}</span><span class="department">{USER_DEPARTMENT}</span>
1335                </p>
1336                <p class="vacation-box" {display_dayoff_inside_prfl_img}>
1337                    <span>{DAYOFF_PERIOD_TXT}</span>
1338                </p>
1339            </div>
1340        </div>
1341        <div class="contact-section scroll-mask thin">
1342            <ul class="contact-contents">
1343                <li class="user-local-time" {display_timezone}>
1344                    <em><i class="profile-worktime"></i></em>
1345                    <span>{USER_TIMEZONE}</span>
1346                </li>
1347                <li class="status js-user-state" {user_status_display}>
1348                    <i class="icon-status"></i> 상태 설정</li>
1349                <li class="company-info" {list_company_display}>
1350                    <em><i class="profile-company" title="회사명/부서명"></i></em>
1351                    <div>
1352                        <strong>{USER_COMPANY}</strong>
1353                            <em>{USER_DEPARTMENT}</em>
1354                        </div>
1355                </li>
1356                <li id="profileDayOffNm" class="profile-day-off" {li_dayoff_nm_display}>
1357                    <em><i class="profile-now"></i></em>
1358                    <span>{USER_DAYOFF_NM}</span>
1359                </li>
1360                <li id="profileEmpNd" {li_emp_no_display}>
1361                    <em><i class="profile-num"></i></em>
1362                    <span>{USER_EMP_NO}</span>
1363                </li>
1364                <li id="profileChargeJobNm" {li_charge_job_nm_display}>
1365                    <em><i class="profile-task" title="담당업무"></i></em>
1366                    <span title="{USER_CHARGE_JOB_NM}">{USER_CHARGE_JOB_NM}</span>
1367                </li>
1368                <li id="profileFmcNo" {li_fmc_no_display}>
1369                    <em><i class="icon-Icon-profile-fmc js-user-phone"></i></em>
1370                    <span>{USER_FMC_NO}</span>
1371                </li>
1372                <li id="profileEml" {li_eml_display}>
1373                    <em><i class="profile-mail js-user-email" title="이메일" ></i></em>
1374                    <span>{USER_EMAIL}</span>
1375                </li>
1376                <li id="profileClphNo" class=" {PRFL_CLPH_NO_HOVER}" {li_clph_no_display}>
1377                    <em><i class="profile-phone js-user-phone"></i></em>
1378                        <span>{USER_PHONE}</span>
1379                    <button id="callCellphoneNumberButton" class="ph-no-button" style="display: none;">전화걸기</button>
1380                </li>
1381                <li id="profileExtNo" {li_ext_no_display}>
1382                    <em><i class="icon-Icon-profile-office js-user-call"></i></em>
1383                    <span>{USER_EXTNO}</span>
1384                </li>
1385                <li id ="profileCmpnTlphNo" class="{PRFL_CMPN_TLPH_NO_HOVER}" {li_cmpn_tlph_no_display} title="{USER_FXNO}">
1386                    <em><i class="profile-call js-user-call"></i></em>
1387                    <span>{USER_CALL}</span>
1388                    <button id="callCompanyNumberButton" class="ph-no-button" style="display: none;">전화걸기</button>
1389                </li>
1390                <li id="profileWorkingTime" {li_working_time_display}>
1391                        <em><i class="profile-worktime"></i></em>
1392                        <span>{USER_WORKING_TIME}</span>
1393                    </li>
1394                <li id="profileSlgn" {li_slogan_display}>
1395                    <em><i class="profile-txt icon-txt js-user-txt" title="상태메시지" ></i></em>
1396                    <span>{USER_TXT}</span>
1397                </li>
1398                <li id="profileEntryDttm" {li_entry_dttm_display}>
1399                    <em><i class="profile-num" title = "입사일"></i></em>
1400                    <span>{USER_ENTRY_DTTM}</span>
1401                </li>
1402                <li id="profileNickname" class="profile__input--wrap" {li_nickname_display}>
1403                  <em><i class="profile-nickname" title="별명"></i></em>
1404                  <div class="profile__input">
1405                    <input type="text" class="js-nickname-input" data-user-id="{USER_ID}" placeholder="별명 입력" readonly>
1406                    <button class="ic-ic-074 js-nickname-edit"></button>
1407                    <div class="btns__wrap">
1408                      <button class="js-nickname-cancel">취소</button>
1409                      <button class="js-nickname-save">확인</button>
1410                    </div>
1411                  </div>
1412                </li>
1413                </ul>
1414        </div>
1415
1416        <div class="btn-wr column">
1417            <button class="btn-chat js-btn-chat" {btn_chat_display}>
1418                    <span>채팅</span>
1419                    <i class="ic-ic-015"></i>
1420                </button>
1421                <button class="btn-modi js-btn-modi" {btn_modi_display}>
1422                    <span>정보수정</span>
1423                    <i class="ic-ic-003"></i>
1424                </button>
1425                <button class="btn-video js-btn-video" {btn_video_display} USER_ID="{USER_ID}">
1426                            <span>화상회의</span>
1427                            <i class="ic-ic-016"></i>
1428                        </button>
1429                    </div>
1430    </div>
1431    <div id="checkBoxPopup">
1432        <div class="check-box-popup popup-setting-wr d-none">
1433            <div class="dimmed"></div>
1434            <div class="flow-project-popup-5 mini">
1435                <div class="flow-project-header-1">
1436                    <div class="popup-title"></div>
1437                    <a class="cursor-pointer flow-close-type-1 cancel-event">
1438                        <i class="ic-ic-078-b"></i>
1439                    </a>
1440                </div>
1441                <div class="flow-content">
1442                    <div class="flow-content-input-2">
1443                        <input class="popup-input" type="text">
1444                    </div>
1445                    <div class="check-box">
1446                        <input class="js-checkbox-input" type="checkbox" maxlength="500">
1447                        <label class="js-checkbox-label"></label>
1448                        <label class="popup-cont js-checkbox-label cursor-pointer"></label>
1449                    </div>
1450                    <div class="flow-pop-button-type-1 mini-button">
1451                        <a class="cursor-pointer">
1452                            <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1453                        </a>
1454                        <a class="cursor-pointer">
1455                            <div class="flow-pop-sub-button-2 submit-event">확인</div>
1456                        </a>
1457                    </div>
1458                </div>
1459            </div>
1460        </div>
1461    </div>
1462
1463    <div id="chatExportWrap" class="d-none">
1464        <div class="chat-export-popup check-box-popup popup-setting-wr export-data d-none">
1465            <div class="dimmed"></div>
1466            <div class="flow-project-popup-5 mini">
1467                <div class="flow-project-header-1">
1468                    <div class="popup-title">채팅방 대화내용 저장</div>
1469                    <a class="cursor-pointer flow-close-type-1 cancel-event">
1470                        <i class="ic-ic-078-b"></i>
1471                    </a>
1472                </div>
1473                <div class="flow-content">
1474                    <div class="check-box">
1475                        <ul class="radio-wrap">
1476                            <li><input id="radio1" class="btn-radio small" type="radio" name="period" value="all" checked>
1477                                <label for="radio1" class="btn-radio-label tit">
1478                                    <span>모든기간</span>
1479                                    </label>
1480                            </li>
1481                            <li><input id="radio2" class="btn-radio small" type="radio" name="period" value="duration">
1482                                <label for="radio2" class="btn-radio-label tit">
1483                                    <span>특정기간</span>
1484                                    </label>
1485                            </li>
1486                        </ul>
1487                    </div>
1488                    <div class="export-input-wrap" style="display: none;">
1489                        <div id="startDate" class="flatpickr flatpickr-input filter-input-box">
1490                            <span class="js-date">2024-02-22</span>
1491                            <input type="hidden" value="">
1492                            <label class="filter-date-label"><i class="icon-date-light"></i></label>
1493                        </div>
1494                        <div class="box">~</div>
1495                        <div id="endDate" class="flatpickr flatpickr-input filter-input-box">
1496                            <span class="js-date">2024-02-30</span>
1497                            <input type="hidden" value="">
1498                            <label class="filter-date-label"><i class="icon-date-light"></i></label>
1499                        </div>
1500                    </div>
1501                    <div class="flow-pop-button-type-1 mini-button">
1502                        <a class="cursor-pointer">
1503                            <div class="flow-pop-sub-button-1 cancel-event">취소</div>
1504                        </a>
1505                        <a class="cursor-pointer">
1506                            <div class="flow-pop-sub-button-2 submit-event">확인</div>
1507                        </a>
1508                    </div>
1509                </div>
1510            </div>
1511        </div>
1512    </div>
1513    <div id="chatExportLoading" class="d-none">
1514        <div class="check-box-popup popup-setting-wr export-data saving">
1515            <div class="dimmed"></div>
1516            <div class="flow-project-popup-5 mini">
1517                <div class="txt-saving">대화 내용 저장중입니다.<br>잠시만 기다려 주세요.</div>
1518                <div class="progress-wrap">
1519                    <div class="okr-progressbar-wrap">
1520                        <div class="js-progress-bar progress-graph-bar" data-progress="0" style="width: 0%;"></div>
1521                        <div class="progress-graph">
1522                            <span class="js-progress-button" data-progress-value="0"><em>0%</em></span>
1523                            <span class="js-progress-button" data-progress-value="10"><em>10%</em></span>
1524                            <span class="js-progress-button" data-progress-value="20"><em>20%</em></span>
1525                            <span class="js-progress-button" data-progress-value="30"><em>30%</em></span>
1526                            <span class="js-progress-button" data-progress-value="40"><em>40%</em></span>
1527                            <span class="js-progress-button" data-progress-value="50"><em>50%</em></span>
1528                            <span class="js-progress-button" data-progress-value="60"><em>60%</em></span>
1529                            <span class="js-progress-button" data-progress-value="70"><em>70%</em></span>
1530                            <span class="js-progress-button" data-progress-value="80"><em>80%</em></span>
1531                            <span class="js-progress-button" data-progress-value="90"><em>90%</em></span>
1532                            <span class="js-progress-button" data-progress-value="100"><em>100%</em></span>
1533                        </div>
1534                    </div>
1535                    <span class="percentage">0%</span>
1536                </div>
1537            </div>
1538        </div>
1539    </div>
1540
1541    <div id="emailAuthLayer" class="d-none">
1542        <div class="auth-popup js-certification-popup flow-login-popup flow-project-popup-6 d-none">
1543            <div class="flow-project-header-1">
1544                <dt class="popup-title"></dt>
1545                <button class="btn-close close-event">
1546                    <i class="icons-close-1"></i>
1547                </button>
1548            </div>
1549            <div class="flow-content">
1550                <div class="login-number-wrap">
1551                    <p class="login-number"><span id="authEmail" class="popup-cont"></span></p>
1552                </div>
1553                <div class="login-input-wrap">
1554                    <input id="authInput" type="text" placeholder="인증번호를 입력하세요"
1555                           class="login-popup-input" maxlength="6" autocomplete="off">
1556                    <div class="login-text-count js-auth-counter"></div>
1557                </div>
1558                <div class="auth-error-text">
1559                  <span id="unValidAuth" style="display : none">인증번호가 일치하지 않습니다.</span>
1560                  <span id="timeoutAuth" style="display : none">인증시간이 만료되었습니다.</span>
1561                  <span id="resendAuth" class="resend-txt" style="display : none; cursor : pointer;">재전송</span>
1562                  <span id="noneNumericAuth" style="display : none">숫자만 입력해주세요</span>
1563                </div>
1564                <a class="cursor-pointer"><div class="confirm-button login-popup-button submit-event">확인</div></a>
1565            </div>
1566        </div>
1567    </div>
1568
1569    <div id="commonLoading" class="d-none">
1570        <div class="loading-area">
1571            <div class="loading type2">
1572                <i class="circle"></i>
1573                <i class="circle"></i>
1574                <i class="circle"></i>
1575                <i class="circle"></i>
1576                <i class="circle"></i>
1577            </div>
1578        </div>
1579    </div>
1580    <div id="wrapLoading" class="d-none">
1581        <div class="flow-all-background-1 zindex1000 js-loading-popup">
1582            <div class="flow-project-make-1">
1583                <div class="flow-project-make-2">
1584                    <div class="loading-popup flow-project-popup-6">
1585                        <div class="flow-project-header-1">
1586                            <a class="cursor-pointer js-cancel-btn loading-cancel flow-close-type-1"></a>
1587                        </div>
1588                        <div class="flow-content">
1589                            <div class="flow-content-text">
1590                                <p class="popup-cont">{contents}</p>
1591                            </div>
1592                            <div class="loading">
1593                                <i class="circle"></i>
1594                                <i class="circle"></i>
1595                                <i class="circle"></i>
1596                                <i class="circle"></i>
1597                            </div>
1598                        </div>
1599                    </div>
1600                </div>
1601            </div>
1602        </div>
1603    </div>
1604<div id="flowNoticeDiv" class="d-none">
1605        <div id="flowNotice" class="popup-notice">
1606            <div class="top">
1607                <img class="js-img" src="" alt="">
1608            </div>
1609            <div class="contents">
1610                <strong class="tit js-ttl"></strong>
1611                <p class="txt js-cntn"></p>
1612                <button class="btn-detail js-link">자세히 알아보기</button>
1613            </div>
1614            <div class="bottom">
1615                <div class="js-not-show check-box">
1616                    <input type="checkbox" id="chk2">
1617                    <label for="chk2"></label>
1618                    다시 보지 않기</div>
1619                <span class="js-close txt-close">
1620                닫기</span>
1621            </div>
1622        </div>
1623    </div>
1624
1625    <div id="prevRefreshPopup" class="d-none">
1626        <div class="js-prev-refresh-popup flow-project-popup-6 d-none">
1627            <div class="flow-content">
1628                <div class="flow-content-text">
1629                    <dt class="popup-title"></dt>
1630                    <p class="popup-cont"></p>
1631                </div>
1632                <div class="flow-pop-button-type-1">
1633                    <a class="cursor-pointer">
1634                        <div class="flow-pop-sub-button-2 submit-event">확인</div>
1635                    </a>
1636                </div>
1637                <a class="cursor-pointer">
1638                    <div class="flow-secondary-submit secondary-submit-event">확인</div>
1639                </a>
1640            </div>
1641        </div>
1642    </div>
1643
1644    <div id="prevFirstPopup" class="d-none">
1645        <div class="js-prev-first-popup flow-project-popup-6 d-none">
1646            <div class="">
1647                <div class="flow-content-text">
1648                    <dt class="popup-title"></dt>
1649                    <p class="popup-cont"></p>
1650                </div>
1651                <div class="flow-pop-button-type-1">
1652                    <a class="cursor-pointer">
1653                        <div class="flow-pop-sub-button-1 cancel-event">취소</div> </a>
1654                    <a class="cursor-pointer">
1655                        <div class="flow-pop-sub-button-2 submit-event">확인</div> </a>
1656                </div>
1657            </div>
1658        </div>
1659    </div>
1660
1661    <div id="multiselectTypeSelectPopup" class="d-none">
1662        <div class="multiselect-popup flow-project-popup-6 js-single-multi-select-popup-layer js-pdf-setting-popup d-none">
1663            <div class="flow-content">
1664                <div class="flow-content-text js-c-pdf-setting-selectarea">
1665                    <h3>인쇄</h3>
1666                    <ul class="radio-wrap">
1667                        <li><input id="radio" class="btn-radio small" type="radio" name="print" value="post" checked>
1668                            <label for="radio" class="btn-radio-label tit" style="padding: 0">
1669                                <span>댓글 미포함</span>
1670                            </label>
1671                        </li>
1672                        <li><input id="radio" class="btn-radio small" type="radio" name="print" value="all">
1673                            <label for="radio" class="btn-radio-label tit" style="padding: 0">
1674                                <span>댓글 포함</span>
1675                            </label>
1676                        </li>
1677                    </ul>
1678                </div>
1679                <div class="flow-pop-button-type-1">
1680                    <a class="cursor-pointer js-pdf-setting-confirm" data-type="cancel">
1681                        <div class="flow-pop-sub-button-1 cancel-event js-cancel-event">취소</div>
1682                    </a>
1683                    <a class="cursor-pointer js-pdf-setting-confirm" data-type="submit">
1684                        <div class="flow-pop-sub-button-2 submit-event js-submit-event">확인</div>
1685                    </a>
1686                </div>
1687            </div>
1688        </div>
1689    </div>
1690
1691    <div id="" class="d-none">
1692        <div class="auth-popup js-certification-popup flow-unlock-popup flow-project-popup-6 d-none">
1693            <div class="flow-content">
1694                <div class="">
1695                    <p>
1696                        로그인 5회 실패로 계정 잠금처리 되었습니다.<br>
1697                        SMS 인증을 통해 잠금해제 가능합니다.
1698                    </p>
1699                </div>
1700                <div>
1701                    <a href="#" class="unlock-link">SMS 인증하기</a>
1702                </div>
1703
1704                <a href="#"><div class="confirm-button login-unlock-button submit-event">확인</div></a>
1705            </div>
1706        </div>
1707    </div>
1708
1709
1710    <div id="" class="d-none">
1711        <div class="auth-popup js-certification-popup flow-unlock-popup flow-project-popup-6 d-none">
1712            <div class="flow-content">
1713                <div class="">
1714                    <p>
1715                        환경설정 > 계정설정 > 비밀번호 변경 메뉴를 통해<br>
1716                        비밀번호를 변경해주시길 바랍니다.
1717                    </p>
1718                </div>
1719
1720                <a href="#"><div class="confirm-button login-unlock-button submit-event">확인</div></a>
1721            </div>
1722        </div>
1723    </div>
1724
1725
1726    <div id="" class="d-none">
1727        <div class="auth-popup js-certification-popup flow-unlock-popup flow-project-popup-6 d-none">
1728            <div class="flow-content">
1729                <div class="">
1730                    <p>
1731                       <span></span>로 임시비밀번호가 발급되었습니다.
1732                    </p>
1733                </div>
1734
1735                <a href="#"><div class="confirm-button login-unlock-button submit-event">확인</div></a>
1736            </div>
1737        </div>
1738    </div>
1739
1740    <div id="fileUploadPopup" class="d-none">
1741        <div class="js-file-send image-send-popup flow-project-popup-6">
1742            <div class="contents">
1743                <div class="flow-content-text">
1744                    <p class="popup-cont">
1745                        <em id="filePopupMainText" class="d-block">파일을 전송하시겠습니까?</em>
1746                        <span class="file-info" id="fileInfo"></span>
1747                        <span class="file-count" id="fileCount"></span>
1748                    </p>
1749                    <div class="js-checkbox-area check-box">
1750                        <input class="js-checkbox-input" type="checkbox" id="check">
1751                        <label class="js-checkbox-label" for="check">
1752                            <span></span>
1753                            이미지 묶어보내기</label>
1754                    </div>
1755                </div>
1756                <div class="flow-pop-button-type-1">
1757                    <a class="cursor-pointer"><div class="js-cancel-btn flow-pop-sub-button-1 cancel-event">취소</div></a>
1758                    <a class="cursor-pointer"><div class="js-submit-btn flow-pop-sub-button-2 submit-event">확인</div></a>
1759                </div>
1760            </div>
1761        </div>
1762    </div>
1763    <section id="videoConfSelectPop" class="dimmed">
1764        <article class="js-video-select-pop video-connect-select-pop d-none">
1765            <header>
1766                <h1>화상회의 생성</h1>
1767                <i class="js-header-cancel-btn icons-close-1"></i>
1768            </header>
1769            <div class="popup-main">
1770                <div class="js-video-conf-selected-box video-service-select-box">
1771                    <p class="js-default-selected video-service-option-default on" data="default"><span>서비스를 선택하세요.</span></p>
1772                    <p class="js-selected-zoom video-service-option" style="display:none" data="Zoom"><i class="svg-sb-009"></i><span>Zoom</span></p>
1773                    <p class="js-selected-zoom-jwt video-service-option" style="display:none" data="ZoomJWT"><i class="svg-sb-009"></i><span>Zoom JWT</span></p>
1774                    <p class="js-selected-google-meet video-service-option" style="display:none" data="GoogleMeet"><i class="svg-sb-025"></i><span>Google Meet</span></p>
1775                    <p class="js-selected-ms-teams video-service-option" style="display:none" data="MsTeams"><i class="svg-sb-020"></i><span>Microsoft Teams</span></p>
1776                    <p class="js-selected-ms-teams-jwt video-service-option" style="display:none" data="MsTeamsJWT"><i class="svg-sb-020"></i><span>Microsoft Teams JWT</span></p>
1777                    <p class="js-selected-webex video-service-option" style="display:none" data="WebEx"><i class="icon-webex"></i><span>Cisco Webex</span></p>
1778                    <p class="js-selected-webex-jwt video-service-option" style="display:none" data="WebExJWT"><i class="icon-webex"></i><span>Cisco Webex JWT</span></p>
1779                    <p class="js-selected-jitsi video-service-option" style="display:none" data="Jitsi"><i class="icon-jitsi"></i><span>Jitsi</span></p>
1780                    <i class="ico-arrow"></i>
1781                </div>
1782                <ul class="js-video-org-select-menu video-service-select-pop" style="display:none;">
1783                    <li class="js-zoom" style="display:none">
1784                        <p class="video-service-option"><i class="svg-sb-009"></i><span>Zoom</span></p>
1785                    </li>
1786                    <li class="js-zoom-jwt" style="display:none">
1787                        <p class="video-service-option"><i class="svg-sb-009"></i><span>Zoom JWT</span></p>
1788                    </li>
1789                    <li class="js-google-meet" style="display:block">
1790                        <p class="video-service-option"><i class="svg-sb-025"></i><span>Google Meet</span></p>
1791                    </li>
1792                    <li class="js-ms-teams" style="display:none">
1793                        <p class="video-service-option"><i class="svg-sb-020"></i><span>Microsoft Teams</span></p>
1794                    </li>
1795                    <li class="js-ms-teams-jwt" style="display:none">
1796                        <p class="video-service-option"><i class="svg-sb-020"></i><span>Microsoft Teams JWT</span></p>
1797                    </li>
1798                    <li class="js-webex" style="display:none">
1799                        <p class="video-service-option"><i class="icon-webex"></i><span>Cisco Webex</span></p>
1800                    </li>
1801                    <li class="js-webex-jwt" style="display:none">
1802                        <p class="video-service-option"><i class="icon-webex"></i><span>Cisco Webex JWT</span></p>
1803                    </li>
1804                    <li class="js-jitsi" style="display:none">
1805                        <p class="video-service-option"><i class="icon-jitsi"></i><span>Jitsi</span></p>
1806                    </li>
1807                </ul>
1808            </div>
1809            <footer>
1810                <div class="btn-wrap">
1811                    <button class="js-video-cancel-btn type-bd small">취소</button>
1812                    <button class="js-video-submit-btn type-bg small">확인</button>
1813                </div>
1814            </footer>
1815        </article>
1816    </section>
1817    <section id="videoConfHaedenPop" class="dimmed">
1818        <div class="js-video-haeden-pop pop-type-basic video-join-meeting-layer d-none">
1819            <header>
1820                <h1>화상회의 생성</h1>
1821            </header>
1822            <div class="cont">
1823                <div class="meeting-usage-alert">
1824                    <p class="usage-text">
1825                        [그룹공용] 즉시회의 사용현황
1826                        <strong class="seat-count"><em></em></strong>
1827                    </p>
1828                    <p class="usage-notice">즉시 회의는 <span data-setting=""></span> 가능합니다.</p>
1829                </div>
1830                <ul class="toggle-setting-list">
1831                    <li>
1832                        <p>호스트 승인 여부</p>
1833                        <div id="hostAppr" class="ToggleM" data-setting="" data-active="">
1834                            <i class="handle"></i>
1835                        </div>
1836                    </li>
1837                    <li>
1838                        <p>녹화 가능 여부</p>
1839                        <div id="allowRecord" class="ToggleM" data-setting="" data-active="">
1840                            <i class="handle"></i>
1841                        </div>
1842                    </li>
1843                    <li>
1844                        <p>파일전송 가능 여부</p>
1845                        <div id="allowTransfer" class="ToggleM" data-setting="" data-active="">
1846                            <i class="handle"></i>
1847                        </div>
1848                    </li>
1849                    <li>
1850                        <p>화면공유 시 워터마크 표시 여부</p>
1851                        <div id="showWatermark" class="ToggleM" data-setting="" data-active="">
1852                            <i class="handle"></i>
1853                        </div>
1854                    </li>
1855                </ul>
1856            </div>
1857            <footer class="btn-wrap full-type">
1858                <button class="type-bd cancel-event">취소</button>
1859                <button class="type-bg submit-event">확인</button>
1860            </footer>
1861        </div>
1862    </section>
1863
1864    <section class="dimmed d-none">
1865        <article class="mini-popup-layer popup-pass-change">
1866            <header><h1>비밀번호 변경</h1></header>
1867            <div class="popup-main">
1868                <p>
1869                    90일 동안 비밀번호를 변경하지 않았습니다.<br>
1870                    개인정보 보호를 위하여 비밀번호를 변경해 주세요.
1871                </p>
1872            </div>
1873            <footer>
1874                <div class="popup-button-wrap">
1875                    <button class="button-light-popup">30일간 보지 않기</button>
1876                    <button class="button-confirm-popup">변경하기</button>
1877                </div>
1878            </footer>
1879        </article>
1880    </section>
1881
1882    <section class="dimmed">
1883        <article class="mini-popup-layer update-alarm-popup">
1884            <header><h1>플로우 업데이트</h1></header>
1885            <div class="popup-main">
1886                <p>
1887                    새로운 버전의 데스크탑 앱이 출시되었습니다!
1888                    최신 버전의 앱으로 업데이트 바랍니다.
1889                </p>
1890                <ul>
1891                    <li>현재버전 <span>Ver 2.1.5</span></li>
1892                    <li>최신버전 <span>Ver 2.1.6</span></li>
1893                </ul>
1894                <a href="" target="_blank">설치에 어려움이 있으신가요?</a>
1895            </div>
1896            <footer>
1897                <div class="popup-button-wrap">
1898                    <button class="button-confirm-popup">업데이트</button>
1899                </div>
1900            </footer>
1901        </article>
1902    </section>
1903
1904    <section id="projectFolderWrap" class="dimmed" style="display: none;">
1905        <div id="projectFolderInputNameWrap">
1906            <div id="projectFolderInputNamePopup" class="pop-type-basic type-textarea" style="display: none;">
1907                <header><h1>{title}</h1><button class="btn-close-x"></button></header>
1908                <div class="cont">
1909                    <input type="text" placeholder="프로젝트 폴더명을 입력해주세요." value="{folder-nm}">
1910                </div>
1911                <footer class="btn-wrap">
1912                    <button class="type-bd btn-cancel">취소</button>
1913                    <button class="type-bg btn-confirm">확인</button>
1914                </footer>
1915            </div>
1916        </div>
1917
1918        <div id="projectEditWrap">
1919            <div id="projectEditPopup" class="pop-type-basic project-move-pop" style="display: block;">
1920                <header><h1>위치 변경</h1><button class="btn-close-x"></button></header>
1921                <div class="cont project-folder-tree scroll-mask thin">
1922                    <div class="project-home">
1923                        <input id="popup-project-folder-0" class="btn-radio large" type="radio" name="popup-project-folder">
1924                        <label for="popup-project-folder-0" class="btn-radio-label tit">
1925                            <span class="depth-arrow">내 프로젝트</span>
1926                        </label>
1927                    </div>
1928                    <ul class="tree-wrap">
1929
1930                    </ul>
1931                </div>
1932                <footer class="btn-wrap">
1933                    <button class="type-bd btn-cancel">취소</button>
1934                    <button class="type-bg btn-confirm">확인</button>
1935                </footer>
1936            </div>
1937        </div>
1938
1939        <div id="projectFolderDeleteWrap">
1940            <div class="pop-type-basic type-confirm project-folder-remove-pop" style="display: none;">
1941                <div class="cont">
1942                    "{folder-nm}" 프로젝트 폴더를 삭제하시겠습니까?
1943  프로젝트 폴더에 포함된 프로젝트는 삭제되지 않습니다.</div>
1944                <footer class="btn-wrap">
1945                    <button class="type-bd small btn-cancel">취소</button>
1946                    <button class="type-bg small btn-confirm">확인</button>
1947                </footer>
1948            </div>
1949        </div>
1950
1951    </section>
1952    <section id="favoriteSetting" class="dimmed" style="display: none;">
1953        <div class="favorite-setting-popup flow-project-popup-4 bookmark" style="display: none;">
1954            <div class="flow-project-header-1"><span class="popup-title">즐겨찾기 설정</span>
1955                <a class="cursor-pointer close-event flow-close-type-1"></a>
1956            </div>
1957            <div class="flow-content">
1958                <div class="flow-content-bookmark-1">
1959                    <div class="bookmark-cont">
1960                        <p>온라인 사용자만 보기</p>
1961                        <button id="toggleOnlyOnlineUsersBtn" type="button" class="ToggleM active">
1962                            <i class="handle"></i>
1963                        </button>
1964                    </div>
1965                    <div class="bookmark-cont">
1966                        <p>보기 방식</p>
1967                        <div class="member-card">
1968                            <div class="mini-mode-text-sub-area-1 js-favorite-member-chat mini-favorite-member">
1969                                <div class="mini-mode-main-picture-1 profile js-member-profile ">
1970                                    <div class="profile-img" style="background-image: url('/flow-renewal/assets/images/profile-default.png'), url('/flow-renewal/assets/images/profile-default.png'), url('/flow-renewal/assets/images/profile-default.svg');"></div>
1971                                    <div class="js-mini-state mini-mode-picture-circle js-user-state mini-mode-online"></div>
1972                                </div>
1973                                <div id="favSettingPreview" class="mini-mode-area-list-type-1">
1974                                    <p class="user-profile">
1975                                        <strong class="name">{이름}</strong>
1976                                        <em class="position">{직위/직책}</em>
1977                                        <em class="js-user-state-text">{상태}</em>
1978                                    </p>
1979                                    <p class="mini-mode-text-gray-1">
1980                                        <strong class="company">{계열사}</strong>
1981                                        <strong class="team">{부서}</strong>
1982                                        <span class="number ext">{회사전화}</span>
1983                                        <span class="number mobile">{휴대전화}</span>
1984                                        <span class="mail">{이메일}</span>
1985                                        <span class="state-work-name">{담당업무}</span>
1986                                    </p>
1987                                </div>
1988                            </div>
1989                        </div>
1990                        <div>
1991                            <ul>
1992                                <li>
1993                                    <input type="checkbox" name="favorite-setting" id="affiliateCheckbox">
1994                                    <label for="affiliateCheckbox">
1995                                        <i class="SelectSquareS"></i> 계열사
1996                                    </label>
1997                                </li>
1998                                <li>
1999                                    <input type="checkbox" name="favorite-setting" id="cmpnTlphNoC
1999heckbox">
2000                                    <label for="cmpnTlphNoCheckbox">
2001                                        <i class="SelectSquareS"></i> 회사전화
2002                                    </label>
2003                                </li>
2004                                <li>
2005                                    <input type="checkbox" name="favorite-setting" id="clphNoCheckbox">
2006                                    <label for="clphNoCheckbox">
2007                                        <i class="SelectSquareS"></i> 휴대전화
2008                                    </label>
2009                                </li>
2010                                <li>
2011                                    <input type="checkbox" name="favorite-setting" id="emlCheckbox">
2012                                    <label for="emlCheckbox">
2013                                        <i class="SelectSquareS"></i> 이메일
2014                                    </label>
2015                                </li>
2016                                <li>
2017                                    <input type="checkbox" name="favorite-setting" id="chargeJobCheckbox">
2018                                    <label for="chargeJobCheckbox">
2019                                        <i class="SelectSquareS"></i> 담당업무
2020                                    </label>
2021                                </li>
2022                            </ul>
2023                        </div>
2024                    </div>
2025                </div>
2026                <div class="flow-pop-button-type-1">
2027                    <a class="cursor-pointer">
2028                        <div class="flow-pop-sub-button-1 cancel-event">
2029                            취소
2030                        </div>
2031                    </a>
2032                    <a class="cursor-pointer">
2033                        <div class="flow-pop-sub-button-2 submit-event">
2034                            확인
2035                        </div>
2036                    </a>
2037                </div>
2038            </div>
2039        </div>
2040    </section>
2041    </div>
2042<script src="/flow-renewal/dist/js/signinModule.min.js?v=97faf5623d686d8c"></script>
2042
2043</body>
2044</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.